【正文】
。 \hzk16 For Binary As 1 //打開漢字庫Get 1, bb + n, zw(n)初始化控件屬性返回字符邊界檢查字符串轉(zhuǎn)為內(nèi)碼計算控件當(dāng)前值生成數(shù)據(jù)幀打開串口發(fā)送數(shù)據(jù)關(guān)閉串口返回窗體加載事件 窗體加載事件選擇路徑選擇文件打開文件返回打開文件事件保存文件框內(nèi)數(shù)據(jù)返回保存事件圖 上位機軟件事件流程 漢字字模的提取方法HZKl6*16 點陣漢字字庫可以在中文操作軟件( UCDOS)中找到現(xiàn)成的文件。 Hex(zw(i))End IfIf i Mod 16 = 0 Then = ( + Chr(13) + Chr(10))End IfCall hexSendSleep 20 = Next iErase zw() 39。 0x0 amp。 對于通信電纜的選擇,本設(shè)計是將通信線和電源輸入合并在一個 DB9 連接器上。 開關(guān)電源在 LED 屏應(yīng)用中的優(yōu)勢使用開關(guān)電源,相對于線性電源來說,有以下幾個明顯的優(yōu)勢。為保證單片機等集成電路的穩(wěn)定工作,要求電源電壓的最大波動范圍在 之間。本設(shè)計 采用 RS232C 串行通信方式。C 范圍內(nèi),精度為177。 2176。再經(jīng)過驅(qū)動管驅(qū)動對應(yīng)的行線。 由于 LED 顯示屏的工作 電流時刻在變化,造成了系統(tǒng)電壓的波動。4 硬件電路設(shè)計 LED 控制卡電路設(shè)計 LED 點陣屏控制卡是整個 LED 顯示屏的核心控制器件,它集成了 STC12C5A60S2 主控芯片、時鐘芯片、溫度傳感器、存儲芯片、串口轉(zhuǎn)換電路為一體的控制器,它是控制點陣屏的核心部分,各項功能的實現(xiàn)必須經(jīng)過控制卡的控制。該算法是將 Display_Buffer 和 Temp_Buffer 中的數(shù)據(jù)首尾相接地左移一位,并不斷把 Temp_Buffer 移入 Display_Buffe。 工作原理分析單片機上電復(fù)位后,先從外部存儲器 E2PROM 讀取上次存儲在內(nèi)部的顯示模式,在 32*64 單色屏中上半屏存儲時間、溫度等數(shù)據(jù)。 系統(tǒng)總體結(jié)構(gòu)及原理分析通過對各種方案的比較與分析,初步構(gòu)建硬件系統(tǒng)框圖如圖 所示。FLASH 存儲器的擦除過程相對費時,且擦除流程相對復(fù)雜。在條屏顯示的 過程中按規(guī)定的方式取出 E2PROM 中的字模數(shù)據(jù)進行處理。方案三:以 ARM(32 位 RISC 架構(gòu)高性能微 處理器)為控制器的LED 顯示屏。方案一:以單片機(STC12C5A60S2 高速單片機)為控制器的LED 顯示屏。方案一: 的小型 發(fā)光二極管組成的 8*8 的點陣模塊,發(fā)光亮度不足,電流過大時易燒壞,遠距離觀看視覺效果模糊一般把 的屏作為室內(nèi)屏使用。因而發(fā)光效率比前者高。 如果高速地進行(1)到(9)的循環(huán),且兩個步驟間的間隔時間小于 1/24 秒,由于視覺暫留。比如,Y7 為 1,X0 為 0,則右下角的 LED 點亮。最典型的例子就是電 影放映機。本系統(tǒng)所使用的 88 單色 LED 點陣顯示器的內(nèi)部電路結(jié)構(gòu)和外形規(guī)格如圖 所示,其它型號點陣的結(jié)構(gòu)與引腳可試驗獲得。在中國,隨著經(jīng)濟的飛速發(fā)展,各類場館的興建和市政工程改造項目的興起,國內(nèi)市場LED 顯示屏需求增 長 率更是高達 30%以上。室外屏:Φ10mm、 Φ12mm、Φ16mm、Φ19mm、Φ21mm、Φ26mm 。 LED 電子顯示屏的分類(1)、按 顏色分類:單基色顯示屏:單一顏色(紅色或綠色)。LED 顯示屏是一種通過控制半導(dǎo)體發(fā) 光二極管的亮度的方式,來顯示文字、 圖形、 圖 像、 動畫、行情、 視頻 、錄像信號等各種信息的顯示屏幕 [2]。關(guān)鍵詞上位機;LED 顯示屏控制卡; 32*64 單色點陣屏;時鐘芯片 The Design and Implementation of LED Display ControllerAbstractThis design is based on STC12C5A60S2 microputer as the core control device ,to achieve the storage of the Chinese character coding through external memory chips. The function of the system can be achieved in English characters and dynamic display or can be connected in cascade manner to expand the size and the content of display,. preparation of PC programmed by Visual Basic , the munication standard between the PC and the microputer is RS232. The preparation of PC send mands and Chinese character coding that needs to be II / 47stored to MCU, the next crew processes mands and the data that was sent from preparation of PC and display coding, 32 * 64 dot matrix display driven by the LED display control card. Achieving the purpose of display contents can be modified in time through human eye phenomenon。1 / 47 學(xué)科分類號 0712 本科生畢業(yè)論文(設(shè)計)題目(中文): LED 顯示屏控制器的設(shè)計與實現(xiàn) (英文): The Design and Implementation of LED Display Controller 2022 年 05 月 15 日2 / 47本科畢業(yè)論文(設(shè)計)誠信聲明作者鄭重聲明:所呈交的本科生論文(設(shè)計),是在指導(dǎo)老師的指導(dǎo)下,獨立進行研究所取得的成果,成果不存在知識產(chǎn)權(quán)爭議。由 LED 控制卡驅(qū)動 32*64 點陣屏顯示,利用人眼的滯留 現(xiàn)象,達到能夠?qū)崟r修改顯示內(nèi)容的目的。而藍色和純綠色 LED 的開發(fā)已經(jīng)達到了實用階段。并且有按鍵可以直接在下位機上調(diào)整時間與顯示速度,與上位機采用 RS232 通信的方式,控2 / 47制更加簡便。 (4)、按 發(fā)光點直徑分類:室內(nèi)屏:Φ3mm、Φ5mm。國際大都市如紐約、巴黎、 倫敦都普遍使用大型 LED全彩顯示屏作為信息傳播、廣告宣傳的新型載體。單色點陣只能顯示固定色彩如紅、綠、黃等單色,雙基色和三基色點陣顯示內(nèi)容的顏色由像素內(nèi)不同顏色發(fā)光二極管點亮組合方式?jīng)Q定,如紅綠都亮?xí)r可顯示黃色,如果按照脈沖方式控制二極管的點亮?xí)r間,則可實現(xiàn) 256 或更高級灰度顯示,即可實現(xiàn)真彩色顯示 [8]。將連續(xù)的幾幀畫面高速的循環(huán)顯示,只要幀速率高于 24 幀/秒,人眼看起來就是一個完整的,相對靜止的畫面 [9]。則行線和列線的交叉點處的 LED 就會有電 流流過而發(fā)光。(1).Y=0x01,X=0xFF,如圖 第一行;(2).Y=0x1C,X=0x02,如圖 第二行;(3).Y=0x22,X=0x04,如圖 第三行;(4).Y=0x22,X=0x08,如圖 第四行;(5).Y=0x1E,X=0x10,如圖 第五行;(6).Y=0x01,X=0x20,如圖 第六行;(7).Y=0x04,X=0x04,如圖 第七行;(8).Y=0x38,X=0x80,如圖 第八行;(9).跳到第(1)步循環(huán)??梢?,用行線做掃描線,因為其發(fā)光周期的占空比較大,其視覺亮度是用列線做掃描線的 6 倍。 設(shè)計方案論證 顯示單元模塊的選擇LED 顯示屏 顯示一個 簡單的漢字,至少需要一個 16*16 點陣單8 / 47元來構(gòu)成,根據(jù)發(fā)光點直徑的大小分為 和 5mm 的 LED 點陣模塊??刂破鞯姆N類也在不斷發(fā)展以適應(yīng)市場需求,不同功能檔次的廣告屏對應(yīng)著不同的處理器。但是其成本較高,開發(fā)難度較大。 點陣數(shù)據(jù)存儲方式的選擇目前使用最廣泛的技術(shù)是,通過上位機軟件將待顯示的字符串轉(zhuǎn)換為對應(yīng)的點陣字模數(shù)據(jù),通過燒寫的方式將這些字模數(shù)據(jù)按一定的10 / 47順序編址后存儲在 E2PROM 中。它們對 數(shù)據(jù)的存取不是使用線性地址映射,而是通過寄存器的操作串行存取數(shù)據(jù)。由于本設(shè)計的任務(wù)是需要存儲漢字不少于 64 個,采用 FLASH芯片來存儲漢字編碼,其操作復(fù)雜、成本太高,不適合在本次設(shè)計中采用 FLASH 芯片,因此本設(shè)計采用方案二來存儲上位機發(fā)送過來的漢字編碼并用尋址讀取數(shù)據(jù)。通用 I/O 口模擬同步串行接口以實現(xiàn)和列數(shù)據(jù)鎖存器(移位鎖存器)之間的單向通信。對顯示字符的移動,實質(zhì) 上是對顯示緩沖區(qū) Display_Buffer 內(nèi)數(shù)據(jù)的移動。字模數(shù)據(jù)緩存區(qū) Temp_Buffer 中的數(shù)據(jù)可通過調(diào)用移動處理任務(wù)而逐位轉(zhuǎn)移至動態(tài)顯示緩沖區(qū) Display_Buffer 中,這樣在LED 顯示屏上就 顯示我 們所需要的內(nèi)容。這樣就可以容納較大的傳輸線對地電容,使本設(shè)計的抗干擾能力增強。9MR0SHcpTOEVCBLK圖 兩片 74HC595 級聯(lián)圖 行驅(qū)動電路設(shè)計 32*64 點陣屏共用 16 片 138 級聯(lián),通過總線驅(qū)動芯片 74HC245驅(qū)動行/列信號,從總線上的低 4 位輸出的行號經(jīng)兩片 138 級聯(lián)后形成 4/16 線譯碼器后生成 16 條行選信號,具體電路如圖 所示。圖 為時鐘模塊電路: 圖 DS1302 時鐘電路圖 溫度驅(qū)動電路設(shè)計Dallas 半導(dǎo)體公司的數(shù)字化溫度 傳感器 DS1820 是世界上第一片17 / 47支持“一線總線 差為177。C,在 10~+85176。有并行和串行兩種通信方式,為了節(jié)約傳輸線成本。 C1+圖 上位機與單片機串行通信電路圖 系統(tǒng)電源及通信電纜的選擇 對于 LED 顯示屏的電源要求本系統(tǒng)沒有設(shè)置獨立的 5V 穩(wěn)壓器件,因此要求外部能 對其提供相對穩(wěn)定的電壓。保 證了長時間使用穩(wěn)定性。功率越大,其優(yōu)勢越明顯。字模校正對話框的字模代碼顯示If Len(Hex(zw(i))) = 1 Then = amp。 , = amp。HA1)) * 32 //提取漢字首地址的計算方法For n = 1 To 32 Step 121 / 47Open amp。因此只要找到漢字代碼的起始位置,就可正確提取漢字點陣信息。其具體流程見圖 所示。選用高頻晶振其刷新速率越高,漢字閃爍越小,在同等條件下選用 24M 晶振和選用 12M 的晶振,前者比后者要更穩(wěn)定一些,存儲大量漢字編碼時必須采用外部的存儲器來實現(xiàn)漢字的存儲。在實現(xiàn)這一設(shè)計的過程中所遇到的問題和困難給我留下了寶貴的經(jīng)驗和深刻教訓(xùn)。//wor 為要顯字變量,col 為位移變量,col1 為字節(jié)偏移量,disrow 為行變量uchar BUFF__UP[17]。//綠色數(shù)據(jù)sbit CLK=P1^7。} //分別裝載上、下半屏點陣數(shù)據(jù)void Load_one_line(void){BUFF__UP[0]=Table[word][disrow*4+0]。BUFF__UP[8]=Table[word+2][disrow*4+0]。BUFF__UP[16]=Table[word+4][disrow*4+3]。BUFFDOWN[7]=Table[word+1][64+disrow*4+3]。BUFFDOWN[15]=Table[word+3][64+disrow*4+3]。col16) inc=1。s=8+inc。0x01。i){for(j=5。 if (RI) //RI 接受中斷標(biāo)志 { RI=0。 //波特率 9600、數(shù)據(jù)位 停止位 1。 //數(shù)據(jù)初始化R2=0。disrow++)//掃描 16 行 {Load_one_line()。C=disrowamp。sbit scl=P2^1。void delay_ms(uchar z)。void send(uchar q)。 sbitHC595_RD2=P3^5。t16。g_data[2*k]=0xffread_date(k*32+t*2+1)。HC138_A=tamp。for (k=0。 delay()。 delay()。delay()。 scl=0。 scl=1。delay()。if(sda) {temp|=0x01。 write(add/256)。}uchar read_date(uchar add){uchar temp。 //取出低位ack()。}void delay(){_nop_()。 while(z) { for(i=0。write_date(0x0000+temp,date1)。TH1=0xF3。0x80