- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于mcs-单片机的可调六位数字时钟(汇编).doc
;本次编程时钟输出码在p0口,控制显示位为p2.7 p2.6 p2.5,共八个数码管
org 0000h
ajmp main
org 0003h
ajmp sj0 ;外部中断0跳转到sj0
org 000bh
ajmp it0p ;计时中断跳转“it0p”
org 00013h
ajmp sj1 ;外部中断0跳转到sj1
org 0100h
main:
mov tmod,#01h;设置中断0的工作方式为1
clr rs1;设置工作区0
clr rs0;设置工作区0
mov r0,#30h; 给r0设置初值30,使设置处于准备状态
mov sp,#20h;堆栈开始于20-25
mov 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,#00h
mov 32h,#00h
mov 34h,#00h
mov 35h,#00h
mov 37h,#00h
mov 38h,#00h
setb et0 ;开计时中断0
setb ex0;开外部中断0
setb px1 ;设置外部中断1优先级高,使其能中断外部中断0
setb ea ;最后将总中断开启
mov th0,#3ch ;给计时器赋初值
mov tl0,#0afh ;
setb tr0 ;开始让计时器工作,计时有效
xiansj: ;计时器工作后,主程序进入显示时钟状态
mov dptr,#shuxiang ;将数码显示队列起始地址给dptr
loop0: ;
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,#0ffh
mov p2,r2 ;
mov p0,a
inc r1;r1自加1,准备对下一个数值进行显示
mov a,#20h ;p2的显示位对应以20为间隔
add a,r2
mov r2,a ;对寄存器进行加法的步骤
mov a,r1
cjne 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,r0
subb a,#31h
mov b,#20h
mul ab
mov r5,a ;r5是显示位置,与r0有对应关系
mov a,@r0
movc a,@a+dptr
mov p0,#0ffh
mov p2,r5
mov p0,a
ret
sj0:clr ex0;中断0程序开始
push acc
clr tr0
jingts1:mov a,#01h
add a,r0
mov r0,a
cjne r0,#33h,tiao3
ajmp jingts1
tiao3:cjne r0,#36h,tiao6;可以不讨论33.36两种情况,因为中断1会处理
ajmp jingts1
tiao6:cjne r0,#39h,tiao000
mov r5,38h ;判断设置是否超过24
cjne r5,#02h,panduan3
mov a,37h
subb a,#03h
jc panduan3;
clr ex1
dec r0
mov 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 ex1
ajmp tiao000 ;
panduan3:
mov p0,#0bfh
mov p2,#40h
acall yanshi
文档评论(0)