单片机设计数字钟实验报告
- 格式:doc
- 大小:697.50 KB
- 文档页数:9
单片机实验报告
——数字钟设计
班 级:
学 号:
姓 名:
时 间:
一.实验目的
1、进一步熟悉C的语法知识和keil环境;
2、熟练掌握一些常用算法;
3、熟悉keil的编写、下载、调试过程;
4、了解单片机的工作原理和电路图;
5、熟悉单片机的外围电路功能模块、LED灯、数码管模块以及键盘;
6、熟练焊接技术。
二.实验器件
三.数字钟设计原理
数字钟实际是对标准频率计数的电路,由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时标准的时间信号必须做到准确稳定。通常使用石英晶体振荡电路构成数字钟。数字钟电子钟由以下几部分组成:按键开关部分,振荡电路部分,89c51单片机控制器,4位数码管显示部分,7407数码管驱动部分。
按键开关
振荡电路
89C51
单片机控制器 4位数码管显示
7407
列驱动
四.流程图
主程序流程图如图2.3所示,定时器T0中断服务程序流程图如2.4所示。
图2.4中断服务程序流程图
五.51单片机系统的硬件连接
1、STC单片机最小系统硬件电路图如下 返回
2、硬件电路的设计
该电路采用AT89C51单片机最小化应用,采用共阴7段LED数码管显示器,P2.4~P2.7口作为列扫描输出,P0口输出段码数据,P1.2,P1.1口接2个按钮开关,用于调时及功能误差,采用12Mhz晶振,可提高秒计时的精确度。
六.程序设计
HOUR EQU 3AH ;赋值伪指令
MIN EQU 3BH
SEC EQU 3CH
BUFF EQU 3DH
ORG 0000H
AJMP MAIN
ORG 000BH ;主程序入口
AJMP PTF0
ORG 0033H ;跳转到标号PTF0执行
;**************************************************************
;主程序
MAIN: MOV HOUR, #00H ;时,分,秒,标记清零
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 ;写IP
MOV IE, #82H
MOV R5,#0
;开中断
SETB TR0 ;启动定时器
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
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 ;秒加1
ADD A, #1
DA A
MOV SEC, A
CJNE A, #60H, PTFOR
MOV SEC, #0 ;秒清零
JF: MOV A, MIN ;分加1
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 ;时加1
CJNE A, #24H,PTFOR ;时加到24时否?是,清零
MOV HOUR, #0
PTFOR:RETI
LOP0: MOV A, MIN ;显示分钟的个位
ANL A, #0FH
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
LOP2: MOV A, HOUR ;显示时钟的个位
ANL A, #0FH
MOVC A, @A+DPTR
MOV P0, A
MOV P2, #0F0H
CLR P2.6
RET
LOP3:
MOV A, HOUR ;显示时钟的十位
SWAP A
ANL A, #0FH
MOVC A, @A+DPTR
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 ;带小数点的字型码
END
七.系统调试及结果分析
硬件调试
硬件电路板中器件连接好后,先用万用表测试电路中有无虚焊短接之处,测试无误后,将板子通电,进行静态调试。
取好两跟短的导线,一根导线的其中一端接地,另一端接P2.4~P2.7口中的一个口,若数码管亮,再用另一根导线,其中异端接地,另一端与P0.0~P0.7依次接触,看数码管各段的亮灭情况,从而判断每个数码管各段的好坏及电路的是否正确。
软件调试
在LCA51编译器下进行汇编程序的编写,以子程序为单位调试,一段一段的编译与访真,最后结合电路板,进行整机联调。