專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
LED矩陣顯示器可以顯示文本、圖形、動(dòng)畫(huà),具有很高的靈活性,你可以在顯示地鐵、公路或街邊廣告牌上看到它們。下面英銳恩單片機(jī)開(kāi)發(fā)工程師們分享了使用PIC單片機(jī)制作的LED矩陣顯示器,該LED矩陣顯示器為8行40列排列的320個(gè)LED,使用的單片機(jī)為PIC16F1847單片機(jī),它通過(guò)串行端口(或使用USB-UART接口的USB)從PC接收數(shù)據(jù),并借助五個(gè)74HC595移位寄存器在LED矩陣上顯示。
一、基于PIC單片機(jī)的LED矩陣顯示器原理及電路圖
在本方案中,五個(gè)8×8方形LED顯示模塊以線性方式排列,以構(gòu)建一個(gè)8行X 40列的顯示矩陣。我在該方案中使用的LED顯示模塊是Futurlec的NFM-12883AS。它們是共行陰極型,這意味著每行中所有LED的陰極都相互連接。因此,每行引腳應(yīng)從該行中的八個(gè)LED吸收電流。所有5個(gè)模塊的相似行引腳進(jìn)一步連接在一起,并饋送到ULN2803 IC的輸出接收器,該IC由8個(gè)達(dá)林頓陣列組成?,F(xiàn)在,ULN2803的每個(gè)輸出引腳都是該特定行中40個(gè)(= 8×5)LED的接收器。由于ULN2803可以每個(gè)引腳吸收高達(dá)500 mA的電流,因此每個(gè)LED的電流被限制為500/40 = 12.5 mA。
LED的陽(yáng)極端子可通過(guò)列引腳訪問(wèn),由于用的是行掃描技術(shù),所以每個(gè)列引腳只需要為一個(gè)LED提供電流,也就是說(shuō)一次在該列中只有一行處于活動(dòng)狀態(tài)。這些列由40位串行并行并行輸出的輸出驅(qū)動(dòng),該輸出是通過(guò)級(jí)聯(lián)五個(gè)74HC595 IC來(lái)構(gòu)建的。74HC595器件是一個(gè)8位串行輸入和并行/串行輸出移位寄存器,串行輸出功能允許級(jí)聯(lián)多個(gè)74HC595器件。從工程學(xué)的角度來(lái)看,74HC595可能不是列驅(qū)動(dòng)器的理想選擇,因?yàn)樗鼈儾⒉淮蛩銥長(zhǎng)ED提供電流。但是過(guò)去的一些實(shí)驗(yàn)表明,它們可以驅(qū)動(dòng)LED合理地點(diǎn)亮,因此可以用作此類LED矩陣顯示器方案中的列驅(qū)動(dòng)器。
在方案中使用的單片機(jī)是增強(qiáng)型中檔8位PIC系列的PIC16F1847。它使用內(nèi)部時(shí)鐘源(啟用PLL)以32 MHz運(yùn)行。PORTB通過(guò)ULN2803達(dá)林頓對(duì)陣列為各個(gè)行(陰極)提供接地路徑,而RA0,RA1和RA2引腳用于控制級(jí)聯(lián)移位寄存器的Data,SH_CP和ST_CP線。PIC16F1847的引腳8和7是UART通信的默認(rèn)引腳。他們進(jìn)入U(xiǎn)SB-UART模塊與PC進(jìn)行串行通信。PC上運(yùn)行的串行終端程序可用于將字符數(shù)據(jù)發(fā)送到單片機(jī),單片機(jī)將接收到的信息保存到其內(nèi)部EEPROM中。
二、本方案使用的單片機(jī)開(kāi)發(fā)軟件
這個(gè)方案的固件是使用mikroC Pro for PIC編譯器開(kāi)發(fā)的。該程序使用8×5字節(jié)(= 320位)的數(shù)組(Buffer [8][5])存儲(chǔ)顯示像素信息,每一位對(duì)應(yīng)一個(gè)LED。用戶可以使用串行終端程序?qū)⑾腜C發(fā)送到顯示板。我在Windows上使用Termite 2.9程序。發(fā)送的信息將保存到PIC的內(nèi)部EEPROM中。前兩個(gè)EEPROM位置保留用于數(shù)據(jù)輸入標(biāo)志和消息中的字符數(shù)。以下步驟詳細(xì)描述了該方案的固件如何運(yùn)行:
1.電源打開(kāi)。PIC單片機(jī)初始化端口,并監(jiān)聽(tīng)其串行端口。它會(huì)顯示一條消息“你準(zhǔn)備好輸入了嗎?Y/N到串行端口,并且該消息顯示在PC串行終端應(yīng)用程序窗口中。用戶有3秒的時(shí)間發(fā)送字符“Y”。否則,單片機(jī)會(huì)繼續(xù)并顯示預(yù)存儲(chǔ)的消息。從右向左滾動(dòng)顯示該消息。單片機(jī)和PC之間的串行通信速度為115200 bps。
2.如果用戶發(fā)送“ Y”,則單片機(jī)等待輸入數(shù)據(jù)。單片機(jī)讀取傳入的字節(jié),直到接收到“?!?,這表示PC發(fā)送的最后一個(gè)字符字節(jié)。然后,單片機(jī)將1寫(xiě)入EEPROM位置0x00,并保存在EEPROM位置0x01接收的字節(jié)數(shù)。接收到的字符從0x02開(kāi)始順序保存到EEPROM順序位置。
3.接下來(lái),單片機(jī)將字符數(shù)據(jù)從EEPROM加載到RAM中,并從右向左滾動(dòng)顯示在LED矩陣上。每個(gè)字符都映射到其圖形字體,該圖形字體作為靜態(tài)數(shù)組保存在程序存儲(chǔ)器中。
三、源代碼附件
以上就是英銳恩單片機(jī)開(kāi)發(fā)工程師分享的使用PIC單片機(jī)制作LED矩陣顯示器的方法。英銳恩專注單片機(jī)應(yīng)用方案設(shè)計(jì)與開(kāi)發(fā),提供8位單片機(jī)、16位單片機(jī)、32位單片機(jī)。