資料包:
點(diǎn)陣_看圖王.jpg (88.67 KB, 下載次數(shù): 106)
下載附件
2018-4-20 08:26 上傳
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.jpg (52.64 KB, 下載次數(shù): 99)
下載附件
2018-4-20 15:15 上傳
0.png (171.27 KB, 下載次數(shù): 78)
下載附件
2018-4-20 15:15 上傳
0.jpg (12.66 KB, 下載次數(shù): 81)
下載附件
2018-4-20 15:15 上傳
1 緒論 1.1 前言 LED點(diǎn)陣顯示屏是集微電子技術(shù)、計(jì)算機(jī)技術(shù)、信息處理技術(shù)于一體的大型顯示屏系統(tǒng)。它以其色彩鮮艷,動(dòng)態(tài)范圍廣,亮度高,壽命長,工作穩(wěn)定可靠等優(yōu)點(diǎn)而成為眾多顯示媒體以及戶外作業(yè)顯示的理想選擇。同時(shí)也可廣泛應(yīng)用到軍事、車站、賓館、體育、新聞、金融、證券、廣告以及交通運(yùn)輸?shù)仍S多行業(yè)。目前大多數(shù)的LED點(diǎn)陣顯示系統(tǒng)自帶字庫。其顯示和動(dòng)態(tài)效果(主要是顯示內(nèi)容的滾動(dòng))的實(shí)現(xiàn)主要依靠硬件掃描驅(qū)動(dòng),該方法雖然比較方便,但顯示只能按照預(yù)先的設(shè)計(jì)進(jìn)行。而實(shí)際上經(jīng)常會(huì)遇到一些特殊要求的動(dòng)態(tài)顯示,比如電梯運(yùn)行中指示箭頭的上下移動(dòng)、某些智能儀表幅值的條形顯示、廣告中廠家的商標(biāo)顯示等。這時(shí)一般的顯示系統(tǒng)就很難達(dá)到要求。另外,由于受到存儲器本身的局限,其特殊字符往往難以顯示,同時(shí)顯示內(nèi)容也不能隨意更改。 因此就提出了一種利用PC機(jī)和單片機(jī)控制的LED顯示系統(tǒng)通信方法。該方法可以對顯示內(nèi)容進(jìn)行實(shí)時(shí)控制,從而實(shí)現(xiàn)諸如動(dòng)態(tài)顯示效果。同時(shí)用戶也可以在PC機(jī)上進(jìn)行顯示效果的預(yù)覽,顯示內(nèi)容亦可以即時(shí)修改。同時(shí)它具有發(fā)光率高、使用壽命長、組態(tài)靈活、色彩豐富以及對室內(nèi)外環(huán)境適應(yīng)能力強(qiáng)等優(yōu)點(diǎn)。并廣泛的用于公交汽車、商店、體育場館、車站、學(xué)校、銀行、高速公路等公共場所的信息發(fā)布和廣告宣傳。LED 顯示屏發(fā)展較快,本文講述了基于89C51單片機(jī)8×8 LED漢字點(diǎn)陣滾動(dòng)顯示的基本原理、硬件組成與設(shè)計(jì)、程序編寫與調(diào)試、Proteus軟件仿真等基本環(huán)節(jié)和相關(guān)技術(shù)。 1.2 選題背景 LED電子顯示屏是隨著計(jì)算機(jī)及相關(guān)的微電子﹑光電子技術(shù)的迅猛發(fā)展而形成的一種新型信息顯示媒體。它利用發(fā)光二極管構(gòu)成的點(diǎn)陣模塊或像素單元組成可變面積的顯示屏幕,以可靠性高、使用壽命長、環(huán)境適應(yīng)能力強(qiáng)、性能價(jià)格比高、使用成本低等特點(diǎn),在短短的十來年中,迅速成長為平板顯示的主流產(chǎn)品,在信息顯示領(lǐng)域得到了廣泛的應(yīng)用。LED 點(diǎn)陣電子顯示屏是集微電子技術(shù)、計(jì)算機(jī)技術(shù)、信息處理技術(shù)于一體的大型顯示屏系統(tǒng)。它以其色彩鮮艷,動(dòng)態(tài)范圍廣,亮度高,壽命長,工作穩(wěn)定可靠等優(yōu)點(diǎn)而成 為眾多顯示媒體以及戶外作業(yè)顯示的理想選擇。同時(shí)也可廣泛應(yīng)用到軍事、車站、賓館、體育、新聞、金融、證券、廣告以及交通運(yùn)輸?shù)仍S多行業(yè)。 1.3設(shè)計(jì)要求 利用一塊點(diǎn)陣數(shù)碼板,按編程者要求實(shí)現(xiàn)任意符號的顯示。 1.4 國內(nèi)外的研究概況 目前大多數(shù)的LED點(diǎn)陣顯示系統(tǒng)自帶字庫。其顯示和動(dòng)態(tài)效果(主要是顯示內(nèi)容的滾動(dòng))的實(shí)現(xiàn)主要依靠硬件掃描驅(qū)動(dòng),該方法雖然比較方便,但顯示只能按照預(yù)先的設(shè)計(jì)進(jìn)行。而實(shí)際上經(jīng)常會(huì)遇到一些特殊要求的動(dòng)態(tài)顯示,比如電梯運(yùn)行中指示箭頭的上下移動(dòng)、某些智能儀表幅值的條形顯示、廣告中廠家的商標(biāo)顯示等。這時(shí)一般的顯示系統(tǒng)就很難達(dá)到要求。另外,由于受到存儲器本身的局限,其特殊字符或圖案也往往難以顯示,同時(shí)顯示內(nèi)容也不能隨意更改。本文提出一種利用PC機(jī)和單片機(jī)控制的LED顯示系統(tǒng)通訊方法。該方法可以對顯示內(nèi)容(包括漢字和特殊圖符)進(jìn)行實(shí)時(shí)控制,從而實(shí)現(xiàn)諸如閃動(dòng)、滾動(dòng)、打字等多種動(dòng)態(tài)顯示效果。該方法同時(shí)還可以調(diào)節(jié)動(dòng)態(tài)顯示的速度,同時(shí)用戶也可以在PC機(jī)上進(jìn)行顯示效果的預(yù)覽,顯示內(nèi)容亦可以即時(shí)修改。在我國改革開放之后,特別是進(jìn)入90年代國民經(jīng)濟(jì)高速增長,對公眾場合發(fā)布信息的需求日益強(qiáng)烈,LED顯示屏的出現(xiàn)正好適應(yīng)了這一市場形勢,因而在LED顯示屏的設(shè)計(jì)制造技術(shù)與應(yīng)用水平上都得到了迅速的提高,生產(chǎn)也得到了迅速的發(fā)展,并逐步形成產(chǎn)業(yè),成為光電子行業(yè)的新興產(chǎn)業(yè)領(lǐng)域。 1.5此次設(shè)計(jì)研究的主要內(nèi)容應(yīng)解決的問題此次設(shè)計(jì)研究的主要內(nèi)容是設(shè)計(jì)一個(gè)符號顯示牌:通過程序控制符號顯示牌,使符號顯示牌,在無按鍵按下時(shí),顯示數(shù)字“0-9”,當(dāng)?shù)谝淮伟聪掳存I時(shí),顯示字母“μ”,當(dāng)?shù)诙伟聪掳存I時(shí)顯示漢字“公”。 應(yīng)解決的問題:單片機(jī)P1口的輸出電流不足以驅(qū)動(dòng)二極管,需要加驅(qū)動(dòng),本次研究中以S8050作為驅(qū)動(dòng),同時(shí)在S8050NPN晶體管基極加4.7K的電阻。實(shí)驗(yàn)前要弄清晶體管三個(gè)引腳代表的極性,以免符號顯示牌不亮導(dǎo)致而設(shè)計(jì)失敗。
2 總體設(shè)計(jì)方案 2.1 硬件電路組成 本產(chǎn)品采用以89C51單片機(jī)為核心芯片的電路來實(shí)現(xiàn),主要由89C51芯片、晶振電路、三極管驅(qū)動(dòng)電路、按鍵控制電路、8×8 LED點(diǎn)陣5部分組成,電路框圖如圖1所示。其中,89C51是一種帶4kB閃爍可編程可擦除只讀存儲器(Falsh Programmable and Erasable Read OnlyMemory,F(xiàn)PEROM)的低電壓、高性能CMOS型8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,工業(yè)標(biāo)準(zhǔn)的MCS一51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個(gè)芯片中,能夠進(jìn)行1 000次寫/擦循環(huán),數(shù)據(jù)保留時(shí)間為10年。他是一種高效微控制器,為很多嵌人式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。因此,在智能化電子設(shè)計(jì)與制作過程中經(jīng)常用到89C51芯片。時(shí)鐘電路由89C51的18,19腳的時(shí)鐘端(XTAI 1及XTAL2)以及12 MHz晶振X 、電容C2、C3組成,采用片內(nèi)振蕩方式。復(fù)位電路采用簡易的上電復(fù)位電路,主要由電阻R ,R2,電容C ,開關(guān)K 組成,分別接至89C51的RST復(fù)位輸人端。LED點(diǎn)陣顯示屏采用8x8共64個(gè)象素的點(diǎn)陣,可通過萬用表檢測發(fā)光二極管的方法測試判斷出該點(diǎn)陣的引腳分布。 我們把行列總線接在單片機(jī)的I/O口,然后把上面分析到的掃描代碼送入總線,就可以得到顯示的字符了。我們在實(shí)際應(yīng)用中是將LED點(diǎn)陣的8條列線通過驅(qū)動(dòng)電路接在P1口,8條行線通過限流電阻接在P0口。單片機(jī)89C51按照設(shè)定的程序在P1和P0接口輸出與內(nèi)部字符對應(yīng)的代碼電平送至LED點(diǎn)陣的行列線(高電平驅(qū)動(dòng)),從而選中相應(yīng)的象素LED發(fā)光,并利用人眼的視覺暫留特性合成整個(gè)字符的顯示。再改變?nèi)”淼刂穼?shí)現(xiàn)字符的滾動(dòng)顯示。硬件電路組成框圖如圖5所示。 圖2-1 硬件電路組成框圖 2.2 系統(tǒng)各單元電路設(shè)計(jì) 2.2.1 89C51單片機(jī)最小系統(tǒng) 最小系統(tǒng)包括晶體振蕩電路、復(fù)位開關(guān)和電源部分。圖2-2為89C51單片機(jī)的最小系統(tǒng)。 圖2-2 單片機(jī)最小系統(tǒng) 2.2.2 按鍵控制電路 單片機(jī)開始工作時(shí),P2.0是高電平。當(dāng)按鍵按下時(shí),檢測到一個(gè)低電平信號,改變P0口輸出信號,控制8×8 LED點(diǎn)陣顯示屏顯示不同字符。
圖2-3 按鍵控制電路 2.2.3 三極管驅(qū)動(dòng)電路 掃描驅(qū)動(dòng)電路的功能主要是有P1口輸出高電平使三極管發(fā)射結(jié)導(dǎo)通,發(fā)射結(jié)輸出足夠大的電流使二極管導(dǎo)通。 圖2-4 三極管驅(qū)動(dòng)電路 2.2.4 8×8 LED點(diǎn)陣介紹 圖(4)為8×8點(diǎn)陣LED外觀及引腳圖,,只要其對應(yīng)的X、Y軸順向偏壓,即可使LED發(fā)亮。例如如果想使左上角LED點(diǎn)亮,則電子模塊中的0口為1,A口為0即可。應(yīng)用時(shí)限流電阻可以放在橫軸或列軸。 圖2-5 8×8點(diǎn)陣LED外觀及引腳 (1)把“單片機(jī)系統(tǒng)”區(qū)域中的P0端口用8芯排芯連接到“點(diǎn)陣模塊”區(qū)域中的“A~H”端口上; (2)把“單片機(jī)系統(tǒng)”區(qū)域中的P1端口用8芯排芯連接到“點(diǎn)陣模塊”區(qū)域中的“0~7”端口上; 為了方便于單片機(jī)連接,我們在焊接的過程中特意將0~7接口排列出來作為列,將A~H接口作為行,這樣我們就可以直接將P89C51單片機(jī)的P0口與0~7接口一次連接,將P89C51單片機(jī)的P1口與A~H接口一次連接。要使LED發(fā)亮即使給予數(shù)字端高電平,字母端給予低電平,就能使二極管發(fā)亮。 2.3 字符的點(diǎn)陣顯示原理及字庫代碼獲取方法 我們以UCDOS中文宋體字庫為例,每一個(gè)字由8行8列的點(diǎn)陣組成顯示。我們可以把每一個(gè)點(diǎn)理解為一個(gè)象素,而把每一個(gè)字的字形理解為一幅圖像。事實(shí)上這個(gè)漢字屏不僅可以顯示漢字,也可以顯示在64象素范圍內(nèi)的任何圖形。如查用8位的P89C51單片機(jī)控制,如圖所示 
圖2-6 8×8點(diǎn)陣等效電路 為了弄清楚漢字的點(diǎn)陣組成規(guī)律,首先通過列掃描方法獲取漢字的代碼。首先將8行分成4位的上、下兩部分,把發(fā)光的象素位編為0不發(fā)光的象素位為1的十六進(jìn)制代碼。這樣就把要顯示的“公”字編為如下代碼: 0x7f,0xbf,0xc1,0xdf,0xdf,0xdf,0xc1,0xdf 由這個(gè)原理可以看出,無論顯示何種字體或圖像,都可以用這個(gè)方法來分析出他的掃描代碼從而顯示在屏幕上。上述方法雖然能夠讓我們弄清楚字符點(diǎn)陣代碼的獲取過程。字符點(diǎn)陣顯示一般有點(diǎn)掃描、行掃描和列掃描3種。為了符合視覺暫留要求,點(diǎn)掃描方法的掃描頻率必須大于16×64—1024 Hz,周期小于1 ms即可。行掃描和列掃描方法的掃描頻率必須大于16×8—128 Hz,周期小于7.8 ms即可。
3 程序設(shè)計(jì)
3.1程序流程圖 圖3-1 主程序流程圖 3.2程序設(shè)計(jì) 根據(jù)上述所說的程序流程圖,設(shè)計(jì)程序如附錄3。
4 調(diào)試及性能分析
4.1系統(tǒng)調(diào)試 4.1.1軟件調(diào)試 首先根據(jù)各單元電路模塊,利用Proteus軟件將總的硬件原理圖繪制好,設(shè)計(jì)好各模塊要使用的I/O口,如:8×8點(diǎn)陣LED顯示屏?xí)r候插反,先檢測下,無硬件錯(cuò)誤后,再進(jìn)行程序編程。 利用C語言的編程方式,將系統(tǒng)要求的基本功能,以及創(chuàng)新功能根據(jù)程序流程圖編寫出來,用Keil軟件調(diào)試無誤后,生成Hex文件。 雙擊Proteus中的P89C51芯片,將Keil生成的Hex加載到芯片內(nèi),進(jìn)行仿真,經(jīng)調(diào)試后所編寫的程序能夠完美實(shí)現(xiàn)系統(tǒng)所需的各種功能。 4.1.2硬件調(diào)試 硬件調(diào)試主要是檢測硬件電路是否有短路、斷路、虛焊等。具體步驟及測試結(jié)果如下: (1) 檢查電源與地線是否全部連接上,用萬用表對照電路原理圖測試各導(dǎo)線是否完全連接,對未連接的進(jìn)行修復(fù)。 (2) 參照原理圖,檢查各個(gè)器件之間的連接是否連接正確,是否存在虛焊,經(jīng)測試,各連接不存在問題。 (3) 以上兩項(xiàng)檢查并修復(fù)完后,給該硬件電路上電,電源指示燈點(diǎn)亮。 (4) 將燒錄好程序的最小單片機(jī)系統(tǒng)接入各模塊后,各模塊能過正常工作,如:數(shù)碼管正常發(fā)光。 4.2設(shè)計(jì)分析 將燒錄好程序的最小單片機(jī)系統(tǒng)與各模塊連接好后,8×8點(diǎn)陣LED顯示屏顯示初始值。按鍵一次之后,顯示屏顯示滾動(dòng)字符μ,再按鍵一次,顯示屏顯示漢字“公”。 經(jīng)軟件調(diào)試和硬件調(diào)試后,所設(shè)計(jì)的系統(tǒng)完美實(shí)現(xiàn)了所需的控制要求和創(chuàng)新要求。
總結(jié)
本文設(shè)計(jì)一個(gè)8×8點(diǎn)陣LED圖文顯示屏。經(jīng)過測試,LED各點(diǎn)亮度均勻,可顯示圖形和文字,且穩(wěn)定清晰無串?dāng)_。本系統(tǒng)具有硬件少、結(jié)構(gòu)簡單、容易實(shí)現(xiàn),性能穩(wěn)定可靠等特點(diǎn)。通過查閱資料,了解了LED發(fā)光原理和LED顯示技術(shù)的原理和現(xiàn)狀。在 LED點(diǎn)陣顯示屏的設(shè)計(jì)過程中,學(xué)到了很多東西,復(fù)習(xí)了Protel、Proteus、Keil等軟件的基礎(chǔ)應(yīng)用。基本了解了整個(gè)嵌入式開發(fā)的流程。例如,在進(jìn)行整個(gè)設(shè)計(jì)之前,應(yīng)該先根據(jù)需求分析,對單片機(jī)進(jìn)行選型,然后對各個(gè)硬件模塊進(jìn)行搭試。在畫PCB電路板的時(shí)候,要注意基本的布板原則。在焊接電路板的時(shí)候,應(yīng)該從最基本的最小系統(tǒng)開始,分模塊,逐個(gè)進(jìn)行焊接測試。在對各個(gè)硬件模塊進(jìn)行測試時(shí),要保證軟件正確的情況下去測試硬件,要不然發(fā)生錯(cuò)誤時(shí),不知道到底是哪一方出錯(cuò)了。總之,這次設(shè)計(jì)開發(fā),本人受益非淺,在以后的開發(fā)過程中一定總結(jié)經(jīng)驗(yàn),吸取教訓(xùn),為以后的學(xué)習(xí)工作打好基礎(chǔ)。 附錄1 原件清單
附錄2硬件原理圖 附錄3系統(tǒng)PCB圖 附錄4點(diǎn)陣的放置與接線方法:  
附錄5程序清單
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar i,j,k,scan,num,count;
- sbit key=P2^0;
- uchar code table1[]=
- {0x7f,0xbf,0xc1,0xdf,0xdf,0xdf,0xc1,0xdf}; //μ
- uchar code table2[]=
- {0xf7,0xdb,0xad,0xb7,0xbe,0xdd,0xbb,0xf7}; //公
- uchar code table[][8]=
- {{0xff,0xff,0xc3,0xbd,0xbd,0xc3,0xff,0xff}, //0
- {0xff,0xbf,0xbb,0x81,0x80,0xbf,0xbf,0xff}, //1
- {0xff,0xff,0xbb,0x9d,0xad,0xb3,0xff,0xff}, //2
- {0xff,0xff,0xdd,0xbe,0xb6,0xc9,0xff,0xff}, //3
- {0xff,0xef,0xe7,0xeb,0x81,0xef,0xef,0xff}, //4
- {0xff,0xff,0xd1,0xb5,0xb5,0xcd,0xff,0xff}, //5
- {0xff,0xff,0xc1,0xb6,0xb6,0xcd,0xff,0xff}, //6
- {0xff,0xff,0xfd,0xfd,0x8d,0xf5,0xf9,0xff}, //7
- {0xff,0xff,0xc9,0xb6,0xb6,0xc9,0xff,0xff}, //8
- {0xff,0xff,0xd9,0xb6,0xb6,0xc1,0xff,0xff}, //9
- {0xff,0x83,0xed,0xee,0xed,0x83,0xff,0xff}, //A
- {0xff,0xff,0x80,0xb6,0xb6,0xc9,0xff,0xff}, //B
- {0xff,0xc3,0xbd,0xbd,0xbd,0xdb,0xff,0xff}, //C
- {0xff,0xff,0x81,0xbd,0xbd,0xc3,0xff,0xff}, //D
- {0xff,0xff,0x80,0xb6,0xb6,0xb6,0xff,0xff}, //E
- {0xff,0xff,0x80,0xf6,0xf6,0xf6,0xff,0xff} //F
- };
- void delay(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void main()
- {
- key=1;
- num=0;
- while(1)
- {
- if(num==0)
- {
- for(j=0;j<16;j++)
- {
- if(key==0)
- {
- delay(10);
- if(key==0)
- {
- num=1;
- while(!key);
- }
- }
- if(num!=0)
- break;
- for(k=0;k<30;k++)
- {
- scan=0x01;
- for(i=0;i<8;i++)
- {
- P0=table[j][i];
- P1=scan;
- delay(2);
- scan<<=1;
- }
- }
- }
- }
- if(num==1)
- {
- for(j=0;j<8;j++) //8組數(shù)據(jù)
- {
- if(key==0)
- {
- delay(10);
- if(key==0)
- {
- num=2;
- while(!key);
- }
- }
- if(num!=1)
- break;
- for(k=0;k<10;k++)
- {
- scan=0x01; //初始掃描信號
- for(i=8;i>0;i--) //掃描周期
- {
- if(i>j)P0=table1[8+(j-i)];
- else P0=table1[j-i];
- P1=scan;
- delay(2);
- scan<<=1;
- }
- }
- }
- }
- if(num==2)
- {
- if(key==0)
- {
- delay(10);
- if(key==0)
- {
- num=0;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
全部資料51hei下載地址(含word格式的設(shè)計(jì)報(bào)告):
14.點(diǎn)陣8x8.rar
(889.47 KB, 下載次數(shù): 285)
2018-4-20 08:21 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|