




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文(设计)论文(设计)题目基于51单片机电子万年历所属系别信息工程系专业班级电子信息工程姓名XXX学号2008080XXXXXXXX指导教师XXX撰写日期2011年5月摘要随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。为了在观测时间的同时,能够了解其它与人类密切相关的信息,比如温度、星期、日期等,电子万年历诞生了,它集时间、日期、星期和温度功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。该电子万年历主要采用AT89C51单片机作为主控核心,由DS1302时钟芯片提供时钟、LED动态扫描显示屏显示。AT89C51单片机是由ATMEL公司推出的,功耗小,电压可选用46V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的LED液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒和温度等信息。此外,该电子万年历还具有时间校准等功能。关键词时钟电路,时钟芯片DS1302,LED动态扫描,单片机AT89C51,MAX7219ABSTRACTWITHTHESOCIETY,SCIENCEANDTECHNOLOGY,MANKINDLEARNEDTHATTIME,FROMTHEVIEWOFTHESUN,TOTHEPRESENTELECTRONICCLOCKPENDULUMCLOCK,CONTINUOUSRESEARCHANDINNOVATIONOBSERVATIONTIMEINTHESAMETIME,BEABLETOUNDERSTANDOTHERHUMANBEINGSISCLOSELYRELATEDTOINFORMATION,SUCHASTEMPERATURE,WEEK,DATEANDSOON,THEBIRTHOFTHEELECTRONICCALENDAR,ANDITSETTHETIME,DATE,WEEKANDTEMPERATUREINONE,WITHEASYTOREAD,INTUITIVEDISPLAYFUNCTIONALDIVERSITY,ANDMANYOTHERADVANTAGESOFSIMPLECIRCUITWITHTHEELECTRONICINSTRUMENTATIONOFTHEDEVELOPMENTTRENDOFTHEMARKETPROSPECTSAREBROADTHEMAINUSEOFTHEELECTRONICCALENDARAT89C51SINGLECHIPMICROCOMPUTERASTHEMAINCORE,PROVIDEDBYTHEDS1302CLOCKCHIPCLOCK,DS18B20THETEMPERATURECHIPACQUISITIONTRANSITIONTEMPERATURE,LEDDISPLAYSHOWSTHEDYNAMICSCANAT89C51SINGLECHIPMICROCOMPUTERISINTRODUCEDBYATMELCORPORATION,ASMALLPOWERCONSUMPTION,VOLTAGECANBESELECTED46VPOWERSUPPLYVOLTAGEDS1302CLOCKCHIPISINTRODUCEDDALLASFINEWITHTRICKLECHARGEFUNCTIONOFCURRENTLOWPOWERREALTIMECLOCKCHIP,WHICHCANOFTHEYEAR,MONTH,DAY,WEEK,HOUR,MINUTE,SECONDFORTIME,ALSOHASMULTIPLEFUNCTIONS,SUCHASALEAPYEARCOMPENSATION,ANDLONGLIFEOFTHEDS1302,ASMALLERRORDS18B20TEMPERATURECHIPISADIGITALTEMPERATURESENSORWITHAMEASUREMENTACCURACYHIGH,ASIMPLECIRCUITTOCONNECTTHECHARACTERISTICSOFSUCHSENSORSONLYNEEDADATACABLEFORDATATRANSMISSIONDIGITALLEDDISPLAYISUSEDTODISPLAYLCDSCREEN,CANDISPLAYYEAR,MONTH,DAY,WEEK,HOUR,MINUTE,SECONDANDTEMPERATURE,ETCINFORMATIONINADDITION,THEELECTRONICCALENDARISALSOATIMECALIBRATIONFUNCTIONSKEYWORDSCLOCKCIRCUIT,CLOCKCHIPDS1302,LEDDYNAMICSCANNING,SINGLECHIPAT89C51,MAX7219目录1引言12设计要求与方案论证121设计要求1211基本要求1212创新要求122系统基本方案选择和论证1221单片机芯片的选择方案和论证1222显示模块选择方案和论证2223时钟芯片的选择方案和论证223电路设计最终方案决定23系统的硬件设计与实现331电路设计框图332系统硬件概述333主要单元电路的设计3331单片机主控制模块的设计3332时钟电路模块的设计4333电路原理及说明4334显示模块的设计64系统的软件设计641程序流程框图742子程序的设计8421读、写DS1302子程序85作品总结106参考文献117致谢12附录一系统电路图13附录二系统程序清单14附录三系统使用说明书361引言随着电子技术的发展,人类不断研究,不断创新纪录。万年历目前已经不再局限于以书本形式出现。以电脑软件或者电子产品形式出现的万年历被称为电子万年历。与传统书本形式的万年历相比,电子万年历得到了越来越广泛的应用,采用电子时钟作为时间显示已经成为一种时尚。目前市场上各式各样的电子时钟数不胜数,但多数是只针对时间显示,功能单一不能满足人们日常生活需求。本文提出了一种基于AT89C51单片机的万年历设计方案,本方案以AT89C51单片机作为主控核心,与时钟芯片DS1302、按键、LED显示等模块组成硬件系统。在硬件系统中设有独立按键和LED显示器,能显示丰富的信息,根据使用者的需要可以随时对时间进行校准、选择时间等,综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。2设计要求与方案论证21设计要求211基本要求1)具有年、月、日、星期、时、分、秒等功能;2)万年历具有闰月识别显示功能;3)具备年、月、日、星期、时、分、秒校准功能;212创新要求1)万年历具有阴历显示功能;2)具有测量室内温度功能;22系统基本方案选择和论证221单片机芯片的选择方案和论证方案一采用89C51芯片作为硬件核心,采用FLASHROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二采用AT89S52,片内ROM全都采用FLASHROM;能以3V的超底压工作;同时也与MCS51系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。所以选择采用AT89S52作为主控制系统222显示模块选择方案和论证方案一采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏方案二采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示方案三采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。所以采用了LED数码管作为显示。223时钟芯片的选择方案和论证方案一直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。方案二采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压25V55V范围内,25V时耗电小于300NA23电路设计最终方案决定综上各方案所述,对此次作品的方案选定采用AT89S52作为主控制系统DS1302提供时钟数字式温度传感器LED数码管动态扫描作为显示。3系统的硬件设计与实现31电路设计框图32系统硬件概述本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为25V55V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由DS18B20构成;显示部份由个数码管,74LS138、74LS47译码器构成。使用动态扫描显示方式对数字的显示。33主要单元电路的设计331单片机主控制模块的设计AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端如图1所示AT89S52主控制模块DS1302时钟模块LED数码管动态扫描显示模块键盘模块图1主控制系统332时钟电路模块的设计图2示出DS1302的引脚排列,其中VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电。当VCC2大于VCC102V时,VCC2给DS1302供电。当VCC2小于VCC1时,DS1302由VCC1供电。X1和X2是振荡源,外接32KHZ晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电动行时,在VCC大于等于25V之前,RST必须保持低电平。中有在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。SCLK始终是输入端。图2DS1302的引脚图333电路原理及说明1时钟芯片DS1302的工作原理DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如下图4所示。图5为DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM1,对时间进行读/写时,CK0。位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表6为DS1302的日历、时间寄存器内容“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP”是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。2DS1302的控制字节DS1302的控制字如表1所示。控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出RAMRD1A4A3A2A1A0/CK/WR表1DS1302的控制字格式3数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。如下图4所示图4DS1302读/写时序图4DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表2。表2DS1302的日历、时间寄存器此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH写、FFH读。334显示模块的设计如图5所示,采用动态扫描显示,由个数码管,38译码器74LS138接1K限流电阻,再接8550三极管接到共阳数码管的COM端作为选通位码,每位选择相应的列。74LS47接240限流电阻,再接共行的LED数码管的断码。图5LED动态扫描显示4系统的软件设计41程序流程框图开始初始化读、写日期、时间和温度分离日期时间温度显示值显示子程序农历自动更新子程序日期、时间修改子程序闰月子程返回定时闹铃子程序图A主程序流程图图B计算阳历程序流程图图C时间调整程序流程图42子程序的设计421读、写DS1302子程序写1302程序WRITECLRSCLKNOPSETBRSTNOPMOVA,32HMOVR4,8WRITE1RRCA送地址给1302NOPNOPCLRSCLKNOPNOPNOPMOVIO,CNOPNOPNOPSETBSCLKNOPNOPDJNZR4,WRITE1CLRSCLKNOPMOVA,31HMOVR4,8WRITE2RRCANOP送数据给1302CLRSCLKNOPNOPMOVIO,CNOPNOPNOPSETBSCLKNOPNOPDJNZR4,WRITE2CLRRSTRET读1302程序READCLRSCLKNOPNOPSETBRSTNOPMOVA,32HMOVR4,8READ1RRCA送地址给1302NOPMOVIO,CNOPNOPNOPSETBSCLKNOPNOPNOPCLRSCLKNOPNOPDJNZR4,READ1MOVR4,8READ2CLRSCLKNOP从1302中读出数据NOPNOPMOVC,IONOPNOPNOPNOPNOPRRCANOPNOPNOPNOPSETBSCLKNOPDJNZR4,READ2MOV31H,ACLRRSTRET5作品总结在整个设计过程中,发挥团队精神,分工合作,充分发挥人的主观能动性,自主学习,学到了许多没学到的知识。较好的完成了作品。达到了预期的目的,在最初的设计中,发挥“三个臭皮匠,顶个诸葛亮”的作用。相互学习、相互讨论、研究。完了最初的设想。在电路焊接时虽然没什么大问题,但从中也知道了焊接在整个作品中的重要性,电路工程量大,不能心急,一个个慢慢来不能急于求成。反而达到事半功倍的效果。对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,和同组员的讨论,理清了思路,反而得心应手。在此次设计中,知道了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印。也练就了我们的耐心,做什么事都在有耐心。此次比赛中学到了很多很多东西,这是最重要的。总之,参加电子竞赛我们的能力得到了全方位的提高。参考文献1胡乾斌,李文斌,李玲,喻红,单片微型计算机原理与应用,华中科技大学出版社,19962刘勇数字电路。电子工业出版社,20043陈正振电子电路设计与制作广西交通职业技术学院信息工程系,20074杨子文单片机原理及应用西安电子科技大学出版社,20065王萍电子技术实验教程机械工业出版社,20096沈红卫单片机应用系统设计实例与分析,北京北京航空航天大学出版社,20037李光飞单片机课程设计实例指导,北京北京航空航天大学出版社20048王法能单片机原理及应用,科学出版社20049楼然苗,李光飞51系列单片机设计实例M北京航空航天大学出版社,200310朱定华,戴汝平单片微机原理与应用M清华大学出版社,200311胡汉才单片机原理与接口技术M清华大学出版社,200312余家春PROTEL99SE电路设计实用教程M中国铁道出版社,200413张培仁基于汇编语言编程MCS51单片机原理与应用北京清华大学出版社,200314TSOMEYA,JSMALL,PKIM,CNUCKOLLS,JTYARDLEYALCOHOLVAPORSENSORSBASEDONSINGLEWALLEDCARBONNANOTUBEFIELDEFFECTTRANSISTORSMNANOLETTERS,200315MPENZAETALALCOHOLDETECTIONUSINGCARBONNANOTUBESACOUSTICANDOPTICALSENSORSMAPPLIEDPHYSICSLETTERS,200416FRETTIG,RMOOSDIRECTTHERMOELECTRICGASSENSORSDESIGNASPECTSANDFRISTGASSENSORSMSENSACTUATORSB,2007致谢感谢学院给我们提供了一个展现自己的舞台,给我们一次难得煅炼的机会,使得我们的动手能力和专业技能都有了很大的提高。在做作品的日子里得到了陈老师的悉心指导,在此向我们的指导教师致以诚挚的谢意。感谢提供相关技术帮助的老师和同学,你们的支持和鼓励使我们对这次的作品完成有了信心和动力,也给了我们很多无私的帮助和支持,我们在此深表谢意。姓名袁绽龙附录一系统电路图附录二系统程序清单CONFIG12EQU7FHTEMPHEQU21HTEMPLEQU20HREG2EQU22HREG3EQU23HREG4EQU24HDATEQUP07SCLKEQUP32IOEQUP33RSTEQUP34YEARDATA66HMONTHDATA65HWEEKDATA64HDAYDATA63HHOURDATA62HMINTUEDATA61HSECONDDATA60HORG0000HLJMPSTARTORG001BHLJMPINTT1START初值LCALLZJSETBEAMOVSCON,00H串行输出,方式0MOVTMOD,10H计数器1,方式1MOVTL1,00HMOVTH1,00HMOV32H,8EHMOV31H,00H允许写1302LCALLWRITEMOV32H,90HMOV31H,0A6H1302充电,充电电流11MALCALLWRITE主程序MAIN1MOV32H,8DH读出年LCALLREADMOVYEAR,31HMOV32H,8BH读出星期LCALLREADMOVWEEK,31HMOV32H,89H读出月LCALLREADMOVMONTH,31HMOV32H,87H读出日LCALLREADMOVDAY,31HMOV32H,85H读出小时LCALLREADMOVHOUR,31HMOV32H,83H读出分钟LCALLREADMOVMINTUE,31HMOV32H,81H读出秒LCALLREADMOVSECOND,31H分离缓存MOVR0,YEAR年分离,送显示缓存LCALLDIVIDEMOV7BH,R1MOV4BH,R1MOV7CH,R2MOV4CH,R2MOV78H,WEEKMOV48H,WEEKMOVR0,MONTH月分离,送显示缓存LCALLDIVIDEMOV79H,R1MOV49H,R1MOV7AH,R2MOV4AH,R2MOVR0,DAY日分离,送显示缓存LCALLDIVIDEMOV76H,R1MOV46H,R1MOV77H,R2MOV47H,R2MOVR0,HOUR小时分离,送显示缓存LCALLDIVIDEMOV74H,R1MOV44H,R1MOV75H,R2MOV45H,R2MOVR0,MINTUE分钟分离,送显示缓存LCALLDIVIDEMOV72H,R1MOV42H,R1MOV73H,R2MOV43H,R2MOVR0,SECOND秒分离,送显示缓存LCALLDIVIDEMOV70H,R1MOV40H,R1MOV71H,R2MOV41H,R2CLREALCALLTOUTOUSETBEALCALLDISPLAYLCALLGENGXIAN更新农历程序JNBP01,SETG111JNBF0,SSSSETBP04非闰月,则P04清零,指示灯亮LJMPMAIN1SETG111LJMPSETGSSSCLRP04闰月,则P04置位,指示灯不亮LJMPMAIN1温度TOUTOULCALLCHUSHILCALLRDTEMPMOVA,TEMPLANLA,11110000BMOVTEMPL,AMOVA,TEMPHANLA,00000111BORLA,TEMPLSWAPAMOV25H,AMOVA,25HMOVB,64HDIVABMOVA,BMOVB,0AHDIVABSWAPAORLA,BMOV10H,ARETCHUSHILCALLRESETMOVA,0CCHLCALLWRITE111MOVA,4EHLCALLWRITE111MOVA,CONFIG12LCALLWRITE111RETRDTEMPLCALLRESETMOVA,0CCHLCALLWRITE111MOVA,44HLCALLWRITE111LCALLDL1MSLCALLRESETMOVA,0CCHLCALLWRITE111MOVA,0BEHLCALLWRITE111LCALLERAD111MOVTEMPL,ALCALLERAD111MOVTEMPH,ARETRESETLASETBDATMOV52H,200LBCLRDATDJNZ52H,LBSETBDATMOV52H,30LCDJNZ52H,LCCLRCORLC,DATJCLBMOV58H,80LDORLC,DATJCLPDJNZ58H,LDSJMPLALPMOV52H,250LFDJNZ52H,LFRETWRITE111MOV53H,8W51HASETBDATMOV54H,8RRCACLRDATW52HADJNZ54H,W52HAMOVDAT,CMOV54H,30W53HADJNZ54H,W53HADJNZ53H,W51HASETBDATRETERAD111CLREAMOV58H,8RD1ACLRDATMOV54H,6NOPSETBDATRD2ADJNZ54H,RD2AMOVC,DATRRCAMOV55H,30RD3ADJNZ55H,RD3ADJNZ58H,RD1ASETBDATRET公历设置程序SETGSETBTR1SETBET1MOV32H,8EHMOV31H,00H允许写1302LCALLWRITEMOV32H,80HMOV31H,80H1302停止振荡LCALLWRITEGWAITLCALLDISPLAYJNBP01,GWAITSETG1LCALLDISPLAYJNBP01,SETG2JNBP02,GADDYEARJNBP03,JIANYEARAJMPSETG1GADDYEARMOVR7,66H年加一LCALLADD1MOV66H,ACJNEA,51H,GADDYEAR1MOV66H,00HAJMPGADDYEAR1JIANYEARMOVR7,66H年减一LCALLJIAN1MOV66H,ACJNEA,00H,GADDYEAR1MOV66H,51HGADDYEAR1MOV32H,8CH年值送人1302MOV31H,66HLCALLWRITEMOVR0,66HLCALLDIVIDE年分离送显示缓存MOV4BH,R1MOV7BH,R1MOV4CH,R2MOV7CH,R2WAITT1LCALLDISPLAYJNBP02,WAITT1JNBP03,WAITT1AJMPSETG1SETG2SETB0AH调月时闪标志GWAIT2LCALLDISPLAYJNBP01,GWAIT2SETG3LCALLDISPLAYJNBP01,SETG4JNBP02,GADDMONTHJNBP03,JIANMONTHAJMPSETG3GADDMONTHMOVR7,65H月加一LCALLADD1MOV65H,ACJNEA,13H,GADDMONTH1MOV65H,01HAJMPGADDMONTH1JIANMONTHMOVR7,65H月减一LCALLJIAN1MOV65H,ACJNEA,00H,GADDMONTH1MOV65H,12HGADDMONTH1MOV32H,88H月值送人1302MOV31H,65HLCALLWRITEMOVR0,65HLCALLDIVIDE月分离,送显示缓存MOV79H,R1MOV49H,R1MOV7AH,R2MOV4AH,R2WAITT2LCALLDISPLAYJNBP02,WAITT2JNBP03,WAITT2AJMPSETG3SETG4SETB0BH调日时闪标志GWAIT4LCALLDISPLAYJNBP01,GWAIT4SETG5LCALLDISPLAYJNBP01,SETG6JNBP02,GADDDAYJNBP03,JIANDAYAJMPSETG5GADDDAYMOVR7,63H日加一LCALLADD1MOV63H,ACJNEA,32H,GADDDAY1MOV63H,01HJIANDAYMOVR7,63H日减一LCALLJIAN1MOV63H,ACJNEA,00H,GADDDAY1MOV63H,31HGADDDAY1MOV32H,86H日值送人1302MOV31H,63HLCALLWRITEMOVR0,63HLCALLDIVIDE日分离,送显示缓存MOV76H,R1MOV46H,R1MOV77H,R2MOV47H,R2WAITT3LCALLDISPLAYJNBP02,WAITT3JNBP03,WAITT3AJMPSETG5SETG6SETB0CH调星期时闪标志GWAIT6LCALLDISPLAYJNBP01,GWAIT6SETG7LCALLDISPLAYJNBP01,SETG8JNBP02,GADDWEEKJNBP03,JIANWEEKAJMPSETG7GADDWEEKMOVR7,64H星期加一LCALLADD1MOV64H,ACJNEA,07H,GADDWEEK1MOV64H,00HAJMPGADDWEEK1JIANWEEKMOVR7,64H星期减一LCALLJIAN1MOV64H,ACJNEA,00H,GADDWEEK1MOV64H,06HGADDWEEK1MOV32H,8AHMOV31H,64H星期值送人1302LCALLWRITEMOVR0,64HLCALLDIVIDE星期值分离送显示缓存MOV48H,R1MOV78H,R1WAITT4LCALLDISPLAYJNBP02,WAITT4JNBP03,WAITT4AJMPSETG7SETG8SETB0DH调小时时闪标志GWAIT8LCALLDISPLAYJNBP01,GWAIT8SETG9LCALLDISPLAYJNBP01,SETG10JNBP02,GADDHOURJNBP03,JIANHOURAJMPSETG9GADDHOURMOVR7,62H小时加一LCALLADD1MOV62H,ACJNEA,24H,GADDHOUR1MOV62H,00HAJMPGADDHOUR1JIANHOURMOVR7,62H小时减一LCALLJIAN1MOV62H,ACJNEA,00H,GADDHOUR1MOV62H,23HGADDHOUR1MOV32H,84H小时值送人1302MOV31H,62HLCALLWRITEMOVR0,62HLCALLDIVIDE小时值分离送显示缓存MOV74H,R1MOV44H,R1MOV75H,R2MOV45H,R2WAITT5LCALLDISPLAYJNBP02,WAITT5JNBP03,WAITT5AJMPSETG9SETG10SETB0EH调分时候闪标志GWAIT10LCALLDISPLAYJNBP01,GWAIT10SETG11LCALLDISPLAYJNBP01,SETGOUTJNBP02,GADDMINTUEJNBP03,JIANMINTUEAJMPSETG11GADDMINTUEMOVR7,61H分钟加一LCALLADD1MOV61H,ACJNEA,60H,GADDMINTUE1MOV61H,00HAJMPGADDMINTUE1JIANMINTUEMOVR7,61H分钟减一LCALLJIAN1MOV61H,ACJNEA,00H,GADDMINTUE1MOV61H,59HGADDMINTUE1MOV32H,82H分钟值送人1302MOV31H,61HLCALLWRITEMOVR0,61HLCALLDIVIDE分钟值分离送显示缓存MOV72H,R1MOV42H,R1MOV73H,R2MOV43H,R2WAITT6LCALLDISPLAYJNBP02,WAITT6JNBP03,WAITT6AJMPSETG11SETGOUTLCALLDISPLAYJNBP01,SETGOUTLCALLGENGXIANMOV32H,80HMOV31H,00H1302晶振开始振荡LCALLWRITEMOV32H,8EHMOV31H,80H禁止写入1302LCALLWRITECLR08HCLR09HCLR0AHCLR0BHCLR0CHCLR0DHCLR0EHCLR0FHCLRET1关闪中断CLRTR1LJMPMAIN1闪动调时程序INTT1PUSHACCPUSHPSWGFLASHCPL0FHJB0FH,GFLASH1MOV7CH,4CH全部显示MOV7BH,4BHMOV7AH,4AHMOV79H,49HMOV78H,48HMOV77H,47HMOV76H,46HMOV75H,45HMOV74H,44HMOV73H,43HMOV72H,42HMOV71H,41HMOV70H,40HGFLASHOUTPOPPSWPOPACCRETIGFLASH1JB0AH,GFLASH2调年闪MOV7CH,0FHMOV7BH,0FHAJMPGFLASHOUTGFLASH2JB0BH,GFLASH3调月闪MOV7AH,0FHMOV79H,0FHAJMPGFLASHOUTGFLASH3JB0CH,GFLASH4调日闪MOV77H,0FHMOV76H,0FHAJMPGFLASHOUTGFLASH4JB0DH,GFLASH5调星期闪MOV78H,0FHAJMPGFLASHOUTGFLASH5JB0EH,GFLASH6调小时闪MOV75H,0FHMOV74H,0FHAJMPGFLASHOUTGFLASH6MOV73H,0FH调分钟闪MOV72H,0FHAJMPGFLASHOUT加一程序ADD1MOVA,R7ADDA,1DAARET减一程序JIAN1MOVA,R7DECACJNEA,4FH,KK1MOVA,49HKK1CJNEA,3FH,KK2MOVA,39HKK2CJNEA,2FH,KK3MOVA,29HKK3CJNEA,1FH,KK4MOVA,19HKK4CJNEA,0FH,KK5MOVA,09HKK5RET分离程序DIVIDEMOVA,R0ANLA,0FHMOVR1,AMOVA,R0SWAPAANLA,0FHMOVR2,ARET写1302程序WRITECLRSCLKNOPSETBRSTNOPMOVA,32HMOVR4,8WRITE1RRCA送地址给1302NOPNOPCLRSCLKNOPNOPNOPMOVIO,CNOPNOPNOPSETBSCLKNOPNOPDJNZR4,WRITE1CLRSCLKNOPMOVA,31HMOVR4,8WRITE2RRCANOP送数据给1302CLRSCLKNOPNOPMOVIO,CNOPNOPNOPSETBSCLKNOPNOPDJNZR4,WRITE2CLRRSTRET读1302程序READCLRSCLKNOPNOPSETBRSTNOPMOVA,32HMOVR4,8READ1RRCA送地址给1302NOPMOVIO,CNOPNOPNOPSETBSCLKNOPNOPNOPCLRSCLKNOPNOPDJNZR4,READ1MOVR4,8READ2CLRSCLKNOP从1302中读出数据NOPNOPMOVC,IONOPNOPNOPNOPNOPRRCANOPNOPNOPNOPSETBSCLKNOPDJNZR4,READ2MOV31H,ACLRRSTRETBCD码转换为10进制程序BCD_10MOVA,R0ANLA,0FHMOVR1,A高位10,加低位MOVA,R0SWAPAANLA,0FHMOVB,10MULABADDA,R1MOVR0,ARET查一年数据程序CHECKMONTHLCALLBCD_10农历和公历为同一年,NEW此时R2中的值为FFH时,R3有值,否则为0NEWNOPM1MOVA,R2R2减一月天数CLRCSUBBA,29MOVR1,AMOVA,R6JBACC6,SM11MOVA,R2CLRCSUBBA,30MOVR1,ASM11JCSM12MOVA,R1R2减1月天数,够减MOVR2,A转二月AJMPM2SM12CJNER3,00H,M13R2减1月天数LJMPY1不够减,判R3为0否M13MOVA,R2不为0,R3加到R2中ADDA,R3再让一月减MOVR2,A还不够,则转Y1MOVR3,00HAJMPM1M2CLRCR2减一月天数,够减MOVA,R2转三月SUBBA,29MOVR1,AMOVA,R6JBACC5,M21MOVA,R2CLRCSUBBA,30MOVR1,AM21JCM22MOVA,R1R2减2月天数,够减MOVR2,AAJMPMM2M22CJNER3,00H,M23R2减2月天数LJMPY2不够减,判,R3为0否M23MOVA,R2不为0,R3加到R2中ADDA,R3再让二月减MOVR2,A还不够,则转Y2MOVR3,00HAJMPM2MM2LCALLCHECKRE查2月,如果不为闰月CJNEA,02H,M3转3月RM2MOVA,R4ANLA,0FHJNZRM21MOVA,R2CLRCSUBBA,30MOVR1,AAJMPRM22RM21MOVA,R2CLRCSUBBA,29MOVR1,ARM22JCRM23MOVA,R1R2减闰2月天数,够减MOVR2,A转3月AJMPM3RM23CJNER3,00H,RM24R2减闰2月天数LJMPRY2不够减,判,R3为0否RM24MOVA,R2不为0,R3加到R2中ADDA,R3再让闰2月减MOVR3,00H还不够,则转RY2SUBBA,30MOVR1,AM121CJNER3,00H,M122R2减12月天数LJMPY12不够减,判,R3为0否M122MOVA,R2不为0,R3加到R2中ADDA,R3再让12月减MOVR2,A还不够,则转Y12MOVR3,00HLJMPM12Y1MOVA,R2MOVR0,AR2中为日的值LCALLD_BCDMOV56H,AMOV57H,01HCLRF0非闰月LJMPS_PLAYY2CJNER2,00H,Y21MOVA,R6R2中为0,则为前一个月MOV56H,29H的的最后一天JBACC6,Y22MOV56H,30HY22MOV57H,01HCLRF0LJMPS_PLAYY21MOVA,R2MOVR0,AR2中为日的值LCALLD_BCDMOV56H,AMOV57H,02HCLRF0LJMPS_PLAYRY2CJNER2,00H,RY21MOV56H,29HR2中为0,则为前一个月MOVA,R6的的最后一天JBACC5,RY22MOV56H,30HRY22MOV57H,02HCLRF0LJMPS_PLAYRY21MOVA,R2R2中为日的值MOVR0,ALCALLD_BCDMOV56H,AMOV57H,02HSETBF0闰月LJMPS_PLAYY3CJNER2,00H,Y31LCALLCHECKRE查前一个月是否为闰月CJNEA,02H,Y32MOV56H,29H前一个月是闰月MOVA,R4ANLA,0FHR2中为0,则为前一个月JNZY33的的最后一天MOV56H,30HMOV57H,02HSETBF0LJMPS_PLAYY33MOV57H,02HSETBF0LJMPS_PLAYY32MOV56H,29H前一个月不是闰月MOVA,R6JBACC5,Y34MOV56H,30HY34MOV57H,02HCLRF0LJMPS_PLAYY31MOVA,R2MOVR0,AR2中为日的值LCALLD_BCDMOV56H,AMOV57H,03HCLRF0LJMPS_PLAYRY3CJNER2,00H,RY31MOV56H,29HMOVA,R6JBACC4,RY32R2中为0,则为前一个月MOV56H,30H的的最后一天RY32MOV57H,03HCLRF0LJMPS_PLAYRY31MOVA,R2R2中为日的值MOVR0,ALCALLD_BCDMOV56H,AMOV57H,03HSETBF0LJMPS_PLAYY4CJNER2,00H,Y41LCALLCHECKRE查前一个月是否为闰月CJNEA,03H,Y42MOV56H,29H前一个月是闰月MOVA,R4R2中为0,则为前一个月ANLA,0FH的最后一天JNZY43MOV56H,30HMOV57H,03HSETBF0LJMPS_PLAYY43MOV57H,03HSETBF0LJMPS_PLAYY42MOV56H,29H前一个月不是闰月MOVA,R6JBACC4,Y44MOV56H,30HY44MOV57H,03HCLRF0LJMPS_PLAYY41MOVA,R2R2中为日的值MOVR0,ALCALLD_BCDMOV56H,AMOV57H,04HCLRF0LJMPS_PLAYRY4CJNER2,00H,RY41MOV56H,29HR2中为0,则为前一个月MOVA,R6的的最后一天JBACC2,RY42MOV56H,30HRY42MOV57H,04HCLRF0LJMPS_PLAYRY41MOVA,R2R2中为日的值MOVR0,ALCALLD_BCDMOV56H,AMOV57H,04HSETBF0LJMPS_PLAYY5CJNER2,00H,Y51LCALLCHECKRE查前一个月是否为闰月CJNEA,04H,Y52MOV56H,29H前一个月是闰月MOVA,R4R2中为0,则为前一个月ANLA,0FH的最后一天JNZY53MOV56H,30HMOV57H,04HSETBF0LJMPS_PLAYY53MOV57H,04HSETBF0LJMPS_PLAYY52MOV56H,29H前一个月不是闰月MOVA,R6JBACC2,Y54MOV56H,30HY54MOV57H,04HCLRF0LJMPS_PLAYY51MOVA,R2R2中为日的值MOVR0,ALCALLD_BCDMOV56H,AMOV57H,05HCLRF0LJMPS_PLAYRY5CJNER2,00H,RY51MOV56H,29HR2中为0,则为前一个月MOVA,R6的最后一天JBACC1,RY52MOV56H,30HRY52MOV57H,05HCLRF0LJMPS_PLAYRY51MOVA,R2R2中为日的值MOVR0,ALCALLD_BCDMOV56H,AMOV57H,05HSETBF0LJMPS_PLAYY6CJNER2,00H,Y61LCALLCHECKRE查前一个月是否为闰月CJNEA,05H,Y62MOV56H,29H前一个月是闰月MOVA,R4R2中为0,则为前一个月ANLA,0FH的最后一天JNZY63MOV56H,30HMOV57H,05HSETBF0LJMPS_PLAYY63MOV57H,05HSETBF0LJMPS_PLAYY62MOV56H,29H前一个月不是闰月MOVA,R6JBACC1,Y64MOV56H,30HY64MOV57H,05HCLRF0LJMPS_PLAYY61MOVA,R2R2中为日的值MOVR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 动物激素考试题及答案
- 2025年河北省中考语文真题(含答案)
- 急性肠梗阻考试题及答案
- 执业药师z中药考试试题及答案
- 北京联通企业知识培训课件
- 课文燕子面试题及答案
- 房间火灾测试题及答案
- 诊所医保考试题及答案
- 夏季防汛考试题及答案
- 北京知识产权培训课程课件
- 养老院电动车管理制度
- 2026届高考语文复习:辨析并修改病句
- 2025年区域卫生规划与医疗卫生资源优化配置的研究报告
- 南充市“十四五”现代物流产业发展规划
- 义务教育《艺术课程标准》2022年修订版(原版)
- 江苏省无锡市江阴市六校2024-2025学年高一下学期4月期中联考试题 物理 含答案
- 医保人员管理制度
- 电话卡租借合同协议
- 2025年中医经典知识竞赛考试题库及答案
- 2025汽水管道应力计算相关软件使用导则
- 退役军人创业就业园运营方案
评论
0/150
提交评论