电脑时钟课程设计.docx
- 文档编号:7503733
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:15
- 大小:45.75KB
电脑时钟课程设计.docx
《电脑时钟课程设计.docx》由会员分享,可在线阅读,更多相关《电脑时钟课程设计.docx(15页珍藏版)》请在冰豆网上搜索。
电脑时钟课程设计
设计说明书
设计题目电脑时钟
完成日期年月日
专业班级电自09-2班
设计者于同学
指导教师李老师
前言
随着社会的发展,电子技术也在不断的进步。
单片机自20世纪70以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机体积重量轻、抗干扰能力强、坏境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
在我国,单片机已经广为应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、机电一体化设备等各个方面。
时钟,自从他发明那天起,就成为人类的好朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。
怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?
这就要求人们不断设计出新型时钟。
现今,高精度的时钟工具大多数都使用了石英晶体振荡器,由于电子钟,石英钟,石英表都采用了石英技术,英雌走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译译码代替机械式传动,用LED显示器代替了显示器显示和指针显示,减小了显示误差,这种表具有时、分、秒显示时间的功能,和还可以进行十和分的校对,片选的灵活性好。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。
在一个单片机应用系统中,时钟有两方面的含义:
一是指为系统的正常工作的基准振荡定时信号,主要是由晶振和外围电路组成,晶振的频率决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:
一是用软件实现,二是用专门的时钟芯片实现。
现在我国的电子业发展非常快速,电子业的发展有利于钟表业的发展。
在中国钟表发展史上,国产机芯研制的失败已经成为过去,“组装业”作为新兴钟表工业的起步阶段也已成为过去。
一支新的充满智慧的钟表精英在成长。
我们相信在科技高速发展的今天,钟表业运用当今材料工业、电子工业和其他领域的最新技术,一定会生产出代表中国科学水平的产品。
我们希望钟表业的精英们在提高制造技术水平中不断创新,培育出拥有自主知识产权的品牌。
这正是中国钟表业发展的希望。
数字钟被广泛用于个人家庭,车站,码头、办公室等公共场所,成为人们日常生活中的必需品。
由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,运用超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
本设计主要用单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成一个单片机数字时钟。
目录
第一章:
总体设计
第二章:
设计图纸
(备用电源自动充电、数字时钟主电路)
第三章:
设计程序
第四章:
设计调试
第五章:
设计总结
第六章:
参考文献
第七章:
第一章:
总体设计
设计题目:
数字时钟
设计目的:
1、掌握开发单片机产品的过程。
2、掌握单片机结构及其工作原理。
3、掌握软件的编制方法。
4、掌握单片机产品的调试方法。
设计任务:
用单片机设计一个电脑时钟。
要求:
编程时间为24小时制,超过24小时从0开始
要有设置时间的按键,以便对表。
采用发光数码管显示年月日时分秒。
供电电源:
交流220V
备用电池自动充电,避免停电后时间错误。
设计要求:
画出所有硬件电路,出图:
A3或A4图纸一张
根据硬件编写程序框图,然后根据框图编写程序,在程序中加上适当的注释。
编写设计说明书,包括设计目的、程序框图、程序、程序分析、产品使用说明、附设计任务书和硬件图纸。
(附电子稿)
设计技术参数:
1.时制式为24小时制。
2.采用LED数码管显示时、分,秒采用数字显示。
3.具有方便的时间调校功能。
4.计时稳定度优于10-4,可精确校正计时精度。
5.交流220V供电,但停电24小内要维持正常计时(停电可不显示时间)。
6.其它附加功能(显示年、月、星期、报时、停电查看时间)
第二章:
设计图纸
备用电源自动充电
数字时钟主电路
第三章:
设计程序
;=====================================================================
DISPBIT20H.0;DISP=1允许显示
ORG0000H;复位入口地址
LJMPSTART;无条件转移到程序初始化
ORG0003H;外中断0
ORG000BH;定时器T0
ORG0013H;外中断1
ORG001BH;定时器T1
LJMPT1S;转移到T1中断服务程序开始的地方
ORG0023H;串行口中断入口地址
ORG0050H
;=============================程序开始==============================
;===========================开始初始化==============================
START:
MOVTMOD,#00100000B;T1方式2
MOVTH1,#06H;设置计数初值
MOVTL1,#06H
SETBTR1;启动T1
MOVIE,#88H;中断允许
SETBEA;开启中断
SETBET1;定时器T1中断允许
MOVIP,#00001000B;中断优先级
SETBPT1;定时器T1中断优先级控制位
MOVSCON,#00H;串行口方式0
SETBDISP;设置允许显示标志,开始就显示000000
MOV52H,#37;数据传送
MOV53H,#59;数据传送
MOV54H,#21;数据传送
MOV55H,#23;数据传送
MOV56H,#06;数据传送
MOV57H,#11;数据传送
MOV58H,#20;数据传送
;=========================以上初始化程序==========================
LOOOP:
NOP;主程序循环开始JNBDISP,LOOOP
JNBDISP,LOOOP1;DISP=0转移
LCALLDISPLAY;调用DISPLAY
CLRDISP;清除允许显示标志
LOOOP1:
NOP
CALLANJIAN;调用按键程序
LJMPLOOOP;等待中断,主程序循环结束
;=========================以上主程序============================
ANJIAN:
NOP
MOVA,P1
CPLA
JZANJIAN0
LJMPANJIAN1
ANJIAN0:
LJMPANJIANZ
ANJIAN1:
JBP1.0,ANJIAN2
lCALLDELAY10MS;调用延时子程序,以躲过按键机械抖动
JNBP1.0,$;等待按键释放,按键放开事后开始处理
INC52H;分加1
MOVA,52H
CJNEA,#60,$+3
JCANJIANY;小于60秒不转移
MOV52H,#0
lJMPANJIANY
ANJIAN2:
JBP1.1,ANJIAN3
lCALLDELAY10MS;调用延时子程序,以躲过按键机械抖动
JNBP1.1,$;等待按键释放,按键放开事后开始处理
INC53H;分加1
MOVA,53H
CJNEA,#60,$+3
JCANJIANY;小于60分不转移
MOV53H,#0
lJMPANJIANY
ANJIAN3:
JBP1.2,ANJIAN4
lCALLDELAY10MS;调用延时子程序,以躲过按键机械抖动
JNBP1.2,$;等待按键释放,按键放开事后开始处理
INC54H
MOVA,54H
CJNEA,#24,$+3
JCANJIANY;小于24小时不转移
MOV54H,#0
lJMPANJIANY
ANJIAN4:
JBP1.3,ANJIAN5
lCALLDELAY10MS;调用延时子程序,以躲过按键机械抖动
JNBP1.3,$;等待按键释放,按键放开事后开始处理
INC55H
MOVA,55H
CJNEA,#30,$+3
JCANJIANY;小于30天不转移
MOV55H,#0
lJMPANJIANY
ANJIAN5:
JBP1.4,ANJIAN6
lCALLDELAY10MS;调用延时子程序,以躲过按键机械抖动
JNBP1.4,$;等待按键释放,按键放开事后开始处理
INC55H
MOVA,55H
CJNEA,#99,$+3
JCANJIANY;小于12个月不转移
MOV55H,#0
lJMPANJIANY
ANJIAN6:
JBP1.5,ANJIANZ
lCALLDELAY10MS;调用延时子程序,以躲过按键机械抖动
JNBP1.5,$;等待按键释放,按键放开事后开始处理
INC56H
MOVA,56H
CJNEA,#99,$+3
JCANJIANZ
MOV56H,#0
lJMPANJIANZ
ANJIANY:
SETBDISP;允许显示
ANJIANZ:
RET
;==========================以上键程序结束===========================
;=======================延时10毫秒子程序开始========================
DELAY10MS:
NOP
MOVR5,#10
D10MS1:
MOVR4,#250
D10MS2:
NOP
NOP
DJNZR4,D10MS2
DJNZR5,D10MS1
RET
;=============================结束==============================
;====================以下子程序和中断服务程序=====================
;=========================显示子程序开始=========================
DISPLAY:
NOP
CLRDISP;清除允许显示标志
MOVA,52H;读秒的值到A
MOVR1,#4DH;秒个位存放地址
CALLB2D;调用二到十子程序,得到2位十进制数,分离BCD码
MOVA,53H
CALLB2D;调用二到十子程序,得到2位十进制数,分离BCD码
MOVA,54H
CALLB2D;调用二到十子程序,得到2位十进制数,分离BCD码
MOVA,55H
CALLB2D;调用二到十子程序,得到2位十进制数,分离BCD码
MOVA,56H
CALLB2D;调用二到十子程序,得到2位十进制数,分离BCD码
MOVA,57H
CALLB2D;调用二到十子程序,得到2位十进制数,分离BCD码
MOVA,58H
CALLB2D调用二到十子程序,得到2位十进制数,分离BCD码
NOP
MOVR1,#0;显示秒个位
MOVA,4DH
LCALLCHABIAO;调用查表指令
MOVX@R1,A
MOVR1,#1;显示秒十位
MOVA,4CH
LCALLCHABIAO;调用查表指令
MOVX@R1,A
MOVR1,#2;显示分个位
MOVA,4BH
LCALLCHABIAO;调用查表指令
MOVX@R1,A
MOVR1,#3;显示分十位
MOVA,4AH
LCALLCHABIAO;调用查表指令
MOVX@R1,A
MOVR1,#4;显示小时个位
MOVA,49H
LCALLCHABIAO;调用查表指令
MOVX@R1,A
MOVR1,#5;显示小时十位
MOVA,48H
LCALLCHABIAO;调用查表指令
MOVX@R1,A
MOVR1,#6;显示天个位
MOVA,47H
LCALLCHABIAO;调用查表指令
MOVX@R1,A
MOVR1,#7;显示天十位
MOVA,46H
LCALLCHABIAO;调用查表指令
MOVX@R1,A
MOVR1,#8;显示月个位
MOVA,45H
LCALLCHABIAO;调用查表指令
MOVX@R1,A
MOVR1,#9;显示月十位
MOVA,44H
LCALLCHABIAO;调用查表指令
MOVX@R1,A
MOVR1,#10;显示年个位
MOVA,43H
LCALLCHABIAO;调用查表指令
MOVX@R1,A
MOVR1,#11;显示年十位
MOVA,42H
LCALLCHABIAO;调用查表指令
MOVX@R1,A
MOVR1,#12;显示年百位
MOVA,41H
LCALLCHABIAO;调用查表指令
MOVX@R1,A
MOVR1,#13;显示年千位
MOVA,40H
LCALLCHABIAO;调用查表指令
MOVX@R1,A
;===========================显示子程序结束==========================
;======================二进制转换到十进制子程序开始===================
B2D:
NOP;二进制在A,保存地址在R1
MOVB,#10;除数
DIVAB;二进制除以十,商在A(十位),余数在B(个位)
MOV@R1,B;保存个位
DECR1;地址减1
MOV@R1,A;保存十位
DECR1
RET
;=====================二进制转换到十进制子程序结束====================
;==========================查表子程序开始===========================
CHABIAO:
NOP
MOVDPTR,#TAB
MOVCA,@A+DPTR;查表指令
CPLA
RET
TAB:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
;==========================查表子程序结束===========================
;==========================中断服务程序开始=========================
ORG0200H;中断服务程序开始
T1S:
NOP;T1中断服务程序入口
PUSHACC
PUSHPSW
INC50H;52H单元加1指令
MOVA,50H;数据传送给A便于比较
CJNEA,#100,T1A;比较不相等转移
T1A:
JCT1Z;如果A<100则C=1,转移到中断结束
MOV50H,#00H;50H单元从头开始
INC51H;51H单元加1
MOVA,51H;数据传送给A便于比较
CJNEA,#40,T1B;比较不相等转移
T1B:
JCT1Z;如果A<40则C=1,转移到中断结束
MOV51H,#00H;51H单元从头开始
SETBDISP;允许显示标志
INC52H;秒加1指令
MOVA,52H;数据传送给A便于比较
CJNEA,#60,T1C;比较不相等转移
T1C:
JCT1Z;如果A<60则C=1,转移到中断结束
MOV52H,#00H;52H单元从头开始
INC53H;53H单元加1指令
MOVA,53H;数据传送给A便于比较
CJNEA,#60,T1D;比较不相等转移
T1D:
JCT1Z;如果A<60则C=1,转移到中断结束
MOV53H,#00H;53H单元从头开始
INC54H;54H单元加1指令
MOVA,54H;数据传送给A便于比较
CJNEA,#24,T1E;比较不相等转移
T1E:
JCT1Z;如果A<24则C=1,转移到中断结束
MOV54H,#00H;52H单元从头开始
INC55H;53H单元加1指令
MOVA,55H;数据传送给A便于比较
CJNEA,#30,T1H;比较不相等转移
T1H:
JCT1Z;如果A<30则C=1,转移到中断结束
MOV55H,#00H;54H单元从头开始
INC56H;55H单元加1指令
MOVA,56H;数据传送给A便于比较
CJNEA,#12,T1I;比较不相等转移
T1I:
JCT1Z;如果A<12则C=1,转移到中断结束
MOV56H,#00H;54H单元从头开始
INC57H;55H单元加1指令
T1Z:
POPPSW
POPACC
RETI;中断服务程序结束
END
;==========================中断服务程序结束=========================
第四章:
设计调试
我们通过软硬结合的方法调试系统,将已经运行成功的程序写到单片机中,通过对各个按键的按下进行调试与功能切换。
过在电脑上使用WAVE编译器,进行程序的编程和编译,发现很多语法和逻辑的错误。
通过这个编译器可以很好的发现并解决问题,程序调试完毕,编译没问题后,按住囊下载程序,并用并口下载线使电脑和单片机连接起来,将程序下载到单片机上,并进行测试,并分析程序,直到完成要求为止。
第五章:
设计总结
结合数字电子技术和模拟电子技术的知识和一周时间的努力,完成了数字电子钟的课程设计。
这不仅让我温习了学过的知识,同时让我了解了设计电路的程序,以及数字钟的原理与设计。
同时在软件设计编程上,让我了解到很多编程方面的技巧,并且使我对单片机的各个引脚的功能有更深入的了解,巩固了单片机的书面知识,发现了以往在学习中忽视的东西,明白了在实际的设计工作中只有书面知识是不足的,只有在自己的实践中才能发现问题并解决问题,从而不再犯眼高手低的错误。
虽然这只是一次简单的课程设计,但通过这次课程设计我们了解了课程设计的一般步骤,和设计中应注意的问题。
设计本身并不是有很重要的意义,而是同学们对待问题时的态度和处理事情的能力。
至于设计的成绩无须看的太过于重要,而是设计的过程,设计的思想和设计电路中的每一个环节,电路中各个部分的功能是如何实现的。
各个芯片能够完成什么样的功能,使用芯片时应该注意那些要点。
同一个电路可以用那些芯片实现,各个芯片实现同一个功能的区别。
总体来说,通过这次的设计实验更进一步地增强了实验的动手能力,提高组成系统、编程、调试的动手能力,为自己将来的工作,打下了坚实的基础。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电脑 时钟 课程设计