求单片机高手给指点下 shixi.asm(6): error A45: UNDEFINED SYMBOL (PASS-2)帮忙!!

Build target 'Target 1'
assembling shixi.asm...
shixi.asm(1): error A9: SYNTAX ERROR
shixi.asm(2): error A9: SYNTAX ERROR
shixi.asm(6): error A45: UNDEFINED SYMBOL (PASS-2)
shixi.asm(7): error A45: UNDEFINED SYMBOL (PASS-2)
shixi.asm(20): error A45: UNDEFINED SYMBOL (PASS-2)
shixi.asm(23): error A45: UNDEFINED SYMBOL (PASS-2)
shixi.asm(32): error A40: INVALID REGISTER
Target not created

程序:
SPEAKER REG P1.0 ;喇叭连接到p1.0
KEY REG P2 ;p2连接到八个按钮开关

ORG 0 ;程序从0开始
START: MOV DPTR,#TIMES ;将数据指针指向TIMES
MOV KEY,#0FFH ;将P2设计为输入功能
MOV A,KEY ;读入按钮开关状态
SETB CY ;CY置1
MOV R0,#8 ;(8 KEYS)
MOV R1,#0 ; key
LOOP: RRC A ;Acc右移
JNC SOUND ;若CY=0,则发声
INC R1 ;R1+1
DJNZ R0,LOOP ;判断下一个按钮
JMP START ;八个按钮都判读,则从头开始

SOUND: MOV A,R1 ;按键值放入ACC
MOVC A,@A+DPTR ;读音阶
MOV 20H,A ;储存音阶
CPL SPEAKER ;驱动喇叭
CALL DELAY ;调用延时子程序
MOV A,20H ;取回音阶
CPL SPEAKER ;驱动喇叭
CALL DELAY ;调用延时子程序
JMP START ;跳到开始START

TIMES: DB 95,85,76,72,64,57,50,48 ;

DELAY: NOP
MOV R7,#3
DJNZ R7,$
DJNZ A,DELAY
RET

END

SPEAKER REG P1.0 ;喇叭连接到p1.0
KEY REG P2

可能与编译器有关
你把REG改为EQU试试
还有P1.0这样写对有些编译器来说,也是不认的,你是在那个上面编译的

还有DJNZ操作的只能是通用寄存器,不能操作累加器A,所以你应该把A的值先给R6
也就是在调用延时之前,执行MOV R6,A

延时改为

DELAY: NOP
MOV R7,#3
DJNZ R7,$
DJNZ R6,DELAY
RET

END

//*******************************************刚才试了一下,在KEILC里面,下面的程序是可以的

SPEAKER EQU P1.0 ;喇叭连接到p1.0
KEY EQU P2 ;p2连接到八个按钮开关

ORG 0 ;程序从0开始
START: MOV DPTR,#TIMES ;将数据指针指向TIMES
MOV KEY,#0FFH ;将P2设计为输入功能
MOV A,KEY ;读入按钮开关状态
SETB CY ;CY置1
MOV R0,#8 ;(8 KEYS)
MOV R1,#0 ; key
LOOP: RRC A ;Acc右移
JNC SOUND ;若CY=0,则发声
INC R1 ;R1+1
DJNZ R0,LOOP ;判断下一个按钮
JMP START ;八个按钮都判读,则从头开始

SOUND: MOV A,R1 ;按键值放入ACC
MOVC A,@A+DPTR ;读音阶
MOV R6,A ;储存音阶
CPL SPEAKER ;驱动喇叭

CALL DELAY ;调用延时子程序
MOV R6,A ;取回音阶
CPL SPEAKER ;驱动喇叭
CALL DELAY ;调用延时子程序
JMP START ;跳到开始START

TIMES: DB 95,85,76,72,64,57,50,48 ;

DELAY: NOP
MOV R7,#3
DJNZ R7,$
DJNZ R6,DELAY
RET

END追问

keil4 该过来的确不报错了 我这是简易电子琴 八个按键发八个声音不同频率的 shixi.asm(32): error A40: INVALID REGISTER 这一句 DJNZ A,DELAY

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-01
汇编语言表示鸭梨很大 我学的C
第2个回答  2012-03-01
你这是 那里的程序
第一句 就报错!
第3个回答  2012-03-01
干什么用的呀追问

简易电子琴 八个按钮发出8个不同频率的音 51单片机控制 这是电路图

第4个回答  2020-04-02
你好!
汇编语言表示鸭梨很大
我学的C
如果对你有帮助,望采纳。
相似回答
大家正在搜