通信毕业设计_第1页
通信毕业设计_第2页
通信毕业设计_第3页
通信毕业设计_第4页
通信毕业设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

毕业论文设计题目基于单片机的数字万年历设计学生姓名郑得利学生学号0908040147系别电气信息工程学院专业通信工程届别2013届指导教师朱士永成绩基于单片机的数字万年历设计学生郑得利指导教师朱士永淮南师范学院电气信息工程学院摘要本文借助电路仿真软件PROTUES对基于AT89S51单片机的电子万年历的设计方法及仿真进行了全面的阐述。该电子万年历在硬件方面主要采用AT89C51单片机作为主控核心,由DS1302时钟芯片提供时钟、1602LCM点阵液晶显示屏显示。AT89C51单片机是由ATMEL公司推出的,功耗小,电压可选用46V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的LED液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒等信息。此外,该电子万年历还具有时间校准等功能。在软件方面,主要包括日历程序、时间调整程序,显示程序等。所有程序编写完成后,在KEIL软件中进行调试,确定没有问题后,在PROTEUS软件中嵌入单片机内进行仿真。论文主要研究了液晶显示器LCM及时钟芯片DS1302,温度传感器DS18B20与单片机之间的硬件互联及通信,对数种硬件连接方案进行了详尽的比较,在软件方面对日历算法也进行了论述。研究结果表明,由于万年历的应用相当普遍,所以其设计的核心在于硬件成本的节约软件算法的优化,力求做到物美价廉,才能拥有更广阔的市场前景。关键词单片机;DS1302;DS18B20;LCM1602DESIGNOFTHEDIGITALPERPETUALCALENDARBASEDONSINGLECHIPMICROCOMPUTERSTUDENTDELIZHENGTUTORYONGSHIZHUINSTITUTEOFELECTRICALANDINFORMATIONENGINEERINGOFHUAINANNORMALUNIVERSITYABSTRACTTHISPAPERMAINLYDISCUSSTHEDESIGNANDSIMULATIONOFELECTRONICCALENDERBASEDONAT89S51WITHTHEHELPOFPROTUESONTHEHARDWARESIDE,THEELECTRONICCALENDARUSINGAT89C51MICROCONTROLLERASTHEMAINCONTROLCENTER,CLOCKPROVIDEDBYTHEDS1302CLOCKCHIP,1602LEDDOTMATRIXLCDDISPLAYATMELCORPORATIONAT89C51MICROCONTROLLERISPRODUCTEDBYATMELCORPORATION,LOWPOWERCONSUMPTION,VOLTAGECANBESELECTED4V6VVOLTAGEPOWERSUPPLYDS1302CLOCKCHIP,LAUNCHEDINTHEUNITEDSTATESWITHDALLASSMALLCURRENTCHARGINGFUNCTIONREALTIMECLOCKCHIP,LOWPOWERCONSUMPTION,ITCANBEYEARS,MONTH,DATE,DAY,HOUR,MINUTE,SECONDSTIME,ALSOHASALEAPYEARCOMPENSATIONANDOTHERFUNCTIONS,ANDDS1302LONGLIFE,SMALLERRORLEDDIGITALDISPLAYISUSEDINLCDDISPLAYSTHATCANDISPLAYIN,MONTH,DAY,WEEK,HOURS,MINUTES,SECONDSANDOTHERINFORMATIONINADDITION,THEELECTRONICCALENDARISALSOATIMECALIBRATIONFUNCTIONSINTERMSOFSOFTWARE,INCLUDINGCALENDARPROGRAM,TIMETOADJUSTPROCEDURES,DISPLAYPROCEDURESALLPROGRAMMINGISCOMPLETE,THEKEILSOFTWAREDEBUGGING,MAKESURETHEREISNOPROBLEM,INTHEPROTEUSSOFTWAREEMBEDDEDWITHINTHESIMULATEDMCUTHISARTICLEFOCUSONLIQUIDCRYSTALSCREENLCM1602ANDCLOCKCHIPDS1302,TEMPERATURESENSORDS18B20WHICHCONNECTEDANDCOMMUNICATEDWITHMICROCONTROLLERSEVERALSOLUTIONSWILLALSOCOMPAREDWITHEACHOTHERONSOFTWARESIDE,CALENDERCALCULATIONWILLBEDISCUSSEDASWELLTHERESULTSAREASFOLLOWSASELECTRONICCALENDERAREWIDELYUSEDINOURDAILYLIFEITSHOULDBECHIPANDCONVENIENTSOASTOWINMOREPROFITKEYWORDMICROCONTROLLER,DS1302;DS18B20;LCD1602目录前言31方案设计411概述4111实时时钟研究的背景及意义4112系统的总体设计512系统基本方案选择和论证6121单片机芯片的选择6122显示模块选择方案和论证6123时钟芯片的选择方案和论证6124电路设计最终方案决定72硬件电路设计721系统硬件概述722单片机最小系统823单片机的复位电路924时钟芯片电路11241时钟芯片引脚介绍11242时钟芯片DS1302介绍12251602LCD液晶显示屏132511602字符型LCD简介132521602引脚功能说明1326蜂鸣器闹铃电路1427按键调整电路1428显示模块153软件部分设计1631程序流程框图1632时间设置子程序流程1633程序设计问题17331按键抖动问题17332蜂鸣器设置18333液晶显示的设置18334中断设置18335时钟芯片设置194开发工具PROTEUS与KEIL2141PROTEUS软件21411PROTEUS简介214124大功能模块22413ISIS智能原理图输入系统23414PROTEUS简单应用2342KEIL软件24421KEIL软件简介24422KEIL软件调试功能2443本章小结255系统测试2651硬件测试2652软件测试26结束语26致谢27参考文献28附录29前言随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。为了在观测时间的同时,能够了解其它与人类密切相关的信息,比如温度、星期、日期等,电子万年历诞生了,它集时间、日期、星期和温度功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势。伴随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。由其是单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来的诸多方便,作为一种附加功能,现在越来越广泛的被应用于各种电子产品中,具有广阔的市场前景。通过以往对工业自动化的相关课程学习和理解独立完成制作电子万年历的设计。电子万年历作为电子类小产品不仅是市场上的宠儿,也是是单片机设计培训中一个很实用的题目。因为这个课题有很好的开放性和可发挥性,对制作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且要求设计的电子万年历在操作上力求简洁,功能上尽量齐全,显示界面也要出色。所以,电子万年历制作无论从实用目的,还是从培养能力的角度来看都是很有价值的毕业设计课题。本电子万年历的设计在硬件方面主要采用AT89S51单片机作为主控核心,由DS1302时钟芯片提供时钟、1602LCM点阵液晶显示屏显示。AT89S51单片机是由ATMEL公司推出的,功耗小,电压可选用46V电压供电1;DS1302时钟芯片是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的LED液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒等信息。此外,该电子万年历还具有时间校准等功能。在软件方面,主要包括日历程序、时间调整程序,显示程序等。所有程序编写完成后,在KEIL软件中进行调试,确定没有问题后,在PROTEUS软件中嵌入单片机内进行仿真。最后在老师同学的帮助以及自己的努力下完成了此次电子万年历的设计。1方案设计11概述111实时时钟研究的背景及意义在现实我们生活中每个人都可能有自己的时钟,光阴在永不停息的流逝,有了时钟人们就能随着时间有计划的过着每一天。然而现在绝大部分的时钟有的需要不断地跟换电池,有些时钟需要外接电源,如果一旦电池没电或者外接电源无法供电,时钟就会停止计时了。而美国DALLAS公司的新型时钟日历芯片DS1302就能解决这一问题。该器件能提供实时时钟(RTC)/日历、定时闹钟。少于31天的月份,月末日期可自动调整,其中包括闰年补偿。该器件还可以工作于24小时货代/PM指示的12小时格式。一个精密的温度补偿电路用来监视VCC的状态。本时钟还具有环保、走时无噪音、低功耗等非实时时钟不具有的功能。该实时时钟不但可以作为家用,而且更可以在公共场合使用,如车站、码头、商场等场所。112系统的总体设计采用AT89C52作为主控单片机,时钟模块选用DS1302作为时钟芯片,温度模块选用DS18B20作为温度传感器,显示模块选用LCD1602,设置部分选用按键电路。AT89C52与MCS51单片机产品兼容、8K字节在系统可编程FLASH存储器、1000次擦写周期、全静态操作0HZ33HZ、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。DS1302实时时钟芯片功能丰富,可以用来直接代替IBMPC上的时钟日历芯片DS12887,同时,它的管脚也和MC146818B、DS12887相兼容。由于DS1302能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决子“千年”问题;DS1302中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,有12小时制和24小时制两种模式。用户还可对DS1302进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。该系统的系统框图如图11示AT89C52单片机液晶显示DS1302DS18B20串口连接电路按键控制如图11系统框图12系统基本方案选择和论证121单片机芯片的选择本设计采用AT89S51芯片作为硬件核心,该芯片采用FLASHROM,内部具有4KBROM存储空间,相对于本设计而言程序空间完全够用。能于3V的超低压工作,而且与MCS51系列单片机完全兼容,而且运用于电路设计中时具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,避免芯片的多次拔插对芯片造成的损坏。122显示模块选择方案和论证方案一采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。方案二采用LED数码管动态扫描,LED数码管价格虽适中,对于显示数字也最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。但是由于数码管动态扫描需要借助74LS164移位寄存器进行移位,该芯片在电路调试时往往会有很多障碍,所以不采用LED数码管作为显示。方案三采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,对于电子万年历而言,一个1602的液晶屏即可,价格也还能接受,需要的接口线较多,但会给调试带来诸多方便,所以此设计中采用LCD1602液晶显示屏作为显示模块。123时钟芯片的选择方案和论证方案一直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、3秒计数。采用此种方案虽然可以减少时钟芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。方案二采用DS1302时钟芯片实现时钟,DS130是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为25V55V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32768KHZ晶振4。因此,本设计中采用DS1302提供时钟。124电路设计最终方案决定综上各模块的选择方案与论证,确定最后的主要硬件资源如下采用AT89S51作为主控制系统;DS1302提供时钟;DS18B20作为数字式温度传感器;LCD1602液晶屏作为显示。2硬件电路设计21系统硬件概述本电路是由AT89S52单片机作为控制核心,能在3V超低压工作,AT89S52是一个低功耗,高性能CMOS8位单片机,片内含4KBYTESISPINSYSTEMPROGRAMMABLE的可反复擦写1000次的FLASH只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFLASH存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为25V55V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。可产生年、月、日、周、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示部份由LCD1602液晶显示器完成,该显示器为工业字符型液晶,能够同时显示16X02键盘控制模块温度采集模块。AT89S51主控模块LCD1602液晶显示模块DS1302时钟模块。22单片机最小系统AT89C52单片机最小系统电路设计如图21所示。图21AT89C52单片机结构图本系统以AT89C52单片机为核心,本系统选用110592MHZ的晶振,使得单片机有合理的运行速度。起振电容30PF对振荡器的频率高低、振荡器的稳定性和起振的快速性影响较合适,复位电路为按键高电平复位。AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。P0口P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用6于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作。这是由硬件自动完成的,不需要我们操心,1然后再实行读引脚操作,否则就可能读入出错,如果不对端口置1,端口锁存器原来的状态有可能为0Q端为0Q为1加到场效应管栅极的信号为1,该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1,也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1。若先执行置1操作,则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入,由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为准双向口。89C51的P0/P1/P2/P3口作为输入时都是准双向口。23单片机的复位电路复位电路的连接图如下图22复位电路连接图为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V5,即475525V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过475V低于525V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期24个振荡周期以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有手动按钮复位和上电复位。51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,(在特殊寄存器介绍时再做详细说明)至于内部RAM内部的数据则不变。系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。单片机的工作完全在其PC指针控制下,即PC指向哪,单片机就执行那里的指令。复位后PC执行0000H地址,即你的程序的第一条指令。24时钟芯片电路241时钟芯片引脚介绍时钟芯片DS1302,其引脚分布图如下所示图23DS1302引脚分布图DS1302的引脚排列,其中VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电。当VCC2大于VCC102V时,VCC2给DS1302供电。当VCC2小于VCC1时,DS1302由VCC1供电。X1和X2是振荡源,外接32768KHZ晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC25V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端双向,后面有详细说明。CLK为时钟输入端。242时钟芯片DS1302介绍美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟电路DS1302的结构、工作原理及其在实时显示时间中的应用。它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH写、FFH读。为了实现系统报警计时等功能,此设计采用了DS302实时时钟芯片。DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为25V55V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。21引脚功能及结构DS1302的引脚排列,其中VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电。当VCC2大于VCC102V时,VCC2给DS1302供电。当VCC2小于VCC1时,DS1302由VCC1供电。X1和X2是振荡源,外接32768KHZ晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC25V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端双向,后面有详细说明。SCLK始终是输入端。控制字节的最高有效位位7必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据位5至位1指示操作单元的地址最低有效位位0如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。251602LCD液晶显示屏2511602字符型LCD简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,本设计采用16列2行的字符型LCD1602带背光的液晶显示屏。2521602引脚功能说明各引脚接口说明如表所示表1编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表1引脚接口说明第1脚VSS为地电源。第2脚VDD接5V正电源。第3脚VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚D0D7为8位双向数据线。第15脚背光源正极。第16脚背光源负极。26蜂鸣器闹铃电路当单片机给蜂鸣器一个低电平时,三极管导通驱动蜂鸣器发出声音作为定时闹铃,其电路图如图23所示27按键调整电路系统四个独立键盘均采用查询方式,S2用于设置年、月、日、时、分、秒、星期的数值加,以及闹钟开,S3用于设置年、月、日、时、分、秒、星期的数值减以及闹钟关,S1用于具体设置时钟位的切换,S4键用于设置闹钟。其电路图如24所示28显示模块如下图所示,采用LCM1602液晶显示器,单片机P1口作为数据输出口,RS,RW,E分别通过10K的上拉电阻连接到单片机的P00,P01,P02。VDD接5V电源,VSS接地。VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。R/W为读写信号线,高电平1时进行读操作,低电平0时进行写操作。E或EN端为使能ENABLE端,下降沿使能。DB0DB7为双向数据总线,同时最高位DB7也是忙信号检测位。BLA、BLK分别为显示器背光灯的正、负极。1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。1602液晶模块内部的字符发生存储器(CGROM已经存储了160个不同的点阵字符,图形寄存器选择控制表如表所示表21602寄存器选择控制表RSR/W操作说明00写入指令寄存器01读BUSYFLAG,以及读取位址计数器10写入数据寄存器11从数据寄存器读取数据1602通过D0D7的8位数据端传输数据和指令。显示模式设置初始化001110000X38设置162显示,57点阵,8位数据接口;显示开关及光标设置初始化00001DCBD显示1有效、C光标显示1有效、B光标闪烁1有效。000001NSN1读或写一个字符后地址指针加1并且光标加1,N0读或写一个字符后地址指针减1并且光标减1,S1且N1当写一个字符后,整屏显示左移,S0当写一个字符后,整屏显示不移动。数据指针设置数据首地址为80H,所以数据地址为80H地址码027H,4067H。其他设置01H显示清屏,数据指针0,所有显示0;02H显示回车,数据指针0。3软件部分设计31程序流程框图主程序开始初始化,并打开中断,然后执行扫描闹钟、键盘及读取18B20值。当有S1键按下时,执行时钟设置,当有S4键按下时,则进入闹钟设置,无论是时钟还是闹钟,设置完后退出,温度、时钟恢复实时显示。主程序流程图如图31所示读、写日期、时间分离日期、时间显示值上下调整设置时间返回按下调整按键初始化开始图31程序流程框图32时间设置子程序流程通过单片机判断S1按下的次数来设置,由S1NUM标志位来记录次数,用IF语句判断执行命令。系统程序不断扫面键盘,当S1键按下后产生一个低电平,即S1NUM加一。在调节时间之前首先进行各个变量初始化,及设置起始时间,同时为读取数据作准备。当S11时进入秒的设置,地址指针指向MIAO显示位置处,通过两个IF语句分别循环控制显示秒数的加和减。当S12时,地址指针指向FEN显示位置处,变量最大值为59。当S13时,地址指针指向SHI显示位置处,变量最大值设为23。当S14时,地址指针指向WEEK显示位置处,最大值设为7,1至7分别用MON、TUE、WED、THU、FRI、SAT、SUN字符串显示。随着S2、S3值的的变化显示不同的字符串。当S15时,地址指针指向DAY显示位置,变量最大值为31。当S16时,地址指针指向MONTH显示位置,变量最大值为12。当S17时,地址指针指向YEAR显示位置,最大值为99。S11秒S12秒S17秒S18退出S2调加秒S3调减秒S2调加年S3调减年33程序设计问题331按键抖动问题按键在按下时因为机械原因会产生抖动,抖动的后果就是当按下一次按键时因为抖动的原因让系统读取到多次的按键按下的次数,由此导致设置时出现错误。解决的方法如下当按键按下时读取按键键值,若5MS后键值和按下是相等,则确认为有效按键,以此消除按键抖动带来的问题。332蜂鸣器设置蜂鸣器报警时,设置响100毫秒,停100毫秒,循环响应,产生滴滴的声音。333液晶显示的设置初始化设置显示模式设置写入指令码WRITE_COM0X38,设置功能162显示,57点阵,8位数据接口显示/开关及光标设置写入指令码WRITE_COM0X0C,设置开显示,不显示光标,光标不闪烁。写入指令码WRITE_COM0X06,设置当读或写一个字符后地址指针加一,且光标加一。当写一个字符,整屏显示不移动。显示清屏,写入指令码WRITE_COM0X01。写入指令码函数WRITE_COM()写指令过程输入RS0,D0D7指令码,E高脉冲写入数据函数WRITE_DATE()写指令过程输入RS1,D0D7数据,E高脉冲写入指令和数据时RW端已经接地。数据指针设置指令码80H地址码(027H)显示第一行的字符指令码80H地址码(40H67H)显示的第二行字符334中断设置EA1/打开总中断EX11/打开外部中断IT11/设置负跳变沿触发中断当闹钟到点时响应外部中1时间到时IRQ端从高阻态转为低电平,此时读一次C寄存器清除IRQ端的输出,等待下一次定时。VOIDEXTERINTERRUPT2/外部中断1服务程序UCHARC/进入中断表示闹钟时间到FLAG_RI1/设置标志位,用以大程序中报警CREAD_DS0X0C/读取12C887C寄存器表示响应了中端335时钟芯片设置首次上电初始化时间函数VOIDSET_TIME/首次上电初始化时间函数WRITE_DS0,0/初始化秒WRITE_DS1,0/初始化秒闹钟WRITE_DS2,0/初始化分WRITE_DS3,0/初始化分闹钟WRITE_DS4,0/初始化时WRITE_DS5,0/初始化时闹钟WRITE_DS6,0/初始化星期WRITE_DS7,0/初始化日WRITE_DS8,0/初始化月WRITE_DS9,0/初始化年写12C887函数VOIDWRITE_DSUCHARADD,UCHARDATE/写12C887函数DSCS0打开片选信号DSAS1DSDS1DSRW1P0ADDDSAS0/下降沿锁存地址DSRW0P0DATEDSRW1;/上升沿锁存数据DSAS1/上升沿清除地址DSCS1/关掉片选信号读12C887函数UCHARREAD_DSUCHARADDUCHARDS_DATEDSAS1DSDS1DSRW1DSCS0打开片选信号P0ADDDSAS0/下降沿锁存地址DSDS0P00XFFDS_DATEP0DSDS1/下降沿锁存地址DSAS1/上升沿清除地址DSCS1/关掉片选信号RETURNDS_DATE4开发工具PROTEUS与KEIL41PROTEUS软件411PROTEUS简介PROTEUS软件是英国LABCENTERELECTRONICS公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。PROTEUS是世界上著名的EDA工具仿真软件,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086和MSP430等,2010年即将增加CORTEX和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、KEIL和MPLAB等多种编译器。该软件的特点是1实现了单片机仿真和SPICE电路仿真相结合,具有模拟电路仿真、数字电路仿真、各种单片机51系列、AVR、PIG等常用的MCU及其外围电路如LED、RAM、ROM、键盘、LED、A/D、D/A组成的系统仿真。2提供了多种虚拟仪器。如示波器、逻辑分析仪、信号发生器等,调试非常方便。3提供软件调试功能,同时支持第三方的软件编译和调试环境,如KEIL等软件。4具有强大的原理图绘制功能。PROTEUS与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验从某种意义上讲,是弥补了实验和工程应用阉脱节的矛盾和现象。同时,当硬件调试成功后,利用PROTEUSARES软件,很容易获得其PCB图,为今后的制造提供了方便。4124大功能模块1智能原理图设计(ISIS)丰富的器件库超过27000种元器件,可方便地创建新元件。智能的器件搜索通过模糊搜索可以快速定位所需要的器件。智能化的连线功能自动连线功能使连接导线简单快捷,大大缩短绘图时间。支持总线结构使用总线器件和总线布线使电路设计简明清晰。可输出高质量图纸通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。2完善的电路仿真功能(PROSPICE)PROSPICE混合仿真基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真。超过27000个仿真器件可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,LABCENTER也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件。多样的激励源包括直流、正弦、脉冲、分段线性脉冲、音频(使用WAV文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入。丰富的虚拟仪器13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等。生动的仿真显示用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动高级图形仿真功能(ASF)基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等。3独特的单片机协同仿真功能(VSM)支持主流的CPU类型如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、DSPIC33、HC11、BASICSTAMP、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器。支持通用外设模型如字符LED模块、图形LED模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信。实时仿真支持UART/USART/EUSARTS仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真。编译及调试支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、KEIL和HITECH)结合,进行高级语言的源码级仿真和调试。4实用的PCB设计平台原理图到PCB的快速通道原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计。先进的自动布局/布线功能支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理。完整的PCB设计功能最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D可视化预览。多种输出格式的支持可以输出多种格式文件,包括GERBER文件的导入或导出,便利与其它PCB设计工具的互转(如PROTEL)和PCB板的设计和加工。413ISIS智能原理图输入系统ISIS是PROTEUS系统的中心,它远不仅是一个图表库。它是具有控制原理图画图的外观的超强的设计环境。无论用户的要求是快速实现复杂设计的仿真以及PCB设计,还是设计精美的原理图以供出版,ISIS都可以很好的完成。ISIS提供给用户图形外观包括线宽、填充类型、字符等的全部控制,使用户能够生成如杂志上看到一样精美的原理图,远胜过CAD软件绘制出的稀薄的线条。画完图可以以图形文件输出,或者拷贝到剪切板以便其他文件使用。这就使得ISIS成为制作技术文件,学术论文,项目报告的理想工具,也是PCB设计的一个出色的前端。画图的外形由风格模板定义。此外,此方案允许用户定制元件库提供的库部件的外观。414PROTEUS简单应用1绘制原理图绘制原理图要在原理图编辑窗口中的蓝色方框内完成。原理图编辑窗口的操作是不同于常用的WINDOWS应用程序的,正确的操作是用左键放置元件;右键选择元件;双击右键删除元件;右键拖选多个元件;先右键后左键编辑元件属性;先右键后左键拖动元件;连线用左键,删除用右键;改连接线先右击连线,再左键拖动;中键放缩原理图。2定制自己的元件有三个个实现途径,一是用PROTEUSVSMSDK开发仿真模型,并制作元件;另一个是在已有的元件基础上进行改造,比如把元件改为BUS接口的;还有一个是利用已制作好别人的的元件,我们可以到网上下载一些新元件并把它们添加到自己的元件库里面。3SUBCIRCUITS应用用一个子电路可以把部分电路封装起来,这样可以节省原理图窗口的空间。42KEIL软件421KEIL软件简介KEILC51是美国KEILSOFTWARE公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KEILC51软件提供丰富的库函数和功能强大的集成开发调试工具,全WINDOWS界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KEILC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。KEILC51软件是一个基于32位WINDOWS环境的应用程序,支持C语言和汇编语言编程,其60以上的版本将编译和仿真软件统一为VISION通常称为V2。KEIL提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成VISIONIDE集成开发环境C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及MONITOR51、RTX51实时操作系统。422KEIL软件调试功能应用KEIL进行软件仿真开发的主要步骤为编写源程序并保存建立工程并添加源文件设置工程编译/汇编、连接,产生目标文件程序调试。KEIL使用“工程”PROJECT的概念,对工程而不能对单一的源程序进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。首先选择菜单FILENEW,在源程序编辑器中输入汇编语言或C语言源程序或选择FILEOPEN,直接打开已用其它编辑器编辑好的源程序文档并保存,注意保存时必须在文件名后加上扩展名ASMA51或C;然后选择菜单PROJECTNEWPROJECT,建立新工程并保存保存时无需加扩展名,也可加上扩展名UV2;工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。这时工程管理窗口的文件页FILES会出现“TARGET1”,将其前面号展开,接着选择SOURCEGROUP1,右击鼠标弹出快捷菜单,选择“ADDFILETOGROUPSOURCEGROUP1”,出现一个对话框,要求寻找并加入源文件在加入一个源文件后,该对话框不会消失,而是等待继续加入其它文件。加入文件后点CLOSE返回主界面,展开“SOURCEGROUP1”前面号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。紧接着对工程进行设置,选择工程管理窗口的TARGET1,再选择PROJECTOPTIONFORTARGETTARGET1或点右键弹出快捷菜单再选择该选项,打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在TARGET选项卡中设置晶振频率、在DEBUG选项卡中设置实验仿真板等,如要写片,还必须在OUTPUT选项卡中选中“CREATHEXFI”;其它选项卡内容一般可取默认值。工程设置后按F7键或点击编译工具栏上相应图标进行编译/汇编、连接以及产生目标文件。成功编译/汇编、连接后,选择菜单DEBUGSTART/STOPDEBUGSESSION或按CTRLF5键进入程序调试状态,KEIL提供对程序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。KEIL能以单步执行按F11或选择DEBUGSTEP、过程单步执行按F10或选择DEBUGSTEPOVER、全速执行等多种运行方式进行程序调试。如果发现程序有错,可采用在线汇编功能对程序进行在线修改DEBUGINLINEASSAMBLY,不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。对于一些必须满足一定条件如按键被按下等才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理DEBUGINSERT/REMOVEBREAKPOINT或DEBUGBREAKPOINTS等。在模拟调试程序后,还须通过编程器将HEX目标文件烧写入单片机中才能观察目标样机真实的运行状况。43本

温馨提示

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

评论

0/150

提交评论