各位01的大大們好~
我是做一個8X8矩陣的89C51的程式
我用Keil uVision3去跑的時候!
他說我程式有問題
而且是DELAY的地方有問題!!
我們是照著89C51的初階書去打的!!
但是卻有問題!!因為我們想說先試試看!可不可以執行!!
程式如下
DELAY1:
MOV R5,#10
DL8: MOV R6,#200
DL9: MOV R7,#250
DJNZ R7,$
DJNZ R6,DL9
DJNZ R5,DL8
RET
這是有稍加修改過的!!
上面的DL8本來是$
DL9是$1
請問哪裡有錯~請大大們指點一下!!我順便貼上原本的程式
這是讓8X8矩陣LED顯示0到9的數字的程式!!
ORG 0
START:MOV DPTR,#TABLE
MOV R3,#10
NEXT: MOV R2,#100
LOOP: CALL DISP
DJNZ R2,LOOP
MOV R1,#8
LOP1: INC DPTR
DJNZ R1,LOP1
DJNZ R3,NEXT
JMP START
;
DISP: MOV R1,#0
MOV R5,#11111110B
MOV R4,#8
LOOP1:MOV A,R1
MOVC A,@A+DPTR
MOV P1,A
MOV P2,R5
CALL DELAY
MOV P2,#FFH
MOV A,R5
RL A
MOV R5,A
INC R1
DJNZ R4,LOOP1
RET
DELAY:
MOV R7,#5
$1: MOV R6,#200
DJNZ R6,$
DJNZ R7,$1
RET
;
TABLE:DB 00000000B;顯示數字 0
DB 01111110B
DB 10100001B
DB 10010001B
DB 10001001B
DB 10000101B
DB 01111110B
DB 00000000B
DB 00000000B;1
DB 10000000B
DB 10000000B
DB 10000010B
DB 11111111B
DB 10000000B
DB 10000000B
DB 00000000B
DB 00000000B;2
DB 11100010B
DB 10010001B
DB 10010001B
DB 10010001B
DB 10010001B
DB 10001110B
DB 00000000B
DB 00000000B;3
DB 01000010B
DB 10000001B
DB 10001001B
DB 10001001B
DB 10001001B
DB 01110110B
DB 00000000B
DB 00000000B;4
DB 00011100B
DB 00010010B
DB 00010000B
DB 00010000B
DB 11111111B
DB 00010000B
DB 00000000B
DB 00000000B;5
DB 01001111B
DB 10001001B
DB 10001001B
DB 10001001B
DB 10001001B
DB 01110001B
DB 00000000B
DB 00000000B;6
DB 01111110B
DB 10001001B
DB 10001001B
DB 10001001B
DB 10001001B
DB 01110010B
DB 00000000B
DB 00000011B;7
DB 00000001B
DB 00000001B
DB 00000001B
DB 00000101B
DB 00000011B
DB 00000001B
DB 00000001B
DB 11111001B;8
DB 01110110B
DB 10001001B
DB 10001001B
DB 10001001B
DB 10001001B
DB 01110110B
DB 00000000B
DB 00000000B;9
DB 01001110B
DB 10001001B
DB 10001001B
DB 10010001B
DB 10010001B
DB 01111001B
DB 00000000B
END
我把最原本書上的打在上面!!
請大大們幫我看一下我的原始程式有錯嗎!!




























































































