




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要本设计是基于51系列的单片机进行的实时日历和时钟显示设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同步对单片机的理论基础和外围扩展知识进行了比较全面准备。实时日历和时钟显示的设计过程在硬件与软件方面进行同步设计。硬件部分重要由AT89S52单片机,LED显示电路,以及调时按键电路等构成,系统通过LED显示数据,因此具有人性化的操作和直观的显示效果。软件方面重要包括时钟程序、键盘程序,显示程序等。本系统以单片机的汇编语言进行软件设计,为了便于扩展和更改,软件的设计采用模块化构造,使程序设计的逻辑关系愈加简洁明了,以便更简朴地实现调整时间及日期显示功能。所有程序编写完毕后,在wave软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。关键词:AT89S52;DS1302;LEDAbstractThisdesignisbasedon51seriesmonolithicintegratedcircuitsofareal-timecalendarandtheclockshowsthedesign,youcanshowhowandwhenaweek,hasmayadjustthedateandtimefunctions.inthedesignformonolithicintegratedcircuits,andperipheraltoexpandthebasictheoriesofknowledgewasfairlycomprehensivepreparation.Real-timecalendarandtheclockshowsthedesigninhardwareandsoftwaredesignofhardwarethatissynchronized.theleddisplayat89s52monolithicintegratedcircuits,andwhenshouldtheelectricalcircuits,thesystemthroughtheleddisplaydatasobehumanizedoperateandintuitivethateffect.includingthesoftwareapplicationprograms,thekeyboard,theprogram,etc.Thissystemtomonolithicintegratedcircuitsoftheassemblylanguageforeasilydevelopingsoftwaredesign,andchanges,softwaredesigntousemodulardesign,theprogramminglogicalrelationshipwithmoreandmoresoastorealizethetimeanddatedisplaythefunctions.allproceduresinwritingafterwaveofdebuggingthesoftwareandmakenoquestionoftheproteussoftwareembeddedmonolithicintegratedcircuits.KeyWords:AT89S52;DS1302;LED目录1概述 12设计方案论证 22.1功能规定 22.2方案确定 22.2.1单片机芯片的选择方案和论证 22.2.2显示模块选择方案和论证 32.2.3时钟芯片的选择方案和论证 32.2.4电路设计最终方案确定 33主控制器和外围器件 43.1AT89S52单片机 43.2DS1302时钟芯片 43.2.1DS1302芯片简介 43.2.2DS1302的应用 83.3数码管LED 83.4译码器74HC138 93.5锁存器74LS244 94硬件设计 104.1电路设计框图 104.2系统概述 104.3电源设计 104.4单片机的复位电路 114.5单片机系统的晶振电路 114.6主电路设计 125软件设计 135.1主程序设计 135.2键盘子程序设计 145.3日历时钟子程序设计 165.4显示子程序设计 186系统调试 186.1软件调试 186.2硬件调试 197结论 20道谢 22参照文献 23附录 24附录Ⅰ硬件电路图 24附录Ⅱ主程序源代码 25附录Ⅲ外文翻译原文 39附录Ⅳ外文翻译译文 50-1概述在日新月异的二十一世纪里,家用电子产品得到了迅速发展。许多家电设备都趋于人性化、智能化,这些电器设备大部分都具有CPU控制器或者是单片机。单片机以其高可靠性、高性价比、低电压、低功耗等一系列长处,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统、通讯设备、平常消费类产品和玩具等。并且已经深入到工业生产的各个环节以及人民生活的各个方面,如车间流水线控制、自动化系统等、智能型家用电器(冰箱、空调、彩电)等。用单片机来控制的小型家电产品具有便携实用,操作简朴的特点。时钟,自从它发明的那天起,就成为人类的朋友,但伴随时间的推移,科学技术的不停发展,人们对时间计量的精度规定越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就规定人们不停设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用以便,不需要常常调校,数字式电子钟用集成电路计时时,译码替代机械式传动,用LED显示屏替代显示屏替代指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一种单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定期信号,重要由晶振和外围电路构成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的原则定期时钟,即定期时间,它一般有两种实现措施:一是用软件实现,即用单片机内部的可编程定期/计数器来实现,但误差很大,重要用在对时间精度规定不高的场所;二是用专门的时钟芯片实现,在对时间精度规定很高的状况下,一般采用这种措施,经典的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的规定。本文设计的日历和时钟的显示广泛用于小型智能家用电子产品,如电子钟。运用单片机进行控制,实时时钟芯片DS1302进行记时,外加掉电存储电路和显示电路,可实现时间的调整和显示。电子钟既可广泛应用于家庭,也可应用于银行、邮电、宾馆、医院、学校、企业、商店等有关行业的大厅,以及单位会议室、门卫等场所。因而,此设计具有相称重要的现实意义和实用价值。2设计方案论证2.1功能规定1、能显示年、月、日、时、分、秒、星期2、能对时间进行手动修正3、采用24小时制4、使用LED显示时间参数5、上电后,电子钟显示“1月1日”“1时1分1秒星期1对时,分,秒,日,月,年高位为0时做消隐处理,只显示单个数字以增强其可读性。2.2方案确定2.2.1单片机芯片的选择方案和论证方案一:采用89C51芯片作为硬件关键,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,并且与MCS-51系列单片机完全兼容,不过运用于电路设计中时由于不具有ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片导致一定的损坏。方案二:采用AT89S52,片内ROM全都采用FlashROM;能以3V的超底压工作;同步也与MCS-51系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,因此不会对芯片导致损坏。因此选择采用AT89S52作为主控制系统.2.2.2显示模块选择方案和论证方案一:采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,不过价格昂贵,需要的接口线多,因此在此设计中不采用LED液晶显示屏。方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管构成,对于显示文字比较适合,如采用在显示数字显得太挥霍,且价格也相对较高,因此也不用此种作为显示。方案三:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,并且采用动态扫描法与单片机连接时,占用的单片机口线少。因此采用了LED数码管作为显示。2.2.3时钟芯片的选择方案和论证方案一:直接采用单片机定期计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节省成本,不过,实现的时间误差较大。因此不采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年赔偿的年进行计数,并且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电不不小于300nA.2.2.4电路设计最终方案确定综上各方案所述,对本次作品的方案选定:以单片机AT89S52为主控制器,时间数据是通过时钟芯片DS1302来读取,并通过LED数码管显示出来,并用键盘来完毕对目前时间的调整。3主控制器和外围器件3.1AT89S52单片机AT89S52是一种低功耗、高性能CMOS8位微控制器,使用ATMEL企业高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。并具有如下原则功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定期器,2个数据指针,三个16位定期器/计数器,一种6向量2级中断构造,全双工串行口,片内晶振及时钟电路。此外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,容许RAM、定期器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保留,振荡器被冻结,单片机一切工作停止,直到下一种中断或硬件复位为止。3.2DS1302时钟芯片3.2.1DS1302芯片简介低功耗时钟芯片DS1302可以对年、月、日、时、分、秒进行计时,且具有闰年赔偿等多种功能。DS1302用于数据记录,尤其是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同步记录。这种记录对长时间的持续测控系统成果的分析以及对异常数据出现的原因的查找有重要意义。采用DS1302作为记录测控系统中的数据记录,其软硬件设计简朴,时间记录精确,既防止了持续记录的大工作量,又防止了定期记录的盲目性,给持续长时间的测量、控制系统的正常运行及检查都来了很大的以便,可广泛应用于长时间持续的测控系统中。在测量控制系统中,尤其是长时间无人职守的测控系统中,常常需要记录某些具有特殊意义的数据及其出现的时间。记录及分析这些特殊意义的数据,对测控系统的性能分析及正常运行具有重要的意义。老式的数据记录方式是隔时采样或定期采样,没有详细的时间记录,因此只能记录数据而无法精确记录其出现的时间;若采用单片机计时,首先需要采用计数器,占用硬件资源,另首先需要设置中断、查询等,同样花费单片机的资源,并且某些测控系统也许不容许。而在系统中采用DS1302则能很好地处理这个问题。DS1302的性能特性·实时时钟,可对秒、分、时、日、周、月以及带闰年赔偿的年进行计数;·用于高速数据暂存的31×8位RAM;·至少引脚的串行I/O;·2.5~5.5V电压工作范围;·2.5V时耗电不不小于300nA;·用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式;·简朴的3线接口;·可选的慢速充电(至VCC1)的能力。DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。它通过一种简朴的串行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于不不小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用24h或带AM(上午)/PM(下午)的12h格式。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多种字节的时钟信号或RAM数据。DS1302有主电源/后备电源双电源引脚:VCC1在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份;VCC2在双电源系统中提供主电源,在这种运用方式中,VCC1连接到备份电源,以便在没有主电源的状况下能保留时间信息以及数据。DS1302由VCC1或VCC2中较大者供电。当VCC2不小于VCC1+0.2V时,VCC2给DS1302供电;当VCC2不不小于VCC1时,DS1302由VCC1供电。DS1302数据操作原理DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。无论是读周期还是写周期,开始8位指定40个寄存器中哪个被访问到。在开始8个时钟周期,把命令字节装入移位寄存器之后,此外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8加字节数,最大可达248字节数。图3-1DS1302管脚图假如在传送过程中置RST为低电平,则会终止本次数据传送,并且I/O引脚变为高阻态。上电运行时,在VCC>=2.5V之前,RST脚必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。DS1302的管脚图如图3-1所示,表3-2为各引脚的功能。引脚号引脚名称功能1VCC2主电源2,3X1,X2振荡源,外接32768HZ晶振4GND地线5RST复位/片选线6I/O串行数据输入/输出端(双向)7SCLK串行时钟输入端8VCC1后备电源表3-2DS1302引脚功能表DS1302的控制字如图3-3所示。控制字节的最高有效位(位7)必须是逻辑1;假如它为逻辑0,则不能把数据写入到DS1302中。位6假如为0,则表达存取日历时钟数据;为1表达存取RAM数据。位5~1(A4~A0)指示操作单元的地址。最低有效位(位0)如为0,表达要进行写操作;为1表达进行读操作。控制字节总是从最低位开始输入/输出。图3-3控制字节的含义为了提高对32个地址的寻址能力(地址/命令位1~5=逻辑1),可以把时钟/日历或RAM寄存器规定为多字节(burst)方式。位6规定期钟或RAM,而位0规定读或写。在时钟/日历寄存器中的地址9~31或RAM寄存器中的地址31不能存储数据。在多字节方式中,读或写从地址0的位0开始。必须按数据传送的次序写最先的8个寄存器。不过,当以多字节方式写RAM时,为了传送数据不必写所有31字节。不管与否写了所有31字节,所写的每一字节都将传送至RAM。数据读写程序如图3-4所示。≈≈SCLKK≈≈RSTI/OI/O5713572102460≈46R/CA2A3A0A1R/WA41≈DATAI/OBYTEDATAI/OBYTE图3-4数据读写程序DS1302共有12个寄存器,其中有7个寄存器与日历、时钟有关,寄存的数据位为BCD码形式,其日历、时间寄存器及其控制字见表3-5,其中奇数为读操作,偶数为写操作。寄存器命令码数据范围寄存器中各位的内容名称地址写读76543210秒00H80H81H00~59CH秒数据分01H82H83H00~590分数据时02H84H85H01~12或00~2312/24010/AP时数据日03H86H87H01~28,2930,3100日数据月04H88H89H01~12000月数据星期05H9AH8BH01~0700000星期数据年06H8CH8DH00~99年数据多字节读写BEHBFH——表3-5片内时钟数据寄存器3.2.2DS1302的应用实时时钟芯片DS1302采用串行数据传播,可为掉电保护电源提供可编程的充电功能,也可以关闭充电功能,芯片采用32768Hz晶振。要尤其阐明的是,备用电源BT1可以用电池或超级电容(10万μF以上)。虽然DS1302在主电源掉电后耗电很小,但假如要长时间保证时钟正常,最佳选用小型充电电池。如坚决电时间较短(几小时或几天),可以用漏电较小的一般电解电容替代(100μF就可以保证1小时的正常走时)。DS1302在第一次加电后,需进行初始化操作。初始化后就可以按正常措施调整时间。DS1302的时钟电路如图3-6所示。图3-6DS1302时钟电路3.3数码管LEDLED显示屏由若干个发光二极管构成,当发光二极管导通时,对应的一种笔画或一种点就发光。控制对应的管导通,就能显示出对应字符。各段LED显示屏需要由驱动电路驱动。在七段LED显示屏中,一般将各段发光二极管的阴极或阳极连在一起作为公共端。将各段发光二极管连在一起的叫共阳极显示屏,用低电平驱动;将阴极连在一起的叫共阴极显示屏,用高电平驱动。静态显示就是每一种显示屏各笔画段都要独占具有一种锁存功能的输出口线,CPU把要显示的字形代码送到输出口上,就可以使显示屏上显示所需的数字或符号,此后,虽然CPU不在去访问它,由于各笔画段借口具有锁存功能,显示的内容也不会消失。动态显示是指显示屏显示某一字符时,对应段的发光二极管恒定地导通或截止。静态显示有并行输出和串行输出两种方式。在本系统中数码管使用共阴极接法并且是用动态显示。3.4译码器74HC13874HC138译码器是通过3条线来到达控制8条线的状态,就是通过3条控制线A0、A1、A2不一样的高下电平组合来控制Y0~Y7的输出状态,其中4和5为使能地端,与8引脚共同接地,当接高电平时Y0到Y7输出高电平。6号脚为使能端,为高电平时有效。74HC138封装如图3-7。当需要级联时只需要变化使能端信号引脚即可,连接措施简朴。图3-774HC138封装图3.5锁存器74LS24474ls244由2组、每组四路输入、输出构成。每组有一种控制端G,由控制端的高或低电平决定该组数据被接通还是断开。图3-874LS244引脚图4硬件设计4.1电路设计框图AT89S52AT89S52主控制模块DS1302时钟模块LED数码管动态扫描显示模块键盘模块复位电路时钟电路4.2系统概述本电路是由AT89S52单片机为控制关键,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年赔偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多种字节的时钟信号或RAM数据。DS1302内部有一种31*8的用于临时性寄存数据的RAM寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同步具有掉电自动保留功能;显示部份由15个数码管,74Hs138、74ls244构成。使用动态扫描显示方式对数字的显示。硬件的构造和可靠性直接影响着整个系统的可靠性,因此合理的安排电路能提高电子产品的性能。4.3电源设计在这里因设计分工和侧重点不一样,电源模块用通用的5v变压器。4.4单片机的复位电路图4-2手动复位电路在系统运行的过程中,有时也许对系统需要进行复位,为了防止对硬件系统常常加电和断电导致的损害,设计了手动的复位电路。如图4-2所示。这种电路的设计,在系统的运行过程中需要复位时,只需使开关闭合,在RST端就会出现一定期间的高电平信号,从而使单片机实现复位。4.5单片机系统的晶振电路单片机必须在时钟的驱动下才能进行工作。MCS-51系列单片机内部均有一种时钟振荡电路,只需外接晶振源,就能产生一定频率的时钟信号送到单片机的内部的各个单元,决定单片机的工作速度。图4-3就是内部时钟工作方式的电路图,这是一种常用的方式。这种方式是外界振荡源,本设计就采用这种外接晶振的措施。电路中的两个电容的作用有两个:一是协助振荡器起振(C1C2的值大,起振的速度慢;反之,速度快。);二是对振荡器的频率起到微调的作用(C1C2的值大,频率略有减少,反之,频率略有提高)。C1C2的值采用30pF。图4-3单片机内部晶振电路连接图4.6主电路设计主电路的功能是完毕年、月、日、星期、时、分、秒之间的转换,再送往LED显示,并且接受键盘操作,对日期和时间进行校正。电路原理图如图4-4所示,显示部分用P0口做为输出数据接到LED数码管a到h,并接74ls244做为各段的驱动(为了简化电路图在此用了8个上拉电阻替代74ls244)。用P3口的低3位接译码器的A0,A1,A2端,用P3.3,P3.4,P3.5分别接译码器的使能端,通过控制P3口来控制LED的动态扫描。单片机的18和19引脚接12MHZ的晶振,并接两个22PF的电容同步接地,单片机复位端接一极性电容并连接到电源处,在极性电容的负极接一10K的电阻,并连接至地做为放电用。本设计用到四个独立式键盘分别接到P1口的低4位,用P1口的P1.4,P1.5,P1.6接日历时钟的使能端和时钟端及数据输入输出口,并在日历时钟上接一32.768KHZ的晶振,并接两个22PF的电容终端和地相连,各芯片的电源部分分别接到有开关式电源产生的+5V电源上,芯片的接地端都接在公共地上,在这里接电源部分就不再一一详述。设计采用动态显示,轮番扫描各个LED使之显示对应的数型码,当扫描频率不小于人眼所能识别的频率时就看不到闪烁现象。动态显示的亮度不如静态显示,但静态显示占用的I/O口资源较多,往往用移位寄存器74LS164等来扩充其I/O口局限性的状况,当显示位数较多时,这样势必增长硬件开销,增大成本,不利于开阔市场。本设计的突出之处在于硬件电路简朴,大大减少了硬件开销,这样又势必增长了软件开发的难度,但减少了成本有助于市场的开阔。图4-4电路原理图5软件设计软件的设计是设计控制系统的应用程序。其任务是在整体设计和硬件设计的基础上,确定程序构造,分派内RAM资源,划分功能模块,然后进行主程序和各模块程序的设计,最终连接起来成为一种完整应用程序,与硬件相结合完毕对应功能。5.1主程序设计主程序才用模块化设计,流程图如图5-1所示。从上面主程序看出,主程序的构成是通过度别调用各子程序构成总体系统功能,能很直观的看出主程序所要完毕的功能,首先是初始化各模块,之后调用键盘完毕时间的调整,调用日历子程序完毕日历时钟的初始化和时间数据的读写,调用显示子程序显示数据,最终又转到键盘程序来回循环。初始化部分重要有初始化定期器部分和和某些寄存器、标志位、初始化时间等。对定期器T0初始化时,首先置初值,CPU开中断,定期器T0开中断,并且开始计数,而对定期器T1初始化时,首先置初值,定期器T1关中断,并且停止计数,只有收到命令时才能产生中断。开始初始化T0并开中断开始初始化T0并开中断初始化T1并关中断寄存器初始化标志位初始化初始化时间调键盘子程序调日历子程序调显示子程序结束标志位初始化是对时间调整时判断是调分还是调时等而专设的位标志,初始化过程中标志位所有置0,即开始时是处在显示状态,而不是调整状态,这一点在程序中相称明了。初始化时间是开机时显示的时间,并通过调用日历时钟的写程序来完毕时间的置初值。图5-1程序流程图5.2键盘子程序设计多功能键盘程序的设计是本设计的难点,也是完毕本设计的重点,当有键按下时,调用10ms延时程序,再判断与否有键按下无则返回,若有先调用显示程序再判断与否松开,否则再转到显示程序,这样防止了在按键松开之前能正常显示。其中K1键功能最多,通过判断K1键按下的次数来判断是调时间还是定期,并对对应的位置闪烁。本键盘深度为7级,即持续按下K1键8次时则返回到本来界面。当判断键值为1时则为调秒状态,对应的秒低位闪烁,为2时为调分状态并分闪烁,为3时为调时状态并时闪烁,为4时为调日状态并日闪烁,为5时为调月状态并月闪烁,为6时为调年状态并年闪烁,为7时为调星期状态并星期闪烁。K2为加1键,K3为减1键,K4为总返回键,即在调时见时不用只有按下K1键值为8才返回,而通过按下K4键即可返回。由于键盘流程图非常复杂,在此只表达秒,如图5-2所示,其他略。NN开始有键按下?延时10msK2按下?K3按下?K4按下?K1按下?调显示K1为0?键值加1Y调显示有键按下?键值清0标志位清0返回回NNNYNYN下页1YYY下页31键值为1?调显示秒闪烁秒标志位置1K2按下?K3按下?秒减1秒数据送DS1302秒加13YNYY键值为?N。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。图5-2键盘子程序流程图1键值为1?调显示秒闪烁秒标志位置1K2按下?K3按下?秒减1秒数据送DS1302秒加13YNYY键值为?N。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。图5-2键盘子程序流程图5.3日历时钟子程序设计DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。日历时钟DS1302的读写需要初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传播都是从主机启动写时序开始,假如规定单总线器件回送是低位在先。读写都是16位数据高8位是地址低8位是数据,在读写时要严格遵从其读写时序,否则读写将会失效。当RST为高电平时,所有的数据传送被初始化,容许对DS1302进行操作。假如在传送过程中RST置为低电平,则会终止本次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平,这一点我们要一定注意。当RST置为高电平时,在串行时钟的SCLK的上升沿,DS1302从I/O端口读入一位数据,8个串行时钟脉冲就可以读入一字节的数据。在串行时钟的下降沿,DS1302向I/O端口输出一位数据,8个串行时钟脉冲就可以输出一字节的数据。显示子程序设计电子产品与否实用其中显示占了很重要的地位,诸多数人都渴求用视觉效果好,范围广,直观明了,LED符合以上的规定,但对应的硬件设计相对复杂。RST置1RST置1开始发送1位命令码命令码8位送完?写一位数据数据写完?RST置0(a)时钟写结束开始RST置1发送1位命令码命令码8位送完?读一位数据数据读完?RST置0结束(b)时钟读图5-3日历时钟的写和读NYYYYNNN5.4显示子程序设计本设计的显示部分具有消隐和闪烁功能,当时分秒等高位为0时显示消隐,此时在读时间时愈加明了,但低位不能显示消隐。闪烁功能也是本设计的一种难点,本设计采用8个位标志位,其中一种标志位通过用定期器0产生一种周期大概为每秒1.5次,使闪烁时效果到达最佳。此时定期器采用定期中断的工作方式,这样可以充足运用CPU资源。此外7个标志位是时分秒等的位标志位,当秒标志位置1时即秒开闪烁,与用中断产生的标志位相结合,即在一种周期内为0时此时消隐为1时开显示,这样就使在调时间时对应的位闪烁。6系统调试单片机系统通过总体设计,完毕了硬件和软件设计开发。通过软件和硬件相结合系统即可运行。但编制好的程序或焊接好的线路不能按估计的那样正常工作是常见的事,常常会出现某些硬件、软件上的错误,这是软件和硬件开发者常常遇见的,这就需要通过调试来发现错误并加以改正。调试可分为硬件调试和软件调试。本设计系统的已经在PC机上用模拟开发软件进行了检测和调试,并运行成功,最终进行实物图的硬件组装与调试,这样就给开发者在提供了以便。6.1软件调试本设计是在Proteus软件和Wava6000软件相结合调试的,完全用仿真软件在PC机上对目的电路原理图和程序进行检测和调试。调试过程中单片机对应输入端由通用键盘和鼠标设定,运行状态、各寄存器状态、端口状态等都可以在指定的窗口区域显示出来,以确定程序运行有无错误。目的程序纠错:该阶段工作一般在目的程序编辑时就完毕。一般来说,仿真软件能为顾客输入的程序指令纠错,包括书写格式、标号未定义或多重定义、转移地址溢出等错误。整体程序调试:即把各子程序整体连起来进入到综合电路调试,看与否能实现估计的功能显示。在这阶段若发生故障,可以考虑各子程序在运行时与否破坏现场,数据缓冲单元与否发生冲突,标志位的建立和清除在设计上与否失误,堆栈与否溢出,输入输出状态与否正常等。通过多次修改程序最终调试出来理想的效果,如图6-1所示图6-1Proteus仿真用软件模拟器调试不需任何在线仿真器,也不需要顾客样机,直接就可以在PC机上开发和调试。调试和修改完毕后可以直接使用编程器将软件固化在目的系统ROM中,然后投入运行。6.2硬件调试焊接电路板如图6-2所示单片机应用系统的硬件调试和软件调试是分不开的,许多硬件故障在软件调试时才能发现,但一般要先排除系统中明显的硬件故障。调试工作可以分为四步:线路检查:根据硬件逻辑设计图,仔细检查样机线路与否连接对的,并查对元器件的型号、规格和安装与否符合规定,必要时可用万用表检测线路通断状况。电源调试:样机的第一次通电测试很重要,若样机中存在电源故障,则加电后将导致器件损坏。调试的措施有两种:一种是断开样机稳压电源的输出端,检查空载时电源工作状况;另一种是拔下样机上的重要集成芯片,检查电源的负载能力(用假负载)。保证电源无端障并性能符合设计规定。通电检查:在保证电源良好前提下,接通电源。最佳在电源与其他电路之间串接一种电流表。若接通后电流很大,必须立即切断电源。电源大得超过正常范围,阐明电路中有短路或故障。通电检查的重要目的是看系统与否存在短路或由元器件损坏、装配错误引起的电流异常。如图6-2焊接电路板检查芯片的逻辑关系与否出错:加电后检查各芯片插座上有关引脚的电位,仔细测量对应的输入输出电平与否正常。单片机系统大都是数字逻辑电路,使用电平检查法可首先查出逻辑设计与否对的,选用器件和连接关系与否符合规定等。本设计特点突出,性价比高,适合于家庭挂历,有很高应用价值。7结论硬件系统关系到所要设计的电子产品好怀,如系统抗干扰性等,因此要合理的安排尽量减少干扰提高性能。单片机是很轻易受干扰的控制器,当采用外部晶振时,应尽量让其靠近单片机减少对其干扰,防止程序乱飞现象。同步还可以采用隔离等方式减少干扰,硬件系统设计的好坏很大部分来源于经验,因此我们要有动手的好习惯。软件设计是关键部分,具有多样化,灵活性高,易移植等长处,要深深理会各指令的含义才能愈加纯熟应用,中断的合理运用可以减少CPU运用资源,具有执行效率高等长处,本设计用到定期器中断以减少对CPU的占用,更好的处理其他功能。软件的设计大部分采用模块化设计的措施以以便调试,并使其可读性大大增强,以便更改和移植。在这次设计中我学到了诸多,也发现了自己的局限性,也难免有错误之处,敬请提出!道谢不知不觉,十二周的毕业设计结束了。我的毕业论文已整顿完毕,电路调试进展良好。毕业设计的完毕意味着我的大学学习生活即将结束,从此我将进入一种新的人生旅途、开始一段崭新的生活——工作。在此,我衷心地感谢所有在我做毕业设计期间协助过我的人。首先我要感谢XX老师、XX老师XX老师的大力协助和支持。在整个设计过程当中,为我的毕业设计带来了很大以便。同步在我完毕毕业设计的过程中提供了诸多指导性的意见,使我受益匪浅。在此,我衷心感谢老师们予以我的协助和教育。此外,还要衷心感谢其他所有对本课题的研究和论文撰写有过协助的同学。最终,我要感谢我的母校——XXXXXXX,在校期间,这里给我留下了美好的回忆。尤其是在我即将踏上工作岗位的同步,毕业设计整个过程给了我这样一种锻炼的机会,使我加深了对此前知识的理解和巩固,拓宽了知识面,也提高了我对所学知识的综合应用能力。祝愿母校的未来更美好! 参照文献[01]何宏主编.单片机原理与接口技术.北京:国防工业出版社..07[02]杨西明,朱骐主编.单片机编程与应用入门.北京:机械工业出版社..06[03]先锋工作室编著.单片机程序设计实例.北京:清华大学出版社..01[04]谢宜仁主编.单片机实用技术问答.北京:人民邮电出版社..02[05]孙江宏,李良玉等编著.Protel99电路设计与应用.北京:机械工业出版社..07[06]房小翠,王金凤编著.单片机实用系统设计技术.北京:国防工业出版社.1999.06[07]秦曾煌主编.电工学(电子技术).北京:高等教育出版社,[08]何立民.单片机高级教程应用与设计.北京:北京航空航天大学出版社,[09]刘国荣单片微型计算机技术.北京:机械工业出版社,1996[10]王迎旭.单片机原理与应用.北京:机械工业出版社,[11]于永权.ATMEL89系列单片机应用技术.北京:北京航空航天大学出版社,[12]高峰.单片微型计算机原理与接口技术.北京:科学出版社,[13]多种网络教程及其他附录附录Ⅰ硬件电路图附录Ⅱ主程序源代码ZHUANBIT50H;闪烁标志位辅助标志位ZHUAN1BIT51H;年开闪烁的标志位ZHUAN2BIT52H;月开闪烁的标志位ZHUAN3BIT53H;日开闪烁的标志位ZHUAN4BIT54H;时开闪烁的标志位ZHUAN5BIT55H;分开闪烁的标志位ZHUAN6BIT56H;秒开闪烁的标志位ZHUAN7BIT57H;星期开闪烁的标志位ORG0000HLJMPSTART;开始并初始化ORG000BH;定期/计数T0中断LJMPZDUANORG001BH;定期/计数T1中断LJMPZDUAN2ZDUAN:MOVTH0,#00H;使ZHUAN由正到负周期大概为1.5即当开闪烁时每秒大概闪烁1.5次环境MOVTL0,#00HDJNZR7,ZDUAN1;循环指令CPLZHUAN;闪烁标志位求反MOVR7,#3ZDUAN1:RETI;中断返回ZDUAN2:MOVTH1,#0FCHMOVTL1,#43HCPLP3.0RETIORG0100HSTART:MOVSP,#70H;设堆栈MOVTMOD,#11H;T0,TI工作方式1MOVTH0,#00HMOVTL0,#00HMOVTH1,#0FCHMOVTL1,#43HSETBEA;开放CPUSETBET0;开放T0中断SETBTR0;启动T0工作CLRZHUAN1;初始化标志位CLRZHUAN2CLRZHUAN3CLRZHUAN4CLRZHUAN5CLRZHUAN6CLRZHUAN7MOVR7,#3MOV5FH,#00H;初始化寄存器MOV30H,#01H;时间赋初始值MOV31H,#01HMOV32H,#01HMOV33H,#01HMOV34H,#01HMOV35H,#01HMOV36H,#10HSETBP1.4;启动设置写保护寄存器MOVA,#10001110B;命令字节,07H寄存器写ACALLWBYTEMOVA,#00H;容许写数据字节ACALLWBYTECLRP1.4;RST=0,停止传送MOVR0,#30H;数据寄存首地址MOVR2,#8;写8个字节SETBP1.4;启动持续写8个字节MOVA,#0BEH;设多字节写命令字LCALLWBYTECHUSHI:MOVA,@R0;取数据LCALLWBYTE;写一种字节INCR0DJNZR2,CHUSHI;循环写8个字节;主程序MAIN:LCALLJIAN;调键盘子程序LCALLRILI;调日历时钟程序LCALLXIAN;调显示程序SJMPMAIN;键盘程序JIAN:MOVP1,#0FFH;初始MOVA,P1CPLAJNZJI1;判键按下LJMPJIAN4JI1:LCALLDELAY;调延时CPLAJNZJI2LJMPJIAN4JI2:JNBP1.1,JIAN3;判K2键为0转JNBP1.2,JIAN3;判K3键为0转JIAN0:MOVP1,#0FFHJNBP1.3,JIAN3;判K4键为0转JNBP1.0,JIAN1;判K1键为0转LJMPJIANXJIAN1:LCALLDELAY;调延时去抖动JBP1.0,JIANX;为1就是键抖动JIAN11:LCALLXIAN;调显示JNBP1.0,JIAN11;判键K1松开MOVA,5FHADDA,#1;寄存器加1MOV5FH,ACJNEA,#8,JIANXLJMPJIAN3JIANX:MOVA,5FHCJNEA,#1,JIA1;比较转移指令A不等于#时,转移LJMPTIAOM;转调秒子程序JIA1:MOVA,5FHCJNEA,#2,JIA2LJMPTIAOF;转调分子程序JIA2:MOVA,5FHCJNEA,#3,JIA3LJMPTIAOS;转调时子程序JIA3:MOVA,5FHCJNEA,#4,JIA4LJMPTIAOR;转调日子程序JIA4:MOVA,5FHCJNEA,#5,JIA5LJMPTIAOY;转调月子程序JIA5:MOVA,5FHCJNEA,#6,JIA6LJMPTIAON;转调年子程序JIA6:LJMPTIAOX;转调星期子程序JIAN3:CLRZHUAN1;标志位清0CLRZHUAN2CLRZHUAN3CLRZHUAN4CLRZHUAN5CLRZHUAN6CLRZHUAN7MOV5FH,#00HJIAN2:LCALLXIAN;调显示子程序MOVA,P1CPLAJNZJIAN2JIAN4:RET;调秒TIAOM:SETBZHUAN6;秒闪烁标志位置1LCALLXIANJNBP1.1,MIAOZ;加转移JNBP1.2,MIAOJ;减转移LJMPJIAN0MIAOZ:LCALLDELAY;调延时去抖动JNBP1.1,MIAOZ1LJMPJIAN0MIAOZ1:LCALLXIANJNBP1.1,MIAOZ1;判键K2松开MOVA,30H;取秒数据ADDA,#1;加1DAA;十进制调整指令MOV30H,A;送回秒寄存器CJNEA,#60H,MIAOZ2MOV30H,#00H;秒值过60为0LJMPMIAOZ2MIAOJ:LCALLDELAY;调延时去抖动JNBP1.2,MIAOJ1LJMPJIAN0MIAOJ1:LCALLXIANJNBP1.2,MIAOJ1;判键K3松开MOVA,30H;取秒数据MOVB,#10HDIVAB;A除以BMOV61H,B;数据个位放到61HMOVB,#10MULAB;A乘以BADDA,61H;不带进位加法DECA;A减1MOVB,#10DIVABSWAPAADDA,BMOV30H,ACJNEA,#96H,MIAOZ2MOV30H,#59HMIAOZ2:MOVA,30HANLA,#0FH;分离低四位MOV40H,A;存数据到寄存器MOVA,30HSWAPA;半字节互换ANLA,#0FHMOV41H,A;存数据到寄存器SETBP1.4;启动设置写保护寄存器MOVA,10001110B;命令字节,寄存器07HACALLWBYTEMOVA,#00H;容许写数据字节ACALLWBYTECLRP1.4;停止传送SETBP1.4;启动写MOVA,#80H;秒写命令字节LCALLWBYTEMOVA,30H;写秒数据到DS1302LCALLWBYTELCALLXIANLJMPJIAN0RET;调分TIAOF:CLRZHUAN6;清秒标志位SETBZHUAN5;置分标志位LCALLXIANJNBP1.1,FENZ;加转移JNBP1.2,FENJ;减转移LJMPJIAN0FENZ:LCALLDELAY;调延时去抖动JNBP1.1,FENZ1LJMPJIAN0FENZ1:LCALLXIANJNBP1.1,FENZ1;判键K2松开MOVA,31H;取秒数据ADDA,#1;加1DAA;十进制调整指令MOV31H,A;送回分寄存器CJNEA,#60H,FENZ2MOV31H,#00H;值过60为0LJMPFENZ2FENJ:LCALLDELAY;调延时去抖动JNBP1.2,FENJ1LJMPJIAN0FENJ1:LCALLXIANJNBP1.2,FENJ1;判键K3松开MOVA,31H;取秒数据MOVB,#10HDIVAB;A除以BMOV62H,B;数据个位放到62HMOVB,#10MULAB;A乘以BADDA,62H;不带进位加法DECA;A减1MOVB,#10DIVABSWAPAADDA,BMOV31H,ACJNEA,#96H,FENZ2MOV31H,#59HFENZ2:MOVA,31HANLA,#0FH;分离低四位MOV42H,A;存数据到寄存器MOVA,31HSWAPA;半字节互换ANLA,#0FHMOV43H,A;存数据到寄存器SETBP1.4;启动设置写保护寄存器MOVA,10001110B;命令字节,寄存器07HACALLWBYTEMOVA,#00H;容许写数据字节ACALLWBYTECLRP1.4;停止传送SETBP1.4;启动写MOVA,#82H;分写命令字节ACALLWBYTEMOVA,31H;写分数据到DS1302ACALLWBYTEACALLXIANLJMPJIAN0RET;调时TIAOS:CLRZHUAN5;相似,背面略SETBZHUAN4LCALLXIANJNBP1.1,SHIZJNBP1.2,SHIJLJMPJIAN0SHIZ:LCALLDELAYJNBP1.1,SHIZ1LJMPJIAN0SHIZ1:LCALLXIANJNBP1.1,SHIZ1MOVA,32HADDA,#1DAAMOV32H,ACJNEA,#24H,SHIZ2MOV32H,#00HLJMPSHIZ2SHIJ:LCALLDELAYJNBP1.2,SHIJ1LJMPJIAN0SHIJ1:LCALLXIANJNBP1.2,SHIJ1MOVA,32HMOVB,#10HDIVABMOV63H,BMOVB,#10MULABADDA,63HDECAMOVB,#10DIVABSWAPAADDA,BMOV32H,ACJNEA,#96H,SHIZ2MOV32H,#23HSHIZ2:MOVA,32HANLA,#0FHMOV44H,AMOVA,32HSWAPAANLA,#0FHMOV45H,ASETBP1.4MOVA,10001110BACALLWBYTEMOVA,#00HACALLWBYTECLRP1.4SETBP1.4MOVA,#84HACALLWBYTEMOVA,32HACALLWBYTEACALLXIANLJMPJIAN0RET;调日TIAOR:CLRZHUAN4SETBZHUAN3LCALLXIANJNBP1.1,RIZJNBP1.2,RIJLJMPJIAN0RIZ:LCALLDELAYJNBP1.1,RIZ1LJMPJIAN0RIZ1:LCALLXIANJNBP1.1,RIZ1MOVA,33HADDA,#1DAAMOV33H,ACJNEA,#32H,RIZ2MOV33H,#00HLJMPRIZ2RIJ:LCALLDELAYJNBP1.2,RIJ1LJMPJIAN0RIJ1:LCALLXIANJNBP1.2,RIJ1MOVA,33HMOVB,#10HDIVABMOV64H,BMOVB,#10MULABADDA,64HDECAMOVB,#10DIVABSWAPAADDA,BMOV33H,ACJNEA,#96H,RIZ2MOV33H,#31HRIZ2:MOVA,33HANLA,#0FHMOV46H,AMOVA,33HSWAPAANLA,#0FHMOV47H,ASETBP1.4MOVA,10001110BACALLWBYTEMOVA,#00HACALLWBYTECLRP1.4SETBP1.4MOVA,#86HLCALLWBYTEMOVA,33HLCALLWBYTELCALLXIANLJMPJIAN0RET;调月TIAOY:CLRZHUAN3SETBZHUAN2LCALLXIANJNBP1.1,YUEZJNBP1.2,YUEJLJMPJIAN0YUEZ:LCALLDELAYJNBP1.1,YUEZ1LJMPJIAN0YUEZ1:LCALLXIANJNBP1.1,YUEZ1MOVA,34HADDA,#1DAAMOV34H,ACJNEA,#13H,YUEZ2MOV34H,#01HLJMPYUEZ2YUEJ:LCALLDELAYJNBP1.2,YUEJ1LJMPJIAN0YUEJ1:LCALLXIANJNBP1.2,YUEJ1MOVA,34HMOVB,#10HDIVABMOV65H,BMOVB,#10MULABADDA,65HDECAMOVB,#10DIVABSWAPAADDA,BMOV34H,ACJNEA,#00H,YUEZ2MOV34H,#12HYUEZ2:MOVA,34HANLA,#0FHMOV48H,AMOVA,34HSWAPAANLA,#0FHMOV49H,ASETBP1.4MOVA,10001110BACALLWBYTEMOVA,#00HACALLWBYTECLRP1.4SETBP1.4MOVA,#88HLCALLWBYTEMOVA,34HLCALLWBYTELCALLXIANLJMPJIAN0RET;调年TIAON:CLRZHUAN2SETBZHUAN1LCALLXIANJNBP1.1,NIANZJNBP1.2,NIANJLJMPJIAN0NIANZ:LCALLDELAYJNBP1.1,NIANZ1LJMPJIAN0NIANZ1:LCALLXIANJNBP1.1,NIANZ1MOVA,35HADDA,#1DAAMOV35H,ALJMPNIANZ2NIANJ:LCALLDELAYJNBP1.2,NIANJ1LJMPJIAN0NIANJ1:LCALLXIANJNBP1.2,NIANJ1MOVA,35HMOVB,#10HDIVABMOV66H,BMOVB,#10MULABADDA,66HDECAMOVB,#10DIVABSWAPAADDA,BMOV35H,ACJNEA,#96H,NIANZ2MOV35H,#99HNIANZ2:MOVA,35HANLA,#0FHMOV4AH,AMOVA,35HSWAPAANLA,#0FHMOV4BH,ASETBP1.4MOVA,10001110BACALLWBYTEMOVA,#00HACALLWBYTECLRP1.4SETBP1.4MOVA,#8CHLCALLWBYTEMOVA,35HLCALLWBYTELCALLXIANLJMPJIAN0RET;调星TIAOX:CLRZHUAN1SETBZHUAN7LCALLXIANJNBP1.1,XQZJNBP1.2,XQJLJMPJIAN0XQZ:LCALLDELAYJNBP1.1,XQZ1LJMPJIAN0XQZ1:LCALLXIANJNBP1.1,XQZ1MOVA,38HADDA,#1DAAMOV38H,ACJNEA,#08H,XQZ2MOV38H,#01HLJMPXQZ2XQJ:LCALLDELAYJNBP1.2,XQJ1LJMPJIAN0XQJ1:LCALLXIANJNBP1.2,XQJ1MOVA,38HMOVB,#10HDIVABMOV67H,BMOVB,#10MULABADDA,67HDECAMOVB,#10DIVABSWAPAADDA,BMOV38H,ACJNEA,#00H,XQZ2MOV38H,#07HXQZ2:SETBP1.4MOVA,10001110BACALLWBYTEMOVA,#00HACALLWBYTECLRP1.4SETBP1.4MOVA,#8AHLCALLWBYTEMOVA,38HLCALLWBYTELCALLXIANLJMPJIAN0RET;时钟程序RILI:CLRP1.4NOPCLRP1.5NOPSETBP1.4;启动持续读MOVA,#0BFH;设多字节读命令MOVR1,#8WRITE1:CLRP1.5RRCA;右移位NOPMOVP1.6,C;写一位到DS1302SETBP1.5;写上升沿有效DJNZR1,WRITE1;循环送8位MOVR0,#30H;数据寄存首地址MOVR2,#8READ0:MOVR3,#8;读一种字节8位READ1:CLRP1.5;读下降沿有效NOPMOVC,P1.6SETBP1.5RRCADJNZR3,READ1;循环读8位MOV@R0,A;存入30H开始的单元INCR0DJNZR2,READ0;循环读8位CLRP1.4;停止传送MOVA,35H;星期与年寄存数据互换XCHA,36HMOV35H,AMOVR3,#6MOVR0,#30HMOVR1,#40HLOOP:MOVA,@R0;分离ANLA,#0FHMOV@R1,A;底4位放到40H开始的单元INCR1MOVA,@R0SWAPAANLA,#0FHMOV@R1,A;高4位放到41HINCR0INCR1;背面依次放DJNZR3,LOOP;放到年为止MOV38H,36H;放星期到38HMOV4CH,#00HMOV4DH,#02HRET;显示程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 从生产到消费探讨如何利用区块链优化商品供应链流程
- 医疗器械设计的发展趋势与材料应用
- 医疗设备安全与质量控制
- 医疗大数据的采集、存储与隐私保护技术探讨
- 医药企业药品说明书合规经营策略
- 医疗信息化趋势下的电子健康记录标准化探索
- 医院信息化建设中的多部门协同策略
- 公交卡制作合同范例
- 供销合同范例格式
- 医疗大数据下的患者隐私保护策略研究
- 《基于SLP的丹尼斯卖场仓储布局优化设计案例报告》12000字(论文)
- 班组长的选聘、使用、淘汰制度模版(2篇)
- 量子信息技术国内外标准化进展报告(2024)-量子科技产学研创新联盟
- 2025合法的有限公司劳动合同范本
- 医院预防职务犯罪讲座
- 2025届山东省师大附中高考数学一模试卷含解析
- 房产出租授权委托书
- 音乐引导的运动节奏
- 产后腰痛的健康宣教
- 起重工的安全技术操作规程(4篇)
- 可再生能源技术发展与应用考核试卷
评论
0/150
提交评论