本科毕业论文-基于at89c51单片机的智能时钟毕业论文设计_第1页
本科毕业论文-基于at89c51单片机的智能时钟毕业论文设计_第2页
本科毕业论文-基于at89c51单片机的智能时钟毕业论文设计_第3页
本科毕业论文-基于at89c51单片机的智能时钟毕业论文设计_第4页
本科毕业论文-基于at89c51单片机的智能时钟毕业论文设计_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉科技大学中南分校本科毕业设计论文题目基于AT89C51单片机的智能时钟设计学院信息工程学院专业自动化学号学生姓名指导教师二一年十一月二十四日目录前言6第1章PROTEUS软件简介7第2章方案论证与设计821数字时钟方案822数码管显示方案8221硬件方案8第3章硬件系统设计931系统框图与说明932模块设计10321电源部分10322复位电路10333晶振电路11334单片机系统电路11335数码管显示驱动电路13336整点报时电路设计15337按钮设置电路1541用PROTEUS软件设计智能时钟的仿真电路1642电路图绘制17第5章软件系统设计2151主程序设计21511中断程序流程图21512时、分、秒按键判断和调时设置流程23513年、月、日按键判断和调时设置流程图24514显示时、分、秒子程序流程图25515显示年、月、日子程序流程图2652源程序27第6章程序编写调试及智能时钟系统调试与仿真3861程序汇编软件KEIL简介及操作方法3862时钟系统仿真4363时钟系统调试44第7章总结47致谢47参考文献48摘要本系统设计是基于ATMEL公司的AT89C51单片机开发平台实现一种高精度,智能化的时钟系统。AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFLASHPROGRAMMABLEANDERASABLEREADONLYMEMORY)的低电压、高性能CMOS8位微处理器,采AT89C51单片机为控制核心,由单片机控制数码管的显示,,修改设置时间采用操作方便的键盘,整点报时系统使用无源蜂鸣器,通过调节输入方波的占功比,达到美妙旋律的声音实现报时的功能,整个系统设计比较完善,有显示时间日期、整点报时、时间日期调节设置的功能,除些之外还介绍了51单片机和汇编程序一些经验和方法,以便将51单片机的汇编程序经过局部的修改就可以移植到单片机上,实现不同的功能,节约重新开发的时间。最后总结了一些关于在做基于单片机的智能时钟所遇到的问题和困难,以及将AT89C51单片机与工业标准的MCS51的各方面性能进行了比较,其最大的特点是只读存储器可以反复擦除,精简版本高效微控制器AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,也是它应用较为广泛的原因。关键词AT89C51单片机;数码管;蜂鸣器INTELLIGENTDESIGNBASEDONSINGLECHIPCLOCKMETERABSTRACTTHESYSTEMDESIGNISBASEDONATMELCORPORATIONAT89C51MICROCONTROLLERDEVELOPMENTPLATFORMTOACHIEVEAHIGHPRECISION,INTELLIGENTCLOCKSYSTEMAT89C51ISAFLASHWITH4KBYTESOFERASABLEPROGRAMMABLEREADONLYMEMORYFPEROMFLASHPROGRAMMABLEANDERASABLEREADONLYMEMORY,LOWVOLTAGE,HIGHPERFORMANCECMOS8BITMICROPROCESSOR,MICROCONTROLLERAT89C51ADOPTEDASTHECONTROLCENTER,BYTHEMCUCONTROLTHEDIGITALDISPLAYOF,MODIFY,EASYTOOPERATE,SETTHETIMEUSINGTHEKEYBOARD,THEWHOLEPOINTTIMEKEEPINGSYSTEMUSINGPASSIVEBUZZER,BYADJUSTINGTHEINPUTSQUAREWAVEOFTHETOTALPOWERRATIO,TOACHIEVECHIMEMELODIESSOUNDFEATURES,THEENTIRESYSTEMMOREPERFECT,SHOWINGTIMEANDDATE,THEWHOLEPOINTOFTIME,ADJUSTTHESETTINGTIMEANDDATEFUNCTIONS,INADDITIONTOTHOSEINTRODUCEDINADDITIONTO51SINGLECHIPANDASSEMBLYPROCEDURESANDMETHODSOFSOMEEXPERIENCE,SOTHATAFTER51MCUASSEMBLERCANBETRANSFERREDTOLOCALCHANGESTOTHEMICROCONTROLLER,TOACHIEVEDIFFERENTFUNCTIONS,SAVINGDEVELOPMENTTIMEAGAINCONCLUDESWITHASUMMARYABOUTDOINGINTELLIGENTMICROCONTROLLERBASEDCLOCKPROBLEMSANDDIFFICULTIESENCOUNTERED,ANDTHEAT89C51MICROCONTROLLERWITHINDUSTRYSTANDARDMCS51PERFORMANCEINALLASPECTSWERECOMPARED,THEBIGGESTFEATUREISREADONLYMEMORYCANBEREPEATEDRUBBINGINADDITION,EFFICIENTLYSTREAMLINEDVERSIONOFTHEMICROCONTROLLERAT89C51MICROCONTROLLERFORMANYEMBEDDEDCONTROLSYSTEMPROVIDESAHIGHFLEXIBILITYANDLOWCOSTSOLUTION,BUTALSOBECAUSEITISWIDELYUSEDKEYWORDSAT89C51MICROCONTROLLERDIGITALBUZZER前言随着科学技术的发展和电子技术产业结构调整,单片机开始迅速发展,由于家用电器逐渐普及,市场对于智能时钟控制系统的需求也越来越大。单片机以其芯片集成度高、处理功能强、可靠性高等优点,成功应用于工业自动化、智能仪器仪表、家电产品等领域。近些年,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。但是却很少知道它的内部结构以及工作原理。由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。通过键盘可以进行定时、校时功能。输出设备显示器可以用液晶显示技术和数码管显示技术。单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件设计和软件编程设计两个方面,其调试过程一般分为软件调试、硬件测试、系统调试,通常不用制作具体的电路板用单片机系统的虚拟仿真软件PROTEUS实现仿真功能。本文所述智能时钟设计主要指时钟显示、时间设置、整点报时等控制系统。本文采用AT89C51型单片机为核心实现智能时钟控制,至所以选择AT89C51型单片机而没有选择其他单片机主要原因在于AT89C51型单片机进入市场时间早、总线开放、仿真开发设备多、芯片及其开发设备价格低廉、速度较快、电磁兼容性较好的。AT89C51单片机与工业标准的MCS51的各方面性能比较,其最大的特点是只读存储器可以反复擦除,是一种精简版本高效微控制器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。第1章PROTEUS软件简介PROTEUS软件是英国LABCENTERELECTRONICS公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。可以实现数字电路,模拟电路及微控制器系统与外设的混合电路系统的电路仿真、软件仿真、系统协同仿真和PCB设计等功能,是目前唯一能够对各种处理器进行实时仿真和测试的EDA工具,微控制器系统相关仿真需建立编译和调试环境,一般可供选择的有KEILC51UVISION和WAVE6000软件,虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。PROTEUS是世界上著名的EDA工具仿真软件,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086和MSP430等芯片,同时支持PLM、汇编和C语言的程序设计。操作界面轻松易学,在调试程序和软件仿真方面有很强大的功能。通过动态器件实时看到运行后的输入、输出的效果,所以PROTEUS为我们建立了完备的电子设计开发环境。第2章方案论证与设计21数字时钟方案数字时钟是本设计的最主要的部分。根据需要,可利用两种方案实现。方案一本方案采用DALLAS公司的专用时钟芯片DS12887A。该芯片内部采用石英晶体振荡器,其芯片精度不大于10MS/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。方案二本方案完全用软件仿真实现数字时钟。原理为在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。基于硬件的考虑,本设计采用方案二完成数字时钟的功能22数码管显示方案221硬件方案方案一静态显示,静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制,静态显示时较小的电流能获得较高的亮度,且字符不闪烁。缺点是硬件电路比较复杂,成本较高。方案二动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。调整参数可以实现较高稳定度的显示。动态显示节省了I/O口,降低了能耗。从节省I/O口和降低能耗出发,本设计采用方案二。第3章硬件系统设计31系统框图与说明控制部分单片机(AT89C51)复位电路蜂鸣器整点报时按键K1、K2、K3K4、K5电源部分,直流电5V段选8个七段共阴极数码管显示秒、分钟、小时日、月、年位选部分接P2口32模块设计321电源部分图32如图32所示,从外部引入45V的直流电,为单片机、复位电路提供电源。322复位电路图33如图33所示,复位电路主要由型号为1N4148的二极管,型号为10UF/16V的电解电容,型号为104的瓷片电容,10K的电阻以及按键S1构成,S1接芯片的相应引脚RST,当开关按下时引脚RST为高电平1,断开时引脚为低电平0。333晶振电路C1,C2在是电时帮助晶振起振XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL1应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。334单片机系统电路单片机型号及引脚功能如图2所示,AT89C51有40引脚,双列直插(DIP)封装,所用引脚功能如下1VCC运行时加5V2GND接地3XTAL1振荡器反相放大器及内部时钟发生器的输入端4XTAL2振荡器反相放大器的输出端5RST复位输入,高电平有效,在晶振工作时,在RST引脚上作用2个机器周期以上的高电平,将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFTAUXR的DISRTO位(地址8EH)可打开或关闭该功能。DISRTO位缺省为RESET输出高电平打开状态。6EA/VPP片外程序存储器访问允许信号。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地),如果EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。7P1口,P2口P1,P2是一组带内部上拉电阻的8位双向I/O口。运行时通过P1口控制驱动电路的工作,将数据送到数码管,显示相应的段码,为了达到减少功耗或满足端口对最大电流的限制,应加上一限流电阻。P20P27口控制数码管的位选,使六个数码管轮流显示数据,等于0时位选三极管导通,等于1时位选三极管截止。8无自锁开关(S2P37)开关接相应引脚P37,当开关按下时,相应引脚为低电平0,断开时引脚为高电平1。335数码管显示驱动电路数码管点亮条件段选和位选,结合下图图34ABCDEGGNDFDPGNDABCEFGDDPABCDEFGDPDPGFEDCBA5V(A)(B)共阴极共阳极图35图35为位选电路,PNP型三极管的集电极接数码管的公共端,当P2口对应的引脚输出低电平时三极管导通,对应的数码管显示数据。这样,在同一时刻,多位LED中只有选通的那1位显示出字符,而其他5位则是熄灭的。同样,在下一时刻,只让下一位的位选线处于选通状态,而其他个位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于LED的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可以造成多位同时亮的假象,达到同时显示的效果。图34(A)图为数码管的引脚图,每位的段码线(A,B,C,D,E,F,G,DP)分别与1个8位的锁存器输出相连,由AT89S51控制组合09十个数据,如令其显示1则B,C引脚(即2,3引脚)送高电平,此时数码管显示1。由于各位的段码线并联,8位I/O口输出段码对各个显示位来说都是相同的。当数码管正常工作时必须接上拉电阻,数码管点亮一般要510MA的电流,PO输出电流不到1MA,同时上拉电阻起到一个限流的作用。在多位LED显示时,为了简化电路,降低成本,节省系统资源,将所有的N位段选码并联在一起,由一片74HC595控制见图2。由于所有LED的段选码皆由一个74HC595并行输出口控制,因此,在每一瞬间,N位LED会显示相同的字符。想要每位显示不同的字符,就必须采用扫描的方法,即在每一瞬间只使用一位显示字符。在此瞬间,74HC595并行输出口输出相应字符段选码,而位选则控制I/O口在该显示位送入选通电平,以保证该位显示相应字符。如此轮流,使每位分时显示该位应显示字符。由于74HC595具有锁存功能,而且串行输入段选码需要一定时间,因此,不需要延时,即可形成视觉暂留效果。336整点报时电路设计本电路采用无源蜂鸣器作为发声报时的声源,对P17口延时翻转电平产生驱动波形对蜂鸣器进行驱动。通过改变延时时间进而改方波的占功比可以得到驱动蜂鸣器的方波信号。这样蜂鸣器报时时就可以听到不同音调的报时声。337按钮设置电路按下抖动释放抖动理想波形实际波形稳定闭合5V5VAB无抖动有抖动按键按下时,由于抖动的问题,用延时的方法去除抖动,解决方案如下有键按下吗消抖,延时10MS有键按下吗确认是哪一个键被按下第4章原理图41用PROTEUS软件设计智能时钟的仿真电路关于PROTEUS工作界面PROTEUS软件在第一章12节已做详细介绍,下面介绍一下PROTEUS的编辑环境启动PROTEUSISIS,进入工作界面,如图411,包括标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择器窗口、图形编辑口。下面我会用PHOTOSHOP将其工作界面详细介绍如下图411PROTEUS的工作界面42电路图绘制1)新建文件打开PROTEUS,点击FILE,在弹出的菜单中选择NEWDESIGN,在弹出的窗口中选择DEFAULT,如图421图4212选择所需元器件根据设计要求,点击对象选择按钮PICKDEVICES,在KEYWORDS中输入所需元器件名,进行搜索查找,在RESULTS栏列表项中,双击所需元器件,就可以将所选元器件添加到左则的元器件列表区,然后在列表区用鼠标单击左键,这样就可把所选元器件放入图形编辑窗口。如在KEYWORDS中输入AT89C51,在RESULTS栏双击它,就可将AT89C51添加到对象选择窗口,如图422,然后用同样的方法将所需元器件全部加入到图形编辑窗口。如图423,点击绘图工具栏中的添加电源和接地符号。图422本次设计所需用到的元器件如下AT89C51单片机7SEGMPX8CCBLUE八位八段共阴数码管SOUNDER蜂鸣器CAPCAPACITOR电容BUTTON按键CRYSTAL晶振RES3WATT3K3电阻POWER电源GROUND接地图4233)对整个元器件进行合理布局,进行连线,连接时当鼠标靠近一个的引脚时,跟着鼠标的指针就会出现一个X提示符,点击鼠标左键即可画线,遇到需要拐弯时点击一下即可,在终点再点击确认就可画出一段导线,重复上述工作进行连线,原理图的绘制就完成了,如图424。图4244)对重复使用的元器件进行标注,在一些重要器件旁边附加文字说明点击,在绘图区单击鼠标左键,会弹出一对话框,在STRING中输入相应的文字,设定HEIGHT和GLOBALSTYLE,可以完成其属性的设置,检查无误后,便完成了整个电路图的绘制,如图425。图4255)绘制完成后点击保存,如图426图426第5章软件系统设计51主程序设计511中断程序流程图主程序开始程序初始化定时器装初值50MS,开中断秒寄存器单元清0秒值加1计数寄存单元清0判断秒满60分值加1判断分满60分寄存器单元清0时值加1判断时满24时、分、秒寄存器单元清0天值赋1天值加1月值加1判断年满一世纪年值加1月值赋1判断月12年寄存器单元清0中断返回开启整点报时判断天满该月的总天数计数器加1,判断是否加到20次512时、分、秒按键判断和调时设置流程显示时分秒判断日期显示键是否按下延时去抖动显示年月日判断秒设置键是否按下判断分设置键是否按下判断时设置键是否按下判断秒设置键抬起秒值加1判断秒满60分值加1秒清0日设置键抬起后,判断有没有再次按下分设置键抬起后,判断有没有再次按下分是否满60分清0时值加1时是否满60时分秒清0时设置键抬起后,判断有没有再次按下判断时键抬起判断分键抬起513年、月、日按键判断和调时设置流程图显示年月日判断时间显示键是否按下延时去抖动显示时分秒判断日设置键是否按下判断月设置键是否按下判断年设置键是否按下判断日设置键抬起日值加1判断日满最大天数月值加1日清0日设置键抬起后,判断有没有再次按下月设置键抬起后,判断有没有再次按下月是否13给月赋1年值加1年是否到一世纪年清0年设置键抬起后,判断有没有再次按下判断年键抬起判断年键抬起514显示时、分、秒子程序流程图显示时分秒开秒十位位选秒/10对应地表地址中的数送P0使数码管显示延时开秒个位位选开分隔符位选送40到P0延时延时秒10对应地表地址中的数送P0使数码管显示开分十位位选分/10对应地表地址中的数送P0使数码管显示延时开分个位位选开分隔符位选送40到P0延时延时分10对应地表地址中的数送P0使数码管显示时/10对应地表地址中的数送P0使数码管显示延时开时个位位选延时时10对应地表地址中的数送P0使数码管显示开时十位位选515显示年、月、日子程序流程图显示年月日开日十位位选日/10对应地表地址中的数送P0使数码管显示延时开日个位位选开分隔符位选送40到P0延时延时日10对应地表地址中的数送P0使数码管显示开月十位位选月/10对应地表地址中的数送P0使数码管显示延时开月个位位选开分隔符位选送40到P0延时延时月10对应地表地址中的数送P0使数码管显示年/10对应地表地址中的数送P0使数码管显示延时开年个位位选延时年10对应地表地址中的数送P0使数码管显示开年十位位选52源程序包括主程序、中断子程序、显示子程序、判断按键和调时设置程序、等待按键抬起程序、报时子程序、延时子程序用单片机AT89C51设计一个多功能电子时钟能实现时分秒年月日显示,能整点报时,还有调整时间、日期的功能。单片机AT89C51的P0口接数码管的7段,P2口接数码管的位选。P10P15接按键,P17接蜂鸣,数码管是一个八位一体共阴的,时间初始值15955,日期初始值10年11月11号SET_1BITP10秒、日控制键SET_2BITP11分、月控制键SET_3BITP12时、年控制键SET_4BITP13切换时分秒显示SET_5BITP14切换年月日显示SECONDEQU30H秒寄储单元MINUTEEQU31H分寄储单元HOUREQU32H时寄储单元DAYEQU33H日寄储单元MONTHEQU34H月寄储单元YEAREQU35H年寄储单元TCNTEQU36H计数寄储单元YYYEQU37H月天数比较单元ORG0000HAJMPTANGORG000BHLJMPINT_T0TANGMOVDPTR,TAB把DPTR指针指向表格TAB的所在的地址,用于读数码管值表MOVHOUR,1对时、分、秒、年、月、日初始化MOVMINUTE,59MOVSECOND,55MOVDAY,11MOVMONTH,11MOVYEAR,10MOVTCNT,0计数器MOVTMOD,01H设置定时器0模式1,模式1定时最大值65536MS,而模式0最大8192MSMOVTH0,3CH定时初值50S(6553550000)/256商放高八位MOVTL0,0B0H(6553550000)256余数放低八MOVIE,82H中断允许寄存器IE,CPU开中断,T0开中断SETBTR0启动定时器0设置时分秒程序判断时分秒是否有控制键按下,是哪一个键按下,并调用显示时分秒A1LCALLDISPLAY1显示秒分时JNBSET_5,A2SET_5按下为低电平,为0,跳转,不按为1,顺序执行,即若日月年切换键没按下,顺序执行JNBSET_1,S1按下去跳转到S1JNBSET_2,S2JNBSET_3,S3LJMPA1S1LCALLDELAY去抖动等待抬起JBSET_1,A1判断按键是否抬起,抬起秒就加1INCSECOND秒值加1MOVA,SECONDCJNEA,60,TIMEJ0判断是否加到60秒MOVSECOND,0LJMPK1S2LCALLDELAYJBSET_2,A1K1INCMINUTE分钟值加1MOVA,MINUTECJNEA,60,TIMEJ1判断是否加到60分MOVMINUTE,0LJMPK2S3LCALLDELAYJBSET_3,A1K2INCHOUR小时值加1MOVA,HOURCJNEA,24,TIMEJ2判断是否加到24小时MOVHOUR,0MOVMINUTE,0MOVSECOND,0LJMPDLJMPA1控制时分秒等待按键抬起TIMEJ0JBSET_1,A1没到60秒,判断K1键抬起抬起进入A1判断按键有没有再次按下,若按下继续加1LCALLDISPLAY1SJMPTIMEJ0TIMEJ1JBSET_2,A1LCALLDISPLAY1SJMPTIMEJ1TIMEJ2JBSET_3,A1LCALLDISPLAY1SJMPTIMEJ2设置年月日程序判断年月日是否有控制键按下,是哪个按键按下,并调用显示年月日A2LCALLDISPLAY2JNBSET_4,A1JNBSET_1,H1JNBSET_2,H2JNBSET_3,H3LJMPA2H1LCALLDELAY去消抖JBSET_1,A2FINCDAY日加一MOVA,MONTHADDA,9MOVCA,ADPTRDPTR占一个首地址了,十个数对应一个首地址9个地址表地址加9以便找到对应月的天数MOVYYY,AMOVA,DAYCJNEA,YYY,Y0判断天数,为真跳转,即显示天数达到该月满天数,就过一个月,到下一月MOVDAY,0LJMPM1DLJMPY3H2LCALLDELAYJBSET_2,A2M1INCMONTH月加一MOVA,MONTHCJNEA,13,Y1判断是否加到12MOVMONTH,1LJMPM2H3LCALLDELAYJBSET_3,A2M2INCYEAR年加一MOVA,YEARCJNEA,100,Y2判断是否加到99MOVYEAR,0LJMPA2控制年月日等待按键抬起Y0JBSET_1,A2日抬起LCALLDISPLAY2SJMPY0Y1JBSET_2,A2月抬起LCALLDISPLAY2SJMPY1Y2JBSET_3,A2年抬起LCALLDISPLAY2SJMPY2Y3JBSET_3,A2调整年等待键抬起并显示年LCALLDELAY1LCALLDELAY1LCALLDISPLAY2SJMPF定时器中断服务程序,对秒,分钟,小时与日,月,年的计数INT_T0MOVTH0,3CHMOVTL0,0B0HINCTCNTMOVA,TCNTCJNEA,20,RETUNE计时1秒INCSECONDMOVTCNT,0MOVA,MINUTESECMOVA,SECONDCJNEA,60,RETUNEINCMINUTEMOVSECOND,0MOVA,MINUTECJNEA,60,RETUNELCALLBS调用整点报时LCALLBSLCALLDELAY1LCALLBSLCALLBSLCALLBSLCALLDELAY1LCALLBSLCALLBSLCALLBSLCALLDELAY1LCALLBSLCALLBSLCALLDELAY1INCHOURMOVMINUTE,0MOVA,HOURCJNEA,24,RETUNEINCDAYMOVHOUR,0MOVMINUTE,0MOVSECOND,0MOVA,MONTHADDA,9MOVCA,ADPTRMOVYYY,A对应MONTH的天数给MOVA,DAYCJNEA,YYY,RETUNEINCMONTHMOVDAY,1MOVA,MONTHCJNEA,13,RETUNEINCYEARMOVMONTH,1MOVA,YEARCJNEA,99,RETUNEMOVYEAR,0MOVTCNT,0RETUNERETI用于中断服务子程序的末尾,中断返回秒时分、年月日显示控制子程序DISPLAY1MOVA,SECOND显示秒MOVB,10DIVABA除以B,商放A中,余数放中MOVP2,0FDH数码管位选,使第2个数码管亮MOVCA,ADPTR若A中存的商为2,ADPTR就是把DPTR对应的TAB表首地址表序号2,这样就可读出对应数码管表中的值06H,也就是数字2MOVP0,A通过P0控制数码管输出秒十位数字LCALLDELAYMOVA,BMOVP2,0FEHMOVCA,ADPTRMOVP0,A通过P0控制数码管输出秒个位数字LCALLDELAYMOVP2,0FBH数码管位选,为该数码管亮做准备MOVP0,40H显示分隔符,数字中间一横亮,数码管ABCDEFG当G亮时为,即01000000为40H显示分隔符LCALLDELAYMOVA,MINUTE显示分钟MOVB,10DIVABMOVP2,0EFHMOVCA,ADPTRMOVP0,A通过P0控制数码管输出分十位数字LCALLDELAYMOVA,BMOVP2,0F7HMOVCA,ADPTRMOVP0,ALCALLDELAYMOVP2,0DFHMOVP0,40H显示分隔符LCALLDELAYMOVA,HOUR显示小时MOVB,10DIVABMOVP2,7FHMOVCA,ADPTRMOVP0,ALCALLDELAYMOVA,BMOVP2,0BFHMOVCA,ADPTRMOVP0,ALCALLDELAYRETDISPLAY2MOVA,DAY显示日MOVB,10DIVABMOVP2,0FDHMOVCA,ADPTRMOVP0,ALCALLDELAYMOVA,BMOVP2,0FEHMOVCA,ADPTRMOVP0,ALCALLDELAYMOVP2,0FBHMOVP0,40H显示分隔符LCALLDELAYMOVA,MONTH显示月MOVB,10DIVABMOVP2,0EFHMOVCA,ADPTRMOVP0,ALCALLDELAYMOVA,BMOVP2,0F7HMOVCA,ADPTRMOVP0,ALCALLDELAYMOVP2,0DFHMOVP0,40H显示分隔符LCALLDELAYMOVA,YEAR显示年MOVB,10DIVABMOVP2,7FHMOVCA,ADPTRMOVP0,ALCALLDELAYMOVA,BMOVP2,0BFHMOVCA,ADPTRMOVP0,ALCALLDELAYRETTABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH0,1,2,3,4,5,6,7,8,9DB20H,1EH,20H,1FH,20H,1FH,20H,20H,1FH,20H,1FH,20H对应1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月的天数整点报时服务程序BSMOVR4,100SETBP17BS1LCALLDELAY2CPLP17DECR4CJNER4,0,BS1CLRP17RET延时子程序DELAYMOVR6,10D1MOVR7,100DJNZR7,R7不减为0,一直跳本行,意思就是本行指令的地址DJNZR6,D1RETDELAY1MOVR0,10DELY0MOVR5,50DELY2MOVR3,50DJNZR3,DJNZR5,DELY2DJNZR0,DELY0RETDELAY2MOVR1,20D2MOVR2,10DJNZR2,DJNZR1,D2RETEND第6章程序编写调试及智能时钟系统调试与仿真61程序汇编软件KEIL简介及操作方法KEIL软件是KEIL公司(A子公司)开发的一款用于单片机开发应用十分广泛的编译和调试软件。该软件可以编辑、编译汇编语言、C语言,连接定位目标文件和库文件,创建HEX文件,调试目标程序。KEIL软件功能强大,包含很多部分,本文我们主要使用KEIL来开发单片机项目,调试程序并生成HEX文件来用于单片机开发。KEIL是一款在WIONDOWS下使用的集成开发环境。通过这次设计,我学会了KEIL软件,可以说收获良多。下面我来一一演示KEIL建工程的方法1)启动KEIL后,可以看到如下画面2)在PROJECT菜单里选择NEWPROJECT,新建一个工程,注上工程名“智能时钟”3)选择单片机型号AT89C514)在FILE菜单下选择NEW,新建一个TEXT文件,然后保存,文件名命为智能时钟ASM(注意保存时文件名很重要,因为我写程序用的是单片机的汇编语言,所以必须保存为ASM格式,否则到后面编译不了,如果写程序用C语言,就保存为文件名C)。5)点击PROJECTWORKSPACE里TARGET1左边,会出现,右击SOURCEGROUP1,在子菜单里点击ADDFILESTOGROUP“SOURCEGROUP1”,会弹出一窗口,在文件类型项选择ALLFILES,将第四步保存的ASM文件找到,点击ADD,添加到工程里,如下图6)在TEXT区域里编写程序并调试7)编写完后,在PROJECT菜单下点击OPTIONSFORTARGETTARGET1出现一窗口,点击窗口中的OUTPUT,勾上CREATEHEXFI,以生成HEX文件。8)点击,编译程序62时钟系统仿真1)打开第四章425保存的ISIS仿真电路图,用鼠标右击AT89C51,在弹出的窗口中将之前KEIL编译生成的HEX文件添加到窗口中的PROGRAMFILE子窗口中,同时可以设置单片要的频率为12MHZ如图621。图6212)启动仿真这四个按钮的功能从左至右分别是启动仿真、单步运行仿真、暂停仿真和停止仿真,点击启动仿真按钮,进行仿真。系统调试前仿真结果如622图、633图。622图623图63时钟系统调试1)根据系统仿真时状态栏中反馈的信息,可能由于之初设计时一些错误和漏洞,导致仿真时达不到要求的效果,当系统启动仿真时,数码管显示的时间与正常情况下刚好相反,这说明数码管的位选选反了,也有可能仿真不了,细细查看会发现在定义元器件标签时有符号重复,这也可能导纸仿真失败。经过对源程序的修改和电路图连线和一些属性设置的修改,经过一步步调试后,终于可能使时正常显示。对按键的操作也能达到对时间日期的设置,也可实现整点报时,达到了设计的要求。调试后的时间、日期、整点报时仿真效果分别如631图,632图,633图实现功能1K1可进行对秒、日的设置;2K2可进行对分、月的设置;3K3可实现对时、年的设置;4K4可实现切换时间显示;5K5可实现切换日期显示;6当时间到整点时,可自动报时;631图智能时钟仿真时间显示效果图632图智能时钟仿真日期显示效果图633图智能时钟整点报时效果图第7章总结在这次毕业设计调试过程中,我碰到很多困难,如时间设置时按键的判断,由于之初程序的问题时间显示不能根据按键的变化而变化,还有跳转指令的使用,导致程序运行时时常进入死循环,修改程序时思考不周全,如整点报时的问题,由于报时时间,导致时间显示时延迟,时钟不够精确。通过本次毕业设计,让我对单片机整体有了一次全面的了解,原来单片机的功能是如此强大,其实学习单片机没有我们想象的那么困难,做完这次毕业设计我直接体会要学会单片机只要我们熟练控制单片机32个I/O输入输出,会对所有功能块的模式寄存器和控制寄存器进行设置,掌握程序的编写,我们学习的目的就达到了。这次设计使我深刻认识到学习的理论必须用到实际中才能体现它的价值,才能学有所用,也就是所谓理论必须联系实际,这次设计对我查阅资料、程序编写、动手设计、对一些陌生软件的自主学习能力等都有很大的提高本文采用AT89C51单片机用汇编语言进行编程,其本达到了设计的要求,由于设计者学识有限,设计还可以进一步优化和完善,真正实现“智能”时钟。致谢在此我要特别感谢我论文指导老师韩建中教授对我毕业设计的热心关怀和悉心指导,在撰写论文的过程中,韩老师严谨细致、一丝不苟、尽心尽力的工作作风是我今后学习、生活、工作的榜样,同时为我论文设计倾注了大量的心血和汗水,从之初论文定题,到之后构思和资料收集和一些关键技术研究方面,韩老师都给予了我很大的帮助,他循循善诱的教导和他广博的学识以及深厚的学术素养深深感染着我,这必将激励我在今后的工作和学习中不断前进。同时我要感谢班上的同学特别是童全舟同学在一些细节问题上给予的帮助和一些宝贵的意见,在此一并致以诚挚的谢意最后对在百忙中抽出时间对本文进行评审并提出宝贵意思的各位老师表示衷心地感谢参考文献1郭天祥新概念51单片机C语言教程入门、提高、开发、拓展电子工业出版社2009年2梅丽凤、王艳秋、汪毓铎、张军单片机原理及接口技术清华大学出版社200683李朝青单片机原理及接口技术北京航空航天大学出版社200554阎石数字电路技术基础北京高等教育出版社19985童诗白、华成英模拟电子技术基础北京高等教育出版社20016夏路易石宗义电路原理图与电路设计教程PROTEL99SEM北京希望电子出版社20027丁明亮唐前辉单片机原理及应用基于KEILC与PROTEUS北京航空航天大学出版社200928龚运新单片机C语言开发技术清华大学出版社2006年。9孙涵芳MCS51系列单片机原理及应用M北京航空航天大学出版社1996410陈明荧8051单片机课程设计实训教材清华大学出版社2004年11贾好来MCS51单片机原理及应用机械工业出版社2007年12徐江海单片机实用教程机械工业出版社2007年13陈海宴51单片机原理及应用基于KEILC与PROTEUS北京航空航天大学出版社2010714刘秀英单片机应用设计200例北京航空航天大学出版社2006年15林立张俊亮曹旭东单片机原理及应用基于PROTEUS和KEILC电子工业出版社20097附录请删除以下内容,O_O谢谢THETERM“AUTISM“REFERSTOACLUSTEROFCONDITIONSAPPEARINGEARLYINCHILDHOODALLINVOLVESEVEREIMPAIRMENTSINSOCIALINTERACTION,COMMUNICATION,IMAGINATIVEABILITIES,ANDRIGID,REPETITIVEBEHAVIORSTOBECONSIDEREDANAUTISTICDISORDER,SOMEOFTHESEIMPAIRMENTSMUSTBEMANIFESTBEFORETHEAGEOFTHREETHEREFERENCEBOOKUSEDBYMENTALHEALTHPROFESSIONALSTODIAGNOSEMENTALDISORDERSISTHEDIAGNOSTICANDSTATISTICALMANUALOFMENTALDISORDERS,ALSOKNOWNASTHEDSMTHE2000EDITIONOFTHISREFERENCEBOOKTHEFOURTHEDITIONTEXTREVISIONKNOWNASDSMIVTRPLACESAUTISMINACATEGORYCALLEDPERVASIVEDEVELOPMENTALDISORDERSALLOFTHESEDISORDERSARECHARACTERIZEDBYONGOINGPROBLEMSWITHMUTUALSOCIALINTERACTIONANDCOMMUNICATION,ORTHEPRESENCEOFSTRANGE,REPETITIVEBEHAVIORS,INTERESTS,ANDACTIVITIESPEOPLEDIAGNOSEDWITHTHESEDISORDERSAREAFFECTEDINMANYWAYSFORTHEIRENTIRELIVESDESCRIPTIONEACHCHILDDIAGNOSEDWITHANAUTISTICDISORDERDIFFERSFROMEVERYOTHER,ANDSOGENERALDESCRIPTIONSOFAUTISTICBEHAVIORANDCHARACTERISTICSDONOTAPPLYEQUALLYTOEVERYCHILDSTILL,THECOMMONIMPAIRMENTSINSOCIALINTERACTION,COMMUNICATIONANDIMAGINATION,ANDRIGID,REPETITIVEBEHAVIORSMAKEITPOSSIBLETORECOGNIZECHILDRENWITHTHESEDISORDERS,ASTHEYDIFFERMARKEDLYFROMHEALTHYCHILDRENINMANYWAYSMANYPARENTSOFAUTISTICCHILDRENSENSETHATSOMETHINGISNOTQUITERIGHTEVENWHENTHEIRCHILDRENAREINFANTSTHEINFANTSMAYHAVEFEEDINGPROBLEMS,DISLIKEBEINGCHANGEDORBATHED,ORFUSSOVERANYCHANGEINROUTINETHEYMAYHOLDTHEIRBODIESRIGID,MAKINGITDIFFICULTFORPARENTSTOCUDDLETHEMOR,THEYMAYFAILTOANTICIPATEBEINGLIFTED,LYINGPASSIVELYWHILETHEPARENTREACHESFORTHEM,RATHERTHANHOLDINGTHEIRARMSUPINRETURNMOSTPARENTSOFAUTISTICCHILDRENBECOMEAWAREOFTHESTRANGENESSOFTHESEANDOTHERBEHAVIORSONLYGRADUALLYIMPAIRMENTSINSOCIALINTERACTIONAREUSUALLYAMONGTHEEARLIESTSYMPTOMSTODEVELOPTHEMOSTCOMMONSOCIALIMPAIRMENTISAKINDOFINDIFFERENCETOOTHERPEOPLE,ORALOOFNESS,EVENTOWARDSPARENTSANDCLOSECAREGIVERSTHEBABYMAYFAILTORESPONDTOHISORHERNAMEBEINGCALLEDANDMAYSHOWVERYLITTLEFACIALEXPRESSIONUNLESSEXTREMELYANGRY,UPSET,ORHAPPYBABIESWITHAUTISMMAYRESISTBEINGTOUCHED,ANDAPPEARTOBELOSTINTHEIROWNWORLD,FARFROMHUMANINTERACTIONBETWEENSEVENAND10MONTHSOFAGE,MOSTINFANTSOFTENRESISTBEINGSEPARATEDFROMAPARENTORWELLKNOWNCAREGIVER,BUTTHESEINFANTSMAYSHOWNODISTURBANCEWHENPICKEDUPBYASTRANGEROTHERCHILDRENWITHAUTISMMAYBEVERYPASSIVE,ALTHOUGHLESSRESISTANTTOEFFORTSBYOTHERSTOINTERACTHOWEVER,THEYDONOTINITIATESOCIALINTERACTIONTHEMSELVESSTILLOTHERSMAYATTEMPTTOENGAGEWITHADULTSANDPEERS,BUTINWAYSTHATSTRIKEOTHERSASINAPPROPRIATE,ORODDINADOLESCENCEANDADULTHOOD,SOMEOFTHEHIGHERFUNCTIONINGINDIVIDUALSWITHAUTISTICDISORDERSMAYAPPEAROVERLYFORMALANDPOLITETHEYMAYREACTWITHLITTLESPONTANEITY,ASIFSOCIALINTERACTIONDOESNTCOMENATURALLYOREASILYTOTHEM,ANDSOTHEYARETRYINGTOFOLLOWAPREDETERMINEDSETOFRULESSOMEINDIVIDUALSWITHAUTISMHAVENORMALINTELLIGENCE,ANDMANYH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论