您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>數(shù)碼管>

軟件譯碼編程 - MAX7219命令控制字(電路圖與例程)

2018年01月17日 10:16 網(wǎng)絡(luò)整理 作者: 用戶評論(0

(1) 軟件譯碼編程:

先找出各字符的編碼,根據(jù)a 、b 、c 、d 、e 、f 、g 各段與數(shù)據(jù)位的對應(yīng)關(guān)系,可得: H 中a 、d 段為0 , 。其余為1 ,即00110111 或37H ,同樣E、L 、P 、7、2、1、9 的編碼分別為4FH、0EH、67H、70H、6DH、30H、73H。將HEL P7219 字符編碼分別存入8051 地址為50H 單元(片內(nèi)RAM存放顯示數(shù)據(jù)的8 個字節(jié)單元首地址) 。顯示器最左邊一位為第一位,R0 為對應(yīng)的顯示位,R1 為顯示數(shù)據(jù)單元地址,R2 為顯示位數(shù),共8 位。因8051 串行輸出的時序順序為將一字節(jié)的最低位最先送出, 而MAX7219 的時序順序為將接收到的第一位當(dāng)作該一字節(jié)數(shù)據(jù)的最高位, 所以需要改變送出位的順序。

程序如下:

SHOW: CL R P1. 0 ;LOAD 置低

MOV A , # 09H ;譯碼模式控制字

LCALL CHAN GE

MOV A , # 00H ;軟件譯碼

LCALL CHAN GE

SETB P1. 0 ; 置LOAD 為高, 鎖存軟件譯碼控制字

ACALL DISPLA Y8 ;顯示8 位數(shù)據(jù)

DISPLA Y8 :MOV R0 , # 01H ;置顯示位,從第0 位開始

MOV R1 , # 50H ;置顯示數(shù)據(jù)首址

MOV R2 , # 08H ;共8 位顯示

A GAIN : CL R P1. 0

MOV A ,R0 ;顯示位

LCALL CHAN GE

MOV A , @R1 ;取出顯示數(shù)據(jù)

LCALL CHAN GE ;輸出數(shù)據(jù)

SETB P1. 0

INC R0 ;指向下一位

INC R1 ;指向下一位顯示數(shù)據(jù)

DJNZ R2 ,A GAIN ;8 位未完,繼續(xù)

RET

CHAN GE : MOV C ,ACC. 7 ; 改變位順序,對應(yīng)于接收位

MOV 0A0H ,C

MOV C ,ACC. 6

MOV 0A1H ,C

MOV C ,ACC. 5

MOV 0A2H ,C

MOV C ,ACC. 4

MOV 0A3H ,C

MOV C ,ACC. 3

MOV 0A4H ,C

MOV C ,ACC. 2

MOV 0A5H ,C

MOV C ,ACC. 1

MOV 0A6H ,C

MOV C ,ACC. 0

MOV 0A7H ,C

MOV A ,0A0H

MOV SBU F ,A (下轉(zhuǎn)P45圖3 8051 與MAX7219 組成的8 位L ED 顯示器)

JNB TI , $ ;等待發(fā)送完畢

CL R TI ;清TI 標(biāo)志,允許再發(fā)

RET

(2) 硬件譯碼編程:

若采用B 碼譯碼顯示“HEL P7219”字符串,對應(yīng)的編碼分別為:0CH、0BH、0DH、0EH、07H、02H、01H、09H。8 個數(shù)據(jù)字節(jié)存50H開始的單元中,程序如下:

SHOW: CL R P1. 0 ;LOAD 置低

MOV A , # 09H ;譯碼模式控制字

LCALL CHAN GE

MOV A , # FFH ;B 碼硬件譯碼

SETB P1. 0 ; 置LOAD 為高, 鎖存硬件譯碼控制字

ACALL DISPLA YS ;顯示8 位數(shù)據(jù)

非常好我支持^.^

(17) 100%

不好我反對

(0) 0%

( 發(fā)表人:金巧 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?