|
这个程序,用软件调试, 显示第五行的 “org 000bh ;定时器T0中断入口地址”这一段 ORG错~~~~ 请教一下各位,该怎么修改?
org 0000h ;复位地址
ljmp start
org 0030h ;外部中断0中断入口地址
reti
org 000bh ;定时器T0中断入口地址
reti
org 0013h ;外中断1中断入口地址
ljmp int1serve
org 001bh ;定时器T1中断入口地址
ljmp t1serve
org 0023h ;串行口中断入口地址
reti
org 002bh ;定时器T2中断入口地址
reti
;***********************************************
;***********************************************
clear: mov p1,#0FFH ;P1、P2口位置
mov p3,#0ffh
clr p3.5 ;关遥控输出
mov sp,#70h ;设堆栈
mov ie,#00h ;关总中断
mov ip,#04h ;设优先级
mov tmod,#20h ;设定时器2自动重装模式
mov th1,#0f3h ;定时13us
mov tl1,#0f3h
setb ex1 ;开外部1
setb it1
setb ea ;开总中断
ret
;***********************************************
;***********************************************
start: lcall clear ;调初始化程序
main: lcall keywork ;调键盘程序
orl pcon,#01h ;进入低功耗待机状态
ljmp main
nop ;设置软件陷阱
nop
nop
ljmp start
;***********************************************
;***********************************************
int1serve:
clr ie1
anl pcon,#00h ;触发待机状态苏醒
reti
;***********************************************
;***********************************************
t1serve:
cpl p3.5 ;高频调制
reti
nop ;设置软件陷阱
nop
nop
ljmp start
;***********************************************
;***********************************************
keywork:
mov p1,#0ffh ;置列线
clr p3.7 ;清行线
mov a,p1
mov b,a
cjne a,#0ffh,key1 ; 有键按下则不等转移
keyworkout:
nop
nop
ret ;键盘程序返回
key1: lcall delay5ms ;延时抖动
mov a,p1
cjne a,b,keyworkout ;确认键按下
mov dptr,#keyworktab1
mov b,a ;查列号
clr A
mov r0,a
key2: mov a,r0 ;
subb a,#08h
jnc keyworkout
mov a,r0
movc a,@a+dptr
inc r0
cjne a,b,key2
dec r0
mov a,r0 ;键号放入A
mov b,a ;键号乘3处理LJMP散转指令
add a,b
add a,b
mov dptr,#keyworktab2
jmp @a+dptr
keyworktab2:
ljmp fucation0 ;转对应功能处理
ljmp fucation1
ljmp fucation2
ljmp fucation3
ljmp fucation4
ljmp fucation5
ret
keyworktab1:
db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,07fh
ret
;******************************************************
;******************************************************
fucation0:
mov a,#02h ;脉冲个数装载
ljmp send ;转发射程序
ret
fucation1:
mov a,#03h
ljmp send
ret
fucation2:
mov a,#04h
ljmp send
fucation3:
mov a,#05h
ljmp send
ret
fucation4:
mov a,#06h
ljmp send
ret
fucation5:
mov a,#07h
ljmp send
ret
nop ;设置软件陷阱
nop
nop
ljmp start
;*****************************************************
;*****************************************************
send: mov r1,a ;装入发射脉冲个数
send0: mov r0,#0fah ;第一个码
ajmp send2
send1: mov r0,#53h ;中间码
send2: setb et1 ;开高频定时中断调制
setb tr1
nop
nop
nop
nop
nop
nop
nop
nop
djnz r0,send2 ;
mov r0,#64h ;码距
sendout:clr tr1 ;关高频定时调制
clr et1
clr p3.5
nop
nop
nop
nop
nop
djnz r0,sendout
djnz r1,send1 ;
clr p3.0 ;开工作指示灯
lcall delay500ms
setb p3.0
ret
nop ;设置软件陷阱
nop
nop
ljmp start
;*********************************************************
;*********************************************************
delay5ms:
mov r7,#45
delay5ms1:
mov r6,#54
delay5ms2:
djnz r6,delay5ms2
djnz r7,delay5ms1
ret
nop ;设置软件陷阱
nop
nop
ljmp start
;***********************************************************
;***********************************************************
delay10ms:
mov r7,#90
delay10ms1:
mov r6,#54
delay10ms2:
djnz r6,delay10ms2
djnz r7,delay10ms1
ret
nop ;设置软件陷阱
nop
nop
ljmp start
;***********************************************************;
;***********************************************************
delay500ms:
mov r5,#50
delay500ms1:
lcall delay10ms
djnz r5,delay500ms1
ret
nop 设置软件陷阱
nop
nop
ljmp start
end
;
|
|