版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、摘要本文介紹了一款以msc-51單片機為控制器的led點陣顯示屏系統(tǒng)的設計。該系統(tǒng)可實現(xiàn)中英文字符的顯示和動態(tài)特效顯示。并且可以通過級連的方式來擴大顯示屏幕的尺寸以達到增加顯示內(nèi)容的目的。系統(tǒng)采用pc機作為上位機,上位機向單片機發(fā)送控制命令和上位機所存儲的顯示代碼,msc-51單片機接收并處理pc機的控制命令以及顯示代碼,由顯示驅(qū)動模塊驅(qū)動一個1664分辨率的led點陣顯示屏的掃描顯示。pc機與單片機之間的通信采用rs232c通信標準來實現(xiàn)。所選用的msc-51單片機具有價格低廉程序?qū)懭敕奖愕奶攸c使得整個系統(tǒng)方便維護和檢修。除此之外,該系統(tǒng)只占用了單片機少量的i /o口和內(nèi)存,為系統(tǒng)留下了功能
2、擴展的空間。關鍵字:msc-51單片機;led點陣顯示;軟件設計;串行通信 abstractthis paper introduces a design of the led lattice display system base on msc-51. the system can display in both chinese and english characters of the show and from top to bottom and move around the magic show. and can be cascaded to expand the screen siz
3、e to achieve increased content purposes. the pc sends control commands and displays code to microcontroller, msc-51 receives control commands from pc and shows the code, driver module drives a 1664-resolution led lattice leds panel display scan showed. communication between pc and the microcontrolle
4、r using rs-232c communications standards. the characteristics that msc-51 microcontroller is cheap and could be coded conveniently makes the whole system convenient to maintenance and repair. in addition, the system will take up only a small amount of the mcu i/o and memory,so that the system has fu
5、nctional space for expansion.key words: msc-51; lattice leds panel display; serial communicatio第1章 前 言1.1 課題背景1.1.1 選題背景l(fā)ed顯示屏是八十年代后期在全球迅速發(fā)展起來的新型信息顯示媒體,顯示屏由幾萬到幾十萬個半導體發(fā)光二極管像素點均勻排列組成。利用不同的材料可以制造不同色彩的led像素點。目前應用最廣的是紅色、綠色、黃色。而藍色和純綠色led的開發(fā)已經(jīng)達到了實用階段。led顯示屏可以顯示變化的數(shù)字、文字、圖形圖像;不僅可以用于室內(nèi)環(huán)境還可以用于室外環(huán)境,具有投影儀、電視墻、液晶
6、顯示屏無法比擬的優(yōu)點。在短短的十來年中,led點陣顯示屏就以亮度高、工作電壓低、功耗小、小型化、壽命長、耐沖擊和性能穩(wěn)定的優(yōu)點迅速成長為平板顯示的主流產(chǎn)品,在信息顯示領域得到了廣泛的應用。led的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性、可靠性、全色化方向發(fā)展。led顯示屏的應用涉及社會經(jīng)濟的許多領域,主要包括:(1)證券交易、金融信息顯示。(2)機場航班動態(tài)信息顯示。(3)港口、車站旅客引導信息顯示。(4)體育場館信息顯示。(5)道路交通信息顯示。(6)調(diào)度指揮中心信息顯示。(7)郵政、電信、商場購物中心等服務領域的業(yè)務宣傳及信息顯示。(8)廣告媒
7、體新產(chǎn)品等。1.1.2 led顯示屏的現(xiàn)狀及發(fā)展趨勢(1)我國led產(chǎn)業(yè)發(fā)展現(xiàn)狀我國的led顯示屏產(chǎn)業(yè)經(jīng)過幾年的發(fā)展,基本形成了一批具有一定規(guī)模的骨干企業(yè)。據(jù)不完全統(tǒng)計,至2008年底,年度銷售總額在5000萬元以上的企業(yè)有50多家,其銷售總額達20億元左右,占行業(yè)市場總額的65%以上。全國從事led顯示屏的各類企業(yè)有1000余家,從業(yè)人員近20000人,行業(yè)年度銷售總額近200億元人民幣,2006年、2007年的增長速度均保持40%左右。在國內(nèi)市場上,國產(chǎn)led顯示屏的市場占有率近100%,國外同類產(chǎn)品基本沒有市場,北京奧運會主會場、上海世博會的主會場、廣州亞運會的主會場等的led顯示屏,均
8、由國內(nèi)代表企業(yè)中標。技術水平相對領先,我國led顯示屏產(chǎn)業(yè)在規(guī)模發(fā)展的同時,產(chǎn)品技術推陳出新,一直保持比較先進的水平。90年代初即具備了成熟的16級灰度256色視頻控制技術及無線遙控等國際先進水平技術,近年在全彩色led顯示屏、256級灰度視頻控制技術、集群無經(jīng)線控制、多級群控技術等方面均有國內(nèi)先進、達到國際水平的技術和產(chǎn)品出現(xiàn);led顯示屏控制專用大規(guī)模集成電路也已由國內(nèi)企業(yè)開發(fā)生產(chǎn)并得到應用。led顯示屏產(chǎn)業(yè)培養(yǎng)形成了一批led顯示屏科技隊伍,在全國led顯示屏行業(yè)的從業(yè)人數(shù)20000人中,科技人員有9800多人,將近50%。led顯示屏產(chǎn)業(yè)正成為我國電子信息產(chǎn)業(yè)的重要組成部分,也是平板顯
9、示領域唯一立足國內(nèi)形成的民族高科技產(chǎn)業(yè)。 (2)led顯示屏的發(fā)展趨勢現(xiàn)代信息社會中,作為人一機信息視覺傳播媒體的顯示產(chǎn)品和技術得到迅速發(fā)展,進入高科技時代的顯示技術將是平板顯示的時代,led顯示屏作為平板顯示的主導產(chǎn)品之一無疑會有更大的發(fā)展,并有可能成為二十一世紀平板顯示的代表性主流產(chǎn)品。高亮度、全彩化藍色及純綠色led產(chǎn)品自出現(xiàn)以來,成本逐年快速降低,已具備成熟的商業(yè)化條件?;A材料的產(chǎn)業(yè)化。使led全彩色顯示產(chǎn)品成本下降,應用加快。led產(chǎn)品性能的提高,使全彩色顯示屏的亮度、色彩、白平衡均達到比較理想的效果,完全可以滿足戶外全天候的環(huán)境條件要求,同時,由于全彩色顯示屏價格性能比的優(yōu)勢,預
10、計在未來幾年的發(fā)展中,全彩色led顯示屏在戶外廣告媒體中會越來越多地代替?zhèn)鹘y(tǒng)的燈箱、霓紅燈、磁翻板等產(chǎn)品,體育場館的顯示方面全彩色led屏更會成為主流產(chǎn)品。全彩色led顯示屏的廣泛應用會是led顯示屏產(chǎn)業(yè)發(fā)展的一個新的增長點。未來led顯示屏會向著標準化、規(guī)范化,產(chǎn)品結構多樣化的方向發(fā)展。(3)選題意義 該設計課題使我們能夠掌握led顯示屏的基本顯示原理和設計方法,對led顯示屏這個行業(yè)有了較為深刻的了解和認識。并且對大學期間所學習的一些理論進行了實踐,使我們對所學過的理論知識有了新的認識。并且通過該設計課題掌握了51單片機的的軟硬件開發(fā)工具的使用方法,為以后從事相關行業(yè)的工作積累了實際工作經(jīng)
11、驗。目前我國的信息行業(yè)發(fā)展迅速,作為主要平面顯示媒介的led顯示屏的作用也越練越廣泛,相關的從業(yè)人員也會越來越緊缺。但同時應該清楚的認識到我國的led技術雖然發(fā)展迅速但和世界先進水平還有一定的差距。因此此課題不論是對自己的就業(yè)還是對我國led顯示技術的發(fā)展都有非?,F(xiàn)實與積極的意義。1.2 論文主要內(nèi)容針對設計題目的特點,對論文的內(nèi)容和結構將做如下安排:(1)初步方案的論證和選擇 搜集題目的有關資料,并參照目前通用的設計思想和設計方法擬定幾套設計方案進行分析比較。最終選定了以pc機為上位機,單片機為核心控制器件,外加譯碼電路和驅(qū)動電路的設計方案。(2)方案實現(xiàn)以設計方案為指導思想選擇合適的器件來
12、實現(xiàn)這一思想,選擇器件時要從功能和電氣特性兩方面來選擇和論證。經(jīng)過對比選擇選定stc12c5a60s2單片機為核心控制器件,由串并轉換器74hc595和鎖存器74ls373為譯碼電路器件,三極管8550和uln2803為驅(qū)動電路器件。論文列出了詳細的器件參數(shù)和在系統(tǒng)中的連接使用方法。 (3)軟件編寫 根據(jù)硬件特點和設計要求,軟件選用c語言編寫。程序按功能分為靜態(tài)顯示、動態(tài)顯示、通信等幾個功能上相對獨立的模塊。然后按照所劃分的模塊逐個編寫和調(diào)試,最后將獨立的模塊整合起來。(4)驗證與測試 調(diào)試分為硬件調(diào)試、軟件調(diào)試和系統(tǒng)聯(lián)合調(diào)試幾步來進行。在硬件調(diào)試中發(fā)現(xiàn)有單片機端口驅(qū)動能力不足、驅(qū)動電路工作不
13、穩(wěn)定等問題。在軟件調(diào)試中出現(xiàn)程序整合工作不協(xié)調(diào)等問題。通過分析,查找找出了問題原因并設法將其解決。(5)結論 設計完成后對設計中所遇到的問題、經(jīng)驗教訓、以及自己的想法進行總結。第2章 系統(tǒng)硬件方案論證與選擇2.1 系統(tǒng)硬件方案大多數(shù)的led顯示屏都在戶外,所以對硬件的質(zhì)量要求非常的高。為方便檢修和維護硬件電路設計時常常采用模塊化的設計方法。硬件的設計采用模塊化設計,既要滿足模塊本身功能又要能夠和整個系統(tǒng)兼容。如圖2-1所示,根據(jù)顯示系統(tǒng)的功能特點確定系統(tǒng)硬件由顯示屏部分,控制部分,通信系統(tǒng)及上位機四部分組成。上位機通過通信部分向控制部分發(fā)送控制指令和顯示內(nèi)容代碼,控制部分執(zhí)行顯示指令并將顯示代
14、碼處理后控制顯示部分的顯示內(nèi)容和顯示方式。圖2-1 系統(tǒng)硬件組成框圖2.1.1 顯示屏主控制器控制部分是整個系統(tǒng)的核心部分,其功能為與上位機通信接收上位機發(fā)送的數(shù)據(jù)和控制指令處理過后控制顯示部分顯示內(nèi)容。其常用的電子設計方法有單片機、dsp、及eda技術。幾種設計方法比較各有其特點:(1)單片機單片機是集成了cpu,rom,ram和i/ o口的微型計算機。它有很強的接口性能,非常適合于工業(yè)控制,因此又叫微控制器(mcu)。單片機品種齊全,型號多樣 cpu 從8,16,32到64位,多采用risc 技術,片上i/o非常豐富,有的單片機集成有a/ d,“ 看門狗”,pwm,顯示驅(qū)動,函數(shù)發(fā)生器,鍵
15、盤控制等。它們的價格也高低不等,這樣極大地滿足了開發(fā)者的選擇自由。除此之外單片機還具有低電壓和低功耗的特點。隨著超大規(guī)模集成電路的發(fā)展,nmos工藝單片機被cmos代替,并開始向hmos 過渡。供電電壓由5v 降到3v,2v甚至到1v,工作電流由ma降至a ,這在便攜式產(chǎn)品中大有用武之地4。(2)dsp 芯片dsp 又叫數(shù)字信號處理器。顧名思義,dsp主要用于數(shù)字信號處理領域,非常適合高密度,重復運算及大數(shù)據(jù)容量的信號處理。現(xiàn)在已經(jīng)廣泛應用于通信、便攜式計算機和便攜式儀表、雷達、圖像、航空、家用電器、醫(yī)療設備等領域,dsp具有修正的哈佛結構,多總線技術以及流水線結構。將程序與數(shù)據(jù)存儲器分開,使
16、用多總線,取指令和取數(shù)據(jù)同時進行,以及流水線技術,這使得速度有了較大的提高。dsp區(qū)別于一般微處理器的另一重要標志是硬件乘法器以及特殊指令,一般微處理器用軟件實現(xiàn)乘法,逐條執(zhí)行指令,速度慢。而dsp 依靠硬件乘法器單周期完成乘法運算,而且還具有專門的信號處理指令,如tm320 系列的firs ,lms,macd指令等5。(3)edaeda(即electronic design automation) 即電子設計自動化,它是以計算機為工具,在eda 軟件平臺上,對用硬件描述語言hdl 完成的設計文件自動地邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合及優(yōu)化、邏輯布局布線、邏輯仿真,直至對于特定目標芯片進
17、行適配編譯、邏輯影射和編程下載等。設計者只需用hdl 語言完成系統(tǒng)功能的描述,借助eda工具就可得到設計結果,將編譯后的代碼下載到目標芯片就可在硬件上實現(xiàn)。由于fpga/cpld可以通過軟件編程對該硬件的結構和工作方式進行重構,修改軟件程序就相當于改變了硬件,軟件編寫可以采用自頂向下的設計方案,而且可以多個人分工并行工作這樣便縮短了開發(fā)周期和上市時間,有利于在激烈的市場競爭中搶占先機。而且mcu和dsp都是通過串行執(zhí)行指令來實現(xiàn)特定功能,不可避免低速,而fpga/cpld則可實現(xiàn)硬件上的并行工作,在實時測控和高速應用領域前景廣闊;另一方面,fpga/cplp器件在功能開發(fā)上是軟件實現(xiàn)的,但物理
18、機制卻和純硬件電路一樣,十分可靠。三種設計方式相比較各有優(yōu)點且都能夠?qū)崿F(xiàn)控制功能,但單片機的技術門檻較低開發(fā)成本也較低非常適合初學者進行學習和鍛煉使用?,F(xiàn)在市場上常用的單片機主要有mcs-51、avr、arm、pic等。其中應用最廣泛的單片機首推intel的51系列,由于產(chǎn)品硬件結構合理,指令系統(tǒng)規(guī)范,加之生產(chǎn)歷史“悠久”,有先入為主的優(yōu)勢常作為單片機學習的教材。且51系列的i/o腳的設置和使用非常簡單,當該腳作輸入腳使用時,只須將該腳設置為高電平(復位時,各i/o口均置高電平)。當該腳作輸出腳使用時,則為高電平或低電平均可。所以在控制部分方案的選擇中選定51系列單片機作為控制部分的核心器件。
19、2.1.2 通信系統(tǒng) 通信部分要滿足的設計要求就是穩(wěn)定、快速、簡單易實現(xiàn)。因為通常情況下顯示屏和上位機的距離不會很遠,所以通信距離的要求不是很高。計算機數(shù)據(jù)通信主要采用并行通信和串行通信兩種方式。(1)并行通信并行通信時數(shù)據(jù)的各個位同時傳送,可以字或字節(jié)為單位并行進行。并行通信速度快,但用的通信線多、成本高,故不宜進行遠距離通信。(2)串行通信串行通信數(shù)據(jù)是一位一位順序傳送,只用很少幾根通信線,串行傳送的速度低,但傳送的距離長,因此串行適用于長距離而速度要求不高的場合。在串行發(fā)送時,數(shù)據(jù)是一位一位按順序進行的,而計算機內(nèi)部的數(shù)據(jù)是并行的。因此,當計算機向外發(fā)送數(shù)據(jù)時,必須將并行數(shù)據(jù)轉換為串行數(shù)
20、據(jù)再發(fā)送。反之,又必須將串行數(shù)據(jù)轉換為并行數(shù)據(jù)輸入計算機中。這種轉換即可以用硬件實現(xiàn)也可以用軟件實現(xiàn)。單由軟件實現(xiàn)會增加cpu負擔,降低其利用率,故目前常采用硬件實現(xiàn)。通用的通用異步接收/發(fā)送器,簡稱uart(universal asynchromous receeiver/trabsnitter)是完成這一功能的硬件電路。在單片機芯片中,uart已經(jīng)集成在其中,作為其組成部分,構成一個串行口。 綜上所述,題目設計已經(jīng)選定了單片機為開發(fā)方式而單片機的uart已經(jīng)集成在單片機內(nèi),所以通信系統(tǒng)選擇串行通信為通信方式。2.1.3 led點陣顯示屏顯示部分包括了一塊至少可以顯示一個漢字的顯示屏,以及驅(qū)
21、動該顯示屏的驅(qū)動電路。由于單片機的i/o口有限要不能直接用i/o口來驅(qū)動led顯示屏,所以需要對單片機io口進行擴展增加單片機并行輸出的能力。led顯示屏是由一個一個的發(fā)光二極管點陣構成的,要構成大屏幕的led顯示屏就需要多個發(fā)光二極管。構成led屏幕的方法有兩種,一是由單個的發(fā)光二極管逐點連接起來,如圖2-2所示;二是選用一些由單個發(fā)光二極管構成的led點陣子模塊構成大的led點陣模塊。目前市場上普遍采用的點陣模塊有88、1616幾種;這兩種屏幕構成方法各有有缺點,單個發(fā)光二極管構成顯示屏優(yōu)點在于當單個的發(fā)光二極管出現(xiàn)問題時只需更換一個二極管即可,檢修的成本較低,缺點在于連接線路復雜;而點陣
22、模塊構成的方法卻正好與之相反,模塊構成省約了大量的連線,不過當一個led出現(xiàn)問題時同在一個模塊的所有l(wèi)ed都必須被更換。這就加大了維修的成本。兩種方法相比較,決定采取模塊構成的方法來制作一個led點陣顯示屏。為了避免模塊的缺點,選擇點陣數(shù)較小的模塊來減小出現(xiàn)這一問題的風險。所以構建一個1664的led點陣屏選用十六塊88點陣模塊。圖 2-2 led點陣圖一個1616的led顯示屏行和列各有16支引腳,不能單靠51單片機的端口驅(qū)動所以必須要對單片機的端口個數(shù)進行擴展。經(jīng)常采用的端口擴展方法是用串并轉換芯片進行譯碼。常用的串并轉換芯片有74hc595、74ls164(8位串并轉換器)、74ls15
23、4(4線-16線譯碼器)等。51系列單片機端口低電平時,吸入電流可達,具有一定的驅(qū)動能力;而為高電平時,輸出電流僅數(shù)十甚至更?。娏鲗嶋H上是由腳的上拉電流形成的),基本上沒有驅(qū)動能力,所以單片機不能直接驅(qū)動led顯示屏顯示。在單片機和顯示屏之間還需要增加以功能放大位目的的驅(qū)動電路。2.1.4 硬件設計方案最終方案如圖2-3所示,以pc機作為上位機存儲和處理顯示內(nèi)容用串行通信的方式將顯示內(nèi)容和控制指令傳輸?shù)絾纹瑱C系統(tǒng),單片機根據(jù)上位機傳輸來的內(nèi)容和指令通過端口譯碼擴展后驅(qū)動4塊88led點陣模塊構成的1616的led點陣顯示屏。題目將以此方案為指導思想展開具體的硬件電路設計。圖2-3 硬件設計方
24、案2.2 系統(tǒng)軟件方案軟件的設計除了滿足設計功能外還必須要滿足易讀寫,方便下載和編譯。設計目標和硬件總體結構確定的情況下,軟件可以分為主程序,顯示子程序,各種特效顯示子程序,通信程序三個主要部分組成。軟件的編寫需要借助軟件編輯器和編譯軟件,編譯完成后還需要下載到單片機中執(zhí)行。編寫軟件之前得首先選擇一種合適的語言以及配套的編輯器和編譯軟件。最后還要選擇一款與所選單片機的下載器或下載軟件來把編寫的程序下載到單片機中執(zhí)行。2.2.1 單片機編程語言現(xiàn)在主要運用的單片機編程語言為匯編語言和c語言。兩種語言相比較各有優(yōu)點。匯編語言(assembly language)是面向機器的程序設計語言,是一種功能
25、很強的程序設計語言,也是利用計算機所有硬件特性并能直接控制硬件的語言。其具有執(zhí)行速度快,占內(nèi)存空間少等優(yōu)點,但在編寫復雜程序時具有明顯的局限性,匯編語言依賴于具體的機型,不能通用,也不能在不同機型之間移植。c語言是一種源于編寫unix操作系統(tǒng)的語言,它是一種結構化語言,可產(chǎn)生壓縮代碼。c語言結構是以括號 而不是子和特殊符號的語言。c可以進行許多機器級函數(shù)控制而不用匯編語言。與匯編相比,有如下優(yōu)點:對單片機的指令系統(tǒng)不要求了解,僅要求對51的存儲器結構有初步了解;寄存器分配、不同存儲器的尋址及數(shù)據(jù)類型等細節(jié)可由編譯器管理;程序有規(guī)范的結構,可分為不同的函數(shù)。這種方式可使程序結構化;將可變的選擇與
26、特殊操作組合在一起的能力,改善了程序的可讀性;編程及程序調(diào)試時間顯著縮短,從而提高效率;提供的庫包含許多標準子程序,具有較強的數(shù)據(jù)處理能力;已編好程序可容易的植入新程序,因為它具有方便的模塊化編程技術。c語言作為一種非常方便的語言而得到廣泛的支持,c語言程序本身并不依賴于機器硬件系統(tǒng),基本上不做修改就可根據(jù)單片機的不同較快地移植過來?;谝陨侠碛蓻Q定采用c語言為該顯示系統(tǒng)的編程語言。2.2.2 系統(tǒng)軟件編譯器介紹c語言編寫的程序并不能被單片機直接執(zhí)行還需要編譯為單片機可執(zhí)行的機器語言。因此在系統(tǒng)軟件設計中,編譯器必不可少。支持mcs51用c語言編程的編譯器主要有兩種:franklin c51編
27、譯器和kellc51編譯器。目前在單片機開發(fā)中普遍都是使用kell c51來進行編譯。因此軟件設計最終方案為采用c語言為程序語言,kellc51為編譯工具按照控制、通信、顯示等幾個功能模塊來編寫程序。2.2.3 上位機控制傳輸軟件其中系統(tǒng)采用現(xiàn)在已經(jīng)非常普遍的pc機作為上位機,這樣對該顯示系統(tǒng)的硬件要求便降低了,增加了系統(tǒng)的通用性。上位機的作用是存儲并處理顯示內(nèi)容,然后通過通信系統(tǒng)傳送到控制系統(tǒng)驅(qū)動顯示。led顯示上位機的內(nèi)容一般有實時顯示和存儲顯示兩種方法。實時顯示及上位機屏幕上的內(nèi)容同時顯示在led顯示屏上,上位機上內(nèi)容變化led顯示屏也跟著變化。存儲顯示是將顯示內(nèi)容處理過后存儲在上位機中
28、通過通信系統(tǒng)傳輸?shù)斤@示屏顯示9。兩種顯示方法相比較:實時顯示屏幕能及時反應上位機內(nèi)容的變化,顯示的效果和內(nèi)容的實時性好多用于新聞播報、實況轉播用,但實時顯示硬件開銷大,對通信系統(tǒng)要求高,工藝復雜,成本高;存儲顯示雖實時性不高但硬件開銷小,成本低廉。課題設計題目對顯示的實時性要求較低且所設計的顯示屏尺寸不大同時顯示的內(nèi)容不多,所以實時顯示就沒有必要。所以上位機選擇存儲顯示的方法,控制led顯示屏的顯示內(nèi)容。第3章 系統(tǒng)軟件設計3.1 程序設計系統(tǒng)軟件采用c語言編寫,按照模塊化的設計思路設計。首先分析程序所要實現(xiàn)的功能,程序要實現(xiàn)串口通信,靜態(tài)顯示,動態(tài)顯示三大功能。其功能結構如圖2-4所示。通信
29、程序接收上位機數(shù)據(jù),交給主程序處理再通過控制程序選擇不同的系統(tǒng)初始化從顯示數(shù)組讀取數(shù)據(jù)到顯示寄存器讀取顯示控制命令選擇顯示方式調(diào)用相應顯示程序ri=1?起始位?接收顯示數(shù)據(jù)及控制命令將顯示數(shù)據(jù)移入顯示數(shù)組將控制命令賦值給控制字符nnyy開 始中斷開始中 斷 返 回顯示程序進行顯示。 主程序的工作流程如圖3-1所示:圖3-1 主程序流程圖 圖3-2 中斷服務程序流程圖 程序開始時首先必須對單片機進行初始化,其中初始化的內(nèi)容包括:中斷優(yōu)先級的設定,中斷初始化,串行通信時通信方式的選擇和波特率的設定,各io口功能的設定等。初始化完成后程序進入待機狀態(tài)等待中斷的發(fā)生,該程序中主要用到了兩個外部中斷源和
30、串行中斷。外部中斷源由按鍵的電平變化觸發(fā),外部中斷主要功能是選擇led點陣顯示屏的控制方式是由按鍵控制還是上位機控制和顯示狀態(tài)是靜態(tài)顯示還是動態(tài)顯示。串行中斷包括發(fā)送中斷和接收中斷都是由軟件觸發(fā)。中斷產(chǎn)生后由預先初始化時設定跳轉執(zhí)行中斷子程序。中斷程序設定了led點陣顯示屏所要顯示的內(nèi)容和顯示的方式,最后執(zhí)行的是各種顯示程序。按照設定的方式和內(nèi)容顯示出所需要的內(nèi)容。3.2 顯示程序的設計3.2.1 led顯示屏的顯示方式 led點陣屏顯示方式主要由靜態(tài)顯示和動態(tài)掃描顯示兩種。 對靜態(tài)顯示來說,每一個發(fā)光二極管都需要一套驅(qū)動電路,一幀畫面輸入以后便可一勞永逸地顯示,除非我們改變了顯示內(nèi)容,需要重
31、新輸出新的點陣數(shù)據(jù)這種方式系統(tǒng)原理相對簡單一些,但所需的譯碼驅(qū)動裝量很多,引線多而繁雜,不便于大屏幕的制造,成本高,其可靠性也較低另一種動態(tài)掃描顯示是把整個led屏幕分成若干部分,每一幅畫面的顯示是顯示完一部分后,又顯示第二部分直到顯示完最后一部分又重新開始顯示第一部分,重復循環(huán)進行在重復掃描速度足夠快的情況下,我們看到的就是一幅穩(wěn)定的畫面也就是說采用動態(tài)掃描顯示需要不斷進行畫面的刷新在這種方式下其顯示驅(qū)動電路可重復利用,引線也大大減少,從而使硬件成本降低,且屏幕上的發(fā)光二極管輪流發(fā)光,使用時的耗電量大大降低大屏幕的制造、維護要容易許多,可靠性也增加了兩種顯示方式的比較再結合51單片機i/o口
32、數(shù)量有限的原因決定采用動態(tài)掃描的方式進行顯示。動態(tài)掃描分為行掃描和列掃描兩種方式區(qū)別在于選通端和數(shù)據(jù)輸入端分別是行還是列。在該顯示系統(tǒng)中掃描顯示的工作原理如圖3-3所示,先選通列然后再從行送入對應列的數(shù)據(jù),這樣從第1列到第16列循環(huán)往復,只要切換的速度足夠的快利用人眼的延時特性就可以看見一幅穩(wěn)定的畫面。圖3-3 掃描顯示程序原理圖3.2.2 點陣數(shù)據(jù)表達方式該顯示系統(tǒng)的顯示數(shù)據(jù)采取縱向取模方向正向的數(shù)據(jù)存儲方式如圖3-4, 圖3-4 點陣數(shù)據(jù)原理圖 即數(shù)據(jù)是縱向的,一個像素對應一個位。8個像素對應一個字節(jié),字節(jié)的位順序是上高下低,比如從上到下8個點的狀態(tài)是“*-*-”(*為黑點,-為白點),則
33、轉換的字模數(shù)據(jù)是0x82(b1000_0010)。如圖(4-3)所示,一幅1616的點陣畫面點陣數(shù)據(jù)按照b1b2b3b31b32存儲。所以一幅畫面的數(shù)據(jù)量為32字節(jié)。畫面顯示時選通的第i列對應的數(shù)組元素為第i和i+16個元素16。3.2.3 顯示程序的設計開 始 顯示程序分為靜態(tài)顯示程序、左移顯示、右移顯示、上移顯示、下移顯示五種種顯示方式。其中上下左右移動程序都調(diào)用了靜態(tài)顯示程序為子程序。靜態(tài)顯示程序流程圖如圖3-5所示: 初 始 化讀取顯示數(shù)據(jù)依次選通列,行74hc595的clock端置低,鎖存器禁止輸出對應行數(shù)組元素與0x01相與,相與結果寫入單片機端口輸出數(shù)組元素右移一位,對應74hc
34、595 clock端置高n右移次數(shù)是否為8?y鎖存器允許輸出圖3-5 靜態(tài)顯示程序流程圖顯示采用的是列掃描的顯示方式,選通一列后按照列與數(shù)據(jù)元素的對應關系第i列對應的行數(shù)據(jù)為數(shù)組中的第i和第i+16個元素。將對應元素的由低至高位依次從端口輸出具體做法為將元素向右邏輯移位后再與0x01相與,所得結果通過單片機端口輸出到串并轉換器的a端,鎖存在鎖存器里完成一列數(shù)據(jù)移位后再將其輸出。如此依次循環(huán)選通各列來顯示所需畫面。圖3-6 左右移/上下移程序流程圖 動態(tài)顯示程序流程如圖3-6所示,根據(jù)顯示數(shù)據(jù)的存儲原理通過改變實際led列與數(shù)據(jù)邏輯列的方法來實現(xiàn)程序的左右移動。顯示數(shù)據(jù)與列的對應關系為:第i列對
35、應的數(shù)據(jù)為數(shù)組中i和第2i個數(shù)據(jù)。所以選通時,而送入后一列的數(shù)據(jù)則相當于畫面左移移位,同理送入前一列數(shù)據(jù)相當于右移一位。如此循環(huán)則產(chǎn)生一幅穩(wěn)定運動的畫面。 顯示數(shù)組中,第1至16個元素的第8至第1位led顯示屏中的第1至第8行。同理第17至32個元素的第8至第1位led顯示屏中的第9至第16行。所以將元素數(shù)據(jù)進行邏輯位移便能產(chǎn)生上下移動的效果。3.3 通信程序的設計系統(tǒng)采用串行中斷的方式進行通信。mcs-51單片機的五個中斷源兩種類型:一類是外部中斷源;另一類是內(nèi)部中斷源,包括兩個定時器/計數(shù)器(t0和t1)的溢出中斷和串行口的接收和發(fā)送中斷。mcs-51單片機設置了4個專用寄存器用于中斷控制
36、,分別為定時器控制寄存器(tcon),串行口中斷控制器(scon),中斷允許控制寄存器(ie),中斷優(yōu)先級控制寄存器(ip)。編程時通過設置其狀態(tài)來管理中斷系統(tǒng)。在編輯中斷程序時首先是將中斷控制寄存器(ie)初始化。其控制位分布如表。ea為中斷允許總控制位,ea=1時cpu開發(fā)中斷;ea1時。cpu屏蔽所有中斷。es、et、ex1、et0、ex0為對應的串行口中斷、定時器/計數(shù)器1中斷、外部中斷1中斷、定時器/計數(shù)器0中斷、外部中斷0中斷的中斷允許位。對應位為1時允許其中斷,對應位為0時,禁止其中斷。表3-1 中斷允許寄存器格式d7d6d5d4d3d2d1d0eaeset1ex1et0ex0
37、所以初始化時設定中斷允許寄存器初值為0xff,指令為 ie=0xff。程序設計時還要考慮到中斷優(yōu)先級的問題。因為不同的中斷同時產(chǎn)生而cpu響應的順序取決于內(nèi)部查詢順序。設置串口工作方式1,波特率9600,計算可得計數(shù)器初值的十六進制表示為0xfd。通信協(xié)議如表4-2所示:表3-2 串口通信數(shù)據(jù)結構數(shù)據(jù)結構第1個字節(jié)第2至第33個字節(jié)第34個字節(jié)內(nèi)容起始標志位s顯示數(shù)據(jù)控制指令作用判斷是否開始接收數(shù)據(jù)led的顯示內(nèi)容控制led顯示方式具體串口中斷程序流程圖如圖3-7所示,在主程序中先進行了串行中斷的初始化,初始化內(nèi)容包括了串行工作方式選擇,波特率的設定,計數(shù)初值的設定。程序開始進入中斷等待,當p
38、c機向單片機發(fā)送數(shù)據(jù)時產(chǎn)生中斷接收允許位ri置1,將sbuf(緩沖寄存器)中的值輸入到暫存器中進行數(shù)據(jù)處理。首先判斷數(shù)據(jù)是否設定的起始標志位s如果是則開始接收起始位后的33個字節(jié),不是則中斷返回繼續(xù)等待。接收到第34個字節(jié)后便將收到的數(shù)據(jù)發(fā)送回pc機進行驗證比較。ri=1?接收串口數(shù)據(jù)起始位s接收起始位后33位數(shù)據(jù)接收到第34位?將第2位起的32位數(shù)據(jù)發(fā)回pc機nnnyyy中斷開始中斷返回 圖3-6 通信程序流程圖所有軟件編寫完成后都必須經(jīng)過編譯才能被單片機識別使用。為了減小軟件的修改和優(yōu)化難度,先把各子程序?qū)憺橐粋€可單獨執(zhí)行的完整程序。各子程序編譯沒有錯誤后再輸入單片機進行驗證,這兩項都通過
39、后再將所有的程序整合到一起形成一個完整的程序再進行編譯和驗證。第4章 系統(tǒng)調(diào)試硬件制作和軟件編寫過后,完成后必須對其進行調(diào)試,檢查設計功能是否實現(xiàn)了。軟件硬件完成后開始進行調(diào)試。調(diào)試可分為硬件調(diào)試,軟件調(diào)試和系統(tǒng)聯(lián)合調(diào)試。4.1 系統(tǒng)硬件部分調(diào)試方法硬件調(diào)試主要是調(diào)試各部分的焊接是否合格和各芯片的輸出輸入電壓是否符合設計要求,最后測試各硬件部分能否完成設計功能。因此把硬件調(diào)試按照以下四部分分步來進行:(1)測試所有焊點是否有短路和虛焊的現(xiàn)象存在;(2)通電測試所有硬件芯片的輸入輸出電壓是否在設計要求的范圍內(nèi);(3)測試isp下栽線的功能是否能夠?qū)崿F(xiàn);(4)測試串口系統(tǒng)的通信功能是否能夠?qū)崿F(xiàn)。由
40、于最重要的顯示系統(tǒng)功能的測試需要軟件配合所以在硬件調(diào)試部分只測試單片機復位電平,功能部分測試放在系統(tǒng)聯(lián)合調(diào)試部分來完成。4.1.1 短路與虛焊檢測 檢測工具為萬用表,使用萬用表的短路報警功能,逐個測試相臨的兩個焊點檢測是否短路。按照電路圖檢測需要連接的兩點是否短路來檢測是否已經(jīng)連接上,以此來檢測虛焊的情況。檢測和修改完成后為下一步通電檢測排除了短路的危險和由于虛焊引起檢測結果不真實的麻煩。4.1.2 上電測試由于系統(tǒng)測試時是采用usb電源為系統(tǒng)電源,所以電源輸入都為5v。顯示系統(tǒng)中單片機、譯碼器,鎖存器,驅(qū)動電路的電源電壓均要求為5v所以可同時直接接入。上電后首先觀察電路是否有過熱,異味,冒煙
41、的現(xiàn)象出現(xiàn)。經(jīng)過觀察,沒有這些現(xiàn)象出現(xiàn)。然后測試各器件的電源,接地及一些電平應該固定的端口的電壓。測試的結果為:各器件電源端在4.3v4.8v之間滿足器件的電源電壓要求,單片機端口在未接負載時端口電壓為4.5v。4.1.3 串口調(diào)試 串口部分的作用為單片機與pc機之間通信,要檢查硬件是否正常工作可以采用將max232芯片的單片機端輸出口與輸入口直接相連的辦法來測試。具體電路圖如圖5-2所示,將max232的第10端和第9端直接短接。功能上表示將單片機的輸出口與輸入口直接相連,單片機收到數(shù)據(jù)的同時就將數(shù)據(jù)發(fā)送回pc機。如果發(fā)送的數(shù)據(jù)能夠被接收則證明串口通信部分的硬件是正常的。將串口與電腦com1
42、相接,通過串口調(diào)試助手發(fā)送不同位數(shù)的數(shù)據(jù)再在把發(fā)送的數(shù)據(jù)與接收數(shù)據(jù)相比較。圖4-2 串口硬件調(diào)試4.2 系統(tǒng)軟件調(diào)試方法由于已經(jīng)進行了硬件調(diào)試,所以軟件調(diào)試主要是軟件編譯和將各功能塊程序分別寫入以驗證其功能的可實現(xiàn)性。在進行功能調(diào)試前必須用keil c對所有程序進行編譯,編譯成功生產(chǎn)可執(zhí)行的.hex后方可進行功能測試。其中測試串口程序的功能是否完善不但要連接單片機系統(tǒng)還要借助串口調(diào)試工具。串口調(diào)試工具選用的是串口調(diào)試助手,其功能是按照設定的串口、波特率向單片機發(fā)送數(shù)據(jù)和接收單片機向pc機發(fā)送的數(shù)據(jù)。并且能把發(fā)送和接收的數(shù)據(jù)內(nèi)容顯示在狀態(tài)欄內(nèi)。因此只要設定pc機向單片機發(fā)送的內(nèi)容和單片機向pc機
43、發(fā)送的內(nèi)容就可以通過串口調(diào)試助手驗證串口通信是否準確,是否滿足功能要求。串口程序的設計為:設定波特率位9600,以0xaa為起始標志位,單片機接收自起始標志位后的32位十六進制數(shù)再發(fā)送會pc機。測試程序時設定波特率為9600,選擇串口1,無校驗,8位數(shù)據(jù)。pc機向單片機發(fā)送的內(nèi)容為aa 11 22 33 44 55 66 77 88 99 00 aa bb cc dd ee ff 11 22 33 44 55 66 77 88 99 00 aa bb cc dd ee ff。pc機收到的數(shù)據(jù)為 11 22 33 44 55 66 77 88 99 00 aa bb cc dd ee ff 11
44、 22 33 44 55 66 77 88 99 00 aa bb cc dd ee ff。測試表明串口程序和串口電路實現(xiàn)了設計目的。再進行數(shù)次不同數(shù)據(jù)的發(fā)送,接收到的數(shù)據(jù)也驗證了設計要求的實現(xiàn)。圖4-3 串口調(diào)試圖串口程序測試成功后為顯示程序提供了準確的顯示內(nèi)容。余下得各種顯示程序和中斷程序都編譯成功后只有聯(lián)合硬件才能驗證其功能的可行性。4.3 系統(tǒng)聯(lián)合調(diào)試及結果經(jīng)過硬件調(diào)試和軟件調(diào)試,排除了硬件的連接問題和驗證了串口功能的可實現(xiàn)性。其余功能的軟件便可以在此基礎上調(diào)試驗證其功能的正確性。聯(lián)合調(diào)試的具體方法如下:(1)編寫一個逐點掃描的顯示程序,再結合硬件電路運行。這樣做的目的在于檢測各器件是
45、否能夠正常運行和顯示屏的各個led燈是否有損壞。結果顯示顯示屏中只有邊角出有一個led燈被燒壞,其他器件邏輯功能運行正常。(2)將靜態(tài)顯示子程序與各種動態(tài)顯示程序結合硬件電路進行調(diào)試。系統(tǒng)運行時顯示如圖5-1所示,顯示圖像比較清晰,各動態(tài)顯示效果也能夠?qū)崿F(xiàn)。但顯示存在兩個問題。一是發(fā)光點的下方會出現(xiàn)一個很微弱的亮點,影響了整體的顯示效果。二是同一列的led燈被點亮的數(shù)量與其亮度出反比,即如果同一列的燈都被點亮則亮度比只點亮幾個時要暗一點。(3)將串口通信,顯示,硬件聯(lián)合調(diào)試。按照設定的通信協(xié)議,先由pc機向單片機發(fā)送起始控制字s,接著再發(fā)送32比特的顯示數(shù)據(jù),最后發(fā)送控制顯示方式的顯示控制字。
46、再發(fā)送不同的顯示數(shù)據(jù)和顯示控制字,觀察各種顯示方式的運行情況和各種顯示方式之間的切換情況。結果是顯示屏執(zhí)行顯示控制指令,顯示所發(fā)送的內(nèi)容。4.4 調(diào)試結果分析對調(diào)試中出現(xiàn)的問題進行了分析,得出以下原因和修改辦法。(1)硬件的工作表現(xiàn)出不穩(wěn)定,主要是表現(xiàn)在led顯示屏的驅(qū)動電路部分和單片機系統(tǒng)部分。具體表現(xiàn)為單片機接負載后電壓被拉低值1.7v左右,無法滿足譯碼電路的輸入要求。顯示時會有一些行驅(qū)動的輸出不夠設計指標 ,導致所驅(qū)動的那一行在顯示屏上表現(xiàn)為選定的點不能夠很好區(qū)分,圖像出現(xiàn)模糊。分析造成這一現(xiàn)象的原因為,焊接時三極管8550遭到了高溫損壞以致工作不穩(wěn)定和焊接的電路不夠牢靠,還有就是8550的e端所接電壓過高。修改辦法為將單片機輸出端口外接5k的上拉電阻,替換損壞三極管。(2)虛點的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《標準化與標準編寫》課件
- 人教版八年級生物下冊第一節(jié)植物的生殖教學課件
- 七年級寫作專題作文如何選材課件
- 單位管理制度匯編大合集【職員管理】
- 單位管理制度合并匯編【人力資源管理】
- 單位管理制度呈現(xiàn)匯編員工管理十篇
- 《電腦常識賽宣講》課件
- 《容積和容積單位》課件
- 《產(chǎn)品開發(fā)管理V》課件
- 三角形的初步認識課件
- 醫(yī)院眼科醫(yī)院雷火灸操作評分標準
- 二年級口算題卡
- 畢業(yè)設計工程造價預算書
- 幼兒園課件-神奇的中草藥
- 起重機零配件(易損件)清單
- 錐坡工程量計算
- 植物園設計規(guī)范
- 北京保險中介行業(yè)營銷員增員及流動自律公約
- 深圳市建設工程施工圍擋圖集(試行版_下半部分).pdf
- 熱水器3c安全試驗報告及第三方檢測報告dsf65mx ts tx ws wx ys yx ms
- 南洋電工GSB1A型16錠高速編織機使用說明書
評論
0/150
提交評論