版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
作息时间系统设计摘要本次设计作息时间系统除具备基本时钟功能外,还可以实时显示年、月、日信息,并且可以自动辨认闰年、闰月及每月天数。此外还可以依照学校、工厂等单位作息时间表准时打铃、播放音乐、广播体操和其她节目等。该系统设有3个按钮,可以随时调节当前时间,以保证时间与原则时间相吻合,且采用DS1302高性能时钟芯片,从而保证了时钟显示精度和可靠性。整个系统采用市电通过电源适配器供电,由于DS1302时钟芯片有备用电池供电功能,因此当市电停电时,不但整个控制系统所有数据不会丢失,并且可以照常运营,这样再次上电后就不用再调节时间了。为了使该系统体积尽量最小,我在设计时采用了AT89C2051单片机,该单片机可直接驱动LED数码显示屏。考虑到整个系统显示位数较多(14位),为了保证显示亮度,显示某些采用了静态显示。尚有,为了便于使用者操作,整个系统采用了某些人性化设计,例如批示灯添加等。纵观整个系统,构造简朴、体积小、可靠性高、操作简朴、扩展性强,并且价格低廉,非常适合学校、工厂和机关等单位使用。核心词:作息时间单片机时钟芯片继电器AbstractThesystemofworkandresttimewhatIhavedesignedcandisplayareal-timeofyear,monthandday,andmayautomaticallyidentifyaleapyear,aleapmonthandthenumberofthedayspermonthinadditiontoabasicclockfunction.Thissystemmayhitthebellontimeaccordingtotheschools’orfactories’dailyschedule,playmusicandbroadcastinggymnasticsandotherprogramsandsoon.Thesystemhasthreebuttonssothatyoucanadjustthecurrenttimeatanymomenttoensurethatthecurrenttimecoincideswiththestandardtime,inadditiontousingthehigh-performanceclockchipDS1302,whichhasensuredaclockdisplayofprecisionandhighreliability.Theentiresystemusesthecityelectricitytosupplypowerthroughthepowersourceadapter.AstheDS1302clockchiphasthepowersupplyfunctionofbackupbattery,alldatasoftheentirecontrolsystemwillnotbelosedandthesystemrunasusualwhenthecityelectricitywascutsothatthesystemwillnotneedtheadjustmentoftimewhenthecityelectricitycomesnexttime.Inordertocausethissystemvolumetobeassmallestaspossible,AT89C2051SCMwasusedinthedesignwhichcandirectlydrivetheLEDdigitaldisplay.Moreoverconsideringthedisplaydigitsoftheoverallsystemaremany(14digits)andinordertoguaranteethebrightnessofshow,Ihasadoptedthestaticdemonstrationintheshowpart.Also,inordertofacilitateusers,theentiresystemhasusedsomeuser-friendlydesign,suchastheadditionofindicatinglightsetc.Thewholesystemhassimplestructure,smallsize,highreliability,simpleoperation,highexpansibilityandlowpricessothatitisidealforschools,factoriesanddepartments.Keywords:WorkandResttimeSCMClockchipRelay目录第1章绪论 11.1课题研究目及意义 11.2国内外研究现状 11.3论文研究内容及创新点 21.3.1重要内容 21.3.2创新点 2第2章核心芯片简介 32.1AT89C2051简介 32.1.1AT89C2051芯片引脚及特点 32.1.2AT89C2051重要性能参数 52.2DS1302简介 62.2.1DS1302引脚功能与内部构造 72.2.2DS1302控制字 82.2.3DS1302数据输入输出(I/O) 82.2.4DS1302内部寄存器 82.3DS1302实时显示时间软硬件 112.3.1DS1302与CPU连接 112.3.2DS1302与单片机接口软件设计及功能应用举例 12第3章控制任务与控制原理 193.1控制任务 193.2控制原理概述 19第4章硬件电路设计 214.1硬件构成及操作阐明 214.1.1硬件构成框图 214.1.2设计电路原理图 214.1.3操作阐明 224.2单片机与继电器接口及工作原理 224.3单片机与显示屏接口及工作原理 234.3.1LED显示屏基本构造和原理 234.3.2LED显示 244.4电源电路设计 26第5章软件设计 285.1绘制流程图 285.1.1主程序设计 285.1.2控制子程序设计 295.1.3显示子程序设计 305.1.4键盘扫描子程序设计 315.2作息时间系统软件设计办法。 335.2.1主程序软件设计 335.2.2子程序软件设计 34第6章结论与展望 426.1结论 426.2展望 42参照文献 44致谢 45附录 46附录A作息时间控制系统程序清单 46附录B英文资料 54附录C中文翻译 61附录D硬件电路图 67第1章绪论1.1课题研究目及意义学校以及某些企事业单位普通使用老式电铃声作为上下课、上下班作息时间信号。且不说人工打铃繁琐,铃声单调和乏味,光是那突然骤响刺耳铃声就经常激起周边居民不满。近年来,中华人民共和国各地从大学到小学乃至幼儿园,从都市到农村,从冬到夏,那特有铃声响遍了大江南北,成了学校特色和“专利”。正是这种铃声让某些学生产生了厌烦情绪,甚至某些学生把铃声当作是考试代名词,以至于一听到这种声音就产生紧张、恐惊心理。有教诲专家建议,学校教诲理应彰显“人”个性,并从“小”处做起,推动素质教诲,于细微之处加强对学生人文关怀,起到润物无声育人目。为此,我开发了“作息时间单片机控制系统”。以音乐代替铃声,管理学校寻常作息时间。播放自起床、早操、上下课直到晚熄灯等信号音乐,可做到自动开机、自动播放、自动关机无人值守全自动运营,并且还可以控制电视、路灯、室内照明等电气设备。从此屏弃那老式铃声,代之以当代化优美、怡人环境音乐,让学生在一次次铃声音乐中受到美熏陶,体验音乐魅力,形成愉悦心境。既激活学生艺术细胞,又达到优化育人环境,陶冶学生情操效果。无形之中推动了素质教诲,营造良好校园氛围。1.2国内外研究现状现今,高精度计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因而走时精度高,稳定性好,使用以便,不需要经常调校。数字式电子钟用集成电路计时时,译码代替机械式传动,LED显示屏代替指针显示时间,减小了计时误差。这种电子钟具备显示时、分、秒功能,还可以对时、分、秒进行校对,片选灵活性好。随着科学技术迅速发展,电子时钟正迅速取代纸质日历、年历和普通机械电子时钟。电子时钟走时精确、功能多样、外观潮流、使用以便,深受消费者青睐且其产品琳琅满目,但它们核心某些均有两个共同点,一是采用高性能时钟芯片;二是大都采用单片机控制。当前流行串行时钟电路诸多,如DS1302、DS1307、PCF8485等。这些电路接口简朴、价格低廉、使用以便,被广泛地采用。1.3论文研究内容及创新点1.3.1重要内容该论文重要研究如何依照学校、工厂等单位作息时间表而实现准时打铃,播放音乐和广播体操以及其她节目等。1.3.2创新点以往作息时间控制系统只具备基本时钟(显示当前时间小时及分钟)功能,并且采用数字电路实现,致使电路非常复杂,计时精度不高,且不能随季节变化以及天气变化而自动调节控制,功能简朴。而我设计系统除了具备基本时钟功能之外,还可以显示年、月、日、星期等信息,并且采用单片机控制并配合时钟芯片,既保证了系统构造简朴,又保证了控制时间精度和可靠性,且通过外扩电路还可以实现各种功能。一年到头无需人工调节,即可实现准时打铃、播放广播、点亮路灯等控制。价格便宜,非常适合学校、工厂、机关等单位使用。第2章核心芯片简介2.1AT89C2051简介AT89C2051是美国ATMEL公司生产一种低电压、高性能CMOS8位单片机,片内含2kbytes可重复擦写只读程序存储器(PEROM)和128bytes随机存取数据存储器(RAM),器件采用ATMEL公司高密度、非易失性存储技术生产,兼容原则MCS-51指令系统,片内置通用8位中央解决器和Flash存储单元,功能强大。2.1.1AT89C2051芯片引脚及特点图2-1AT89C2051芯片引脚图AT89C2051芯片引脚如图2-1所示。引脚功能阐明:(1)Vcc:电源电压(2)GND:地(3)P1口:P1口是一组8位双向I/O口,P1.2~P1.7提供内部上拉电阻,P1.0和P1.1内部无上拉电阻,重要是考虑它们分别是内部精密比较器同相输入端(AIN0)和反相输入端(AIN1),如果需要应在外部接上拉电阻。P1口输出缓冲器可吸取20mA电流并可直接驱动LED。当P1口引脚写入“1”时可作输入端,当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部上拉电阻而输出电流。P1口还在Flash闪速编程及程序校验时接受代码数据。(4)P3口:P3口P3.0~P3.5、P3.7是带有内部上拉电阻7个双向I/O口。P3.6没有引出,它作为一种通用I/O口但不可访问,但可作为固定输入片内比较器输出信号,P3口缓冲器可吸取20mA电流。当P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低P3口将用上拉电阻输出电流。P3口还用于实现AT89C2051特殊功能,如表2-1所示:表2-1P3口功能特性口引脚功能特性P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外中断0)P3.3/INT1(外中断1)P3.4T0(定期/计数器0外部输入)P3.5T1(定期.计数器1外部输入)P3口还接受某些用于Flash闪速存储器编程和程序校验控制信号。(5)RST:复位输入。RST引脚一旦变成两个机器周期以上高电平,所有I/O都将复位到“1”(高电平)(6)XTAL1:振荡器反相放大器及内部时钟发生器输入端。(7)XTAL2:振荡器反相放大器输出端。(8)振荡器特性:XTAL1、XTAL2为片内振荡器反相放大器输入和输出端,如图2-2所示。可采用石英晶体或陶瓷振荡器构成时钟振荡器,如需从外部输入时钟信号驱动AT89C2051,时钟信号从XTAL1输入,XTAL2应悬空。由于输入到内部电路是通过一种2分频触发器,因此输入外部时钟信号无需特殊规定,但它必要符合电平最大和最小值及时序规范[1]。图2-2AT89C2051内部振荡电路与外部时钟驱动电路2.1.2AT89C2051重要性能参数重要性能参数:(1)与MCS-51产品指令系统完全兼容(2)2k字节可重擦写闪速存储器(3)1000次擦写周期(4)2.7~6V工作电压范畴(5)全静态操作:0Hz~24MHz(6)两级加密程序存储器(7)128*8字节内部RAM(8)15个可编程I/O口线(9)两个16位定期/计数器(10)6个中断源(11)可编程串行UART通道(12)可直接驱动LED输出端口(13)内置一种模仿比较器(14)低功耗空闲和掉电模式功能特性概述:AT89C2051提供如下原则功能:2k字节Flash闪速存储器,128字节内部RAM,15个I/O口线,两个16位定期/计数器,一种5向量两级中断构造,一种全双工串行通信口,内置一种精密比较器、片内振荡器及时钟电路。同步,AT89C2051可降至0Hz静态逻辑操作,并支持两种软件可选节电工作模式:空闲方式停止CPU工作,但容许RAM、定期/计数器、串行通信口及中断系统继续工作;掉电方式保存RAM中内容,但振荡器停止工作并禁止其他所有部件工作直到下一种硬件复位[2]。2.2DS1302简介DS1302是美国DALLAS公司推出一种高性能、低功耗、带RAM涓流充电时钟芯片,内部具有一种实时时钟/日历和一种31字节用于暂时性存储数据静态RAM寄存器,通过简朴SPI串行接口与单片机进行同步通信。实时时钟/日历电路可提供秒、分、时、星期、日、月、年计时信息,具备闰年补偿功能,即每月天数和闰年天数可自动调节,时钟操作可通过AM/PM批示决定采用24或12小时格式。DS1302与单片机之间能简朴地采用SPI同步串行方式进行通信,仅需用到三个口线:(1)RES(复位),(2)I/O(数据线),(3)SCLK(串行时钟)。时钟/RAM读/写数据以一种字节或可采用突发方式一次传送多达31个字节时钟信号或RAM数据字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时功率不大于1mW。DS1302是DS1202升级产品,与DS1202兼容,增长了如下特性:双电源管脚用于主电源和备份电源供应,Vcc1为可编程后备涓细电流充电电源,附加七个字节存储器。它广泛应用于电话、传真、便携式仪器以及电池供电仪器仪表等产品领域。下面将重要性能指标作一综合:(1)实时时钟具备能计算21之前秒、分、时、星期、日、月、年能力,尚有闰年调节能力(2)31*8位暂存数据存储RAM(3)串行I/O口方式使得管脚数量至少(4)宽范畴工作电压2.0~5.5V(5)工作电流:在低压2.0V时,不大于300nA(6)读/写时钟或RAM数据时,有两种传送方式:单字节传送和多字节传送(字符组方式)(7)8引脚DIP封装或可选8脚SOIC封装(依照表面装配)(8)简朴串行SPI三线接口方式(9)与TTL兼容(Vcc=5V)(10)可选工业级温度范畴-40oC~+85oC(11)与DS1202兼容(12)在DS1202基本上增长特性:①对Vcc1有可选涓流充电能力②双电源管脚用于主电源和备份电源供应③备份电源管脚可由电池或大容量电容输入④附加7字节暂存存储器[3]2.2.1DS1302引脚功能与内部构造DS1302引脚排列如图2-3所示,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭状况下,也能保持时钟持续运营。DS1302由Vcc1或Vcc2两者中较大者供电。当Vcc2不不大于Vcc1+0.2V时,Vcc2给DS1302供电;当Vcc2不大于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有数据传送。RST输入有两种功能:一方面,RST接通控制逻辑,容许地址/命令序列送入移位寄存器;另一方面,RST提供终结单字节或多字节数据传送手段。当RST为高电平时,所有数据传送被初始化,容许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终结本次数据传送,I/O引脚变为高阻态。上电运营时,在Vcc≥2.5V之前,RST必要保持低电平。只有在SCLK为低电平时,才干将RST置为高电平。I/O为串行数据输入/输出端(双向)。SCLK始终是输入端。管脚描述如下所示:管脚描述(1)X1,X2 32.768KHz晶振引脚(2脚,3脚)(2)GND 地(4脚)(3)RST 复位引脚(5脚)(4)I/O 数据输入/输出引脚(6脚)(5)SCLK 串行时钟(7脚)(6)Vcc1,Vcc2 电源供电引脚,Vcc1可接后备电池(8脚、1脚)(7)DS1302 串行时钟芯片,8脚DIP(8)DS1302S 串行时钟芯片,8脚SOIC(200mil)(9)DS1302Z 串行时钟芯片,8脚SOIC(150mil)管脚配备图2-3DS1302时钟芯片引脚图2.2.2DS1302控制字DS1302控制字如图2-4所示。控制字节最高有效位(位7)必要是逻辑1,如果它为0,则不能把数据写入DS1302中;位6如果为0,则表达存取日历时钟数据,为1表达存取RAM数据;位5至位1批示操作单元地址;最低有效位(位0)如为0表达要进行写操作,为1表达要进行读操作,控制字节总是从最低位开始输出。11RAMA4A3A/CK/K图2-4DS1302控制字2.2.3DS1302数据输入输出(I/O)在控制指令字输入后下一种SCLK时钟上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位控制指令字后下一种SCLK脉冲下降沿读出DS1302数据,读出数据时从低位0到高位7。2.2.4DS1302内部寄存器DS1302由控制寄存器和年、月、日、星期、时、分、秒工作寄存器等共12个寄存器构成,其中有7个寄存器与日历、时钟有关,存储数据为BCD码形式。其日历、时间寄存器及其控制字见表2-2。表2-2日历、时间寄存器及其控制字寄存器名称命令字取值范畴各位内容写操作读操作76543210秒寄存器80H81H00~59CH10SECSEC分寄存器82H83H00~59010MINMIN时寄存器84H85H01~12或00~2312/24010HRHRA/P日寄存器86H87H01~28、29、30、310010DATEDATE月寄存器88H89H01~1200010MMONTH周寄存器8AH88H01~0700000DAY年寄存器8CH8DH00~9910YEARYEAR各寄存器最后一位指明数据读/写方式:为“0”时是读状态;为“1”时是写状态。各寄存器地址如图2-5所示。图2-5各寄存器地址CH:时钟停止位标志CH=0 振荡器工作容许CH=1振荡器停止WP:写保护位WP=0寄存器数据可以写入WP=1寄存器数据不能写入TCS:涓流充电选取TCS=1010使能涓流充电TCS=其他禁止涓流充电寄存器2第7位:12/24小时bit7=1,12小时模式bit7=0,24小时模式寄存器2第5位:AM/PM定义AP=0上午模式AP=1下午模式DS:二极管选取位DS=01选取一种二极管DS=10选取两个二极管DS=00或11,虽然TCS=1010,充电功能也被禁止此外,DS1302尚有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM有关寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外所有寄存器内容。DS1302与RAM有关寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一种8位字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下RAM寄存器,此方式下可一次性读写所有RAM31个字节,命令控制字为FEH(写)、FFH(读)[4]。2.3DS1302实时显示时间软硬件2.3.1DS1302与CPU连接DS1302与CPU连接仅需要三条线,即SCLK、I/O、RST。图2-6示出DS1302与AT89C2051连接图。Vcc2 Vcc1X1 SCLKX2 I/OGND /RST+5VP3.5P3.7RST3.6V18PF18PF32.768KHZVcc2 Vcc1X1 SCLKX2 I/OGND /RST+5VP3.5P3.7RST3.6V18PF18PF32.768KHZ图2-6DS1302与CPU连接电路图2.3.2DS1302与单片机接口软件设计及功能应用举例单片机对时钟读/写过程,实质上就是对DS1302各个寄存器读/写过程。在数据传送之前,一方面置/RST端为高,接着发送一种带有地址和命令信息8位命令字到寄存器,命令字节拟定所寻寄存器是读操作还是写操作。在一种时钟周期内,在SCLK上升沿时数据输入有效,输出则在SCLK下降沿有效。如果/RST复位端输入为低电平,则所有数据传送终结,I/O脚处在高阻状态。DS1302读/写数据时序如图2-7所示。简朴阐明如下:SCLKSCLK/RSTR//W A0 A1 A2 AI/O0123456701234567命令字数据图2-7DS1302读/写数据时序图(1)数据输入:在输入写命令字节8个SCLK周期之后,数据字节在后8个SCLK周期上升沿输入,从低位开始输入数据。(2)数据输出:在输入读命令字节8个SCLK周期之后,数据字节在后8个SCLK周期下降沿输入。第一种数据位在写命令字节最后一位第一种下降沿输出。只要/RST保持为高,在持续SCLK周期内就继续输出数据,从低位开始输出数据。下面一方面给出基本接口软件,然后举例阐明各种功能应用[5]。(1)写保护寄存器操作当写保护寄存器最高位为0时,容许数据写入寄存器,写保护寄存器可以通过命令字节8EH、8FH来规定禁止写入/读出。写保护位不能在多字节传送模式下写入。Write_Enable:MOVCommand,#8Eh ;命令字节为8EhMOVByteCnt,#1 ;单字节传送模式MOVR0,#XmtDat ;数据地址覆给R0MOVXmtDat,#00h ;数据内容为0(写入容许)ACALLSend_Byte ;调用写入数据子程序RET ;返回调用本子程序处当写保护寄存器最高位为1时,禁止数据写入寄存器,Write_Disable:MOVCommand,#8Eh ;命令字节为8EMOVByteCnt,#1 ;单字节传送模式MOVR0,#XmtDat ;数据地址覆给R0MOVXmtDat,#80h ;数据内容为80h(禁止写入)ACALLSend_Byte ;调用写入数据子程序RET ;返回调用本子程序处以上程序调用了基本数据发送(Send_Byte)模块及某些内存单元定义。其源程序清单在附录中给出。下面程序亦使用了这个模块。(2)时钟停止位操作当把秒寄存器第7位(时钟停止位)设立为0时,起动时钟开始。Osc_Enable:MOVCommand,#80h ;命令字节为80MOVByteCnt,#1 ;单字节传送模式MOVR0,#XmtDat ;数据地址覆给R0MOVXmtDat,#00h ;数据内容为0(振荡器工作容许)ACALLSend_Byte ;调用写入数据子程序RET;返回调用本子程序处当把秒寄存器第7位(时钟停止位)设立为1时,时钟振荡器停止,DS1302进入低功耗方式。Osc_Disable:MOVCommand,#80h ;命令字节为80MOVByteCnt,#1 ;单字节传送模式MOVR0,#XmtDat ;数据地址覆给R0MOVXmtDat,#80h ;数据内容为80h(振荡器停止)ACALLSend_Byte ;调用写入数据子程序RET;返回调用本子程序处(3)单字节传送方式例如:写入8时(12小时模式),程序设立如下:Write_Singlebyte:MOVCommand,#84h ;命令字节为84hMOVByteCnt,#1 ;单字节传送模式MOVR0,#XmtDat ;数据地址覆给R0MOVXmtDat,#88h ;数据内容为88hACALLSend_Byte ;调用写入数据子程序RET;返回调用本子程序处(4)多字节传送方式当命令字节为BE或BF时,DS1302工作在多字节传送模式,8个时钟/日历寄存器从寄存器0地址开始持续读写从0位开始数据。当命令字节为FE或FF时,DS1302工作在多字节RAM传送模式,31个RAM寄存器从0地址开始持续读写从0位开始数据。例如:写入、6月21日、星期三、13时、59分、59秒,程序设立如下:Write_Multiplebyte:MOVCommand,#0Beh ;命令字节为BEhMOVByteCnt,#8 ;多字节写入模式(此模块为8个)MOVR0,#XmtDat ;数据地址覆给R0MOVXmtDat,#59h ;秒单元内容为59hMOVXmtDat+1,#59h ;分单元内容为59hMOVXmtDat+2,#13h ;时单元内容为13hMOVXmtDat+3,#21h ;日期单元内容为21hMOVXmtDat+4,#06h ;月单元内容为06hMOVXmtDat+5,#03h ;星期单元内容为03hMOVXmtDat+6,#0 ;年单元内容为00hMOVXmtDat+7,#0 ;写保护单元内容为00hACALLSend_Byte ;调用写入数据子程序RET ;返回调用本子程序处读出寄存器0~7内容,程序设立如下:Read_Multiplebyte:MOVCommand,#0BFh ;命令字节为BFhMOVByteCnt,#8 ;多字节读出模式(此模块为8个)MOVR1,#RcvDat ;数据地址覆给R1ACALLReceive_Byte;调用读出数据子程序RET;返回调用本子程序处以上程序调用了基本数据接受(eceive_Byte)模块及某些内存单元定义,其源程序清单在附录中给出。下面程序亦使用了这个模块。上面所列出程序模块“Write_Enable”、“Write_Disable”、“Osc_Enable”、“Osc_Disable”与单字节写入模块“Write_Singlebyte”程序架构完全相似,仅只是几种入口参数不同,此处是为了强调功能使用不同才将其分为不同模块,此外,与涓流充电有关设定也是单字节操作方式。下面模块举例阐明如何单字节读出小时单元内容。Read_Singlebyte:MOVCommand,#85h;命令字节为85hMOVByteCnt,#1 ;单字节传送模式MOVR1,#RcvDat;数据地址覆给R1ACALLReceive_Byte;调用读出数据子程序RET ;返回调用本子程序处附录:数据发送与接受模块源程序清单;CPU工作频率最大不超过20MHz;AT89C2051主控制器发送接受数据程序;阐明:本程序是运用ATMEL公司AT89C2051单片机(任何具备51内核或其他适当单片机都可在此作为主控制器)普通I/O口(如P1.2/P1.3/P1.4)实现总线功能,对总线上器件(本程序采用DS1302)进行读写操作。命令字节在Command,传送字节数在ByteCnt中,所发送数据在XmtDat中,所接受数据在RcvDat中。;内存数据定义BitCntdata30h ;数据位计数器ByteCntdata31h ;数据字节计数器Command data32h ;命令字节地址RcvDat DATA40H ;接受数据缓冲区XmtDatDATA50H ;发送数据缓冲区;端口位定义IO_DATAbitP1.3 ;数据传送总线SCLK bitP1.4;时钟控制总线RSTbitP1.2;复位总线;****************************************************************;发送数据程序;名称:Send_Byte;描述:发送(ByteCnt)个字节给被控器DS1302;命令字节地址在Command中;所发送数据字节数在ByteCnt中,发送数据在XmtDat缓冲区中;****************************************************************Send_Byte:CLRRST;复位引脚为低电平所有数据传送终结NOPCLRSCLK ;清时钟总线NOPSETBRST;复位引脚为高电平逻辑控制有效NOPMOVA,Command ;准备发送命令字节MOVBitCnt,#08h ;传送位数为8S_Byte0:RRCA ;将最低位传送给进位位CMOVIO_DATA,C ;位传送至数据总线NOPSETBSCLK ;时钟上升沿发送数据有效NOPCLRSCLK ;清时钟总线DJNZBitCnt,S_Byte0 ;位传送未完毕则继续S_Byte1:准备发送数据MOVA,@R0 ;传送数据过程与传送命令相似MOVBitCnt,#08hS_Byte2:RRC AMOV IO_DATA,CNOPSETB SCLKNOPCLR SCLKDJNZ BitCnt,S_Byte2INC R0 ;发送数据内存地址加1DJNZ ByteCnt,S_Byte1 ;字节传送未完毕则继续NOPCLR RST ;逻辑操作完毕清RSTRET;****************************************************************;接受数据程序;;名称:Receive_Byte;描述:从被控器DS1302接受(ByteCnt)个字节数据;命令字节地址在Command中;所接受数据字节数在ByteCnt中,接受数据在RcvDat缓冲区中;****************************************************************Receive_Byte:CLRRST ;复位引脚为低电平所有数据传送终结NOPCLRSCLK ;清时钟总线NOPSETBRST ;复位引脚为高电平逻辑控制有效MOVA,Command ;准备发送命令字节MOVBitCnt,#08h ;传送位数为8R_Byte0:RRCA ;将最低位传送给进位位CMOVIO_DATA,C ;位传送至数据总线NOPSETBSCLK ;时钟上升沿发送数据有效NOPCLRSCLK ;清时钟总线DJNZBitCnt,R_Byte0 ;位传送未完毕则继续NOPR_Byte1:准备接受数据CLRA ;清累加器CLRC ;清进位位CMOVBitCnt,#08h ;接受位数为8R_Byte2:NOPMOVC,IO_DATA ;数据总线上数据传送给CRRCA ;从最低位接受数据SETBSCLK ;时钟总线置高NOPCLRSCLK ;时钟下降沿接受数据有效DJNZBitCnt,R_Byte2 ;位接受未完毕则继续MOV@R1,A ;接受到完整数据字节放入接受内存;缓冲区INCR1 ;接受数据内存地址加1DJNZByteCnt,R_Byte1 ;字节接受未完毕则继续NOPCLRRST ;逻辑操作完毕清RSTRET=============================================================END[6]第3章控制任务与控制原理3.1控制任务(1)14个数码管分别用来显示年、月、日、时、分、秒,各个数码管显示内容如表3-1所示。表3-1各个数码管显示内容年月日LED1LED2LED3LED4LED5LED6LED7LED8时分秒LED9LED10LED11LED12LED13LED14(2)走时精确,可调节公历年、月、日和时、分、秒。(3)第一次上电,数码管显示起始时间为0000月00日00时00分00秒,也就是数码管显示00,若需要调节时间,可按调日历键、调时键和加一键调节到需要时间。调节好时间之后,该控制系统将从当前设定期间开始自动运营,直到下次人为变化时间设立。(4)可以依照学校作息时间准时打铃,播放音乐和广播体操和其她节目等。掉电后备用电池供电,时钟不断,上电后不用调节时间。(5)采用市电通过电源适配器供电,当市电停电时,不但时间控制系统所有数据不会丢失,且照常运营(有后备电池供电,可供数年)[7]。3.2控制原理概述本设计通过AT89C2051单片机与时钟芯片DS1302配合使用来实现设计任务。通过时钟芯片来实现全日历计时、12/24小时转换以及大、小月、闰年、周自动追踪。通过AT89C2051单片机来实现对时钟芯片控制以及数码管显示和电铃、广播电路控制。把学校作息时间预先制成表格存入EPROM数据区中,运用软件每过1秒将当前时间与数据区时间相比较,相等则阐明要进行某一控制。从而可以实现打铃、息铃、播放广播体操等节目控制[8]。数据区中每一项时间控制字需要占用8个存储单元,示意如表3-2所示:表3-2时间控制字阐明启动装置时间关闭装置时间控制码1时分秒控制码2时分秒设AT89C2051单片机P1.0用作电铃启动和关闭,P1.4用作广播启动和关闭。控制码定义如表3-3所示:表3-3各控制码定义控制码功能相应输出口FEH启动电铃P1.0控制电铃EFH启动广播P1.4控制广播FFH关闭装置P1.0、P1.4均输出关闭信号00H数据区结束依照作息时间编制数据区如表3-4所示。表3-4作息时间数据区定义作息时间地址数据区(时间控制字)6:40起床08H~0FHFE064000FF0640156:50早操10H~17HEF065000FF0650157:15早饭8:00预备铃18H~1FHFE080000FF0800158:10~8:55第一节课20H~27HFE081000FF08101528H~2FHFE085500FF0855159:05~9:50第二节课30H~37HFE090500FF09051538H~3FHFE095000FF0950159:55~9:59课间操40H~47HEF095500FF09590010:20~11:05第三节课48H~4FHFE10FF1050H~57HFE110500FF11051511:15~12:00第四节课58H~5FHFE111500FF11151560H~67HFE10FF1512:15~14:30午饭及午休68H~6FHFE143000FF14301514:40~15:25第五节课70H~77HFE144000FF14401578H~7FHFE152500FF15251514:35~16:20第六节课80H~87HFE143500FF143515FE16FF1616:30课外活动88H~8FHFE163000FF16301517:00晚饭90H~97HFE170000FF17001519:30~21:30晚自习98H~9FFE193000FF193015A0H~A7HFE213000FF213015第4章硬件电路设计4.1硬件构成及操作阐明4.1.1硬件构成框图硬件构成框图如图4-1所示:ATAT89C2051显示屏接口键盘扫描接口电铃、喇叭驱动电路接口图4-1系统硬件构成框图4.1.2设计电路原理图设计电路如图4-2所示。该系统在设计时尽量使体积最小,因而选用了AT89C2051单片机(可直接驱动LED数码显示屏),显示某些采用了14个共阴极LED数码管构成静态显示电路,可实时显示秒、分、时、星期、日、月、年信息。其中字段由串入并出移位寄存器74LS164控制,74LS164串行数据输入端由P3.0控制,移位脉冲由P3.1提供。为了对作息时间系统当前时间进行校准,系统设立了3个功能键:一种用于调日历,另一种用于调时,尚有一种用于加一。控制输出由广播电路和打铃电路构成,其中P1.0接电铃驱动电路,P1.4接喇叭驱动电路。在本系统中,AT89C2051为主器件,DS1302为从器件,主器件在总线上产生时钟脉冲、寻址信号、数据信号等,而从器件则相应接受数据、送出数据[9]。各某些在电路中重要功能:(1)AT89C2051:重要通过对DS1302设立,完毕时钟设立以及数据传播。(2)DS1302:时钟芯片,在单片机控制下实现时钟数据记录和输出。(3)OSC2:32.768KHZ晶振,为时钟芯片提供计时脉冲。图4-2作息时间系统电路原理图4.1.3操作阐明(1)接上5V电源即可运营。(2)按“调日历”键,进入调节年、月、日状态。一方面“年”两位数码管闪烁显示,表达在调节“年”状态,按“加一”键调节到盼望“年”,再按“调日历”键则确认“年”,同步进入调节“月”状态,“月”两位数码管闪烁显示,按“加一”键调节到盼望“月”,再按“调日历”键则则确认“月”,同步进入调节“日”状态,“日”两位数码管闪烁显示,按“加一”键调节到盼望“日”后,再按“调日历”键则确认“日”,同步调节年、月、日结束。(3)按“调时”键,进入调节时、分、秒状态。一方面“时”两位数码管闪烁显示,表达在调节“时”状态,按“加一”键调节到盼望“时”,再按“调时”键则确认“时”,同步进入调节“分”状态,“分”两位数码管闪烁显示,按“加一”键调节到盼望“分”,再按“调时”键则确认“分”,同步进入调节“秒”状态,“秒”两位数码管闪烁显示,按“加一”键调节到盼望“秒”后,再按“调时”键则确认“秒”,同步调节时、分、秒结束[10]。4.2单片机与继电器接口及工作原理单片机应用系统中,开关量都是通过单片机I/O口或扩展I/O口(如8255、8155等)输出。这些I/O口驱动电流往往局限性以驱动某些功率开关。对于机械继电器,驱动器选取要依照继电器吸合电流而定,即驱动器电流一定要不不大于继电器吸合电流。图4-3为该系统继电器接口电路图。为防止前向通道信号干扰,应采用信号隔离,普通使用某些光电隔离器件,如图4-3中4N25光耦。当单片机P1.4脚输出低电平时(指令为CLRP1.4),4N25受控端导通,三极管Q1饱和导通,继电器吸合,负载电路接通。为防止电压间互相干扰,继电器工作电压VDD普通与单片机系统电压VCC不同。继电器负载可依照实际需要选取,如外接报警装置,也可用作交流开关。继电器可依照负载功率大小选取,如负载功率较大,可选用吸合电流较大继电器,同步驱动管Q1功率也应恰当增大,可选用大功率驱动管。图4-3继电器接口电路原理图机械继电器在关断时容易产生干扰,为抑制干扰源,应在继电器线圈处增长续流二极管,消除断开线圈时产生反电动势干扰。如图4-3二极管D2[11]。4.3单片机与显示屏接口及工作原理4.3.1LED显示屏基本构造和原理LED显示屏采用发光二极管显示字段。单片机系统中经常采用是7段显示屏,即LED显示屏中有8个发光二极管,代表“a.b.c.d.e.f.g.”7个字段和1个全小数点“dp”。它有共阴极和共阳极两种构造:共阴极LED显示屏发光二极管负极接地,当发光二极管正极为高电平时,发光二极管被点亮;共阳极LED显示 器正极相连,当二极管负极为低电平时,发光二极管被点亮。LED显示屏构造和封装如图4-4所示。图4-4LED显示屏构造和封装图在一种单片机系统中,对共阴极LED显示屏控制采用“接地方式”,即通过控制LEDGND引脚电平高低来达到选通目,该引脚即普通所说位选线。共阳极LED显示屏控制方式则相反。两种控制方式中,共阴极LED控制方式受系统器件功耗限制,只能用在小尺寸LED显示屏中,对于大尺寸LED显示屏控制(如大屏幕计时器)普通使用共阳极方式。使用LED显示屏时,工作电流普通为5~10mA/段。这样当LED处在全亮状态时,工作电流约40~80mA左右。LED显示屏亮度除与工作电流关于外,还与LED型号关于。依照显示亮度不同划分为普通亮度和高亮度LED显示屏。高亮度LED显示屏发光强度远不不大于普通亮度LED显示屏,在一种单片机应用系统中,普通将控制LED显示字符8位数据称之为段选码,7段LED段选码如表4-1所示,共阴极与共阳极段选码互为补码,即两数值相加等于FFH。表4-17段LED段选码字符共阴共阳字符共阴共阳03FHC0H87FH80H106HF9H96FH90H25BHA4HA77H88H34FHB0HB7CH83H406H99HC39HC6H56DH92HD5EHA1H67DH82HE79H86H707HF8HF71H8EH段选码数值大小依照LED构造很容易得出,假设一种共阴LED要显示数字“0”,依照图4-4(指LED封装图)则有:a=b=c=d=e=f=1,g=0,dp=0,即二进制“00111111B”,也就是十六进制“3FH”[12]。4.3.2LED显示LED显示屏有静态和动态两种方式。从接口上分又有并行和串行两种,这要视接口和驱动芯片而定。惯用并行LED接口芯片有8155、8255以及键盘和显示专用芯片8279等。与并行方式相比串行方式仅占用CPU少数几根I/O口线便可实现LED显示功能,此前51单片机系统经常通过串口通信线TXD、RXD(P3.0、P3.1)加移位寄存器74LS164实现LED显示功能。近年来国内外各大厂商纷纷推出了基于串行总线方式LED显示屏接口芯片,如MAXIN公司MAX7219,力源PS7219以及周立功zlg7289等。这些芯片与单片机接口普通采用SPI总线方式,具备占用I/O口线少,与单片机接口程序易于实现特点。有芯片如zlg7289还内含键盘控制器,这样只要一片芯片便可实现显示和键盘功能,使用十分以便[13]。该系统设计时显示某些采用静态显示,其电路如图4-5所示。此电路由每片74LS164相应输出到一种数码管,CPU将串行口方式设为移位寄存器方式,外接14片74LS164作为14位LED显示屏静态显示接口,把CPURXD(P3.0)作为数据输出线,TXD(P3.1)作为移位时钟脉冲。74LS164为TTL单向8位移位寄存器,可实现串行输入、并行输出。其中A、B(第1、2脚)为串行数据输入端,2个引脚按与运算规律输入信号,共一种输入信号时可并接。CLK(第8脚)为时钟输入端,可连接到串行口TXD端。每一种时钟信号上升沿加到CLK端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数所有移入74LS164。Q0~Q7(第3~6和10~13引脚)并行输出端分别接在LED显示屏a~dp各段相应引脚上。74LS164使用简介:所谓时钟脉冲端,其实就是需要高、低脉冲。74LS164CLK在脉冲上升沿时,如果数据输入端(第1,2引脚)是高电平,就会有一种1进入到74LS164内部;如果数据输入端是低电平,就会有一种0进入其内部。在给出了8个脉冲后,最先进入74LS164第一种数据到达了最高位,然后再来一种脉冲会发生什么状况呢?再来一种脉冲,第一种脉冲就会从最高位移出,就像车站排队买票,栏杆就那么长,要从背面进去一种人,必要有个人从前面走出去才行。在静态显示电路中,14片74LS164首尾相串,而时钟端则接在一起,这样,当输入8个脉冲时,从单片机RXD端输出数据一方面进入第一片74LS164中,而当第二个8位脉冲到来后,这个数据就进入第二片74LS164,而新数据则进入第一片74LS164,这样当第14个8个脉冲完毕后,初次送出数据被送到了第十四片74LS164中,其她数据依次出当前第十三、十二、十一、十、九、八、七、六、五、四、三、二、一片74LS164中。当第一种脉冲到来时,除了第一片74LS164接受数据外,其她各片在做什么工作呢?它们也在接受数据,由于它们时钟端都接在了一起。可是数据还没有送到其她各片,它们在接受什么数据呢?其实所谓数据但是是一种说法而已,实际就是电平高低,当第一种脉冲到来时,第一片74LS164固然是从单片机接受数据了,而其她各片也接到前一片Q7上,而Q7是一根电线,在数字电路中它只也许有两种状态:低电平或高电平,也就是“0”和“1”。因此它下一片74LS164也相称于是在接受数据,只是接受所有是0或者1而已,这些数据作用是在CPU输出数据结束时,由74LS164并行输出到数码管上,点亮其高电平相应笔画段图4-5LED数码管接口电路4.4电源电路设计图4-6+5V、+8V电源供电电路图4-6所示是由正输出三端稳压器7808和7805构成电源模块,三端集成稳压器只有三个引出端:输入端、输出端和公共端,在电路连接中比较简朴。如图4-6所示:整流滤波后得到直流输入电压U1i接在7808输入端和公共端之间,在7808输出端即可得到+8V输出电压,为了改进电压波形,在7808和7805输入端分别接入电容C6、C7,普通这种电容容量为0.33uF;同步在两者输出端接上电容可以改进负载瞬态效应,这种电容容量普通为0.1uF;这两种电容应当直接接在集成稳压器引脚处[15]。考虑到对于集成稳压管保护,普通在稳压管输入和输出之间跨接一种保护二极管,其作用就是在输入端短路时,使接在输出端电容可以通过二极管放电,从而达到保护目。其中电容参数如图4-6所示,二极管选1N4007即可满足设计规定。第5章软件设计5.1绘制流程图程序功能:(1)AT89C2051单片机控制DS1302时钟芯片程序重要涉及两个方面内容:一是单片机对DS1302寄存器地址定义和控制字写入,二时数据读取。(2)小时寄存器第7位是12/24制选取位,为1时表达12小时模式,此时,该寄存器第5位是AM/PM选取位,1为PM。(3)上电时在Vcc2电压达到2.5V前RST脚必要保持逻辑0,且RST脚设为逻辑1前,SCLK须同样为逻辑0[16]。(4)每次上电,必要把秒寄存器高位(第7位)清0,时钟才干走时。(5)作息时间系统流程分为主程序和子程序流程。主程序流程除了数据区初始参数设立外,重要涉及键盘扫描子程序、显示子程序和控制子程序三个模块循环调用,如图5-1所示。控制子程序判断定期时间与否到达,如定期时间到则启动继电器。其流程图如图5-2所示;显示子程序流程图如图5-3所示;键盘扫描子程序流程如图5-4所示。图5-4只绘出了设立年流程。(6)数值变化成果通过14位数码管显示,因而需要进行十六进制至十进制BCD转换,之后再调用显示子程序。加一键按下和释放为一种数值增长过程。月、日、星期、时、分、秒设立流程与年类似,只是月满刻度值是12,日满刻度值是31,时满刻度值是24,星期满刻度值是日,分和秒满刻度值是59[17]。5.1.1主程序设计主程序流程图如图5-1所示:开始开始初始化参数设立调用显示子程序调用键盘扫描子程序调用控制子程序图5-1主程序流程图5.1.2控制子控制子程序流程图如图5-2所示:开始取出控制区中小时值当前时=控制区时?当前分=控制区别?当前秒=控制区秒?取出控制码控制码送P1口返回YYYNN开始取出控制区中小时值当前时=控制区时?当前分=控制区别?当前秒=控制区秒?取出控制码控制码送P1口返回YYYNNN图5-2控制子程序流程图5.1.3显示子显示子程序流程图如图5-3所示:开始开始向显示缓冲区中放数返回Y指向显示缓冲区首址指向字形码表首查段码,送出段码指向下一种缓冲单元显示下一位14位显示完?N图5-3显示子程序流程图5.1.4键盘扫描子程序流程图如图5-4所示:开始开始调用延时10ms子程序调日历功能键按下吗?调日历功能键依然按下吗?年缓冲单元加1加一功能键依然按下吗?加一功能键按下吗?调用延时10ms子程序年缓冲单元=99?年缓冲单元清0调用显示子程序调日历功能键再次按下吗?至调月子程序YYYYYYNNNNNN图5-4键盘扫描子程序流程图5.2作息时间系统软件设计办法。5.2.1主程序软件设计主程序设计重要包括伪指令定义、参数初始化设立、子程序调用三某些内容。(1)伪指令定义分别定义调日历、调时、加一三个按键以及时钟、数据传送、复位总线和数据存储区等。TRL BIT P3.2 ;调日历功能键JIA1 BIT P3.3 ;加一功能键TSH BIT P3.4 ;调时功能键SCLK BIT P3.5 ;时钟控制总线IO BIT P3.7 ;数据传送总线RST BIT RST ;复位总线YEAR DATA 66H ;年寄存器MONTH DATA 65H ;月寄存器WEEK DATA 64H ;星期寄存器DAY DATA 63H ;日寄存器HOUR DATA 62H ;时寄存器MINTUE DATA 61H ;分寄存器SECOND DATA 60H ;秒寄存器DS_ADDR DATA 67H ;此单元放置数据为地址DS_DATA DATA 68H ;此单元放置数据(2)参数初始化设立涉及数据堆栈区地址、时间和显示数据初始参数设立。在普通状况下,时间和显示数据初始数值为0。堆栈区地址代码如下:MOV SP,#70H ;堆栈区地址从70H开始 MOV R0,#14 MOV R1,#4BHLOOP: MOV @R1,#00H ;初始化显示缓冲单元 DEC R1 DJNZ R0,LOOP LCALL DISP(3)子程序调用在主程序里循环调用键盘扫描子程序、显示子程序和控制子程序,代码如下:START0: LCALL KEY ;调用键盘扫描子程序 LCALL DISP ;调用显示子程序 LCALL CONTROL ;调用控制子程序 AJMP START0 ;主程序循环调用[18]5.2.2子程序软件设计子程序重要有键盘扫描、显示和控制子程序构成。事实上,在键盘扫描子程序里还包括显示和防抖动延时子程序,即子程序嵌套。(1)键盘扫描子程序在单片机应用系统中,键盘构造重要有独立式和行列式两种,但无论硬件构造如何,其软件编写办法和过程基本上是一致,重要有如下几种环节:①判断有无按键按下;②当发既有按键按下时,加入软件延时以消除键盘抖动影响;③依照一定键值编写相应执行程序;判断键值与否释放,若未释放,则等待以避免重键或产生错误按键成果。;键盘扫描子程序KEY: JB TRL,MAIN2FA ;调日历功能键未按下,则继续显示 LCALL DEL10MS ;键盘防抖动 JB TRL,MAIN2FA AJMP MAIN2FNMAIN2FA: JB TSH,MAIN2F ;调时功能键未按下,则继续显示 LCALL DEL10MS ;键盘防抖动 JB TSH,MAIN2F AJMP TIAOSHIMAIN2FN: MOV DS_ADDR,#8DH ;读年寄存器 LCALL READ MOV R3,DS_DATA ;读出数据地址给R3 LCALL DISP00MAIN2FN2:JB JIA1,MAIN2FN1 LCALL DEL10MS JB JIA1,MAIN2FN1 INC @R3 LCALL DISP00 MOV DS_ADDR,#8CH ;写年寄存器 LCALL WRITE ;写入设立年数据MAIN2FN1:JB TRL,MAIN2FN2 LCALL DEL10MS JB TRL,MAIN2FN2 MOV DS_ADDR,#89H ;读月寄存器 LCALL READ MOV R3,DS_DATA ;读出数据地址给R3 LCALL DISP00MAIN2FY2:JB JIA1,MAIN2FY1 LCALL DEL10MS JB JIA1,MAIN2FY1 INC @R3 LCALL DISP00 MOV DS_ADDR,#88H ;写月寄存器 LCALL WRITE ;写入设立月数据MAIN2FY1:JB TRL,MAIN2FN2 LCALL DEL10MS JB TRL,MAIN2FN2 MOV DS_ADDR,#87H ;读日寄存器 LCALL READ MOV R3,DS_DATA ;读出数据地址给R3LCALL DISP00MAIN2FR2:JB JIA1,MAIN2FR1 LCALL DEL10MS JB JIA1,MAIN2FR1 INC @R3 LCALL DISP00 MOV DS_ADDR,#86H ;写日寄存器 LCALL WRITE ;写入设立日数据MAIN2FR1: JB TRL,MAIN2FR2 LCALL DEL10MS JB TRL,MAIN2FR2 AJMP MAIN2FATIAOSHI: MOV DS_ADDR,#85H ;读时寄存器 LCALL READ MOV R3,DS_DATA ;读出数据地址给R3 LCALL DISP00TIAOSHI1: JB JIA1,TIAOSHI2 LCALL DEL10MS JB JIA1,TIAOSHI2 INC @R3 LCALL DISP00 MOV DS_ADDR,#84H ;写时寄存器 LCALL WRITE ;写入设立时数据TIAOSHI2: JB TSH,TIAOSHI1 LCALL DEL10MS JB TSH,TIAOSHI1 MOV DS_ADDR,#83H ;读分寄存器 LCALL READ MOV R3,DS_DATA ;读出数据地址给R3 LCALL DISP00TIAOSHI3: JB JIA1,TIAOSHI4 LCALL DEL10MS JB JIA1,TIAOSHI4 INC @R3 LCALL DISP00 MOV DS_ADDR,#82H ;写分寄存器 LCALL WRITE ;写入设立分数据TIAOSHI4: JB TSH,TIAOSHI3 LCALL DEL10MS JB TSH,TIAOSHI3 MOV DS_ADDR,#81H ;读秒寄存器 LCALL READ MOV R3,DS_DATA ;读出数据地址给R3LCALL DISP00TIAOSHI5: JB JIA1,TIAOSHI6 LCALL DEL10MS JB JIA1,TIAOSHI6 INC @R3 LCALL DISP00 MOV DS_ADDR,#80H ;写秒寄存器 LCALL WRITE ;写入设立秒数据TIAOSHI6: JB TSH,TIAOSHI5 LCALL DEL10MS JB TSH,TIAOSHI5 AJMP MAIN2FAMAIN2: MOV P1,#0 MOV DS_ADDR,#8DH ;读年寄存器 LCALL READ MOV YEAR,DS_DATA ;存入年缓冲单元 MOV DS_ADDR,#89H ;读月寄存器 LCALL READ MOV MONTH,DS_DATA ;存入月缓冲单元 MOV DS_ADDR,#87H ;读日寄存器 LCALL READ MOV DAY,DS_DATA ;存入日缓冲单元 MOV DS_ADDR,#85H ;读小时寄存器 LCALL READ MOV HOUR,DS_DATA ;存入小时缓冲单元 MOV DS_ADDR,#83H ;读分寄存器 LCALL READ MOV MINUTE,DS_DATA ;存入分缓冲单元 MOV DS_ADDR,#81H ;读秒寄存器 LCALL READ MOV SECOND,DS_DATA ;存入秒缓冲单元 MOV R0,YEAR ;解决年数据 LCALL DIVIDE ;分开低四位、高四位数据 MOV 4AH,R1 ;将年数据低位放到显示缓冲寄存器4AH MOV 4BH,R2 ;将年数据高位放到显示缓冲寄存器4BH MOV R0,MONTH ;解决月数据 LCALL DIVEDE MOV 48H,R1 ;将月数据低位放到显示缓冲寄存器48H MOV 49H,R2 ;将月数据高位放到显示缓冲寄存器49H MOV R0,DAY ;解决日数据 LCALL DIVIDE MOV 46H,R1 ;将日数据低位放到显示缓冲寄存器46H MOV 47H,R2 ;将日数据高位放到显示缓冲寄存器47H MOV R0,HOUR ;解决时数据 LCALL DIVIDE MOV 44H,R1 ;将时数据低位放到显示缓冲寄存器44H MOV 45H,R2 ;将时数据高位放到显示缓冲寄存器45H MOV R0,MINTUE ;解决分数据 LCALL DIVIDE MOV 42H,R1 ;将分数据低位放到显示缓冲寄存器42H MOV 43H,R2 ;将分数据高位放到显示缓冲寄存器43H MOV R0,SECOND ;解决秒数据 LCALL DIVIDE MOV 40H,R1 ;将秒数据低位放到显示缓冲寄存器40H MOV 41H,R2 ;将秒数据高位放到显示缓冲寄存器41H LCALL DISP LCALL CONTROL RET普通状况下,键盘采用机械弹性开关来反映一种电压信号开、断。由于机械触点弹性作用,在闭合和断开瞬间会有抖动发生。抖动时间长短由按键机械特性决定,普通在5~10ms之间。为保证按键不产生误动作,在编写按键解决程序中必要有防抖动办法。防抖动办法有硬件和软件两种办法。硬件防抖动办法典型做法是采用RS触发器,构成双稳态消抖电路,普通用在对按键操作过程比较严格场合。采用硬件防抖动电路将导致系统硬件电路设计复杂化,该设计使用软件消抖办法。它工作原理是:当软件检测到第一种按键按下时,执行一种10~20ms软件延时程序,之后再检测该键电平与否仍维持在闭合状态,若依然保持,则确认此键是真正按下,从而消除了抖动影响。;10ms防抖动延时子程序DEL10MS: MOV R7,#10S2: MOV R6,#250S1: DJNZ R6,S1 DJNZ R7,S2 RET当晶体频率为6MHZ时,上述抖动延时执行时间近似等于250*10*2*2us=10000us=10ms。(2)显示子程序显示子程序重要是实时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客舱服务英语(陕西职业技术学院)知到智慧树答案
- 《职业形象管理》课件
- 生猪养殖场废水深度处理及粪污生产有机肥综合利用项目建设可行性研究报告
- 生态蔬菜种植园项目可行性研究报告
- 美术课件设计你的房间
- 《红眼病鉴别表》课件
- 2015年浙江义乌中考满分作文《我长大了》10
- “一定能完成”的新年计划
- 物理教师心得体会
- 市政工程安全质量协议
- 港口行业深度报告:防御与景气兼具长周期维度的资产
- 自控仪表施工调试方案
- 2024年新人教版道德与法治一年级上册 8 课余生活真丰富 教学课件
- 消防大队联勤联动签订协议书模板
- 建筑信息模型技术员技能竞赛考试题库备赛500题(含答案)
- 公司项目交付管理制度
- 2022年搜索引擎营销实战教程(SEO-SEM)试卷带答案(题库)
- 护工照顾老人协议书范本
- 2024年大学英语三级考试级真题真题试卷
- 幼儿园教育指导纲要(试行)全文
- 2024年七年级上册历史期末常考问答题
评论
0/150
提交评论