单片机电子时钟实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
郑州轻工业学院单片机实验报告
实验名称:
姓名:
院(系):
专业班级:
学号:
指导教师:陈晓雷、王小瑞
成绩:
时间:年月日至年月日
实验电子时钟(定时器、中断综合实验)
一、实验目的
熟悉MCS-51定时器,中断初始化编程方法,了解定时器的应用,时钟程序的设计与调试技巧。
二、实验内容
按照STC单片机实验板电路,或者自己设计电路原理图,编写程序,基本要求:用定时器产生0.1S定时中断,对时钟计数器计数,并将数值实时地送数码管显示。扩展要求:可键盘调整时间、万年历、定时报警等。
三、程序框图
1
定时中断
四、实验步骤
连续运行程序,在键盘上输入时间初值,执行,数码管上实时显示时间值。
五、思考题
1.电子钟走时精度和程序中哪些常数有关?
2.修改程序使定时器工作方式改变,调节有关参数,进一步提高精度。
3.设计一个倒计时时钟,如何来修改程序?
六、参考程序
0030 758160 CHK00: MOV SP,#60H
0033 1204A5 LCALL LEDP
0036 900081 MOV DPTR,#CLOCK
0039 A882 MOV R0,DPL
003B A983 MOV R1,DPH
003D 90000B MOV DPTR,#000BH
0040 7402 MOV A,#02H
0042 F0 MOVX @DPTR,A
0043 A3 INC DPTR
0044 E9 MOV A,R1
2
0045 F0 MOVX @DPTR,A
0046 A3 INC DPTR
0047 E8 MOV A,R0
0048 F0 MOVX @DPTR,A
0049 120DF0 CHK0: LCALL LCK0 ;键扫,显示子程序
004C 120068 LCALL PTDS0 ;显示缓冲区放数子程序
004F 758901 MOV TMOD,#01H
0052 43A882 ORL IE,#82H
0055 758AB7 MOV TL0,#0B7H
0058 758C3C MOV TH0,#3CH ;定时中断初始化
005B 752300 MOV 23H,#00H
005E D28C SETB TR0 ;开定时
0060 120425 LOO5: LCALL DIS ;显示
0063 120068 LCALL PTDS0
0066 80F8 SJMP LOO5
0068 7879 PTDS0: MOV R0,#79H
006A E522 MOV A,22H
006C 1177 ACALL PTDS
006E E521 MOV A,21H
0070 1177 ACALL PTDS
0072 E520 MOV A,20H
0074 1177 ACALL PTDS
0076 22 RET
0077 F9 PTDS: MOV R1,A ;拆送显示缓冲区
0078 117C ACALL PTDS1
007A E9 MOV A,R1
007B C4 SWAP A
007C 540F PTDS1: ANL A,#0FH
007E F6 MOV @R0,A
007F 08 INC R0
0080 22 RET
0081 758AB7 CLOCK: MOV TL0,#0B7H
0084 758C3C MOV TH0,#3CH ;恢复初值
0087 C0D0 PUSH PSW
0089 C0E0 PUSH ACC
008B D2D3 SETB 0D3H ;保护
008D 0523 INC 23H ;0.1秒加1
008F E523 MOV A,23H
0091 B40A27 CJNE A,#0AH,DONE ;1秒到吗?
0094 752300 MOV 23H,#00H ;清0.1秒单元
0097 E522 MOV A,22H
0099 04 INC A ;秒加1
009A D4 DA A
009B F522 MOV 22H,A ;十进制调整
009D B4601B CJNE A,#60H,DONE ;60秒到吗?
00A0 752200 MOV 22H,#00H ;秒单元清零
00A3 E521 MOV A,21H
00A5 04 INC A
3
00A6 D4 DA A ;分加1,十进制调整
00A7 F521 MOV 21H,A
00A9 B4600F CJNE A,#60H,DONE ;60分到吗?
00AC 752100 MOV 21H,#00H ;分单元清零
00AF E520 MOV A,20H
00B1 04 INC A
00B2 D4 DA A ;时加1,十进制调整
00B3 F520 MOV 20H,A
00B5 B42403 CJNE A,#24H,DONE ;24小时到吗?
00B8 752000 MOV 20H,#00H ;时单元清零
00BB D0E0 DONE: POP ACC ;退栈
00BD D0D0 POP PSW
00BF 32 RET1
ORG 0D59H
0D59 D2D4 SSEE: SETB RS1 ;换工作区
0D58 7D05 MOV R5,#05H
0D5D 753020 SSE2: MOV 30H,#20H
0D60 75317E MOV 31H,#7EH
0D63 7F06 MOV R7,#06H
0D65 79DD SSE1: MOV R1,#0DDH
0D67 E530 MOV A,30H
0D69 F3 MOVX @R1,A ;字位送入
0D6A A831 MOV R0,31H
0D6C E6 MOV A,@R0
0D6D 900D85 MOV DPTR,#0DDFFH
0D70 93 MOVC A,@A+DPTR ;取字形代码
0D71 79DC MOV R1,#0DCH
0D73 F3 MOVX @R1,A ;字形送入
0D74 E530 MOV A,30H ;右移
0D76 03 RR A
0D77 F530 MOV 30H,A
0D79 1531 DEC 31H
0D7B 74FF MOV A,#0FFH
0D7D F3 MOVX @R1,A ;关显示
0D7E DFE5 DJNZ R7,SSE1 ;6位显示完了吗?
0D80 DDDB DJNZ R5,SSE2 ;5次显示完了吗?
0D82 C2D4 CLR RS1
0D84 22 RET
0D85 C0F9A4 ODFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H
0D88 B09992, DB 0F8H,80H,90H
0D8B 82F880
0D8E 90
0D8F 8883C6 DB 88H,83H,0C6H,0A1H,86H
0D92 A1868E DB 8EH,0FFH,0CH,89H,0DEH
0D95 FF0C89
0D98 DE
4