我是學生,現在正在單片機設計,用8255和51單片機設計液晶顯示的,但是我看不懂程序,主要是8255那一段,有哪個高手幫忙把程序注釋和8255工作原理說一下啊,謝謝。。!我用的是達盛科技的試驗臺。 ;接線方法:
;PA0~PA7接DB0~DB7,PC7接BUSY,PC0接REQ,CS8255選擇CS0(0CFA0H)
;8255擴展OCMJ2X8模塊測試程序
;------------------------------------------------
PA EQU 0CFA0H
PB EQU 0CFA1H
PCC EQU 0CFA2H
PCTL EQU 0CFA3H
STOBE0 EQU 70H ;PC0復位控制字
STOBE1 EQU 71H ;PC0置位控制字
CSEG AT 0000H
LJMP START
CSEG AT 4100H
;----------------------------------------
START: MOV DPTR, #PCTL
MOV A, #88H
MOVX @DPTR, A ;置PA口輸出,PC口高4位輸入,低4位輸出
MOV A, #STOBE0
MOVX @DPTR, A
MOV A, #0F4H
ACALL SUB2
ACALL DELAY ;清屏
START1: MOV R0, #01H
MOV R1, #3CH
HE1: MOV DPTR, #PCC
MOVX A, @DPTR
JB ACC.7, HE1
ACALL SUB1
ACALL DELAY1
ACALL SUB2
DJNZ R1, HE1
ACALL DELAY
LJMP START
;-------------------------------------------------------
DELAY: MOV R2, #23H
DEL0: MOV R4, #06FH
DEL1: MOV R6, #06FH
DEL2: DJNZ R6, DEL2
DJNZ R4, DEL1
DJNZ R2, DEL0
RET
;-------------------------------------------------------
SUB2: MOV DPTR, #PA
MOVX @DPTR, A
MOV DPTR, #PCTL
MOV A, #STOBE1
MOVX @DPTR, A
INC R0
;-------------------------------------------------------
HE2: MOV DPTR, #PCC
MOVX A, @DPTR
JNB ACC.7, HE2
MOV DPTR, #PCTL
MOV A, #STOBE0
MOVX @DPTR, A
RET
;-------------------------------------------------------
DELAY1: MOV R3,#00
MOV R5,#00
DLL: DJNZ R3,$
DJNZ R5,DLL
RET
;-----------------------------------------
SUB1: MOV A, R0 ;顯示“臨沂師范學院物理系歡迎你”
MOVC A,@A+PC
RET
DB 0F0H,01D,00D,33D,57D
DB 0F0H,02D,00D,50D,42D
DB 0F0H,03D,00D,42D,06D
DB 0F0H,04D,00D,23D,22D
DB 0F0H,05D,00D,49D,07D
DB 0F0H,06D,00D,52D,26D
DB 0F0H,01D,01D,46D,79D
DB 0F0H,02D,01D,32D,77D
DB 0F0H,03D,01D,47D,21D
DB 0F0H,04D,01D,27D,22D
DB 0F0H,05D,01D,51D,13D
DB 0F0H,06D,01D,36D,67D
END
|