版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)論文(設(shè)計(jì))</b></p><p> 基于PC機(jī)控制的點(diǎn)陣顯示屏設(shè)計(jì)</p><p> 學(xué) 生 姓 名: </p><p> 指導(dǎo)教師: </p><p> 合作指導(dǎo)教師:
2、 </p><p> 專業(yè)名稱: 電子信息工程 </p><p> 所在學(xué)院: 信息工程學(xué)院 </p><p><b> 2012年6月</b></p><p><b> 目 錄</b></p><p><
3、b> 摘 要Ⅰ</b></p><p> ABSTRACTⅡ</p><p><b> 第一章 緒 論1</b></p><p> 1.1 課題背景1</p><p> 1.2 研究現(xiàn)狀及發(fā)展趨勢1</p><p> 第二章 系統(tǒng)方案論證與選擇3&
4、lt;/p><p><b> 2.1方案論證3</b></p><p> 2.2 各模塊方案選擇與論證5</p><p> 第三章 系統(tǒng)硬件電路設(shè)計(jì)與實(shí)現(xiàn)- 4 -</p><p> 3.1 硬件電路設(shè)計(jì)- 4 -</p><p> 3.2 各單元電路說明- 4 -</p&g
5、t;<p> 第四章 系統(tǒng)軟件設(shè)計(jì)- 12 -</p><p> 4.1系統(tǒng)軟件編譯器介紹- 12 -</p><p> 4.2 軟件的選擇- 12 -</p><p> 4.3程序主系統(tǒng)及驅(qū)動系統(tǒng)- 13 -</p><p> 4.4串口通信設(shè)計(jì)- 14 -</p><p> 4.
6、5上位機(jī)功能實(shí)現(xiàn)說明- 20 -</p><p> 第五章 系統(tǒng)調(diào)試及結(jié)果分析- 1 -</p><p> 5.1 系統(tǒng)調(diào)試- 1 -</p><p> 5.2 結(jié)果分析- 2 -</p><p> 第六章 總結(jié)- 1 -</p><p><b> 致 謝- 1 -</b>&
7、lt;/p><p> 參考文獻(xiàn)- 1 -</p><p> 附錄1 硬件電路圖- 1 -</p><p> 附錄2 單片機(jī)機(jī)程序- 1 -</p><p><b> 摘 要</b></p><p> 本設(shè)計(jì)是一基于PC機(jī)控制的16×16點(diǎn)陣LED漢字顯示屏的設(shè)計(jì)。&l
8、t;/p><p> 整機(jī)以AT89C51單片機(jī)為核心,介紹了以它為控制系統(tǒng)的LED點(diǎn)陣電子顯示屏的動態(tài)設(shè)計(jì)和開發(fā)過程。該系統(tǒng)通過RS232與上位機(jī)PC進(jìn)行串行通信,采用計(jì)算機(jī)串口對其進(jìn)行數(shù)據(jù)輸入,能實(shí)現(xiàn)屏幕顯示內(nèi)容的實(shí)時(shí)采集;通過該芯片控制一個(gè)行驅(qū)動器 74HC154來驅(qū)動顯示屏顯示。該電子顯示屏可以顯示各種文字,全屏能顯示一個(gè)漢字,采用4塊8×8點(diǎn)陣LED顯示模塊來組成16×16點(diǎn)陣顯示模式。
9、顯示采用動態(tài)顯示,使得文字能夠?qū)崿F(xiàn)靜止、移入移出等多種顯示方式。文中詳細(xì)介紹了LED點(diǎn)陣顯示的硬件設(shè)計(jì)思路、硬件電路各個(gè)部分的功能及原理、相應(yīng)軟件的程序設(shè)計(jì),以及使用說明等。</p><p> 單片機(jī)控制系統(tǒng)程序采用單片機(jī)匯編語言進(jìn)行編輯,通過編程控制各顯示點(diǎn)對應(yīng)LED陽極和陰極端的電平,就可以有效的控制各顯示點(diǎn)的亮滅。所顯示字符的點(diǎn)陣數(shù)據(jù)可以自行編寫(即直接點(diǎn)陣畫圖),也可從標(biāo)準(zhǔn)字庫中提取,但此次設(shè)計(jì)我們采用
10、從標(biāo)準(zhǔn)字庫中提取。</p><p> 經(jīng)實(shí)踐證明,該系統(tǒng)顯示誤差小,性能穩(wěn)定,結(jié)構(gòu)合理,擴(kuò)展能力強(qiáng)。</p><p> 關(guān)鍵詞:AT89S51單片機(jī), LED點(diǎn)陣顯示,動態(tài)顯示,串行通信,匯編語言</p><p><b> ABSTRACT</b></p><p> This design is a 16
11、15;16 lattice LED electron display monitor design basic on personal computer.</p><p> The whole equipment is with the 40-pin AT89C521MCU (Micro Controller Unit) produced by the American ATMEL company at the
12、 core, introduced take it as the control system LED lattice electron display monitor dynamic design and the development process. The system through the RS232 and PC to PC serial communications, using its computer serial
13、port for data input, to achieve real-time screen display the contents of the collection.Controls good driver 74HC154 and eight row driver 74HC595 through this c</p><p> SCM process control system used for e
14、diting MCU assembly language, Programming control points indicated by the corresponding LED anode and overcast extreme level. We can effectively control the defense showed bright spots. The lattice data shows characters
15、can prepare themselves (that is, direct lattice Painting), which can also be extracted from the standard font.but this time we adopt being extracted from the standard font. </p><p> As the practice proves,
16、the system possesses advantages in low shows errors, stable, rational structure and strong extensible abilities.</p><p> Key words: AT89S51microcontroller,LED dot matrix display,Dynamic display, </p>
17、<p> Serial port correspondence control system,Assembly language</p><p><b> 第一章 緒 論</b></p><p><b> 1.1課題背景</b></p><p> 在短短的十來年中,LED點(diǎn)陣顯示屏就以亮度高、工作電壓低
18、、低功耗、小型化、壽命長、耐沖擊和性能穩(wěn)定的優(yōu)點(diǎn)迅速成長為平板顯示的主流產(chǎn)品,在信息顯示領(lǐng)域得到了廣泛的應(yīng)用。LED的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性、可靠性、全色化方向發(fā)展。LED顯示屏應(yīng)用在社會生活中都有,例如:(1)證券交易、金融信息顯示。(2)機(jī)場航班動態(tài)信息顯示。(3)港口、車站旅客引導(dǎo)信息顯示。(4)體育場館信息顯示。(5)道路交通信息顯示。(6)調(diào)度指揮中心信息顯示。(7
19、)郵政、電信、商場購物中心等服務(wù)領(lǐng)域的業(yè)務(wù)宣傳及信息顯示。(8)廣告媒體新產(chǎn)品等。</p><p> 1.2研究現(xiàn)狀及發(fā)展趨勢</p><p> 1.2.1我國LED產(chǎn)業(yè)發(fā)展現(xiàn)狀</p><p> 作為近年來最具有革命性意義的技術(shù)發(fā)明形成的產(chǎn)業(yè),LED被稱為繼明火和白熾燈之后的第三次照明革命,有著廣闊的發(fā)展前景。很多國家和地區(qū)相繼出臺各種政策扶持LED產(chǎn)業(yè)的發(fā)
20、展,以期該產(chǎn)業(yè)能夠成為國家重要產(chǎn)業(yè)的重要組成部分?! ∧壳?,我國半導(dǎo)體LED作為節(jié)能、環(huán)保的主要技術(shù),已被納入國家中長期科技發(fā)展規(guī)劃與“十一五”國家“863”高新技術(shù)產(chǎn)業(yè)化重大項(xiàng)目,并得到了大力支持。</p><p> 然而,我國目前LED產(chǎn)品開發(fā)應(yīng)用領(lǐng)域依然存在許多不足。我國自主的LED芯片、外延片產(chǎn)量仍有限,產(chǎn)品以中、低檔為主,與國外差距很大。產(chǎn)業(yè)化規(guī)模偏小,只能滿足國內(nèi)封裝企業(yè)需求量的20%-30%,大
21、部分高性能的LED和大功率LED產(chǎn)品均要依賴進(jìn)口。此外,在LED的應(yīng)用市場方面,也存在著由于產(chǎn)品種類、品種參差不齊問題而引起的制約,尤其是在通用照明領(lǐng)域,由于存在的技術(shù)不足,使其無法進(jìn)行規(guī)?;占皯?yīng)用。因此,推廣對LED封裝技術(shù)的發(fā)展力度,提升自身核心技術(shù)并實(shí)現(xiàn)規(guī)模量產(chǎn)是LED產(chǎn)業(yè)發(fā)展的最關(guān)鍵一步。</p><p> 1.2.2 LED顯示屏的發(fā)展趨勢</p><p> 現(xiàn)代信息社會中
22、,作為人一機(jī)信息視覺傳播媒體的顯示產(chǎn)品和技術(shù)得到迅速發(fā)展,進(jìn)入二十一世紀(jì)的顯示技術(shù)將是平板顯示的時(shí)代,LED顯示屏作為平板顯示的主導(dǎo)產(chǎn)品之一無疑會有更大的發(fā)展,并有可能成為二十一世紀(jì)平板顯示的代表性主流產(chǎn)品。高亮度、全彩化藍(lán)色及純綠色LED產(chǎn)品自出現(xiàn)以來,成本逐年快速降低,已具備成熟的商業(yè)化條件。基礎(chǔ)材料的產(chǎn)業(yè)化。使LED全彩色顯示產(chǎn)品成本下降,應(yīng)用加快。LED產(chǎn)品性能的提高,使全彩色顯示屏的亮度、色彩、白平衡均達(dá)到比較理想的效果,完全
23、可以滿足戶外全天候的環(huán)境條件要求,同時(shí),由于全彩色顯示屏價(jià)格性能比的優(yōu)勢,預(yù)計(jì)在未來幾年的發(fā)展中,全彩色LED顯示屏在戶外廣告媒體中會越來越多地代替?zhèn)鹘y(tǒng)的燈箱、霓紅燈、磁翻板等產(chǎn)品,體育場館的顯示方面全彩色LED屏更會成為主流產(chǎn)品。全彩色LED顯示屏的廣泛應(yīng)用會是LED顯示屏產(chǎn)業(yè)發(fā)展的一個(gè)新的增長點(diǎn)[1]。</p><p> 未來LED顯示屏?xí)蛑鴺?biāo)準(zhǔn)化、規(guī)范化,產(chǎn)品結(jié)構(gòu)多樣化的方向發(fā)展。</p>
24、<p> 1.2.3本課題的主要特點(diǎn)</p><p> 這個(gè)方案設(shè)計(jì)的16×16點(diǎn)陣LED圖文顯示屏,結(jié)構(gòu)合理,成本較低,且較容易擴(kuò)展成更大的顯示屏;顯示屏各點(diǎn)亮度均勻、充足;顯示圖形或文字穩(wěn)定、清晰無串?dāng)_;可用靜止、移入移出等多種顯示方式顯示圖形或文字。 </p><p> 第二章 系統(tǒng)方案論證與選擇</p><p><b&g
25、t; 2.1方案論證</b></p><p> 從理論上說,不論顯示圖形還是文字,只要控制這些組成圖形或文字的各個(gè)點(diǎn)所在位置相對應(yīng)的LED器件發(fā)光,就可以得到我們想要的顯示結(jié)果,這種同時(shí)控制各個(gè)發(fā)光點(diǎn)亮滅的方法稱為靜態(tài)驅(qū)動顯示方式。16×16的點(diǎn)陣共有256個(gè)發(fā)光二極管,顯然單片機(jī)沒有這么多端口,如果采用鎖存器來擴(kuò)展端口,按8位的鎖存器來計(jì)算,16×16的點(diǎn)陣需要256/8=3
26、2個(gè)鎖存器。這個(gè)數(shù)字很大,因?yàn)閮H僅是16×16的點(diǎn)陣,在實(shí)際應(yīng)用中的顯示屏往往要大的多,這樣在鎖存器上花的成本將是一個(gè)很大的數(shù)字。因此采用另一種稱為動態(tài)掃描的顯示方法。</p><p> 動態(tài)掃描的意思簡單地說就是逐行輪流點(diǎn)亮,這樣掃描驅(qū)動電路就可以實(shí)現(xiàn)多行(比如16行)的同名列共用一套列驅(qū)動器。具體就16×16的點(diǎn)陣來說,我們把所有同一行的發(fā)光管的陽極連在一起,把所有同一列的發(fā)光管的陰極連
27、在一起(共陽的接法),先送出對應(yīng)第一行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第一行使其點(diǎn)亮一定的時(shí)間,然后熄滅;再送出第二行的數(shù)據(jù)并鎖存,然后選通第二行使其點(diǎn)亮相同的時(shí)間,然后熄滅;…… 第十六行之后又重新點(diǎn)亮第一行,這樣反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,我們就能看到顯示屏上穩(wěn)定的圖形了。</p><p> 采用掃描方式進(jìn)行顯示時(shí),每行有一個(gè)行驅(qū)動器,各行的同名列共用一個(gè)列驅(qū)
28、動器。顯示數(shù)據(jù)通常存儲在單片機(jī)的存儲器中,按8位一個(gè)字節(jié)的形式順序排放。顯示時(shí)要把一行中各列的數(shù)據(jù)都傳送到相應(yīng)的列驅(qū)動器上去,這就存在一個(gè)顯示數(shù)據(jù)傳輸?shù)膯栴}。從控制電路到列驅(qū)動器的數(shù)據(jù)傳輸可以采用并行方式或串行方式。顯然,采用并行方式時(shí),從控制電路到列驅(qū)動器的線路數(shù)量大,相應(yīng)的硬件數(shù)目多。當(dāng)列數(shù)很多時(shí),并行傳輸?shù)姆桨甘遣豢扇〉摹?lt;/p><p> 采用串行傳輸?shù)姆椒?,控制電路可以只用一根信號線,將列數(shù)據(jù)一位一位
29、傳往列驅(qū)動器,在硬件方面無疑是十分經(jīng)濟(jì)的。但是,串行傳輸過程較長,數(shù)據(jù)按順序一位一位地輸出給列驅(qū)動器,只有當(dāng)一行的各列數(shù)據(jù)都已傳輸?shù)轿恢?,這一行的各列才能并行地進(jìn)行顯示。這樣,對于一行的顯示過程就可以分解成列數(shù)據(jù)準(zhǔn)備(傳輸)和列數(shù)據(jù)顯示兩個(gè)部分。對于串行傳輸方式來說,列數(shù)據(jù)準(zhǔn)備時(shí)間可能相當(dāng)長,在行掃描周期確定的情況下,留給行顯示的時(shí)間就太少了,以至影響到LED的亮度。</p><p> 解決串行傳輸中列數(shù)據(jù)準(zhǔn)
30、備和列數(shù)據(jù)顯示的時(shí)間矛盾問題,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù)。為了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要具有鎖存功能。經(jīng)過上述分析,可以歸納出列驅(qū)動器電路應(yīng)具備的主要功能。對于列數(shù)據(jù)準(zhǔn)備來說,它應(yīng)能實(shí)現(xiàn)串入并出的移位功能;對于列數(shù)據(jù)顯示來說,應(yīng)具有并行鎖存的功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時(shí),串并移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會影響本行的顯示[2]。</p>
31、;<p> 課題擬以AT89C51單片機(jī)為控制核心設(shè)計(jì)一個(gè)簡單的數(shù)字時(shí)鐘系統(tǒng),用單片機(jī)、點(diǎn)陣顯示屏等設(shè)計(jì)一個(gè)16×16點(diǎn)陣LED電子顯示屏的設(shè)計(jì)。系統(tǒng)可以分為電源模塊、時(shí)鐘信號電路、復(fù)位電路、驅(qū)動模塊、單片機(jī)控制模塊、顯示模塊等,其系統(tǒng)結(jié)構(gòu)框圖如下圖2-1。</p><p> 圖2-1系統(tǒng)結(jié)構(gòu)框圖</p><p> 2.2各模塊方案選擇與論證</p>
32、;<p> 2.2.1 片機(jī)控制模塊</p><p> 采用89C51芯片作為硬件核心,采用Flash ROM,內(nèi)部具有4KB ROM 存儲空間,可多次擦寫,而且與MCS-51系列單片機(jī)完全兼容。</p><p> 2.2.2 時(shí)鐘信號電路</p><p> 直接采用普通晶體時(shí)鐘源提供脈沖信號,此種方案能夠減少芯片的使用,節(jié)約成本。</p
33、><p><b> 2.2.3復(fù)位電路</b></p><p> 方案一:采用按鈕復(fù)位,通過按電路中的開關(guān)按鈕使系統(tǒng)內(nèi)部復(fù)位,按一次開關(guān)按鈕系統(tǒng)復(fù)位一次,但是在點(diǎn)陣屏顯示過程中不需要對系統(tǒng)進(jìn)行復(fù)位,本方案與實(shí)際應(yīng)用不相符合,所以不采取本方案。</p><p> 方案二:采用上電復(fù)位,電路第一次通電時(shí)對系統(tǒng)進(jìn)行一次復(fù)位,而后系統(tǒng)執(zhí)行。這個(gè)方案簡
34、單且符合實(shí)際設(shè)計(jì),故采用本設(shè)計(jì)方案[3]。</p><p><b> 2.2.4串口模塊</b></p><p> 方案一 采用RS485來進(jìn)行長距離(1219M)的傳輸,RS-485總線通信模式由于具有結(jié)構(gòu)簡單、價(jià)格低廉、通信距離和數(shù)據(jù)傳輸速率(最大傳輸速率為10Mb/S)適當(dāng)?shù)忍攸c(diǎn)而被廣泛應(yīng)用.但RS485總線存在自適應(yīng)、自保護(hù)功能脆弱等缺點(diǎn),如不注意一些細(xì)節(jié)
35、的處理,常出現(xiàn)通信失敗甚至系統(tǒng)癱瘓等故障而且總線本身存在許多的局限性,效率低,實(shí)時(shí)性差,通信的可靠性低,應(yīng)用不靈活。</p><p> 方案二 采用MAX232來進(jìn)行串行的傳輸, 用串行通訊的好處是簡單,抗干擾性強(qiáng).,因此不需要遠(yuǎn)距離傳輸,因此MAX232已經(jīng)足夠滿足要求。并且可直接和PC機(jī)通信,不用外加協(xié)議轉(zhuǎn)換電路。</p><p> 基于以上分析,我們選用方案二,選用芯片MAX23
36、2。 </p><p><b> 2.2.5顯示模塊</b></p><p> 方案一:采用4塊8×8點(diǎn)陣LED顯示屏相連接構(gòu)成一塊16×16點(diǎn)陣LED顯示屏,但4塊點(diǎn)陣屏連接起來面積較大,且需多根導(dǎo)線將其焊接,外觀上較不美觀。所以不采用本方案。</p><p> 方案二:采用16×16點(diǎn)陣LED顯示屏,16
37、×16點(diǎn)陣屏的功能與4塊8×8點(diǎn)陣屏構(gòu)成16×16點(diǎn)陣屏功能相同,但是更為美觀小巧美觀,且單塊16×16點(diǎn)陣屏和4塊8×8點(diǎn)陣屏價(jià)格相等。故本設(shè)計(jì)采用這種方案。</p><p><b> 2.2.6驅(qū)動模塊</b></p><p> 方案一:采用靜態(tài)鎖存方式,將每一個(gè)LED發(fā)光管的一端接至單片機(jī)的一個(gè)I/O口,另一
38、端通過電阻接電源。這種方法可以直接驅(qū)動LED,原理簡單,驅(qū)動能力強(qiáng),LED的亮度也可以通過限流電阻調(diào)節(jié),非常方便,但此種方法太浪費(fèi)單片機(jī)的I/O口,只適合于較小的系統(tǒng)。</p><p> 方案二:采用動態(tài)掃描方式,通過三極管驅(qū)動并聯(lián)在一起的LED發(fā)光管的一端(共陰或共陽),LED發(fā)光管的另一腳接通用I/O口,控制其亮滅。該方法能驅(qū)動較多的LED,控制方式較靈活,而且節(jié)省單片機(jī)的資源。故采用本設(shè)計(jì)方案[4]。&l
39、t;/p><p> 行驅(qū)動電路主要是要實(shí)現(xiàn)譯碼功能,下面有2種方案供其選擇:</p><p> 方案一:采用2塊74LS138級聯(lián)來實(shí)現(xiàn)4/16線譯碼功能,74LS138芯片本身具有3/8線譯碼功能,但是增加了芯片的使用數(shù)目,增加了連線及所占面積。所以不采用本方案。</p><p> 方案二:采用芯片74LS154,74LS154芯片本身具有4/16線譯碼功能,其
40、功能與2塊74LS138級聯(lián)實(shí)現(xiàn)4/16譯碼一樣,但是相比74LS138少用一片芯片。所以采用本方案。 </p><p> 2.2.7 掉電保存模塊</p><p> 掉電保存模塊是通過單片機(jī)AT24C08對LED點(diǎn)陣顯示屏內(nèi)容進(jìn)行保存。在PC機(jī)突然斷電時(shí)仍然能保存輸入到LED點(diǎn)陣顯示屏上的內(nèi)容。</p><p> 第三章 系統(tǒng)硬件電路設(shè)計(jì)與實(shí)現(xiàn)</p
41、><p><b> 3.1硬件電路設(shè)計(jì)</b></p><p> 本電路是由AT89C51單片機(jī)為控制核心,低功耗;時(shí)鐘源電路有很多種,比如阻容低速時(shí)鐘源、普通晶體時(shí)鐘源、帶緩沖放大的晶體時(shí)鐘源等等,考慮到電路穩(wěn)定及材料選購等方面,決定采用普通晶體時(shí)鐘源,其中晶體用12MHz的石英晶振;復(fù)位電路結(jié)合實(shí)際應(yīng)用功能的實(shí)現(xiàn),采用上電復(fù)位;顯示部分由16×16點(diǎn)陣L
42、ED顯示屏顯示;行驅(qū)動電路采用74LS154。</p><p> 3.2各單元電路說明</p><p> 3.2.1單片機(jī)AT89C51</p><p> AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含有4K bytes的可反復(fù)擦寫的只讀程序存儲器和128的隨機(jī)存取數(shù)據(jù)存儲器,器件采用AEMEL公司的高密度,非易失性存儲技術(shù)生
43、產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和FLASH存儲單元,功能強(qiáng)大,可靈活應(yīng)用于各種控制領(lǐng)域[5]。圖3.1為AT89C51外部封裝。</p><p> 圖3-1 單片機(jī)AT89C51</p><p> AT89C51單片機(jī)為40引腳雙列直插芯片,有四個(gè)I/O口P0,P1,P2,P3, MCS-51單片機(jī)共有4個(gè)8位的I/O口(P0、P1、P2、P3),每一條I/
44、O線都能獨(dú)立地作輸出或輸入。</p><p> P0口:P0口為一個(gè)8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FLASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FLASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p> P1口:P1口是一個(gè)
45、內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。</p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并
46、因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。</p><p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接
47、收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故[6]。 </p><p> P3口也可作為AT89C51的一些特殊功能口,如下所示:</p><p> P3.0 RXD(串行輸入口)</p><p> P3.1 TXD(串行輸出口
48、)</p><p> P3.2 /INT0(外部中斷0)</p><p> P3.3 /INT1(外部中斷1) </p><p> P3.4 T0(記時(shí)器0外部輸入)</p><p> P3.5 T1(記時(shí)器1外部輸入)</p><p> P3.6 /WR(外
49、部數(shù)據(jù)存儲器寫選通)</p><p> P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)</p><p> AT89C51振蕩器特性為: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號要通過一個(gè)二分頻觸發(fā)器,因此對外部時(shí)鐘信號的脈寬無任何要求
50、,但必須保證脈沖的高低電平要求的寬度[7]。 </p><p> 此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,停止芯片其它功能直至硬件復(fù)位,直到下一個(gè)硬件復(fù)位為止。</p><p> 3.2.2單片機(jī)復(fù)位原理&
51、lt;/p><p> 單片機(jī)剛上電時(shí)需要復(fù)位一次才能可靠工作,通過電容接VCC,是利用電容充電來提供2個(gè)周期的高電平時(shí)間讓單片機(jī)復(fù)位,如此單片機(jī)可以正常工作。這之后又不要求單片機(jī)復(fù)位,所以通過8.2K左右的電阻下拉接地保證RESET腳維持在低電平狀態(tài)(即不復(fù)位狀態(tài))[8]。如圖3-2所示。</p><p> 圖3-2 單片機(jī)復(fù)位電路</p><p><b>
52、; 3.2.2時(shí)鐘電路</b></p><p> 單片機(jī)的最小系統(tǒng)如下圖所示,18引腳和19引腳接時(shí)鐘電路,X1接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,X2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出[9]。第9引腳為復(fù)位輸入端,接上電容,電阻及開關(guān)后夠上電復(fù)位電路,20引腳為接地端,40引腳為電源端。31引腳接電源端,如圖3-3所示。</p>
53、<p> 圖3-3 單片機(jī)時(shí)鐘電路</p><p> 3.2.3 16×16點(diǎn)陣LED顯示模塊的設(shè)計(jì)</p><p> 一、LED點(diǎn)陣屏介紹</p><p> 組合型LED點(diǎn)陣顯示器自八十年代開始出現(xiàn),以發(fā)光二極管為像素,它用高亮度發(fā)光二極管芯陣列組合后,環(huán)氧樹脂和塑模封裝而成。具有高亮度、功耗低、引腳少、視角大、壽命長、耐濕、耐冷熱、
54、耐腐蝕等特點(diǎn)。LED點(diǎn)陣有4×4、4×8、5×7、5×8、 8×8等多種。點(diǎn)陣顯示屏有單色和雙色兩類,可顯示紅,黃,綠,橙等,本次設(shè)計(jì)選用單色點(diǎn)陣顯示屏。</p><p> 二、點(diǎn)陣LED顯示屏的外觀和引腳</p><p> 8×8點(diǎn)陣共需要64個(gè)發(fā)光二極管組成,且每個(gè)發(fā)光二極管是放置在行線和列線的交叉點(diǎn)上。要實(shí)現(xiàn)顯示圖形或字
55、體,只需考慮其顯示方式,通過編程控制各顯示點(diǎn)對應(yīng)LED陽極和陰極端的電平,就可以有效的控制各顯示點(diǎn)的亮滅。當(dāng)采用按行掃描按列控制的驅(qū)動方式時(shí),LED顯示屏8行的同名列共用一套列驅(qū)動器。行驅(qū)動器一行的行線連接到電源的一端,列驅(qū)動器一列的列線連接到電源的另一端。應(yīng)用時(shí)還應(yīng)在各條行線或列線上接上限流電阻。掃描中控制電路將行線的1到 8輪流接通高電位,使連接到各該行的全部LED器件接通正電源,但具體那一個(gè)LED導(dǎo)通,還要看它的負(fù)電源是否接通,這
56、就是列控制的任務(wù)了。當(dāng)對應(yīng)的某一列置0電平,則相應(yīng)的二極管就亮;反之則不亮。例如:如果想使屏幕左上角LED點(diǎn)亮,左下角LED熄滅的話,在掃描到第一行時(shí),第一列的電位就應(yīng)該為低,而掃描到第八行時(shí)第一列的電位就應(yīng)該為高。這樣行線上只管一行一行的輪流導(dǎo)通,列線上進(jìn)行通斷控制,實(shí)現(xiàn)了行掃描列控制的驅(qū)動方式。</p><p> 以上就是16×16點(diǎn)陣LED電子顯示屏系統(tǒng)硬件部分的各功能模塊分述,經(jīng)過合理的設(shè)計(jì)論
57、證后和就可以整體結(jié)合在一起,再根據(jù)設(shè)計(jì)配備好各元器件實(shí)物,通過組裝后等在單片機(jī)的程序存儲器里放入編制好的程序即可成為一個(gè)完整的應(yīng)用系統(tǒng)。</p><p> 16×16點(diǎn)陣LED顯示屏由256個(gè)LED發(fā)光二極管組成,且每個(gè)發(fā)光二極管是放置在行線和列線的交叉點(diǎn)上。它的外觀形狀如圖3-4所示,內(nèi)部結(jié)構(gòu)如圖3-5所示。且每個(gè)發(fā)光二極管是放置在行線和列線的交叉點(diǎn)上,當(dāng)對應(yīng)的某一列置1電平,某一行置0電平,則相應(yīng)
58、的二極管就亮[10]。如第一列為高電平置1,第二列為低電平置0,第三列為高電平置1,P行為低電平置0,O行為高電平置1,則顯示效果是P行上的第一個(gè)LED燈亮,第二個(gè)LED燈滅,第三個(gè)LED燈亮。第O行上的三個(gè)LED燈全滅,如圖3-6所示。</p><p> 圖3-4 16×16點(diǎn)陣LED顯示屏實(shí)物照片</p><p> 圖3-5 16×16點(diǎn)陣LED顯示屏內(nèi)部結(jié)構(gòu)&
59、lt;/p><p> 圖3-6 LED點(diǎn)陣亮滅示意圖</p><p> 16×16點(diǎn)陣LED顯示屏的內(nèi)部結(jié)構(gòu)和外觀引腳并不相對應(yīng),下面圖3-7所示為點(diǎn)陣顯示屏外觀管,圖3-8為個(gè)管教所對應(yīng)的管教編號。</p><p> 圖3-7 16×16點(diǎn)陣LED顯示屏引腳分配表</p><p> 圖3-8 點(diǎn)陣顯示屏各個(gè)管腳對
60、應(yīng)的管腳號</p><p><b> 3.2.4驅(qū)動模塊</b></p><p> 該設(shè)計(jì)驅(qū)動模塊為行驅(qū)動模塊</p><p> (1)74LS154介紹</p><p> 74LS154這種4線—16線譯碼器非常適合用于高性能存儲器的譯碼器。當(dāng)兩個(gè)選通輸入。G1和G2為低時(shí), 它可將4個(gè)二進(jìn)制編碼的輸入譯成16
61、個(gè)互相獨(dú)立的輸出之一。實(shí)現(xiàn)解調(diào)功能的辦法是:用4 個(gè)輸入線寫出輸出線的地址,使得在一個(gè)選通輸入為低時(shí)數(shù)據(jù)通過另一個(gè)選通輸入。當(dāng)任何一個(gè)選通輸入是高時(shí),所有輸出都為高。圖3-9為編碼器74LS154外形及內(nèi)部邏輯結(jié)構(gòu)。圖3-10為其真值表[11]</p><p> 圖3-9 74LS154 編碼器外形及內(nèi)部邏輯結(jié)構(gòu)</p><p> 圖3-10 74LS154 編碼器真值表</p
62、><p> ?。?)8550三極管介紹</p><p> 三極管8550是一種常用的普通三極管,是一種低電壓,大電流,小信號的PNP型硅三極管,其電流放大倍數(shù)為50-300[12]。圖3-10為三極管分裝。</p><p> 1 發(fā)射極 2 基極 3 集電極</p><p> 圖3-11 三極管8550</p>&l
63、t;p> ?。?)點(diǎn)陣行驅(qū)動模塊</p><p> 單片機(jī)P1口低4位輸出信號對16行點(diǎn)陣進(jìn)行驅(qū)動,信號經(jīng)4/16線譯碼器74LS154譯碼后生成16條行選通信號線,再經(jīng)過驅(qū)動器驅(qū)動對應(yīng)的行線。</p><p> 一條行線上要帶動16列的LED進(jìn)行顯示,按每一個(gè)LED器件3mA電流計(jì)算,16個(gè)LED同時(shí)發(fā)光時(shí),需要48mA電流,選用三極管8550對電流進(jìn)行放大從而滿足需求。圖3-
64、12為行驅(qū)動模塊。</p><p> 圖3-12 74LS154行驅(qū)動模塊</p><p> 3.2.5掉電保存模塊</p><p> 掉電保存模塊是通過單片機(jī)AT24C08對LED點(diǎn)陣顯示屏內(nèi)容進(jìn)行保存。在PC機(jī)突然斷電時(shí)仍然能保存輸入到LED點(diǎn)陣顯示屏上的內(nèi)容。</p><p> AT24C08提供8192位的串行電可擦寫可編程只
65、讀存儲器(EEPROM),組織形式為1024字×8位字長。適用于許多要求低功耗和低電壓操作的工業(yè)級或商業(yè)級應(yīng)用??蛇x節(jié)省空間的8腳PDIP, 8腳JEDEC SOIC, 8腳Ultra Lead Frame Land Grid Array (ULA),5腳SOT23,8腳TSSOP,和8觸點(diǎn)dBGA2封裝,并通過2-wire串行接口存取。圖3-13為掉電保存電路。 </p><p> 圖3-13 掉電
66、保存電路</p><p> 第四章 系統(tǒng)軟件設(shè)計(jì)</p><p> 隨著科技的發(fā)展,現(xiàn)代化的生產(chǎn)對智能化的要求越來越高,如何迅速獲取現(xiàn)場數(shù)據(jù)以便及時(shí)對生產(chǎn)過程進(jìn)行調(diào)控,是其關(guān)鍵所在?,F(xiàn)在大量的智能儀器或數(shù)據(jù)采集模塊都采用了RS—232或485通訊接口,通過相應(yīng)的通訊協(xié)議,將測試、采集的數(shù)據(jù)傳輸給上位機(jī),以滿足各種形式的數(shù)據(jù)處理的要。VisualBasic6.0(以下簡VB)是許多工程技
67、術(shù)人員熟悉和常用的應(yīng)用程序開發(fā)軟件,VB以其簡單易學(xué)、32位面向?qū)ο蟮某绦蛟O(shè)計(jì)等特點(diǎn),倍受廣大計(jì)算機(jī)開發(fā)者的青睞,已廣泛地應(yīng)用于各個(gè)領(lǐng)域;如何用VB編寫數(shù)據(jù)通訊程序,并進(jìn)行數(shù)據(jù)處理,意義重大。 用VB開發(fā)串口通訊一般有兩種方法:一是采用VB自身的標(biāo)準(zhǔn)控件MSComm來實(shí)現(xiàn);另一種是利用windows的通訊API函數(shù)。</p><p> 在單片機(jī)系統(tǒng)中,硬件是系統(tǒng)的基礎(chǔ),軟件則是在硬件的基礎(chǔ)上對其合理的調(diào)配和使用
68、,從而完成應(yīng)用系統(tǒng)所要完成的任務(wù)。軟件的設(shè)計(jì)是設(shè)計(jì)控制系統(tǒng)的應(yīng)用程序。其任務(wù)是在總體設(shè)計(jì)和硬件設(shè)計(jì)的基礎(chǔ)上,確定程序結(jié)構(gòu),分配內(nèi)RAM資源,劃分功能模塊,然后進(jìn)行主程序和各模塊程序的設(shè)計(jì),最后連接起來成為一個(gè)完整的應(yīng)用程序。</p><p> 在進(jìn)行系統(tǒng)總體設(shè)計(jì)時(shí),曾經(jīng)規(guī)劃過軟件結(jié)構(gòu),但由于硬件系統(tǒng)尚未仔細(xì)確定,軟件結(jié)構(gòu)框圖十分粗糙,當(dāng)硬件設(shè)計(jì)接口擴(kuò)展及各功能模塊與CPU連接關(guān)系確定后,就能夠具體明確對軟件設(shè)計(jì)
69、的要求。本設(shè)計(jì)的LED顯示屏軟件的主要功能是向屏體提供顯示數(shù)據(jù),并產(chǎn)生各種控制信號,使屏幕按設(shè)計(jì)的要求顯示。根據(jù)軟件分層次設(shè)計(jì)的原理,可把顯示屏的軟件系統(tǒng)分成兩大層:第一層是底層的顯示驅(qū)動程序,第二層是上層的系統(tǒng)應(yīng)用程序。顯示驅(qū)動程序負(fù)責(zé)向屏體送顯示數(shù)據(jù),并負(fù)責(zé)產(chǎn)生行掃描信號和其它控制信號,配合完成LED顯示屏的掃描顯示工作。顯示驅(qū)動程序由定時(shí)器T0中斷程序?qū)崿F(xiàn)。系統(tǒng)應(yīng)用程序完成系統(tǒng)環(huán)境設(shè)置(初始化)、顯示效果處理等工作,由主程序來實(shí)現(xiàn)
70、。</p><p> 從有利于實(shí)現(xiàn)語言的直觀,易于記憶和檢查,可讀性較好和使語言程序占用較少的單片機(jī)存儲空間,實(shí)時(shí)處理系統(tǒng)可以快速的執(zhí)行指令的角度考慮,本設(shè)計(jì)中顯示屏程序采用匯編語言編寫。</p><p> 4.1系統(tǒng)軟件編譯器介紹</p><p> 使用C 語言肯定要使用到C 編譯器,以便把寫好的C 程序編譯為機(jī)器碼,這樣單片機(jī)才能執(zhí)行編寫好的程序。 <
71、;/p><p> KEIL uVISION3 是眾多單片機(jī)應(yīng)用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的MCS51 架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時(shí)還支持, PLM,匯編和C 語言的程序設(shè)計(jì),它的界面和常用的微軟VC++的界面相似,界面友好,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強(qiáng)大的功能。</p><p><b> 4.2軟件的選擇</b><
72、;/p><p> 4.2.1單片機(jī)編程語言選擇 </p><p> 方案一:采用匯編語言編程,由于匯編語言是比較低層的開發(fā)語言,它要求開發(fā)者非常熟悉單片機(jī)的硬件結(jié)構(gòu),存儲器結(jié)構(gòu)等等。加上匯編語言可讀性差,一般人是很難看懂的。還有也是比較致命的一點(diǎn),可移植性比較差,所以使用匯編語言編程將需要大量的時(shí)間用于軟件的編寫和調(diào)試。</p><p> 方案二:采用C語言編程,
73、它不要求開發(fā)者深入了解單片機(jī)和硬件接口的結(jié)構(gòu),編譯器自動完成變量的存儲單元的分配,可讀性比較好,可移植性強(qiáng),這是C語言最大的優(yōu)勢。而且現(xiàn)在很多編譯器都能很好的支持C語言的編譯和調(diào)試。</p><p> 基于以上分析,我們決定采用方案二。</p><p> 4.2.2上位機(jī)控制傳輸軟件選擇</p><p> 方案一:采用網(wǎng)上下載的上位機(jī)控制傳輸軟件,由于他人制作
74、的上位機(jī)軟件具有局限性,功能也達(dá)不到自己的要求,用起來也不方便。不能很好的體現(xiàn)系統(tǒng)的功能。</p><p> 方案二:采用自己編寫的上位機(jī)軟件,不僅功能上可以滿足系統(tǒng)控制需要,并且通信協(xié)議可以自己給定,能更好的完成信息的交換。</p><p> 基于以上分析,我們決定采用方案二。</p><p> 4.3程序主系統(tǒng)及驅(qū)動系統(tǒng)</p><p&
75、gt;<b> 4.3.1主系統(tǒng)</b></p><p> 系統(tǒng)的主程序開始以后,首先是對系統(tǒng)環(huán)境初始化,包括設(shè)置串口、定時(shí)器、中斷和端口;然后LED顯示屏進(jìn)入開機(jī)狀態(tài),轉(zhuǎn)入正常的顯示。首先是向上滾動顯示漢字,每個(gè)字停留時(shí)間約1.6s。由于單片機(jī)沒有停機(jī)指令,所以可以設(shè)置系統(tǒng)程序不斷地循環(huán)執(zhí)行上述顯示效果。</p><p> 系統(tǒng)程序結(jié)構(gòu)屬中斷方式,絕大多數(shù)功能
76、在中斷服務(wù)子程序中完成。根據(jù)總體結(jié)構(gòu),可將程序劃分為幾個(gè)功能化模塊:串行口中斷服務(wù)程序、多字滾動顯示子程序、單字顯示子程序、掃描程序。各個(gè)模塊可進(jìn)行獨(dú)立設(shè)計(jì)、調(diào)試和查錯(cuò),最終再連接成一個(gè)整體。這樣可方便程序調(diào)用,程序整體層次清晰,結(jié)構(gòu)一目了然,方便閱讀。</p><p><b> 4.3.2驅(qū)動系統(tǒng)</b></p><p> 根據(jù)流程圖可以編寫出相應(yīng)的顯示程序。顯
77、示驅(qū)動程序在進(jìn)入中斷后首先要對定時(shí)器T0重新賦初值,以保證顯示屏刷新率的穩(wěn)定,1/16掃描顯示屏的刷新率(幀頻)計(jì)算公式如下:</p><p> 刷新率(幀頻)=×T0溢出率</p><p><b> =×</b></p><p> 其中f為晶振頻率,t為定時(shí)器T0初值(工作在16位定時(shí)器模式)。</p>
78、<p><b> T0初值=2-</b></p><p> 其中N與工作方式有關(guān),本設(shè)計(jì)定時(shí)/計(jì)數(shù)器工作于方式1,如圖4-1所示,方式1構(gòu)成一個(gè)16位定時(shí)計(jì)數(shù)器,即N=16。</p><p> 方式1最大計(jì)數(shù)值為216=65536 ,若fosc=12MHz,則定時(shí)時(shí)間范圍為1~65536μs。</p><p> 機(jī)周時(shí)間與主
79、振頻率有關(guān),機(jī)器周期是時(shí)鐘周期的12倍,因此,機(jī)周時(shí)間=12/ fosc。當(dāng)fosc=12MHz時(shí),1機(jī)周=1μs。</p><p> 圖4-1 定時(shí)/計(jì)數(shù)器T0工作方式1邏輯電路結(jié)構(gòu)圖</p><p> 然后顯示驅(qū)動程序查詢當(dāng)前燃亮的行號,從顯示緩存區(qū)內(nèi)讀取下一行的顯示數(shù)據(jù),并通過串口發(fā)送給移位寄存器。為消除在切換行顯示數(shù)據(jù)的時(shí)候產(chǎn)生拖尾現(xiàn)象,驅(qū)動程序先要關(guān)閉顯示屏,即消隱,等顯示
80、數(shù)據(jù)打入輸出鎖存器并鎖存,然后再輸出新的行號,重新打開顯示。顯示程序給出了各控制信號和顯示數(shù)據(jù),其作用及相互配合關(guān)系均已在硬件部分作過介紹,相應(yīng)的程序部分在清單的注釋區(qū)內(nèi)分別進(jìn)行了說明,在此不再一一詳述。</p><p><b> 4.4串口通信設(shè)計(jì)</b></p><p> 4.4.1串口的定義</p><p> 串口是計(jì)算機(jī)上一種非常
81、通用設(shè)備通信的協(xié)議。大多數(shù)計(jì)算機(jī)包含兩個(gè)基于RS232的串口。串口同時(shí)也是儀器儀表設(shè)備通用的通信協(xié)議;很多GPIB兼容的設(shè)備也帶有RS—232口。同時(shí),串口通信協(xié)議可以用于獲取遠(yuǎn)程采集設(shè)備的數(shù)據(jù)。 </p><p> 4.4.2串口通信的原理</p><p> 串口通信(Serial Communications)的概念非常簡單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte
82、)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。它很簡單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如IEEE488定義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線總長不得超過20米,并且任意兩個(gè)設(shè)備間的長度不得超過2米;而對于串口而言,長度可達(dá)1200米。典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成:①地線,②發(fā)送,③接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù)。其他線用于握手,但不是必須的。串口
83、通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。對于兩個(gè)進(jìn)行通信的端口,這些參數(shù)必須匹配。 </p><p> a波特率:這是一個(gè)衡量通信速度的參數(shù)。它表示每秒鐘傳送的bit的個(gè)數(shù)。例如300波特表示每秒鐘發(fā)送300個(gè)bit。當(dāng)我們提到時(shí)鐘周期時(shí),我們就是指波特率例如如果協(xié)議需要4800波特率,那么時(shí)鐘是4800Hz。這意味著串口通信在數(shù)據(jù)線上的采樣率為4800Hz。通常電話線的波特率為14400,2880
84、0和36600。波特率可以遠(yuǎn)遠(yuǎn)大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是GPIB設(shè)備的通信。 </p><p> b數(shù)據(jù)位:這是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包,實(shí)際的數(shù)據(jù)不會是8位的,標(biāo)準(zhǔn)的值是5、7和8位。如何設(shè)置取決于你想傳送的信息。比如,標(biāo)準(zhǔn)的ASCII碼是0~127(7位)。擴(kuò)展的ASCII碼是0~255(8位)。如果數(shù)據(jù)使用簡單的文
85、本(標(biāo)準(zhǔn) ASCII碼),那么每個(gè)數(shù)據(jù)包使用7位數(shù)據(jù)。每個(gè)包是指一個(gè)字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。由于實(shí)際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語“包”指任何通信的情況。 </p><p> c停止位:用于表示單個(gè)包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校
86、正時(shí)鐘同步的機(jī)會。適用于停止位的位數(shù)越多,不同時(shí)鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時(shí)也越慢。 </p><p> d奇偶校驗(yàn)位:在串口通信中一種簡單的檢錯(cuò)方式。有四種檢錯(cuò)方式:偶、奇、高和低。當(dāng)然沒有校驗(yàn)位也是可以的。對于偶和奇校驗(yàn)的情況,串口會設(shè)置校驗(yàn)位(數(shù)據(jù)位后面的一位),用一個(gè)值確保傳輸?shù)臄?shù)據(jù)有偶個(gè)或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對于偶校驗(yàn),校驗(yàn)位為0,保證邏輯高的位數(shù)是偶數(shù)個(gè)。如果是奇
87、校驗(yàn),校驗(yàn)位為1,這樣就有3個(gè)邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡單置位邏輯高或者邏輯低校驗(yàn)。這樣使得接收設(shè)備能夠知道一個(gè)位的狀態(tài),有機(jī)會判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步。</p><p><b> 4.4.3作用</b></p><p> RS-232(ANSI/EIA-232標(biāo)準(zhǔn))是IBM-PC及其兼容機(jī)上的串行連接標(biāo)準(zhǔn)??捎糜谠S多
88、用途,比如連接鼠標(biāo)、打印機(jī)或者M(jìn)odem,同時(shí)也可以接工業(yè)儀器儀表。用于驅(qū)動和連線的改進(jìn),實(shí)際應(yīng)用中RS-232的傳輸長度或者速度常常超過標(biāo)準(zhǔn)的值。RS-232只限于PC串口和設(shè)備間點(diǎn)對點(diǎn)的通信。RS-232串口通信最遠(yuǎn)距離是50英尺。 </p><p> 4.4.4奇偶校驗(yàn)位</p><p> 在串口通信中一種簡單的檢錯(cuò)方式。有四種檢錯(cuò)方式:偶、奇、高和低。當(dāng)然沒有校驗(yàn)位也是可以的。
89、對于偶和奇校驗(yàn)的情況,串口會設(shè)置校驗(yàn)位(數(shù)據(jù)位后面的一位),用一個(gè)值確保傳輸?shù)臄?shù)據(jù)有偶個(gè)或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對于偶校驗(yàn),校驗(yàn)位為0,保證邏輯高的位數(shù)是偶數(shù)個(gè)。如果是奇校驗(yàn),校驗(yàn)位位1,這樣就有3個(gè)邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡單置位邏輯高或者邏輯低校驗(yàn)。這樣使得接收設(shè)備能夠知道一個(gè)位的狀態(tài),有機(jī)會判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步。 </p><p>
90、RS-232(ANSI/EIA-232標(biāo)準(zhǔn))是IBM-PC及其兼容機(jī)上的串行連接標(biāo)準(zhǔn)。可用于許多用途,比如連接鼠標(biāo)、打印機(jī)或者M(jìn)odem,同時(shí)也可以接工業(yè)儀器儀表。用于驅(qū)動和連線的改進(jìn),實(shí)際應(yīng)用中RS-232的傳輸長度或者速度常常超過標(biāo)準(zhǔn)的值。RS-232只限于PC串口和設(shè)備間點(diǎn)對點(diǎn)的通信。RS-232串口通信最遠(yuǎn)距離是50英尺。 </p><p> 4.4.5上位機(jī)對單片機(jī)的通信協(xié)議</p>&
91、lt;p> 主要任務(wù)是負(fù)責(zé)接收上位機(jī)控制命令和數(shù)據(jù),同時(shí)也負(fù)責(zé)對單片機(jī)信息采集通過串口返回給上位機(jī)。</p><p> 本系統(tǒng)采用了MAX232電平轉(zhuǎn)換電路實(shí)現(xiàn)了上位機(jī)的通信難題,MAX232具有短距離傳輸穩(wěn)定行好的功能。</p><p> MAX232是由德州儀器公司(TI)推出的一款兼容RS232標(biāo)準(zhǔn)的芯片。由于電腦串口RS232電平是-10V +10V,而一般的單片機(jī)應(yīng)用
92、系統(tǒng)的信號電壓是TTL電平0 +5V,MAX232就是用來進(jìn)行電平轉(zhuǎn)換的,該器件包含2個(gè)驅(qū)動器、2個(gè)接收器和一個(gè)電壓發(fā)生電路提供TIA/EIA-232-F電平。</p><p> 在多數(shù)情況下主要使用主通道,對于一般雙工通信,僅需幾條信號線就可實(shí)現(xiàn),如一條發(fā)送線、一條接收線及一條地線。 </p><p> MAX232是標(biāo)準(zhǔn)的串口通信接口,對于一般的雙向通訊,只需要使用串行輸入口RXD
93、(第12腳)、串行輸出TXD(第11腳)和地線(第10腳)。</p><p> 串行通訊的方式有異步通訊和同步通訊方式,這里簡單介紹異步通信方式:</p><p> 異步通訊用一個(gè)起始位表示字符的開始,用停止位表示字符的結(jié)束。其每幀的格式如下: </p><p> 在一幀格式中,先是一個(gè)起始位0,然后是8個(gè)數(shù)據(jù)位,規(guī)定低位在前,高位在后,接下來是奇偶校驗(yàn)位(
94、可以省略),最后是停止位1。用這種格式表示字符,則字符可以一個(gè)接一個(gè)地傳送。</p><p> 一、上位機(jī)對單片機(jī)的通信協(xié)議</p><p> 上位機(jī)與主機(jī)的通信采用標(biāo)準(zhǔn)的RS232通信,我們設(shè)置波特率為9600b/s,一位停止位,一位起始位,無校驗(yàn)位等作為RS232協(xié)議。</p><p> 上位機(jī)通信數(shù)據(jù)幀格式,上位機(jī)在發(fā)送數(shù)據(jù)之間先發(fā)送命令字,如“設(shè)置時(shí)間
95、”就會在時(shí)間前加上命令“ST”,在6位時(shí)間數(shù)據(jù)后面加上‘\n’,表示一幀數(shù)據(jù)信息發(fā)送結(jié)束, 命令和數(shù)據(jù)之間有空格,這在命令解析中很重要。</p><p> 單片機(jī)收到上位機(jī)發(fā)過來的數(shù)據(jù),首先存儲數(shù)據(jù),直到收到‘\n’,將處理收到的數(shù)據(jù),然后解析命令字,根據(jù)命令字調(diào)用相關(guān)處理函數(shù)。</p><p> 其他命令的處理基本類似,只是各命令都有自己獨(dú)立的處理函數(shù)和不同的命令字。</p&g
96、t;<p> 圖4-2 單片機(jī)接收命令流程圖 圖4-3 上位機(jī)接收信息流程圖</p><p> 二、單片機(jī)對上位機(jī)的通信協(xié)議</p><p> 單片機(jī)對上位機(jī)的通信主要是要發(fā)送實(shí)時(shí)時(shí)間,日期,星期,溫度等,以完成在上位機(jī)相應(yīng)的顯示。</p><p> 單片機(jī)對上位機(jī)通信協(xié)議,在發(fā)送數(shù)據(jù)之前會添加標(biāo)示符,如時(shí)間數(shù)據(jù)的話用‘T’做標(biāo)
97、示符,在數(shù)據(jù)后加上‘\n’,表示數(shù)據(jù)信息發(fā)送結(jié)束。</p><p> 上位機(jī)收到單片機(jī)發(fā)來的信息,首先存儲數(shù)據(jù),直到收到‘\n’, 將處理到的數(shù)據(jù),然后判斷標(biāo)示符,根據(jù)標(biāo)示符將數(shù)據(jù)顯示到相應(yīng)的對話框中。</p><p> 圖3-2 RS232串行通信系統(tǒng)硬件</p><p> 4.4.5 Mscomm通訊控件簡介 </p><p>
98、 Mscomm控件串口具有完善的串口數(shù)據(jù)的發(fā)送和接收功能。通過此控件,PC機(jī)可以利用串行口與其它設(shè)備實(shí)現(xiàn)輕松連接,簡單高效地實(shí)現(xiàn)設(shè)備之間的通訊。此控件的事件響應(yīng)有兩種處理方式: 1)事件驅(qū)動方式:由MSCoMM控件的0nCoIm事件捕獲并處理通訊錯(cuò)誤及事件; 2)查詢方式:通過檢查CogMd:vent屬性的值來判斷事件和錯(cuò)誤。 一、MSComm控件的主要屬性和方法: 1、CommPort:設(shè)置或返回串行端口號,其取值范圍為
99、1—99,缺省為1。 2、ettin8設(shè)置或返回串行端口的波特率、奇偶校驗(yàn)位、數(shù)據(jù)位數(shù)、停止位。如:Mscomm1.Setting=“9600, n, 8, 1”。 3、ortopen:打開或關(guān)閉串行端口。 4、RThreshold:該屬性為一閥值,它確定當(dāng)接收緩沖區(qū)內(nèi)字節(jié)個(gè)數(shù)達(dá)到或超過該值后就產(chǎn)生Mscomm1—OnComm事件。 5、Input:從接收緩沖區(qū)移走一串字符。 6、0utput:向發(fā)送緩種區(qū)
100、傳送一字符串。 二、CommEvent屬性:如果在通訊過程中發(fā)生錯(cuò)誤或事件,就會引發(fā)0nCoIm事件并由CoBn</p><p> 4.4.6數(shù)據(jù)的發(fā)送與接收 </p><p><b> 一、數(shù)據(jù)的發(fā)送</b></p><p> VB發(fā)送數(shù)據(jù)有兩種:1、發(fā)送字符數(shù)據(jù);2、發(fā)送二進(jìn)制數(shù)據(jù)。 1) 發(fā)送字符數(shù)據(jù) 在通訊
101、中以單字符方式逐個(gè)發(fā)送數(shù)據(jù)時(shí),每一個(gè)數(shù)據(jù)范圍是:0—128。如發(fā)送58給單片機(jī)則可以這樣表示: Mscomm1.Output=Chr(50) ‘發(fā)送數(shù)據(jù)(16進(jìn)制) 在通訊中以多字符方式發(fā)送數(shù)據(jù)時(shí),發(fā)送的是Ascii碼值。如發(fā)送“LED顯示屏”則可以這樣表示: Dim data as String ‘定義發(fā)送數(shù)據(jù)變量;data=” LED顯示屏” ‘給變量賦值;Mscomm1.Output=data ‘發(fā)送數(shù)據(jù) 2) 發(fā)送二
102、進(jìn)制數(shù)據(jù) 以發(fā)送字符方式時(shí),發(fā)送的數(shù)據(jù)范圍只能是:0—128,而單片機(jī)經(jīng)常處理的數(shù)據(jù)范圍是0—255,那么怎么樣發(fā)送大于128的數(shù)據(jù)呢?方法是采用二進(jìn)制方式發(fā)送數(shù)據(jù)。首先定義一個(gè)二進(jìn)制類型的數(shù)組,然后把要發(fā)送的數(shù)值賦給二進(jìn)制數(shù)組,再通過Mscomm發(fā)送。如發(fā)送數(shù)值220的具體過程如下: Dim data(0) as byte ‘定義發(fā)送數(shù)據(jù)數(shù)組 Data(0)=220 ‘給數(shù)組賦值 Mscomm1.output=data(0)
103、‘發(fā)送數(shù)據(jù) 二</p><p> Mscomm1.InputMode=1 ‘接收方式為二進(jìn)制方式 For k=0 to n Receive(k) = MSComm1.Input ‘接收數(shù)據(jù) Next k End Select </p><p> 4.5上位機(jī)功能實(shí)現(xiàn)說明</p><p> 上位機(jī)對于整個(gè)系統(tǒng)算是個(gè)控制部分,它主要的任務(wù)是發(fā)送
104、命令或數(shù)據(jù)給單片機(jī),同時(shí)也可以接收單片機(jī)返回的數(shù)據(jù),并能夠進(jìn)行簡單的處理。</p><p> 上位機(jī)具有設(shè)置時(shí)間,設(shè)置日期,設(shè)置鬧鐘等功能,還有讀取LED點(diǎn)陣顯示系統(tǒng)時(shí)間日期等功能,還可以控制LED點(diǎn)陣顯示屏顯示的內(nèi)容。</p><p> 在此我設(shè)計(jì)了一些按鈕,以方便操作。當(dāng)然這些操作在底層還是有一些處理,并不是我們看到的那樣:如設(shè)置時(shí)間,我們在“設(shè)置時(shí)間”對話框里輸入要設(shè)置的時(shí)間值,
105、單擊“設(shè)置時(shí)間”按鈕,LED點(diǎn)陣系統(tǒng)及重新設(shè)置我們想要的時(shí)間。</p><p> 而底層的這個(gè)過程還是比較復(fù)雜的,下面是“設(shè)置時(shí)間”程序流程:</p><p> 單擊“設(shè)置時(shí)間”將會調(diào)用該函數(shù),進(jìn)入該函數(shù),首先檢測串口是否打開,如果沒打開,則通知“串口沒有打開,請打開串口”,確定串口打開后,將讀入編輯框的內(nèi)容,此時(shí)判斷內(nèi)容是否包含時(shí)分秒相應(yīng)的時(shí)間數(shù)據(jù),然后判斷時(shí)間格式的正確性,例如時(shí)不
106、能超過24等,出錯(cuò)的話將提示"時(shí)間格式錯(cuò)誤,請重新確認(rèn)"。經(jīng)過這3次判斷后,上位機(jī)將發(fā)送對話框的數(shù)據(jù)帶單片機(jī),完成時(shí)間設(shè)置動作。</p><p><b> 系統(tǒng)調(diào)試及結(jié)果分析</b></p><p><b> 5.1系統(tǒng)調(diào)試</b></p><p><b> 5.1.1硬件測試</
107、b></p><p> 16×16點(diǎn)陣LED電子顯示屏的電路系統(tǒng)較小,但是線路頗為麻煩,特別是在焊接點(diǎn)陣屏?xí)r。對于焊接方面更是不可輕視,龐大的電路系統(tǒng)中只要出現(xiàn)一處的錯(cuò)誤,則會對整個(gè)電路帶來麻煩且對檢測造成很大的不便,而且電路的交線較多,對于各種鋒利的引腳要注意處理,否則會刺破帶有包皮的導(dǎo)線,則會對電路造成短路現(xiàn)象。</p><p> 本人在16×16點(diǎn)陣LE
108、D電子顯示屏的設(shè)計(jì)調(diào)試中遇到了很多的問題。下面為設(shè)計(jì)過程中遇到的主要問題:</p><p> 焊接16×16 LED點(diǎn)陣屏?xí)r管腳焊接錯(cuò)誤。</p><p> 因焊接元器件不熟練,幾個(gè)焊盤脫落。</p><p> 在硬件電路焊好后總體檢測時(shí),16×16 LED點(diǎn)陣屏第二行常亮,且亮度比其他行都亮。</p><p>
109、回想這些問題,只要耐心仔細(xì)和認(rèn)真思考都是可以避免的,以下是對這幾個(gè)問題的主要解決方法:</p><p> 時(shí)常焊錯(cuò)點(diǎn)陣屏管腳是因?yàn)辄c(diǎn)陣屏的管腳號和功能號是不對應(yīng)的,所以先仔細(xì)查看資料,然后用萬能表點(diǎn)個(gè)測量,確定各個(gè)管腳所對應(yīng)的功能號,并做相應(yīng)的記號以防焊接錯(cuò)誤。</p><p> 因?yàn)殡娐钒宀皇荘CB板而是普通的面包板,焊盤質(zhì)量不是很好,所以在粗心錯(cuò)焊幾次后焊盤就容易脫落,故在選面包板
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的led顯示屏設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的led顯示屏畢業(yè)論文
- 畢業(yè)論文---led顯示屏設(shè)計(jì)
- led顯示屏畢業(yè)論文
- 畢業(yè)論文led顯示屏
- led顯示屏 畢業(yè)論文
- 基于單片機(jī)led電子顯示屏的設(shè)計(jì)【畢業(yè)論文】
- 基于單片機(jī)的led電子顯示屏的設(shè)計(jì)【畢業(yè)論文】
- 基于單片機(jī)控制的led點(diǎn)陣顯示屏系統(tǒng)【畢業(yè)論文】
- 單片機(jī)畢業(yè)論文--基于單片機(jī)的led顯示屏設(shè)計(jì)
- 畢業(yè)論文---無線led顯示屏控制系統(tǒng)設(shè)計(jì)
- 基于51單片機(jī)的led點(diǎn)陣顯示屏-畢業(yè)論文
- led顯示屏畢業(yè)論文外文翻譯
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)控制的led點(diǎn)陣顯示屏設(shè)計(jì)論文
- led顯示屏設(shè)計(jì)-論文
- 畢業(yè)論文---全日歷led數(shù)字顯示屏的設(shè)計(jì)
- led顯示屏控制器的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(設(shè)計(jì))
- 基于單片機(jī)的led點(diǎn)陣顯示屏設(shè)計(jì)【通信工程畢業(yè)論文】
- 畢業(yè)論文-基于單片機(jī)的led點(diǎn)陣顯示屏設(shè)計(jì)【精校排版】
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的led顯示屏設(shè)計(jì)
評論
0/150
提交評論