大屏幕LED 點(diǎn)陣顯示系統(tǒng)
作者:陳君霞 黃躍華 甘 文
本文引用地址:http://cafeforensic.com/article/258672.htm關(guān)鍵詞:LED 顯示屏,AT89S51,顯示系統(tǒng)
摘要:本文設(shè)計(jì)的點(diǎn)陣LED 顯示屏控制系統(tǒng)以AT89S51 單片機(jī)為基礎(chǔ),采用靜態(tài)RAM 作為數(shù)據(jù)存儲器,利用串行接口實(shí)現(xiàn)與PC 機(jī)的數(shù)據(jù)傳輸。可實(shí)現(xiàn)漢字、字符及數(shù)字等內(nèi)容的顯示??梢噪S時更新顯示的內(nèi)容。
1 引言
本文所設(shè)計(jì)的是一個同等灰度的單色LED 顯示屏控制系統(tǒng),該控制系統(tǒng)以AT89S51 為控制器,采用RS-232 通信標(biāo)準(zhǔn),可顯示漢字、字符、數(shù)字或單色圖片。系統(tǒng)采用ATMEL 公司新推出的AT89S51 作為主控芯片,由單片機(jī)完成與PC 機(jī)的通訊,同時完成數(shù)據(jù)存儲、循環(huán)顯示等。系統(tǒng)能脫機(jī)運(yùn)行,具有結(jié)構(gòu)簡單、維護(hù)方便、顯示刷新速度快、成本低等特點(diǎn)。配合在線下載程序,隨時更新顯示的內(nèi)容,通過級連更改顯示屏面積的大小,使用起來非常方便。
2 LED 顯示屏系統(tǒng)的組成
2.1 原理框圖和硬件電路結(jié)構(gòu)
顯示屏控制系統(tǒng)由顯示控制器和LED 點(diǎn)陣顯示屏組成??刂葡到y(tǒng)的結(jié)構(gòu)框圖如圖1 所示。主要由微處理器、通信電路、數(shù)據(jù)存儲器、顯示電路等組成。
2.2 AT89S51 芯片
本顯示系統(tǒng)采用ATMEL 公司新推出的AT89S51 作為主控芯片,AT89S51 擁有與INTEL 公司的8051 相同的內(nèi)核和引腳排列。表1 為AT89S51 的內(nèi)部功能表,AT89S51 除了具有8051 的全部功能外,還內(nèi)置了一些比較實(shí)用的功能部件。如AT89S51 內(nèi)部的程序存儲器是4KB 可擦寫的flashROM,下載程序代碼整個過程僅用幾秒鐘,使用起來非常方便。而8051 內(nèi)部的程序存儲器是4KB 的PROM,只能一次性寫入程序代碼,以后就無法修改。另外AT89S51 提供了一個ISP 下載接口。很適合用于單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)或開發(fā)。
3 系統(tǒng)硬件電路的介紹
顯示屏控制器的硬件電路部分主要由三個部分組成:外部存儲器的擴(kuò)展、串行通信接口和LED 點(diǎn)陣顯示驅(qū)動及接口電路。
一般來說要顯示的內(nèi)容比較多,所以必須要擴(kuò)展外部數(shù)據(jù)存儲器。靜態(tài)數(shù)據(jù)存儲器成本低、功耗小,讀寫速度快,我們使用二片靜態(tài)RAM62256 數(shù)據(jù)存儲器(共64KB)。把要顯示的內(nèi)容代碼全部存放到62256 里面。
62256 與單片機(jī)的接口電路如圖2 所示,顯示的內(nèi)容代碼通過串行接口下載到62256 中。串行通信接口電路如圖3 所示,通過MAX232E 跟 PC 機(jī)的串行口連接。LED 顯示驅(qū)動及接口電路如圖4 所示,控制信號通過緩沖器74LS245 后分兩路,一路由CD4515 譯碼后經(jīng)TIP127 驅(qū)動點(diǎn)陣的行;另一路由數(shù)據(jù)移位寄存器74HC595 驅(qū)動點(diǎn)陣的列。當(dāng)多個顯示單元級聯(lián)時只需相應(yīng)地把下一級輸入接到上一級的輸出即可。
圖3 AT89S51 與PC 機(jī)的通信電路
4 軟件程序
軟件程序是整個控制系統(tǒng)的核心部分。整個軟件設(shè)計(jì)主要分為兩大部分:顯示部分和通信部分。顯示部分采用動態(tài)掃描的方式,實(shí)現(xiàn)對顯示屏要顯示的漢字、圖像、字符等數(shù)據(jù)信息進(jìn)行傳輸控制以及顯示等功能。程序中將數(shù)據(jù)存儲器分為三個區(qū):顯示緩沖區(qū)、數(shù)據(jù)存儲區(qū)和接收緩沖區(qū)。單片機(jī)通過串口中斷接收PC 機(jī)傳來的數(shù)據(jù),暫時存放在接收緩沖區(qū),經(jīng)分析處理后按一定的規(guī)律放入數(shù)據(jù)存儲區(qū)保存起來,然后再根據(jù)顯示方式依次從數(shù)據(jù)存儲器中取出數(shù)據(jù)放入顯示緩沖區(qū)中用于顯示。顯示采用逐行掃描的方式,圖5 是顯示一屏字符的程序流程圖。與PC 機(jī)的實(shí)時通信部分主要是利用單片機(jī)串口中斷接收數(shù)據(jù)信息,實(shí)現(xiàn)與計(jì)算機(jī)的數(shù)據(jù)信息傳輸。其程序流程圖如圖6 所示。
通信部分的上位機(jī)軟件采用Visual Basic(簡稱VB)編程,使用VB 提供具有強(qiáng)大功能的通信控件MSCOMM,該控件可對串口狀態(tài)及串口通信的信息格式和協(xié)議進(jìn)行設(shè)置,直接利用PC 機(jī)的串口發(fā)送數(shù)據(jù)。為實(shí)現(xiàn)單片機(jī)與PC 機(jī)的可靠通信,須保證雙方具有相同的數(shù)據(jù)格式和波特率。該軟件的使用比較簡單,如圖7 所示。使用時可以先用 Microsoft Word 處理好需要顯示的內(nèi)容(注意頁面設(shè)置的寬度跟LED 顯示屏的寬度應(yīng)該相同),然后選擇編輯菜單里面的全選命令和復(fù)制命令,然后運(yùn)行LED 顯示下載軟件V1.1。 在界面中選擇“來自剪貼板”按鈕,需要下載顯示的內(nèi)容即可在右邊的預(yù)覽框中顯示,檢查無誤后選擇合適的波特率和連接的串行通信口,按下“下載”按鈕,即可下載到顯示屏上顯示。需要修改或要顯示新的內(nèi)容時重復(fù)上述操作即可完成。使用起來非常方便。
5 結(jié)束語
本文設(shè)計(jì)的點(diǎn)陣LED 顯示屏控制系統(tǒng)以AT89S51 單片機(jī)為基礎(chǔ),采用靜態(tài)RAM 作為數(shù)據(jù)存儲器,利用串行接口實(shí)現(xiàn)與PC 機(jī)的數(shù)據(jù)傳輸。可實(shí)現(xiàn)漢字、字符及數(shù)字等內(nèi)容的顯示??梢噪S時更新顯示的內(nèi)容。使用起來非常方便。在系統(tǒng)設(shè)計(jì)中還兼顧了單片機(jī)的抗干擾能力,有效地提高了系統(tǒng)運(yùn)行的可靠性??芍苯舆\(yùn)用于實(shí)際場合。
評論