已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
;本次编程时钟输出码在p0口,控制显示位为p2.7 p2.6 p2.5,共八个数码管org 0000hajmp mainorg 0003hajmp sj0;外部中断0跳转到sj0org 000bhajmp it0p;计时中断跳转“it0p”org 00013hajmp sj1 ;外部中断0跳转到sj1org 0100hmain:mov tmod,#01h;设置中断0的工作方式为1clr rs1;设置工作区0clr rs0;设置工作区0mov r0,#30h; 给r0设置初值30,使设置处于准备状态mov sp,#20h;堆栈开始于20-25mov 30h,#14h;给计时赋初次数mov 41h,#00h;给显示位赋值,用于显示设置位用于对应mov 42h,#20h; mov 43h,#40h;可删除 mov 44h,#60h; mov 45h,#80h; mov 46h,#0a0h;可删除mov 47h,#0c0h; mov 48h,#0e0h; mov 33h,#0ah;横杠位对应输出值位置mov 36h,#0ah;横杠位对应输出值位置mov 31h,#00hmov 32h,#00hmov 34h,#00hmov 35h,#00hmov 37h,#00hmov 38h,#00hsetb et0 ;开计时中断0setb ex0;开外部中断0setb px1 ;设置外部中断1优先级高,使其能中断外部中断0setb ea ;最后将总中断开启mov th0,#3ch ;给计时器赋初值mov tl0,#0afh ;setb tr0 ;开始让计时器工作,计时有效xiansj: ;计时器工作后,主程序进入显示时钟状态mov dptr,#shuxiang;将数码显示队列起始地址给dptrloop0:;mov r1,#31h;31对应秒第一位,mov r2,#00h ; p2由00对应第一位loop1: ;jb ex1,tiao111;进入设置后,主程序必须只显示设置位mov a,r1;中断完毕后,跳转回来时,r1改变也无所谓movc a,a+dptr;只要去r1处于31-38即可mov p0,#0ffhmov p2,r2;mov p0,ainc r1;r1自加1,准备对下一个数值进行显示mov a,#20h ;p2的显示位对应以20为间隔add a,r2mov r2,a ;对寄存器进行加法的步骤mov a,r1cjne r1,#39h,loop1;判断r1达到的值,对下一位数进行显示ajmp loop0 ;当8位数值显示完毕,跳转回显示状态起始处tiao111: ;acall fangfuxyw ;调用反复显示设置位程序ajmp loop1 ;跳回loop1使设置完毕主程序后进入显示时钟状态shuxiang:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0bfh fangfuxyw: ;反复显示设置位程序mov a,r0subb a,#31hmov b,#20hmul ab mov r5,a ;r5是显示位置,与r0有对应关系mov a,r0movc a,a+dptrmov p0,#0ffhmov p2,r5mov p0,aretsj0:clr ex0;中断0程序开始push accclr tr0jingts1:mov a,#01hadd a,r0mov r0,acjne r0,#33h,tiao3ajmp jingts1tiao3:cjne r0,#36h,tiao6;可以不讨论33.36两种情况,因为中断1会处理ajmp jingts1tiao6:cjne r0,#39h,tiao000mov r5,38h ;判断设置是否超过24cjne r5,#02h,panduan3mov a,37hsubb a,#03hjc panduan3;clr ex1dec r0mov 4bh,#0ffh;to01:mov 4ch,#0ffh;to02:acall fangfuxyw;dec r0;acall fangfuxyw;inc r0;djnz 4ch,to02;djnz 4bh,to01;mov r0,#37h;setb ex1ajmp tiao000 ;panduan3:mov p0,#0bfhmov p2,#40hacall yanshimov p2,#0a0hacall yanshiclr ex1pop accmov r0,#30hsetb ex0setb tr0reti;设置时间结束 跳回主程序tiao000:setb ex1 ;acall yanshixian ;pop acc;setb ex0;reti ;sj1: ;外部中断1,对设置位进行加1clr ea ;在加1时,关闭所有中断,防止抖动。;改为关闭中断1(clr ex1)亦可,对应跳出前开启也应修改push acc ;累加器a发生改变,应保护mov a,#01h ;进行加1,必须使用累加器,由于分支较多,在开始处设置cjne r0,#31h,ssj2 ;现在判断r0为何值,因为不同情况最大值有区别ajmp ssj000ssj2:cjne r0,#32h,ssj3ajmp ssj666ssj3:cjne r0,#33h,ssj4ajmp retunt3ssj4:cjne r0,#34h,ssj5ajmp ssj000ssj5:cjne r0,#35h,ssj6ajmp ssj666ssj6:cjne r0,#36h,ssj7ajmp retunt3ssj7:cjne r0,#37h,ssj8ajmp ssj000ssj8:cjne r0,#38h,ssj9ajmp ssj222ssj9:cjne r0,#39h,yichan00mov 31h,#00h;当r0等于39,若进入中断1mov 32h,#00h ;则视为对时钟清零mov 34h,#00h;mov 35h,#00hmov 37h,#00hmov 38h,#00hajmp wangshi ;准备跳出,但不延时yichan00:mov r0,#31h;发生异常,给r0赋值ajmp wangshi ;跳出程序ssj000: ;限制最大值为10时cjne r0,#09h,ssj0001;到达是否限制数mov r0,#00hajmp retunt3 ssj0001: add a,r0;没到达限制数时,加1mov r0,aajmp retunt3 ;准备跳出ssj666: ;限制最大值为5时cjne r0,#05h,ssj6661 ;mov r0,#00hajmp retunt3ssj6661:add a,r0 ;没到达限制数时,加1mov r0,aajmp retunt3ssj222:;限制最大值为2时cjne r0,#02h,ssj2221mov r0,#00hajmp retunt3ssj2221:add a,r0mov r0,aajmp retunt3 ;准备跳出retunt3:;外部中断1(sj1)所有分支结束跳转点acall yanshixian ;延时并显示设置位wangshi: ;此跳转点专为清零后直接跳出pop acc ;每次跳出前应该对应出栈setb ea;对应每次中断关闭总中断,开启reti;完成设置位的增1,跳出外部中断1yanshixian:mov 4bh,#40h ;延时同时显示设置位too01:mov 4ch,#0ffhtoo02:acall fangfuxywdjnz 4ch,too02djnz 4bh,too01retyanshi:mov 4bh,#04h;延时程序,约为0.5秒lpp0:mov 4ch,#0ffhlpp1:mov 4dh,#0ffh ;djnz 4dh,$djnz 4ch,lpp1djnz 4bh,lpp0ret;从子程序中返回it0p: ;当计时0.05s后跳转到这里push psw; 对状态及累加器保护push acc;mov th0,#3ch ; 给计时重新赋初值mov tl0,#0afh ;djnz 30h,retunt ;判断是否到达1秒mov 30h,#14h ;1秒到达,重新赋初值计时1smov a,#01h ;给秒一位加1add a,31h ;mov 31h,a ;加1步骤cjne a,#0ah,retunt;判断是否到达10秒mov 31h,#00h ;到达10秒,重新赋值计算mov a,#01h ;给秒二位加1add a,32hmov 32h,acjne a,#6h,retunt ;60秒是否到达mov 32h,#00h ;到达60后,重新赋值计算mov a,#01hadd a,34hmov 34h,a ;同时给分位加1cjne a,#0ah,retunt;判断分一位是否到达10mov 34h,#00h ;mov a ,#01hadd a,35hmov 35h,acjne a,#6h,retunt ;步骤逐步递推mov 35h,#00hmov a,#01hadd a,37hmov 37h,acjne a,#0ah,ret
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年碳汇林碳减排合同
- 2025年碳捕捉设施运营协议
- 2025年水果冷链物流协议
- 云南省砚山县二中2026届数学高一第一学期期末学业水平测试模拟试题含解析
- 山东省菏泽市23校联考2025-2026学年物理高一第一学期期末达标检测模拟试题含解析
- 2025年水产养殖饲料供应协议(鲶鱼用)
- 公务员招聘实战经验分享职业选择与面试技巧的案例分析
- 油茶种植委托协议书
- 小家电供货合同范本
- 平台与个人的协议书
- 八年级上册劳动与技术全册教案四川省教育科学研究所
- 住院医师规范化培训在培证明
- 猫(猫的形态、习性、繁殖)-课件
- 霍普金森杆实验重点技术简介
- 产业发展规划调研报告
- 粉末压制成形原理课件
- 99S203 消防水泵接合器安装图集
- 《公路工程行业标准制修订管理导则》(JTG 1002-2022)
- 老年性尿失禁成医课件
- 药物中间体以及合成
- 机场管制5 - 跑道侵入
评论
0/150
提交评论