[求救]8051程式消失
想寫一個程式 讓 P1 P2 P3 分別接三個七段顯示器
然後會很快地依序 顯示 123 231 321 132 213 312
然後在P0接常開型按鈕 按下按鈕就會停在某一組數字上
可是模擬起來就是怪怪的....
ZERO EQU 30H
ONE EQU 31H
KEYTEMP EQU 32H
KEYDATA EQU 33H
STATUS EQU 34H
ORG 00H
MOV DPTR,#TABLE
MOV KEYTEMP,#0FFH
MOV KEYDATA,#0FFH
START: MOV R0,#0
MOV R1,#6
MOV R2,#1
MOV R3,#2
LOOP: MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
MOV A,R0
ADD A,R2
MOVC A,@A+DPTR
MOV P2,A
MOV A,R0
ADD A,R3
MOVC A,@A+DPTR
MOV P3,A
INC R0
ACALL KEYSCAN
MOV A,#0FFH
XCH A,KEYDATA
CJNE A,#0FFH,LONG
DJNZ R1,LOOP
SJMP START
PUS:
SJMP LOOP
KEYSCAN:PUSH ACC
MOV P0,#0FFH
MOV A,P0
CPL A
MOV STATUS,A
CJNE A,#0,KEYIN
INC ONE
MOV A,ONE
CJNE A,#5,K3
MOV ZERO,0
MOV KEYTEMP,#0FFH
MOV KEYDATA,#0FFH
SJMP K3
KEYIN: MOV ONE,#0
MOV A,STATUS
CJNE A,KEYTEMP,K2
MOV A,ZERO
CJNE A,#5,K1
SJMP K3
K1: INC ZERO
MOV A,ZERO
CJNE A,#5,K3
MOV A,KEYTEMP
MOV KEYDATA,A
SJMP K3
K2: MOV KEYTEMP,A
MOV ZERO,#1
K3: POP ACC
RET
LONG: MOV R7,#255
S1: MOV R6,#255
S2: MOV R5,#255
DJNZ R5,$
DJNZ R6,S2
DJNZ R7,S1
RET
TABLE: DB 30H
DB 60H
DB 79H
DB 79H
DB 60H
DB 30H
DB 30H
DB 60H
DB 79H
DB 79H
END
麻煩8051高手幫我檢查一下吧
第一次寫程式有點挫折....明明就拿著書在看的= =
還有如果我要在加三個按鈕
按了以後直接 按鈕一(132) 按鈕二(231) 按鈕三 (312)
這樣的話要怎麼寫呢
麻煩了~~~~~~~~~~
--
13 ALLPOST 嘰哩 ◎ 跨板式LOCAL新文章 16
--
※ 發信站: 批踢踢實業坊(ptt.cc)
推
06/12 01:28, , 1F
06/12 01:28, 1F