单片机作息时间控制器课程设计(编辑修改稿)内容摘要:

FFH MOV P0, A。 P0 口为字形码输出口 NOP NOP MOV R0, 2FH。 显示子程序 NOP MOV R1, 10H。 位控制字 LOOP1: MOV A, R1 NOP MOV P2, A。 输出位控制字 MOV P2, A MOV DPTR, TABLE MOV A,@ R0。 取显示缓冲区中的显示字符数 22 MOVC A,@ A+DPTR。 查表转换成字型代码 CPL A MOV P0, A。 输出字形码 MOV R2, 00H LOOP2: DJNZ R2, LOOP2。 延时 2MS DEC R0。 显示下一个字符 MOV A, R1 CLR C RRC A MOV R1, A JNZ LOOP1。 判断 5位扫描显示一遍是否完成 RET NOP NOP TABLE: DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H DB 0BFH, 86H, 0DBH, 0CFH, 0E6H, 0EDH, 0FDH, 87H。 带小数点时的字符显示字形表 DB 0FFH, 0EFH、 0F7H, 0FCH, 0B9H, 0F9H, 0F1H NOP 键扫描子程序 检测 P1 口,判断是否有键按下,如有键按下,进进行延时去抖动并读取键值,存入 A 中。 CHECKEYA: NOP。 键扫描子程序 NOP NOP MOV P1, 0FFH MOV A, P1。 判断是否有键按下 CPL A 23 ANL A, 3FH JZ RETX LCALL DISP。 延时去抖动 LCALL DISP MOV A, P1 CPL A ANL A, 3FH JZ RETX MOV R6, A。 当前值存放在 R6 中 K1: LCALL DISP。 等待释放按键 MOV A, P1 CPL A ANL A, 3FH JNZ K1 MOV A, R6 NOP NOP RETX: RET NOP i. 用户自设定报时时间点置入键程序模块。 将显示缓冲区 2FH~2BH 中的内容压缩后存入 40H 为首地址的片内 RAM 中,其中 2FH 为定时时间点的编号, 2EH、 2DH 为小时值, 2CH、 2BH 为分钟数值。 USESET: NOP MOV R0, 2FH MOV R1, 40H。 本次用户设定报时点首址为 40H MOV A,@ R0 ANL A, OFH RL A 24 ADD A, R1。 报时点编号乘 2 加首址 ,为本次存放的实际地址 MOV R1, A DEC R0 NOP。 定时设定时间置入子程序 NOP MOV R2, 02H LDD: MOV A,@ R0。 ANL A, 0FH SWAP A MOV R7, A DEC R0 MOV A,@ R0 ANL A, 0FH ADD A, R7 MOV @ R1, A DEC R0 INC R1 DJNZ R2, LDD NOP CLR 0F4H NOP RET NOP ii. 减 1 键处理。 在小数点点亮的对应位上进行十进制减 1 处理。 SUBONE: NOP NOP JNB 7CH, SCH74 25 MOV R0, 2FH SJMP SUB1 SCH74: NOP JNB 74H, SCH6C MOV R0, 2EH SJMP SUB1 SCH6C: NOP JNB 6CH, SCH64 MOV R0, 2DH SJMP SUB1 SCH5C: NOP JNB 64H, SCH5C MOV RO, 2CH SJMP SUB1 SCH5C: NOP JNB 5CH, ERR1 MOV R0, 2BH SJMP SUB1 NOP NOP ERR1: RET NOP SUB1: NOP MOV A,@ R0 ADD A, 99H DA A XCHD A,@ R0 RET 26 iii. 用户自设定报时时间点显示键处理模块。 由( 2FH)指定的用户自设定报时点编号,计算其在 RAM 中存放的地址,再根据此地址找出该报时时间点的 2 个字节码,将其 4 个半字节分别存入 2EH~2BH 单元低半字中。 DSPUSE: NOP MOV R0, 2FH。 自设定报时点编号由 (2FH)指定 MOV R1, 40H。 用户设定报时点首址为 40H MOV A,@ R0 ANL A, 0FH RL A ADD A, R1。 报时点编号乘 2 加首址 ,为其存放的实际地址 MOV R1, A DEC R0 NOP。 取定 时设定时间并置入显示缓冲区 NOP MOV R2, 02H LDR: MOV A,@ R1。 将小时和分钟值解压缩后装入相应显示单元中 SWAP A XCHD A,@ R0 DEC R0 INC R1 DJNZ R2, LDR NOP CLR 0F4H NOP RET 27 NOP 键值处理子程序 KEYACC: NOP。 键值处理子程序 NOP。 按键处理子程序 JB ACC. 0, SHIFTP。 是移位功能键转 SHIFTP JB ACC. 1, ADDONE。 是加 1键 ,转 ADDONE JB ACC. 2, SUBONE。 是减 1键 ,转 SUBONE JB ACC. 3, TIMSET。 是时钟校对键转 TIMSET JB ACC.4, USESET。 设置用户定时时间点 JB ACC. 5, DSPUSE。 显示用户定时时间点 NOP NOP NOP RET NOP iv. 加 1键处理程序。 在小数点点亮的对应位上进行十进制加 1处理。 ADDONE: NOP NOP JNB 7CH, SECH74 MOV R0, 2FH SJMP ADD1 SECH74: NOP JNB 74H, SECH6C MOV R0, 2EH SJMP ADD1 SECH64C: NOP JNP 6CH, SECH64 MOV R0, 2BH 28 SJMP ADD1 NOP NOP ERR2: RET NOP ADD1: NOP MOV A,@ R0 ADD A, 01H DA A XCHD A,@ R0 RET v. 校时时间置入程序模块。 将设定的时间值置入相应的时间计数单元,并以该时间为起点开始 计时。 TIMSET: NOP。 校时时间置入程序段 NOP MOV R0, 2FH MOV R1, 24H MOV R2, 02H MOV A,@ R0 ANL A, 0FH MOV @ R1, A DEC R0 DEC R1 LD1: MOV A, R0 ANL A, 0FH SWAP A MOV R7, A DEC R0 29 MOV A,@ R0 ANL A, 0FH ADD A, R7 MOV @ R1, A DEC R0 DEC R1 DJNZ R2, LD1 MOV 21H, 00H CLR 0F4H RET NOP NOP 移位键处理程序模块 将小数点从左向右依次移动 1 位。 小数点移动哪一位,那一位便可用加 1 或减 1键进行修改数值。 小数点如移到最右边 1位,若再按 1 次移位键,小数点自动返回到最左边一位上。 SHIFTP: NOP JB 0F4H, NXT ERR: SETB 0F4H SETB 5CH CLR 6CH NXT: NOP JNB 7CH, CHK74 CLR 7CH SETB 74H RET CHK74: NOP JNB 74H, CHK6C CLR 74H 30 SETB 74H SETB 6CH RET CHK6C: NOP JNB 6CH , CHK64 CLR 6CH SETB 64H RET CHK64: NOP JNB 64H, CHK64 CLR 6CH SETB 5CH RET CHK5C: NOP JNB 5CH, ERR CLR 5CH SETB 7CH RET 冬季和夏季的处息时间表区 TABLE2: DB 06H, 00H, 06H, 20H, 60H, 40H, 07H, 10H, 07H, 15H。 冬令 DB 07H, 20H, 07H, 50H, 07H, 58H, 08H, 00H, 08H, 45H DB 08H, 53H, 08H, 55H, 09H, 40H, 09H, 55H, 09H, 58H DB 10H, 00H, 10H, 45H, 10H, 53H, 10H, 55H, 11H, 40H DB 13H, 00H, 13H, 13H, 13H, 15H, 14H, 00H, 14H, 13H DB 14H, 15H, 15H, 00H, 15H, 13H, 15H, 15H, 16H, 00H DB 17H, 30H, 18H, 15H, 19H, 00H, 19H, 35H, 19H, 40H DB 20H, 30H, 21H、 00H, 21H, 30H, 0FFH, 0FFH, 0FFH 31 TABLE3: DB 06H, 00H, 06H, 20H, 06H, 40H, 07H, 10H, 07H, 15H。 夏令 DB 07H, 20H, 07H, 50H, 07H, 58H, 08H, 00H, 08H, 45H DB 08H, 53H, 08H, 55H, 09H, 40H, 09H, 55H, 09H, 58H DB 10H, 00H, 10H, 45H, 10H, 53H, 10H, 55H, 11H, 40H DB 13H, 45H, 13H, 58H, 14H, 00H, 14H, 45H, 14H, 50H DB 14H, 58H, 15H, 00H, 15H, 45H, 15H, 53H, 15H, 55H DB 17H, 25H, 19H, 00H, 19H, 35H, 19H, 40H, 21H, 00H DB 21H, 30H, 22H, 00H, 0FFH, 0FFH, 0FFH, 0FFH 第 5 章 调试及分析。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。