版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息工程学院课程设计湖北民族学院课程设计报告数字时钟设计与仿真课 程: 电子线路课程设计 专 业: 电子信息科学与技术班 级: 0312409 学 号: 031240910 学生姓名: 谢加龙 指导教师: 易金桥 2014年 06月 21日信息工程学院课程设计任务书学 号031240910学生姓名谢加龙专业(班级)0312409设计题目数字时钟设计与仿真设计技术参数单片机AT87C5I驱动芯片74LS04 74LS245 蜂鸣器14MO +5V晶振 12MHz电容22u 33p(2)电阻220 1K(2)三极管 PNP S8550按键开关设计要求(1)、 要求准确显示“时”、“分”、“秒”,2
2、4 小时制;(2)、 具有整点报时功能,在每小时59 分51 秒、53 秒、55 秒、57 秒发出低音,59秒整发出高音;(3)、系统工作符合一般时钟要求。(4)、具有校时功能,用户可修改“时”、“分”,且互不影响;(5)、可切换12 小时制和24 小时制。参考资料【1】.王守中 51单片机应用开发速查手册 人民邮电出版社P417 2009年4月第一版【2】.彭东明 韦友春 邱少龙 单片机实验教程 北京理工大学出版社P137 2007年2月第一版【3】.韩志军 单片机系统的设计与应用实例 机械工业出版社P160 2010年2月第二版【4】. 陶春明 单片机实用技术 人民邮电出版社 2008年4
3、月第一版【5】.单片机数字电子时钟毕业设计 百度文库 2010-06-19【6】.电子时钟 百度文库 2010-08-06 2014-06-21 学生姓名: 谢加龙 学号: 031240910 专业(班级): 0312409 课程设计题目: 数字时钟设计与仿真 成绩: 指导教师: 2014年 06月21 日摘 要基于单片机AT89c51设计而成的简易数字电子时钟,其主要功能皆由对单片机编程即由软件完成,外围硬件电路只包括报时电路、键盘输入电路和显示电路三个模块。具有外围硬件电路简单、运行功能可靠的优点。关键词:单片机 时钟 键盘输入 显示目录1、系统设计要求 11.1 基本功能11.2扩展功能
4、12、硬件设计22.1系统设计方案选择22.2系统原理框图22.3各单元的功能描述22.4电路连接图22.5元器件清单列表22.6所用芯片的管脚图23、软件设计 33.1主程序的流程图33.2键盘扫描程序流程图33.3发声程序流程图33.4总程序34、调试 44.1仿真调试44.2硬件调试45、总结5参考文献61、系统设计要求1.1 基本功能(1)、 要求准确显示“时”、“分”、“秒”,24 小时制;(2)、 具有整点报时功能,在每小时59 分51 秒、53 秒、55 秒、57 秒发出低音,59秒整发出高音;(3)、系统工作符合一般时钟要求。1.2扩展功能:(1)、具有校时功能,用户可修改“时
5、”、“分”,且互不影响;(2)、可切换12 小时制和24 小时制。2、 硬件总体设计方案2.1系统设计方案选择本次设计时钟电路,最初的设想方案是用AT89C51单片机芯片控制外围电路,用6位共阴数码管显示时间,用上拉电阻来驱动数码管的显示,用按键来调时和实现12小时制和24小时制的转换,用喇叭进行整点报时,单片机编程用汇编语言。但由于在编程过程中,汇编语言指令多、编程难,因此改为用C语言编程。在用C语言编程来实现用按键转换12小时制和24小时制的时候遇到了困难,因此又把按键改为开关。另外学校只有4位和2位及1位的共阳数码管,因此又把6位共阴数码管换掉,同时接受老师的建议,把数码管的驱动电路改为
6、数码管的段选用74LS245来驱动,位选用74LS04驱动。最后在领元件的时候老师说单片机也不能驱动喇叭,把喇叭换成蜂鸣器。因此我们最后的方案是:使用AT89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂;使用键盘键上的按键来调整时钟的时、分以及键盘上的开关实现12小时制和24小时制的转换;用一蜂鸣器来进行整点报时;同时使用C语言编程,使得编程变得更容易;用一个4位和一个2位共阳数码管来显示时间,且数码管的段选用74LS245来驱动,位选用74LS04驱动。这样通过四个模块:键盘、单片机芯片、蜂鸣器、数码管显示即可满足设计要求。2.2系统原理框图此电路包括
7、以下四个部分:单片机,键盘,报时电路及显示电路。设计原理框图如图3-1所示蜂鸣器报时51单片机独立键盘数码管显示 图3-1 设计原理框图2.3各单元的功能描述(1) 对单片机进行编程,使主要功能由软件控制实现,从而简化硬件电路。(2) 单片机通过程序控制输出各种电脉冲信号来驱动数码管以及报时电路的正常工作。(3) 单片机通过对端口高低电平的扫描从而判断键盘的工作情况,键盘通过单片机输出来影响显示电路和报时电路的工作。整个电路的工作流程为:单片机内部计数器持续计数,得到的数据通过程序的控制转化成时间,并通过对输出端口输出不同的高低电平来控制数码管和蜂鸣器的工作。与此同时,单片机还在不停地扫描连接
8、键盘的输入端口,通过得到输入端口的不同电平来判断键盘的工作情况,再通过程序的控制来影响数码管和蜂鸣器的工作。2.4电路连接图设计的电路主要由四模块构成:单片机控制电路,显示电路、报时电路以及调时电路。详细电路功能图如图3-2:23图3-2 详细电路功能图该电路的单片机复位采用上电复位,即给电路一通电,电路就从程序最初设置的状态开始工作。为了方便检测报时,我们把时钟的初始值设为00点59分48秒,当电路一通电,数码管就显示此值,三秒后蜂鸣器开始发音报时,并按59 分51 秒、53 秒、55 秒、57 秒发出低音,59秒整发出高音的规律发音。图中三个按键开关从上到下一次为小时加1、分钟加1按键和1
9、2/24转换开关,即按一下小时加1或分钟加1按键则小时或分钟自动加1,按下进制转换开关为12进制,断开进制转换开关为24进制.2.5元器件清单列表2.6所用芯片的管脚图4位共阳数码管引脚图74LS04管脚图74LS245管脚最后实物图3、软件设计流程及描述3.1主程序的流程图程序设计的总体思路是:首先在主程序里初始化单片机的计数器,使单片机计数器一直计数,然后给主程序设定一个死循环,在这个死循环里,主程序在不断地调用键盘扫描、显示和发音三个子程序,而时钟功能在子程序中设计完成。主程序的流程图如图4-1所示。程序头文件定义全局变量延时程序发声程序显示程序键盘扫描程序主程序单片机的初始化调用键盘扫
10、描显示发声时间计数程序图4-1 主程序流程图3.2键盘扫描程序流程图小时加1按键定义在单片机的P30端口,分钟加1按键定义为P31端口,12/24转换开关定义为P32端口。单片机端口默认输出为高电平,当按一下小时(分钟)加1键时,延时10ms,此时单片机端口与地相连,呈低电平,单片机检测到该电平时,对小时(分钟)加1。同理,按下12/24转换键,延时10ms,P32端口为低电平,单片机检测到该电平时,把时间转化为12小时制并通过显示电路显示出来。其流程图如图4-2所示。扫描P32=0?P31=0?P30=0?NNNYYY12小时制m+h+显示图4-2键盘扫描流程图3.3发声程序流程图蜂鸣器低电
11、位端通过三极管连接到单片机的P33端口,高电位端接一5v电压。单片机端口默认输出为高电平,当单片机检测到已符合报时条件时,给P33端口取反,使其变为低电位,蜂鸣器导通,根据程序中定义的不同频率而发出不同的高低音。其流程如图4-3所示。检验时间m=59?s=51|53|55|57?;s=59?BUZ =BUZ; Delayms(55);发音BUZ =BUZ; Delayms(80);NYNYNY图4-3发声程序流程图3.4总程序#include<reg51.h>sbit BUZ =P33;sbit HOURADD=P30;/小时加1sbit MITADD=P31;/分钟加1sbit
12、change=P32;/进制转换unsigned int tmcnt;/定时器计数unsigned int h=0,m=59,s=50;/h为小时,m为分钟,s为秒钟unsigned char code seg7=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/共阳数码管0-9码值unsigned char code disp=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/位扫描unsigned char data disdata6;void Delayms(int ms) /延时函数 while(ms) unsigned
13、char i;for (i=0; i<120; i+); ms-; void display()/扫描显示 unsigned char i; disdata0=h/10;/数据处理,小时高位 disdata1=h%10;/小时低位 disdata2=m/10;/分钟高位 disdata3=m%10;/分钟低位 disdata4=s/10;/秒钟高位 disdata5=s%10;/秒钟低位 for(i=0;i<6;i+)/循环显示 P1=0xff; P1=seg7disdatai;P2=dispi;Delayms(2);/显示延时 void time0(void)interrupt
14、1 using 0 /时间计数函数 TH0=0xfc;/计数器高八位赋初值 TL0=0x18;/计数器低八位赋初值 if(+tmcnt=1000)/计数1000次1秒 tmcnt=0; s+; if(s=60) s=0; m+; if(m=60) m=0; h+; if(change=0&&h=12)/按下进制转换键为12进制 h=0; if(change=1&&h=24)/未按下进制转换键为24进制 h=0; void voice()/发声函数 if(m=59)&&(s=51)/判断时间符合低音条件 BUZ =BUZ; Delayms(80);
15、 if(m=59)&&(s=53)/判断时间符合低音条件 BUZ =BUZ; Delayms(80); if(m=59)&&(s=55)/判断时间符合低音条件 BUZ =BUZ; Delayms(80); if(m=59)&&(s=57)/判断时间符合低音条件 BUZ =BUZ; Delayms(80); if(m=59)&&(s=59)/判断时间符合高音条件 BUZ =BUZ; Delayms(55); void keyscan()/键盘扫描 if(change=0)/判断是否按下进制转换键, Delayms(10); if(c
16、hange=0&&h>=12)/若h>12,则执行h-12,转换成12进制 h=h-12; if(HOURADD=0)/判断是否按下小时加1键 Delayms(10); if(HOURADD=0) while(HOURADD=0); h+; if(h=24) h=0; if(MITADD=0)/判断是否按下分钟加1键 Delayms(10); if(MITADD=0) while(MITADD=0); m+; if(m=60) m=0; main() unsigned int time(); TMOD=0x01;/软件启动计数器、工作方式为方式1 EA=1;ET0=
17、1;/允许定时计数器中断 TR0=1;/启动计数 while(1) keyscan();/扫描键盘 display();/显示 voice();/发声 4、调试4.1仿真调试4.1.1共阳数码管的显示的调试 我们最开始用的数码管是共阴数码管,由于所领元件为共阳,于是将程序中的共阴段选码改为共阳段选码,编译后重新仿真。但共阳数码管不显示,我们怀疑位选也需要改变,但是通过查阅大量资料,我们组员一致认为跟位选无关。通过多次试验性的调试无果之后,我们给单片机重新加载了一次程序,怀着不报任何希望的心情再次调试,这次居然成功了。从共阳数码管的显示的调试中,我们认识到:每次修改了程序之后要重新加载一次程序,
18、否则单片机运行的仍然是未修改之前的程序。在后面的把P0端口改为P1端口时我们也遇到了同样的问题。4.1.2蜂鸣器发音的调试起初设计方案为用喇叭发音,考虑到驱动问题,就换成了蜂鸣器。在用蜂鸣器进行仿真调试时,我们遇到了困难:蜂鸣器不发音。我们修改了三极管的串联电阻的阻值,把蜂鸣器的高位端电压由5v改为9v,改变了程序中的发音频率,蜂鸣器始终不发音。我们通过查阅大量资料,请教老师,最后把蜂鸣器自身的频率调大,蜂鸣器终于响了。但蜂鸣器的发出的声音没有高低音之分,我们又修改发音频率,即修改延时时间。该延时只能在很小的范围内变化,超出了该范围,蜂鸣器也不发音。 从蜂鸣器的发音调试中,我认识到喇叭和蜂鸣器
19、有较大的区别:如喇叭的阻值为8而我们测出来的蜂鸣器的阻值为14M,另外喇叭和蜂鸣器的发音频率也不同,在交换着两个元件时对其驱动电压、自身频率、发音频率均需作出改变。4.2硬件调试我们给硬件通电,数码管显示全8,蜂鸣器一直发音,及蜂鸣器和数码管的每一位每一段都一直导通,而且数码管的显示很微弱。我们把蜂鸣器的9v驱动电压改为5v,又仔细检查我们的硬件电路,首先检查出来的错误是驱动芯片74LS245的接地端未接地,将其接地以后再通电,数码管仍然显示全8,蜂鸣器仍然一直发音,但数码管的显示要亮一些了。数码管和蜂鸣器一直导通的原因,我们怀疑是震荡电路没起作用或者单片机是坏的。我们先检测震荡电路的情况,用
20、示波器测出来的信号杂乱无章,于是我们又检测震荡电路的连接情况,发现震荡电路未接地。将其接地后再测试,数码管仍然显示全8,蜂鸣器仍然一直发音,但有高低电平的震荡信号。找同学帮我们检查,他指出我们段选用的P0端口没有接上拉电阻,单片机只有P1和P2端口自带上拉电阻,P0口必须外接上拉电阻。我们把数码管的段选改为P1口,测试出仍然是相同的情况。在多次改正错误仍无果之后,我们全面仔细地检查了我们的硬件电路,并没有其他错误。又写了一个直接给P1口赋上高低电平的简单程序,用万用表测出P1口全为高电平,又测试了其他端口,也是全高。我们认真分析了出现这种情况的原因:首先我们的显示模块和发音电路没有错,因为数码管有显示,蜂鸣器有发音;其次我们的震荡电路没有错,因为测试出有震荡信号;程序没有错,因为我们仿真成功了的;最后得出单片机是坏的这一结论。最后我们换了一块单片机再测试,终于成功了。5、总结经过两周的单片机课程设计,我们基本完成了课题基本和拓展要求。功能上基本达标:时钟的显示,蜂鸣器的报时、调时功能、12小时制和24小时制的转换。时钟显示功能,精确度存在偏差,每15分钟慢8秒;调时和小时制的转换功能,方便快捷;报时功能准确可靠。虽然存在一些不足,如:在蜂鸣器进行报时及进行按键操作时,数码管在一直闪烁,时间精度有偏差。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗机构执业许可证注销制度
- 播音员主持人证-变更注册申请表
- 2022煤矿安全规程
- 2026年译林版(三起)版(新教材)小学英语三年级下册期末模拟测试卷及答案
- 湖北能源集团南漳清河34MW-68MWh储能电站水土保持报告表
- 年产3500吨生物可降解塑料包装容器建设项目环境影响报告表
- 基础会计第8版全套课件
- 2026副科选拔面试题库及答案
- 2026百度团体面试题目及答案
- 2026年全国新高考2卷英语试卷(含答案)
- 城市轨道交通运营设备维修与更新技术规范 第5部分:通信
- 苏教版科学四年级下册全册试卷
- 家庭户用光伏系统第4部分:验收规范
- 目标探测与识别智慧树知到期末考试答案章节答案2024年北京航空航天大学
- (2024版)人教版中国历史七年级下册单元测试题-第一单元隋唐时期-繁荣与开放的时代
- 施工机具进场验收与维修保养制度模版
- 深度学习与区块链的结合
- GB/T 20138-2023电器设备外壳对外界机械碰撞的防护等级(IK代码)
- 贵州省2023年九年级中考备考语文专题复习:默写题(含解析)
- GB/T 29332-2012半导体器件分立器件第9部分:绝缘栅双极晶体管(IGBT)
- GB/T 24431-2009假肢、矫形器装配机构设施设备
评论
0/150
提交评论