




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上第1章 緒論 1.1 研究課題的背景介紹隨著國民經濟的快速發展,城市建設規模不斷擴大,大城市人口高度集中并大幅度增長,同時汽車保有量急劇上升,交通需求量迅速擴大,而道路交通基礎設施建設的發展則相對滯后。城市交通需求與供給之間的矛盾越來越突出,城市“乘車難”、“行車難”的局面在加劇,交通堵塞呈現出點到線、由線到面的擴展趨勢,交通擁擠、交通延誤、交通堵塞以及由此引起的噪音、廢棄污染嚴重影響著居民的正常生活以及社會經濟的持續、健康發展。近年來,我國城市交通的現狀已引起了政府、公眾、社會各界的廣泛關注,有關專家學者和交通工程師們在吸取各國城市交通發展經驗的基礎上,找到了解決我
2、國城市交通發展問題的有效途徑,即優先發展城市公共交通,以公共交通為杠桿降低城市交通需求總量,實現道路交通基礎設施發展與交通需求增長的均衡。實施“公交優先”是解決我國城市交通問題的有效途徑,也是我國目前交通發展的基本政策。公交智能化是智能交通的一個重要子領域,同時也是落實“公交優先”,使城市交通與社會經濟和諧發展的重要組成部分。實施公交智能化,必須提高公交服務質量,而到站后的準確、及時報站就是一個方面,本設計基于AT89C52單片機、LED點陣制作的公交車自動報站系統就能解決這方面的問題。從而,達到公共形象的提升。當前國內主要大城市的公交車大都采用人工報站,即每到一站由司機或者乘務員來進行報站。
3、但有時由于受到各種因素如雨雪天氣的影響,會出現報錯站、漏報站的情況,給乘客特別是不熟悉本市地形的乘客帶來了不必要的麻煩,從而影響到了一個城市的窗口形象工程建設。于是開發研制自動報站系統成為必然。因此本次畢業設計中提出以AT89C52單片機為核心,用LED顯示屏顯示站名的即經濟、高效、直觀的公交車到站自動報站系統。1.2 研究前景及國內外發展水平隨著公交優先戰略的確定,公交在緩解城市交通擁堵方面的作用將越來越重要,也這種要求相比,我國大城市公共交通還有很大差距,主要表現為:為社會提供服務信息的水平低,只能是以經驗為主的被動、滯后的實施服務,仍以人工作業為主。上述問題顯然不利于公交對乘客的吸引,也
4、是導致公交運營組織模式落后、調度方式原始陳舊、企業管理效率不高的重要原因。因此,如何提高公交系統的服務質量,是現行公交行業急需解決的問題。我國智能運輸的基礎較差,因此理論研究雖在進行,但相應技術卻得不到推廣,在實際生活中得不到應用,達不到廣泛服務社會的目的。所以發展一種自動報站系統,提高公交服務質量就成為民用科技研究的一個項目。目前在國際上已經實現了DPS定位車載智能系統,在國內的幾個大城市也都有使用,實現了公交系統的全面監控和調度。公交車自動報站系統的研究也達到了無線聯絡,全自動報站的水平。但一般其經濟投入較高。結合我國現有的公交系統現狀,半自動化報站系統還有很大的應用空間。適用于一些中小城
5、市。1.3 課題研究的意義在公交車上,經常有誤報站的現象,在早晚高峰期,公交車內擁擠,環境噪聲大,語音報站往往聽不清楚,影響報站,車箱內的喇叭分布不均勻也容易造成乘客聽不清報站。而報站LED顯示屏填補了語音報站的缺陷。在聽不清報站的時候可以通過顯示屏確認站點。而且LED顯示屏的成本較低,適合在每個公交車上安裝。1.4 課題任務及設計要求以單片機為核心,制作一個公交車自動報站系統。其必要的功能為:1:具有4個24*24的點陣漢字顯示功能。2:功能上具有速度調整、顯示控制按鍵和滾動控制按鍵。3:漢字用點陣顯示,漢字顯示模塊采用24*24。4:在設計時應該充分考慮單片機的I/O口的擴展和單片機的存儲
6、字庫的問題。第2章 方案論證與方案選擇 2.1 總體方案論證公交車LED顯示屏電路大體上可以分成單片機本身的硬件電路、顯示驅動電路和控制電路。控制電路部分包括一個51CUP和一些外圍電路。在整個電路當中此控制電路部分相當于一個上位機,它負責控制整個電路以及相應的程序的運行、與PC機的串行通訊、以及給屏體電路部分發送命令。此顯示電路采用掃描方式進行顯示時,每行有一個行驅動器,各行的同名列共用一個列驅動器。由行譯碼器給出的行選通信號,從第一行開始,按順序依次對各行進行掃描(把該行與電源的一端接通)。另一方面,根據各行鎖存的數據,確定相應的行驅動器是否將該列與電源的另一端接通。接通的行,就在該列該行
7、點燃相應的LED;未接通的行所對應的LED熄滅。可通過按鍵控制電路控制實現顯示站名的移動/停止,開/關,速度的加減,下一個站名的功能。根據任務要求,該系統框圖如圖1所示。時鐘電路復位電路單片機點陣顯示器陰極驅動電路點陣顯示器陽極驅動電路24×24點陣LED顯示屏按鍵控制電路圖1 系統框圖2.2 各方案選擇與論證2.2.1單片機選擇方案一: 采用通過SPCE061A單片機編寫程序顯示要求漢字。SPCE061A是凌陽科技公司umSPTM(microcontroller and signal processor)系列產品中的16位微控制芯片,內置32閃存,其較高的處理速度芯片能夠非常容易、
8、快速地處理復雜的數字信號,適用于數字語音識別等領域。8×8雙色LED點陣電路,用行驅動和列驅動可以亮點LED點陣模塊。圖中RCOL1ECOL8分別控制8×8LED的每一列顯示成紅色,成為紅色LED的列驅動,低電平有效;而GCOL1GCOL8分別控制著8×8LED的每一列顯示成綠色,成為綠色LED的列驅動,同樣是低電平有效;COM1COM8使他們的數據口,當送入一個口高電平時,相應的LED被點亮,而當送入其中一個低電平時,相應的LED就會被熄滅,所以也成為行驅動。比如,當想要第一行(從下到上)的第一個LED顯示成紅色的時候,只需要送RCOL1一個低電平,而且送COM
9、1一個高電平即可,也即選中紅色的第一列(從右到左),并給第一行(從下到上)送一個高電平,就可以使得第一行第一列(同前)的LED顯示成紅色。此方案也是有單片機直接驅動,性能穩定,驅動能力強,簡單方便,但是由于我們系主要學習的是51系列單片機對于這一款新的單片機再去學習了解可能時間不夠,故此方案也被放棄了。方案二:選用ATMEL公司的AT89C52單片機作為硬件電路的主控芯片,它是一個低電壓,高性能CMOS 8位單片機,片內8K BYTES的可反復擦寫的只讀程序存儲器和256 BYTES的隨機存取數據存儲器,器件采用ATMEL公司的高密度,非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置
10、有8位中央處理器和FLASH存儲器單元,功能強大的AT89C52單片機可提供許多復雜系統控制應用場合。AT89C52單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案,因此單片機選擇ATC89C52較為合適。2.2.2復位電路選擇單片機剛上電時需要復位一次才能可靠工作,單片機有多種復位電路,本系統采用電平式開關復位和上電復位方式,當上電時,C1相當于短路,單片機復位,在正常工作時,按下復位鍵時單片機復位。復位電路如圖2所示。圖2 單片機復位電路2.2.3外部晶振選擇AT89C52的內部有一個用于構成振蕩器的高增益反相放大器。通過XTAL1,XTAL2外部接上一片作為反饋元件的晶體,與C1
11、和C2構成了并聯諧振電路,使其構成自激震蕩器。電容的值具有微調的作用,我們取33PF。具體的接法如圖3外部晶振電路所示。圖3 外部晶振電路2.2.4顯示屏模塊選擇我們知道的用來顯示的器件很多,比如數碼管、LCD、點陣式LED。數碼管只能顯示數字,LCD可以顯示漢字、符號、數字和圖形。雖然LCD的顯示效果要比LED好,顯示電路也比較簡單,因為很大一部分已經集成化,但是它的價格比較高,也不容易采購。所以綜合考慮生產成本,本系統采用點陣式LED顯示。它具有一下特點:1、價格比較便宜;2、容易擴展顯示比較多的漢字;3、顯示漢字效果好,廣泛用于廣告顯示屏,交通屏幕。通常情況下,點陣式LED顯示屏是由標準
12、的LED顯示模塊組成的。HS 1088BS點陣式LED顯示模塊是8行8列64個LED組成。單塊點陣式LED顯示模塊能夠顯示各種字母,數字和常用的符號。點陣式LED顯示模塊在8行8列的每一個交點上裝有一個LED。模塊有共陽極和共陰極之分。LED的正極接行引線,負極接列引線的稱為共陽極LED顯示模塊,反之為共陰極LED顯示模塊。方案一:采用9塊8×8點陣LED顯示屏相連接構成一塊24×24點陣LED顯示屏,9塊點陣屏連接起來面積較大,且需多根導線將其焊接,但是這種方案制作的顯示屏的大小、形狀沒有限制,可以任意制作,現在制作的LED顯示屏都是用此方法。 方案二:采用24×
13、;24點陣LED顯示屏,24×24點陣屏的功能與9塊8×8點陣屏構成24×24點陣屏功能相同,但是更為美觀小巧美觀,且單塊24×24點陣屏和9塊8×8點陣屏價格相等。但市面上幾乎沒有24×24點陣LED顯示屏,都是由8×8點陣連接而成。故本設計采用方案一。2.2.5 驅動顯示模塊選擇LED顯示的三種方式:1、 占空比控制驅動:減少驅動電路。在需要進行灰度級控制顯示的情況下要求隨時調整占空比使LED達到響應的發光程度。2、 組合驅動:按照行列進行驅動。3、 掃描驅動:所謂脈沖驅動方式,就是利用人眼的視覺暫留效應,以脈沖的方式對
14、LED器件進行供電,使之間歇性點亮。采用這種驅動方式需要對以下兩個方面進行考慮:脈沖電流的幅值和其重復頻率。首先,脈沖電流幅值的選擇,當脈沖驅動的平均值與直流驅動的電流值相等時,我們人眼的感覺就是相同的,也就是說兩者的發光強度相當。掃描驅動是通過數字邏輯電路,使若干個LED器件輪流導通,用以節省控制驅動電路。LED顯示屏是將發光燈按行按列布置的,驅動時也就按行按列驅動。在掃描方式下進行掃描:(1) 按列控制也叫可按列掃描,按行控制。所謂“掃描”的含義,就是指一行一行地循環接通整行的LED器件,而不問這一行的哪一列的LED器件是否應該點亮,某一列的LED器件是否應該點亮,由所謂的列控制電路來負責
15、。(2) 按行掃描按列控制的方式。一個m行n列結構的LED顯示屏,當采用行掃描列控制的驅動方式時,從H1到Hm輪流將高電位接通各行線,使連接到各行的LED器件接通正電源,但具體哪一個LED導通,還是看它的負電源是否接通,這就是列控制所要完成的工作。根據驅動方式的不同,LED大屏幕顯示方式可分為靜態顯示和動態掃描顯示。方案一:采用靜態鎖存方式,從理論上說,不論顯示圖形還是文字,只要控制這些組成圖形或文字的各個點所在位置相對應的LED器件發光,就可以得到我們想要的顯示結果,這種同時控制各個發光點亮滅的方法稱為靜態驅動顯示方式。24×24的點陣共有576個發光二極管,顯然單片機沒有這么多端
16、口,如果采用鎖存器來擴展端口,按8位的鎖存器來計算,24×24的點陣需要576/8=72個鎖存器。這個數字很大,因為僅僅是24×24的點陣,在實際應用中的顯示屏往往要大的多,這樣在鎖存器上花的成本將是一個很大的數字。這種方法可以直接驅動LED,原理簡單,驅動能力強,LED的亮度也可以通過限流電阻調節,非常方便,但此種方法太浪費單片機的I/O口,只適合于較小的系統。因此采用另一種稱為動態掃描的顯示方法。方案二:采用動態掃描方式,動態掃描的意思簡單地說就是逐行輪流點亮,這樣掃描驅動電路就可以實現多行(比如24行)的同名列共用一套列驅動器。具體就由9塊8×8組成的24&
17、#215;24的點陣來說,我們把所有同一行的發光管的陽極連在一起,把所有同一列的發光管的陰極連在一起,先送出對應第一列發光管亮滅的數據并鎖存,然后選通第一列使其點亮一定的時間,然后熄滅;再送出第二列的數據并鎖存,然后選通第二列使其點亮相同的時間,然后熄滅; 第二十四列之后又重新點亮第一列,這樣反復輪回。當這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現象,只要刷新速率不小于25幀/秒,就不會有閃爍感,我們就能看到顯示屏上穩定的圖形了。該方法能驅動較多的LED,控制方式較靈活,而且節省單片機的資源。故采用本設計方案。2.2.5行驅動模塊選擇采用動態掃描方式進行顯示時,每行有一個行驅動
18、器,各行的同名列共用一個列驅動器。顯示數據通常存儲在單片機的存儲器中,按8位一個字節的形式順序排放。顯示時要把一列中各行的數據都傳送到相應的行驅動器上去,這就存在一個顯示數據傳輸的問題。從控制電路到行驅動器的數據傳輸可以采用并行方式或串行方式。采用串行傳輸的方法,控制電路可以只用一根信號線,將行數據一位一位傳往行驅動器,在硬件方面無疑是十分經濟的。故選擇串行傳輸。但是,串行傳輸過程較長,數據按順序一位一位地輸出給行驅動器,只有當一列的各行數據都已傳輸到位之后,這一列的各行才能并行地進行顯示。這樣,對于一列的顯示過程就可以分解成行數據準備(傳輸)和列數據顯示兩個部分。對于串行傳輸方式來說,列數據
19、準備時間可能相當長,在行掃描周期確定的情況下,留給行顯示的時間就太少了,以至影響到LED的亮度。解決串行傳輸中行數據準備和行數據顯示的時間矛盾問題,可以采用重疊處理的方法。即在顯示本列各行數據的同時,傳送下一列的行數據。為了達到重疊處理的目的,行數據的顯示就需要具有鎖存功能。經過上述分析,可以歸納出行驅動器電路應具備的主要功能。對于行數據準備來說,它應能實現串入并出的移位功能;對于列行數據顯示來說,應具有并行鎖存的功能。這樣,本列已準備好的數據打入并行鎖存器進行顯示時,串并移位寄存器就可以準備下一列的列數據,而不會影響本行的顯示。選用行驅動模塊主要有兩種方案:方案一:74ls164是8位串行輸
20、入轉并行輸出移位寄存器。74ls164的驅動電流(25mA)比74HC595(35mA)的要小,14腳封裝,體積也要小一些,但74ls164只有數據清零端,不容易控制。方案二:由74HC595構成,74HC595是具有一個8位串入并出的移位寄存器和一個8位輸出鎖存器的結構,與74ls164只有數據清零端相比,74HC595還多有使能輸出控制端,可以使輸出為高阻態,而且移位寄存器和輸出鎖存器的控制是各自獨立的,可以實現在顯示本行各列數據的同時,傳送下一行的列數據,達到重疊處理的目的。由于有24個行線,需要3塊74HC595串聯起來。故采用方案二。第3章 系統硬件電路的設計 3.1 硬件電路設計本
21、電路是由AT89C52單片機為控制核心;采用普通晶體時鐘源,其中晶體用12MHZ的石英晶振;復位電路結合實際應用功能的實現,采用上電復位和電平式開關復位方式;顯示部分由24×24點陣LED顯示屏顯示;行驅動電路采用74HC595,列驅動電路采用74LS138。3.2 各單元電路說明3.2.1 單片機主控模塊設計1. AT89C52單片機介紹AT89C51是美國ATMEL公司生產的低電壓,高性能CMOS8位單片機,片內含有8K bytes的可反復擦寫的只讀程序存儲器和256的隨機存取數據存儲器,器件采用AEMEL公司的高密度,非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通
22、用8位中央處理器和FLASH存儲單元,功能強大的AT89C52單片機可靈活應用于各種控制領域。圖4為AT89C52外部封裝。圖4 AT89C52封裝AT89C52單片機為40引腳雙列直插芯片,有32個外部雙向輸入/輸出端口,同時內含2個外中斷口,3個16位可編程定時計數器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規方法進行編程,也可以在線編程。其將通用的微處理器和FLASH存儲器結合到一起,特別是可反復擦寫的FLASH存儲器可有效地降低開發成本。ALE/PROG端除輸出地址鎖存允許脈沖外,在編程期間還作為編程脈沖輸入端,參與控制對FLASH存儲器的讀,寫,加密,擦除等操作。
23、而EA/VPP端在尋址片內8KB FLASH程序存儲器時,必須連到VCC,如果將此端連到GND端,將迫使單片機尋址外部0000H-1FFFH范圍的程序存儲器。如果加密位被編程了,AT89C52的CPU將對EA的狀態進行采樣并鎖存,EA的狀態不得與實際使用的內部或外部程序存儲器的狀態發生矛盾。AT89C52振蕩器特性為: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求
24、的寬度。 此外,AT89C52設有穩態邏輯,可以在低到零頻率的條件下靜態邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數器,串口和中斷系統仍在工作。在掉電模式下,保存RAM的內容并且凍結振蕩器,停止芯片其它功能直至硬件復位,直到下一個硬件復位為止。2單片機復位電路復位電路有硬件和軟件兩種,復位的作用是使程序自動從0000H開始執行,因此我們只要在AT89C52單片機的RESET端加上一個高電平信號,并持續10ms以上即可,RESET端接有一個上電復位電路,它是由一個小的點解電容和一個接地的電阻組成的。人工復位電路另外采用一個按鈕來給RESET端加上高電平信
25、號。如圖5所示人工復位電路。圖5 人工復位電路我們采用放電型人工復位電路,如圖所示,上電時C通過R充電維持寬度大于10ms的正脈沖,完成上復位功能。C充電結束后,RESET端將出現低電平CPU工作。在此我們取了典型值R=10K,R1=1K,C=10uf。上電復位實現的時間:T=R*C=10K*10UF=100ms>=10ms。需要人工復位時,按下按鈕K,C通過K和R1放電,RESET端電位上升到高電平,實現人工復位,K松開后C重新充電,充電結束后,CPU重新工作,R1是限流電阻,阻值不可以放大,否則不能起到復位作用。3. 時鐘電路單片機的時鐘電路如下圖所示,單片機18引腳和19引腳接時鐘
26、電路,XTAL1接外部晶振和微調電容的一端,在片內它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調電容的另一端,在片內它是振蕩器倒相放大器的輸出。如圖6所示。圖6 單片機時鐘電路3.2.2行數據傳輸電路的設計行數據傳輸電路由3個集成電路74HC595串聯構成,74HC595的外形及內部結構如圖7所示。74HC595是硅結構的CMOS器件, 兼容低電壓TTL電路,遵守JEDEC標準。74HC595是具有8位移位寄存器和一個存儲器,三態輸出功能。 移位寄存器和存儲器是分別的時鐘。 數據在SHcp的上升沿輸入,在STcp的上升沿進入到存儲寄存器中去,下降沿時存儲器數據不變。如果兩個時鐘連在一起
27、,則移位寄存器總是比存儲寄存器早一個脈沖。 移位寄存器有一個串行移位輸入(Ds),和一個串行輸出(Q7),和一個異步的低電平復位,存儲寄存器有一個并行8位的,三態的總線輸出,當使能OE時(為低電平),存儲寄存器的數據輸出到總線。圖7 74HC595外形及內部結構通常將OE置為低電平,當移位結束后,在OE端產生一個正脈沖(5V時,大于幾十納秒就行了,通常都選微秒級),更新顯示數據;OE(13腳)指高電平時禁止輸出(高阻態)。如果單片機的引腳不緊張,用一個引腳控制它,可以方便地產生閃爍和熄滅的效果,這樣比通過數據端移位控制要省事省力。然后用三片74HC595串聯起來組成行數據傳輸端,如圖8所示。通
28、過數據端和時鐘端把數據傳輸到移位寄存器。圖8 74HC595串聯電路3.2.3列控制電路列控制器件74LS138是3-8譯碼器,它具有三個使能端,只有當使能端S1為高電平,而S2與S3之和為低電平時,才能正常工作,輸出端低電平有效。74LS138管腳圖如9所示。圖9 74LS138管腳圖此列控制電路采用三片138和每個輸出端串聯一個1k的電阻起限流的作用,然后與P1口相連接作為顯示屏的列選擇線。ABC為譯碼器數據輸出端,E1、E2、E3為片使能端。當E1為高電平,E2、E3為低電平時第一片譯碼器使能可控制(COL0COL7)列,以此類推選擇列。74LS138電路連接如圖10所示。圖10 74L
29、S138管腳分配連接圖3.2.4點陣組合電路的設計1.LED點陣屏簡介LED電子顯示屏是由幾萬幾十萬個半導體發光二極管像素點均勻排列組成。利用不同的材料可以制造不同色彩的LED像素點。目前應用最廣的是紅色、綠色、黃色。而藍色和純綠色LED的開發已經達到了應用階段。8×8單色點陣共需要64個發光二極管組成,且每個二極管是放置在行線與列線的叉點上。本設計是一種實用的漢字顯示屏的制作,制作的是單色點陣。考慮到元器件的易購性,使用9塊8×8的點陣發光二極管模塊,組成了24行24列的發光點陣。實際使用時可以根據這個原理自行擴充顯示的字數。8×8點陣外觀及引腳如圖11所示。
30、圖11 8×8點陣外觀及引腳圖 2. 點陣組合電路設計24×24點陣LED顯示屏由9塊8×8點陣組成組成,此點陣是按共陰極式組合,控制列選端低電平有效。Row0Row23為行數據端,COL0COL16為列控制端,管腳分配方式如圖11所示。圖11 點陣管腳分配連接圖3.2.5按鍵電路的設計鍵盤實際上是一組按鍵開關的集合,控制CPU通過按鍵來識別特定的用戶命令,從而轉入相應的程序來執行用戶命令。鍵盤的軟硬件的設計涉及下面幾個方面的問題:對于此設計來說我們要準確的顯示我們所要對應的信息,每按下一次按鍵要顯示所要顯示的信息。這按鍵是主要用來報站而設計的。這樣比鍵盤操作方便
31、,也比較實惠。按鍵電路采用中斷模式。當有按鍵按下時,系統產生中斷,CPU響應中斷。圖12是單片機的I/O口連接電路,P1口作為連接74LS138的片選使能和譯碼數據端,P0作為連接74HC595的時鐘端、數據端、清零端、使能端的分配。按鍵用P2口的P2.0、P2.1、P2.2、P2.3分別控制點陣屏移動/停止,開/關,速度的加減,下一個站名的功能。單片機和按鍵連接電路,如圖12所示。圖12 單片機和按鍵連接電路圖第4章 系統軟件的設計 4.1 點陣顯示原理4.1.1 24×24點陣LED基本顯示原理LED驅動顯示采用動態掃描方法,動態掃描方式是逐行輪流點亮,這樣掃描驅動電路就可以實現
32、多行的同名列共用一套列驅動器。24×24點陣屏由9塊8×8點陣LED顯示屏組成,把9塊8×8點陣LED顯示屏所有同一行(同名行)的發光管的陽極連在一起,把所有同一列(同名列)的發光管的陰極連在一起,先送出對應第1行發光管亮滅的數據并鎖存,然后選通第1行使其燃亮一定的時間,然后熄滅;再送出第2行的數據并鎖存,然后選通第2行使其燃亮相同的時間,然后熄滅;.第24行之后,又重新燃亮第1行,反復輪回。由于人眼的視覺暫留現象,就能看到顯示屏上穩定的圖形。該方法能驅動較多的LED,控制方式較靈活,且節省單片機的資源。顯示數據傳輸采用串行傳輸的方法,控制電路可以只用一根信號線,
33、將列數據一位一位傳往列驅動器,在硬件方面無疑是十分經濟的。但串行傳輸過程較長,數據按順序一位一位地輸出給列驅動器,只有當一行的各列數據都已傳輸到位之后,這一行的各列才能并行地進行顯示。對于串行傳輸方式來說,列數據準備時間可能相當長,在行掃描周期確定的情況下,留給行顯示的時間就太少了,以致影響到LED的亮度。采用串行傳輸中列數據準備和列數據顯示的時間矛盾,可以采用重疊處理的方法。即在顯示本行各列數據的同時,傳送下一行的列數據。為了達到重疊處理的目的,列數據的顯示就需要有鎖存功能。對于列數據準備來說,它應能實現串入并出的移位功能。這樣,本行已準備好的數據打入并行鎖存器進行顯示時,串行移位寄存器就可
34、以準備下一行的列數據,而不會影響本行的顯示。LED點陣顯示模塊進行的方式有兩種:(1)水平方向(X方向)掃描,即逐列掃描的方式(簡稱列掃描方式):此時用一個P口輸出列碼決定哪一列能亮(相當于位碼),用另一個P口輸出行碼(列數據),決定該行上那哪個LED亮(相當于段碼)。能亮的列從左到右掃描完24列(相當于位碼循環移動24次)即顯示出一個完整的圖像。(2)豎直方向(Y方向)掃描,即逐行掃描方式(簡稱行掃描方式):此時用一個P口輸出決定哪一行能亮(相當于位碼),另一個P口輸出列碼(行數據,行數據為將列數據的點陣旋轉90度的數據)決定該行上哪些LED燈亮(相當于段碼)。能亮的行從上向下掃描完24行(
35、相當于位碼循環移位24次)即顯示一幀完整的圖像。本設計應用的是第二種的掃描方法,即豎直方向(Y方向)掃描。 在UCDOS中文宋體字庫中,每一個字由24行24列的點陣組成顯示,如圖4.1所示。如果用 8位我們以UCDOS中文宋體字庫為例,每一個字由24行24列的點陣組成顯示。即國標漢字庫中的每一個字均由576點陣來表示。我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字,也可以顯示在576像素范圍內的任何圖形。我們以顯示漢字的89C51單片機控制,由于單片機的總線為8位一個字需要拆分為3個部分。 一般我們把它拆分為左邊、中間、右邊,左邊由24
36、215;8點陣組成,中間由24×8點陣組成,右邊也由24×8點陣組成。 在本例中單片機首先顯示的是左邊的第一列左上部分,即第一列的A-H口。方向為A到H ,顯示漢字“沈”時,如圖4.1所示。AH全是滅的。即二進制轉換為16進制為00H.。 左邊第一列AH完成后,繼續掃描左邊的第一列,即從I向P方向掃描,從上圖可以看出,為I滅,J滅, K滅, L滅, M滅, N滅,O滅, P滅。即二進制轉換為16進制為00H。接著再顯示左邊部分的第一列的QX,從圖上可以看出QX都為滅,即二進制轉換為16進制為00H。先左邊,再中間,最后是右邊部分,依次類推,如圖13。按照這個方法,繼續進行下
37、面的掃描,一共掃描32個8位,可以得出漢字“沈”,它的掃描代碼為:00H,00H,00H,00H,80H,00H,00H,40H,40H,10H,70H,FEH;18H,03H,E0H,0CH,3CH,00H,01H,C0H,02H,00H,00H,04H;00H,80H,08H,07H,80H,18H,02H,00H;30H,02H,00H,C0H;02H,07H,80H,3FH,FEH,00H,3FH,1FH,F8H,02H,1FH,FCH;02H,00H,04H,02H,00H,04H,02H,00H,04H,03H,80H,04H;03H,00H,04H,00H;00H,7CH,00H
38、,00H,04H,00H,00H,00H;豎直方向掃描圖13 24×24點陣顯示字體4.1.2 24×24點陣LED顯示屏左跑馬顯示原理如果要在24×24點陣屏以左跑馬的方式顯示以字體,則需以以下方式進行顯示。在24×24點陣屏中,我們可以把點陣屏看成24列LED組成,且每列有24個LED燈。在本例中單片機首先將第二列的顯示信息給第一列,使第一行顯示圖像變成第二行所要顯示的。以“沈”字為例,原第一列由上到下排列,為1滅,2滅,3滅,4滅,5滅,6滅,7滅,8滅,9滅,10滅,11滅,12滅,13滅,14滅,15滅,16滅,18滅,19滅,20滅,21滅,
39、22滅,23滅,24滅。原第二列由上到下排列,為1滅,2滅,3滅,4滅,5滅,7滅,8滅,9滅,10亮,11-24滅。單片機將第二列信息給第一列取代第一行原信息,故第一列由上到下排列,為1-9滅,10亮,11-24滅。接著將第一列的信息給第二十四列,第三列的信息給第二列,第四列的信息給第三列,依此類推,如圖14所示。按照這個方法,繼續進行下面的掃描。最終點陣屏在視覺上的顯示效果是“沈”字慢慢向左邊移動,如圖15所示。 圖14 左跑馬原理 圖15 左跑馬后顯示圖像4.2 系統軟件實現本程序主要由主程序與清屏、查表、送數、循環掃描、延時幾個部分組成。在主程序中使用DPTR地址寄存器作為地址取碼指針
40、,通過查表將數據送行線作控制信號,而通過138連接的列線作掃描控制開關。主程序圖如圖16所示。系統初始化開始數據清零、顯示字數,賦字模初地址判斷按鍵和按鍵處理片選和列控制字賦初值調行數據傳送子程序掃描列使能延時子程序八列掃描完N取下一幀首地址字模地址改變24列掃描和數據傳輸完掃描次數到顯示字數到YNNNYYY圖16 主流程序圖4.2.1 行數據傳輸子程序設計DPTR置數據表地址的基值,R2作地址指針,以兩者之和查找相應的數據,R2的初值為0,當DPTR為表首地址時,在子程序的循環中R2從0加到3,取出顯示一列字符的全部字節并與列掃描配合逐列顯示,完成一幀掃描的全部操作。為保證第一屏能移動顯示,
41、該設計將數據表的最前一屏用了0數據,開始以黑屏顯示完成全部的掃描顯示。幀掃描子程序流程圖如圖17所示。行數據傳送子程序595呈現高電平,設傳送字節數取當前一個字節位傳送8位傳送完傳送字節完取碼指針加一595管腳輸出數據子程序返回YYNN圖17 幀掃描子程序流程圖4.2.2 單片機延時子程序延時程序在單片機編程中使用非常廣泛,也很重要,在本畢業設計的程序中用到了延時子程序,所以在此詳細的敘述一下。在弄清延時程序指令的用法之前,要清楚的了解延時程序的基本概念,機器周期和指令周期的區別和聯系、相關指令的用法等。 我們知道程序設計是單片機開發最重要的工作,而程序在執行過程中常常需要完成延時的功能。例如
42、在本設計中,列向的掃描要控制每列的掃描時間,還有所有的字移動有一定的時間間隔,而在所有的字移動一遍結束的一瞬間到下一遍移動開始的一瞬間要有延時,這時的延時可以和移動的時間相同以保持移動的連貫性,也可以不同作為每次從頭開始的停頓,在上述就可以通過延時程序來完成。1. 延時指令 在單片機編程里面并沒有真正的延時指令,從上面的概念中我們知道單片機每執行一條指令都需要一定的時間,所以要達到延時的效果,只須讓單片機不斷地執行沒有具體實際意義的指令,從而達到了延時 的效果。 (1)數據傳送指令 MOV 數據傳送指令功能是將數據從一個地方復制、拷貝到另一個地方。 如:MOV R7,#80H
43、60; ;將數據80H 送到寄存器R7,這時寄存器R7 里面存放著80H,就單這條 指令而言并沒有任何實際意義,而執行該指令則需要一個機器周期。 (2)空操作指令 NOP 空操作指令功能只是讓單片機執行沒有意義的操作,消耗一個機器周期。 (3)循環轉移指令 DJNZ 循環轉移指令功能是將第一個數進行減1 并判斷是否為0,不為0 則轉移到指定地點;為0 則往下執行。 循環轉移指令(DJNZ )除了可以給定地址標號讓其跳轉外,還可以將地址標號改成$,這樣 程序就跳回本指令執行。例如: DJNZ R7,$ ;R7 內容減1 不為0,則再次執行本指令;為0 則往下執行,當R7 的值改為10 時,則執行
44、完該條程序所需的時間為2*10=20 s。利用以上三條指令的組合就可以比較精確地編寫出所需要的延時程序。下面是本設計的程序中延時程序的計算: 機器周期:MS: MOV R6,#5; 1 DELAY: MOV R7,#190; 1 DJNZR7,$; 2*R7 DJNZR6,DELAY; 2*R6+(1+2*R7)*R6 RET 2上面這個子程序共有四條指令,現在分別就每一條指令 被執行的次數和所耗時間進行分析。 第一句:MOV R6,#5 在整個子程序中只被執行一次,且為單周期指令,所以耗時1s 第二句:MOV R7,#190 從看到只要R6-1不為0,就會返回到這句,共執行了R6次,共耗時1
45、90s 第三句:DJNZ R5,F1 只要R5-1不為0,就反復執行此句(內循環R7次),又受外循環R6控制,所以共執行R6*R7次,因是雙周期指令,所以耗時2*R6*R7s。所以精確延時時間為:1+(1×5)+(2×190×5)+(2×5)+2 =(2*190+3)*5+3 =1918s 2ms 4.2.3 按鍵控制子程序1.按鍵程序設計本次設計中按鍵控制電路共有4個按鍵,分別控制點陣屏移動/停止,開/關,速度的加減,下一個站名的功能。根據硬件電路,當按鍵沒有按下時,接按鍵的單片機接口處于高電平狀態。當按下時,接口處于低電平狀態,松開時又恢復到高電平狀
46、態。所以根據硬件情況在本程序中的按鍵程序中有兩句是相同的,如下:JIAN:JB KEY3,Q_OUT JNB KEY3,$ 第一句意思是KEY3為高電平,程序直接跳轉到 Q_OUT第二句意思是KEY3為低電平時,繼續執行本條語句,直到按鍵釋放。2.按鍵四的程序設計按鍵四實現的主要功能是當按鍵第一次按下后,LED顯示屏將顯示下一個站名,再按一下是,LED顯示屏將顯示下一個站名,由于設計中運用的主芯片是AT89C51,它的內存有限,所以本次設計中共存有四個四字站名。當按第四次時,又恢復到第一個站名,接著依次類推,是一個循環的過程。以下是按鍵四的子程序。NEXT4: CPL 0BHNEXT: JB
47、KEY4,JIANJNB KEY4,$CPL 0DHNEXT1:JB 0DH , NEXT2 JNB 0BH, NEXT4 MOV DPTR,#TAB2CPL 0BHAJMP JIANNEXT2: JB 0CH ,NEXT3 MOV DPTR,#TAB1CPL 0CHAJMP JIANNEXT3:MOV DPTR,#TAB3 CPL0CHJIAN:進入到按鍵四子程序后,首先判斷按鍵四是否被按下,沒有按下則直接跳到JIAN程序,即跳出按鍵四子程序,如果按下將標志位0DH取反(0BH,0CH,0DH為標志位,起始位低電平),進入到程序NEXT1,判斷0DH是否為1,若為1跳到程序NEXT2,再判斷
48、0CH是否為零,將表TAB1的地址賦予DPTR,再將0CH取反,跳到JIAN,即結束按鍵四的子程序。以上是按鍵四按第一次使得程序原理,按第二、三、四原理幾乎一樣,不再重復,按第五次時,程序又和第一次一樣,再繼續循環。按鍵四的程序流程圖如圖18所示。0DH取反系統初始化KEY4是否為1返回0BH取反0DH是否為10CH是否為10BH是否為0TAB3賦予DPTR0BH取反NYNY0CH取反TAB1賦予DPTRTAB2賦予DPTRN0CH取反NYY開始圖18 按鍵四程序流程圖第5章 系統調試 5.1 硬件調試24×24點陣LED電子顯示屏的電路系統較小,但是線路頗為麻煩,特別是在焊接點陣屏
49、時。對于焊接方面更是不可輕視,龐大的電路系統中只要出現一處的錯誤,則會對整個電路帶來麻煩且對檢測造成很大的不便,而且電路的交線較多,對于各種鋒利的引腳要注意處理,否則會刺破帶有包皮的導線,則會對電路造成短路現象。本人在24×24點陣LED電子顯示屏的設計調試中遇到了很多的問題。下面為設計過程中遇到的主要問題:1. 焊接24×24 LED點陣屏時管腳焊接錯誤。2. 因焊接元器件不熟練,幾個焊盤脫落。3. 在硬件電路焊好后總體檢測時,24×24LED點陣屏第六常亮,且亮度比其 它行都亮。回想這些問題,只要耐心仔細和認真思考都是可以避免的,以下是對這幾個問題的主要解決方
50、法。1. 時常焊錯點陣屏管腳是因為點陣屏的管腳號和功能號是不對應的,所以先仔細查看資料,然后用萬能表點個測量,確定各個管腳所對應的功能號,并做相應的記號以防焊接錯誤。2. 因為電路板不是PCB板而是普通的電路板,焊盤質量不是很好,所以在粗心錯焊幾次后焊盤就容易脫落,故在選電路板時應選焊盤質量較好的,在后面焊元器件時應仔細小心,盡可能的防止錯焊。3. 檢測硬件電路時發現24×24 LED點陣屏第六列常亮,且亮度比其他行都亮。首先分析LED發光原理,只有當電流過大時LED才會異常發光,且長時間發光是因為24×24 LED點陣屏第二行的某個線路管腳接與正電源相接使其長時間供電才導
51、致LED燈常亮。當得出故障原因后,仔細檢查電路,用萬用表對焊點逐個檢測,最終檢測出來是第六列與電源線相連接才導致整個硬件電路出現故障。硬件電路如圖19所示。圖19 硬件實物電路圖5.2 PROTEUS仿真Proteus仿真時,單片機需要加載程序,加載程序為.HEX文件。本設計利用Keil Vision2, 在新建Keil項目時選擇AT89C52單片機作為CPU,將源程序導入,在“Options For Target”對話窗口中,選中“Output”選項中的“Create HEX File”,編譯鏈接后就可以生成.HEX文件。在Proteus ISIS中,選中AT89C51并單擊鼠標左鍵,對AT
52、89C51進行設置,設置單片機時鐘頻率為12MHz,按照正確的文件路徑加載.HEX文件。對單片機設置完畢后就可以開始仿真了。仿真過程中如有硬件問題可在Proteus ISIS中直接修改,如有軟件問題可在Keil Vision2中直接修改,通過Keil與Proteus的聯合調試就可以得到滿意的結果。利用Proteus實現了對點陣式LED滾動漢字顯示屏的仿真,說明程序和電路圖都沒有問題。Proteus仿真如圖20所示。圖20 Proteus仿真圖第6章 社會經濟效益分析 近些年來,隨著經濟的增長,城市的人口逐漸增多,城市的車輛也是逐年遞增,在現代化的城市里,公交車己經成為都市人生活不可替代的交通工
53、具,它的運行狀況直接影響到人們的生活。加快城市公共交通事業的發展,也是加快城市化進程的一項重要內容。公交車報站LED顯示屏有著許多優點,在現在是應用的主流。在公交車上,經常有誤報站的現象,在早晚高峰期,公交車內擁擠,環境噪聲大,語音報站往往聽不清楚,影響報站,車箱內的喇叭分布不均勻也容易造成乘客聽不清報站。而報站LED顯示屏填補了語音報站的缺陷。在聽不清報站的時候可以通過顯示屏確認站點。而且LED顯示屏的成本低,功率小,性價比高,一塊8X8點陣幾塊錢,加上外圍的驅動芯片,公交車報站LED顯示屏總共就幾十塊錢,適合在每個公交車上安裝。總結 本設計的是一個公交車報站24x24的點陣LED顯示屏,能
54、夠在目測條件下LED顯示屏各點亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應穩定、清晰無串擾。圖形或文字顯示有靜止、移入移出等顯示方式。本系統具有硬件少,結構簡單,容易實現,性能穩定可靠,成本低等特點,適合在每輛公交車上安裝。 總結本文的研究工作,主要做了下面幾點工作 一、通過查閱大量的相關資料,詳細了解了公交車報站系統和其中的LED的發光原理和LED顯示屏的原理,了解了公交車報站系統的現狀,清楚地了解了在顯示站名時LED顯示屏與其它顯示屏相比較有那些優點,明確了研究目標。并且通過對單片機資料的查閱和應用,更進一步增加了對單片機知識的理解和運用能力。并證實了自己的思路:“查資料思考總結運用
55、找出差錯,再查資料和向別人詢問再次運用”的正確性。二,本文設計的公交車報站LED顯示屏能夠實現在目測條件下LED顯示屏各點亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應穩定、清晰無串擾。圖形或文字顯示有靜止、移入移出等顯示方式。三,本文列出了系統具體的硬件設計方案,硬件結構電路圖,軟件流程圖和具體匯編語言程序設計與調試等方面。四,通過這次畢業設計,重新復習單片機知識并進一步增強了動手的能力,學以致用,把知識運用到實際生活中才是根本目的。五,存在問題:沒有考慮仿真軟件是一個理想的仿真環境,而實際連接的電路板會由于譬如連接不當,相鄰器件間的干擾等等的問題導致,仿真軟件中能良好運行的程序在實際出現顯示問題,經過排查和合理的器件擺放焊接,問題被解決。總體來說這次的畢業設計很成功,達到了預想的目的:學到了知識,提高了能力,完成了任務。有點缺憾是時間有限,不能進一步深入和擴散學習和研究。希望有時間可以對程序和電路圖作更進一步的改進,譬如實現點陣的上下移動,對角線移動,三色顯示等。致 謝本論文是在指導教師滕金玉的悉心指導下完成的,從開題到論文的完成,都離不開導師
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 能源天然氣綜合利用項目建議書
- 2022年交通安全活動總結(15篇)
- 焦爐煤氣制甲醇項目建議書(模板)
- 建材物流園工程初步設計
- 既有供暖蒸汽管網及設施改造項目建議書(參考范文)
- 法制宣傳教育講座
- 四川省雅安市名山中學2023-2024學年高一上學期12月月考生物 含解析
- 美術教育生職業生涯規劃
- 幼兒識字教學設計及實施策略
- 濰坊護理職業學院《仿生智能材料》2023-2024學年第二學期期末試卷
- 新解讀《JTG H12-2015公路隧道養護技術規范》
- 2024年內蒙古呼和浩特市中考英語試卷真題(含答案解析)
- 山東省歷年中考語文現代文閱讀之非連續性文本閱讀10篇(含答案)(2003-2022)
- 多視圖靜態異常檢測
- 人教版中考生物一輪復習:七八年級考點復習課件480張
- 醫療垃圾分類及轉運院感考核試題與答案
- 2024年水力發電運行值班員(技師)技能鑒定考試題庫-上(單選題)
- DL∕T 1098-2016 間隔捧技術條件和試驗方法
- 標準離婚協議書模板民政局
- 2024新民政局離婚協議書參考樣板
- JBT 14449-2024 起重機械焊接工藝評定(正式版)
評論
0/150
提交評論