基于单片机设计的数字钟实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字钟是采用数字电路对时分秒数字显示的计时装置。数字钟的精度,稳定性 远远超过老式机械钟。数字钟是其小巧,价格低廉,走时精度高,使用方便,功 能多,便于集成化而受到广大消费者的喜爱。
二.数字钟设计原理
数字钟实际是对标准频率计数的电路,由于计数的起始时间不可能与标准时间 一致,故需要在电路上加一个校时电路,同时标准的时间信号必须做到准确稳定。 通常使用石英晶体振荡电路构成数字钟。数字钟电子钟由以下几部分组成:按键 开关部分,振荡电路部分,89c51 单片机控制器,4 位数码管显示部分,7407 数 码管驱动部分。
口将对应的数码管选中供电,就能显示该地址单元的数据值。
4.总的程序清单
HOUR EQU 3AH
;赋值伪指令
MIN EQU 3BH
SEC EQU 3CH
BUFF EQU 3DH
ORG 0000H
AJMP MAIN
ORG 000BH
;主程序入口
AJMP PTF0
ORG 0033H
;跳转到标号 PTF0 执行
LOP2:
MOV A, HOUR
ANL A, #0FH
MOVC A, @A+DPTR
MOV P0, A
MOV P2, #0F0H
CLR P2.6
RET
LOP3:
;显示分钟的十位 ;显示时钟的个位
数字钟的设计 7
单片机课程设计
MOV A, HOUR
;显示时钟的十位
SWAP A
ANL A, #0FH
MOVC A, @A+DPTR
单片机课程设计
4
0
1
1
0
0
1
1
0
66
H
5
0
1
1
0
1
1
0
1 6D
H
6
0
1
1
1
1
1
0
1 7D
H
7
0
0
0
0
0
1
1
1
07
H
8
0
1
1
1
1
1
1
1
7F
H
9
0
1
1
0
1
1
1
1
6F
H
10μf 电容作用:上电复位; 7407 作用:同相缓冲器,驱动数码管; 12M 晶振和两个电容组成晶体振荡器。
五.程序设计
1 主程序
MAIN:MOV HOUR, #00 ;时,分,秒,标记清零
MOVC A, @A+DPTR
MOV P0,A
MOV P2,#0F0H
CLR P2.4
CLR P0.4
;显示分钟的个位
RET
LOP1:
MOV A, MIN
SWAP A
ANL A, #0FH
MOVC A, @A+DPTR
MOV P0, A
MOV P2, #0F0H
CLR P2.5
CLR P0.4
RET
采用动态扫描法实现 LED 数码管显示。
共阴 7 段 LED 显示器显示原理:
引
.P0 P0. P0. P0. P0. P0. P0. P0. 数
脚
.7
6
5
4
3
2
1
0 码显
数
h
g
f
e
d
c
b
a示
字显
示
0
0
0
1
1
1
1
1
1
3F
H
1
0
0
0
0
0
1
1
0
06
H
2
0
1
0
1
1
0
1
1 5B
H
3
0
1
0
0
1
1
1
1
4F
H
数字钟的设计 4
;**************************************************************
;主程序
MAIN:
MOV HOUR, #00H
;时,分,秒,标记清零
MOV MIN, #00H
MOV SEC, #00H
MOV BUFF, #00H
MOV SP, #0EFH
JK: DJNZ 40H, PTFOR XRL BUFF, #0FFH MOV 40H, #100 JNB P1.1, JF JNB P1.2, JS MOV R7, 41H
CJNE R7, #1, AA
AA:
DJNZ 41H, PTFOR
MOV 41H,#2
MOV A, SEC
ADD A, #1
DA A
;写 IP
MOV IE, #82H
MOV R5,#0
;利用 R5 进行硬件延时
;开中断
SETB TR0
;启动定时器
采用定时器 T0 中断完成一次主程序循环, 调用显示子程序和查键子程序,
当端口有开关按下时,输入相应的功能程序。
2 中断服务子程序
PTF0:
பைடு நூலகம்
MOV TH0, #0ECH
MOV TL0, #78H
点的字型码
时间显示子程序每次显示 4 个连续单元的十进制 BCD 数码,首地址在调用显示
子程序时需要先指定.由于采用 7 段共阴 LED 数码观动态扫描实现数据显示,所
以显示用十进制 BCD 码数据的对应段码存放在 ROM 中。
显示时,先取出内存地址中的数据,然后查得对应的显示用段码从 P0 口输出,P2
INC R5
MOV R6,BUFF
CJNE R6,#00H,BB
MOV DPTR,#TAB1
LJMP LOOP0
数字钟的设计 5
单片机课程设计
BB:MOV DPTR,#TAB
LOOP0: CJNE R5,#1,LOOP1 ACALL LOP0 AJMP JK LOOP1:CJNE R5,#2,LOOP2 ACALL LOP1 AJMP JK LOOP2:CJNE R5,#3,LOOP3 ACALL LOP2 AJMP JK LOOP3:ACALL LOP3 MOV R5,#0
晶振频率 fosc=12MHZ,T0 工作于方式 0,产生 5ms 中断,则 T0 的初始值计算 公式为:
T= 12 (216-a)μs fosc
得:
a=216- 12 *T fosc
=216-5000
=60536
化为 16 进制数:
a=0EC78H
3 显示子程序
LOP0:
MOV A, MIN
ANL A, #0FH
5.1 主程序 5.2 中断服务子程序 5.3 显示子程序 5.4 总的程序清单 6 系统调试及结果分析................................................................................... 12 7 注意事项........................................................................................................12 8 感想与体会................................................................................................... 13 9 参考文献..........................................................................................................13
数字钟的设计 3
单片机课程设计
图 2.2 硬件电路图 该电路采用 AT89C51 单片机最小化应用,采用共阴 7 段 LED 数码管显示
器,P2.4~P2.7 口作为列扫描输出,P0 口输出段码数据,P1.2,P1.1 口接 2 个 按钮开关,用于调时及功能误差,采用 12Mhz 晶振,可提高秒计时的精确度。
按键开关
4 位数码管显 示
振荡电路
89C51 单片机控制器
7407 列驱动
数字钟的设计 2
单片机课程设计
三.流程图
主程序流程图如图 2.3 所示,定时器 T0 中断服务程序流程图如 2.4 所示。
返回
图 2.4 中断服务程序流程图
四.51 单片机系统的硬件连接
1. 硬件电路的设计,硬件电路图如图 2.2 所示
单片机课程设计
目录
1 前言..................................................................................................................3 2 数字钟设计原理............................................................................................. 3 3 流程图..............................................................................................................4 4 51 单片机系统的硬件连接............................................................................ 4 5 程序设计............................................................................................................6
MOV HOUR, #0
PTFOR:RETI
数字钟的设计 6
;秒加 1
;秒清零 ;分加 1
; 分清零
;时加 1 ;时加到 24 时否?是,清
单片机课程设计
定时器 T0 用于时间计时,定时溢出中断周期为 5ms,中断进入后,先进行定时中 断初值校正,当中断累计 200 次(即 5ms*200=1S)时,对秒计数单元进行加 1 操作, 计时单元中采用 24 进位。
MOV SEC, A
CJNE A, #60H, PTFOR
MOV SEC, #0
JF:
MOV A, MIN
ADD A, #1
DA A
MOV MIN, A
CJNE A, #60H,PTFOR
MOV MIN, #0
ACALL LED
JS:
MOV A,HOUR
ADD A,#1
DA A
MOV HOUR,A
CJNE A, #24H,PTFOR 零
JK: DJNZ 40H, PTFOR XRL BUFF, #0FFH MOV 40H, #100 JNB P1.1, JF JNB P1.2, JS MOV R7, 41H
CJNE R7, #1, AA
AA:
DJNZ 41H, PTFOR
MOV 41H,#2
MOV A, SEC
ADD A, #1
DA A
MOV P0, A
MOV P2, #0F0H
CLR P2.7
CLR P0.4
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;不带小数
点的字型码
TAB1:DB,0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH ;带小数
;开中断 ;启动定时器
PTF0: SETB P1.2 MOV TH0, #0ECH MOV TL0, #78H INC R5 MOV R6,BUFF CJNE R6,#00H,BB MOV DPTR,#TAB1 LJMP LOOP0
BB:MOV DPTR,#TAB
LOOP0: CJNE R5,#1,LOOP1 ACALL LOP0 AJMP JK LOOP1:CJNE R5,#2,LOOP2 ACALL LOP1 AJMP JK LOOP2:CJNE R5,#3,LOOP3 ACALL LOP2 AJMP JK LOOP3:ACALL LOP3 MOV R5,#0
MOV MIN, #00H
MOV SEC, #00H
MOV BUFF, #00H
MOV SP, #0EFH
;设堆栈指针
MOV TH0, #0ECH
;定时器赋初值
MOV TL0, #78H
MOV 40H, #100
;设循环次数
MOV 41H, #2
MOV TMOD , #1
;写 TMOD
MOV IP, #2
MOV SEC, A
CJNE A, #60H, PTFOR
MOV SEC, #0
JF:
MOV A, MIN
ADD A, #1
DA A
MOV MIN, A
数字钟的设计 1
单片机课程设计
一.前言
20 世纪末,电子技术获得了飞速的发展,在其推动下,具有功能强、体 积小、可靠性高、价格低廉的单片机在工业控制、数据采集、智能仪表、机电一 体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和 自动化程度。
现在生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号, 对于那些对时间把握非常严格和准确的人或事来说,时间的不准确性带来不小的 麻烦,所以说以数码管显示的时钟比指针式的时钟表现出了很大的优势。数码管 显示的时间简明而且读数快,时间准确显示到秒。
;设堆栈指针
MOV TH0, #0ECH
;定时器赋初值
MOV TL0, #78H
MOV 40H, #100
;设循环次数
MOV 41H, #2
MOV TMOD , #1
;写 TMOD
MOV IP, #2
;写 IP
MOV IE, #82H
MOV R5,#0
数字钟的设计 8
单片机课程设计
SETB TR0
二.数字钟设计原理
数字钟实际是对标准频率计数的电路,由于计数的起始时间不可能与标准时间 一致,故需要在电路上加一个校时电路,同时标准的时间信号必须做到准确稳定。 通常使用石英晶体振荡电路构成数字钟。数字钟电子钟由以下几部分组成:按键 开关部分,振荡电路部分,89c51 单片机控制器,4 位数码管显示部分,7407 数 码管驱动部分。
口将对应的数码管选中供电,就能显示该地址单元的数据值。
4.总的程序清单
HOUR EQU 3AH
;赋值伪指令
MIN EQU 3BH
SEC EQU 3CH
BUFF EQU 3DH
ORG 0000H
AJMP MAIN
ORG 000BH
;主程序入口
AJMP PTF0
ORG 0033H
;跳转到标号 PTF0 执行
LOP2:
MOV A, HOUR
ANL A, #0FH
MOVC A, @A+DPTR
MOV P0, A
MOV P2, #0F0H
CLR P2.6
RET
LOP3:
;显示分钟的十位 ;显示时钟的个位
数字钟的设计 7
单片机课程设计
MOV A, HOUR
;显示时钟的十位
SWAP A
ANL A, #0FH
MOVC A, @A+DPTR
单片机课程设计
4
0
1
1
0
0
1
1
0
66
H
5
0
1
1
0
1
1
0
1 6D
H
6
0
1
1
1
1
1
0
1 7D
H
7
0
0
0
0
0
1
1
1
07
H
8
0
1
1
1
1
1
1
1
7F
H
9
0
1
1
0
1
1
1
1
6F
H
10μf 电容作用:上电复位; 7407 作用:同相缓冲器,驱动数码管; 12M 晶振和两个电容组成晶体振荡器。
五.程序设计
1 主程序
MAIN:MOV HOUR, #00 ;时,分,秒,标记清零
MOVC A, @A+DPTR
MOV P0,A
MOV P2,#0F0H
CLR P2.4
CLR P0.4
;显示分钟的个位
RET
LOP1:
MOV A, MIN
SWAP A
ANL A, #0FH
MOVC A, @A+DPTR
MOV P0, A
MOV P2, #0F0H
CLR P2.5
CLR P0.4
RET
采用动态扫描法实现 LED 数码管显示。
共阴 7 段 LED 显示器显示原理:
引
.P0 P0. P0. P0. P0. P0. P0. P0. 数
脚
.7
6
5
4
3
2
1
0 码显
数
h
g
f
e
d
c
b
a示
字显
示
0
0
0
1
1
1
1
1
1
3F
H
1
0
0
0
0
0
1
1
0
06
H
2
0
1
0
1
1
0
1
1 5B
H
3
0
1
0
0
1
1
1
1
4F
H
数字钟的设计 4
;**************************************************************
;主程序
MAIN:
MOV HOUR, #00H
;时,分,秒,标记清零
MOV MIN, #00H
MOV SEC, #00H
MOV BUFF, #00H
MOV SP, #0EFH
JK: DJNZ 40H, PTFOR XRL BUFF, #0FFH MOV 40H, #100 JNB P1.1, JF JNB P1.2, JS MOV R7, 41H
CJNE R7, #1, AA
AA:
DJNZ 41H, PTFOR
MOV 41H,#2
MOV A, SEC
ADD A, #1
DA A
;写 IP
MOV IE, #82H
MOV R5,#0
;利用 R5 进行硬件延时
;开中断
SETB TR0
;启动定时器
采用定时器 T0 中断完成一次主程序循环, 调用显示子程序和查键子程序,
当端口有开关按下时,输入相应的功能程序。
2 中断服务子程序
PTF0:
பைடு நூலகம்
MOV TH0, #0ECH
MOV TL0, #78H
点的字型码
时间显示子程序每次显示 4 个连续单元的十进制 BCD 数码,首地址在调用显示
子程序时需要先指定.由于采用 7 段共阴 LED 数码观动态扫描实现数据显示,所
以显示用十进制 BCD 码数据的对应段码存放在 ROM 中。
显示时,先取出内存地址中的数据,然后查得对应的显示用段码从 P0 口输出,P2
INC R5
MOV R6,BUFF
CJNE R6,#00H,BB
MOV DPTR,#TAB1
LJMP LOOP0
数字钟的设计 5
单片机课程设计
BB:MOV DPTR,#TAB
LOOP0: CJNE R5,#1,LOOP1 ACALL LOP0 AJMP JK LOOP1:CJNE R5,#2,LOOP2 ACALL LOP1 AJMP JK LOOP2:CJNE R5,#3,LOOP3 ACALL LOP2 AJMP JK LOOP3:ACALL LOP3 MOV R5,#0
晶振频率 fosc=12MHZ,T0 工作于方式 0,产生 5ms 中断,则 T0 的初始值计算 公式为:
T= 12 (216-a)μs fosc
得:
a=216- 12 *T fosc
=216-5000
=60536
化为 16 进制数:
a=0EC78H
3 显示子程序
LOP0:
MOV A, MIN
ANL A, #0FH
5.1 主程序 5.2 中断服务子程序 5.3 显示子程序 5.4 总的程序清单 6 系统调试及结果分析................................................................................... 12 7 注意事项........................................................................................................12 8 感想与体会................................................................................................... 13 9 参考文献..........................................................................................................13
数字钟的设计 3
单片机课程设计
图 2.2 硬件电路图 该电路采用 AT89C51 单片机最小化应用,采用共阴 7 段 LED 数码管显示
器,P2.4~P2.7 口作为列扫描输出,P0 口输出段码数据,P1.2,P1.1 口接 2 个 按钮开关,用于调时及功能误差,采用 12Mhz 晶振,可提高秒计时的精确度。
按键开关
4 位数码管显 示
振荡电路
89C51 单片机控制器
7407 列驱动
数字钟的设计 2
单片机课程设计
三.流程图
主程序流程图如图 2.3 所示,定时器 T0 中断服务程序流程图如 2.4 所示。
返回
图 2.4 中断服务程序流程图
四.51 单片机系统的硬件连接
1. 硬件电路的设计,硬件电路图如图 2.2 所示
单片机课程设计
目录
1 前言..................................................................................................................3 2 数字钟设计原理............................................................................................. 3 3 流程图..............................................................................................................4 4 51 单片机系统的硬件连接............................................................................ 4 5 程序设计............................................................................................................6
MOV HOUR, #0
PTFOR:RETI
数字钟的设计 6
;秒加 1
;秒清零 ;分加 1
; 分清零
;时加 1 ;时加到 24 时否?是,清
单片机课程设计
定时器 T0 用于时间计时,定时溢出中断周期为 5ms,中断进入后,先进行定时中 断初值校正,当中断累计 200 次(即 5ms*200=1S)时,对秒计数单元进行加 1 操作, 计时单元中采用 24 进位。
MOV SEC, A
CJNE A, #60H, PTFOR
MOV SEC, #0
JF:
MOV A, MIN
ADD A, #1
DA A
MOV MIN, A
CJNE A, #60H,PTFOR
MOV MIN, #0
ACALL LED
JS:
MOV A,HOUR
ADD A,#1
DA A
MOV HOUR,A
CJNE A, #24H,PTFOR 零
JK: DJNZ 40H, PTFOR XRL BUFF, #0FFH MOV 40H, #100 JNB P1.1, JF JNB P1.2, JS MOV R7, 41H
CJNE R7, #1, AA
AA:
DJNZ 41H, PTFOR
MOV 41H,#2
MOV A, SEC
ADD A, #1
DA A
MOV P0, A
MOV P2, #0F0H
CLR P2.7
CLR P0.4
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
;不带小数
点的字型码
TAB1:DB,0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH ;带小数
;开中断 ;启动定时器
PTF0: SETB P1.2 MOV TH0, #0ECH MOV TL0, #78H INC R5 MOV R6,BUFF CJNE R6,#00H,BB MOV DPTR,#TAB1 LJMP LOOP0
BB:MOV DPTR,#TAB
LOOP0: CJNE R5,#1,LOOP1 ACALL LOP0 AJMP JK LOOP1:CJNE R5,#2,LOOP2 ACALL LOP1 AJMP JK LOOP2:CJNE R5,#3,LOOP3 ACALL LOP2 AJMP JK LOOP3:ACALL LOP3 MOV R5,#0
MOV MIN, #00H
MOV SEC, #00H
MOV BUFF, #00H
MOV SP, #0EFH
;设堆栈指针
MOV TH0, #0ECH
;定时器赋初值
MOV TL0, #78H
MOV 40H, #100
;设循环次数
MOV 41H, #2
MOV TMOD , #1
;写 TMOD
MOV IP, #2
MOV SEC, A
CJNE A, #60H, PTFOR
MOV SEC, #0
JF:
MOV A, MIN
ADD A, #1
DA A
MOV MIN, A
数字钟的设计 1
单片机课程设计
一.前言
20 世纪末,电子技术获得了飞速的发展,在其推动下,具有功能强、体 积小、可靠性高、价格低廉的单片机在工业控制、数据采集、智能仪表、机电一 体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和 自动化程度。
现在生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号, 对于那些对时间把握非常严格和准确的人或事来说,时间的不准确性带来不小的 麻烦,所以说以数码管显示的时钟比指针式的时钟表现出了很大的优势。数码管 显示的时间简明而且读数快,时间准确显示到秒。
;设堆栈指针
MOV TH0, #0ECH
;定时器赋初值
MOV TL0, #78H
MOV 40H, #100
;设循环次数
MOV 41H, #2
MOV TMOD , #1
;写 TMOD
MOV IP, #2
;写 IP
MOV IE, #82H
MOV R5,#0
数字钟的设计 8
单片机课程设计
SETB TR0