单片机实验指导书Word文档格式.docx
- 文档编号:6305165
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:18
- 大小:216.74KB
单片机实验指导书Word文档格式.docx
《单片机实验指导书Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书Word文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
MOVR7,#200
DE0:
MOVR6,#126
DE1:
DJNZR6,DE1
DJNZR7,DE0
RET
END
八:
思考
1、自己设计P1口作为输入输出使用的电路和程序,并在系统上调
2、改变点亮的时间间隔程序的编写
3、改变灯的输出花样程序的编写
实验二、定时计数器实验
一、实验目的
1、熟悉定时计数器的使用方法和编程。
2、了解定时计数器中断的处理方法。
3、掌握利用CPU查询的方式判断计数溢出的编程方法。
利用定时计数器T0对P3.4进行计数,每计完2个脉冲将A里面的内容左移一位送P1口显示。
四、电路原理
将实验电路板A6模块上的的脉冲开关PULSE连接到P3.4引脚,P1.0.7接LED0-7。
六、程序设计
1计数用,流程图如下
ORG0000H
LJMPSTART
ORG0100H
START:
MOVA,#01H
MOVP1,A
MOVTMOD,#05H
MOVTH0,#0FFH
MOVTL0,#0FDH
SETBTR0
LOOP:
JNBTF0,$
CLRTR0
CLRTF0
MOVTL0,#0FDH
RLA
MOVP1,A
SETBTR0
SJMPLOOP
END
2定时用:
(流程图自己设计出来)
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOV50H,#20
MOV51H,#100
MOVTMOD,#20H
MOVTH1,#06H
MOVTL1,#06H
SETBTR1
L2:
JBCTF1,L1
SJMPL2
L1:
DJNZ50H,L2
MOV50H,#20
DJNZ51H,L2
MOV51H,#100
CPLP1.0
SJMPL2
1、修改计数脉冲的初值看程序的运行变化.
2、改变定时计数器的工作方式程序相应的修改.
3、改用T1,该方案要作何修改才能实现相应的要求。
4、怎样利用中断的方式来编程实现。
实验三、数码管显示实验
七、实验目的
1、熟悉LED七段显示器的工作原理
2、掌握LED数码管动态显示的使用方法
八、实验器材
九、实验内容
采用P1口作为数码管的段驱控制,高电平有效,P2.0-P2.5作为6位数码管的位驱控制,低电平有效。
利用动态显示的效果,显示出自己的出生年月(如198603)
一十、
实验电路原理
+5V
将F1模块中的P1.0-7与I3模块的JDO1相连,F1模块中的P2.0-7与I3模块的JDI1相连。
六、流程图
ORG0000H;
程序起始地址
LJMPSTART
ORG0100H;
主程序起始地址
MOV20H,#3
MOV21H,#0
MOV22H,#6
MOV23H,#7
MOV24H,#9
MOV25H,#1;
写入出生年月
LED:
MOVP2,#0FEH;
位驱动的初值
MOVR0,#20H;
显示数据首地址
MOVR1,#6;
显示数据存放的首地址
NEXT:
MOVA,@R0
MOVDPTR,#TABLE;
指向表的首地址
MOVCA,@A+DPTR;
查七段显示码
MOVP1,A;
送段码给P1
LCALLDELAY
MOVA,P2
RLA;
修改显示位驱动
MOVP2,A;
送下一个位驱动信号
INCR0;
指向下一个显示数据地址
DJNZR1,NEXT;
一轮没有显示完的话显示下一位
SJMPLED;
显示下一轮
DELAY:
MOVR7,#2
DE0:
MOVR6,#200
DE1:
DJNZR6,DE1
DJNZR7,DE0
TABLE:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
;
0—9十个数字的七段显示共阴极代码表格
1、修改出生年月的数据,程序怎样修改
2、改变数据显示的方向,程序应该作何修改。
3、增大扫描延时的时间,观察动态显示的效果。
实验四、电子时钟实验
1、熟悉定时计数器的扩展使用与中断的使用方法。
2、掌握LED数码管动态显示的使用方法
二、实验器材
2、PC机和KEIL软件
三、实验内容和要求
利用动态显示的效果,显示时钟、分钟和秒钟(如110324)
四、实验电路原理
五、实验连线
七、参考程序
ORG0000H
LJMPSTART
ORG001BH
LJMPCLOCK
DISBUFEQU30H;
显示数字缓冲首地址
SECBUFEQU21H;
秒缓冲
MINBUFEQU22H;
分缓冲
HOUBUFEQU23H;
时钟缓冲
BUFEQU20H;
0.1S秒缓冲
MOVBUF,#00H;
0.1S秒缓冲清0
MOVMINBUF,#00H
MOVSECBUF,#00H
MOVHOUBUF,#00H;
时钟设置
MOVTMOD,#10H;
设置T1工作于定时方式2
MOVTL1,#0B0H
MOVTH1,#3CH;
写0.1S的时间常数
SETBEA;
开放CPU中断
SETBET1;
开放T1中断
SETBTR1;
允许T1工作
DISP1:
MOVR0,#DISBUF;
显示数字存放首地址
MOVA,SECBUF;
取小时高为数字
ANLA,#0FH
MOV@R0,A;
小时高位数字存放
指向下一个单元
MOVA,SECBUF
ANLA,#0F0H
SWAPA
MOV@R0,A;
小时低位数字存放
INCR0
MOVA,MINBUF
MOV@R0,A;
分钟高为数字存放
MOV@R0,A;
INCR0
MOVA,HOUBUF
秒钟高为数字存放
ANLA,#0F0H
LCALLDISPLAY
SJMPDISP1
DISPLAY:
MOVP21,#0FEH;
驱动最低位
MOVR1,#DISBUF;
取显示数字首地址
MOVR2,#06H;
软计数器表示显示位数
LOOP1:
MOVDPTR,#SEGTAB;
七段显示码表首地址
MOVA,@R1
MOVCA,@A+DPTR;
查代码
MOVP1,A;
送段驱动器74LS273
LCALLDELAY;
0.1s
指向下一位位驱动
MOVP2,A
INCR1;
指向下以个显示数字的地址单元
DJNZR2,LOOP1;
显示位完了吗
CLOCK:
CLRTR1;
关T1
MOVTL1,#0B0H
MOVTH1,#3CH;
重装时间常数
PUSHPSW
PUSHACC;
压栈保护
MOVA,BUF
ADDA,#01H;
0.1S缓冲器加1
DAA;
转换为BCD码数
MOVBUF,A
CJNEA,#10H,INT_DONE;
1S时间没有到中断返回
MOVBUF,#00H;
1S到就将BUF清0
MOVA,SECBUF
ADDA,#01H
秒钟加1并变成BCD码数
MOVSECBUF,A
CJNEA,#60H,INT_DONE;
60秒没有到中断返回
MOVSECBUF,#00H;
60秒到秒钟清0
MOVA,MINBUF
ADDA,#01H
环种蛹?
并变成BCD码数
MOVMINBUF,A
CJNEA,#60H,INT_DONE;
60分钟没到中断返回
MOVMINBUF,#00H;
60分到分钟清0
MOVA,HOUBUF
ADDA,#01H
60分钟到时钟加1并转换为BCD码数
MOVHOUBUF,A
CJNEA,#24H,INT_DONE;
24小时没到中断返回
MOVHOUBUF,#00H;
24小时到时钟清0
INT_DONE:
POPACC
POPPSW
SETBTR1
RETI
MOVR7,#2
D1:
MOVR6,#255
D2:
DJNZR6,D2
DJNZR7,D1
RET
SEGTAB:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH,00H
怎样提高电子时钟的精度
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导书
![提示](https://static.bingdoc.com/images/bang_tan.gif)