微机原理课程设计报告--万年历.doc_第1页
微机原理课程设计报告--万年历.doc_第2页
微机原理课程设计报告--万年历.doc_第3页
微机原理课程设计报告--万年历.doc_第4页
微机原理课程设计报告--万年历.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

微机原理课程设计报告指导教师:黄静、陈秋妹 班级:08通信(2)班学号:E08680209姓名:陈汉伟1、 设计内容及要求1、具有年、月、日、星期、时、分、秒功能2、具备年、月、日、星期、时、分、秒校准功能3、具有闹铃设定、定时蜂鸣功能创新点:利用键盘键入修改的数二、设计原理系统方案1、单片机芯片选择:采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容。2、显示模块选择:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。所以采用了LED数码管作为显示。3、时间产生:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本。80c51主控芯片LED数码管显示模块系统框图蜂鸣系统键盘模块3、 系统的硬件设计及实现硬件电路图工作原理及主要芯片的性能 本项设计利用80C51芯片定时器产生50ms的定时中断,再利用程序进行1秒的定时。程序的初始化内容初始化设置为2011年01月01号星期一00时00分00秒,显示均采用LED数码管。通过时间设置键可以修改每一位的数值,数值根据键盘上的数值不同而不同。每按一次时间设定键向修改位后推移一位,直至每一位修改完成后,返回主显示程序。若按下闹铃设定键,则可以设定闹铃定时。当程序检测到时间到达设定时间,则发出蜂鸣。4、 系统的软件设计软件流程框图开始初始化读、写日期、时间主程序分离日期时间显示值显示子程序日期、时间修改子程序结束定时闹铃子程序按键扫描程序程序清单YEAR_H EQU 30HYEAR_L EQU 31HMONTH EQU 32HDAY EQU 33HWEEK EQU 34HHOUR EQU 35HMINUTE EQU 36HSECOND EQU 37HLED_YEA01 EQU 38HLED_YEA02 EQU 39HLED_YEA03 EQU 40HLED_YEA04 EQU 41HLED_MON01 EQU 42HLED_MON02 EQU 43HLED_DAY01 EQU 44HLED_DAY02 EQU 45HLED_WEE EQU 46HLED_HOU01 EQU 47HLED_HOU02 EQU 48HLED_MIN01 EQU 49HLED_MIN02 EQU 50HLED_SEC01 EQU 51HLED_SEC02 EQU 52HALM_HOU EQU 53HALM_MIN EQU 54HLED_A_H01 EQU 55HLED_A_H02 EQU 56HLED_A_M01 EQU 57HLED_A_M02 EQU 58HALM BIT P3.7 ORG 00H LJMP START ORG 03H LJMP INT_E0 ORG 0BH LJMP INT_T0START: MOV YEAR_L,#11 ;设置初值 MOV YEAR_H,#20 MOV MONTH,#01 MOV DAY,#01 MOV WEEK,#01 MOV HOUR,#00 MOV MINUTE,#00 MOV SECOND,#00 MOV ALM_HOU,#00 MOV ALM_MIN,#01 MOV R0,#00H MOV R1,#00H MOV R2,#01H MOV R3,#00H CLR ALM MOV TMOD,#01H ;初始化计数器 MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA SETB TR0 MAIN: LCALL DISPLAY LCALL KEYBOARDWHEN: CJNE R2,#01,MAIN MOV A,HOUR CJNE A,ALM_HOU,NO_ALM MOV A,MINUTE CJNE A,ALM_MIN,NO_ALM CPL ALM CJNE R7,#60,NO_ALM CLR ALM DEC R2NO_ALM: JMP MAINKEYBOARD: CLR P1.0P_TIME: JB P1.7,P_ALM LCALL DELAY JB P1.7,P_ALMNEXT: JNB P1.7,NEXT JMP SET_YEA04P_ALM: JB P1.6,BAC LCALL DELAY JB P1.6,BACNEXT01: JNB P1.6,NEXT01 JMP SET_ALM_HOU02BAC: RETSET_ALM_HOU02: LCALL ALM_DIS ;闹铃小时位设定 JB P1.6,STRT01 LCALL DELAY JB P1.6,STRT01NX00: JNB P1.6,NX00 JMP SET_ALM_HOU01STRT01: SETB P1.0 CLR P1.1A_NUM00: LCALL ALM_DIS JB P1.7,A_NUM01 LCALL DELAY JB P1.7,A_NUM01NX01: JNB P1.7,NX01 MOV R1,#00 JMP OK01A_NUM01: LCALL ALM_DIS JB P1.6,A_NUM02 LCALL DELAY JB P1.6,A_NUM02NX02: JNB P1.6,NX02 MOV R1,#01 JMP OK01A_NUM02: LCALL ALM_DIS JB P1.5,A_NUM03 LCALL DELAY JB P1.5,A_NUM03NX03: JNB P1.5,NX03 MOV R1,#02 JMP OK01A_NUM03: LCALL ALM_DIS JB P1.4,LIN_C00 LCALL DELAY JB P1.4,LIN_C00NX04: JNB P1.4,NX04 MOV R1,#03 JMP OK01LIN_C00: SETB P1.1 CLR P1.2A_NUM04: LCALL ALM_DIS JB P1.7,A_NUM05 LCALL DELAY JB P1.7,A_NUM05NX05: JNB P1.7,NX05 MOV R1,#04 JMP OK01A_NUM05: LCALL ALM_DIS JB P1.6,A_NUM06 LCALL DELAY JB P1.6,A_NUM06NX5: JNB P1.6,NX5 MOV R1,#05 JMP OK01A_NUM06: LCALL ALM_DIS JB P1.5,A_NUM07 LCALL DELAY JB P1.5,A_NUM07NX06: JNB P1.5,NX06 MOV R1,#06 JMP OK01A_NUM07: LCALL ALM_DIS JB P1.4,LIN_C01 LCALL DELAY JB P1.4,LIN_C01NX07: JNB P1.4,NX07 MOV R1,#07 JMP OK01LIN_C01: SETB P1.2 CLR P1.3A_NUM08: LCALL ALM_DIS JB P1.7,A_NUM09 LCALL DELAY JB P1.7,A_NUM09NX08: JNB P1.7,NX08 MOV R1,#08 JMP OK01A_NUM09: LCALL ALM_DIS JB P1.6,TURN01 LCALL DELAY JB P1.6,TURN01NX09: JNB P1.6,NX09 MOV R1,#09 JMP OK01OK01: MOV A,R1 MOV B,#10 MUL AB ADD A,LED_A_H01 MOV ALM_HOU,A LCALL TRANSTURN01: SETB P1.3 CLR P1.0 JMP SET_ALM_HOU02SET_ALM_HOU01: LCALL ALM_DIS ;闹铃小时位设定 JB P1.6,STRT02 LCALL DELAY JB P1.6,STRT02NX10: JNB P1.6,NX10 JMP MAINSTRT02: SETB P1.0 CLR P1.1A_NUM10: LCALL ALM_DIS JB P1.7,A_NUM11 LCALL DELAY JB P1.7,A_NUM11NX11: JNB P1.7,NX11 MOV R1,#00 JMP OK02A_NUM11: LCALL ALM_DIS JB P1.6,A_NUM12 LCALL DELAY JB P1.6,A_NUM12NX12: JNB P1.6,NX12 MOV R1,#01 JMP OK02A_NUM12: LCALL ALM_DIS JB P1.5,A_NUM13 LCALL DELAY JB P1.5,A_NUM13NX13: JNB P1.5,NX13 MOV R1,#02 JMP OK02A_NUM13: LCALL ALM_DIS JB P1.4,LIN_C02 LCALL DELAY JB P1.4,LIN_C02NX14: JNB P1.4,NX14 MOV R1,#03 JMP OK02LIN_C02: SETB P1.1 CLR P1.2A_NUM14: LCALL ALM_DIS JB P1.7,A_NUM15 LCALL DELAY JB P1.7,A_NUM15NX15: JNB P1.7,NX15 MOV R1,#04 JMP OK02A_NUM15: LCALL ALM_DIS JB P1.6,A_NUM16 LCALL DELAY JB P1.6,A_NUM16NX16: JNB P1.6,NX16 MOV R1,#05 JMP OK02A_NUM16: LCALL ALM_DIS JB P1.5,A_NUM17 LCALL DELAY JB P1.5,A_NUM17NX17: JNB P1.5,NX17 MOV R1,#06 JMP OK02A_NUM17: LCALL ALM_DIS JB P1.4,LIN_C03 LCALL DELAY JB P1.4,LIN_C03NX18: JNB P1.4,NX18 MOV R1,#07 JMP OK02LIN_C03: SETB P1.2 CLR P1.3A_NUM18: LCALL ALM_DIS JB P1.7,A_NUM19 LCALL DELAY JB P1.7,A_NUM19NX19: JNB P1.7,NX19 MOV R1,#08 JMP OK02A_NUM19: LCALL ALM_DIS JB P1.6,TURN02 LCALL DELAY JB P1.6,TURN02NX20: JNB P1.6,NX20 MOV R1,#09 JMP OK02OK02: MOV A,LED_A_H02 MOV B,#10 MUL AB ADD A,R1 MOV ALM_HOU,A LCALL TRANSTURN02: SETB P1.3 CLR P1.0 JMP SET_ALM_HOU01ALM_DIS: MOV P0,#0FFH MOV A,LED_A_H02 SWAP A ORL A,#0FH MOV P2,#01 MOV P0,A MOV P0,#0FFH MOV A,LED_A_H01 SWAP A ORL A,#0FH MOV P2,#02 MOV P0,A MOV P0,#0FFH MOV A,LED_A_M02 SWAP A ORL A,#0FH MOV P2,#03 MOV P0,A MOV P0,#0FFH MOV A,LED_A_M01 SWAP A ORL A,#0FH MOV P2,#04 MOV P0,A RET TRANS: LED_A_M: MOV A,ALM_MIN CJNE A,#60,LED_A_H MOV ALM_MIN,#00LED_A_H: MOV A,ALM_HOU CJNE A,#24,TRANSF MOV ALM_HOU,#00 TRANSF: MOV B,#10 MOV A,ALM_MIN DIV AB MOV LED_A_M02,A MOV LED_A_M01,B MOV A,ALM_HOU MOV B,#10 DIV AB MOV LED_A_H02,A MOV LED_A_H01,B RET ;修改第一位 SET_YEA04: JB P1.7,BEGN01 LCALL DELAY JB P1.7,BEGN01NEXT02: JNB P1.7,NEXT02 LCALL SET_YEA03BEGN01: SETB P1.0 CLR P1.1NUMBER01: LCALL DISPLAY JB P1.7,NUMBER11 LCALL DELAY JB P1.7,NUMBER11NEXT03: JNB P1.7,NEXT03 MOV R1,#00 JMP SURE01 NUMBER11: LCALL DISPLAY JB P1.6,NUMBER21 LCALL DELAY JB P1.6,NUMBER21NEXT04: JNB P1.6,NEXT04 MOV R1,#01 JMP SURE01 NUMBER21: LCALL DISPLAY JB P1.5,NUMBER31 LCALL DELAY JB P1.5,NUMBER31NEXT05: JNB P1.5,NEXT05 MOV R1,#02 JMP SURE01NUMBER31: LCALL DISPLAY JB P1.4,C_LIN01 LCALL DELAY JB P1.4,C_LIN01NEXT06: JNB P1.4,NEXT06 MOV R1,#03 JMP SURE01C_LIN01: SETB P1.1 CLR P1.2NUMBER41: LCALL DISPLAY JB P1.7,NUMBER51 LCALL DELAY JB P1.7,NUMBER51NEXT07: JNB P1.7,NEXT07 MOV R1,#04 JMP SURE01 NUMBER51: LCALL DISPLAY JB P1.6,NUMBER61 LCALL DELAY JB P1.6,NUMBER61NEXT08: JNB P1.6,NEXT08 MOV R1,#05 JMP SURE01NUMBER61: LCALL DISPLAY JB P1.5,NUMBER71 LCALL DELAY JB P1.5,NUMBER71NEXT09: JNB P1.5,NEXT09 MOV R1,#06 JMP SURE01NUMBER71: LCALL DISPLAY JB P1.4,C_LIN02 LCALL DELAY JB P1.4,C_LIN02NEXT10: JNB P1.4,NEXT10 MOV R1,#07 JMP SURE01C_LIN02: SETB P1.2 CLR P1.3NUMBER81: LCALL DISPLAY JB P1.7,NUMBER91 LCALL DELAY JB P1.7,NUMBER91NEXT11: JNB P1.7,NEXT11 MOV R1,#08 JMP SURE01 NUMBER91: LCALL DISPLAY JB P1.6,BAC01 LCALL DELAY JB P1.6,BAC01NEXT12: JNB P1.6,NEXT12 MOV R1,#09sure01: MOV A,R1 MOV B,#10 MUL AB ADD A,LED_YEA03 MOV YEAR_H,A LCALL PRE_DISPLAY BAC01: SETB P1.3 CLR P1.0 JMP SET_YEA04 ;第二位SET_YEA03: JB P1.7,BEGN02 LCALL DELAY JB P1.7,BEGN02NEXT13: JNB P1.7,NEXT13 LCALL SET_YEA02BEGN02: SETB P1.0 CLR P1.1NUMBER02: LCALL DISPLAY JB P1.7,NUMBER12 LCALL DELAY JB P1.7,NUMBER12NEXT14: JNB P1.7,NEXT14 MOV R1,#00 JMP SURE02 NUMBER12: LCALL DISPLAY JB P1.6,NUMBER22 LCALL DELAY JB P1.6,NUMBER22NEXT15: JNB P1.6,NEXT15 MOV R1,#01 JMP SURE02 NUMBER22: LCALL DISPLAY JB P1.5,NUMBER32 LCALL DELAY JB P1.5,NUMBER32NEXT16: JNB P1.5,NEXT16 MOV R1,#02 JMP SURE02NUMBER32: LCALL DISPLAY JB P1.4,C_LIN03 LCALL DELAY JB P1.4,C_LIN03NEXT17: JNB P1.4,NEXT17 MOV R1,#03 JMP SURE02C_LIN03: SETB P1.1 CLR P1.2NUMBER42: LCALL DISPLAY JB P1.7,NUMBER52 LCALL DELAY JB P1.7,NUMBER52NEXT18: JNB P1.7,NEXT18 MOV R1,#04 JMP SURE02 NUMBER52: LCALL DISPLAY JB P1.6,NUMBER62 LCALL DELAY JB P1.6,NUMBER62NEXT19: JNB P1.6,NEXT19 MOV R1,#05 JMP SURE02NUMBER62: LCALL DISPLAY JB P1.5,NUMBER72 LCALL DELAY JB P1.5,NUMBER72NEXT20: JNB P1.5,NEXT20 MOV R1,#06 JMP SURE02NUMBER72: LCALL DISPLAY JB P1.4,C_LIN04 LCALL DELAY JB P1.4,C_LIN04NEXT21: JNB P1.4,NEXT21 MOV R1,#07 JMP SURE02C_LIN04: SETB P1.2 CLR P1.3NUMBER82: LCALL DISPLAY JB P1.7,NUMBER92 LCALL DELAY JB P1.7,NUMBER92NEXT22: JNB P1.7,NEXT22 MOV R1,#08 JMP SURE02 NUMBER92: LCALL DISPLAY JB P1.6,BAC02 LCALL DELAY JB P1.6,BAC02NEXT23: JNB P1.6,NEXT23 MOV R1,#09sure02: MOV A,LED_YEA04 MOV B,#10 MUL AB ADD A,R1 MOV YEAR_H,A LCALL PRE_DISPLAY BAC02: SETB P1.3 CLR P1.0 JMP SET_YEA03;第三位SET_YEA02: JB P1.7,BEGN03 LCALL DELAY JB P1.7,BEGN03NEXT24: JNB P1.7,NEXT24 LCALL SET_YEA01BEGN03: SETB P1.0 CLR P1.1NUMBER03: LCALL DISPLAY JB P1.7,NUMBER13 LCALL DELAY JB P1.7,NUMBER13NEXT25: JNB P1.7,NEXT25 MOV R1,#00 JMP SURE03 NUMBER13: LCALL DISPLAY JB P1.6,NUMBER23 LCALL DELAY JB P1.6,NUMBER23NEXT26: JNB P1.6,NEXT26 MOV R1,#01 JMP SURE03 NUMBER23: LCALL DISPLAY JB P1.5,NUMBER33 LCALL DELAY JB P1.5,NUMBER33NEXT27: JNB P1.5,NEXT27 MOV R1,#02 JMP SURE03NUMBER33: LCALL DISPLAY JB P1.4,C_LIN05 LCALL DELAY JB P1.4,C_LIN05NEXT28: JNB P1.4,NEXT28 MOV R1,#03 JMP SURE03C_LIN05: SETB P1.1 CLR P1.2NUMBER43: LCALL DISPLAY JB P1.7,NUMBER53 LCALL DELAY JB P1.7,NUMBER53NEXT29: JNB P1.7,NEXT29 MOV R1,#04 JMP SURE01 NUMBER53: LCALL DISPLAY JB P1.6,NUMBER63 LCALL DELAY JB P1.6,NUMBER63NEXT30: JNB P1.6,NEXT30 MOV R1,#05 JMP SURE03NUMBER63: LCALL DISPLAY JB P1.5,NUMBER73 LCALL DELAY JB P1.5,NUMBER73NEXT31: JNB P1.5,NEXT31 MOV R1,#06 JMP SURE03NUMBER73: LCALL DISPLAY JB P1.4,C_LIN06 LCALL DELAY JB P1.4,C_LIN06NEXT32: JNB P1.4,NEXT32 MOV R1,#07 JMP SURE03C_LIN06: SETB P1.2 CLR P1.3NUMBER83: LCALL DISPLAY JB P1.7,NUMBER93 LCALL DELAY JB P1.7,NUMBER93NEXT33: JNB P1.7,NEXT33 MOV R1,#08 JMP SURE03 NUMBER93: LCALL DISPLAY JB P1.6,BAC03 LCALL DELAY JB P1.6,BAC03NEXT34: JNB P1.6,NEXT34 MOV R1,#09sure03: MOV A,R1 MOV B,#10 MUL AB ADD A,LED_YEA01 MOV YEAR_L,A LCALL PRE_DISPLAY BAC03: SETB P1.3 CLR P1.0 JMP SET_YEA02 ;第四位SET_YEA01: JB P1.7,BEGN04 LCALL DELAY JB P1.7,BEGN04NEXT35: JNB P1.7,NEXT35 LCALL SET_MON02BEGN04: SETB P1.0 CLR P1.1NUMBER04: LCALL DISPLAY JB P1.7,NUMBER14 LCALL DELAY JB P1.7,NUMBER14NEXT36: JNB P1.7,NEXT36 MOV R1,#00 JMP SURE04 NUMBER14: LCALL DISPLAY JB P1.6,NUMBER24 LCALL DELAY JB P1.6,NUMBER24NEXT37: JNB P1.6,NEXT37 MOV R1,#01 JMP SURE04 NUMBER24: LCALL DISPLAY JB P1.5,NUMBER34 LCALL DELAY JB P1.5,NUMBER34NEXT38: JNB P1.5,NEXT38 MOV R1,#02 JMP SURE04NUMBER34: LCALL DISPLAY JB P1.4,C_LIN07 LCALL DELAY JB P1.4,C_LIN07NEXT39: JNB P1.4,NEXT39 MOV R1,#03 JMP SURE04C_LIN07: SETB P1.1 CLR P1.2NUMBER44: LCALL DISPLAY JB P1.7,NUMBER54 LCALL DELAY JB P1.7,NUMBER54NEXT40: JNB P1.7,NEXT40 MOV R1,#04 JMP SURE04 NUMBER54: LCALL DISPLAY JB P1.6,NUMBER64 LCALL DELAY JB P1.6,NUMBER64NEXT41: JNB P1.6,NEXT41 MOV R1,#05 JMP SURE04NUMBER64: LCALL DISPLAY JB P1.5,NUMBER74 LCALL DELAY JB P1.5,NUMBER74NEXT42: JNB P1.5,NEXT42 MOV R1,#06 JMP SURE04NUMBER74: LCALL DISPLAY JB P1.4,C_LIN08 LCALL DELAY JB P1.4,C_LIN08NEXT43: JNB P1.4,NEXT43 MOV R1,#07 JMP SURE04C_LIN08: SET

温馨提示

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

评论

0/150

提交评论