作者:郭尚刚 | 来源:互联网 | 2023-05-17 17:22
OUTBIT EQU 0E101H ;位控(LED)
CLK164 EQU 0E102H ;(164时钟)
DAT164 EQU 0E102H ;(164数据位传送)
LEDMAP : DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
DELAY: DJNZ R6,DELAY ;延迟子程序
RET
ORG 0000H
MOV R2,32H
MOV B,#8
CLR A
RES: MOV DPTR,#LEDMAP ;将数地址送
MOV A , @DPTR
MOVC RO,A
LJMP START
SEDD: MOV R3,A ;向164传八个位数
ANL A,#01H
MOVC DPTR,#DAT164
MOVX @DPTR,A
MOVX @DPTR,#CLK164
ORL A,#FFH
MOVX @DPTR,A
ANL A,#00H
MOVX @DPTR,A
RR R3
MOV A,R3
DJNZ B,SEDD
RET
LIGHT: MOV DPTR,#OUTBIT ;点亮LED子程序
MOV A ,R2
MOVX @DPTR,A
MOV R6,#10
CALL DELAY
RR R2
RET
START: MOV A,@RO ;主程序
CALL SEDD
CALL LIGHT
INC R0
JMP START
CJNE RO,#LEDMAP+15,RES
END
[b]KEIL 调试结果8LED.a(8): 错误 A9: SYNTAX ERROR8LED.a(8): 错误 A9: SYNTAX ERROR
8LED.a(8): 错误 A3: ILLEGAL CHARACTER
8LED.a(8): 错误 A3: ILLEGAL CHARACTER
8LED.a(8): 错误 A3: ILLEGAL CHARACTER
请学过C51的同学帮我改哈,谢谢
7 个解决方案
DELAY: DJNZ R6,DELAY ;延迟子程序
上面这一行的注释不能用全角的分号。
以下用了3个全角分号",",需改用半角符号";"
DELAY: DJNZ R6,DELAY ;延迟子程序
LIGHT: MOV DPTR,#OUTBIT ;点亮LED子程序
START: MOV A,@RO ;主程序
在编译的代码区不要出现全角字符。空格及注释分号也不可以
你这汇编的程序 你让学C51的改啊!
再说 ,你把编译的时候出现的错误位置给大家标注一下 让大家看啊