




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄摘要 . 1 第一章緒論 . 2 第二章方案設計與論證. 3 一 外部環境明暗的檢測單元 . 3 二 路況的檢測單元 . 3 三 處理器的選擇 . 3 第三章硬件設計 . 4 一 80c51 單片機硬件結構 . 4 1 微處理器 . 4 2 數據存儲器 . 4 3 程序存儲器 . 4 4 中斷系統 . 5 5 定時器 / 計數器 . 5 6 串行口 . 5 7 特殊功能寄存器 . 5 二 最小應用系統設計 . 5 1 時鐘電路 . 6 2 復位電路 . 6 3 通用的晶振電路 . 7 三 顯示電路 . 8 四 led燈電路構成 . 9 第四章軟件設計 . 12 一 主程序設計 . 12 二
2、 延時子程序設計 . 14 三 按鍵掃描子程序設計 . 14 四 中斷子程序設計 . 15 五 顯示子程序 . 16 六 聲光報警子程序 . 19 七 交通情況檢測子程序 . 20 八 路燈控制子程序設計 . 21 參考文獻 : . 24 附錄 :. 25 附 1:元器件明細表: . 25 附 2:儀器設備清單. 25 附 3:電路圖圖紙. 26 附 4:程序清單. 26 摘要 stc89c52rc 單片機是一款八位單片機, 他的易用性和多功能性受到了廣大使用者的好評 . 本系統以畢業設計的題目要求為目的,采用 8051 單片機為控制核心,利用光電傳感器出檢測環境的明暗變化以及路燈的工作狀態,
3、利用對射式紅外線檢測交通的情況, 通過在硬件的基礎上進行編程, 利用軟件達到路燈模擬系統的支路控制器有時鐘功能,能設定、顯示開關燈時間, 并控制整條支路按時開燈和關燈;支路控制器能根據環境明暗變化,自動開燈和關燈; 支路控制器能根據交通情況自動調節亮燈狀態; 支路控制器能分別獨立控制每只路燈的開燈和關燈時間 ; 當路燈出現故障時 ( 燈不亮 ) ,支路控制器發出聲光報警信號,并顯示有故障路燈的地址編號。整個系統的電路結構簡單,可靠性能高. 實驗測試結果滿足要求。采用的技術主要有:(1) 通過編程來路燈的狀態。(2) 傳感器的有效應用 ; (3) 新型顯示芯片的采用。關鍵詞: stc89c52r
4、c 單片機光電傳感器紅外傳感器abstract stc89c52rc monolithic integrated circuits is one of eight monolithic integrated circuits, his ease and functional by the users。this graduation design system to the subject of the requirements for the purpose of a monolithic integrated circuits to control the 8051,photo electr
5、ic sensors to the detection of the environment and the work of the state to shoot in the traffic in the infrared detected by the hardware on the basis of programming,used software to the system of control is the way, can set in, displaying switch the light of time, and control all of the road and tu
6、rn off the light of the turn on the light; the road to environmental change, a way to control traffic can automatically adjust the light of the state ; way to each separate independent control the lights and the time when the faults occur ;audible and visible warning signals ,and that there was fail
7、ure, the address numbers。 the entire circuit of the system simple , reliable performance. the test results to meet the requirements.本文為互聯網收集 , 請勿用作商業用途本文為互聯網收集,請勿用作商業用途 keyword: stc89c52rc photo electric sensors infrared sensors 第一章緒論隨著交通行業的迅速發展,與之相關的一系列智能設備的研究也就越來越受人關注。本設計就是以這樣的形勢為背景提出來的,以此以它作為自己的畢
8、業設計,具有很現實的實用意義。 此次的畢業設計結合現在社會的實際需要,從而達到學以致用 , 服務于人民的效果! 根據實際需要 , 設計的路燈模擬控制系統應該具有支路控制器有時鐘功能, 能設定、顯示開關燈時間 , 并控制整條支路按時開燈和關燈;支路控制器能根據環境明暗變化,自動開燈和關燈; 支路控制器能根據交通情況自動調節亮燈狀態; 支路控制器能分別獨立控制每只路燈的開燈和關燈時間;當路燈出現故障時(燈不亮) ,支路控制器發出聲光報警信號,并顯示有故障路燈的地址編號。根據畢業設計的題目要求, 現確定如下方案:以單片機最小系統為控制核心;然后加裝光電傳感器、紅外傳感、實現對路燈的控制以及交通情況的
9、信息采集,并將測量數據傳送至單片機進行處理, 然后由單片機根據所檢測的各種數據實現對路燈的智能控制 . 這種方案能實現對路燈狀態進行實時控制, 控制靈活、可靠,精度高,可滿足對系統的各項要求。本設計采用mcs-51系列中的 stc89c52rc單片機。stc89c52rc 是一款八位單片機,它的易用性和多功能性受到了廣大使用者的好評. 它是第三代單片機的代表。第三代單片機包括了intel公司發展 mcs 51 系列的新一代產品,如8c15280c51fa/fb 80c51ga/gb 8 c4518c452,還包括了philipssiemensadm fujutsu okiharria-metr
10、aatmel 等公司以 80c51為核心推出的大量各具特色與80c51兼容的單片機 . 新一代的單片機的最主要的技術特點是向外部接口電路擴展, 以實現 microcomputer 完善的控制功能為己任, 將一些外部接口功能單元如a/dpwmpca (可編程計數器陣列 )wdt(監視定時器)高速 i/o 口計數器的捕獲 / 比較邏輯等。這一代單片機中,在總線方面最重要的進展是為單片機配置了芯片間的串行總線,為單片機應用系統設計提供了更加靈活的方式 .philips公司還為這一代單片機80c51系列 8c592單片機引入了具有較強功能的設備間網絡系統總線- -can (controller are
11、a network bus ) 。本設計就采用了比較先進的80c51為控制核心, 80c51采用 choms 工藝 , 功耗很低 . 該設計具有實際意義 , 可以應用于考古、機器人、醫療器械等許多方面。尤其是在足球機器人研究方面具有很好的發展前景;在考古方面也應用到了超聲波傳感器進行檢測 . 所以本設計與實際相結合,現實意義很強。第二章方案設計與論證根據題目的要求, 確定如下方案: 利用光電傳感器和紅外傳感器進行外部路燈狀態和交通狀態的信息收集, 然后將收集的數據傳送至單片機進行處理,然后由單片機根據所檢測的各種數據實現對路燈的智能控制.這種方案能實現對路燈的工作進行實時控制,控制靈活、可靠,
12、精度高,可滿足對系統的各項要求。一 外部環境明暗的檢測單元方案一 : 采用光敏二極管感受外屆光照變化, 無光照時,有很小的飽和反向漏電流,二極管截止 ; 光照時反向電流增大,形成光電流. 方案二:采用光敏電阻對光源的感應改變自身電阻, 由電壓比較器提取之間電壓, 考慮到電阻變化的靈敏度,采用兩個光敏電阻串聯的方式,通過改變與光敏電阻串聯的電位器的值可以調節光敏電阻的感光范圍。考慮到現實中聲光控制技術的運用已經證明了光敏電阻完全可以達到要求,且價格便宜,電路簡單 . 綜合考慮以上方案采用光敏電阻。二 路況的檢測單元方案一、采用攝像頭或探測頭收集路面上信息. 用這種方法,對路面信息處理準確 , 但
13、是成本過高 , 數據處理量大, 對硬、軟件的要求都非常高, 短時間內難以實現。方案二:使用反射式紅外二極管和接收管組成發射接收器。由于紅外光波長比可見光長,因此受可見光的影響比較小,同時,紅外對管還具有以下優點:質量輕,靈敏度高 , 線性好 , 接口電路比較簡單,安裝方便, 足夠滿足對本系統中物體檢測的要求 . 基于以上原因 , 選用了成本較低的方案二。三 處理器的選擇單片機 stc89c52rc 作為模擬路燈控制系統的核心。 stc89c52rc 具有許多優點: ram ,rom 空間大、指令周期短、運算速度快、低功耗、低電壓、可編程音頻處理, 易于編程和調試。本題要求支路控制器有聲光報警功
14、能,由此看來單片機stc89c52rc更具有優越性。第三章硬件設計一個單片機應用系統的硬件電路設計包含有兩部分內容:一是系統擴展,即單片機內部的功能單元,如rom ram i/o 口定時 / 記數器中斷系統等能量不能滿足應用系統的要求時,必須在片外進行擴展, 選擇適當的芯片, 設計相應的電路。二是系統配置, 既按照系統功能要求配置外圍設備,如鍵盤顯示器打印機 a/dd/a轉換器等,要設計合適的接口電路。一 80c51 單片機硬件結構80c51 單片機是把那些作為控制應用所必需的基本內容都集成在一個尺寸有限的集成電路芯片上2。如果按功能劃分,它由如下功能部件組成, 即微處理器、數據存儲器、程序存
15、儲器、并行i/o 口、串行口、定時器 / 計數器、中斷系統及特殊功能寄存器 . 它們都是通過片內單一總線連接而成,其基本結構依舊是cpu加上外圍芯片的傳統結構模式. 但對各種功能部件的控制是采用特殊功能寄存器的集中控制方式。1 微處理器該單片機中有一個8 位的微處理器 , 與通用的微處理器基本相同, 同樣包括了運算器和控制器兩大部分, 只是增加了面向控制的處理功能, 不僅可處理數據,還可以進行位變量的處理。2 數據存儲器片內為 128 個字節,片外最多可外擴至64k 字節,用來存儲程序在運行期間的工作變量、運算的中間結果、數據暫存和緩沖、標志位等, 所以稱為數據存儲器. 3 程序存儲器由于受集
16、成度限制,片內只讀存儲器一般容量較小,如果片內的只讀存儲器的容量不夠,則需用擴展片外的只讀存儲器,片外最多可外擴至64k 字節. 4 中斷系統具有 5 個中斷源, 2 級中斷優先權。5 定時器/ 計數器片內有 2個 16 位的定時器 / 計數器,具有四種工作方式 . 6 串行口1 個全雙工的串行口, 具有四種工作方式。 可用來進行串行通訊, 擴展并行i/o 口,甚至與多個單片機相連構成多機系統,從而使單片機的功能更強且應用更廣。7 p1 口、p2口、p3口、p4口為 4 個并行 8 位 i/o 口. 7 特殊功能寄存器共有 21 個,用于對片內的個功能的部件進行管理、控制、監視. 實際上是一些
17、控制寄存器和狀態寄存器,是一個具有特殊功能的ram 區。由上可見, 80c51單片機的硬件結構具有功能部件種類全,功能強等特點。特別值得一提的是該單片機cpu中的位處理器,它實際上是一個完整的1 位微計算機,這個一位微計算機有自己的cpu 、位寄存器、 i/o 口和指令集 .1 位機在開關決策、邏輯電路仿真、過程控制方面非常有效;而8 位機在數據采集,運算處理方面有明顯的長處。 mcs-51單片機中 8 位機和 1 位機的硬件資源復合在一起,二者相輔相承, 它是單片機技術上的一個突破, 這也是 mcs 51單片機在設計的精美之處。二 最小應用系統設計 80c51是片內有 rom/eprom的單
18、片機 , 因此,這種芯片構成的最小系統簡單可靠。用 80c51單片機構成最小應用系統時, 只要將單片機接上時鐘電路和復位電路即可,如圖 3.1 80c51單片機最小系統所示。由于集成度的限制,最小應用系統只能用作一些小型的控制單元。其應用特點:(1)有可供用戶使用的大量i/o 口線. (2)內部存儲器容量有限 . (3)應用系統開發具有特殊性。圖 1 80c51 單片機最小系統1 時鐘電路80c51雖然有內部振蕩電路, 但要形成時鐘, 必須外部附加電路 .80c51 單片機的時鐘產生方法有兩種。內部時鐘方式和外部時鐘方式. 本設計采用內部時鐘方式,利用芯片內部的振蕩電路,在xtal1 、xta
19、l2引腳上外接定時元件, 內部的振蕩電路便產生自激振蕩。本設計采用最常用的內部時鐘方式,即用外接晶體和電容組成的并聯諧振回路。振蕩晶體可在1。2mhz到 12mhz 之間選擇。電容值無嚴格要求,但電容取值對振蕩頻率輸出的穩定性、大小、振蕩電路起振速度有少許影響, cx1 、cx2可在 20pf到 100pf之間取值,但在 60pf到 70pf時振蕩器有較高的頻率穩定性。所以本設計中, 振蕩晶體選擇 6mhz, 電容選擇 65pf。在設計印刷電路板時, 晶體和電容應盡可能靠近單片機芯片安裝,以減少寄生電容,更好的保證振蕩器穩定和可靠地工作。為了提高溫度穩定性,應采用npo 電容。2 復位電路80
20、c51的復位是由外部的復位電路來實現的。復位引腳 rst通過一個斯密特觸發器用來抑制噪聲, 在每個機器周期的s5p2,斯密特觸發器的輸出電平由復位電路采樣一次,然后才能得到內部復位操作所需要的信號。復位電路通常采用上電自動復位和按鈕復位兩種方式。最簡單的上電自動復位電路中上電自動復位是通過外部復位電路的電容充電來實現的。只要 vcc 的上升時間不超過1ms ,就可以實現自動上電復位。時鐘頻率用 6mhz 時 c取 22uf,r取 1k。除了上電復位外,有時還需要按鍵手動復位。本設計就是用的按鍵手動復位。按鍵手動復位有電平方式和脈沖方式兩種. 其中電平復位是通過rst端經電阻與電源vcc接通而實
21、現的。按鍵手動復位電路見圖3。 2. 時鐘頻率選用 6mhz 時,c 取 22uf,rs取 200,rk取 1k.圖 2 80c51 復位電路3 通用的晶振電路單片機的晶振電路是一種典型電路,分為內部時鐘方式和外部時鐘方式兩種。內部時鐘方式的電路如圖4 所示。圖 3 單片機的內部晶振電路內部始終的晶振頻率一般都選擇在4mhz12mhz 之間,外接兩個諧振電容。該電容的典型值為30pf ,但是在實際應用時,需要根據實際起振情況選擇. 如果單片機的時鐘必須使用某一個外接的時鐘信號,就不要外接晶振. 由于此時的外接晶振引腳上沒有晶振信號輸入,內部的時鐘電路將停振. 這種方式稱為外部時鐘方式。 圖 5
22、 給出了兩種外部時鐘的電路, 可以根據不同的單片機型號選擇不同的電路。 hmos型單片機 chmos型單片機圖 4 單片機的外部晶振電路三 顯示電路本設計中用兩片 7 位八段數碼管 gem4561ae作顯示器,并具有雙重功能,在一般情況下,七段數碼管進行年。月。日,時。分。秒的顯示,當路燈出現故障時,顯示故障路燈的編號。本設計中采用新型芯片em78p458 作為顯示驅動器,它的管腳如em78p458管腳介紹所示, 用單片機的并行口控制, 一個數碼顯示電路用4 個口線,用專用驅動芯片控制可以減少對cpu 的利用時間,單片機將有更多的時間去完成其他功能. 該芯片共有 20 個管腳,管腳 led1l
23、ed2 led3 led4分別接 10k 電阻和圖 5 三極管后與 4 位八段數碼管5461 中的 a1a2a3a4 四個數位選擇端相led31led42a3b4gnd5c6d7e8f9g10dp11d012d113d214d315vcc161775vss18led119led220em78p458連, 這四個數位選擇端用來產生led選通信號。管腳 abcdef gdp 分別接680 歐電阻后與四位八段數碼管5461中的 abcdef gdp 相連,分別控制各段碼和小數點. 管腳 d0d1d2d3 接單片機并行口,通過對單片機對芯片進行控制。管腳 vss 串上 10k 電阻后與 vcc 管腳相
24、接后再接 +5v電源, 管腳 gnd接地. 該芯片所驅動的顯示電路如圖3。6 em78p458集成顯示電路所示顯示驅動器支持動態顯示,其顯示功能如表4.2 真值表所示, 0000-1001 顯示從 0-9 數字, 1010 是未進位時是小數點清位 ,1011 是進位后加小數點, 11001111是八段共陰數碼管的位選。表 1 真值表四 led 燈電路構成 led的內在特征決定了它是最理想的光源去代替傳統的光源,它有著廣泛的用途。體積小,led 基本上是一塊很小的晶片被封裝在環氧樹脂里面,所以它非常的小, 非常的輕。 耗電量低 ,led耗電非常低, 一般來說 led的工作電壓是 23。6v。工作
25、電流是 0。020。03a。這就是說:它消耗的電不超過0.1w.燈體內也沒有松動的部分,這些特點使得led可以說是不易損壞的 . d3 d2 d1 d0 顯示0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7 1 0 0 0 8 1 0 0 1 9 1 0 1 0 清小數點1 0 1 1 加小數點1 1 0 0 a1選通1 1 0 1 a2選通1 1 1 0 a3選通1 1 1 1 a4選通led路燈的電路圖如下所示:圖 6 五 蜂鳴器發生及led指示燈電路蜂鳴器是一種一體化結構的電子訊
26、響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中作發聲器件。;蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。而我們用的是壓電式蜂鳴器, 圖如上所示,當我們是pnp 三極管工作在飽和狀態時,三極管輸出低電平, 反之三級管輸出高電平, 使得蜂鳴器發出聲音。圖 7 六 直流穩壓電路三端集成穩壓電路,這是一種集成電路的穩壓電路,其功能是穩定直流輸出電壓。這種集成電路只有三根引腳, 使用很方便,在許多場合都有著廣泛應用。穩壓電路的作用是使得輸出的直流電壓在電網電壓或負載電流發生變化時保持穩定. 它由電源變壓器、整流電路、濾波電路、穩
27、壓電路等4部分組成的。變壓器的作用是將交流市電變換成所需要的交流電壓; 整流電路的作用是將交流電變換成單向脈動直流電; 濾波電路的作用是將脈動電壓中的脈動成分去掉,輸出比較平滑的直流電壓;穩壓電路的作用是使得輸出的直流電壓在電網電壓或負載電流發生變化時保持穩定圖 8第四章軟件設計系統軟件設計說明:在進行微機控制系統設計時, 除了系統硬件設計外, 大量的工作就是如何根據每個生產對象的實際需要設計應用程序。因此, 軟件設計在微機控制系統設計中占重要地位 . 對于本系統,軟件更為重要。在單片機控制系統中 , 大體上可分為數據處理、過程控制兩個基本類型。數據處理包括 : 數據的采集、數字濾波、標度變換
28、等 . 過程控制程序主要是使單片機按一定的方法進行計算,然后再輸出,以便控制生產。為了完成上述任務 , 在進行軟件設計時,通常把整個過程分成若干個部分,每一部分叫做一個模塊。所謂“模塊 ,實質上就是所完成一定功能,相對獨立的程序段,這種程序設計方法叫模塊程序設計法。模塊程序設計法的主要優點是: 1、 單個模塊比起一個完整的程序易編寫及調試; 2、 模塊可以共存 , 一個模塊可以被多個任務在不同條件下調用;3、 模塊程序允許設計者分割任務和利用已有程序,為設計者提供方便. 本系統軟件采用模塊化結構, 由主程序延時子程序、按鍵掃描子程序中斷子程序顯示子程序顯示子程序外部環境檢測子程序,調試子程序子
29、程序構成。一 主程序設計路燈模擬系統主程序清單如下:void main () init8255(); timer0_init(); dir=0; j1=0; j2=0; while(1) lightcon(); baojing_1() ;baojing_2( ) ; display() ;keyscan(); keydown_if(); environment(); road_light_control() ; 主程序流程圖如下所示:圖 7圖 9 開始結束程序初始化判斷按鍵是否按下程序模塊按鍵掃描程序模塊系統顯示模塊聲光報警2 程序模塊聲光報警1 程序模塊執行路燈控制程序模塊外部環境檢測程序模
30、塊路燈及其指示燈選擇程序模塊二 延時子程序設計程序清單如下 : void delay()/ 以下是一段大約 6ms的延時 uchar i,j,k; for(i=1;i0;i) for(j=2 ;j 0;j - ) for(k=200;k0;k-) ; void delay_1()/以下是一段大約防抖的延時 uchar d,e,f; for(d=10;d0;d- ) for(e=10;e0;e- ) for(f=200;f0;f -) ; void delay_2()/ 以下是聲光報警部分的延時程序 uchar ii,jj,kk; for(ii=2;ii0;ii - ) for(jj=50 ;j
31、j0;jj-) for(kk=100;kk0;kk ) ; 三 按鍵掃描子程序設計程序清單如下:void keyscan() con8255=0 x89; /read 8255 port c temp=c8255; /read 8255c low 4 key_down=temp; temp1=temp 0 x0f ; /key ascii=temp if(temp1!=0 x0f) delay(); if(temp1=0 x07) key=1,delay_1 () ,delay_1() ; else if(temp1=0 x0b) key=2 ,delay_1 () ,delay_1 ();
32、else if(temp1=0 x0d) key=3,delay_1(),delay_1() ; temp2=temp&0 xf0; /key ascii=temp if(temp2!=0 xf0) delay(); if(temp2=0 xe0) key=4,delay_1 (),delay_1 () ; else if(temp2=0 xd0) key=5,delay_1 (),delay_1 (); else if(temp2=0 xb0) key=6,delay_1 (),delay_1(); else if(temp2=0 x70 ) key=7,delay_1 () ,de
33、lay_1 (); 四 中斷子程序設計程序清單如下:void timer0_init() tmod=0x01 ; th0=(6553650000)/256; tl0=(6553650000)%256; ea=1; tr0=1; et0=1;void close_timer() ea=0; et0=0 ; tr0=0 ; void timer0(void) interrupt 1 using 1 th0=(65536-50000)/256; tl0=(65536-50000)256; scount+; if(scount=20) scount=0; second+; if(second=60)
34、second=0; minute+; if(minute=60) minute=0; hour+; if(hour=24) hour=0; 五 顯示子程序程序清單如下 : void display() b8255=0 x40; a8255=table second/10; delay(); b8255=0 x80; a8255=table second10; delay(); b8255=0 x10; a8255=table minute/10 ; delay(); b8255=0 x20; a8255=tableminute10 ; delay( ); b8255=0 x04; a8255=
35、tablehour/10; delay (); b8255=0 x08; a8255=table hour%10; delay( ) ;void display_zong() b8255=0 x40; a8255=table 0 ; delay(); b8255=0 x80; a8255=table0 ; delay (); b8255=0 x10; a8255=table minute_zong/10 ; delay(); b8255=0 x20; a8255=table minute_zong10; delay( ); b8255=0 x04; a8255=tablehour_zong/1
36、0; delay(); b8255=0 x08; a8255=tablehour_zong%10; delay (); void display_zong_c() b8255=0 x40; a8255=table0 ; delay () ; b8255=0 x80; a8255=table0; delay(); b8255=0 x10; a8255=tableminute_zong_c/10; delay(); b8255=0 x20; a8255=tableminute_zong_c%10 ; delay (); b8255=0 x04; a8255=tablehour_zong_c/10
37、; delay(); b8255=0 x08; a8255=tablehour_zong_c10 ; delay(); void display_zhi_1() b8255=0 x40; a8255=table0 ; delay( ); b8255=0 x80; a8255=table 0 ; delay (); b8255=0 x10; a8255=table minute_zhi_1/10; delay () ; b8255=0 x20; a8255=table minute_zhi_1%10 ; delay (); b8255=0 x04; a8255=table hour_zhi_1/
38、10 ; delay(); b8255=0 x08; a8255=tablehour_zhi_1%10; delay(); void display_zhi_1_c() b8255=0 x40; a8255=table0; delay(); b8255=0 x80; a8255=table0; delay () ; b8255=0 x10; a8255=table minute_zhi_1_c/10; delay( ); b8255=0 x20; a8255=table minute_zhi_1_c%10 ; delay(); b8255=0 x04; a8255=tablehour_zhi_
39、1_c/10 ; delay () ; b8255=0 x08; a8255=table hour_zhi_1_c 10 ; delay( ) ;void display_zhi_2() b8255=0 x40; a8255=table0; delay (); b8255=0 x80; a8255=table0; delay (); b8255=0 x10; a8255=tableminute_zhi_2/10 ; delay (); b8255=0 x20; a8255=table minute_zhi_2 10; delay( ) ; b8255=0 x04; a8255=table ho
40、ur_zhi_2/10 ; delay (); b8255=0 x08; a8255=table hour_zhi_2%10; delay () ;void display_zhi_2_c() b8255=0 x40; a8255=table0 ; delay (); b8255=0 x80; a8255=table 0; delay( ); b8255=0 x10; a8255=tableminute_zhi_2_c/10; delay (); b8255=0 x20; a8255=table minute_zhi_2_c 10; delay( ) ; b8255=0 x04; a8255=
41、table hour_zhi_2_c/10 ; delay(); b8255=0 x08; a8255=tablehour_zhi_2_c%10; delay (); void display_1() b8255=0 x01; a8255=table 1 ; delay () ; void display_2() b8255=0 x02; a8255=table2; delay( ) ; 六 聲光報警子程序程序清單如下 : void baojing_1() if(int1=1) display_1(); j8=0 ;/ 光報警程序開始位置 delay_2() ; j8=1; delay_2()
42、;/ 光報警程序結束位置 j3=1 ;/ 聲音報警指令 else if(int1=0) display(); keyscan(); keydown_if(); j8=0; j3=0 ; void baojing_2() if(rxd=1) display_2(); j8=0 ;/ 光報警程序開始位置 delay_2(); j8=1; delay_2() ;/ 光報警程序結束位置 j3=1;/聲音報警指令 else if(rxd=0) display(); keyscan(); keydown_if() ; j8=0; j3=0 ; 七 交通情況檢測子程序程序清單如下:void environm
43、ent() if(txd=1) j1=1; j2=1; display(); keyscan(); keydown_if(); else j1=0;j2=0; display() ; keyscan() ; keydown_if(); 八 路燈控制子程序設計程序清單如下 : void road_light_control() if(hour100+minute=hour_zhi_1_c*100+minute_zhi_1_c) display(); keyscan(); keydown_if() ; if(hour*100+minute=hour_zhi_2*100+minute_zhi_2&a
44、mp;hour*100+minute=hour_zhi_2_c*100+minute_zhi_2_c) display(); keyscan( ) ; keydown_if(); else if ( hour*100+minute=hour_zong_c100+minute_zong_c) display() ; keyscan (); keydown_if (); 九 “看門狗”技術pc 受到干擾而失控,引起程序亂飛,也可能使程序陷入“死循環”6. 指令技術、軟件陷阱技術不能使失控的程序擺脫“死循環”的困境,這時系統完全癱瘓. 如果操作者在場,就可以按下人工復位安鈕, 強制系統復位 . 但操
45、作者不能一直監視著系統, 也往往是在引起不良后果之后才進行人工復位。為使程序脫離“死循環”,通常采用“看門狗技術” .“看門狗”技術就是不斷監視程序循環運行時間,若發現時間超過已知的循環設定時間,則認為系統陷入了“死循環”,然后強迫程序返回到0000h入口, 在 0000h處安排一段出錯處理程序,使系統運行納入正規。“看門狗”技術可由硬件實現, 可由軟件實現 , 也可由兩者結合實現 . 本系統采用硬件“看門狗”電路. 實現硬件“看門狗”電路方案較多,目前采用較多的方案有以下幾種: 1、采用微處理器監控器;2、采用單穩態電路來實現“看門狗” ,單穩定電路可采用74ls123 ;3、采用內帶震蕩器
46、的記數芯片。本設計采用第三種方案實現“看門狗”電路,下面就對該方案作以介紹. (1) 基本原理cd4060 是帶震蕩器的 14 位計數器,由該芯片構成的看門狗電路如圖4。2看門狗電路圖所示 . 4060記數頻率由 rt和 ct決定。設實際的程序所需工作周期為t,分頻器記滿時間為 t,當 tt 且系統正常工作時 , 程序每隔 t 對 4060 進行掃描一次,分頻且永無記滿輸出信號. 如系統工作不正常 (如程序跑飛、 死循環等),程序對4060發不出掃描信號,分頻器記滿輸出一脈沖號使cpu 復位。(2 )參數選擇4060的振蕩頻率 f 由 rt、ct決定。rs用于改善振蕩器的穩定性, rs要大于r
47、t。一般取 rs=10rt,且 rt1k,ct100pf.如果 rs=450,rt=45,ct=1uf,則f=10hz。4060 的振蕩頻率和 qi(i=6,7 ,8,9,10,12,13,14)的選擇要根據情況確定。(3)幾個原則看門狗電路必須由硬件邏輯組成,不宜由可編程計數器充當, 因為 cpu 失控后,可能會修改可編程器件參數,使看門狗失效。4060的 rst線上阻容組成的微分電路很重要,因為掃描輸入信號是cpu 產生的正脈沖 , 若此信號變“1”后,由于干擾,程序亂飛,微分電路只能讓上跳沿通過,不會封死 4060, 看門狗仍能計數起作用 . 若沒有微分電路,掃描輸入信號上的 “1狀態封
48、死 4060,使之不能記數,看門狗不起作用圖 4。2 看門狗電路圖cpu 必須在正確完成所有工作后才能發掃描輸入信號,且程序中發掃描信號的地方不能太多。否則 , 正好在哪里有死循環,看門狗就不產生記滿輸出信號,不能重新啟動 cpu 。4060的記滿輸出信號不但要接到mcs 51的 rst腳, 而且還應接到其它芯片的 rst腳,因為程序亂飛后,其它具有rst腳的芯片也混亂了,必須全部復位。圖 10參考文獻:信號與系統 ,alan v 。 oppenheim 著,西安:西安交通大學出版社,1997 年;數字圖像處理學 ,元秋奇著,北京:電子工業出版社,2000 年;模擬電子線路基礎, 吳運昌著 ,
49、 廣州:華南理工大學出版社,2004 年;數字電子技術基礎 ,閻石著,北京:高等教育出版社,1997 年;數據結構與算法 ,張曉麗等著,北京:機械工業出版社,2002 年;arm&linux嵌入式系統教程 ,馬忠梅等著,北京:北京航空航天大學出版社,2004 年;單片機原理及應用 ,李建忠著,西安: 西安電子科技大學,2002 年;附錄:附 1:元器件明細表:1、d8255ac 2、stc89c52 3、dac0832 4、adc0809 5、74ls245 附 2:儀器設備清單1、數字示波器2、數字萬用表3、信號發生器4、穩壓電源附 3:電路圖圖紙附 4:程序清單/ * * * *
50、* * * * * * * * * *此程序是路燈模擬系統* * * * * * * * * * */ includereg52.hincludeabsacc 。h/stc 應包含的頭文件include / * * * * * * *以下是對 p1 口的位尋址定義 * * * * / sbit dir=p20 ;sbit j1=p10 ;sbit j2=p11 ;sbit j3=p12 ;sbit j4=p13 ;sbit j5=p14; sbit j6=p15 ;sbit j7=p16; sbit j8=p17; / * * * * * * 以下是對 8255 的端口地址的宏定義 * * *
51、 * * * * * */ define a8255 xbyte0x0ff7c define b8255 xbyte0x0ff7d define c8255 xbyte0x0ff7e define con8255 xbyte 0x0ff7f define uchar unsigned char unsignedcharcode table=0 xfc,0 x60,0 xda ,0 xf2,0 x66 ,0 xb6,0 xbe,0 xe0,0 xfe ,0 xf6,0 xee,0 x3e ,0 x9c,0 x7a,0 x9e ,0 x8e;/此為自己做的板子上的數碼管顯示編碼/* * * *以下
52、是對時分秒變量的聲明* * * * / int scount=0;/ 這是中斷次數的計數寄存器unsigned int second=0;unsigned int minute=0;unsigned int hour=0;unsigned int hour_zong=7;unsigned int hour_zong_c=10; unsigned int minute_zong=0; unsigned int minute_zong_c=0; unsigned int hour_zhi_1=13; unsigned int hour_zhi_1_c=16; unsigned int minute
53、_zhi_1=0;unsigned int minute_zhi_1_c=0; unsigned int hour_zhi_2=20;unsigned int hour_zhi_2_c=22;unsigned int minute_zhi_2=0; unsigned char minute_zhi_2_c=0; unsigned int zong; unsigned int zong_k;unsigned int zong_c;unsigned int zhi_2;unsigned int zhi_2_k; unsigned char zhi_2_c;unsigned int zhi_1;un
54、signed int zhi_1_k;unsigned int zhi_1_c; / * * * * * * 以下是按鍵復用的變量的聲明* * * * */ unsigned char x=0; unsigned char y=0; unsigned char z=0; / * * * * * * *按鍵掃描部分判斷哪一個按鍵被按下* * * * */ unsigned char temp,temp1,temp2;unsigned char key=0; unsigned char key_down=0; unsigned char key2=0; unsigned char a,b,k; /
55、 * * * * * *以下是一段大約 6ms的延時 * * * */ void delay() uchar i,j,k; for(i=1;i 0;i -) for(j=2;j0;j - ) for(k=200;k0;k- ) ;/* * * * * *以下是一段大約防抖的延時* * * * * * / void delay_1() uchar d,e,f ; for(d=10;d0;d- ) for(e=10;e0;e) for(f=200;f 0;f- ) ;/* * * * * * * * 以下是聲光報警部分的延時程序* * * * * * */ void delay_2() uchar
56、 ii,jj,kk; for(ii=2;ii0;ii-) for(jj=50;jj0;jj -) for(kk=100;kk0;kk-) ;/ * * * * * *以下是 8255 的初始化 * * * * * * * */ void init8255() con8255=0 x80; c8255=0 xff;/colse light /* * * * * 以下是定時器 0 的初始化 * * * * * * * / void timer0_init() tmod=0x01; th0=(6553650000)/256; tl0=(65536-50000)%256 ; ea=1; tr0=1;
57、et0=1; /* * * * * * *關閉定時器 0 * * * * * * * * / void close_timer() ea=0 ; et0=0 ; tr0=0; / * * * * * * * *以下是定時器 0 的定時部分也是中斷服務子程序* * * * * * * * * * * / void timer0(void ) interrupt 1 using 1 th0=(6553650000)/256 ; tl0=(65536-50000)256; scount+; if(scount=20) scount=0; second+; if(second=60) second=0
58、; minute+; if(minute=60) minute=0; hour+; if(hour=24) hour=0; *以下是定時器0 的數碼管顯示部分,人機對話窗口* void display() b8255=0 x40; a8255=table second/10; delay(); b8255=0 x80; a8255=tablesecond%10 ; delay () ; b8255=0 x10; a8255=tableminute/10; delay (); b8255=0 x20; a8255=table minute10 ; delay (); b8255=0 x04; a
59、8255=tablehour/10 ; delay(); b8255=0 x08; a8255=tablehour%10; delay( ) ;void display_zong() b8255=0 x40; a8255=table0; delay(); b8255=0 x80; a8255=table0; delay () ; b8255=0 x10; a8255=tableminute_zong/10; delay () ; b8255=0 x20; a8255=table minute_zong%10 ; delay( ); b8255=0 x04; a8255=table hour_z
60、ong/10 ; delay (); b8255=0 x08; a8255=table hour_zong10 ; delay();void display_zong_c() b8255=0 x40; a8255=table 0; delay( ) ; b8255=0 x80; a8255=table 0 ; delay (); b8255=0 x10; a8255=table minute_zong_c/10; delay( ); b8255=0 x20; a8255=table minute_zong_c10 ; delay( ); b8255=0 x04; a8255=tablehour_zong_c/10; del
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025企業行政人員聘用合同樣本
- 2025年門面房的買賣合同
- 2025新產品責任險保險合同
- 模具設計師資格認證考試萬無一失試題及答案
- 2024年農作物種子繁育員考試的閉卷復習試題及答案
- 2024模具設計師考試模擬試題及答案
- 2024年農業植保員考試解析與試題及答案
- 準備2024年游泳救生員考試的資料與試題及答案
- 2024年體育經紀人考試工具手冊試題及答案
- 2024年職業能力測試體育經紀人試題及答案
- 《客艙安全與應急處置》-課件:顛簸處置程序
- 第5課南亞東亞與美洲的文化課件-高中歷史選擇性必修3
- (2024年)智慧工地系統介紹課件pptx
- 《奈奎斯特準則》課件
- 操作劇院燈光音響的工作手冊
- 2023-2024學年人教版七年級數學下冊第8章《二元一次方程組》單元同步測試卷
- 福利院消防安全知識培訓
- 滅火器材和使用技巧
- 腹針療法完整
- 人工智能在市場營銷中的應用與前景展望
- 【試卷】-《新能源汽車整車控制系統檢修》課程考試試卷(閉卷)A卷
評論
0/150
提交評論