单片机电子时钟实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档