电子钟设计报告.doc
《电子钟设计报告.doc》由会员分享,可在线阅读,更多相关《电子钟设计报告.doc(29页珍藏版)》请在沃文网上搜索。
1、 目 录一、.设计任务.1二、总体方案设计与方案可行性说明1三、总框图及总体软件设计说明2四、接口电路逻辑图及硬件设计说明4五、主要子程序框图及其设计说明7六、源程序清单(详细注释).14七、调试记录及调试结果25八、系统实现功能与操作说明26九、课程设计总结27十、参考文献28一、 设计任务基于在一个学期内对单片机原理及接口技术以及软件Keilc51汇编语言软件的学习及应用,在课程设计期间通过一个微机应用系统的设计与调试过程,运用微机原理及接口技术课程所学的知识,在设计中加以实践,达到理解、巩固和发展所学内容的目标。通过系统构造、流程设计、编程与调试的过程,掌握分析与解决实际问题的方法与手段
2、,提高系统设计、程序编码与调试方面的实际动手能力,作为从事工程技术工作的一次系统训练。本次课程设计的主要任务是完成数字电子时钟的设计和实现,其主要功能如下:1、 于微机系统上实现时间的正常显示;2、 实现时间的正常调节;3、 实现定时并做到可调,并在预定时间到达时进行报警并且实现可控;4、 整点报时;5、 实现年、月、日的正常显示,并做到年、月、日的可调;本次设计还应注意一下几点事项:1,、对微机系统中的51单片机的内部存储器要进行合理的、有条理的安排和使用,如果没有进行合理安排在设计的过程中,有些相关的内部存储器中存放的数据会出现冲突,导致设计的结果不正常,如:数码管显示不正常出现乱码或频闪
3、跳动等问题;2、对单片机开发系统的硬件在运用时所出现的问题要有更清楚的认识和了解,并且运用程序来防止和减少问题的出现从而影响设计的可行性,如按键部分的抖动问题,在本次设计当中,采用延时的方法来防止按键按下所产生的抖动问题。二、 总体方案设计与方案可行性说明 本次方案的设计以单片机中的定时为主,分别实现时、分、秒、时、年、月、日上的显示和正常进位,在此基础上,总体方案可分为以下四个功能模块:模块一:计时功能模块,以微机开发系统中51单片机的定时功能为主,本次设计采用的计时方式为方式2,并且采用中断方式进行一秒计时,由于51单片机的功能特性的限制,计时的方案由采用100ms计时并且在这个基础上连续
4、循环10次进行秒钟计时,在秒的基础上再分别进行其他时间单位的转化,如此逐渐递进实现总体时间计时的实现。时进制采用24小时进制,年份显示只能实现099之间的显示。模块二:显示功能模块,主要以微机开发系统中的七段数码管实现,显示的主要格式为“时/年分/月秒/日”,其中,年、月、日的显示由微机开发系统中的按键实现切换。模块三:闹钟功能模块:以蜂鸣器的蜂鸣为标志,蜂鸣器工作则表示预定时间到达。闹钟的设定由按键开关实现,闹钟的开关有拨键开关控制。模块四:控制功能模块:主要以微机开发系统 中的按键和拨键开关实现,按键开关主要用作时间设置,日期设置和闹钟设置以及对时间和日期的显示的转换。拨键开关主要用来实现
5、闹钟的开关设置。在按键开关的防抖动处理上,以在程序中进行10ms的延时来进行处理。三、 总框图及总体软件设计说明程序总体框图:开始堆栈初始化:60h年月日暂存地址初始化:3032h秒分时暂存地址初始化:1012h预定时间地址始化:2022h计时设置:方式2 100ms计时1 图 1调用段码转化子程序调用显示子程序调用时间调整子程序调用闹钟警报子程序按键2是否按下按键3是否按下1年月日显示闹钟调整NNYY等待中断按键4是否按下NNY 图 2 总体软件设计说明:在软件设计即程序的编程编程方面,如面的设计框图所示,本次课程设计在程序编写的同时已经将51单片机中的内部存储器进行了一定的规划,其中101
6、2h作为计时方面的暂存器,分别存放秒、分、时上面的内容;2022h上的内容分别存放闹钟上的秒、分、时的内容(20h上的内容为秒,在程序中没有特别定义初值);3032h上的内容为日、月、年上的内容;7077h为显示缓冲区,60h为堆栈的首地址。在计时开始时各存储器上的内容会随着程序的运行而改变,所以只要对各存储器上的内容进行调用和显示就可以实现时间显示,闹钟显示以及日期的显示。由于数码管的显示特点,在进行调用显示之前,须将各存储器的内容进行转化,即数据的高低位分离,高四位和第四位的数值分别存放在不同的显示缓冲区内,进而进行显示调用。 四、 接口电路逻辑图及硬件设计说明 接口电路逻辑图 主机板图3
7、 8255与89S51的连接图4 I2C总线、温度传感器与扬声器的连接图5 键盘与数码管利用8255并行控制开关量图6 拨动开关、按钮与发光二极管的控制本次课程设计的硬件系统主要器件有:89c51单片机,82c55芯片,8个数码管,按键开关,拨键开关,发光二极管,蜂鸣器,以及其他相关器件。本系统中,89c51与两片82c55相连,51单片机程序的运行控制82c55的各端口输入输出、电平的高低进行控制以便更有效地对数码管、发光二极管、开关以及其他外部电路器件进行更有效和合理的控制。如上图所示的各功能模块,在本次设计中主要利用到键盘与数码管以及拨动开关,按键开关控制部分。第一片8255(连接发光二
8、极管与开关)的端口取为PA口:FD00H,PB口:FD01H,PC口:FD02H,控制口:FD03H。控制字应使得PA口输出,PB、PC口输入,为8BH。第二片8255(连接数码管)的端口地址取为FE00HFE03H,为用PC口控制键盘,控制字取为81H.PA口用于送字段码,PB口用于送字位码。五、 主要子程序框图及其设计说明1、 中断子程序(JISHI):开始R20秒位加1(10h)10h=?60重新载入计时初值R2-1=?0 秒位清0分位加1(11h)11h=?60分位清0时位加1(12h) 12h=?24 时位清0调用RIQI子程序返回NNNYYY所利用资源:内部寄存器R0 R2内部存储
9、器 10h12h所调用子程序:RIQI 图 72、 日历子程序(RIQI):开始日位加1(30h)进入月份判断是否为12月是否为闰年年位除于4是否有余数4、6、9、11月30h(日位)=?301、3、5、7、8、10、12月30h(日位)=?3130h=?2830h=?29YNY月位(31h)加1,日位(30h)为1年位(32h)加1,月位(31h)日位(30h)为1NY月位(31h)加1,日位(30h)为1月位(31h)加1,日位(30h)为1Y返回NNYN所利用资源:内部寄存器R0 R1内部存储器 30h32h 图 83、调时子程序(TIAO):分位(11h)加111h是否为60调用断码转
10、化子程序调用显示子程序开始按键0是否按下按键1是否按下时位(12h)加112h是否为24时位(12h)清0或分位(11h)清0返回YYYNNN 图 9所利用资源:内部寄存器R0 A内部存储器 10h12h 25h所调用子程序:CHANGE DISP4、闹钟设定子程序(DING):开始调用断码转化子程序调用显示子程序按键0是否按下按键1是否按下按键4是否按下预定分位(21h)加1,21h是否为24时位(12h)清0或分位(11h)清0预定时位(22h)加1,22h是否为24返回YYYNNN 图 10所利用资源:内部寄存器R0 A内部存储器 20h22h 25h所调用子程序:CHANGE DISP
11、5、日期显示子程序(RILI)按键0是否按下按键4是否按下按键1是否按下按键2是否按下调用断码转化子程序调用显示子程序开始日位(30h)加1月位(31h)加1年位(32h)加1返回NNNNYYYY 图 11所利用资源:内部寄存器R0 R2内部存储器 30h32h 25h所调用子程序:CHANGE DISP 6、警报子程序(WARN):开始P3.2清0蜂鸣器工作预定时位(22h)与实际时位(12h) 是否相等预定分位(21h)与实际分位(11h) 是否相等拨键7是否拨动P3.2置1关闭蜂鸣器返回NNYYNY 图 12所利用资源:内部寄存器R0 A内部存储器 20h22h 25h 10h12h7、
12、断码转化子程序开始设置指针R0指向(10h,20h,30h)R1=70hR7=3A=R0 B=10 A/BR1=A R1加1R1=B R1加1R1=10(存“断码) R1加1 R7-1=?0返回NY 图 13所利用资源:内部寄存器R0 R1 R7 A B内部存储器 70h77h 25h六、 源程序清单(详细注释)ORG 0000H LCALL DELAY LJMP MAIN ORG 000BH LJMP JISHI ORG 0100HMAIN: MOV SP,#60H ;堆栈首地址设置 MOV R2,#10 : 装入中断次数 MOV 30H,#27 ; (日) 日期暂存地址初始化 MOV 31
13、H,#2 ; (月) MOV 32H,#00 ; (年) MOV 20H,#0 ; (秒) 预定时间暂存地址初始化 MOV 21H,#58 ; (分) MOV 22H,#9 ; (时) MOV 10H,#0 ; (秒) 实际时间暂存地址初始化 MOV 11H,#58 ; (分) MOV 12H,#23 ; (时) KAISHI:MOV TMOD,#01H ; 选择T0为方式一计时 SETB ET0 ; 允许T0申请中断 SETB EA ; 总中断允许 MOV TL0,#0B0H ; 初始值设定 MOV TH0,#3CH SETB TR0 ; 开始计时HERE: LCALL CHANGE ; 调
14、用断码转化子程序 LCALL DISP : 调用显示子程序 LCALL TIAO ; 调用调时子程序 LCALL WARN ; 调用警报子程序 MOV DPTR,#0FD03H ; 8255初始化 MOV A,#8BH MOVX DPTR,A MOV DPTR,#0FD01H MOVX A,DPTR JNB ACC.2,LPP ;判断按键2是否按下,按下转移 JNB ACC.3,LPP1 ;判断按键3是否按下,按下转移 LJMP HERE ;等待中断 LPP: LCALL DELAY1 ;延时10ms,用于按键防抖动 LCALL DING ;调用定时子程序 LJMP HERE ; 等待中断LP
15、P1: LCALL DELAY1 ; 延时10ms,用于按键防抖动 LCALL RILI ; 调用日历显示子程序 LJMP HERE ; 等待中断*日历显示子程序RILI: PUSH PSW ; 断点地址保护 PUSH AccYEAR: MOV 25H,#30H ; 设置断码转化内容首地址 LCALL CHANGE ; 调用断码转化子程序 LCALL DISP ; 调用显示子程序 MOV DPTR,#0FD03H ; 8255初始化 MOV A,#8BH MOVX DPTR,A MOV DPTR,#0FD01H MOVX A,DPTR JNB ACC.0,SYEAR ; 判断按键0是否按下,按
16、下转移 JNB ACC.1,SMON ; 判断按键1是否按下,按下转移 JNB ACC.2,SDAY ; 判断按键2是否按下,按下转移 JNB ACC.4,LOVER ; 判断按键4是否按下,按下转移 LJMP YEARSYEAR: LCALL DELAY1 ;年份调节 MOV R0,#32H INC 32H CJNE R0,#100,YEAR MOV 32H,#0 LJMP YEARSMON: LCALL DELAY1 ; 月份调节 MOV R0,#31H INC 31H CJNE R0,#13,YEAR MOV 31H,#01 LJMP YEARSDAY: LCALL DELAY1 ; 日
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子钟 设计 报告
