已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7 程序流程图 8 电子钟程序清单调整运行后的电子钟程序清单;该程序实现电子钟时、分、秒运行,时、分、秒调整;十、分、秒同时显示;共A、B、C、D四个按键,A键实现电子钟的运行和停止、B键调时、C键调分、D键调秒;该电子钟是单片机AT89S51控制,使用芯片中的定时器0方式1实现定时功能;P0口输出段控码、P2口输出位控码控制数码管显示;该电子钟共使用两个4位一体数码管(S02841A-B)显示;系统初始化程序*ORG 0000H AJMP MAIN;转到系统初始化程序 ORG 000BH AJMP PITO;转到定时器0中断服务程序 ORG 0100H MAIN: MOV SP, #60H;确立堆栈区 MOV TMOD, #01H;设定定时器0为工作方式1 MOV TL0, #0DCH;装计数器初值 MOV TH0, #0BH CLR 21H.0 CLR TR0H;TR0置“0”,定时关闭 SETB EAH;EA置“1”,中断总允许 SETB ET0H ;ET0置“1”,定时器0中断 允许 MOV 30H, #10H;循环次数 MOV 7EH, #0AH;P.点显示初始化 MOV R0, #79H MOV R1, #05H PP: MOV R0, #0BH INC R0 DJNZ R1, PP MOV R0, #31H;时、分、秒值存储单元清零 MOV R1, #06H Q00: MOV R0, #00H INC R0 DJNZ R1, Q00;监控程序* LOOP: LCALL DIR;调显示子程序 LCALL KEY;调键扫描子程序 LOOP1: JB 20H.0, KEYA ;A键是否按下,是跳转到A键功能程序 JB 20H.1, KEYB ;B键是否按下,是跳转到B键功能程序 JB 20H.2, KEYC ;C键是否按下,是跳转到C键功能程序JB 20H.3, KEYD ;D键是否按下,是跳转到D键功能程序 LCALL DIR LJMP LOOP;跳转到监控程序;A键功能子程序* KEYA: CPL TR0H ;开启/关闭定时器 SETB 21H.0 AJMP LOOP ;返回;B键功能子程序* KEYB: JB TR0H, KEYBO ;定时器是否运行,是跳转 JNB 21H.0, KEYBOO MOV R0, #36H ;时值存储单元地址送R0 LCALL DAAD1 ;调加1子程序 MOV A, R3 ;时值加1后的值送累加器A XRL A, #24H JNZ KEYBO ;时值是否到24时,否返回 LCALL CLR0 ;时值存储单元清零 KEYBO: MOV 7DH, 35H MOV 7EH, 36H KEYBOO: LJMP LOOP ;返回监控程序;C键功能子程序* KEYC: JB 8CH, KEYCO ;定时器是否运行,否跳转 JNB 21H.0, KEYCOO MOV R0, #34H ;分值存储单元地址送R0 LCALL DAAD1 ;调加1子程序 MOV A, R3 ;分值加1后的值送累加器A XRL A, #60H JNZ KEYCO ;分值是否到60分,否返回 LCALL CLR0 ;分值存储单元清零 KEYCO: MOV 7CH, 34H MOV 7BH, 33H KEYCOO: LJMP LOOP ;返回监控程序;D键功能子程序* KEYD: JB 8CH, KEYDO ;定时器是否运行,否跳转 JNB 21H.0, KEYDOO MOV R0, #32H ;秒值存储单元地址送R0 LCALL DAAD1 ;调加1子程序 MOV A, R3 ;秒值加1后的值送R0 XRL A, #60H JNZ KEYDO;秒值是否到60秒,否返回 LCALL CLR0;秒值存储单元清0 KEYDO: MOV 79H, 31H MOV 7AH, 32H KEYDOO: LJMP LOOP;返回监控程序;中断服务程序* PITO: PUSH PSW;中断服务程序,现场保护 PUSH A SETB RS0;选第三组通用寄存器 SETB RS1 MOV TL0, #0DCH;计数器重新加载 MOV TH0, #0BH MOV A, 30H;循环次数减1 DEC A MOV 30H, A JNZ RETO;不满16次,转RET0返回 MOV 30H, #10H;满16次开始计时操作 MOV R0, #32H;秒显示单元地址 ACALL DAAD1;秒加1 MOV A, R3;加1后秒值在R3中 XRL A, #60H;判是否到60秒 JNZ RETO;不到转RET0返回 ACALL CLR0;到60秒显示单元清0 MOV R0, #34H;分显示单元地址 ACALL DAAD1;分加1 MOV A, R3;加1后分值在R3中 XRL A, #60H;判是否到60分 JNZ RETO;不到转RET0返回 ACALL CLR0;到60分显示单元清0 MOV R0, #36H;时显示单元地址 ACALL DAAD1;时加1 MOV A, R3;加1后时值在R3中 XRL A, #24H;判是否到24时 JNZ RETO;不到转RET0返回 ACALL CLR0;到24时显示单元清0 RETO: CLR RS0;返回第0组通用寄存器 CLR RS1 POP A;现场恢复 POP PSW MOV 79H, 31H;时、分、秒值放缓冲区 MOV 7AH, 32H MOV 7BH, 33H MOV 7CH, 34H MOV 7DH, 35H MOV 7EH, 36H RETI ;中断返回;加1子程序* DAAD1: MOV A, R0 ;加1子程序,十位送A DEC R0 SWAP A;十位数占高4位 ORL A, R0;个位数占低4位 ADD A, #01H;加1 DA A;十进制调整 MOV R3, A;全值暂存R3中 ANL A, #0FH;屏蔽十位数,取出个位数 MOV R0, A;个位值送显示缓冲单元 MOV A, R3 INC R0 ANL A, #0F0H;屏蔽个位数取出十位数 SWAP A;使十位数占低四位 MOV R0, A;十位数送缓冲单元 RET;返回 CLR0: CLR A;清缓冲单元子程序 MOV R0, A;十位缓冲单元清“0” DEC R0 MOV R0, A;个位数缓冲单元清“0” RET;返回 ;键盘扫描子程序* KEY: LCALL KEYCHULI;调键值处理子程序 JZ EXIT;没有键按下转到返回 LCALL DIR LCALL DIR;调显示去抖动 LCALL KEYCHULI;调键值处理子程序 JZ EXIT;没有键按下转到返回 MOV B, 20H;保存键值 KEYSF: LCALL KEYCHULI;调键值处理子程序 JZ KEY1;键释放,转到恢复键值 LCALL DIR;调显示子程序延时 AJMP KEYSF;等到键释放 KEY1: MOV 20H, B;键值送20H单元保存 EXIT: RET;返回 KEYCHULI: PUSH PSW;保护现场 CLR RS1;改变寄存器组号 SETB RS0 MOV P1, #0FFH;先向P1口写1 MOV A, P1;P1口值送累加器A CPL A;A值取反 ANL A, #0FH;保存P1口的低4位 MOV 20H, A;A值送20H保存 CLR RS1;改变寄存器组号 CLR RS0 POP PSW;恢复现场 RET;显示子程序* DIR: PUSH PSW ;恢复现场 SETB RS1 ;改变寄存器组号 CLR RS0 MOV R0, #79H;建立显示缓冲区首地址 MOV R3, #0FBH;设置位控码 LD0: MOV P2, R3;送位控码 MOV A, R0;缓冲区值送累加器A DISP1: ADD A, #1BH MOVC A, A+PC;取段控码并送A中 DISP2: MOV P0, A;送段控码 MOV R2, #09H;设置延时循环次数 ACALL DEY;延时点亮 INC R0;缓冲区地址加1 MOV A, R3;位控码送A JNB ACC.1, HERE;是否到最高位,是转到返回 JBACC.5, LD2RL ARL A;不到向显示器高位移位 LD2:RL AMOV R3, A;位控值保存到R4中 AJMP LD0;继续扫描 HERE: CLR RS0;改变寄存器组号 CLR RS1 POP PSW;恢复现场 RET;返回 DBB: DB 0C0H DB 0F9H DB 0A4H DB 0B0H DB 99H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家电网有限公司高校毕业生招聘考试公共与行业知识题库(2027版)
- 2026司法所的面试题目及答案
- 2026死亡面试题及答案
- 2026四川特岗面试题目及答案
- 慈善组织介绍课件
- 创伤中心培训课件
- 慈善主题讲课课件
- 参赛作品答辩模板课件
- 超市英语介绍课件
- 初识教学课件
- 2026年标准通信安全员c证考试题库及答案
- 临床住院患者中途离院风险管控专家共识解读及临床实践
- 2025年中国人寿保险招聘考试历年参考题库含答案详解(5套卷)
- 2026秋统编版七年级道德与法治上册(全册)逐课核心知识点
- 现场监理安全隐患巡查手册
- 小学六年级英语Unit 4 Managing money well B Let's learn教学设计
- iso9000考试题及答案
- 休闲垂钓乐园项目规划设计方案
- 高考英语3500词汇(电子版)
- 2026 年人事经理上半年人力资源工作总结
- 2026年上海市松江区社区工作者招聘笔试参考试题及答案详解
评论
0/150
提交评论