找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5306|回复: 1
打印 上一主题 下一主题
收起左侧

[原创]请教“为什么中断后RAM数据不改变”的问题

[复制链接]
跳转到指定楼层
楼主
ID:16253 发表于 2009-8-14 15:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

;以下是一套数字秒表程序,分辨率0.01S
;利用TIM1产生中断,没次中断时间为0.01/8S
;P0口为六个数码管的A、B、C ~F输入
;P2.0~p2.5作位选
;;;问题??为什么结果显示一直是000000????
;为什么中断后79H到7EH的值改变了而中断返回后有是0?
;请各位赐教
org 0000h
ajmp main
org 001bh
ajmp zhong
org 003fh
main:
mov sp,60h
mov 30h,#08h
mov r7,#06h
mov r0,#79h
loop1:
 mov @r0,#00h
 inc r0
 djnz r7,loop1
mov tmod,#10h
 mov th1,#0ch
 mov tl1,#0dch
setb ea
setb et1
setb tr1
xian:
acall disp
ajmp xian

zhong:
push psw
push  acc
dec 30h
mov a,30h
jnz re              ;判断是否满八次中断
                   
mov 30h,#08h
inc 79h              ;满八次中断,+0.01S
mov a,79h
cjne a,#0ah,re        ;断是否满0.1S
            
mov 79h,#00h
inc 7ah              ;加0.1S
mov a,7ah
cjne a,#0ah,re
mov 7ah,#00h
inc 7bh              ;加1S
mov a,7bh
cjne a,#0ah,re
mov 7bh,#00h
inc 7ch                ;加10S
mov a,7ch
cjne a,#06h,re      
mov 7ch,#00h     ;到60S
inc 7dh           ;分上加1
mov a,7dh
cjne a,#0ah,re
mov 7dh,#00h
inc 7eh
mov a,7eh
cjne a,#06h, re
mov 79h,#00h      ;到60分,全部显示0
mov 7ah,#00h
mov 7bh,#00h
mov 7ch,#00h
mov 7dh,#00h
mov 7eh,#00h
pop acc
pop psw
reti
re:
 pop acc
 pop psw
 mov th1,#0ch
 mov tl1,#0dch
 setb tr1
reti

disp:
mov r1,#79h
mov r0,#0feh
mov dptr,#table
x:
mov a,@r1
movc a,@a+dptr
mov p0,a
mov p2,r0
acall delay
inc r1
mov a,r0
jb acc.5,tuichu
rl a
mov r0,a
ajmp x
tuichu: ret
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,71H
delay:mov r6,#01h
del1: mov r5,#0fh
del2: djnz r5,del2
djnz r6,del1
ret
end

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:16253 发表于 2009-8-16 09:57 | 只看该作者
怎么没一个人回答啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表