单片机电脑时钟设计Word文档下载推荐.docx
- 文档编号:16201519
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:20
- 大小:146.45KB
单片机电脑时钟设计Word文档下载推荐.docx
《单片机电脑时钟设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机电脑时钟设计Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
独立式按键指直接用I/O口线构成单个按键电路。
可在系统中键较少时使用。
在按键比较多的时候可采用矩阵式键盘。
本系统要设置12键,其中10个键用于输入0~9十个数字,还有两个键用于调整时间和设置闹钟时间。
因此本系统采用3*4的矩阵式键盘。
第2章硬件电路设计
2.1电路原理
图2-1时本电脑时钟的硬件电路。
本硬件的核心是MCS-51单片机,我们选用89C51。
因无需扩展外部RAM。
系统采用6位共阴极数码管从左到右依次显示时、分、秒,采用24小时计时。
系统采用3*4键盘共12个键用于更改时钟和设置启闹时间时输入数据,其中0~9号键位数字键,另外两个键分别用作时间设定/启动计时器(设为C/R键)和闹钟设置/启闹/停闹键(设为ALM键)。
系统采用8155作为键盘/显示接口电路。
其中利用8155的A口中的6位(PA0~PA5)作为6位LED显示的位码输出口,B口则作为字型码输出口,C口的低三位为键盘行线输入口,A口中的低4位(PA0~PA3)同时作为键盘的列扫描口。
系统采用在P1.0上接一个发光二极管,通过发光二极管的亮、灭来模拟闹钟功能。
由图2-1可知,89C51的P2.7接8155的IO/-M引脚,P2.6接8155的/CE引脚,由此可得8155内部各端口的地址分配:
控制寄存器:
8000H,定义为PORT;
A口:
8001H,定义为PORTA;
B口:
8002H,定义为PORTB;
C口:
8003H,定义为PORTC。
2.2系统工作流程
按设计要求,我们规划了电脑时钟的工作流程如下:
时间显示:
上电后或手动复位后,系统自动从00:
00:
00开始计时,并利用LED动态显示当前时间。
时间调整:
在正常计时状态下,可以设定当前时间。
按下C/R键,系统停止计时,进入时间设定状态,系统保持原有显示,等待键入当前时间。
按下0~9数字键可以顺序设置时、分、秒,并在相应LED管上显示设置值,直到6位设置完毕。
系统将自动由设定后的时间开始计时显示。
闹钟设置/启闹/停闹:
在正常计时状态下,也可以设定当前时间。
按下ALM键,系统继续计时,显示00:
00,进入闹钟设置状态,等待键入启闹时间。
按下0~9数字键可以顺序进行相应的时间设置,并在相应的LED管上显示设置值,直到6位设置完毕。
这将启动启闹功能,并恢复时间显示。
定时时间到,发光二极光点亮,直至重新按下ALM键熄灭,并取消闹钟设置。
第3章软件设计
3.1系统资源分配
为方便编写程序,将软件设置中用到的片内RAM各单元即标志位以及符号表示,并在程序中定义。
软件片内RAM及标志位分配如表3-1所示:
表3-1软件片内RAM及标志位分配表
地址
功能
名称
初始化值
30H~35H
显示缓冲区,小时、分、秒(高位在前)
DISP0~DISP5
00H
3CH~3FH
计时缓冲区,时、分、秒、100ms
HOUR、MIN、SEC、MSEC
40H~42H
闹钟值寄存区,时、分、秒
AHOUR、AMIN、ASES
FFH
50H~7FH
堆栈区
PSW.5
计时显示允许位(1:
禁止,0:
允许)
F0
PSW.1
闹钟标志位(1:
正在闹响,0:
未闹响)
F1
3.2软件模块设计
根据上述电脑时钟的工作流程,软件设计可分为以下几个功能模块:
3.2.1主程序模块
主程序主要用于系统初始化:
设置计时缓冲区、闹钟值寄存区的位置及初值,设置8155的工作方式,定时器的工作方式和计数初值等参数。
主程序框图如图3.1所示。
开始
Y
停闹,清除闹钟标志
图3.1主程序流程图
3.2.2计时模块
定时器0中断服务子程序,完成刷新计时缓冲区的功能。
本实验系统采用定时器与软件相结合的定时方式,设定时器0工作在方式1,每隔50ms溢出中断一次,则循环中断20次延时时间为1s,上述过程重复60次为1分,分计时60次为一小时,小时计时24次则时间重新回到00:
00。
计时模块流程图如图3.2所示。
图3.2计时模块流程图
3.2.3时间设置与闹钟设置模块
该模块由键盘输入相应的数据来设置当前时间与定时启闹时间。
程序通过用一个键盘设置子程序通过键盘扫描将键入的6位时间值送入显示缓冲区。
该程序同时要检测输入时间值的合法性,如键盘输入的小时值大于23,分、秒值大于59,则不合法,将取消本次设置,清零重新开始计时。
时间设置与闹钟时间设置流程图如图3.3所示,键盘子程序的流程图如图3.4所示。
图3.3时间设置与闹钟时间设置流程图
图3.4键盘设置子程序流程图
3.2.4显示模块
该模块完成小时、分钟、秒6位LED的动态显示。
显示程序流程图如图3.5所示。
图3.5显示程序流程图
3.2.5键盘扫描
键盘扫描流程图如图3.6所示。
图3.6键盘扫描程序流程图
3.2.6定时比较模块
该模块用来将当前时间与预设的启闹时间比较,二者完全相同时点亮发光二极管,并置位闹钟标志位。
重新按下ALM键停闹,熄灭发光二极管。
定时比较程序流程图如图3.7所示。
图3.7定时比较程序流程图
第4章总结
通过此次设计使我对应用系统设计思路有了一定的掌握,对硬件和软件的实践。
系统采用6位共阴极数码管从左到右依次显示时、分、秒,采用24小时计时,采用3*4键盘共12个键用于更改时钟和设置启闹时间时输入数据,其中0~9号键位数字键,另外两个键分别用作时间设定/启动计时器(设为C/R键)和闹钟设置/启闹/停闹键(设为ALM键)。
将所学的知识得到了贯通,进一步掌握了独立设计的本领,深入领会单片机应用系统的软、硬件调试方法和系统研制开发过程。
参考文献
[1]陈莘城.实用电子电路设计与调试[M].北京:
中国电力出版社,1993.670-697.
[2]曹巧暖.单片机原理及应用[M].北京:
电子工业出版社,2002-7-2.
[3]刘和平刘钊.PIC18Fxxx单片机程序设计及应用[M].北京:
北京航空航天大学出版社,2005.
[4]田明光.单片机与可编程控制器学习辅导与技能训练[J].山东:
山东科技,2006.
[5]谢维成.单片机原理与应用及C51程序设计[J].北京:
清华大学,2006.
[6]李刚林凌何峰.ADuC845单片机原理开发方法及应用实例[M].西安:
电子工业,2006.
[7]孙俊逸盛秋林张铮.单片机原理及应用[M].北京:
[8]李全利仲伟峰徐军.单片机原理及应用[J].北京:
清华大学出版社,2006.
[9]周航慈.单片机应用程序设计技术(修订版)[M].北京:
北京航空航天大学出版社,2002.
[10]刘文涛.单片机应用开发实例[M].北京:
清华大学出版社,2005.
[11]刘建辉. 单片机智能控制技术[M].北京:
国防工业出版社,2007.
[12]彭为.单片机典型系统设计实例精讲[M].西安:
电子工业出版社,2006.
附录1硬件电路图
图2.1电脑时钟的硬件电路
附录2软件代码
ORG0000H
LJMPMAIN
ORG000BH
LJMPCLOCK
ORG0030H
PORTEQU8000H
PORTAEQU8001H
PORTBEQU8002H
PORTCEQU8003H
DISP0EQU30H
DISP1EQU31H
DISP2EQU32H
DISP3EQU33H
DISP4EQU34H
DISP5EQU35H
HOUREQU3CH
MINEQU3DH
SECEQU3EH
MSECEQU3FH
AHOUREQU40H
AMINEQU41H
ASECEQU42H
F1BITPSW.1
MAIN:
MOVSP,#50H
MOVDPTR,#PORT
MOVA,#03H
MOV@DPTR,A
CLRF1
CLRF0
MOVAHOUR,#0FFH
MOVAMIN,#0FFH
MOVASEC,#0FFH
MOVR7,#10H
MOVR0,#DISP0
CLRA
LOOP:
MOV@R0,A
INCR0
DJNZR7,LOOP
MOVTMOD,#01H
MOVTL0,#0B7H
MOVTH0,#3CH
SETBTR0
SETBEA
SETBET0
BEGIN:
LCALLALARM
LCALLKEYSCAN
CJNEA,#0AH,NEXT1
CLRTR0
MOVR1,#HOUR
LJMPABC
NEXT1:
CJNEA,#0BH,BEGIN
JBF1,NEXT2
MOVR1,#AHOUR
ABC:
SETBF0
LCALLMODIFY
LJMPBEGIN
NEXT2:
SETBP1.0
时间设置/闹钟定时模块
MODIFY:
ACALLKEYIN
LCALLCOMB
RET
KEYIN:
PUSHPSW
PUSHACC
SETBRS1
L1:
CLRRS1
CJNEA;
#0AH,L2
L2:
JNCL1
DJNZR7,L1
POPACC
POPPSW
键盘扫描子程序
KEYSCAN:
ACALLTEST
JNZREMOV
LCALLDISPLAY
LJMPKEYSCAN
REMOV:
ACALLDISPLAY
LCALLTEST
JNZLIST
LIST:
MOVR2,#0FEH
MOVR3,#00H
LINE0:
MOVDPTR,#PORTA
MOVA,R2
MOVX@DPTR,A
MOVDPTR,#PORTC
MOVXA,@DPTR
JBACC.0,LINE1
MOVA,#00H
LJMPTRYK
LINE1:
JBACC.1,LINE2
MOVA,#04H
LINE2:
JBACC.2,NEXT
MOVA,#08H
NEXT:
INCR3
JNBACC.3,EXIT
RLA
MOVR2,A
AJMPLINE0
EXIT:
AJMPKEYSCAN
TRYK:
ADDA,R3
LEKT:
JNZLETK
TEST:
CPLA
ANLA,#07H
显示子程序
DISPLAY:
JBF0,DISP
LCALLSEPA
DISP:
SETBRS0
MOVA,#0FFH
MOVX@DPTR,A
MOVR0,#DISP0
MOVR7,#00H
MOVR6,#06H
MOVR5,#0FFH
DISI:
MOVDPTR,#TAB
MOVA,@R0
MOVCA,@A+DPTR
MOVDPTR,#PORTB
MOVDPTR,#PORTA
MOVA,R5
HERE:
DJNZR7,HERE
MOVA,R5
MOVR5,A
DJNZR6,DISI
CLRRS0
合字子程序
COMB:
MOVR0,#DISP1
LCALLCOMB1
CJNEA,#24H,CHK
CHK:
JNCEXIT1
MOV@R1,A
INCR1
MOVR0,#DISP3
ACALLCOMB1
CJNEA,#60H,CHK2
CHK2:
EXIT1:
LJMPMAIN
COMB1:
ANLA,#0FH
MOV43H,A
DECR0
ANLA,#0FH
SWAPA
ORLA,43H
拆字子程序
SEPA:
MOVR0,#DISP5
MOVA,SEC
ACALLSEPA1
MOVA,MIN
MOVA,HOUR
POPPSW
SEPA1:
MOV44H,A
ANLA,#0F0H
定时比较模块
ALARM:
MOVA,ASEC
CJNEA,SEC,BACK
MOVA,AMIN
CJNEA,MIN,BACK
MOVA,AHOUR
CJNEA,HOUR,BACK
BACK:
RETCLRP1.0
SETBF1
定时器0中断服务程序
CLOCK:
MOVTL0,#0B7H
PUSHPSW
INCMSEC
MOVA,MSEC
CJNEA,#14H,DONE
MOVMSEC,#00H
DAA
MOVSEC,A
CJNEA,#60H,DONE
MOVSEC,#00H
ADDA,#01H
MOVMIN,A
MOVMIN,#00H
ADDA,#01H
DAA
MOVHOUR,A
CJNEA,#24H,DONE
MOVHOUR,#00H
DONE:
RETI
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电脑 时钟 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)