单片机课程设计报告语音报时功能电子钟系统硬件设计

上传人:cn****1 文档编号:553641043 上传时间:2023-09-16 格式:DOC 页数:32 大小:354KB
返回 下载 相关 举报
单片机课程设计报告语音报时功能电子钟系统硬件设计_第1页
第1页 / 共32页
单片机课程设计报告语音报时功能电子钟系统硬件设计_第2页
第2页 / 共32页
单片机课程设计报告语音报时功能电子钟系统硬件设计_第3页
第3页 / 共32页
单片机课程设计报告语音报时功能电子钟系统硬件设计_第4页
第4页 / 共32页
单片机课程设计报告语音报时功能电子钟系统硬件设计_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《单片机课程设计报告语音报时功能电子钟系统硬件设计》由会员分享,可在线阅读,更多相关《单片机课程设计报告语音报时功能电子钟系统硬件设计(32页珍藏版)》请在金锄头文库上搜索。

1、单片机课程设计报告一、 设计内容及要求:1. 根据设计要求,完成带语音报时功能电子钟系统硬件设计,并用电子CAD软件绘制出原理图,编辑、绘制出PCB印制版。要求:(1) 原理图中元件电气图形符号符合国家标准;(2) 整体布局合理,注标规范、明确、美观,不产生歧义。(3) 列出完整的元件清单(标号、型号及大小、封装形式、数量)(4) 图纸幅面为A4。(4) 布局、布线规范合理,满足电磁兼容性要求。(5) 在元件面的丝印层上,给出标号、型号或大小。所有注释信息(包括标号、型号及说明性文字)要规范、明确,不产生歧义。2. 编写并调试驱动程序。功能要求:(1) 电子钟具有显示年、月、日、分、时、秒及星

2、期功能,可识别闰年。(2) 具有星期报警功能;可在一天内设置多达32个报警时间(时分)。报警时,蜂鸣器先鸣响10秒。(3) 能借助键盘设置日期、时间及报警时间。(4) 功能完善、稳定可靠。3. 撰写设计报告。二、 设计摘要与流程图:相关跳线JP101JP102JP105JP106JP201JP202JP203JP204JP205SWDIP1-2 开路2-3 开路1-2短路2-3开路1-2短路2-3 开路1-2短路2-3 开路1-2 开路2-3 短路1-2 开路2-3 短路1-2 短路2-3 开路1-2开路2-3短路1-2短路2-3 开路OFF1通过定时器T2定时和记数,工作于串行方式0。设置定

3、时器存储器,用来存放计时值。然后,考虑1S定时时间到的中断服务子程序,正确调整计时存储器的值。主程序中,按如下步骤执行:(1) 初始化堆栈指针SP,D口的状态,T2, PCON和SCON,8255(U107)可编程并行I/O接口芯片的工作方式,中断控制器(2) 在调试区,初始化年,月日,时分,分秒,闹钟位和星期。(3) 功能键子程序处理Enter键的子程序校时/定时输入子程序T2的中断服务程序各时间单元的计数处理与缓冲区处理子程序判断是否位闰年存放数据、调整数据排列专门处理days_COUNT的子程序处理定时状态下,输入缓冲区时间刷新的子程序串行口UART0的中断服务程序键盘检测,进一步处理定

4、时的子程序,键盘扫描程序、时间比较子程序因此,流程图为:定义各值意义 主程序开始各芯片,储存器,定时器,串行口,调试区等初始化扫描按键输入是否有效 时间比较子程序,判断闹钟报警时间判断按键是功能键还是数字键各时间单元计数处理和缓冲区处理校时定时输入处理各功能键读信息确认,退出,并保存LED显示报警闹钟时间与当前时间比较 2操作并显示: 键盘的分布:较时789年确定456月日取消123时分闹钟设置查0周分秒(2) 通过LED显示年,月日,时分,分秒,闹钟位和星期。(3) 在调试区设置初始年2004,5月1日,12时59分,59分秒,闹钟位12和星期6。(4) 有键盘控制年,月日,时分,分秒,闹钟

5、位和星期的显示,按下键盘SWF显示年份,按下键盘SWE 显示几月几日,按下键盘SWD 显示时分,按下键盘SWC 显示分秒,按下键盘SWB 显示闹钟报警点和星期。(5) 再通过以下几个键盘控制年,月日,时分,分秒,闹钟位和星期的调整和设置:按下键盘UP, 最低位在闪,表示处于调整,此时,按下显示年份的键盘SWF,或按下显示月日份的键盘SWE,或按下显示时分的键盘SWD,有或者按下显示分秒的键盘SWC,再就是按下显示星期的键盘SWB来进行调整,按下键盘SW8,SW5 进行高两位调整,按下键盘SW9,SW6 进行低两位调整;(6) 按下键盘DOWN 进行闹钟,星期报警功能;可在一天内设置多达32个报

6、警时间(时分) 调时,过程如上面所叙;调好后,再按下确定键盘ENTER或按下取消键盘ESC,确定时间或者取消调整的时间,按下键盘SWA就能查询闹钟的设定值,进行核照。三、 部分系统程序的设计:功能键子程序: 由于每个按键都有自己的值,通过CJINE两数比较转移功能,设置键盘DOWN,ESC,ENTER,UP功能定义为定时,取消,确定,校时;把SWF,SWE,SWD,SWC,SWB,SWA定义为显示年,年,月日,时分,分秒,闹钟位,星期和查询功能校时/定时输入子程序: 在调试区和初始化作用下,按键WF,SWE,SWD,SWC,SWB的时间区为1.2.3.4.5,通过判断比较作用下,进行相应的时间

7、区校时,把每一时间段的年,月日,时分,分秒,闹钟位和星期地址送给某寄存器保存起来时间单元的计数处理与缓冲区处理子程序:通过实验六的程序段,仿照它就能年,月日,时分,分秒,闹钟位和星期的计数,同时查表取笔段码把年,月日,时分,分秒,闹钟位和星期的高低位送显示缓冲区 专门处理days_COUNT的子程序:.4.6.9.11月分别有30天,由于闰年时,2月为29天,不是闰年时为28天,除了2.4.6.9.11月外,其他月份有31天,根据这些常识,在经过比较确定其处于哪一月份,在比较天跟当月的天数比较有没有进位,来确定月份是否有进位,再通过天数的变化来确定星期是否达到七天,是否有进位 键盘检测和键盘扫

8、描程序: 判断按键状态,决定其是否执行按键扫描,处于000态,按键末释放;001态时,按键可能刚被释放,不处理;010态,干扰,作000态处理;处于100态,按键已经稳定闭合,进行按键扫描;101态时,干扰,作111态处理。然后参考实验七的程序。 闰年的计算方法: 我们都知道闰年的计算方法,当年份的低两位被四整除,除后的余数为零的话就能判断该年为闰年,反之,该年不是闰年。 确定键功能程序设计: 在校时时,把校时好的年,月日,时分,分秒,闹钟位和星期送回显示缓冲区,定时时,不考虑秒计数单元,计算其地址偏移量,必须把原时间保存起来再回送,同时应把定时设定的时间送定时时间保存区。 时间比较子程序:

9、由于有32个报警点,所以必须循环比较32次,在每个报警点,都要进行年,月日,时分,分秒,星期的比较,看当前时间和闹钟设置的时间是否相等,不等时就判断其是哪段时间的闹钟在报警四、 参考书籍:(1). 潘永雄, 刘向阳等. 电子线路CAD实用教程. 第二版.西安电子科技大学出版2004(2). 新编单片机原理与应用 潘永雄 编著 西安电子科技大学出版(3). 单片机原理与接口技术实验指导书 潘永雄 编著 广东工业大学五、 心得与体会:本设计主要是软件的设计,因为硬件我们用的是实验电路板,其工作已经在开学头完成了。在此主要论述其写软件功能的体会:首先:是一个整体思路的要求,要充分利用内存各个单元,合

10、理安排怎样利用所需的空间,而且要便于在编程时使用简单,例如,同种功能的最好安排在一个连续的空间地址,把相关标志位安排在前面的连续空间,然后在图中找到8255的各个口的地址,再进入主程序中,首先要把所有单元清零,然后再进行初始化各个功能,例如:初始化D口,初始化定时器,初始化PCON,SCON,再启动中断控制口。其次:介绍每个子程序设计时的思路。1.基本的年月日的显示:秒来自系统脉冲,每六十秒向分钟一个进位,每六十分钟向小时一个进位,每二十四小时向日进位,如此下去。2.闰年的判别:先把年的的两位提取出来,用来除于4,若能被4整除说明是闰年,闰年时二月份有29天,若不能被4整除,就不是闰年,此时的

11、二月份就只有28天,其他月份如1,3,5,7,8,10,12月就有31天,2,4,6,9,11只有30天。3。定时状态程序:在进入定时状态时,系统时钟还是照常运行,当我们设定时钟后,按下ENTER键后就保存到内部RAM中,每分钟比较一次,当系统时间与我们所设定的时间相等时峰鸣就报时,系统有32个定时,我们可以设置每天的什么时候闹钟,每个月的什么时候闹钟,每年的什么时候闹钟等等。4.校时功能:一旦进入校时,系统时钟立即停止运行,校时完毕后按下ENTER键,系统时钟立即更改。5.各个功能键的功能:SWF-年 ,SWE-月日,SWD小时分钟,SWC-分钟和秒。SW8,5高两位的显示的调整,SW9,6

12、低两位的显示,UP校时,DOWN定时,SWB闹钟个数和星期显示,ENTER-设置时间或校时后保存。6.缓冲区处理子程序,缓冲区刷新等等,7.串行口UART0的中断服务程序:这个主要用来为数据的发送做好准备,8.键盘检测,扫描程序,首先初始化扫描次数,列地址,扫描初值。根据4列号行号 进行扫描。转换成扫描码.第三写子程序,写好一个子程序后,再进行调试,发现没有问题后再并到主程序中,再进行主程序的调试,调试这个过程是一个痛苦的阶段,有些明显的错误一眼就能看出来,例如:缺一些分号,或者在子程序用到的单元没有在主程序中定义,或者,在初始化堆栈时,有时没有注意到进入的顺序,或者有进无出。有时在把数据送到

13、LED时,发现显示和我们所想要的不一致,这就要求我们要熟悉程序的结构,分析是那个子程序有问题,对症下药,很快就能搞定,这些还比较容易找到和修改。可是当你遇到一些平时没有见过的错误时,即使有时知道错在那里都不知道怎么改动。例如:程序里漏写了一个两个语句,编译时又检测不出来,没有错误,可是当你在硬件调试时就发现不对,此时就不知从何改动了,有时叫一些同学帮忙也搞很久才能完成。第四:设计的缺陷。由于本人的能力有限和时间的关系,没有完成语音功能,没有学到新的东西,很遗憾的是还没有全面理解那块语音芯片的各个功能,语音报时可通过ISDN4002芯片实现(已预先录制了所需的单音字,只需编写段组合播放程序播放即

14、可)。下来有时再向其他同学学习,尽力把语音功能完成。第五:总结,经过这段时间的学习,老师的指点,学到了不少东西,至少对编程有更进一步的了解,对中断等程序有深刻的了解,也对实验电路板有更进一步的结构理解,各个功能有深刻的体会。六、 程序:DISBUF DATA 30H ;显示缓冲区首地址:30H33H用于保存年份;34H35H用于保存月份 ;36H37H用于保存日期;38H39H用于保存小时;3AH3BH用于保存分钟;3CH3DH用于保存秒钟WEEKBUF DATA 3EH ;星期的显示缓冲区为3EH41H(3EH.3FH两单元保存闹钟序号, ;40H单元保留,显示时横为-,41H用于保存星期)T2COUNT DATA 42H ;T2溢出计数单元(1s,用于时间刷新)T2KEY DATA 43H ;T2溢出计数单元(50ms,用于键盘的定时中断扫描)YEARS2 DATA 50H ;年份高两位的计数单元YEARS1 DATA 51H ;年份低两位的计数单元MONTHS DATA 52H ;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

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