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