凌阳单片机编程中的一个问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 16:16:36
以下是我变得一个程序,达到按键五次亮,按键五次再灭的目的,
实现不了,请问,问题在哪里??

//EXT1中断 a口低八位连接灯 管阴极的 b口低八位
//外部中断,每中断一次计数,每五个数一变
.include spce061a.inc
.public _main
.ram
.var TIME1

.code
_main:
int off
r1=0x00ff
[P_IOA_Attrib]=r1 //a口低八位连灯,初始值为高出 原先是liang亮的
[P_IOA_Dir]=r1

[P_IOA_Data]=r1

r1=0x4000 //因为要把 led灯的阴极接地,用的是b口高八位
[P_IOB_Dir]=r1
[P_IOB_Attrib]=r1
r1=0x4000 //改为 原来低电平 --按键后高了
[P_IOB_Data]=r1 //不是这样: ,b8端口为高入,公共极要接低电平,这样按键后,马上就会有下降沿,产生触发

r1=0x0300 //开通了 b8 9中断的能力,就等着接收申请了
[P_INT_Ctrl_New]=r1

r1=0x0037
[P_TimerA_Ctrl]=r1 //0000 0000 00,11 0,111 ===0 0 3 7

r1=0x0000
[TIME1]=r1

IRQ ON //应该是运行到这里之后,才可以等中断吧

loop:
nop
r1=0

这个程序用得是 EXT1这个中断源 做成的 ,按键的话就是 按它对应的 IOB2 了,

现在这个程序我们已经调试出来了,其实就是加好几个延时 确保一下 可以得到有效信息 ,
loop1:
r3=0xff00
delay1:
r3-=1
jnz delay1
r1=0x0004
test r1,[P_IOB_Data]
jz loop1
loop2:
r3=0xff00
delay2:
r3-=1
jnz delay2
r1=0x0004
test r1,[P_IOB_Data]
jz loop2

只要把上面这组延时程序加到中断程序的开头 就可以了

编译是什么错误啊?