还剩24页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
四川信息职业技术学院毕业设计说明书论文设计题目:实用单片机电子钟专业:应用电子技术班级:应电07-2班学号:0710205089姓名:指导教师:二00九年十二月十一日四川信息职业技术学院毕业设计论文任务书学生姓名学号0710205089班级应电07-2班专业应用电子技术设计(或论文)题目实用单片机电子钟指导教师姓名职称工作单位及所从事专业联系方式备注弥锐四川电子信息职业技术学院电子工程系15983949754设计(论文)内容1.确定整机电路结构,绘制电路原理图2.确选择电路元件,给出元件明细表3.撰写设计说明书,要求准确阐述电路选择依据,反映电路工作原理、元件选择等设计过程,字数不少于4000字进度安排5~7周根据要求设计出方框图和原理电路图根据电路分析其工作原理;8~9周根据电路准备电子元件,进行实物制作;10~12周根据调试分析其优缺点和提出整改措施;13~15周根据设计撰写论文,并在老师指导下修改、完成论文;主要参考文献、资料写清楚参考文献名称、作者、出版单位
[1]代启化.基于Proteus的电路设计与仿真[J].现代电子技术2006
[2]曹洪奎.基于Proteus单片机系统设计与仿真[J].辽宁工学院学报2007
[3]侯玉宝.基于Proteus的51系列单片机设计与仿真[M].电子工业出版社2008
[4]蔡希彪曹洪奎.单片机电子时钟系统设计与仿真[J].中国科技信息2007
[5]方怡冰.单片机课程的教学与实验改革[J].电气电子教学学报2006
[6]刘文秀.单片机应用系统仿真的研究[J].现代电子技术2005审批意见教研室负责人年月日目 录TOC\o1-3\h\z\u摘要1第1章绪论2第2章电子钟系统组成及设计流程3第3章单元电路设计
43.1单片机介绍
43.2晶振电路设计
53.3控制电路
63.4输出电路设计
73.5总电路原理图设计
83.6PROTEUS电路图设计9第4章软件设计
104.1程序流程图设计
104.2源程序设计
114.3KEILC51进行程序调试17第5章系统调试与仿真
185.1PROTEUS中HEX文件选择
185.2PROTEUS进行电子钟系统仿真18总结20参考文献22附录元器件明细表23摘要随着人类科技文明的发展,人们对于时钟的要求在不断地提高时钟作为一种显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能高精度、多功能、小体积、低功耗,是现代时钟发展的趋势在这种趋势下,时钟的数字化、多功能化已经成为现代时钟生产研究的主导设计方向本文正是基于这种设计方向,以单片机为控制核心,设计制作一个符合指标要求的多功能数字时钟本设计基于单片机技术原理,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个多功能数字时钟系统该时钟系统主要由时钟模块、闹钟模块、数码管显示模块、键盘控制模块以及信号提示模块组成系统具有简单清晰的操作界面,能在+5V直流电源下正常工作能够准确显示时间(显示格式为时时-分分-秒秒,24小时制),可随时进行时间调整,具有闹钟时间设置、闹钟开/关,并有止闹功能,设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性由于系统所用元器件较少,单片机所被占用的I/O口不多,因此系统具有一定的可扩展性关键词单片机AT89C51;Proteus;功能模块第1章绪论电子钟是生活中常见的实用工具之一,没有时钟,便没有时间的概念,那么人们的生活便会变得杂乱无章,电子钟通常用于码头、车站、家庭、广场等地方,可见其用途广泛电子钟的制作由模电电子钟、数电电子钟和单片机电子钟三大类组成,但随着人们需求的提高,前两大类逐渐由于其可靠性差、计时不准、电路复杂、成本高等缺点而面临淘汰而单片机电子钟也由于其可靠性高、计时精准、电路简单、成本低等优点受到人们的喜爱本电路利用单片机设计电子钟,实现的基本功能有计时和校时功能,实用于各种需要计时的场合在计时和校时的基础功能上,更在此基础上拓展了闹钟功能,当计时时间到达闹钟时间时,蜂鸣器将鸣叫1分钟(具有止闹功能)本次设计的主要锻炼了我运用所学专业知识的情况,训练我如何将运用所学专业知识与实践相结合随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从4位、8位、16位到32位,其发展历程一直受到广大电子爱好者的极大关注单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步PROTEUS软件由Labcenter公司开发,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台,可以实现数字电路、模拟电路及微控制器系统与外设的混合电路系统的电路仿真、软件仿真、系统协同仿真和PCB设计等功能微控制器系统相关的仿真需建立编译和调试环境,可选择KeilC51uVision2软件它的界面友好易学,在调试程序、软件仿真方面有很强大的功能其革命性的功能是将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如电机、LED、LCD、开关等,实时看到运行后的输入、输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,通过软件使用和硬件电路设计,不仅让我巩固了所学知识并应用于实践,同时也让我觉得所学知识能贡献于社会,所读的这几年书是没有白念的让我有了一个质地的飞跃第2章电子钟系统组成及设计流程电子钟系统主要由AT89C51单片机、单片机晶振电路、按键电路、输入电路组成,电子钟系统电路组成框图如图2-1所示图2-1电路组成框图本设计在设计电路的基础上,再编译程序,最后将程序导入电路中实现仿真具体步骤如图2-2所示图2-4基于Proteus的单片机系统设计流程第3章单元电路设计电子钟系统主要由单片机晶振电路、按键电路、输出电路组成,下面对各个单元电路进行设计
3.1单片机介绍本电路设计的核心器件是AT89C51单片机,它是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的设计方案主要引脚如图3-1所示图3-1AT89C51单片机
3.2晶振电路设计MCS-51单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输出端和输入端这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成一个自激振荡器虽然有内部振荡电路,但要形成时钟,必须外接元件图3-2是单片机内部时钟方式的电路图3-2内部时钟方式本设计中使用的晶体振荡器为12MHz的石英晶体,由此我们可以算出:,因此该晶振可以为软件计数提供1μs的机器周期的精确的时间
3.3控制电路电子钟的控制电路可以由独立式键盘和矩阵式键盘组成,独立式键盘相互独立,每个按键占一个I/O口线,每根I/O口线上按键的工作状态不会影响到其他按键的工作状态,主要特点是程序设计简单,占用I/O口较多而矩阵式键盘分别由行线和列线组成,行和列的交汇处可以形成键盘,与独立式键盘相比,可以提高I/O口的利用率由于本设计只需要由控制电路实现校时、计时、闹钟设置、闹钟开关功能,因此只需要四个按键即可实现,因此选用独立式键盘具体电路如图3-3所示图3-3控制电路图电子钟初始工作时的模式为模式0(正常计数),闹钟状态为关闭具体工作方式如下述当按下模式按键时,给P
1.4一个低电平信号输入,通过程序来记录电子钟的工作模式;而按下加1键时,给P
1.5一个低电平信号输入,再通过工作模式来控制具体哪一位实行加1运算;减1按键和加1按键基本类似,只是实行的运算为减1;当按下闹钟开关按键时,可以给P
1.7一个低电平输入信号,通过程序的取反来控制闹钟状态为打开,再按一次,则再取反,闹钟状态为关闭由此可见,利用单片机四个输入口可方便地实现6种工作模式的不同控制
3.4输出电路设计输出电路分为显示输出电路和闹钟输出电路;显示输出电路由八个数码管构成,而数码管又由八个发光二极管构成,可以用来显示数字、字符等,他在家电及工业控制中有着很广泛的应用,例如用来显示温度、数量、重量、日期、时间等,具有显示醒目、直观的优点鉴于本电子钟显示格式为00-00-00一共需要八位八段数码管来提供显示,闹钟输出电路蜂鸣器则连在P
1.0口进行输出显示电路如图3-4所示图3-4输出电路电子钟通电后初始模式为模式0(正常计数),闹钟状态为关闭输入电路的具体工作方式如下当模式按键按下后,工作模式更改为模式0(正常计数)、模式1(计时调时)、模式2(计时调分)、模式3(计时调秒)时,数码管显示电路段位口输出正常计时状态的数据,当模式更改为模式4(闹钟调时)、模式5(闹钟调分)时,数码管显示电路的段位口输出闹钟状态的数据当闹钟开关按键被按下时,闹钟状态由关闭变为打开,随着计时的不断增加,当计时的时和分等于闹钟设置的时和分时,闹钟输出P
1.0口通过程序设置使该口为高电平,可使有源蜂鸣器发出声音
3.5总电路原理图设计由晶振电路、控制电路,以及由数码管显示和蜂鸣器所组成的输出电路组成本次设计的总电路图,如图3-5所示图3-5总电路图其中晶振电路为单片机提供1μs的机器周期,为实现精确计时提供了先决条件;而键盘控制电路则实现了本时钟六种模式的转换和闹钟的开或者关此次利用单片机设计的电子钟电路由晶振电路、控制电路和输出电路组成,性能好、功能多、价格低,充分体现了利用单片机设计的优越性在单片机的程序设计中,采用了程序计数,硬件计时的方法,其中时间秒加1通过中断来实现,单片机初始化设置之后,单片机就一直工作在死循环中,死循环则实现不断地对控制电路的扫描,来改变工作模式或者调时调分等等
3.6PROTEUS电路图设计运行Proteus的ISIS后出现程序主窗口界面,鼠标左键单击窗口左侧的元器件工具栏的component按钮接着再点击窗口左侧的元器件选择区的PickDivices按钮,弹出PickDevices窗口,再在Categ栏里点击MicroprocessorICs项后,在Results栏里会出现各种类型的CPU器件,找到AT89C51后双击,AT89C51就被添加到当前窗口左侧的元器件列表区了用同样的方法依次把上拉电阻、数码管、晶振以及多个电阻、电容、按键也添加到器件列表区里然后再依次点击列表区里的器件,单击左键把他们放到绘图区,右键选中元件,并编辑其属性,合理布局后,进行连线连线时当鼠标的指针靠近一个对象的引脚时,跟着鼠标的指针就会出现一个“×”提示符号,点击鼠标左键即可画线了,需要拐弯时点击一下即可,在终点再点击确认一下就画出了一段导线,所有导线画完后,点击工具栏的Inter-sheeTerminal按钮,添加上电源和接地符号,原理图的绘制就完成了Proteus中设计的电子时钟系统原理图按图3-5设计第4章软件设计
4.1程序流程图设计图4-1程序流程图
4.2源程序设计/************************************************************************名称功能完备的数字钟共有6种工作模式正常计时、按键调时、按键调分、按键调秒、闹钟调时、闹钟调秒,按设置键切换工作模式************************************************************************/#includereg
51.h#defineuintunsignedint#defineucharunsignedcharUcharcodesegcode[]={0xc00xf90xa40xb00x990x920x820xf80x800x900xbf};//0123456789-ucharcodedispbit[]={0x010x020x040x080x100x200x400x80};//数码管位选码ucharbuffer[]={00000000};uinthourminsec;uintringhourringmin;uintstatus;sbitbeep=P1^0;//闹钟bitringoff;voidkeyprocessunsignedchar;/**********延时函数************/voiddelayMSuintt//晶振频率12M{uinti;whilet--fori=0;i125;i++;}voiddelay//闹铃的延时{uintmn;form=0;m20;m++forn=0;n20;n++;}/************数码管显示函数****************/voiddisplay{uchari;ifstatus==4||status==5//闹钟调时、调分状态{buffer
[0]=ringhour/10;buffer
[1]=ringhour%10;buffer
[3]=ringmin/10;//显示分的十位buffer
[4]=ringmin%10;//显示分的个位fori=0;i8;i++{P0=segcode[buffer[i]];P2=dispbit[i];delayMS1;//防止数码管显示的时候闪动P2=0x0;}}else//正常计时显示{buffer
[0]=hour/10;//显示时的十位buffer
[1]=hour%10;//显示时的个位buffer
[2]=10;//显示‘-’buffer
[3]=min/10;//显示分的十位buffer
[4]=min%10;//显示分的个位buffer
[5]=10;//显示‘-’buffer
[6]=sec/10;//显示秒的十位buffer
[7]=sec%10;//显示秒的个位fori=0;i8;i++{P0=segcode[buffer[i]];P2=dispbit[i];delayMS1;//防止数码管显示的时候闪动P2=0x0;}}}main//主函数{bitkeyrelease;ucharbuf;ucharkeyinput;keyrelease=1;buf=0xff;ringoff=1;beep=0;TMOD=0x01;//T0工作在方式1,16位计数器TH0=65536-1000/256;//定时器0设置延时1ms中断初始值TL0=65536-1000%256;TR0=1;IE=0x82;//开定时器0中断status=0;while1//死巡环{/****************************************************键扫描程序,全扫描,逐行扫描按键弹起后才处理*****************************************************/keyinput=P10xf0;ifkeyinput!=0xf0{delayMS10;ifkeyinput!=0xf0{ifkeyrelease==1{keyrelease=0;buf=keyinput;//buf用来暂时存放键值}}else{keyrelease=1;keyprocessbuf;//调用按键处理函数//display;buf=0xff;}}else{keyrelease=1;keyprocessbuf;//display;buf=0xff;}ifringoff==0hour==ringhourmin==ringmin//闹钟打开,定时报警,报警时长1分钟{beep=0;delay;beep=1;}display;}}/***************定时器0中断函数****************/voidtimer0interrupt1using2{staticuintcount;TH0=65536-1000/256;//定时器0设置初始值1ms中断初始值TL0=65536-1000%256;TR0=1;count++;//正常计时ifcount=1000//定时1S到,以下为时钟的正常走钟逻辑{count=0;sec++;ifsec=60{sec=0;min++;ifmin=60{min=0;hour++;ifhour=24{hour=0;}}}}}/**************按键处理函数***************/voidkeyprocessunsignedcharkey//键值处理,6种状态,正常计时,设置时分秒设置闹铃时分{switchkey{case0xe0:status++;//按下设置键ifstatus=6status=0;break;case0xd0:switchstatus//按下加1键,5种模式下加1{case0x01:ifhour23hour++;elsehour=0;break;case0x02:ifmin59min++;elsemin=0;break;case0x03:ifsec59sec++;elsesec=0;break;case0x04:ifringhour23ringhour++;elseringhour=0;break;case0x05:ifringmin59ringmin++;elseringmin=0;break;}break;case0xb0:switchstatus//按下减1键{case0x01:ifhour0hour--;elsehour=23;break;case0x02:ifmin0min--;elsemin=59;break;case0x03:ifsec0sec--;elsesec=59;break;case0x04:ifringhour0ringhour--;elseringhour=23;break;case0x05:ifringmin0ringmin--;elseringmin=59;break;}break;case0x70:ringoff=~ringoff;//闹钟的开和关break;default:break;}}
4.3KEILC51进行程序调试图4-2调试结果图调试结果为0Errors0Warnings表示程序生成.hex文件中没有遇到错误或者警告,即生成成功第5章系统调试与仿真
5.1PROTEUS中HEX文件选择系统仿真分析电路原理图在ISIS里设计完成,并将系统程序编译成.Hex文件,再进行电子时钟的系统虚拟仿真
(1)在ISIS的原理图中,右键单击AT89C51将其选中,然后单击左键打开AT89C51的EditComponent对话框,如图5-1所示图5-1EditComponent对话框
(2)选择相应的.Hex文件,再在ProteusISIS编辑窗口的File菜单中选择SaveDesign选项,保存设计,生成.DSN文件
5.2PROTEUS进行电子钟系统仿真在ProteusISIS的调试菜单中选择开始调试,运行程序,实现功能开始运行时进入模式一实现正常计时,当按一次K1,进入模式二时钟的时调节,K2进行加运算,K3进行减运算当再按下第二和第三次K1,分别进入时钟的分调节和秒调节,调节方式和时调节一样当按下第四和第五次K1,分别进去闹钟时调节和闹钟分调节,调节方式和上述方法一样当按下第六次K1时,再次进入正常计时开始运行时,时钟的闹钟功能是关闭的,当按下K4,可以打开闹钟功能,当计时器和设置闹钟的时间一致时,蜂鸣器就开始鸣叫一分钟当再次按下K4,可以关闭闹钟时间显示格式为时-分-秒;Proteus系统仿真结果如图5-2所示图5-2Proteus系统仿真结果总结2009年10月,我开始了我的毕业论文工作,时至今日,论文基本完成从最初的茫然,到慢慢的进入状态,再到对思路逐渐的清晰,整个写作过程难以用语言来表达历经了几个月的奋战,紧张而又充实的毕业设计终于落下了帷幕回想这段日子的经历和感受,我感慨万千,在这次毕业设计的过程中,我拥有了无数难忘的回忆和收获 10月初,在与导师的交流讨论中我的题目定了下来,是实用单片机电子钟的设计当选题报告,开题报告定下来的时候,我当时便立刻着手资料的收集工作中,当时面对浩瀚的书海真是有些茫然,不知如何下手我将这一困难告诉了导师,在导师细心的指导下,终于使我对自己现在的工作方向和方法有了掌握 在搜集资料的过程中,我认真准备了一个笔记本我在学校图书馆,大工图书馆搜集资料,还在网上查找各类相关资料,将这些宝贵的资料全部记在笔记本上,尽量使我的资料完整、精确、数量多,这有利于论文的撰写然后我将收集到的资料仔细整理分类,及时拿给导师进行沟通10月初,资料已经查找完毕了,我开始着手论文的写作在写作过程中遇到困难我就及时和导师联系,并和同学互相交流,请教专业课老师在大家的帮助下,困难一个一个解决掉,论文也慢慢成型 10月底,论文的文字叙述已经完成11月开始进行相关图形的绘制工作和电路的设计工作为了画出自己满意的电路图,图表等,我仔细学习了绘图技术在设计电路初期,由于没有设计经验,觉得无从下手,空有很多设计思想,却不知道应该选哪个,经过导师的指导,我的设计渐渐有了头绪,通过查阅资料,逐渐确立系统方案当我终于完成了所有打字、绘图、排版、校对的任务后整个人都很累,但同时看着电脑荧屏上的毕业设计稿件我的心里是甜的,我觉得这一切都值了这次毕业论文的制作过程是我的一次再学习,再提高的过程在论文中我充分地运用了大学期间所学到的知识 我不会忘记这难忘的几个月的时间毕业论文的制作给了我难忘的回忆在我徜徉书海查找资料的日子里,面对无数书本的罗列,最难忘的是每次找到资料时的激动和兴奋;亲手设计电路图的时间里,记忆最深的是每一步小小思路实现时那幸福的心情;为了论文我曾赶稿到深夜,但看着亲手打出的一字一句,心里满满的只有喜悦毫无疲惫这段旅程看似荆棘密布,实则蕴藏着无尽的宝藏我从资料的收集中,掌握了很多单片机、软件编程的知识,让我对我所学过的知识有所巩固和提高,并且让我对当今单片机的最新发展技术有所了解在整个过程中,我学到了新知识,增长了见识在今后的日子里,我仍然要不断地充实自己,争取在所学领域有所作为 脚踏实地,认真严谨,实事求是的学习态度,不怕困难、坚持不懈、吃苦耐劳的精神是我在这次设计中最大的收益我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我未来的学习和工作有很大的帮助 在这次毕业设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识,所以在这里非常感谢帮助我的同学 在此更要感谢我的导师和专业老师,是你们的细心指导和关怀,使我能够顺利的完成毕业论文在我的学业和论文的研究工作中无不倾注着老师们辛勤的汗水和心血老师的严谨治学态度、渊博的知识、无私的奉献精神使我深受启迪从尊敬的导师身上,我不仅学到了扎实、宽广的专业知识,也学到了做人的道理在此我要向我的导师致以最衷心的感谢和深深的敬意参考文献
[1]代启化.基于Proteus的电路设计与仿真[J].现代电子技术2006
[2]曹洪奎.基于Proteus单片机系统设计与仿真[J].辽宁工学院学报2007
[3]侯玉宝.基于Proteus的51系列单片机设计与仿真[M].电子工业出版社2008
[4]蔡希彪曹洪奎.单片机电子时钟系统设计与仿真[J].中国科技信息2007
[5]方怡冰.单片机课程的教学与实验改革[J].电气电子教学学报2006
[6]刘文秀.单片机应用系统仿真的研究[J].现代电子技术2005
[7]张友德.单片微型机原理、应用与实验[M].复旦大学出版社2003
[8]李光飞.单片机设计实例指导[M].北京航空航天大学出版社2004
[9]胡汉才.单片机原理及其接口技术[M].清华大学出版社1996
[10]杨立民.单片机技术及应用[M].西安电子科技大学出版社1997附录元器件明细表序号名称代号规格、型号数量备注1单片机U1AT89C5112四位共阳数码管LEDSR410561K23按键K44电阻RRT-
0.25-1K±5%85电容CCC-25-20μF±5%26石英晶振X
112.00MHz17万用板80×10018蜂鸣器LS13V1单片机晶振电路按键电路数码管显示电路蜂鸣器Protues电路设计源程序设计生成目标代码基于protues仿真开始数据初始化设置定时器初始化死循环while1Y调用按键处理函数数码管显示函数N判断闹钟是否开启,且时钟时分是否等于闹钟时分蜂鸣器鸣叫调用数码管显示函数ifkeyinput!=0xf0/*判断是否有按键按下*/NY将值赋给buf。