基于单片机的电子钟的设计.docx
- 文档编号:13864454
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:27
- 大小:264.90KB
基于单片机的电子钟的设计.docx
《基于单片机的电子钟的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子钟的设计.docx(27页珍藏版)》请在冰点文库上搜索。
基于单片机的电子钟的设计
《单片机技术》课程设计任务书
一、设计题目:
基于单片机的电子钟的设计
二、适用班级:
电气0701~0703
三、指导教师:
四、任务与要求:
1、本课题任务如下:
(1)、基于单片机的电子钟的设计
设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。
(2)、基于单片机的频率计的设计
设计一个能够测量矩形波信号的频率、周期、脉宽、占空比的频率计。
该频率计上电或按键复位后能自动显示系统提示符“P.”,进入测量准备状态。
按频率测量键则测量频率;按周期测量键则测量周期;按脉宽测量键则测量脉宽;按占空比测量键则测量占空比。
2、本课题可选择设计方案如下:
(1)、基于单片机并行口的设计
在AT89S52的P0口和P2口上外接LED数码管显示器,P0口作LED数码管显示器的段控口,P2口作LED数码管显示器的位控口,P1口外接四个按键A、B、C、D。
(2)、基于单片机串行口的设计
将AT89S52的串行口扩展成并行口,外接LED数码管显示器;P1口外接四个按键A、B、C、D。
(3)、基于Intel8279的设计
利用Intel8279芯片为AT89S52扩展并行口,通过Intel8279外接LED数码管显示器和四个按键A、B、C、D构成的键盘。
(4)、基于Intel8155的设计
利用Intel8155芯片为AT89S52扩展并行口,通过Intel8155外接LED数码管显示器和四个按键A、B、C、D构成的键盘。
(5)、基于Intel8255的设计
利用Intel8255芯片为AT89S52扩展并行口,通过Intel8255外接LED数码管显示器和四个按键A、B、C、D构成的键盘。
3、本课题基本要求如下:
(1)、基于单片机的电子钟的设计
LED数码管显示器显示当前时间;四个按键的功能:
A键用于电子钟启动/调整;B键用于调时,范围0-23,0为24点,每按一次时加1;C键用于调分,范围0-59,0为60分,每按一次分加1;D键用于调秒,范围0-59,0为60秒,每按一次秒加1;
(2)、基于单片机的频率计的设计
LED数码管显示器显示被测信号的频率、周期、脉宽、占空比;四个按键的功能:
A键用于测量频率;B键用于测量周期;C键用于测量脉宽;D键用于测量占空比;
(3)、以上两个课题可以任选其一或全选,学生也可以自定课题;
(4)、编程语言:
汇编或C51;
(5)、计算机打印《单片机技术》课程设计说明书一份;
(6)、设计时间:
二周;
(7)、实物制作或Proteus仿真;
(8)、人员分组:
一人一组或多人一组(不超4人)。
五、《单片机技术》课程设计说明书正文主要内容
参照“《单片机技术》课程设计说明书正文主要内容”文件。
六、《单片机技术》课程设计说明书书写格式
参照“《单片机技术》课程设计说明书书写格式”文件。
七、参考资料
1、曹巧媛,单片机原理及应用[M],北京:
电子工业出版社,1997.7;
2、赵秀珍,单永磊,单片微型计算机原理及其应用[M],北京:
中国水利水电出版社,2001.8;
3、张毅刚,修林成,胡振江,MCS-51单片机应用设计[M],哈尔滨:
哈尔滨工业大学出版社,1990.8;
4、张洪润,兰清华,单片机应用技术教程[M],北京:
清华大学出版社,1997.11;。
5、李华,MCS-51系列单片机实用接口技术[M],北京:
北京航空航天大学出版社,1993.8;
6、陈景初,单片机应用系统设计与实践[M],北京:
北京航空航天大学出版社;
7、马忠梅,单片机的C语言Windows环境编程宝典[M],北京:
北京航空航天大学出版社,2003.6;
8、李光飞,单片机C程序设计指导[M],北京:
北京航空航天大学出版社,2003.01;
9、李光飞,单片机课程设计实例指导[M],北京:
北京航空航天大学出版社,2004.9。
电气自动化教研室
2007年9月10日
摘要
随着社会的不断发展,各种电子产品的不断更新换代,复杂的电子线路已逐步被淘汰,取而代之的是具有智能化功能的单片机,在电子行业,单片机的发展越来越快,日常生活中,有非常多的家用电器用到了单片机,智能化控制正逐步走进人们的生活。
数字电子钟的设计方法有多种,其中,用单片机来实现其中的功能,简化了电路,使用方便,实现了智能化,利用微处理器的智能性,可方便实现具有智能的电子钟本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法。
本设计由单片机AT89S52芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟。
与传统机械表相比,它具有走时精确,显示直观等特点。
它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能等特点。
该电子钟可以做到的功能:
上电或按键复位后能自动显示系统提示符“P.”进入时钟准备状态2.第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态。
再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。
通过设置的A、B、C、D四个键来调整运行,并且利用了8位LED显示时分秒。
此电子钟严格按照要求设计,最终达到预期的效果,能够正确显示“P”点以及时分秒的计时,还算是一个比较成功的设计。
关键词:
电子钟,单片机,汇编
第1章电子钟功能及总体方案的介绍
1.1电子钟功能介绍
1.1.1基本功能要求
可调整运行的电子钟具有三种工作状态:
“P.”状态、运行状态、调整状态。
(1)、“P.”状态,依靠上电或按复位键进入,在此状态下,按B、C、D键均无效,按A键有效,进入运行状态;
(2)、运行状态,按奇数次A键进入,在此状态下,按B、C、D键均无效,只有按A键有效,按下A键后,退出运行状态,进入调整状态;
(3)、调整状态,按偶数次A键进入,在此状态下,按A、B、C、D键均有效。
如按下A键,则退出调整状态,进入运行状态;按下B、C、D键,则分别对时、分、秒加1,调整结束后必须按A键,即可退出调整状态,进入运行状态。
基本功能要求:
“P.”稳定地显示在LED显示器的最左端数码管(LED5)上,无A键按下(在“P.”状态下,按下B、C、D键无效),则不进入电子钟的运行状态,继续显示“P.”。
按下A键后,电子钟以起始时间:
00时00分00秒开始运行。
再次按下A键后,电子钟退出运行状态,进入调整状态,利用B、C、D键把电子钟的显示时间修改为当前实时时间,时间修改正确后可再次按下A键,电子钟则退出调整状态,进入运行状态。
注意:
每次按下B、C、D键,只允许加一,不允许连加。
1.1.2扩展功能要求
(1)、在调整状态下,按下B、C、D键,允许连加,而A键无论在何种状态下,均不允许连击;
(2)、时、分、秒的间隔符“。
”以一定频率闪烁;
(3)、时间显示以“灭零”方式进行;
(4)、可调整运行的电子钟用两个按键(例如:
A键、B键)来控制。
1.2总体方案介绍
1.2.1计时方案
利用AT89S52单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。
该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。
1.2.2键盘/显示方案
AT89S52的P0口和P2口外接由六个LED数码管(LED5~LED0)构成的显示器,用P0口作LED的段码输出口,P2口作六个LED数码管的位控输出线,P1口外接四个按键A、B、C、D构成键盘电路。
AT89S52是一种低功耗,高性能的CMOS8位微型计算机。
它带有8KFlash可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和80C52的指令系统及引脚兼容,片内Flash集成在一个芯片上,可用与解决复杂的问题,且成本较低。
简易电子钟的功能不复杂,采用其现有的I/O便可完成,所以本书中采用此的设计方案,结构如图1-1如示。
第2章电子钟的工作原理
2.1实现时钟计时的基本方法
利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。
(1)计数初值计算:
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。
假设使用T/C0,方式1,50ms定时,fosc=12MHz。
则初值X满足(216-X)×1/12MHz×12μs=50000μs
X=15536→0011110010110000→3CB0H
(2)采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);
(3)从秒到分和从分到时的计时是通过累加和数值比较实现。
2.2电子钟的时间显示
电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共8个单元。
LED8LED7LED6LED5LED4LED3LED2LED1
37H36H35H34H33H32H31H30H
时十位时个位分隔分十位分个位分隔秒十位秒个位
2.3电子钟的启、停及时间调整
电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整。
A键控制电子钟的启、停;
B键调整时;
C键调整分;
D键调整秒。
第3章电子钟原理图及元件清单
3.1电子钟电路原理图
电子钟原理图(见附录1)
3.2元件清单
电子钟元件清单如表1所示:
表1 电子钟元器件清单
元件名称
规格型号
数量(个)
单片机
AT89S52
1
显示驱动芯片
74LS245
2
8位一体的共阳LED显示器
7SEG-MPX8-CA-BLUE
1
晶振
12MHz
1
电容
33pF
2
电容
22μF
1
按键
BUTTON
5
电阻
0.2K
1
电阻
1K
1
上拉电阻
10K
4
限流电阻
0.1K
8
排阻
RESPACK-8/10K
1
第4章软件系统设计
4.1电子钟程序流程框图
4.1.1主程序流程框图
见图4-1所示
4.1.2键扫子程序流程框图
见图4-2所示
4.1.3中断服务程序流程框图
见图4-3所示
4.1.4“P.”点显示子程序流程框图
见图4-4所示
4.1.5显示子程序流程框图
见图4-5所示
4.1.6加一子程序流程框图
见图4-6所示
4.2电子钟总体程序清单
ORG0000H
AJMPMAIN
ORG000BH
LJMPINTT0
ORG0030H
MAIN:
MOVSP,#60H;确立堆栈区
MOVPSW,#00H;
MOVR0,#20H;RAM区首地址
MOVR7,#5FH;RAM区单元个数
QL:
MOV@R0,#00H;RAM清零
INCR0
DJNZR7,QL
MOVIP,#02H;IP初始化,优先定时器0
MOVIE,#82H;IE初始化,
MOVTMOD,#01H;定时器0方式1工作
LCALLPP;调P.子程序
NEXT:
LCALLKEY;按键检测子程序
JBACC.0,RUNF;A键按下运行
LCALLDISP;调用显示子程序
SJMPNEXT
RUNF:
LCALLOUTT;调传送子程序
LCALLTIME;开电子钟
JK:
LCALLDISP;调用显示子程序
LCALLKEY;按键检测子程序
JZJK
LCALLANKEY
LCALLDISP;调用显示子程序
SJMPJK
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;P点显示;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PP:
MOV37H,#12;P点编码送寄存器
MOVR0,#30H;P点编码送寄存器
MOVR7,#07H
PPP:
MOV@R0,#10
INCR0
DJNZR7,PPP
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;键扫子程序;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KEY:
LCALLKEYS;调键值处理子程序
JZEXIT;没有键按下转到返回
LCALLDISP
LCALLDISP;调显示去抖动
LCALLKEYS
JZEXIT
MOVB,20H;保存键值
KEYSF:
LCALLKEYS;调键值处理子程序
JZKEYY;键释放,转到恢复键值
LCALLDISP;调显示子程序延时
AJMPKEYSF;等到键释放
KEYY:
MOVA,B;键值送20H单元保存
EXIT:
RET;返回
KEYS:
MOVP1,#0FFH;先向P1口写1
MOVA,P1;P1口值送累加器A
CPLA;A值取反
ANLA,#0FH;保存P1口的低4位
MOV20H,A;A值送20H保存
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;键功能子程序;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ANKEY:
CLREA;关中断
CHECK:
JBTR0,YXZ;判断是否运行
K0:
CJNEA,#01H,K1
AJMPRUN;转运行
K1:
CJNEA,#02H,K2
AJMPKEY1;转时调整
K2:
CJNEA,#04H,K3
AJMPKEY2;转分调整
K3:
CJNEA,#08H,OUT
AJMPKEY3;转秒调整
YXZ:
JBACC.0,STOP
AJMPOUT
KEY1:
MOVR0,#45H;时调整
LCALLADD1
CLRC
CJNEA,#24H,OUTT
ACALLCLR0
AJMPOUTT
KEY2:
MOVR0,#43H;分调整
LCALLADD1
CLRC
CJNEA,#60H,OUTT
ACALLCLR0
AJMPOUTT
KEY3:
MOVR0,#41H;秒调整
ACALLADD1
CLRC
CJNEA,#60H,OUTT
ACALLCLR0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;传送显示数据;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
OUTT:
MOV30H,40H;秒显示单元41H-42H
MOV31H,41H
MOV32H,#11;"-"
MOV33H,42H;分显示单元43H-44H
MOV34H,43H
MOV35H,#11;"-"
MOV36H,44H;时显示单元44-45H
MOV37H,45H
RET
STOP:
CLRTR0;关电子钟并跳出
RET
RUN:
LCALLTIME;运行电子钟
OUT:
SETBEA;无键按下或完成功能跳出
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;运行电子钟;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME:
SETBEA
MOVTL0,#0B0H
MOVTH0,#3CH;3CB0H
MOVR4,#20;50ms,20次循环
SETBTR0;启动定时器0
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;定时中断;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTT0:
PUSHACC
PUSHPSW
CLRET0
CLRTR0
MOVTL0,#0B0H;重新设定定时初值
MOVTH0,#3CH
SETBTR0;启动定时器0
DJNZR4,OUTT0;1秒到
ADDSS:
MOVR4,#14H;20次计数
MOVR0,#41H;秒十位
ACALLADD1;加1程序
CLRC
CJNEA,#60H,ADDMM;1分到
ADDMM:
JCOUTT0
ACALLCLR0
MOVR0,#43H
ACALLADD1;加1程序
CLRC
CJNEA,#60H,ADDHH;1小时到
ADDHH:
JCOUTT0
ACALLCLR0
MOVR0,#45H
ACALLADD1;加1程序
CLRC
CJNEA,#24H,HOUR;1天到
HOUR:
JCOUTT0
ACALLCLR0
OUTT0:
MOV30H,40H;秒显示单元41H-42H
MOV31H,41H
MOV32H,#11;"-"
MOV33H,42H;分显示单元43H-44H
MOV34H,43H
MOV35H,#11;"-"
MOV36H,44H;时显示单元44-45H
MOV37H,45H
POPPSW
POPACC
SETBET0
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;时间清零子程序;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLR0:
CLRA
MOV@R0,A
DECR0
MOV@R0,A
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;加一子程序;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ADD1:
MOVA,@R0;取十位
DECR0
SWAPA
ORLA,@R0;组合十位与个位
ADDA,#01H;加1
DAA;十进制调整
MOVR3,A;暂存
ANLA,#0FH;屏蔽十位
MOV@R0,A;放入个位单元
MOVA,R3;取值
INCR0
SWAPA
ANLA,#0FH;屏蔽个位
MOV@R0,A;放入十位单元
MOVA,R3;数值放入A中等待判断
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;显示子程序30H;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP:
MOVR1,#30H;显示缓冲存储单元首地址
MOVR2,#80H;从右至左显示
DISP1:
MOVP2,R2;送位控
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A;送段控
ACALLDL;延时
MOVA,R2
JBACC.0,DISP2
RRA
INCR1
MOVR2,A
AJMPDISP1
DISP2:
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0CH
DL:
MOVR6,#14H;显示延时子程序
DL1:
MOVR7,#19H;
DL2:
DJNZR7,DL2
DJNZR6,DL1
RET
END
第5章电子钟的使用说明及调试运行
5.1使用说明书
5.1.1操作说明
(1)时间显示:
电子钟上电后,8个数码管显示初始状态即最左边的一个数码管显示P.。
如果未显示P.,只需按一下复位键即可使其显示出P.。
按下A键后电子钟进入自动计时状态,电子钟显示00时00分00秒并开始运行。
(2)时间调整:
若要进行时间调整,则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电子钟 设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)