基于51單片機(jī)32×32點(diǎn)陣顯示屏
《基于51單片機(jī)32×32點(diǎn)陣顯示屏》由會員分享,可在線閱讀,更多相關(guān)《基于51單片機(jī)32×32點(diǎn)陣顯示屏(28頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 單片機(jī)原理與接口技術(shù) 課程設(shè)計 課程名稱: 單片機(jī)原理與接口技術(shù) 課設(shè)項目:基于51單片機(jī)3232點(diǎn)陣顯示屏 課設(shè)地點(diǎn): 電機(jī)館跨越機(jī)房 專業(yè)班級: 自動化1004班 學(xué) 號: 2010001159 姓 名: 指導(dǎo)教師: 李麗宏 2013年 7月4日 摘 要 LED顯示屏是一種通過控制半導(dǎo)體發(fā)光二極管的
2、顯示方式,用來顯示文字、圖形、圖像、動畫、行情、視頻、錄像信號等各種信息的顯示屏幕。圖文顯示屏可與計算機(jī)同步顯示漢字、英文文本和圖形;視頻顯示屏采用微型計算機(jī)進(jìn)行控制,圖文、圖像并茂,以實(shí)時、同步、清晰的信息傳播方式播放各種信息,還可顯示二維、三維動畫、錄像、電視、VCD節(jié)目以及現(xiàn)場實(shí)況。LED顯示屏顯示畫面色彩鮮艷,立體感強(qiáng),靜如油畫,動如電影,廣泛應(yīng)用于車站、碼頭、機(jī)場、商場、醫(yī)院、賓館、銀行、證券市場、建筑市場、拍賣行、工業(yè)企業(yè)管理和其它公共場所。 LED點(diǎn)陣是由發(fā)光二極管排列組成的顯示器件,具有耗電少、使用壽命長、成本低、亮度高、故障少、視角大、可視距離遠(yuǎn)、規(guī)格品、可靠耐用、應(yīng)用靈活
3、、安全、響應(yīng)時間短、綠色環(huán)保、控制靈活等特點(diǎn)。目前LED顯示屏作為新一代的信息傳播媒體,已經(jīng)成為城市信息現(xiàn)代化建設(shè)的標(biāo)志。 本文詳細(xì)介紹了32X32 LED點(diǎn)陣電子顯示屏的設(shè)計。使用AT89S52單片機(jī)作為主控制器,采用串行EEPROM 24C02儲存點(diǎn)陣字型碼數(shù)據(jù)。字型碼依次通過串入并出移位寄存器74HC595輸出,采用4-16譯碼器74HC154產(chǎn)生行掃描選通信號,分16行進(jìn)行動態(tài)掃描。行采用三極管驅(qū)動,其中行驅(qū)動電路采用三極管并聯(lián),以增大行驅(qū)動電流。通過改變行掃描的順序,可實(shí)現(xiàn)顯示內(nèi)容上下滾屏;通過依次將字型碼移位后再輸出的方式可實(shí)現(xiàn)顯示內(nèi)容左右滾屏。 關(guān)鍵詞:LED點(diǎn)陣 顯示屏
4、 動態(tài)掃描 滾屏 目 錄 1. 引 言 1 1.1 設(shè)計意義 1 1.2 系統(tǒng)功能要求 1 2. 方案設(shè)計 1 2.1 總體設(shè)計 2 2.2 顯示原理及控制方式分析 2 2.2.1 LED點(diǎn)陣模塊結(jié)構(gòu) 2 2.2.2 LED 動態(tài)顯示原理 2 2.2.2 LED常見的控制方式 3 3. 硬件設(shè)計 4 3.1 單片機(jī)系統(tǒng)及其管腳 4 3.2 點(diǎn)陣驅(qū)動部分 6 3.3 3232LED點(diǎn)陣顯示制作 7 3.3.1 1616LED點(diǎn)陣的內(nèi)部結(jié)構(gòu)及工作原理 7 3.3.2 用88LE
5、D點(diǎn)陣構(gòu)成1616LED點(diǎn)陣 8 3.3.3 用1616LED點(diǎn)陣構(gòu)成3232LED點(diǎn)陣 9 3.4 主控單片機(jī)的接口說明 10 4. 軟件設(shè)計 11 4.1 系統(tǒng)主程序及其流程圖 11 4.2 Proteus仿真 12 5. 系統(tǒng)調(diào)試 13 6. 設(shè)計總結(jié) 16 7. 參考文獻(xiàn) 16 8. 附 錄 16 總體電路圖 16 源程序 17 1引 言 1.1. 設(shè)計意義 LED電子顯示屏(Light Emitting Diode Panel)是由幾百--幾十萬個半導(dǎo)體發(fā)光二極管構(gòu)成的像素點(diǎn),按矩陣均勻排列組成。利用不
6、同的半導(dǎo)體材料可以制造不同色彩的LED像素點(diǎn)。目前應(yīng)用最廣的是紅色、綠色、黃色。而藍(lán)色和純綠色LED的開發(fā)已經(jīng)達(dá)到了實(shí)用階段。 LED顯示屏是一種通過控制半導(dǎo)體發(fā)光二極管的亮度的方式,來顯示文字、圖形、圖像、動畫、行情、視頻、錄像信號等各種信息的顯示屏幕。 LED顯示屏分為圖文顯示屏和條幅顯示屏,均由LED矩陣塊組成。圖文顯示屏可與計算機(jī)同步顯示漢字、英文文本和圖形;而條幅顯示屏則適用于小容量的字符信息顯示。LED顯示屏因?yàn)槠湎袼貑卧侵鲃影l(fā)光的,具有亮度高,視角廣、工作電壓低、功耗小、壽命長、耐沖擊和性能穩(wěn)定等優(yōu)點(diǎn)。因而被廣泛應(yīng)用于車站、碼頭、機(jī)場、商場、醫(yī)院、賓館、銀行、證券市場、建筑
7、市場、拍賣行、工業(yè)企業(yè)管理和其它公共場所。 LED顯示屏的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高氣候耐受性、更高的發(fā)光密度、更高的發(fā)光均勻性,可靠性、全色化方向發(fā)展。 1.2. 系統(tǒng)功能要求 設(shè)計一個能顯示32X32點(diǎn)陣圖文LED顯示屏,要求能顯示文字,顯示文字應(yīng)穩(wěn)定、清晰,以卷簾形式向上滾動顯示。 2方案設(shè)計 2.1 總體設(shè)計 列驅(qū)動器 單 片 機(jī) 電源 32X32LED顯示點(diǎn)陣 行驅(qū)動器 2.2 顯示原理及控制方式分析 2.2.1 LED點(diǎn)陣模塊結(jié)構(gòu) 八十年代以來出現(xiàn)了組合型
8、LED點(diǎn)陣顯示器模塊,以發(fā)光二極管為像素,它用高亮度發(fā)光二極管芯陣列組合后,環(huán)氧樹脂和塑模封裝而成。這種一體化封裝的點(diǎn)陣LED模塊,具有高亮度、引腳少、視角大、壽命長、耐濕、耐冷熱、耐腐蝕等特點(diǎn)。LED點(diǎn)陣規(guī)模常見的有44、48、57、58、88、1616等等。 根據(jù)像素顏色的數(shù)目可分為單色、雙基色、三基色等。像素顏色不同,所顯示的文字、圖象等內(nèi)容的顏色也不同。單色點(diǎn)陣只能顯示固定色彩如紅、綠、黃等單色,雙基色和三基色點(diǎn)陣顯示內(nèi)容的顏色由像素內(nèi)不同顏色發(fā)光二極管點(diǎn)亮組合方式?jīng)Q定,如紅綠都亮?xí)r可顯示黃色,如果按照脈沖方式控制二極管的點(diǎn)亮?xí)r間,則可實(shí)現(xiàn)256或更高級灰度顯示,即可實(shí)現(xiàn)真彩色顯示。
9、 圖1示出最常見的88單色LED點(diǎn)陣顯示器的內(nèi)部電路結(jié)構(gòu)和外型規(guī)格,其它型號點(diǎn)陣的結(jié)構(gòu)與引腳可試驗(yàn)獲得。 圖1 88單色LED模塊內(nèi)部電路 LED點(diǎn)陣顯示器單塊使用時,既可代替數(shù)碼管顯示數(shù)字,也可顯示各種中西文字及符號.如5x7點(diǎn)陣顯示器用于顯示西文字母.58點(diǎn)陣顯示器用于顯示中西文,8x8點(diǎn)陣可以用于顯示簡單的中文文字,也可用于簡單圖形顯示。用多塊點(diǎn)陣顯示器組合則可構(gòu)成大屏幕顯示器,但這類實(shí)用裝置常通過PC機(jī)或單片機(jī)控制驅(qū)動。 2.2.2 LED 動態(tài)顯示原理 LED點(diǎn)陣顯示系統(tǒng)中各模塊的顯示方式: 有靜態(tài)和動態(tài)顯示兩種。靜態(tài)顯示原理簡單、控制方便,但硬件接線復(fù)雜,
10、在實(shí)際應(yīng)用中一般采用動態(tài)顯示方式,動態(tài)顯示采用掃描的方式工作,由峰值較大的窄脈沖電壓驅(qū)動,從上到下逐次不斷地對顯示屏的各行進(jìn)行選通,同時又向各列送出表示圖形或文字信息的列數(shù)據(jù)信號,反復(fù)循環(huán)以上操作,就可顯示各種圖形或文字信息。 點(diǎn)陣式LED漢字廣告屏絕大部分是采用動態(tài)掃描顯示方式,這種顯示方式巧妙地利用了人眼的視覺暫留特性。將連續(xù)的幾幀畫面高速的循環(huán)顯示,只要幀速率高于24幀/秒,人眼看起來就是一個完整的,相對靜止的畫面。最典型的例子就是電影放映機(jī)。在電子領(lǐng)域中,因?yàn)檫@種動態(tài)掃描顯示方式極大的縮減了發(fā)光單元的信號線數(shù)量,因此在LED顯示技術(shù)中被廣泛使用。 以88點(diǎn)陣模塊為例,說明一下其使用
11、方法及控制過程。圖2.1中,紅色水平線Y0、Y1……Y7叫做行線,接內(nèi)部發(fā)光二極管的陽極,每一行8個LED的陽極都接在本行的行線上。相鄰兩行線間絕緣。同樣,藍(lán)色豎直線X0、X1……X7叫做列線,接內(nèi)部每列8個LED的陰極,相鄰兩列線間絕緣。 在這種形式的LED點(diǎn)陣模塊中,若在某行線上施加高電平(用“1”表示),在某列線上施加低電平(用“0”表示)。則行線和列線的交叉點(diǎn)處的LED就會有電流流過而發(fā)光。比如,Y7為1,X0為0,則右下角的LED點(diǎn)亮。再如Y0為1,X0到X7均為0,則最上面一行8個LED全點(diǎn)亮。 現(xiàn)描述一下用動態(tài)掃描顯示的方式,顯示字符“B”的過程。其過程如圖2 圖2
12、用動態(tài)掃描顯示字符“B”的過程 2.2.3 LED常見的控制方式 目前常見的是并行傳輸方式,通過8位鎖存器將8位總線上的列數(shù)據(jù)進(jìn)行鎖存顯示,各8位鎖存器的片選信號由譯碼器提供。此種方式的優(yōu)點(diǎn)是傳輸速度快,對微控制器(MCU)的通信速度要求較低。但是這種方案最大的缺點(diǎn)是不便于隨意擴(kuò)展顯示單元的數(shù)目。每增加一個1616點(diǎn)陣的全角漢字顯示單元,就需要在之前的電路上多增加兩根地址線,這就要求在PCB布線的時候要留有充足的地址線冗余量。再一個缺點(diǎn)是,每個單元的PCB隨著安放位置的不同,布線結(jié)構(gòu)也不相同,不利于廠家批量生產(chǎn)。并行傳輸需要的芯片較多,因此市場上已經(jīng)出現(xiàn)用FPGA,CPLD等高密度可編程邏
13、輯器件(PLD)來取代傳統(tǒng)鎖存器IC的方案。成本有所下降,但可擴(kuò)展性仍舊較差。因此,并行傳輸方式適用于顯示單元數(shù)目確定的條屏。 隨著廣告屏顯示內(nèi)容的多媒體化,對控制器傳輸速度,運(yùn)算能力的要求越來越高。因此控制器的種類也在不斷發(fā)展以適應(yīng)要求,從最初的8051單片機(jī),到PIC單片機(jī),又到FPGA,直到現(xiàn)在的ARM處理器。不同功能檔次的廣告屏對應(yīng)著不同的處理器。 一.以傳統(tǒng)8051單片機(jī)為控制器的LED顯示屏。因受到單片機(jī)運(yùn)算速度及通信速率的限制,LED動態(tài)顯示的刷新率不可能做得太高。對顯示效果和移動算法的處理也比較吃力,在實(shí)際顯示效果上有比較明顯的閃爍感。除此之外,傳統(tǒng)8051單片機(jī)的內(nèi)部資源
14、貧乏,僅128字節(jié)的數(shù)據(jù)存儲器,幾K字節(jié)的程序存儲器,無E2PROM,SPI。這就需要對單片機(jī)擴(kuò)展外設(shè),無疑增加了硬件成本。因此,8051控制的條屏只能用于顯示內(nèi)容及其簡單,不需要經(jīng)常更改顯示內(nèi)容的場合。 二.以PIC單片機(jī)為控制器的LED顯示屏。因PIC單片機(jī)是RISC架構(gòu)的工業(yè)專用單片機(jī),處理指令的速度有所增加,抗干擾能力優(yōu)秀,型號種類繁多。作為條屏的控制器,可以明顯的改善顯示效果,同時PIC單片機(jī)內(nèi)部的資源較豐富,可節(jié)省外部電路設(shè)計難度,同時降低了硬件成本。因此,以PIC單片機(jī)為控制器的條屏目前仍是單色條屏市場的主流。 三.以FPGA(復(fù)雜可編程邏輯門陣列)為控制器的LED顯示屏。F
15、PGA以高速、并行著稱。是近年來新興的可編程邏輯器件。用他作為LED顯示屏的控制器,能夠高速的處理色階PWM信號、高速的完成動態(tài)掃描邏輯、高速的完成字符移動算法。因此被運(yùn)用于雙基色、三基色的顯示系統(tǒng)。但是其成本較高,開發(fā)難度較大。 四.以ARM(32位RISC架構(gòu)高性能微處理器)為控制器的LED顯示屏。ARM有著極高的指令效率,極高的時鐘頻率。因此其運(yùn)算能力非常強(qiáng)大,內(nèi)部資源也十分豐富,極大的簡化了硬件設(shè)計的難度,縮短了開發(fā)周期。在條屏的運(yùn)用中,能用ARM來實(shí)現(xiàn)花樣繁多的顯示方式,以及高色階,多像素的全彩屏驅(qū)動。ARM與FPGA的組合更是功能強(qiáng)大,除了海量存儲技術(shù),無線更新技術(shù)外,還能實(shí)時地
16、顯示視頻信號。因此,以ARM為控制器的顯示屏常為視頻全彩屏。 3硬件設(shè)計 3.1 單片機(jī)系統(tǒng)及其管腳 u 單片機(jī)AT89S52簡介 AT89S52是一種帶4KB可編程可擦除只讀存儲器的低電壓、高性能CMOS型8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89S52是一種高效微控制器,AT89S52單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。因此,本設(shè)計將AT89S52作為單片機(jī)選擇對象。 AT89S52的特
17、點(diǎn): 1、價格便宜,即性價比高; 2、集成度高,體積小,可靠性好; 3、低功耗、低電壓; 4、易擴(kuò)展。 圖3 單片機(jī)結(jié)構(gòu)圖 u 單片機(jī)系統(tǒng)及其管腳 常用的時鐘電路設(shè)計有兩種方式,一種是內(nèi)部時鐘方式,一種是外部時鐘方式。本實(shí)驗(yàn)采用內(nèi)部時鐘方式,將XTAL1與XTAL2之間跨接一個石英晶振和微調(diào)電容,從而構(gòu)成一個穩(wěn)定的自激震蕩器。電容值取30pF左右,其大小將影響震蕩頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。為減少線間的寄生電容,晶振和電容應(yīng)盡能安裝得與單片機(jī)靠近,保證晶振穩(wěn)定可靠的工作。 另一部分是復(fù)位部分。上電自動復(fù)位電路是最簡單的復(fù)位電路,只需要一個1K左右
18、電阻、一個22pF左右的電容及12MHZ的晶振。有時還需要按鍵手動復(fù)位,此時只要在電容上并聯(lián)一個按鍵即可。 還有一部分是按鈕切換字幕部分。與串行口P0.1相連,初始時P0.1為1,按鈕按下后P0.1為0。 其圖形如下圖 圖4 單片機(jī)接線圖 3.2點(diǎn)陣驅(qū)動部分 點(diǎn)陣顯示用是動的態(tài)掃描來實(shí)現(xiàn)的。在采用掃描方式顯示時,由于每行要帶動32個二極管,每行電流較大。若每個二極管安5mA計算,32個二極管就得80mA電流,超出單片機(jī)管腳的承受范圍,因此每行都加有一個驅(qū)動器,本設(shè)計的行驅(qū)動用的是32個pnp型三極管。三極管的發(fā)射極接5V電壓,集電極接點(diǎn)陣的行線,而其基級本應(yīng)接
19、單片機(jī),但該接線方式占用為了32個單片機(jī)管腳,為了節(jié)省單片機(jī)管腳,用了P0.0作為片選信號控制兩片74159譯碼器,輪流導(dǎo)通兩片74159譯碼器,這樣就只需要4個管腳了。 74159的管腳圖及其說明如圖5。點(diǎn)陣驅(qū)動仿真部分總體接線圖如圖6(未畫完整) 對4個輸入信號進(jìn)行譯碼,得到16個輸出狀態(tài)。 G1,G2為數(shù)據(jù)允許輸出端,G1,G2低電平有效。G1高電平有效。A,B,C,D為譯碼信號輸出端,Y0~Y16為譯碼輸出端,低電平有效。 圖5 74159管腳圖 圖6 點(diǎn)陣驅(qū)動仿真圖 3.3 3232LED點(diǎn)陣顯示制作 3.3.1 1616LED
20、點(diǎn)陣的內(nèi)部結(jié)構(gòu)及工作原理 以UCDOS中文宋體字庫為例,每一個字由16行16列的點(diǎn)陣組成顯示。即國家標(biāo)準(zhǔn)漢字庫中的每一個字均由256點(diǎn)陣來表示。我們可以把每一個點(diǎn)理解為一個像素,而把每一個字的字形理解為一幅圖像。事實(shí)上這個漢字屏不僅可以顯示漢字,也可以顯示在256像素范圍內(nèi)的任何圖形。這里我們以“高”字說明,如圖7所示。 圖7 16*16LED漢字顯示 用8位的AT89C51單片機(jī)控制,由于單片機(jī)的總線為8位,一個字需要拆分為2個部分。一般把它拆分為上部和下部,上部由816點(diǎn)陣組成,下部也由816點(diǎn)陣組成。在本例中單片機(jī)首先顯示的是
21、左上角的第一列的上半部分,即第0列的p00—p07口。方向?yàn)閜00到p07 ,顯示漢字“高”時,p02點(diǎn)亮,由上往下排列,為p0.0 滅,p0.1 滅, p0.2 滅, p0.3 滅, p0.4 滅, p0.5 亮,p0.6滅,p0.7 滅。即二進(jìn)制00000100,轉(zhuǎn)換為16進(jìn)制為 04h。上半部第一列完成后,繼續(xù)掃描下半部的第一列,為了接線的方 便,我們?nèi)栽O(shè)計成由上往下掃描,即從p27向p20方向掃 描,從上圖可以看到,這一列全部為不亮,即為00000000,16進(jìn)制則為00h。 然后單片機(jī)轉(zhuǎn)向上半部第二列,仍為p01點(diǎn)亮,為00000100,即16進(jìn)制04h.
22、這一列完成后繼續(xù)進(jìn)行下半部分的掃描,p20點(diǎn)亮,為二進(jìn)制00000010,即16進(jìn)制02h.依照這個方法,繼續(xù)進(jìn)行下面的掃描,一共掃描32個8位,可以得出漢字“高”的掃描代碼為:02h,00h,01h, 04h,0FFh,0FEh, 00h, 00h,1Fh,0F0h, 10h, 10h, 10h, 10h, 1Fh,0F0h,00h, 04h, 7Fh,0FEh, 40h, 04h, 4Fh,0E4h,48h, 24h, 48h, 24h, 4Fh,0E4h, 40h, 0Ch。 由這個原理可以看出,無論顯示何種字體或圖像,都可以用這個方法來分析出它的掃描代碼從而顯示在屏幕上。不過現(xiàn)在有很
23、多現(xiàn)成的漢字字模生成軟件,就不必自己去畫表格算代碼了。 3.3.2 用88LED點(diǎn)陣構(gòu)成1616LED點(diǎn)陣 Proteus中只有57和88等LED點(diǎn)陣,并沒有1616LED點(diǎn)陣,而在實(shí)際應(yīng)用中,要良好地顯示一個漢字,則至少需要1616點(diǎn)陣。下面我們就首先介紹使用88點(diǎn)陣構(gòu)建1616點(diǎn)陣的方法,并構(gòu)建一塊1616LED點(diǎn)陣,用于本例的顯示任務(wù)。 首先,從Proteus7.1的元件庫中找到“MATRIX-8X8-RED”元器件,并將四塊該元器件放入Proteus文檔區(qū)編輯窗口中。此時需要注意,如果該元器件保持初始的位置(沒有轉(zhuǎn)動方向),我們要首先將其左轉(zhuǎn)90,使其水平放置,那么此時它的左面
24、8個引腳是其行線,右邊8個引腳是其列線(當(dāng)然,如果你是將右轉(zhuǎn),則右邊8個引腳是行線)。然后我們將四個元器件對應(yīng)的行線和列線分別進(jìn)行連接,使每一條行線引腳接一行16個LED,列線也相同。并注意要將行線和列線引出一定長度的引腳,以便下面我們使用。連接好的1616點(diǎn)陣如圖8所示。 成如上圖的1616點(diǎn)陣只是第一步,這樣分開的數(shù)塊并不能達(dá)到好的顯示效果,下面我們要將其進(jìn)一步組合。組合實(shí)際上很簡單,首先選中如上圖中右側(cè)的兩塊88點(diǎn)陣,然后拖動并使其與左側(cè)的兩塊相并攏,如圖9所示。 圖8 點(diǎn)陣模塊組合 圖9 可以看到原來的連線已經(jīng)自動隱藏了,至于線上的交點(diǎn),我們不要去動。然后,我們再來最后一
25、步,選中下側(cè)的兩塊點(diǎn)陣,并拖動使其與上側(cè)的兩塊并攏,最后的效果如圖10所示??吹?原來雜亂的連線現(xiàn)在已經(jīng)幾乎全部隱藏了,一塊1616的LED點(diǎn)陣做成了。需要注意,做成的LED點(diǎn)陣的行線為左側(cè)的16個引腳,下側(cè)的16個引腳為其列線,而且其行線為高電平有效,列線為低電平有效。然后,我們將其保存,以便以后使用。 圖10 3.3.3 用1616LED點(diǎn)陣構(gòu)成3232LED點(diǎn)陣 最后,把原來1616的LED點(diǎn)陣塊復(fù)制可以做成3232的LED點(diǎn)陣。如圖11 圖11 3232的LED點(diǎn)陣 3.4主控
26、單片機(jī)的接口說明 P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)制用口,作為輸入口時,每位能吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口寫入“1可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期激活內(nèi)部上拉電阻。在Flash編程時,PO口接收指令節(jié),而在程序校檢時,輸出指令字節(jié),校檢時,要求外接上拉電阻。 P1口:P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口時
27、,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流I。Flash編程和程序校檢期間,P1接收低8位地址。 P2口:P2口是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口時,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流I。在訪問外部數(shù)據(jù)存儲器或16位地址的外部數(shù)據(jù)存儲(例如執(zhí)行MOVX@DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX@RI指令)時,P2口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)
28、中R2寄存器的內(nèi)容),在整個訪問期間不改變。Flash編程和校檢時,P2亦接收高位地址和其他控制信號。 P3口:P3口是一個帶內(nèi)部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作輸入端口,作輸入端時,被外部拉低的P3口將用上拉電阻,輸出電流I。P3口還接收一些用于Flash閃速存儲器編程和程序校檢的控制信號。 RST:復(fù)位輸入,當(dāng)震蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將使單片機(jī)復(fù)位。 ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于所存地址的低8
29、位字節(jié)。即使不訪問外部存儲器,ALE乃以時鐘振動頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。 4軟件設(shè)計 本軟件要求實(shí)現(xiàn)文字要以一定速度上升滾動顯示,當(dāng)按下按鈕,LED顯示屏的文字切換到另一個字幕,再按一下,切換回原來的字幕。 顯示屏軟件模塊:初始化程序、主程序、多字滾動、顯示程序、掃描程序。顯示程序的主要功能是向屏體提供顯示數(shù)據(jù),并產(chǎn)生各種控制信號,使屏幕按設(shè)計的要求顯示。軟件設(shè)計中,顯示屏的軟件系統(tǒng)分為兩層;第一層是底層的顯示驅(qū)動程序,第二層是上層的系統(tǒng)應(yīng)用程序。顯示驅(qū)動程序負(fù)責(zé)向屏體
30、送顯示數(shù)據(jù),并負(fù)責(zé)產(chǎn)生行掃描信號和其他控制信號,配合完成LED顯示屏的掃描顯示工作。系統(tǒng)應(yīng)用程序完成系統(tǒng)環(huán)境設(shè)置(初始化)、按鍵掃描、顯示效果處理等工作,由主程序來實(shí)現(xiàn)。 4.1系統(tǒng)主程序及其流程圖 本設(shè)計的系統(tǒng)軟件能使系統(tǒng)LED顯示屏各點(diǎn)亮度均勻、充足,可顯示文字,顯示文字應(yīng)穩(wěn)定、清晰無串?dāng)_。文字顯示有靜止、移入移出等顯示方式。 系統(tǒng)主程序開始以后,首先是對系統(tǒng)環(huán)境初始化,包括設(shè)置串口、定時器、中斷和端口;然后以“卷簾出”效果顯示圖形,停留約幾秒;接著向上滾動顯示漢字。由于單片機(jī)沒有停機(jī)指令,所以可以設(shè)置系統(tǒng)程序不斷的循環(huán)執(zhí)行上述顯示效果。 單元顯示屏可以接收來自控制器(主控制電
31、路板)或上一級顯示單元模塊傳輸下來的數(shù)據(jù)信息和命令信息,并可將這些數(shù)據(jù)信息和命令信息不經(jīng)任何變化地再傳送到下一級顯示模塊單元中,因此顯示板可擴(kuò)展至更多的顯示單元,用于顯示更多的顯示內(nèi)容。如果想改變些事內(nèi)容,先用字模產(chǎn)生字代碼,將用這段代碼覆蓋原來的代碼,即可顯示你想要的內(nèi)容。 圖12 是系統(tǒng)主程序流程圖 4.2 Proteus仿真 Proteus最重要的特點(diǎn)是它能夠把用戶編寫的應(yīng)用軟件作用在微處理器上并和連接在該處理器的外圍模擬器件及數(shù)字器件協(xié)同仿真,就像在真正的單片機(jī)應(yīng)用系統(tǒng)的硬件平臺上執(zhí)行目標(biāo)代碼。支持的微控制器有51系列、 Microchip的PIC系列、Atm
32、el的AV系列、 和ARM7/LPC2000。Proteus軟件使用徹底改變了傳統(tǒng)單片機(jī)學(xué)習(xí)和開發(fā)方式,初學(xué)者可以在沒有實(shí)驗(yàn)硬件條件下進(jìn)行仿真實(shí)驗(yàn),開發(fā)者也不必經(jīng)歷“原理圖設(shè)計、PCB線路板制作、元件焊接、然后進(jìn)行軟件編程、通過仿真器對系統(tǒng)硬件和軟件調(diào)試”過程,可以直接用Proteus進(jìn)行電路設(shè)計和仿真運(yùn)行程序,運(yùn)行成功后再制作產(chǎn)品,縮短開發(fā)周期,節(jié)約開發(fā)成本。漢字點(diǎn)陣顯示電路設(shè)計制作時,顯示部分由88單色LED模塊拼接而成,元件引腳較多,硬件制作繁瑣,應(yīng)用Proteus進(jìn)行仿真設(shè)計,極大縮短開發(fā)周期。下圖用Proteus軟件設(shè)計3232點(diǎn)陣顯示屏。 圖13 3232點(diǎn)陣顯示屏結(jié)構(gòu)圖
33、 5系統(tǒng)調(diào)試 從有利于實(shí)現(xiàn)較復(fù)雜的算法(顯示效果處理)和有利于程序結(jié)構(gòu)化考慮,顯示屏程序適宜采用C語言編寫。剛剛開始,編寫不會一次性通過,經(jīng)過仔細(xì)分析修改最后編譯成功。但是,在實(shí)際寫如S51中,LED顯示屏出現(xiàn)各種各樣的亂碼,通過再次認(rèn)真仔細(xì)分析多次修改程序后,程序能夠正常運(yùn)行。其運(yùn)行結(jié)果如圖: 圖14 初始化運(yùn)行界面1 圖15 初始化運(yùn)行界面2 圖16 點(diǎn)擊按鈕后運(yùn)行畫面1 圖17 點(diǎn)擊按鈕后運(yùn)行畫面2 6設(shè)計總結(jié) 本文設(shè)計的32x32的點(diǎn)陣LED文字顯示屏,能夠在目測條件下LED顯示屏各點(diǎn)亮度均勻、充足,可顯示文字,顯示的文字較穩(wěn)定、
34、清晰。文字向上滾動顯示。本系統(tǒng)具有硬件少,結(jié)構(gòu)簡單,容易實(shí)現(xiàn),性能穩(wěn)定可靠,成本低等特點(diǎn)。 在此次設(shè)計中,我們得到以下體會: 一、在這次點(diǎn)陣設(shè)計的過程讓我進(jìn)一步熟悉KEIL及Proteus的使用。 二、本次設(shè)計結(jié)果仍有缺陷,有一行總是全亮,干擾顯示。 三、通過這次點(diǎn)陣設(shè)計,重新復(fù)習(xí)并進(jìn)一步學(xué)習(xí)了MCS-52優(yōu)點(diǎn),明確了研究目標(biāo)。 四、本文設(shè)計的LED顯示屏能夠?qū)崿F(xiàn)在目測條件下LED顯示屏各點(diǎn)亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應(yīng)穩(wěn)定、清晰無串?dāng)_。圖形或文字以移入移出方式顯示。 五、在后的設(shè)計中,既要想到電路器件的聯(lián)合使用,又要靈活變通,舉一反三。在焊接方
35、面,我們了解到焊接某些器件時,要先消去電烙鐵上的靜電,防止靜電對芯片特別是放大器件造成傷害,焊接二極管、三極管等芯片時要快,防止持續(xù)高溫?fù)p壞芯片。 7參考文獻(xiàn) [1] 牛昱光.單片機(jī)原理與接口技術(shù).電子工業(yè)出版社,2008.2 [2] 陽進(jìn).基于單片機(jī)的LED顯示屏的漢字顯示[J].中國科技信息,2005,(12):112. [3] Mark Nelson著.瀟湘工作室譯.串行通信開發(fā)指南[M].中國水利水電出版社,2002. [4] 劉欣銘,張廣斌.LED顯示屏技術(shù)綜述[J].黑龍江電力,2003, 25(4):294-296. [5] 韓潤萍,陳小萍.點(diǎn)陣LED顯示屏控制
36、系統(tǒng)[J].微計算機(jī)信息,2003,19(10):50-51.
8 附 錄
總體電路圖
源程序
#include
37、00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //太 0x01,0x00, 0x01,0x00, 0x01,0
38、x00, 0x01,0x00, 0x01,0x00, 0xFF,0xFE, 0x01,0x00, 0x01,0x00, 0x02,0x80, 0x02,0x80, 0x04,0x40, 0x04,0x40, 0x0A,0x20, 0x11,0x10, 0x21,0x08, 0xC0,0x06, //原 0x00,0x00, 0x3F,0xFE, 0x20,0x80, 0x21,0x00, 0x27,0xF0, 0x24,0x10, 0x24,0x10, 0x27,0xF0, 0x24,0x10, 0x24,0x10, 0x27,0xF0,
39、0x20,0x80, 0x24,0x90, 0x48,0x88, 0x52,0x84, 0x81,0x00, //理 0x00,0x00, 0x01,0xFC, 0xFD,0x24, 0x11,0x24, 0x11,0xFC, 0x11,0x24, 0x11,0x24, 0x7D,0xFC, 0x10,0x20, 0x10,0x20, 0x11,0xFC, 0x10,0x20, 0x1C,0x20, 0xE0,0x20, 0x43,0xFE, 0x00,0x00, //工 0x00,0x00, 0x00,0x00, 0x7F,0xFC,
40、0x01,0x00, 0x01,0x00, 0x01,0x00, 0x01,0x00, 0x01,0x00, 0x01,0x00, 0x01,0x00, 0x01,0x00, 0x01,0x00, 0x01,0x00, 0xFF,0xFE, 0x00,0x00, 0x00,0x00, //大 0x01,0x00, 0x01,0x00, 0x01,0x00, 0x01,0x00, 0x01,0x00, 0xFF,0xFE, 0x01,0x00, 0x01,0x00, 0x02,0x80, 0x02,0x80, 0x04,0x40, 0x04
41、,0x40, 0x08,0x20, 0x10,0x10, 0x20,0x08, 0xC0,0x06, // 學(xué) 0x22,0x08, 0x11,0x08, 0x11,0x10, 0x00,0x20, 0x7F,0xFE, 0x40,0x02, 0x80,0x04, 0x1F,0xE0, 0x00,0x40, 0x01,0x80, 0xFF,0xFE, 0x01,0x00, 0x01,0x00, 0x01,0x00, 0x05,0x00, 0x02,0x00, //歡 0x00,0x80, 0x00,0x80, 0xFC,0x80, 0x0
42、5,0xFE, 0x85,0x04, 0x4A,0x48, 0x28,0x40, 0x10,0x40, 0x18,0x40, 0x18,0x60, 0x24,0xA0, 0x24,0x90, 0x41,0x18, 0x86,0x0E, 0x38,0x04, 0x00,0x00, //迎 0x40,0x00, 0x21,0x80, 0x36,0x7C, 0x24,0x44, 0x04,0x44, 0x04,0x44, 0xE4,0x44, 0x24,0x44, 0x25,0x44, 0x26,0x54, 0x24,0x48, 0x20,0x40
43、, 0x20,0x40, 0x50,0x00, 0x8F,0xFE, 0x00,0x00, //您 0x08,0x00, 0x09,0x00, 0x11,0xFE, 0x12,0x04, 0x34,0x40, 0x32,0x50, 0x52,0x48, 0x94,0x44, 0x11,0x44, 0x10,0x80, 0x00,0x00, 0x29,0x04, 0x28,0x92, 0x68,0x12, 0x07,0xF0, 0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
44、,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; char code table
45、1[]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
46、,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //鄧 0x00,0x00, 0x7E,0x7C, 0x02,0x44, 0x02,0x48, 0x42,0x48, 0x24,0x50, 0x14,0x48, 0x08,0x48, 0x08,0x44, 0x14,0x44, 0x14,0x44, 0x22,0x68, 0x42,0x50, 0x80,0x40, 0x00,0x40, 0x00,0x40, //志 0x01,0x00, 0x01,0x00, 0x01,0x00, 0xFF,0xFE, 0x01,0x00
47、, 0x01,0x00, 0x01,0x00, 0x3F,0xF8, 0x00,0x00, 0x01,0x00, 0x08,0x88, 0x48,0x84, 0x48,0x12, 0x48,0x12, 0x87,0xF0, 0x00,0x00, //鴻 0x00,0x10, 0x80,0x20, 0x40,0x7C, 0x1F,0x44, 0x84,0x64, 0x44,0x54, 0x44,0x44, 0x04,0x4C, 0x24,0x40, 0x44,0x7E, 0xC4,0x02, 0x47,0x02, 0x5C,0x7A, 0x4
48、8,0x02, 0x40,0x0A, 0x00,0x04, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x0
49、0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; void main() { uchar i,j; //i:每個字的顯示循環(huán);j每個字的顯示碼除以2 uint b=0; //顯示偏移控制 uint num=0; uchar a; //控制移動間隔時間 key=1; while(1) { while(num==0)
50、 { j=0; if(key==0) { delay(110); if(key==0) { num=1; while(!key); } } if(num!=0) break; if(a>2) //移動間隔時間 { a=0; b+=2;
51、 if(b>=352) //顯示到最后一個字,回頭顯示,判斷值=字?jǐn)?shù)(5)*32 { b=0; } } pp=1; //片選 for(i=0;i<16;i++) { P1=i; //行選 P3=table[j+b]; P2=table[j+b+1]; delay(5); // P2=0x00;
52、 // P3=0x00; j+=2; } pp=0; //片選 for(i=0;i<16;i++) { P1=i; P3=table[j+b]; P2=table[j+b+1]; delay(5); // P2=0x00; // P3=0x00; j+=2; }
53、 a++; } while(num==1) { j=0; if(key==0) { delay(110); if(key==0) { num=0; while(!key); } } if(num==0) break; if(a>2) //移動間隔時間 {
54、 a=0; b+=2; if(b>=160) //顯示到最后一個字,回頭顯示,判斷值=字?jǐn)?shù)(11)*32 { b=0; } } pp=1; //片選 for(i=0;i<16;i++) { P1=i; //行選 P3=table1[j+b]; P2=table1[j+b+1];
55、 delay(5);
// P2=0x00;
// P3=0x00;
j+=2;
}
pp=0; //片選
for(i=0;i<16;i++)
{
P1=i;
P3=table1[j+b];
P2=table1[j+b+1];
delay(5);
// P2=0x00;
// P3=0x00;
j+=2;
}
a++;
}
}
}
void delay(int z)
{
int x,y;
for(x=0;x
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。