版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一实验目的:课程标志性内容的设计理解和综合运用,鼓励独立性设计和功能扩展的创新实 践。二功能要求:1. 基本性要求(1) 显示北京时间;(2) 能够校准时间;(3) 使用汇编语言;(4) 时、分、秒之间以及年、月、日间以小数点分隔;2 发挥性要求1) 显示公历日期2) 能够校准日期3) 运动秒表4) 闹钟功能方案考虑:1硬件方案(1) 采用6位LED数码管显示日期或者时间。( 2)显示器的驱动可采用 “动态扫描驱动”的方式,用一片 74LS244 驱动。(3)用两个键盘实现时间和日期的调整。( 4)用六个 8550三极管驱动数码管2软件方案(1)“时钟”基准时间由单片机内部的定时中断提供,定时
2、时间是“秒”的整除数,设为 50ms。(2) 用一个计数器对定时中断的次数进行计数,可实现“秒”定时,同理可以进 行“分”、“时”定时,以及“日”、“月”、“年”定时。(3) 动态扫描显示方式在更新显示内容时,因 LED 数码管余辉的存在可能会造成 显示字符的模糊,新内容写入显示器之前将所有的 LED 数码管熄灭。( 4)关于自动识别“月大、月小”和“平年、润年”问题的考虑a) 月大和月小 2月另外计算;4月、 6月、 9月、 11 月为月小 30天,其余为月大 31 天。b) 平年和润年 年号能被 4 整除的就是润年) 平年的 2月为 28天;润年的 2月为 29天。四.程序流程图主程序流程
3、图定时器TO中断子程序显示子程序外部中断1子程序外部中断1外部中断0子程序五.电路原理图目E Qijrf 二,Llz一Hl-Ill £IHI/一-rl!JlJ lK!二lJlEi._.3OSM_.SLK 占耳Mzl 二r; - r£ p_:Er电路原理图«KI迥1JXJ)1>lldd>IVI F-OYnd -3<<.£ 孟ovg noy 再 E 一号wdjn元件清单:AT89S521 片74LS2441个7段共阳数码管6个12M晶振1 个矩阵键盘按钮3个PNP8550 6 个电阻10K 2 个3K 6 个3300 8 个瓷片电容3
4、0pF 2个电解电容10uF 1个6针排针 1 个系统的使用和操作说明用K1调节调整标志位,K0调节时间日期切换和时间日期修改,K2复位六、课程设计总结通过这次课程设计,我们学到了很多书本上学不到的东西,也深刻的认识到自己对知 识的掌握和运用还远远不足,这次课程设计也锻炼了我们独立思考问题的能力以及如何去 检测解决问题,提高了我们的实际动手能力,积累了一些做课程设计的经验。一周的课程 设计,也起到了对所学知识的综合提高的作用,让我们对所学知识不仅仅是感性上的认 识,对我们今后的学习起到启发作用。附:源代码TICK_CNTEQU40HSECONDEQU41HMINUTEEQU42HHOUR EQ
5、U43HDAYEQU44HMONTHEQU45HYEAR EQU 46HYUSHU EQU 47H。T0溢出计数器。存储数据用真值,未用BCD码FLASH_FLAGEQU 27H。R7: 0 时间;1日期。中断向里表ORG0000HLJMPMAINORG0003HLJMPEX0_INTORG000BHLJMPT0_INTORG0013HLJMPEX1 INT。主程序。存放余数。时间日期调整标志ORG 0030HMAIN:NOP 。初始化堆栈MOV SP,#60HCJNE A ,#59,IN5AJMP IN6。初始化变量MOVSECOND,#0MOVMINUTE,#0MOVHOUR,#0MOVD
6、AY,#21MOVMONTH,#1MOVYEAR,#96MOVFLASH_FLAG ,#00HMOVR7,#00H。MOVTL0,#0B0H 。定时 50msMOVTH0,#3CHMOVTICK_CNT,#20 。装计数初值 <1s 计数器)MOVTMOD,#01HSETBET0SETBEX0SETBEX1SETBEA 。开中断SETBPX0SETBPX1 。设置中断优先级SETBTR0 。启动定时器 T0LOPP:LCALLDISPLAY 。调用显示子程序LJMP LOPPT0_INT:MOV TL0,#0B0HTH0,#3CH 。 重装载MOVDJNZAJMPTICK_CNT,NOT
7、_1SIS_1S。1 秒到?NOT_1S:LJMP T0_RET。 1 秒时间到IS_1S: PUSH ACCMOVA,SECONDCJNE A,#59,IN3 。59s 到?AJMP IN4IN3: LJMPSECOND_INC 。秒加 1IN4: MOVSECOND,#0 。 秒进位MOVA,MINUTE定时器 0 中断59 分到?IN5:LJMPMINUTE_INCIN6:MOVMINUTE,#0。 分进位MOVA,HOURCJNEA,#23,HOUR_INC。 23h 到?MOVHOUR,#0。 “时”进位MOVA,MONTHCJNEA,#2,NOT_FEB。 是否二月?。2 月处理。
8、 FEB:NOPACALL DIV4MOV A,YUSHUCJNEA,#0,NOT_LEAP_Y。是否闰年?LEAP_Y:MOVA,DAY。闰年CJNEA,#29,DAY_INCMOVDAY ,#1MOVMONTH,#3LJMPRESET_CNT。非闰年NOT_LEAP_Y:MOVA,DAYCJNEA,#28,DAY_INC 。MOVDAY ,#1MOVMONTH,#3LJMPRESET_CNT。非 2 月处理。 30/31 天?NOT_FEB:NOPCJNE A,#4,Y01AJMP MON_30DY01: CJNE A,#6,Y02 。是否小月?AJMP MON_30DY02:CJNE A
9、,#9,Y03AJMP MON_30DY03:CJNE A,#11,T11AJMP MON_30D。 31 天T11: MOV A,DAY 。大月CJNE A,#31,DAY_INCAJMP NEXT_MONTH。 30 天MON_30D:MOV A,DAY 。小月CJNE A,#30,DAY_INC。天进位NEXT_MONTH: MOV DAY ,#1MOV A,MONTHCJNE A,#12,MONTH_INC 。 月进位MOVMONTH,#1MOVA,YEARCJNEA,#99,YEAR_INCMOVYEAR,#0AJMPRESET_CNT。年加1YEAR_INC:MOVA,YEARIN
10、C AMOV YEAR,AAJMP RESET_CNTMONTH_INC:MOVA,MONTHINCAMOVMONTH,AAJMPRESET_CNTDAY_INC:MOVA,DAYINC AMOV DAY,AAJMP RESET_CNT HOUR_INC:MOV A,HOUR INC AMOVAJMPHOUR,ARESET_CNTMINUTE_INC:MOVA,MINUTEINC AMOVMINUTE,AAJMPRESET_CNTSECOND_INC:MOVA,SECONDINC AMOVSECOND,ARESET_CNT: POP ACCMOV TICK_CNT,#20T0_RET: RET
11、I。 sub: LED Display。显示子程序DISPLAY:MOV DPTR,#TAB1 。装段选表MOV A,R7 。CJNE A,#00H,DISP_DA TE。 显示时间?DISP_TIME: MOV R0,#SECOND。AJMP TSA。显示日期。取十位。存段选。取个位。存段选DISP_DATE: MOV R0,#DAY。显示时间或日期TSA: MOV A,R0MOV B,#10DIV ABMOVC A,A+DPTRMOV R2,AMOV A,BMOVC A,A+DPTRMOV R1,AINC R0MOV DPTR,#TAB1MOV A,R0MOV B,#10DIV ABMOV
12、C A,A+DPTRMOV R4,AMOV DPTR,#TAB2MOV A,BMOVC A,A+DPTRMOV R3,AINC R0MOV DPTR,#TAB1MOV A,R0MOV B,#10DIV ABMOVC A,A+DPTRMOV R6,AMOV DPTR,#TAB2MOV A,BMOVC A,A+DPTRMOV R5,A。P1:位选线。P0:段选线TDP:MOV P0,R1MOV A,FLASH_FLAGCJNE A,#03H,A02 。是否闪烁?AJMP A03A02:CJNE A,#06H,A04 。A03: MOV A,TICK_CNTRRC AJNC A05A04:MOV P
13、1,#0DFH。开 D6A05:LCALLDELAYMOV P1,#0FFHMOV P0,R2MOV A,FLASH_FLAGCJNE A,#03H,B02AJMP B03B02:CJNEA,#06H,B04B03:MOVA,TICK_CNTRRC AJNC B05B04:MOVP1,#0EFH。开 D5B05:LCALL DELAYMOV P1,#0FFH。 Display DS4MOV P0,R3 MOV A ,FLASH_FLAGCJNE A,#02H,C02 AJMP C03。C02:CJNEA,#05H,C04C03:MOVA,TICK_CNTRRC AJNC C05C04:MOVP
14、1,#0F7H。开 D4C05:LCALL DELAY关位选关MOV P1,#0FFH 。 Display DS3 MOV P0,R4MOV A,FLASH_FLAGCJNE A,#02H,D02 AJMP D03D02:CJNE A,#05H,D04D03:MOV A,TICK_CNTRRC AJNC D05D04:MOV P1,#0FBH。开 D3D05:LCALL DELAYMOV P1,#0FFH。 Display DS2MOV P0,R5MOV A,FLASH_FLAGCJNE A,#01H,E02AJMP E03E02:CJNE A,#04H,E04E03:MOV A,TICK_C
15、NT RRC A JNC E05E04:MOV P1,#0FDH 。开 D2E05:LCALL DELAYMOV P1,#0FFHMOV P0,R6MOV A,FLASH_FLAGCJNE A,#01H,F02AJMP F03F02:CJNE A,#04H,F04F03:MOV A,TICK_CNT RRC A JNC F05F04:MOV P1,#0FEH 。开 D1F05:LCALL DELAYMOV P1,#0FFHRETD_CNT_2EQU 28HD_CNT_1EQU 29HD_CNT_4EQU 30HD_CNT_3EQU 31H。短延时DELAY:MOVD_CNT_2,#2D_LOO
16、P2:MOVD_CNT_1,#100 。 1D_LOOP1:DJNZD_CNT_1,D_LOOP1DJNZ D_CNT_2,D_LOOP2RET。长延时 <用于键盘去抖动)DELAY2:MOVD_CNT_4,#60oo22D_LOOP4:MOVD_LOOP3:DJNZD_CNT_3,#100 。 122D_CNT_3,D_LOOP3DJNZ D_CNT_2,D_LOOP4RET。除法子程序,用于判断闰年DIV4: PUSH ACCPUSH BMOV A,YEAR MOV B,#4DIV ABMOV YUSHU,BPOP ACCPOP BRET。外部中断 0。 sub: INT0 inte
17、rrupt。 处理按键 K0, 切换时间 /日期显示或者调整时间 EX0_INT:PUSH ACCLCALL DELAY2 。长延时,去抖动JB P3.2,OUTMOVA,FLASH_FLAG。装标志位CJNEA,#00H,JYY。是否为零?MOV A,R7。R7取反XRLA,#0FFHMOVR7,AOUT: LJMP EX0_RETJYY: CJNE A,#01H,JMM。调节年MOVA,YEARCJNEA,#99,YY0MOVYEAR,#0LJMPYYFYY0:INC AMOVYEAR,AYYF:LJMPEX0_RETJMM: CJNE A,#02H,JDD。调节月MOVA,MONTHCJ
18、NEA,#12,MM0MOVMONTH,#1LJMPMMFMM0: INC AMOVMONTH,AMMF: LJMP EX0_RET*。JDD: CJNE A,#03H,ADH 。调节天MOV A,MONTHCJNE A,#2,NFBIFB:NOPLCALL DIV4MOV A,YUSHUCJNE A,#0,ANGARN:MOVA,DAYCJNE A,#29,D0ALJMP D0BD0A:LJMPDDAD0B:LJMPDD1ANG:MOVA,DAYCJNE A,#28,D0ALJMP DD1NFB:NOPCJNE A,#4,Y04LJMP AD1Y04:CJNE A,#6,Y05LJMP AD
19、1Y05:CJNE A,#9,Y06LJMP AD1Y06:CJNE A,#11,Y07LJMP AD1Y07:NOPMOV A,DAYCJNE A,#31,D0ALJMP DD1AD1:NOPMOV A,DAYCJNE A,#30,D0ADD1:MOVDAY,#1LJMP DDFDDA:MOV A,DAYINC AMOV DAY ,ADDF: LJMP EX0_RETADH: CJNE A,#04H,ADM 。调节时MOV A,HOURCJNE A,#23,JH0MOV HOUR,#0LJMP JHFJH0: MOV A,HOURINC AMOV HOUR,AJHF:LJMPEX0_RET。 ADM:CJNEA,#05H,ADS。调节分MOV A,MINUTECJNE A,#59,JM0MOV MINUTE,#0LJMP JMFJM0: MOV A,MINUTEINC AMOV MINUTE,AJMF: LJMP EX0_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度新型建筑材料购销合同3篇
- 《扎染艺术在室内装饰中的艺术形态研究》
- 《含初始小裂纹钢筋混凝土梁抗爆加固数值模拟研究》
- 2024年知识产权保护及保密条款协议3篇
- 2023年芜湖市镜湖区改制企业管理办公室招聘笔试真题
- 7健康看电视 第一课时(教学实录)-部编版道德与法治四年级上册
- 评审的采购合同
- 家具买卖合同模板领取
- 洗车加盟合同示范
- 规范的民间个人借款合同
- LSS-250B 纯水冷却器说明书
- 中药分类大全
- 防止返贫监测工作开展情况总结范文
- 精文减会经验交流材料
- 2015年度设备预防性维护计划表
- 浅谈离子交换树脂在精制糖行业中的应用
- 设备研发项目进度表
- 管道定额价目表
- 新时期如何做好档案管理课件
- 复兴号动车组空调系统设计优化及应用
- 矿山压力与岩层控制课程设计.doc
评论
0/150
提交评论