基于单片机的学校作息时间的控制内容摘要:

;主程序起始地址 AJMP START ;跳至主程序 ORG 000BH ; TIMER0 中断起始地址 AJMP TIM0 ;跳至 TIMER0 中断子程序 START:MOV SP,60H ;设置堆栈在 60H MOV 28H,00 ;显示寄存器初值为 00 攀枝花学院本科课程设计(论文) 控制系统软件的设计 11 MOV R6,12H ;时 寄存器值为 12H MOV R5,00H ;“分”寄存器值为 00H MOV R4,00H ;“秒”寄存 器值为 00H MOV TMOD,01H ;设 TIMER0 为 MODE1 MOV TH0,THIGH ;计时中断为 4000 微秒 MOV TL0,TLOW MOV IE,82 ; TIMER 中断使能 MOV R2,250 ;中断 250 次 SETB TR0 ;启动 TIMER0 各子模式的设计 LED 动态扫描模块 程序 SCAN:MOV R0,28H ;( 28H)为扫描指针 INC @R0 ;扫描指针加 1 CJNE @R0,6,X3 ;扫描完 6 个显示器。 不是跳至 X3 MOV @R0,00 ;是则扫描指针为 0 X3:MOV A,@R0 ;扫描指针载入 A ADD A,20 ; A 加常数 20H(显示寄存器地址) =各时间显示区地址 ;存入 R1=各时间显示地址 MOV R1,A ;扫描指针存入 A MOV A,@R0 ;将 A高低 4位交换 ( P1高 4 位为扫描值, SWAP A ;低 4 位为显示数据值) ORL A,@R1 ;扫描值 +显示值 MOV R1,A ;输出至 P1 RET DISP:MOVR1,20 ;( 20H)为显示寄存器, R1=20H MOV A,R6 ;将时寄存器的内容存入 A MOV B,01H ;设 B 累加器的值为 10H DIV AB ; A/B,商 (十位数)存入 A,余数 (个位数)存入 B MOV @R1,B ;将 B 的内容存入 ( 20H) 攀枝花学院本科课程设计(论文) 控制系统软件的设计 12 INC R1 ; R1=21H MOV @R1,A ;将 A 的内容存入 ( 21H) INC R1 ; R1=22H MOV A,R5 ;将分寄存器的内容存入 A MOV B,01H ;设 B 累加器的值为 10H DIV AB ; A/B,商 (十位数)存入 A,余数 (个位数)存入 B MOV @R1,B ;将 B 的内容存入 ( 22H) INC R1 ; R1=23H MOV @R1,A ;将 A 的内容存入 ( 23H) INC R1 ; R1=24H MOV A,R4 ;将秒寄存器的内容存入 A MOV B,01H ;设 B累加器的值为 10H DIV A B ; A/B,商 (十位数)存入 A,余数 (个位数)存入 B MOV @R1,B ;将 B 的内容存入 ( 24H) INC R1 ; R1=25H MOV @R1,A ;将 A 的内容存入 ( 25H) RET END 时钟计时模块 程序 CLOCK:MOV A,R4 ; R4 为秒寄存器 ADD A,01 ; 加 1 DA A ;做十进制调整 MOV R4,A ;存入秒 寄存器 CJNE A,TIMEN,X4 ;是否超过打零连续时间。 不是则跳至 X4 CLR ;关铃 X4:CJNE A,60H,X5 ;是否超过 60 秒。 不是则跳至 X5 MOV R4,00 ;是则清除为 0 MOV A,R5 ; R5 为分寄存器 ADD A,01 ;加 1 DA A ;做十进制调整 攀枝花学院本科课程设计(论文) 控制系统软件的设计 13 MOV R5,A ;存入分寄存器 CJNEA,60H,X5 ;是否超过 60 分。 不是则跳至 X5 MOV R5,00 ;是则清除为 0 MOVA,R6 ; R6 为时寄存器 ADDA,01 ;加 1 DA A ;做十进制调整 MOV R6,A ;存入时寄存器 CJNEA,60H,X5 ;是否超过 24 时。 不是则跳至 X5 MOV R6,00 ;是则清除为 0 X5:RET 键盘接收子 程序 模块 SETTIME:CLR ;定时模式 SETB MOVADR46,00H MOVA,READ ;读 93C46 地址为 ADR46 中的数据 ACALL TO9346 LOOPB:ACALL DISP ;调用 DISP JB ,N21 ; K1(模式选择键)按了。 不是则跳至N21 ACALL DELAY ;消除抖动 JNB ,$ ; K1(模式选择键)放开了。 ACALL DELAY ;消除抖动 AJMP LOOP ;转至 LOOP N21: JB ,N22 ; K2(定时器组加 1键)按了。 不是则跳至 N22 ACALL DELAY ;消除抖动 MOVA,ADR46 ;将地址载入 A CLRC ;清除进位位 RRCA ; A 右移 1 位 ADDA,01H ;地址加 1 MOV R6,A ;将 A 存入 R6 攀枝花学院本科课程设计(论文) 控制系统软件的设计 14 CLRC ;清除进位位 RLCA ; A 左移 1 位 MOVADR46,A ;将 A 中地址存入 ADR46 MOVA,READ ;读 93C46 地址为 ADR46 中的数据 ACALL TO9346 JNB ,$ ; K2(定时器组加 1键)放开了。 ACALLDELAY ;消除抖动 N。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。