串行接口LED數碼管及鍵盤管理ZLG7289A的原理與應用
MOV DATA_OUT,#10100001B
CALL SEND
MOV DATA_OUT,#10000001B ;下載數據且譯碼指令
CALL SEND
MOV DATA_OUT,TEN ;發送十位數字到ZLG8279A
CALL SEND
MOV DATA_OUT,#10000000B ;下載數據且譯碼指令
CALL SEND
MOV DATA_OUT,B ;發送個位數字到ZLG8279A;
CALL SEND
SETB CS
WAIT:JNB KEY,WAIT ;等待按鍵松開
JMP MAIN
;**** 發送一個字節到ZLG8279A,高位在前
SEND: MOV BIT_COUNT,#8 ;記數器設定
CLR CS ;CS置低電平
CALL LONG_DELAY ;長延時子程序
SEND_LOOP:MOV C,DATA OUT.7 ;輸出1位
MOV DAT,C
SETB CLK ;CLK置高電平
MOV A,DATA_OUT ;待發送數據左移
RL A
MOV DATA_OUT,A
CALL SHORT_DELAY ; 短延時子程序
CLR CLK ; CLK置低電平
CALL SHORT_DELAY
DJNZ BIT_COUNT,SEND_LOOP ;8位是否發送完畢
CLR DAT ;發送完畢,返回
RET
;***接收一個字節到ZLG8279A,高位在前
RECEIVE:MOV BIT_COUNT,#8 ;記數器設定
SETB DAT ;設定P1.2(DATA)為高電平輸入狀態
CALL LONG_DELAY ;
RECEIVE_LOOP: SETB CLK ; CLK置高電平
CALL SHORT_DELAY
MOV A,DATA_IN ;數據左移
RL A
MOV DATA_IN,A
MOV C,DAT ;讀取一位數據
MOV DATA_IN.0,C
CLR CLK
CALL SHORT_DELAY
DJNZ BIT_COUNT,RECEIVE_LOOP ; 8位是否接收完畢
CLR DAT ; 重設DAT口為低電平(輸出狀態)
RET
;**************延時子程序
LONG_DELAY: MOV TIMER,#25 ;設定延時時間為50μs
DELAY_LOOP: DJNZ TIMER,DELAY_LOOP
RET
SHORT_DELAY:MOV TIMER,#4 ;設定延時時間為50μs
SHORT_LP: DJNZ TIMER,SHORT_LP
RET
END
6 結束語
ZLG8279A具有的特點和豐富的指令系統,使得由其組成的LED顯示和鍵盤電路具有外圍電路簡單,功能強大,使用方便,可靠性高,與MCU接口簡單等特點,是LED顯示和鍵盤電路的首選器件。筆者利用該芯片制作的“學生提問指示儀”,經使用,效果良好。
評論