全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序12-8:电子时钟的程序(对应图12-33)S_SETBITP1.0; SECOND按钮位M_SETBITP1.1; MINUTE按钮位H_SETBITP1.2; HOUR按钮位SECONDEQU30H; 秒计数值变量MINUTEEQU31H; 分计数值变量HOUREQU32H; 小时计数值变量TCNTEQU34H; 1秒定时计数器ORG00H; 起始地址JMPSTARTORG0BH; Timer 0中断向量地址JMPINT_T0START:MOVDPTR,#TABLE; 装七段数码管段码数据表TABLEMOVHOUR,#0; 计数值全部清0MOVMINUTE,#0MOVSECOND,#0MOVTCNT,#0MOVTMOD,#01H; Timer 0作定时器,模式1MOVTH0,#(65536-50000)/256;定时50毫秒MOVTL0,#(65536-50000)MOD 256MOVIE,#82H; 中断使能SETBTR0; 启动Timer 0; 以下是判断SECOND、MINUTE、HOUR按钮是否被按下A1:CALLDISPLAYJNBS_SET,S1; 判断SECOND按钮JNBM_SET,S2; 判断MINUTE按钮JNBH_SET,S3; 判断HOUR按钮JMPA1; 循环检测S1:CALLDELAY; 去抖动JBS_SET,A1INCSECOND; 秒位计数值加1MOVA,SECOND; A=SECONDCJNEA,#60,J0; 判断是否到60秒MOVSECOND,#0; 如果到了就清0秒位计数值JMPK1; 跳到K1段S2:CALLDELAYJBM_SET,A1K1:INCMINUTE; 分位计数值加1MOVA,MINUTE; A=MINUTECJNEA,#60,J1; 判断是否到60分MOVMINUTE,#0; 如果到了就清0分位计数值JMPK2S3:CALLDELAYJBH_SET,A1K2:INCHOUR; 小时计数值加1MOVA,HOUR; A=HOURCJNEA,#24,J2; 判断是否到24小时MOVHOUR,#0; 如果到了就清0秒、分、小时位计数值MOVMINUTE,#0MOVSECOND,#0JMPA1; 以下程序等待SECOND、MINUTE、HOUR按钮放开J0:JBS_SET,A1CALLDISPLAYJMPJ0J1:JBM_SET,A1CALLDISPLAYJMPJ1J2:JBH_SET,A1CALLDISPLAYJMPJ2; Timer 0中断服务子程序, 进行秒、分、小时的计时INT_T0:MOVTH0,#(65536-50000)/256; 装计数初始值MOVTL0,#(65536-50000)MOD 256INCTCNT; 1秒计数器增加1MOVA,TCNT; A=TCNTCJNEA,#20,RETUNE; 计时1秒INCSECOND; 秒计数器增加1MOVTCNT,#0; 清零TCNTMOVA,SECOND; A=SECONDCJNEA,#60,RETUNE; 计时60秒INCMINUTE; 分计数器增加1MOVSECOND,#0; 清零SECONDMOVA,MINUTE; A=MINUTECJNEA,#60,RETUNE; 计时60分INCHOUR; 小时计数器增加1MOVMINUTE,#0; 清零MINUTEMOVA,HOUR; A=HOURCJNEA,#24,RETUNE; 计时24小时MOVHOUR,#0; 秒、分、小时计数值清0MOVMINUTE,#0MOVSECOND,#0MOVTCNT,#0RETUNE:RETI; 中断服务子程序结束; 以下为七段数码管显示的子程序DISPLAY:MOVA,SECOND; A=SECOND,显示秒MOVB,#10; B=10DIVAB; A除以BCLRP3.6; 清零P3.6MOVCA,A+DPTR; 七段数码管段码数据装入AMOVP0,A; 从P0口输出CALLDELAYSETBP3.6; P3.6置1MOVA,B; A=BCLRP3.7; P3.7清0MOVCA,A+DPTR; 七段数码管段码数据装入AMOVP0,A; 从P0口输出CALLDELAYSETBP3.7; P3.7置1CLRP3.5; P3.5清0MOVP0,#40H; 显示短线分隔符CALLDELAYSETBP3.5; P3.5置1MOVA,MINUTE; A=MINUTE,显示分MOVB,#10; B=10DIVAB; A除以BCLRP3.3; P3.3清0MOVCA,A+DPTR; 七段数码管段码数据装入AMOVP0,A; 从P0口输出CALLDELAYSETBP3.3; P3.3置1MOVA,B; A=BCLRP3.4; P3.4清0MOVCA,A+DPTR; 七段数码管段码数据装入AMOVP0,A; 从P0口输出CALLDELAYSETBP3.4; P3.4置1CLRP3.2; P3.2清0MOVP0,#40H; 显示短线分隔符CALLDELAYSETBP3.2; P3.2置1MOVA,HOUR; A=HOUR,显示小时MOVB,#10; B=10DIVAB; A除以BCLRP3.0; P3.0清0MOVCA,A+DPTR; 七段数码管段码数据装入AMOVP0,A; 从P0口输出CALLDELAYSETBP3.0; P3.0置1MOVA,B; A=BCLRP3.1; P3.1清0MOVCA,A+DPTR; 七段数码管段码数据装入AMOVP0,A; 从P0口输出CALLDELAYSETBP3.1; P3.1置1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风电场施工现场协调与管理方案
- 河道整治工程设计实施方案
- 生态产品价值实现路径及其影响因素研究
- 铺面租赁乙方合同范本
- ppp模式合同协议
- 2026年爬墙机器人市场需求分析
- 人防工程防火防爆设计方案
- 东莞股权转让协议书
- 三方合作办厂协议书
- 乡村夫妻生育协议书
- 汽车吊机支腿反力计算及梁板受力分析
- 第十四章基因的表达与调控
- 水库大坝安全评价导则
- 点的立体构成
- 环境因素识别评价台账
- 《史记》上册注音版
- JJF 1985-2022直流电焊机焊接电源校准规范
- 《研究生学术英语读译教程》课件Unit 8 The Lessons of Economics
- 《工作场所安全使用化学品规定》
- 上锁挂牌教程课件
- 阅读推荐课《不老泉》课件
评论
0/150
提交评论