毕业设计(论文)-基于at89c51单片机的多功能电子万年历的设计_第1页
毕业设计(论文)-基于at89c51单片机的多功能电子万年历的设计_第2页
毕业设计(论文)-基于at89c51单片机的多功能电子万年历的设计_第3页
毕业设计(论文)-基于at89c51单片机的多功能电子万年历的设计_第4页
毕业设计(论文)-基于at89c51单片机的多功能电子万年历的设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

图书分类号密级毕业设计论文基于AT89C51单片机的多功能电子万年历的设计AT89C51SCMBASEDELCTRONICDESIGNCALENDAR学生姓名学院名称信电工程学院专业名称电子信息工程技术指导教师2010年5月20日摘要本文介绍了基于AT89C51单片机的多功能电子万年历的硬件结构和软硬件设计方法。系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。万年历采用直观的数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。关键字AT89C51;电子万年历;DS1302目录1绪论111课题研究的背景112课题的研究目的与意义113课题解决的主要内容12系统的总体设计221系统方案的构想与确定222器件的选用2221单片机的选择23系统硬件的设计431系统硬件电路设计4311系统硬件框图4312AT89C51单片机4314DS1302114系统的软件设计1441主程序1442从1302读取日期和时间程序15结论23致谢24参考文献25附录26附录1261绪论11课题研究的背景随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89C51单片机作为核心,功耗小,能在3V的低压工作,电压可选用35V电压供电。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。12课题的研究目的与意义二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。电子万年历的开发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。所以说电子万年历的开发是国家之所需,社会之所需,人民之所需。由于社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子万年历发展并且投入市场得到广泛应用。13课题解决的主要内容本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面(1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。(2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。(3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。(4)根据硬件电路图,在开发板上完成器件的焊接。(5)根据设计的硬件电路,编写控制AT89C51芯片的单片机程序。(6)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。(7)在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。(8)软件设计时必须要有完善的思路,要做到程序简单,调试方便。2系统的总体设计单片机电子万年历的制作有多种方法,可供选择的器件和运用的技术也有很多种。所以,系统的总体设计方案应在满足系统功能的前提下,充分考虑系统使用的环境,所选的结构要简单使用、易于实现,器件的选用着眼于合适的参数、稳定的性能、较低的功耗以及低廉的成本。21系统方案的构想与确定系统的功能往往决定了系统采用的结构,经过成本,性能,功耗等多方面的考虑决定用三个8位74LS164串行接口外接LED显示器,RESPACK8对单片机AT89C51进行供电,时间芯片DS1302连接单片机AT89C51。从而实现电子万年历的功能。22器件的选用单片机AT89C51电容RESPACK8三个74LS164串行接口传感器DS1302221单片机的选择单片机自70年代问世以来以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,用广泛的应用领域拉动得到蓬勃发展,单片机功能正日渐完善。单片机的应用,使许多领域的技术水平和自动化程度大大提高,可以说当今世界正在经受一场以单片机技术为标志的新技术革命浪潮的冲击。主要单片机类型如下1MCS51系列单片机MCS51系列单片机主要是指INTEL公司生产的以51位内核的单片机芯片,具有8位CPU、4K字节ROM、128字节RAM、可扩展外部64K字节RAM和ROM、2个16位的定时器/计数器、4个8位并行I/O口、1个全双工串行I/O口、21字节的专用寄存器、5个中断源、片内自带振荡器、片内单总线等功能部件。(2)AT89C51单片机AT89C51单片机的主要特性如下与MCS51产品指令系统完全兼容4K字节的在线编程FLASH存储器,1000次擦写周期4055V的工作电压范围全静态工作模式033MHZ三级程序存储器锁1288字节内部RAM32个可编程I/O口线2个16位定时/计数器6个中断源全双工串行UART通道低功耗空闲和掉电模式中断可从空闲模式唤醒系统看门狗(WDT)及双数据指针掉电标识和快速编程特性具有掉电状态下的中断恢复功能灵活的在系统编程(ISP字节或页写模式)由于AT89C51单片机片内有4K字节的在线编程FLASH存储器,可以擦写1000次,具有掉电模式,而且具有掉电状态下的中断恢复功能,对设计开发非常实用。所以选用AT89C51单片机作为电子万年历芯片的控制单片机。3系统硬件的设计根据上述所确定的系统方案构想,下面进行系统硬件电路的具体设计,系统的总体结构框图如图所示。31系统硬件电路设计311系统硬件框图系统硬件框图如图31时钟芯片DS1302串口AT89C51P2口LED显示器驱动电路图31系统硬件框图312AT89S51单片机本系统采用的是美国ATMEL公司生产的AT89C51单片机,首先我们来熟悉一下AT89C51单片机的外部引脚和内部结构。1单片机的引脚功能AT89C51单片机有40个引脚。VCC电源电压5VGND接地P0口P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线服用,在访问期间激活内部上拉电阻。在FLASH编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻。P1口P1口是一个带内部上拉电阻的8位双向I/O,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。FLASH编程和程序校验期间,P1接收低8位地址。P2口P2口是一个带内部上拉电阻的8位双向I/O,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。FLASH编程和程序校验期间,P2亦接收低高位地址和其他控制信号。P3口P3口是一组带内部上拉电阻的8位双向I/O,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部的上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,见表31所示P3口还接收一些用于FLASH闪速存储器编程和程序校验的控制信号。表31P3口的第二功能图端口引脚第二功能P30RXD(串行输入口)P31TXD(串行输出口)P32INT0(外中断0)P33INT1(外中断1)P34T0(定时/计时器0外部输入)P35T1(定时/计时器1外部输入)P36WR(外部数据存储器写选通)P37RD(外部数据存储器读选通)RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使引脚输出高电平,设置SFRAUXR的DISRT0(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。EA/VPP外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。需要注意的是如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。FLASH存储器编程时,该引脚加上12V的变成电压VPPXTAL1振荡器反相放大器及内部时钟发生器的输入端。XTAL2振荡器反相放大器的输出端。AT89C51单片机内部结构2AT89C51单片机与MCS51完全兼容振荡电路AT89C51系列单片机的内部振荡器,由一个单极反相器组成。XTAL1反相器的输入,XTAL2为反相器的输出。可以利用它内部的振荡器产生时钟,只要XTAL1和XTAL2引脚上一个晶体及电容组成的并联谐振电路,便构成一个完整的振荡信号发生器,此方式称为内部方式。另一种方式由外部时钟源提供一个时钟信号到XTAL1端输入,而XTAL2端浮空。在组成一个单片机应用系统时,多数采用这种方式,这种方式结构紧凑,成本低廉,可靠性高。在电路中,对电容C1和C2的值要求不是很严格,如果使用高质的晶振,则不管频率为多少,C1、C2通常都选择30PF。定时/计数器AT89C51单片机内含有2个16位的定时器/计数器。当用于定时器方式时,定时器的输入来自内部时钟发生电路,每过一个机器周期,定时器加1,而一个机器周期包含有12个振荡周期,所以,定时器的技术频率为晶振频率的1/12,而计数频率最高为晶振频率的1/24。为了实现定时和计数功能,定时器中含有3种基本的寄存器控制寄存器、方式寄存器和定时器/计数器。控制寄存器是一个8位的寄存器,用于控制定时器的工作状态,方式寄存器是一个8位的寄存器,用于确定定时器的工作方式,定时器/计数器是16位的计数器,分为高字节和低字节两部分。中断系统AT89C51单片机有6个中断源,中断系统主要由中断允许寄存器IE、中断优先级寄存器IP、优先级结构和一些逻辑门组成。IE寄存器用于允许或禁止中断;IP寄存器用于确定中断源的优先级别;优先级结构用于执行中断源的优先排序;有关逻辑门用于输入中断请求信号。在整个中断响应过程中CPU所执行的操作步骤如下(1)完成当前指令的操作(2)将PC内容压入堆栈(3)保存当前的中断状态(4)阻止同级的中断请求(5)将中断程序入口地址送PC寄存器(6)执行中断服务程序(7)返回314DS1302DS1302与CPU的连接需要三条线,即SCLK7、I/O6、RST5。DS1902与89C2051的连接图,其中,时钟的显示用LED。DS1302与CPU的连接,实际上,在调试程序时可以不加电容器,只加一个32768KHZ的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。LED还可以换成LCD,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗WDT/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有34线串行接口,可与任何单片机、IC接口。功耗低,显示状态时电流为2A典型值,省电模式时小于1A,工作电压为24V33V,显示清晰。4系统的软件设计电子万年历的功能是在程序控制下实现的。该系统的软件设计方法与硬件设计相对应,按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。这样有利于程序修改和调试,增强了程序的可移植性。41主程序主程序如图41所示开始读年、月、日送第一块LED显示读星期、闰、年、日送第二块LED显示读时、分、秒送第三块LED显示返回图41主程序图42从1302读取日期和时间程序读1302日期和时间调整时间和日期YN图42从1302读取程序系统初始化开始需要调整时间吗结论本课题从理论到实际应用,用AT89C51单片机与8位模数转换芯片74LS164等一些电路的组合,成功的设计出了一个电子万年历。而且所设计的电子万年历设计也按当初要求的能够在PROTEUS中进行仿真,并且能够很精确的显示年历。可以说该电子万年历具有很高的实用价值。在软件设计的过程中,利用了KEIL这个软件在程序录入和调试的时候的优越性,让我能够在编写软件的时候很方便的发现软件中的错误,现在已经能够使用KEIL对所设计的程序进行调试。对于PROTEUS这款软件,也能熟练掌握电路设计仿真。由于平时没有接触过这两个软件,加上毕业设计的时间有限,对于他们的连接调试程序,未能熟练掌握,但以后有机会的话会再好好学习的。本次设计的电子万年历也存在的不足的地方,有待于以后的改进。致谢经过三个多月的时间,毕业设计按照预期完成了,由于本人的知识水平有限,论文和设计中有遗漏和缺陷的地方恳请指正。感谢我的导师高玉芹老师给了我莫大的帮助,在她悉心的指导和严格的要求下,作品和论文顺利完成了。论文从选题和最终完成,凝结着导师的辛勤的汗水,她不辞劳苦的教导、严谨的作风使我终生受益。在此毕业设计完成之际,谨向导师和所有帮助过我的老师致以崇高的敬意和衷心的感谢。还有感谢家人、朋友还有宿舍里所有的室友,是他们给我创造了良好的学习氛围,在学习和生活中给了我支持和帮助。在以后的学习生活中我会时时敦促自己更加努力,不辜负师长、亲人、朋友对我的期望。参考文献1赵长德微型计算机原理与接口技术M北京机械工业出版社,1999983502苏平单片机的原理与接口技术M北京电子工业出版社,200611133王忠民微型计算机原理M西安西安科技大学出版社,200315554胡戴明计算机组成原理M北京经济科学出版社,200543565纪宗南单片机外围器件使用手册M北京北京航空航天大学出版社,6226556周雪模拟电子技术M西安西安电子科技大学出版社,200581957左金生电子与模拟电子技术M北京电子工业出版社,20041051318尹勇单片机开发环境VISION2的开发指南M北京北京航空航天大学出版社,20041731999张斌武单片机系统PROTEUS设计与仿真M北京电子工业出版社,20055289附录附录1源代码DELAYCDEFINEDELAY_CINCLUDE”INCLUDESH”DEFINEXTAL12VOIDDELAY_LUSVOIDASM”NOP”VOIDDELAY_NUSUNSIGNEDINTNUNSIGNEDINTI0;FORI0;I1R_BYTEITMPBYTE;PRT_SET_CLK;DELAY_NUS2;PRT_CLEAR_CLK;DELAY_NUS2;BFLAG0;IFPINPWRITEW_2_BYTE;PRT_CLEAR_RST;PRT_CLEAR_CLK;VOIDRESETVOIDDDR_SET_RST;PRT_CLEAR_CLK;PRT_CLEAR_RST;PRT_SET_RST;VOIDWRITEUNSIGNEDCHARW_BYTEUNSIGNEDCHARI;DDRC0XFFFORI0;I1;UNSLGNEDCHARREADVOIDUNSIGNEDCHARI;UNSIGNEDCHARR_BYTE;UNSIGNEDCHARR_BYTE2;UNSIGNEDCHARTMPBYTE;DDR_SET_IO;R_BYTE0X00R_BYTE20X00;PRT_CLEAR_IO;DDR_CLEAR_IO;FORI0I1/R_BYTE1R_BYTE|TMPBYTE;PRT_SET_CLK;DELAY_NUS1;/DELAY_NUS2PRT_CHEAR_CLKDELAY_NUS1;DELAY_NUS2;FORI0;I1;R_BYTE2L;R_BYTE2|TMPBYTEPRT_SET_CLK;DELAY_NUS1DELAY_NUS2;PRT_CLEAR_CLK;DELAY_NUS1;DELAY_NUS2;R_BYTE4;R_BYTE24;R_BYTER_BYTE210R_BYTE;RETURNR_BYTE;HD44780CINCLUDE”INCLUDESH”DEFINEHD44780_CVOIDLCD_PULSEVOIDICDSETEDELAY_NMS1ICD_CLEAR_EDELAY_NMS1;VOIDICD_WAITVOIDASM”NOP”;VOIDICD_SENDUNSIGNEDCHARDATALCD_WAIT;DATAPORTDATALCD_PULSE;VOIDCLRSCRVOIDLCD_CLEAR_RS;LCD_CLEAR_RW;ICD_SEND0X01;LCD_WAIT;VOIDGOTOZUNSIGNEDCHARZLCD_CLEAR_RS;LCD_CLEAR_RW;LCD_SENDZ|0X80;VOIDGOTOXYUNSIGNEDCHARX,UNSIGNEDCHARYGOTOZX|Y6;VOIDPUT_CHARCHARCLCD_CLEAR_RW;LCD_SET_RS;LCD_SENDC;VOIDOUTTEXTUNSIGNEDCHARTEXTUNSIGNEDCHARI;FORI0TEXTIASM”NOP”LCD_CLEAR_E;VOIDLCD_WRITEDATAUNSIQNEDCHARDATACHARTEMPLCD_BUSY;LCD_DIR_PORT0XFFTEMPLCD_OP_PORTTEMPTEMPLCD_CLEAR_RW;SETLCDTOWRITELCD_SET_RS;LCD_SET_E;ASM”NOP”;ASM”NOP”LCD_CLEAR_E;LCD_OP_PORTDATA4|TEMPLCD_CLEAR_RW;LCD_SET_RS;LCD_SET_E;ASM”NOP”;ASM”NOP”;LCD_CLEAR_E;初始化液晶VOIDINIT_LCDVOIDLCD_INITLCD_WRITECONTROLLCD_FUNCTION_SET;LCD_WRITECONTROLLCD_OFF;LCD_WRITECONTROLLCD_CLEAR;LCD_WRITECONTROLLCD_MODE_SET;LCD_WRITECONTROLLCD_ON;LCD_WRLTECONTROLLCD_HOME;LCD_WRITECONTROL0X90;/清屏VOIDLCD_CLEARVOIDLCD_WRITECONTROL0X01;移动光标到0行0列VOIDLCD_HOMEVOIDLCD_WRITECONTROL0X02;“显示字符,在当前光标处VOIDLCD_DISPLAYCHARACTERCHARCHARLCD_WRITEDATACHAR;在FLASH中、在指定的行和列显示一个字符串VOIDLCD_DISPLAYSTRING_FCHARROW,CHARCOLUMN,UNSIGNEDCHAR_FLASHSTRINGLCD_CURSORROW,COLUMN;WHILESTRINGLCD_DISPLAYCHARACTERSTRING;在RAM中、在指定的行和列显示一个字符串VOIDLCD_DISPLAYSTRINGCHARROW,CHARCOLUMN,UNSIGNEDCHARSTRINGLCD_CURSORROW,COLUMN;WHILESTRINGLCD_DISPLAYCHARACTERSTRING;定位行和列的光标VOIDLCD_CURSORCHARROW,CHARCOLUMNSWITCHROWCASE1LCD_WRITECONTROL0X80COLUMN一1;BREAK;CASE2LCD_WRITECONTROL0XC0COLUMN一1;BREAKCASE3LCD_WRITECONTROL0X94COLUMN1;BREAKCASE4LCD_WRITECONTROL0XD4COLUMN1;BREAKDEFAULTBREAK;打开光标VOIDLCD_CURSOR_ONVOIDLCD_WRITECONTROLLCD_CURS_ON;关闭光标VOIDLCD_CURSOR_OFFVOIDLCD_WRITECONTROLLCD_ON;关闭LCD杀VOIDLCD_DISPLAY_OFFVOIDLCD_WRITECONTROLLCD_OFF;打开LCDVOIDLCD_DISPLAY_ONVOIDLCD_WRITECONTROLLCD_ON;MAINCINCLUDE”INCLUDESH”DEFINEWDRASM”WDR”UNSIGNEDCHARALARM_1_SET,ALARM_2_SET,ALARM_3_SET;_FLASHUNSIGNEDCHARTEST”DSL302TIMEIS”;VOIDMAINVOIDUNSIGNEDCHARHOUR,MIN,SEC;UNSIGNEDCHARDATE,MONTHUNSIGNEDCHARFLAG;FLAG1;PORTB0X00;DDRB0X00;DDRD0X7F;PORTD0XFFINIT_LCD;L

温馨提示

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

评论

0/150

提交评论