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