1、MAX7219
MAX7219是MAXIM公司生產的串行輸入/輸出共陰極數碼管顯示驅動芯片,一片MAX7219可驅動8個7段(包括小數點共8段)數字LED、LED條線圖形顯示器、或64個分立的LED發光二級管。該芯片具有10MHz傳輸率的三線串行接口可與任何微處理器相連,只需一個外接電阻即可設置所有LED的段電流。
它的操作很簡單,MCU只需通過模擬SPI三線接口就可以將相關的指令寫入MAX7219的內部指令和數據寄存器,同時它還允許用戶選擇多種譯碼方式和譯碼位。此外它還支持多片7219串聯方式,這樣MCU就可以通過3根線(即串行數據線、串行時鐘線和芯片選通線)控制更多的數碼管顯示。MAX7219的外部引腳分配如圖1所示及內部結構如圖2所示。
圖1 ?MAX7219的外部引腳分配
圖2 ?MAX7219的內部引腳分配
1)引腳功能:
DIN:串行數據輸入端。當CLK為上升沿時,數據存入內部的16位寄存器
DOUT:串行數據輸出端,用于級連擴展
LOAD:裝載數據輸入,在裝載的上升沿,串行輸入的最后一個16位數據被鎖存。
CLK:串行時鐘輸入,其最大工作頻率可達10MHz。時鐘上升沿是數據輸入,時鐘下降時數據從串行數據輸出口輸出
DIG0~DIG7:8位LED位選線,從共陰極LED中吸入電流
SEGA~SEGGDP7段驅動和小數點驅動
ISET:通過一個10k電阻和Vcc相連,設置段電流
GND:地線
V+:電源
2)MAX7219寄存器:
MAX7219有下列幾組寄存器:(如圖3)
MAX7219內部的寄存器如圖3,主要有:譯碼控制寄存器、亮度控制寄存器、掃描界限寄存器、關斷模式寄存器、測試控制寄存器。編程時只有正確操作這些寄存器,MAX7219才可工作。
圖 3 MAX7219內部的相關寄存器
(1)譯碼控制寄存器(X9H)
如圖4所示,MAX7219有兩種譯碼方式:B譯碼方式和不譯碼方式。當選擇不譯碼時,8個數據為分別一一對應7個段和小數點位;B譯碼方式是BCD譯碼,直接送數據就可以顯示。實際應用中可以按位設置選擇B譯碼或是不譯碼方式。
圖4 MAX7219的譯碼控制寄存器
當選擇軟件譯碼方式時,數據D7~D0對應的MAX7219碼的各段筆劃如表5所列。當工作于硬件(B碼)譯碼模式時,譯碼器只選擇數據寄存器中較低的幾位(D3~D0),不考慮D4~D6位。D7位顯示十進制小數點,獨立于譯碼器,當D7=1時,十進制小數DP點亮。字符0~9對應的16進制碼為&TImes;0~&TImes;9,字符-、E、H、L、P和消隱分別對應的16進制碼為×A~×F。
(2)掃描界限寄存器(XBH)
如圖5所示,此寄存器用于設置顯示的LED的個數(1~8),比如當設置為0xX4時,LED0~5顯示。
圖5 MAX7219的掃描界限控制寄存器
(3)亮度控制寄存器(XAH)
共有16級可選擇,用于設置LED的顯示亮度,從0xX0~0xXF
(4)關斷模式寄存器(XCH)
共有兩種模式選擇,一是關斷狀態,(最低位D0=0)一是正常工作狀態(D0=1)。
(5)顯示測試寄存器(XFH)
顯示檢測寄存器有兩種操作模式:一般測試和顯示測試。顯示測試模式時所有的LED點亮,方法是將所有控制字寄存器(包括關閉寄存器)置成無效。在顯示測試模式下掃描8位的串行接口8位LED顯示驅動器MAX7219工作周期是31/32。正常測試的16進制碼為×0,顯示測試的16進制碼為×1。
(6)空操作寄存器
空操作寄存器在MAX7219串接時使用,把所有芯片的LOAD端連在一起,并將DOUT連接到下一個MAX7219的DIN上。DOUT是CMOS輸出,可以驅動后邊的串接MAX7219。例如,4個MAX7219串聯,然后寫第4個片子,再送入設想的16位字,緊跟3個空操作碼(×0××),當LOAD升高時,所有裝置的數據被鎖存,前3個芯片接到空操作命令,第4個芯片接到設想的數據。
2、74HC595引腳圖
74HC595管腳功能
1)74HC595工作原理:
(1)74HC595的數據端:
QA--QH: 八位并行輸出端,可以直接控制數碼管的8個段。
QH‘: 級聯輸出端。我將它接下一個595的SI端。
SI: 串行數據輸入端。
(2)74hc595的控制端說明:
/SCLR(10腳): 低電平時將移位寄存器的數據清零。通常我將它接Vcc。
SCK(11腳):上升沿時數據寄存器的數據移位。QA--》QB--》QC--》。。。--》QH;下降沿移位寄存器數據不變。(脈沖寬度:5V時,大于幾十納秒就行了。我通常都選微秒級)
(3)控制移位寄存器
SCK 上升沿 數據 移位
SCK 下降沿 數據 保持
RCK(12腳):上升沿時移位寄存器的數據進入存儲寄存器,下降沿時存儲寄存器數據不變。通常我將RCK置為低電平,當移位結束后,在RCK端產生一個正脈沖(5V時,大于幾十納秒就行了。我通常都選微秒級),更新顯示數據。
(4)控制存儲寄存器
RCK 上升沿 移位寄存器 的 數據進入 存儲寄存器 RCK 下降沿 存儲寄存器數據不變
/G(13腳): 高電平時禁止輸出(高阻態)。如果單片機的引腳不緊張,用一個引腳控制它,可以方便地產生閃爍和熄滅效果。比通過數據端移位控制要省時省力。
74595的主要優點是具有數據存儲寄存器,在移位的過程中,輸出端的數據可以保持不變。這在串行速度慢的場合很有用處,數碼管沒有閃爍感。
與74hc164只有數據清零端相比,74hc595還多有輸出端時能/禁止控制端oe,可以使輸出為高阻態。所以是用這塊芯片會更方便。
74HC595時序圖
74HC595是具有8位移位寄存器和一個存儲器,三態輸出功能。移位寄存器和存儲器是分別的時鐘。數據在SHcp(見時序圖)的上升沿輸入,在STcp(見時序圖)的上升沿進入的存儲寄存器中去。如果兩個時鐘連在一起,則移位寄存器總是比存儲寄存器早一個脈沖。移位寄存器有一個串行移位輸入(Ds),和一個串行輸出(Q7’),和一個異步的低電平復位,存儲寄存器有一個并行8位的,具備三態的總線輸出,當使能OE時(為低電平),存儲寄存器的數據輸出到總線。
3、max7219與74hc595區別
MAX7219一共有24根引腳,這里面有一些跟74HC595的引腳功能類似的引腳如下:
可以看出,MAX7219跟74HC595一樣也是通過DIN引腳串行輸入數據,在CLK引腳的上升沿移入移位寄存器,在LOAD引腳的上升沿將位移寄存器的數據復制到內部的各種寄存器里。不同的是:
74HC595的移位寄存器是8位的,而MAX7219的移位寄存器是16位的,每次串行輸入數據需要連續輸入16位數據。
74HC595內部只有1個8位的鎖存器,功能很簡單,只是原樣輸出到8根輸出引腳。而MAX7219內部有好幾個不同功能的寄存器。
評論
查看更多