




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于單片機交通燈電路的設計【摘 要】根據8051單片機的特點及交通燈在實際控制中的特點,本文提出一種用單片機自動控制交通燈及時間顯示的方法。同時給出了軟硬件設計方法,設計過程包括硬件電路設計和程序設計兩大步驟,對在單片機應用中可能遇到的重要技術問題都有涉足。本文對十字路口狀態預設為兩種,一種是正常狀態,另一種是故障或緊急狀態,并分別用黃、紅、綠色燈的不同組合來表示。本文介紹了控制基本原理以及控制的表現,同時也介紹了城市交通信息系統的設計目標, 開發途徑及其系統結構與功能和數據地理編碼、建庫, 同時, 論述了系統中交通現狀、交通管理、交通規劃及背景信息查詢模塊的建造及應用。介紹了用于城市交叉路口
2、的三色程控交通信號時間顯示器的研制方案,對其電源供電、發光二極管構成的負載結構、燈色時間檢測都給出了精巧合理的優化結構,大幅度地提高了產品可靠性并降低了制造成本。關鍵詞:8051單片機,軟件,硬件abstractaccording to the feature of scm8051 and the characteristics of traffic lights in real control,the article puts forward the method of using sigle-chip microcomputer to control automatically the t
3、raffic signal lights and time-show.the method of realization of hardware has also been given,the whole process included hardware circuit designing and program designing,in which some important technique problem that may meet during the use of singlechip involved.in this paper,the state of crossing w
4、as designed as two states.one is normal,another breackdown or urgent,which are expressed with different colour lamp named yellow、red and green.the basic principle and method of controlling are introduced.in this paper, the design goals, development ways, system structure, system functions, geographi
5、c codes and data base of the urban traffic information system (u t is) were presented. furthermore, the development and the application tests of the traffic situation model, thetraffic management model, the traffic plan model and the background information inquirement model of u t is were discussed.
6、this paper introduces the development scheme of three-colour programmable traffic signal time indicator used in the level-crossing of our city,and gives its power supply,load construction made by led and time detection of traffic lamp colour a reasonable optimize structure.the reliability of product
7、 is substantiallyimproved while the cost is reduced.key words:scm8051, hardwore,softwore 目錄摘 要1abstract2引言5第1章 原理及其器件介紹71.1 工作原理71.2 器件71.2.1 單片機71.2.2 單片機系統101.2.3 數碼管11第2章 系統組成122.1 硬件控制線路圖122.2 晶振電路122.3 復位電路142.4 信號燈控制電路152.5 led顯示及顯示接口17第3章 交通信號燈的c語言編程203.1 單片機的c語言程序設計203.2 c語言與 mcs51203.2.1 mc
8、s51酌編程語言203.2.2 c51編譯器與程序開發過程213.2.3 c51程序結構213.3 利用c51程序編寫延時程序223.4 信號燈亮滅的定時功能223.4.1 單片機的定時器233.4.2 如何使用mcs-51單片機的定時器呢?233.4.3 定時器數值的設置應該注意的事項253.4.4 定時1ms的程序代碼253.5 51單片機的中斷系統253.5.1 中斷系統的概念253.5.2 單片機的中斷系統的作用263.5.3 如何實現單片機的中斷263.5.4 單片機系統的中斷過程283.6 數碼管顯示程序功能293.7 軟件流程圖30第4章 系統的組裝與調試314.1制板314.2
9、 組裝及調試324.2.1 at89s51單片機實驗及實踐系統板簡介324.2.2 keil c軟件和at89s51單片機下載器軟件的使用334. 2. 3 調試過程35第5章 總結37謝 辭38參考文獻39附 錄40引言 交通的發達,標志著城市的發達,相對交通的管理則顯得越來越重要。對于復雜的城市交通系統,為了確保安全,保證正常的交通秩序,十字路口的信號控制必需按照一定的規律變化,以便于車輛行人能順利地通過十字路口。考慮到單片機具有物美價廉、功能強、使用方便靈活、可靠性高等特點,擬采用mcs - 51系列的單片機來實現十字路口交通信號燈的控制。 正常情況下,十字路口的紅綠燈應交替變換,考慮緊
10、急情況下,如有救護車或警車到來時,應優先讓其通過。 在本文中,用發光二極管來模擬信號燈,救護車的優先通過請求信號由外部中斷技術來模擬。要求使用 8051定時器/ 計數器0作為定時器,假設南北和東西的通車時間都為30 s ,外部中斷的延時為10 s ,要求對通行時間進行倒計時,從p1 口輸出,在led上顯示并進行遞減。以此來實現十字路口交通燈的指示功能。其設計要求為:首先,要了解實際交通燈的變化規律. 假設一個十字路口為東西南北走向. 初始狀態0東西方向綠燈通車,南北方向紅燈,延時30 s. 轉狀態1 ,東西方向黃燈亮,南北方向紅燈按1hz的頻率閃爍,延時5s . 再轉狀態2 ,東西方向紅燈亮,
11、南北方向綠燈通車,延時20 s. 轉狀態3 ,東西方向紅燈按1hz的頻率閃爍,南北方向黃燈亮,延時5 s . 最后循環至狀態0. 這里的延時采用定時器0延時. 其次,當有緊急救護車出現時,應使東西南北四個方向全亮紅燈,并延時10 s , 以便急救車通過,同時對通行時間進行倒計時,從p1口及p3口輸出在發光二極管,使用8051 定時器/ 計數器0作為定時器實現子程序延時.技術上可用外部中斷0發出一單脈沖向cpu申請中斷. 再次,一般交通信號燈控制程序中使用軟件延時,軟件延時是靠執行一個循環程序以進行時間延遲. 軟件定時的特點是時間精確,且不需外加硬件電路. 但軟件定時要占用cpu ,增加cpu
12、開銷,因此軟件定時的時間不宜太長.本程序使用定時器/ 計數器0來定時,定時電路已經集成在芯片中,這種由硬件電路完成,不占cpu 時間. 它通過對系統時鐘脈沖的計數來實現,即每個機器周期產生一個計數脈沖,也就是每個機器周期計數器加1. 計數值通過程序設定,改變計數值,也就改變了定時時間,使用起來既靈活又方便.交通燈在安全行車過程中起著十分重要的作用, 現在交通燈一般設在十字路口, 在醒目位置用紅、綠、黃三種顏色的指示燈, 加上一個倒計時的顯示計時器來控制行車, 對于一般情況下的安全行車、車輛分流發揮著作用, 但根據實際行車過程中出現的情況, 主要有如下幾個缺點: 1兩車道讓車輪流放行時間相同且固
13、定, 在十字路口, 經常一個車道為主干道,車輛較多, 放行時間應該長些; 另一車道為副干道, 車輛較少,放行時間短些。2 沒有考慮緊急車通過時, 兩車道應采取的措施, 譬如, 有消防車通過執行緊急任務時, 兩車道的車都應停止, 讓緊急車通過。根據行車過程中出現的實際情況, 如何全面有效地利用交通燈指示交通情況, 本人嘗試用單片機來控制交通燈, 在軟、硬件方面采取一些改進措施, 使交通燈在控制中靈活而有效。 傳統的交通燈控制系統, 采用的基本上是3種控制方式。手按: 交警在崗亭值守,人為進行紅綠燈改變; 黃閃: 夜間無人值守時, 用每秒1次的黃燈閃亮, 提醒司機安全駕駛; 程控: 以60s 作為
14、一個時間單位。某一方面(例南北方向) 紅黃綠三燈的工作程序分別是: 紅燈先亮30s, 然后綠燈亮28s, 再綠燈閃亮3s (每秒1次) , 最后黃燈亮2s。此時, 另一方向(東西方向) 紅黃綠三燈的工作順序相應為: 綠燈亮25s, 綠燈閃亮3s (每秒1次) , 黃燈亮2s, 最后紅燈亮30s。此后以60s 作為時間單位進行上述的反復循環, 較為合理地解決了十字路口的交通調度問題。但紅綠燈的工作順序及時間都是固定的, 缺乏靈活性。采用該3種方式能解決一般崗亭的交通燈控制。但重點崗亭仍需要有2人以上同時值班, 保證有事要處理時, 仍能保留一名交警負責對交通燈的控制。而此時若想采用程控方式, 交警
15、將無法對交通燈再人為地加以管理。難以再科學地指揮車輛的通行, 有效地解決交通堵塞問題。例如當南北方向車流量很大時, 程控方式下的南北方向綠燈無法保證開放更長的時間, 以緩解交通擁擠的問題。當前,交通事業蓬勃發展,交通流量年年增長,大、中、小城市的汽車、摩托車等各種車輛與日俱增,道路交通繁忙,經常有嚴重堵車現象,特別是在交叉口,機動車、非機動車、行人來往非常混亂,為了在叉口的各條干道實現合理的科學分流。本人根據 單片機具有物美價廉、功能強、使用方便靈活、可靠性高等特點,提出了一種用mcs-51單片機自動控制交通信號燈及時間顯示的方法,具體如下:選用mcs-51單片機來實現,根據設計要求,交通信號
16、燈控制器的外部輸出信號為主、副車道紅、黃、綠燈共12個驅動信號;編程使相應位復/置位來實現信號燈的亮/滅控制,使得十字路口的紅、綠燈交替點亮;在燈色交換時,黃燈閃爍提醒。設計要求有緊急車輛通過時,十字路口均顯示紅燈。可以通過軟件中斷來完成緊急任務,定義t0為計數中斷并為下降沿觸發,編寫對應中斷向量子程序和中斷服務程序,完成中斷處理。設計還對定時控制有所要求。對于精確定時,應該用計數器加以控制,硬件實現復雜度增加。考慮到該設計對時間精度要求不高,所以采用軟件定時可以大大簡化電路。先計算出程序單部執行的時間,設置循環參數,利用if語句按設計要求完成定時控制。 第1章 原理及其器件介紹1.1 工作原
17、理采用單片機的i/o口p1口和p3直接和交通燈連接, 控制程序放在mcs- 51單片機如8051的rom中, 在十字路口的四組紅、黃、綠交通燈中, 受單片機p1.0p1.7和p3.0、p3.1、p3.3、p3.7 控制, 由于交通燈為發光二極管且陽極通過限流電阻和電源正極連接, 因此i/o口輸出低電平時, 與之相連的相應指示燈會亮, i/o口輸出高電平時, 相應指示燈會滅。緊急車請求通過的信號由人工控制, 以中斷方式輸入單片機, 無緊急車通過時, 中斷引腳int0 通過電阻和電源正極連接為高電平, 不產生中斷請求, 單片機執行主程序, 有緊急車通過時, 中斷引腳采用人工方法接地為低電平, 產生
18、中斷請求, 單片機執行中斷服務程序, 讓緊急車通過, 緊急車通過后, 中斷引腳變為高電平, 返回主程序。由于倒計時顯示裝置已普遍采用, 因此本文未引入探討。1.2 器件1.2.1.單片機 單片機是將中央處理器(cpu)、隨機存儲器(ram)、只讀存儲器(rom或eprom)、定時器芯片和一些輸入/輸出接口電路集成在一個芯片上的微控制器(microcontroller)。 中央處理器包括運算器、控制器和寄存器3個主要部分,是單片機的核心。 存儲器按工作方式可以分為兩大類:隨機存儲器ram和只讀存儲器rom。ram可被cup隨機地讀寫,斷電后存儲的內容消失;rom中的信息只能被讀取,一般用于存放固
19、定的程序。rom中的內容只能用編程器專用設備寫入。 輸入/輸出接口(i/o接口)是單片機的重要組成部分。程序、數據以及現場信息需要通過輸入設備送到單片機,計算結果需要通過輸出設備輸出到外設。常用的輸入有按鍵、鍵盤、a/d等,輸出設備一般有led、電機等。 為了方便理解,我們可以將單片機和pc機進行一個比較。一臺能夠工作的計算機要由cpu、ram、rom、輸入/輸出設備等幾個部分組成。在pc機上這些部分被分成若干塊芯片,安裝在主板上。而單片機相當于集成了以上所有芯片的一塊集成電路芯片。有一些單片機中除了上述基本的功能,還集成了其他部分功能,如a/d、d/a等。一個標準的89c51單片機的引腳功能
20、圖如圖3所示。圖3 89c51單片機及其引腳1at89c51單片機性能介紹 at89c51是一種帶4k字節閃爍可編程可擦除只讀存儲器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱單片機。該器件采用atmel高密度非易失存儲器制造技術制造,與工業標準的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲器組合在單個芯片中,atmel的at89c51是一種高效微控制器,為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。2主要特性:1.與mcs-51 兼容 2.4k字節可編程
21、閃爍存儲器 3.壽命:1000寫/擦循環4.數據保留時間:10年5.全靜態工作:0hz-24hz6.三級程序存儲器鎖定7.128*8位內部ram8.32可編程i/o線9.兩個16位定時器/計數器10.5個中斷源 11.可編程串行通道12.低功耗的閑置和掉電模式13.片內振蕩器和時鐘電路3管腳說明:vcc:供電電壓。 gnd:接地。 p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當fiash進行校驗時,p0輸出原碼,
22、此時p0外部必須被拉高。 p1口:p1口是一個內部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當p2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。p2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,p2口輸出地址的高
23、八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。 p3口:p3口管腳是8個帶內部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當p3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下表2-1所示:口管腳備選功能p3.0rxd(串行輸入口)p3.1txd(串行輸出口)p3.2/int0(外部中斷0)p3.3/int1(外部中斷1)p3
24、.4t0(記時器0外部輸入)p3.5t1(記時器1外部輸入)p3.6/wr(外部數據存儲器寫選通)p3.7/rd(外部數據存儲器讀選通)p3口同時為閃爍編程和編程校驗接收一些控制信號。rst:復位輸入。當振蕩器復位器件時,要保持rst腳兩個機器周期的高電平時間.ale/prog:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在
25、sfr8eh地址上置0。此時, ale只有在執行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ale禁止,置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數據存儲器時,這兩次有效的/psen信號將不出現。 /ea/vpp:當/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內部程序存儲器。注意加密方式1時,/ea將內部鎖定為reset;當/ea端保持高電平時,此間內部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 x
26、tal1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。1.2.2 單片機系統 單片機系統的基本結構框圖如圖4所示。從圖中可以看出,對于一個典型的單片機系統而言,主要由單片機、晶振和復位電路、輸入控制電路、輸出顯示電路以及外圍功能器件5個部分組成。除了上文中介紹過的單片機外,單片機系統中的其他4個部分的主要作用和器件如下。晶振和復位電路:單片機系統的必要組成部分,控制單片機的機器周期和功能復位。輸入控制:是指在一定要求下,采取何種形式的控制方式來實現單片機不同功能的轉換,以及控制指令以何種方式傳送到單片機。常用的輸入控制方法有按鍵、矩陣鍵盤、串行通信等方式。
27、晶振、復位電路輸入控制輸出顯示外圍功能器件單片機圖4 單片機系統的基本組成 輸出顯示:是指單片機將需要顯示的數據發送到led、液晶等顯示模塊,并控制led等顯示模塊按照一定的格式顯示的功能。此外,輸出對象還有電機、傳感器等特殊的功能器件。外圍功能器件:單片機只是控制器件,對應與一定的設計要求,需要加入特定功能的器件。例如外部存儲器,單片機通過對外部存儲器的讀寫操作,完成對數據的存儲器的讀寫操作,完成對數據的存儲和讀取,從而擴展單片機的存儲單元和數據。此外,常用的外圍器件還有a/d、d/a、74ls07門電路以及特定功能的傳感器等。單片機的最簡單系統是指單片機能正常工作所必須的外圍元件,主要由單
28、片機、晶振電路和復位電路構成。而輸入/輸出部分則通過單片機的i/o口實現。1.2.3 數碼管數碼管按段數分為七段數碼管和八段數碼管,八段數碼管比七段數碼管多一個發光二極管單元(多一個小數點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數碼管; 按發光二極管單元連接方式分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發光二極管的陽極接到一起形成公共陽極(com)的數碼管,共陽數碼管在應用時應將公共極com接到+5v,當某一字段發光二極管的陰極為低電平時,相應字段就點亮,當某一字段的陰極為高電平時,相應字段就不亮。共陰數碼管是指將所有發光二極管的陰極接到一起形成公共陰極(com)的數碼
29、管,共陰數碼管在應用時應將公共極com接到地線gnd上,當某一字段發光二極管的陽極為高電平時,相應字段就點亮,當某一字段的陽極為低電平時,相應字段就不亮。 第2章 系統組成2.1 硬件控制線路圖圖2原理圖2.2 晶振電路 簡單地說,沒有晶振,就沒有時鐘周期,沒有時鐘周期,就無法執行程序代碼,單片機就無法工作。單片機工作時,是一條一條地從rom中取指令,然后一步一步地執行。單片機訪問一次存儲器的時間,稱之為一個機器周期,這是一個時間基準。一個機器周期包括12個時鐘周期。如果一個單片機選擇了12mhz晶振,它的時鐘周期是1/12us,它的一個機器周期是12*(1/12)us,也就是1us。mcs-
30、51單片機的所有指令中,有一些完成得比較快,只要一個機器周期就行了,有一些完成得比較慢,得要2個機器周期,還有兩條指令要4個機器周期才行。為了衡量指令執行時間的長短,又引入一個新的概念:指令周期。所謂指令周期就是指執行一條指令的時間。例如,當需要計算djnz指令完成所需要的時間時,首先必須要知道晶振的頻率,設所用晶振為12mhz,則一個機器周期就是1us。而djnz指令是雙周期指令,所以執行一次要2us。如果該指令需要執行500次,正好1000us,也就是1ms。機器周期不僅對于指令執行有著重要的意義,而且機器周期也是單片機定時器和計數器的時間基準。例如一個單片機選擇了12mhz晶振,那么當定
31、時器的數值加1時,實際經過的時間就是1us,這就是單片機的定時原理。1、晶振的選擇晶振一般分為晶體振蕩器和晶體諧振器。在單片機系統中,晶體振蕩器將外圍的電容集成到振蕩器的內部,無需再設計晶振電路,只需要將電源加載到晶振上,晶振就可以起振,并通過兩個引腳輸出到單片機的晶振引腳上。一般的,由于晶體振蕩器的體積較大,價格較貴,在實際使用中,還可以選擇晶體諧振器,也就是常說的立式晶振。該晶振需要外部的晶振電路才可以起振,但是由于該電路非常簡單,并且使用靈活,在單片機系統中也有廣泛地應用。2、通用的晶振電路單片機的晶振電路是一種典型電路,分為內部時鐘方式和外部時鐘方式兩種。內部時鐘方式的電路如圖4所示。
32、圖4 單片機的內部晶振電路內部始終的晶振頻率一般都選擇在4mhz12mhz之間,外接兩個諧振電容。該電容的典型值為30pf,但是在實際應用時,需要根據實際起振情況選擇。如果單片機的時鐘必須使用某一個外接的時鐘信號,就不要外接晶振。由于此時的外接晶振引腳上沒有晶振信號輸入,內部的時鐘電路將停振。這種方式稱為外部時鐘方式。圖5給出了兩種外部時鐘的電路,可以根據不同的單片機型號選擇不同的電路。 hmos型單片機 chmos型單片機圖5 單片機的外部晶振電路3、振蕩器特性: xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘
33、源驅動器件,xtal2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。2.3 復位電路簡單地說,單片機的復位就和計算機的重起一樣的概念。任何單片機在工作之前都要有個復位的過程,復位對單片機來說,是程序還沒有開始執行,是在做準備工作。一般的復位只需要5ms的時間。復位引腳rst/vpd通過片內一個施密特觸發器(抑制噪聲作用)與片內復位電路相連,施密特觸發器的輸出,在每個機器周期的s5p2有復位電路采樣依次。當振蕩電路工作,并且在rst引腳加上一個至少保持2個機器周期的高電平時,就能使8051完成一次復位。按上面所說,時
34、間不少于5ms。為了達到這個要求,需要在外部設計復位電路。復位電路的實現可以有很多種方法,但是從功能上一般分為兩種:一種是電源復位,即外部的復位電路在系統通上電源之后直接使單片機工作,單片機的起停通過電源控制;另一種方法是在復位電路中設計按鍵開關,通過按鍵開關觸發復位電平,控制單片機的復位。1、通用的復位電路和晶振電路一樣,復位電路也是單片機系統的典型外部電路。基本的復位電路的原理圖如圖6所示。圖6 單片機的復位電路從原理上,一般采用上電復位嗲路。這種復位電路的工作原理是:通電時,電容兩端相當于是短路,于是rst引腳上為高電平,然后電源通過電阻對電容充電,rst端電壓慢慢下降,降到一定程序,即
35、為低電平,單片機開始正常工作。2、改進型的復位電路對于有著豐富電路設計經驗的讀者而言,可以根據自己的需要,定制滿足實際要求的電路。這里,給出了一種根據實際需要設計的上電復位電路,如圖7所示。圖7 改進型的復位電路2.4信號燈控制電路外圍器件選擇的是發光二極管,發光二極管在其兩端的電壓差超出其導通壓降時開始工作,發光二極管的導通壓降一般為1.7v1.9v。此外,工作電流要滿足該二極管的工作電流。滿足電流和電壓的要求,發光二極管就可以發光了。單片機系統中往往是數字信號,不是5v就是0v,所以只要將二極管的正負極和電源對應上就可以了。但還需在發光二極管和單片機連接時加一個限流電阻,這個電阻的作用在于
36、限制通過二極管的電流,從而達到減少功耗或者滿足端口對最大電流的限制。圖8 信號燈控制和時間顯示電路一般二極管的點亮電流為5ma至10ma,在5v驅動時,廠家多采用470歐的限流電阻,在電路中采用了1k的電阻,電流也就35ma。當然為了更亮一點,可以減小電阻值,當然,二極管的電流不要超出單片機的i/o最大電流。發光二極管的參數分成三大類:一是電參數;二是光參數;三是極限參數。 電參數發光二極管的電參數主要有下列幾項。 正向電壓vf。它是指:在給發光二極管加入規定的正向電流時,發光二極管正極與負極引腳之間的電壓降。發向耐壓vr。它是指:保證發光二極管不出現反向擊穿時所允許給發光二極管加的最大反向電
37、壓。反向漏電流ir。它是指:在給發光二極管加上規定的反向偏置電壓時,流過發光二極管的反向電流,即從負極流向正極的電流。結電容co。它是指:發光二極管pn結的結電容,一般為小于100pf,此結電容愈小愈好。 光參數發光二極管的光參數主要有發光峰值波長、半峰寬度和發光強度。其中發光強度是發光二極管的一項重要光參數,它表征了發光二極管發光時的亮度。 極限參數發光二極管的極限參數關系到發光二極管的安全使用,在使用過程中若超過極限參數,發光二極管將會損壞。發光二極管的極限參數主要有兩項:一是極限功率pm;二是極限工作電流im。在小電流發光二極管中,極限電流一般小于5ma。發光二極管的三種參數中,除光參數
38、是它特有的外,其他兩項參數的含義與普通二極管相同。2.5 led顯示及顯示接口單片機應用系統中,使用的顯示器主要有led(發光二極管顯示器)和lcd(液晶顯示器)。這兩種顯示器成本低廉,配置靈活,與單片機接口放便。近年來也開始配置簡易形式的crt接口,可以較方使池進行圖形顯示。數碼管在該電路中主要是顯示單片機的輸出數據、狀態等,因而,作為外圍典型器件,數碼管顯示是反映系統輸出和操縱輸入的有效器件。數碼管具備數字接口,可以很方便地和單片機系統連接;數碼管的體積小,重量輕,并且共好低,是一種理想的顯示單片機數據輸出內容的期間,在單片機系統中有著重要的作用。顯示電路如圖8所示。1led顯示器結構與原
39、理led顯示塊是由發光二極管顯示字段的顯示器件,在單片機應用系統中通常使用的是七段led。這種顯示塊有共陰極與共陽極兩種,如圖9所示。共陰極led顯示塊的發光級管陰極共地。如圖中(c)所示,當某個發光二極管的陽極為高電平時,發光二極管點亮;共陽極led顯示塊的發光二極管陽極并接。如圖中(b)所示。圖中(a)為七段碼顯示器的實際外觀與引腳連接圖,另外兩只沒有標出的引腳是共陰或者共陽引腳,實際連接中接地(共陰)或者接+5伏(共陽)。圖9 led的管腳和電路原理通常的七段顯示器(也有人稱為七節顯示屏)是由八個發光二極管所組成的,因此也被叫做八段顯示器。其中包括七個細長條形的led及小數點行的led,
40、顯示器的每一段或沒一劃都有其名稱,分別是英文小寫的a到f,以及小數點dp(decimal point)。七段顯示器可以顯示包括小數點的0到9數字與部分的英文字母。在近年來,由于生產器件的工藝的進步,也出現了十六段碼led顯示器和點陣式單色和雙色顯示器,這些led顯木器被廣泛應用于電梯、大屏幕led顯示器、公共汽車報站器、車站車次顯示等領域,特別是點陣式雙色顯示器的出現,極大的方便了漢字的顯示和圖形顯示,為其在網民經濟的領域的應用拓寬了道路。以共陽極的七段顯示器為例,若想要顯示數字1時,就要使b劃與c劃點亮,在電路上我們會把共同點接到正電源端(+5v),標示b與c的地方經過限流電阻到地,就可以顯
41、示數字1。如果是單個的數碼管,七段顯示器是直接點亮的,亦即用8位去推動一個七段顯示器。如果有多位數字要顯示時,可以用掃描的方式顯示,以節省控制腳位。 七段顯示塊與單片機接口非常容易。只要將一個8位并行輸出門與顯示塊的發光二極管引腳相連即可。8位并行輸出門輸出不同的字節數據即可獲得不同的數字或字符,其段碼如表2-3所示。通常將控制發光二極管的8位字節數據稱為段選碼。共陽極與共陰極的段選碼義為補數。圖10 七段led 碼的顯示碼2. led是如何顯示單片機數據的用單片機驅動led數碼管有很多種方法,按顯示方式分,有靜態顯示和動態顯示。首先介紹靜態顯示方法。靜態顯示就是顯示驅動電路具有輸出鎖存功能,
42、單片機將所要顯示的數據送出后就不再控制led,直到下一次顯示時再傳送一次新的顯示數據。靜態顯示的數據穩定,占用的cup時間少。靜態顯示中,沒一個顯示器都要占用單獨的具有鎖存功能的i/o接口,該接口用于筆劃段字形代碼。這樣單片機只要把顯示的字形代碼發送到接口電路,該字段就可以顯示發送的字形。要顯示新的數據時,單片機再發送新的字形碼。另一種方法是動態掃描顯示。動態掃描的方法是用其接口電路把所有顯示器的8個筆劃段a-h同名端連在一起,而沒一個顯示器的公共極com各自獨立地受i/o線控制。cpu向字段輸出口送出字形碼時,所有顯示器接口接收到相同的字形碼,但究竟是哪個顯示器亮,則取決于com端,而這一端
43、是有i/o控制的,由單片機決定何時顯示哪一位了。動態掃描用分時的方法輪流控制各個顯示器的com端,使各個顯示器輪流點亮。在輪流點亮掃描過程中,沒位顯示器的點亮時間極為短暫,但由于人的視覺暫留現象及發光二極管的余輝效應,給人的印象就是一組穩定的顯示數據。3靜態顯示和動態顯示的比較這兩種顯示方式各有利弊:靜態顯示雖然數據顯示穩定,占用很少的cpu時間,但每個顯示單元都需要單獨的顯示驅動電路,使用的電路硬件較多;動態顯示需要cpu時刻對顯示器進行數據刷新,顯示數據有閃爍感,占用的cpu時間多,但使用的硬件少,能節省線路板空間。在一般較為簡單的系統中,為了降低成本,動態顯示方案具備一定的實用性,也是目
44、前單片機數碼管顯示中較為常用的一種顯示方法。動態顯示法是目前各種單片計算機采用的流行方法。其優點是煙堿簡單。“動態”由軟件實現。第3章 交通信號燈的c語言編程3.1單片機的c語言程序設計 c語言程序設計是單片機開發、應用的重要趨勢之一。目前,支持硬斷點的單片機仿真器已能很好地進行c語言程序調試,為單片機編程使用c語言提供了便利條件。 編譯型程序設計語言c的優點已為大家熟知:既有多種高級語言的特點,又具備匯編語言的功能:有豐富的庫函數、運算速度快、編譯效率高、可移植性好,而且可以實現對系統硬件的直接控制;具有完善的模塊程序結構,支持廣泛采用的由頂向下結構化程序設汁,為軟件開發中采用模塊化設計方法
45、提供了有效支持;可以大大縮短目標系統軟件的開發周期,軟件的可讀件明顯增加,便于改進、擴充,研制規模更大、性能更完備的系統。3.2 c語言與mcs513.2.1 mcs51酌編程語言 支持mcs51單片機編程的語言除了前面學過的匯編語言外,還有三種:basic、pl/m和c。 basic語言簡單易學,適用于對編程效率或運行速度要求不高的場合,8052單片機片內就固化了basic語言解釋器。但是basic采用浮點運算,導致程序復雜且執行時間長,即使basic編譯器也未能解決這個問題。 pl/m可以說是“高級匯編語言”,詳細控制著代碼的生成。但對mcs-51系列,pl/m不支持復雜的算術運算和浮點變
46、量,也沒有豐富的庫函數。 用c語言進行單片機程序設計,編譯器能自動完成變量的存儲單元的分配,編程者可以專過于應用軟件的設計大大加快開發速度,可以對單片機常用的接口芯片編制通用的驅動函數,對常用的功能模塊、算法等編制相應的函數,還可以很容易地進行信號處理算法和程序的移植,有利于產品中單片機的重新選型和軟件設計水平的提高、與國外嵌入式系統的程序設計接軌。 與匯編語言相比,c語言程序在開發速度、軟件質量、結構嚴謹、程序可靠性等方面有明顯優勢。而代碼效率相對較低的缺點,對于片內rom空間16k/32k字節以上的單片機而言,已經不很重要。目前,單片機上c語言程序未經人工優化的代碼長度,已縮短到用人工方便
47、地對時間要求比較嚴格的匯編語言模塊和關鍵代碼進行優化。3.2.2 c51編譯器與程序開發過程 已經開發了各種單片機的c語言編譯器 對于并不以快速運算見長的mcs51單片機來說,其c語言編譯器(簡稱c51)的各項性能指標中,最重要的是開發便利,其次是生成代碼緊湊,以及編譯速度、是否有浮點庫和足夠的算術支持。c51程序開發過程如圖10所示:圖10 c51程序開發過程3.2.3 c51程序結構 與一般c語言相似,c51程序的基本單位是函數。函數由函數說明和函數體兩部分組成。一個c源程序至少包含個(main)也可以是一個主函數和若干其它函數。主函數是程序的入口;主函數中的所有語句執行完畢,則程序結束。
48、 c51程序的一般格式如下:類型 函數名(參數表)參數說明: 數據說明部分: 執行語句部分: 在程序中,函數有三種形態:函數定義、函數調用和函數說明。 函數定義相當于匯編中的一般子程序。 函數調用相當于調用子程序的call語句,要求有函數名和實參數表。在c中,更普遍地規定函數調用可以出現在表達式中。函數定義和函數調用不分先后,但若調用在定義之前,必須在調用前先進行函數說明。函數說明是一個沒有函數體的函數定義。 c51中函數分為兩大類:庫函數和用戶定義函數。被調用的函數可以是庫函數,也可以是用戶函數。 庫函數是c51在庫文件中已定義的函數,其函數說明在相關的頭文件中。用戶在編程時只要用inclu
49、de預處理指令將頭文件包含在用戶文件中,直接調用即可。 用戶函數是用自己定義,自己調用的一類函數。 c51程序的編制與一勝c語言行序大致相同。3.3 利用c51程序編寫延時程序為了循序漸進地學習單片機的功能,這里我們即使用了單片機中的定時器,也直接采用軟件的延時程序定時控制發光二極管的亮滅。該延時程序的時間主要是通過計算單片機執行指令所需的時間來確定的。例如,在前文中介紹過,在選擇12mhz晶振時,執行一個簡單加法指令的時間為一個指令周期,需要1/12m(秒)=1(微秒),所以程序中作1m次加法循環所需要的時間就是1秒鐘。當然,這只是一個粗略的算法,需要加上執行其他必須指令所花的時間,并且考慮
50、程序代碼的效率。但是,這不失為一種簡單的解決方案。 程序代碼void delay10ms(void) unsigned char i,j; /定義延時循環變量 for(i=20;i0;i-) for(j=248;j0;j-); /雙重循環,延時10ms3.4 信號燈亮滅的定時功能 單片機之所以在工業控制中有大量的應用,就是在于它有其獨特的定時、計數功能。在本電路中,用定時器來實現燈的閃爍功能。控制單片機i/o端口電平的高低,從而控制發光二極管的亮滅通過對p1口和p3.0、p3.1、p3.3、p3.7口的變量置1和置0,控制p1口和p3口的電平高和低。當為高電平時,發光二極管兩端壓差為零,二極管
51、不導通,燈不亮;當為低電平時,發光二極管兩端壓差為5v,二極管導通,燈亮。3.4.1 單片機的定時器mcs-51系列的單片機一般有兩個內部的16位定時器/計數器,分別稱為t0和t1。這兩個計數器分別是兩個8位的ram單元組成的,即每個計數器都是16位的計數器,最大的計數量是65536。那么這個定時/計數器是如何產生定時作用的呢?舉個例子,如果將時鐘定時到1分鐘,那么秒針計數到60次后,始終鬧鈴就會響。這里有個計數和定時之間的概念轉化,時間表示為秒針的計數值,即秒針每一次走動的時間正好是1s。單片機中的定時器和計數器是復用的,計數器是記錄外部脈沖的個數,而定時器則是由單片機提供的一個非常穩定的計
52、數源。定時器是由單片機的晶振經過12分頻后獲得的一個脈沖源。當單片機的晶振為12mhz時,計數值1代表的時間就是1us。計數器的容量是16位,也就是最大的計數值達到65536,因此計數計到65536就會產生溢出。當定時器/計數器溢出時,就會使得相關的寄存器標志產生變化,單片機將由此而產生定時中斷,在中斷服務程序中處理定時到而需要完成的任務。3.4.2 如何使用mcs-51單片機的定時器呢? 使用單片機的定時器/計數器主要和編程有關。編程中需要對兩個特殊功能寄存器進行操作。這兩個特殊功能寄存器就是tmod和tcon,又稱為定時器的控制字。 首先,介紹定時器/計數器的方式寄存器tmod。tmod是
53、一個8位的特殊功能寄存器,對應的地址為89h,不可位尋址。tmod控制字中可以完成3個功能:確定選擇定時器,還是計數器。選擇何種工作方式。是否借用外中斷控制定時器和計數器的啟停。tmod的低4位是用于控制t0的字段,高四位用于控制t1。tmod的控制字的格式和含義如表3-1所示。表3-1 tmod的控制字tmod.7tmod.6tmod.5tmod.4tmod.3tmod.2tmod.1tmod.0gatec/tm1m0gatec/tm1m0這里,以tmod的低4位來說明各位的定義和功能。gate:分為兩種情況,gate=0,定時器的起停和int1無關,在這種情況下,定時器的起停只取決于tr0
54、。gate=1時,在此種情況下定時器/計數器的開關不僅要由tr0來控制,而且還要受到int1引腳的控制,只有tr1為1,且int1引腳也是高電平,定時器才能開始工作。c/t:定時/計數器即可作定時也可用于計數。選擇何種功能,由c/t的控制字決定。如果c/t為0就用作定時器,如果c/t為1就用作計數器。當然,一個定時/計數器同一時刻要么作定時用,要么作計數用,不能同時用。m1、m0:用m1、m0來控制定時/計數器4種工作方式的選擇。工作方式0:m0=0,m1=0。13位定時/計數方式,它由tl(1/0)的低5位和th(0/1)的8位構成13位的計數器,此時tl(1/0)的高3位未用。工作方式1:
55、m0=0,m1=1。是16位的定時/計數方式,其他特性與工作方式0相同。工作方式2:m0=1,m1=0,自動重裝初值的8位定時器/計數器。初值放在t(0/1)的高8位。在工作方式2,只有低8位參與計數,而高8位不參與計數,用作預置數的存放,計數范圍256。每當計數溢出,就會打開t(0/1)的高、低8位之間的開關,計預置數進入低8位,這是由硬件自動完成的,不需要由人工干預。通常這種工作方式用于波特率發生器,用于這種用途時,定時器就是為了提供一個時間基準。計數溢出后重新裝入預置數,再開始計數,不要任何延遲。工作方式3:m0=1,m1=1。這種工作方式之下,定時/計數器0被拆成2個獨立的定時/計數器來用。其中,tl0可以構成8位的定時器或計數器的工作方式,而th0則只能作為定時器來用。一般情況下,只有在t1以上工作方式2運行(當波特率發生器用)時,才讓t0工作于方式3。接下來,介紹定時器/計數器的控制寄存器tcon。tcon是一個8位的特殊功能寄存器,對應的地址為88h,可位尋址。tcon中的低4位用于外部中斷的控制,在后文中將加以介紹,此處只對高4位的t0、t1控制字及其控制原理進行介紹。tcon控制寄存器的格式和含義如表3-2所示。表3-2 tcon控制寄存器tcon
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025下半年電新行業供給回歸有序需求韌性較好靜待周期復蘇
- 直播電商主播在2025年的粉絲互動與營銷策略研究報告
- 老年教育課程設置改革與2025年體驗式教學方法應用分析報告
- 2025年農村一二三產業融合發展的農村電商與農業品牌建設報告
- 2025年文化旅游演藝項目季節性運營與市場策略報告
- 2025年成人教育終身學習平臺運營中的品牌建設與市場推廣報告
- 汽車輕量化材料在汽車底盤減重中的技術創新報告
- 汽車行業2025年供應鏈風險管理與企業風險管理策略優化方案報告
- 汽車共享平臺2025年運營模式轉型與用戶行為重構報告
- 2025年遠程醫療服務在分級診療中的遠程醫療技術與設備研發與創新報告
- T/CIE 208-2024兒童機器人教育評價指南
- 2025年高考英語課后續寫高頻考點話題分類第07講 讀后續寫之成長類主題(講義)
- 2025年廣東中考百校聯考語文試卷 2025年廣東中考百校聯考語文試卷
- 2025年公路市場調研報告
- 五年級(下)語文選擇題專項165道
- 生物+2025云南新高考自主命題沖刺金卷及答案
- 糖尿病眼病試題及答案
- 期末模擬卷(南京專用)(含解析)2024-2025學年譯林版英語七年級下冊
- 石油化工工程防滲技術規范
- 25年企業員工崗前安全培訓考試試題【模擬題】
- 高中語文跨學科閱讀教學研究-以《紅樓夢》為例
評論
0/150
提交評論