单片机原理与应用课程设计单片机电子时钟的设计与实现

上传人:新** 文档编号:558807857 上传时间:2022-09-17 格式:DOC 页数:15 大小:775.50KB
返回 下载 相关 举报
单片机原理与应用课程设计单片机电子时钟的设计与实现_第1页
第1页 / 共15页
单片机原理与应用课程设计单片机电子时钟的设计与实现_第2页
第2页 / 共15页
单片机原理与应用课程设计单片机电子时钟的设计与实现_第3页
第3页 / 共15页
单片机原理与应用课程设计单片机电子时钟的设计与实现_第4页
第4页 / 共15页
单片机原理与应用课程设计单片机电子时钟的设计与实现_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《单片机原理与应用课程设计单片机电子时钟的设计与实现》由会员分享,可在线阅读,更多相关《单片机原理与应用课程设计单片机电子时钟的设计与实现(15页珍藏版)》请在金锄头文库上搜索。

1、 单片机原理与应用课程设计总 结 报 告题目:单片机电子时钟的设计与实现设计人员: 学号:班级: 同组人员: 指导老师: 日期:第一章 总结报告内容一、题目二、主要功能要求三、整体设计框图及整机概述四、各硬件单元电路的设计、参数分析及原理说明五、软件流程图和流程说明六、总结设计及调试的体会七、附录(包括:系统电路图、元器件清单、应用程序清单和参考资料)第二章 课程设计的参考1、系统整体框图按键电源电路单片机LCD显示蜂鸣器2、电子时钟设计的整体思想利用定时器0定时,每隔100ms产生一次中断,中断10次(1s)后秒单元加1;秒单元XX满60后向分单元进位,分单元YY加1;当分单元满60后时单元

2、ZZ加1。3、电子时钟显示设计思想若用六位LED显示,设六位LED显示器的显示缓冲区地址为IINN六个连续的内部RAM单元,时间缓冲区为内部RAM中的XX(秒单元)、YY(分单元)、ZZ(时单元)。由于每个LED显示器只显示一位数字,所以为了实现时间的数码显示,必须调用拆字子程序将时间缓冲区的内容拆开(每个单元拆分为2段,每段的高4位均为0)。比如,XX(秒单元)拆分为2个字节,分别存入显示缓冲单元II和JJ中;YY(分单元)拆分后存入KK、LL单元中;ZZ(时单元)拆分后存入MM、NN单元。然后调用显示子程序显示当前时间。4、电子时钟键盘输入设计思想设置三个按键分别是SET1、SET2、SE

3、T3。SET1用来设置各种状态,按一下为设置闹时时间,按两下为设置走时时间,按三下为设置启停闹时,按四下为运行走时。SET2用来调整闹/走时的小时部分。SET3用来调整闹/走时的分钟部分。在走时状态时,第二位LED(从右往左数)的dp若发光表示开启闹铃。5、蜂鸣器发声原理单片机端口输出的方波经放大滤波后,驱动蜂鸣器发声。端口输出延时控制声音的频率。不同频率可以让蜂鸣器发出长短不同的声音。6、显示方式从数码管显示方式看,数码管分为静态显示和动态显示两种方式。静态显示就是系统中每位数码管的显示值都保持不变,直到显示新值为止;动态显示就是系统工作的每个时刻仅仅显示1位数码管的值,在人眼的视觉暂留效应

4、(时间为100ms)的时间范围内,显示完所有数码管的值。这两种方式各有优缺点,两种方式的比较情况如表所列。实际使用要根据不同需要选用不同的显示方式。比如,设计一个亮暗显示可程序控制的数码管显示系统,控制亮暗实际上就是控制数码管动态刷新时间的问题,因此可以利用动态显示方式。表 数码管静态显示和动态显示方式的比较显示方式n位数码管占用I/O口线数目硬件成本显示亮度CPU干预程序设计静态显示8n较高亮较少简单动态显示N较低较亮需动态刷新较复杂7、影响单片机定时器准确性的原因(1) 单片机电子时钟的计时脉冲基准是由外部晶振的频率经过12分频后提供,采用内部的定时/计数器来实现计时功能。所以,外接晶振频

5、率精确度直接影响电子钟计时的准确性。(2) 大家都知道从定时/计数器产生中断请求到响应中断需要3-8个机器周期,定时中断子程序中的数据入栈和重装定时/计数器的初值还需要占用数个机器周期,还有从中断入口转到中断子程序也要占用一定的机器周期。8、单片机最小系统电路第三章 总结设计及调试的体会经过这几天的实验,我真的彻彻底底地将制作一份作品的流程搞懂了。第一天,刚开始时热情高涨,以为实验很简单,在写程序时不知道怎么动态显示、什么时候动态显示。后来看了一下课本,加上上网查了一下资料,知道了可以在每次计数器溢出中断调用动态显示。在第二、三天画图时,因为protel99SE从以前就只会到画完图,不会自己新

6、制元件和布PCB板。所以画图时还得重新学起,向同学借了protel视频教程来看,一步一步慢慢地完成。终于在第三天晚上,在请教别人如何制版后,经过一系列过程终于把板制出来了。第四天,在下午焊完所有原件后,把程序下载到芯片后,发现数码管不亮。后来用万用表测试一下发现因为第一次布线不懂,认为线细比较好看,导致有些线断了。马上用锡将断了线连上,可数码管还是没亮。打开当时布线的PCB板,才知道接到位选的线没出来,所以没连上。用六条跳线连上后,数码管亮了。第五天早上调试时,发现数码管只亮了几段,用万用表测三极管的电压,发现有几个PNP管截止了。怎么想都不知道错在哪里。后来问了一下老师,是PNP弄反了,把共

7、阳接成共阴的。由于时间不够,再制版也来不及了。总得来说,就是在试验过程中,在一步步检查错误,改正错误中,过得充实也很开心。可惜的是最后PCB板,因为自己的失误,太大意了,没能制成一个漂亮的成功的PCB板,这让我很是懊恼。第四章 流程图及程序程序:ORG 0000H ;程序入口地址 LJMP START ORG 000BH ;定时器0中断入口地址 LJMP TIMER_0 K1 BIT P3.6 ;定义调时按键 K2 BIT P3.7 ;定义调分按键 K3 BIT P1.0START: MOV TMOD,#01H ;定时器0,工作模式1 MOV TH0,#03CH MOV TL0,#0B0H ;

8、赋初值,定时50ms SETB EA ;开中断总开关 SETB TR0 ;开启定时器0 SETB ET0 ;定时器0中断允许位 MOV R6,#0 ;用于控制走时的基准时钟源,计中断次数 MOV R5,#0 ;R5用于控制扫描按键的时间间隔 MOV 20H,#0 ;秒个位寄存器清零 MOV 21H,#0 ;秒十位寄存器清零 MOV 22H,#0 ;分个位寄存器清零 MOV 23H,#0 ;分十位寄存器清零 MOV 24H,#0 ;时个位寄存器清零 MOV 25H,#0 ;时十位寄存器清零 LJMP DISPLAYTIMER_0: CLR EA INC R6 INC R5 MOV TH0,#03

9、CH MOV TL0,#0B0H ;重新赋初值,定时50ms SETB EA RETIADD_TIME: CJNE R6,#20,EXIT ;定时器中断20次,1秒到 MOV R6,#0INC 20H MOV A,20H CJNE A,#10,EXIT ;如果秒个位等于10,清零 MOV 20H,#00H INC 21H MOV A,21H CJNE A,#6,EXIT ;如果秒十位等于6,清零 MOV 21H,#00H INC 22H MIN: MOV A,22H CJNE A,#10,EXIT ;如果分个位等于10,清零 MOV 22H,#00H INC 23H MOV A,23H CJN

10、E A,#6,EXIT ;如果分十位等于6,清零 MOV 23H,#00H INC 24H HOUR: MOV A,25H CJNE A,#2,LOOP ;如果时十位等于2,检查时个位 MOV A,24H CJNE A,#4,EXIT ;如果时个位等于4,清零 MOV 24H,#00H ;清零时个位 MOV 25H,#00H ;清零时十位 LJMP EXIT LOOP: MOV A,24H CJNE A,#10,EXIT ;如果时个位等于10,清零 MOV 24H,#00H INC 25H LJMP EXIT EXIT: LJMP DISPLAY ;刷新完毕,跳转到显示 DISPLAY: MO

11、V DPTR,#TABLE MOV A,20H MOVC A,A+DPTR MOV P0,A CLR P2.0 LCALL DELAY SETB P2.0 ;显示秒个位MOV A,21H MOVC A,A+DPTR MOV P0,A CLR P2.1 LCALL DELAY SETB P2.1 ;显示秒十位 MOV A,#0BFH MOV P0,A CLR P2.2 LCALL DELAY SETB P2.2 ;显示“-”MOV A,22H MOVC A,A+DPTR MOV P0,A CLR P2.3 LCALL DELAY SETB P2.3 ;显示分个位MOV A,23H MOVC A,

12、A+DPTR MOV P0,A CLR P2.4 LCALL DELAY SETB P2.4 ;显示分十位 MOV A,#0BFH MOV P0,A CLR P2.5 LCALL DELAY SETB P2.5 ;显示“-”MOV A,24H MOVC A,A+DPTR MOV P0,A CLR P2.6 LCALL DELAY SETB P2.6 ;显示时个位MOV A,25H MOVC A,A+DPTR MOV P0,A CLR P2.7 LCALL DELAY SETB P2.7 ;显示时十位KEY_SCAN: JNB K1,ADD_HOUR JNB K2,ADD_MIN JNB K3,

13、REST LJMP ADD_TIME ;无键按下,跳至走时ADD_HOUR: INC 24H ;小时加1 LJMP HOUR;更新ADD_MIN: INC 22H ;分钟加1 LJMP MIN ;更新REST: MOV 20H,#0 ;秒个位寄存器清零 MOV 21H,#0 ;秒十位寄存器清零 MOV 22H,#0 ;分个位寄存器清零 MOV 23H,#0 ;分十位寄存器清零 MOV 24H,#0 ;时个位寄存器清零 MOV 25H,#0 ;时十位寄存器清零 LJMP DISPLAYEXIT0: LJMP ADD_TIMEDELAY: MOV R7,#250 ;扫描延时 DJNZ R7,$ RET TABLE: ;数码管字形显示编码表 DB 0C0H,0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号