万年历单片机课程设计报告_第1页
万年历单片机课程设计报告_第2页
万年历单片机课程设计报告_第3页
万年历单片机课程设计报告_第4页
万年历单片机课程设计报告_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计报告1任务和设计要求首先要学会安装软件,要熟悉会使用。基于AT89S52单片机的电子万年历枭用高精度12MHz晶振,满足如下技术指标工 (1)同时显示阳历年、月、日.星期、时、分、秒和阴历月、日0(2)具有较高的精确度,一年的误差为1s以下“ (3具有时间校准等功能.2系统设计系统框图按照系统设计的要求和功能,将系统分为主控模块,按键扫描模块、LED显示模块、电 源电路,复位电路、晶振电路、驱动电路几个模块,系统框图如图71所示。主控模块果用 AT89S52单片机,按铺模块只用了两个按键,用于调整时间,显示模块采用七段共阳LED 数码管.图7-1基于AT89S52单片机的电子万年历系统

2、框图3硬件设计3.1 电路原理图1且孑山06CSCWC UPR13巷EEEE EEEEn-jljl£ m 心 FR.H*U sf£ -=.ttj B-W-BE :L 2H-MLAXTAL1Pfl.O/ADOP0.1/ADIPO.2/AD2XTAL2PO.3/AD3HX4fAD4KX5/AD5P0.6/AD6RSTPO.7/AD7P2.G/A8P2.1/A9P2,2/AIOP$ENP23AliALEP2.47AI2EAP2,5/AI3P2.6/AI4P27/AI5PI.Q/T2P3.O/RXDPL1/T2EXP3J/TXDPl.2P3.2/INT0PL3P13/INT1PL4

3、P3.4rroPL5P3.5/TIPL6P3.&WRPL7P3J/W74LSI64CLR>CLK74LSI646114IIII74LS164ABQD 俳 S 伊 QFJCLR QA > CIK QB八国证FG DP_ 12M6群第幼7-2基于AT89S52单片机的电子万年历电路原理图课程设计报告3.2 主要单元电路基于AT89s52单片机的电子万年历硬件电路图如图7-2所示,系统由AT89s52单片 机,按键扫描电路、显示电路及显示驱动组成.显示部分采用普通的七段共阳LED数码管显示.采用动态扫描以减少硬件电路,采用 19个数码管分3排同时扫描,第一排8个数码管分别为千年,

4、百年、十年,年,十月,月,十 日日第二排6个数码管分别为十时、时,十分、分、十秒,秒*第三棒5个数码曾分别为星 期、阳历十月、月、十日、日电数码管位码采用串行口编出,用3片74LS164移位寄存器来驱 动3排数码管,数码管段码采用2片74LSO7来驱动,这样扫描一次只需7ms.3.3 元件清单*7-1基于AT89ss2单片机的电子万年历元件清单元件名称型号数/个用途元件名称型号数/个用途单片机AT89s52I控制核心数码管4位共阳4显示电路集成块74LS1643移位需存群数码管2位共用1显示电路集成块74LS072驱动数码管1位共阳1显示电路晶振12MHe1晶振电路电阻ikn1上拉电踣电容30

5、pF2晶振电路电阻iokn1复位电路电解电容20MF/10V1豆位电躇电源Vcc+ 5V/1A1提供+ 5V电源按键3按键电路4软件设计4.1 程序流程图时间调整使用两个调整按键,一个作为控制位移,另一个作为“加】仲调整,分别定义为 控制按键,力n 1按键.在调整时间的过程中需要调整的位与其他位应该区别开来,所以增 加了闪燥功能.主程序流程图如图7-3所示.4.2 程序清单TIME_WEEK DATA 52HTIME_YEAR DATA 5DHTIME_MONTH DATA 5EHTIME_DATA DATA 5FHYEARH DATA 36HYEAR DATA 35HMONTH DATA 3

6、4HDAY DATA 33HHOUR DATA 32HMINUTE DATA 31HSEC DATA 30HAAA BIT P3.0BBB BIT P3.1AA BIT P3.3BB BIT P3.4CC BIT P3.5BL BIT P3.2BZ1 BIT 21H.0TIMES DATA 20HCOM DATA P1ORG 0000HLJMP STARTORG 0003HRETIORG000BHLJMP INTT0ORG0013HRETIORG001BHRETIORG0023HRETISTART:MOVR0,#30HMOVR7,#9CLEETE:MOVR0,#00HINCR0DJNZR7,C

7、LEETEMOVTIMES,#00HMOVTMOD,#01HMOVTL0,#0C0HMOVTH0,#63HMOVSEC,#0MOVMINUTE,#0HMOVHOUR,#0HMOVDAY,#01HMOVMONTH,#01HMOVYEAR,#01HMOVYEARH,#20HSETBEASETBET0SETBTR0MOVR4,#19START1:12CALLDISPJNBAA,SETMM1JMPSTART1SETMM1:CALL SETMMJMP START1SETMM:CALLDISPCALLDISPJB AA,SETMM0SETMM2:JNB AA,SETMM3CLR ET0CLR TR0MOV

8、SEC,#0MOVTIMES,#01HMOVR0,#MINUTESETMM4:NOPINC22:CALLOFFLCALLINC11CALL DISPJB AA,INC22CALL DISPJB AA,INC22INC R0MOV A,TIMESRL AMOV TIMES,AJNB TIMES. 5, SETMM4SETMM12:JNB AA , SETMM11SETMM0:SETBTR0SETBET0RETSETMM11:CALL DISPJMP SETMM12SETMM3:CALL DISPJMP SETMM2INC11:MOV R3,#40INC111:MOV A,R0JB BB,INC1

9、7ADD A,#1DA ACALL INC000INC13:JNB BB , INC14INC17:MOV R0,ACALL DISPDJNZ R3,INC111RETINC14:CALLDISPJMPINC13OFFL:MOV22H,R0MOVR6,#10OFF1:MOVR7,#10OFF2:MOV R0, # 0AAHCALL DISPDJNZ R7 , OFF2DJNZ R6 , OFF1MOV R0,22HRETINC000:JBTIMES.0, INC001JBTIMES.1, INC002JBTIMES.2, INC003JBTIMES. 3, INC004JBTIMES. 4,

10、INC005JMP INCOUTINC005:CJNE A, #99H, INCOUTMOVA,#00HJMPINCOUTINC004:CJNE A, # 13H, INCOUTMOV A,#01HJMPINCOUT课程设计报告INC003:CJNE A,# 32H ,INCOUTMOVA,#01HJMPINCOUTINC002:CJNE A,#24H,INCOUTMOVA,#00HJMPINCOUTINC001:CJNE A,# 60H , INCOUTMOV A,#00HINCOUT:RETINTT0:PUSHACCPUSHPSWORL TL0,#0C0HMOVTH0,#63HDJNZ R

11、4 , CLKE111JMPLOOP11CLKE111:JMPiiCLKE课程设计报告LOOP11:MOV R4,#19HMOVA,SECADDA,#1DA AMOVSEC,ACJNE A, #60H , CLKE99MOVSEC,#0MOVA,MINUTEADDA,#1DA AMOV MINUTE,ACLK0:CJNE A, # 60H, CLKEMOV MINUTE,#0MOV A,HOURADDA,#1DA AMOVHOUR,ACJNE A, # 24H, CLKEMOV HOUR,#0MOVA,DAYADDA,#1DA AMOVDAY,AMOVA,MONTHINCMOVC A, A +

12、 PCSJMPCLK1DB31H,28H,31HDB30H,31H,30HDB31H,31H,30HDB00H,00H,00HDB00H,00H,00HDB31H,30H,31H40CLK1:CLR CSUBB A,DAYJNCCLKEMOVA,MONTHCJNE A,#2,CLK3MOVA,YEARANL A,#13HJNBACC.4,CLK2ADD A,#2CLK2:ANL A,#3JNZ CLK3MOV A,DAYXRL A,#29HJZCLKECLK3:MOV DAY,#1MOVA,MONTHADDA,#1DA AMOVMONTH,ACJNE A,#13H,CLKEMOVMONTH,#

13、1MOVA,YEARADDA,#1DA AMOVYEAR,ACLKE99:CALLCONVERTCLKE:POPPSWPOPACCRETIDISP:PUSHPSWPUSHACCMOV23H,R0DISP99:MOVR1,#40HMOVR0,#30HMOVR2,#9DISP1:MOV A,R0ANL A,#0FHMOV R1,AMOV A,R0SWAP AANL A,#0FHINC R1MOV R1,ADJNZ R2,DISP2CALL DISPLAYMOV R0,23HPOP ACCPOP PSWRETDISP2:INC R1INC R0JMP DISP1DISPLAY:MOV R1,#40H

14、MOV R5,#19SETB AAAPLAY:SETB BBBNOPCLR BBBCLR AAAMOV A,R1MOV DPTR,#TABMOVC A,A+DPTRMOV COM,ACALL DL1MSMOV COM,#0FFHDJNZ R5,PLAY1CLR BBBSETB AAARETPLAY1:INC R1JMP PLAYTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0A3H,8EH,0ABHDL1MS:MOV 25H,R7MOV 24H,R6MOV R7,#20DS1:MOV R6,#10DJNZ R6,$DJNZ R

15、7,DS1MOV R7,25HMOV R6,24HRETSTART_YEAR EQU 01CONVERT_YEAR DATA 5CHCONVERT_MONTH DATA 38HCONVERT_DATE DATA 37HTEMP_BYTE1 DATA 57HTEMP_BYTE2 DATA 58HTEMP_BYTE3 DATA 59HTEMP_BYTE4 DATA 5AHTEMP_BYTE5 DATA 5BHCONVERT:MOV A, YEARMOV TIME_YEAR,AMOV A,MONTHMOV TIME_MONTH,AMOV A,DAYMOV TIME_DATA,AMOV A,TIME_

16、YEARMOV B,#16DIV ABMOV CONVERT_YEAR,BMOV B,#10MUL ABADD A,CONVERT_YEARMOV CONVERT_YEAR,AMOV A,TIME_MONTHJNB ACC.4,CON_02CLR ACC.4ADD A,#10CON_02:MOV CONVERT_MONTH,AMOV A,TIME_DATAMOV B,#16DIV ABMOV CONVERT_DATE,BMOV B,#10MUL ABADD A,CONVERT_DATEMOV CONVERT_DATE,AMOV DPTR,#MONTH_DATAMOV A,CONVERT_YEA

17、RCON_06:CLR CSUBB A,#START_YEARMOV B,#3MUL ABADD A,DPLMOV DPL,AMOV A,BADDC A,DPHMOV DPH,AMOV A, #2MOVC A, A+DPTRCLR ACC.7MOV B, #32DIV ABMOV TEMP_BYTE1,AMOV TEMP_BYTE2,BMOV TEMP_BYTE3,#0MOV A,CONVERT_MONTHCJNE A,#10,CON_08CON_08:JC CON_09MOV TEMP_BYTE3,#1CON_09:MOV A,CONVERT_YEARANL A,#03HJNZ CON_10

18、MOV A,CONVERT_MONTHLCALL GET_RUN_DAYS_LOWSJMP CON12CON_10:MOV A,CONVERT_MONTHLCALL GET_DAYS_LOWCON_12:MOV B,CONVERT_DATEDEC BADD A,BMOV TEMP_BYTE4,AJNC CON_14INC TEMP_BYTE3CON_14:MOV A,TEMP_BYTE1LCALL GET_DAYS_LOWDEC AADD A,TEMP_BYTE2MOV TEMP_BYTE5,AMOV A,CONVERT_MONTHCJNE A,TEMP_BYTE1,CON_20MOV A,C

19、ONVERT_DATECJNE A,TEMP_BYTE2,CON_20CON_20:JC CON_22LJMP CON_60CON_22:MOV A,CONVERT_YEARJNZ CON_24MOV A,#100CON_24:DEC AMOV CONVERT_YEAR,AMOV A,DPLCLR CSUBB A,#3MOV DPL,AJNC CON_26DEC DPHCON_26:MOV A,TEMP_BYTE5CLR CSUBB A,TEMP_BYTE4MOV TEMP_BYTE3,AMOV CONVERT_MONTH,#12CLR F0CLR AMOVC A,A+DPTRANL A,#0

20、F0HSWAP A;MOV TEMP_BYTE4,AJZ CON_30MOV A, #2MOVC A , A+DPTRMOV C, ACC.7MOV A, #1MOVC A, A+DPTRRLC ASJMP CON_34CON_30:MOV A, #1MOVC A, A+DPTRCON_34:MOV TEMP_BYTE5, ACON_40:MOV A, TEMP_BYTE5RRC AMOV TEMP_BYTE5, AJC CON_42MOV B, #29SJMP CON_44CON_42:MOV B, #30CON_44:MOV A, TEMP_BYTE3CLR CSUBB A, BJZ CO

21、N_46JNC CON_50CPL AINC ACON_46: INC AMOV B, #10DIV ABSWAP AORL A, BMOV CONVERT_DATE, AMOV A, CONVERT_MONTHMOV B, #10DIV ABSWAP AORL A, BMOV CONVERT_MONTH, AMOV A, CONVERT_YEARMOV B, #10DIV ABSWAP AORL A, BMOV CONVERT_YEAR, ACALL WEEKRETCON_50:MOV TEMP_BYTE3, AJB F0, CON_52DEC CONVERT_MONTHCON_52:MOV

22、 A, CONVERT_MONTHCJNE A, TEMP_BYTE4, CON_54CPL F0CON_54:SJMP CON_40CON_60:MOV A, TEMP_BYTE4CLR CSUBB A, TEMP_BYTE5MOV TEMP_BYTE4, AJNC CON_62DEC TEMP_BYTE3CON_62:MOV CONVERT_MONTH, #1CLR AMOVC A, A+DPTRMOV TEMP_BYTE5, AANL A, #0F0HSWAP AXCH A, TEMP_BYTE5CLR F0ANL A, #0FHMOV TEMP_BYTE1, AMOV A, #1MOV

23、C A, A+DPTRMOV TEMP_BYTE2, AANL A, #0F0HORL A, TEMP_BYTE1SWAP AMOV TEMP_BYTE1, AMOV A, #2MOVC A, A+DPTRMOV C, ACC.7MOV A, TEMP_BYTE2ANL A, # 0FHSWAP AMOV ACC. 3, CMOV TEMP_BYTE2, ACON_70:MOV A, TEMP_BYTE2RLC AMOV TEMP_BYTE2, AMOV A, TEMP_BYTE1RLC AMOV TEMP_BYTE1, AJC CON_72MOV B, #29SJMP CON_74CON_7

24、2:MOV B, #30CON_74:MOV A, TEMP_BYTE4CLR CSUBB A,BJNC CON_78MOV B, AMOV A, TEMP_BYTE3JZ CON_76DEC TEMP_BYTE3MOV TEMP_BYTE4, BSJMP CON_80CON_76:MOV A, TEMP_BYTE4LJMP CON_46CON_78:MOV TEMP_BYTE4, ACON_80:MOV A, CONVERT_MONTHCJNE A, TEMP_BYTE5, CON_82CPL F0JNB F0, CON_82SJMP CON_70CON_82:INC CONVERT_MON

25、THSJMP CON_70GET_DAYS_LOW:MOVC A, A+PCRETDB 0,31,59,90,120,151,181,212,243,17,48,78GET_RUN_DAYS_LOW:MOVC A, A+PCRETDB 0,31,60,91,121,152,182,213,244,18,49,79MONTH_DATA:DB 04DH,04AH,0B8H;2001DB 00DH,04AH,04CH;2002DB 00DH,0A5H,041H;2003DB 025H,0AAH,0B6H;2004DB 005H,06AH,049H;2005DB 07AH,0ADH,0BDH;2006

26、DB 002H,05DH,052H;2007DB 009H,02DH,047H;2008DB 05CH,095H,0BAH;2009DB 00AH,095H,04EH;2010DB 00BH,04AH,043H;2011DB 04BH,055H,037H;2012DB 00AH,0D5H,04AH;2013DB 095H,05AH,0BFH;2014DB 004H,0BAH,053H;2015DB 00AH,05BH,048H;2016DB 065H,02BH,0BCH;2017DB 005H,02BH,050H;2018DB 00AH,093H,045H;2019DB 047H,04AH,0

27、B9H;2020DB 006H,0AAH,04CH;2021DB 00AH,0D5H,041H;2022DB 024H,0DAH,0B6H;2023DB 004H,0B6H,04AH;2024DB 069H,057H,03DH;2025DB 00AH,04EH,051H;2026DB 00DH,026H,046H;2027DB 05EH,093H,03AH;2028DB 00DH,053H,04DH;2029DB 005H,0AAH,043H;2030DB 036H,0B5H,037H;2031DB 009H,06DH,04BH;2032DB 0B4H,0AEH,0BFH;2033DB 004

28、H,0ADH,053H;2034DB 00AH,04DH,048H;2035DB 06DH,025H,0BCH;2036DB 00DH,025H,04FH;2037DB 00DH,052H,044H;2038DB 05DH,0AAH,038H;2039DB 00BH,05AH,04CH;2040DB 005H,06DH,041H;2041DB 024H,0ADH,0B6H;2042DB 004H,09BH,04AH;2043DB 07AH,04BH,0BEH;2044DB 00AH,04BH,051H;2045DB 00AH,0A5H,046H;2046DB 05BH,052H,0BAH;20

29、47DB 006H,0D2H,04EH;2048DB 00AH,0DAH,042H;2049DB 035H,05BH,037H;2050DB 009H,037H,04BH;2051DB 084H,097H,0C1H;2052DB 004H,097H,053H;2053DB 006H,04BH,048H;2054DB 066H,0A5H,03CH;2055DB 00EH,0A5H,04FH;2056DB 006H,0B2H,044H;2057DB 04AH,0B6H,038H;2058DB 00AH,0AEH,04CH;2059DB 009H,02EH,042H;2060DB 03CH,097H

30、,035H;2061DB 00CH,096H,049H;2062DB 07DH,04AH,0BDH;2063DB 00DH,04AH,051H;2064DB 00DH,0A5H,045H;2065DB 055H,0AAH,0BAH;2066DB 005H,06AH,04EH;2067DB 00AH,06DH,043H;2068DB 045H,02EH,0B7H;2069DB 005H ,02DH, 04BH; 2070DB 08AH, 095H, 0BFH; 2071DB 00AH, 095H, 053H; 2072DB 00BH, 04AH, 047H; 2073DB 06BH, 055H,

31、 03BH; 2074DB 00AH, 0D5H, 04FH; 2075DB 005H, 05AH, 045H; 2076DB 04AH, 05DH, 038H; 2077DB 00AH, 05BH, 04CH; 2078DB 005H, 02BH, 042H; 2079DB 03AH, 093H, 0B6H; 2080DB 006H, 093H, 049H; 2081DB 077H, 029H, 0BDH; 2082DB 006H, 0AAH, 051H; 2083DB 00AH, 0D5H, 046H; 2084DB 054H, 0DAH, 0BAH; 2085DB 004H, 0B6H,

32、 04EH; 2086DB 00AH, 057H, 043H; 2087DB 045H, 027H, 038H; 2088DB 00DH, 026H, 04AH; 2089DB 08EH, 093H, 03EH; 2090DB 00DH, 052H, 052H; 2091DB 00DH, 0AAH, 047H; 2092DB 066H, 0B5H, 03BH; 2093DB 005H, 06DH, 04FH; 2094DB 004H, 0AEH, 045H; 2095DB 04AH, 04EH, 0B9H; 2096DB 00AH, 04DH, 04CH; 2097DB 00DH, 015H,

33、 041H; 2098DB 02DH, 092H, 0B5H; 2090DB 00DH, 053H, 049H; 2100TIME_WEEK1 DATA 52HWEEK:MOV A, TIME_YEARMOV B, #16DIV ABMOV TEMP_BYTE1, BMOV B, #10MUL ABADD A, TEMP_BYTE1MOV TEMP_BYTE1, AMOV A, TIME_MONTHJB ACC.7, GETW02MOV A, #100ADD A, TEMP_BYTE1MOV TEMP_BYTE1, AMOV A, TIME_MONTHCLR ACC.7GETW02: JNB ACC.4, GETW04ADD A , #10CLR ACC.4GETW04: MOV TEMP_BYTE2,AMOV A, TIME_DATAMOV B, #16DIV ABMOV TEMP_BYTE3, BMOV B, #10MUL ABADD A, TEMP_BYTE3MOV TEMP_BYTE3, AMOV A ,TEMP_BYTE1ANL A, #03HJNZ GETW10MOV A, TEMP_BYTE2CJNE A, #3,GETW06GETW

温馨提示

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

评论

0/150

提交评论