基于STC89C52RC單片機的路燈模擬控制系統(tǒng)設計_第1頁
基于STC89C52RC單片機的路燈模擬控制系統(tǒng)設計_第2頁
基于STC89C52RC單片機的路燈模擬控制系統(tǒng)設計_第3頁
基于STC89C52RC單片機的路燈模擬控制系統(tǒng)設計_第4頁
基于STC89C52RC單片機的路燈模擬控制系統(tǒng)設計_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于stc89c52rc單片機的路燈模擬控制系統(tǒng)設計 目 錄摘要1第一章 緒論2第二章 方案設計與論證3一 外部環(huán)境明暗的檢測單元3二 路況的檢測單元3三 處理器的選擇3第三章 硬件設計4一 80c51單片機硬件結構41 微處理器42 數(shù)據(jù)存儲器43 程序存儲器44 中斷系統(tǒng)55 定時器計數(shù)器56 串行口57 特殊功能寄存器5二 最小應用系統(tǒng)設計51 時鐘電路62 復位電路63 通用的晶振電路7三 顯示電路8四 led燈電路構成9第四章 軟件設計12一 主程序設計12二 延時子程序設計14三 按鍵掃描子程序設計14四 中斷子程序設計15五 顯示子程序16六 聲光報警子程序19七 交通情況檢測子

2、程序20八 路燈控制子程序設計21參考文獻24附錄25附1元器件明細表25附2儀器設備清單25附3電路圖圖紙26附4程序清單26摘 要 stc89c52rc單片機是一款八位單片機他的易用性和多功能性受到了廣大使用者的好評本系統(tǒng)以畢業(yè)設計的題目要求為目的采用8051單片機為控制核心利用光電傳感器出檢測環(huán)境的明暗變化以及路燈的工作狀態(tài)利用對射式紅外線檢測交通的情況通過在硬件的基礎上進行編程利用軟件達到路燈模擬系統(tǒng)的支路控制器有時鐘功能能設定顯示開關燈時間并控制整條支路按時開燈和關燈支路控制器能根據(jù)環(huán)境明暗變化自動開燈和關燈支路控制器能根據(jù)交通情況自動調節(jié)亮燈狀態(tài)支路控制器能分別獨立控制每只路燈的開

3、燈和關燈時間當路燈出現(xiàn)故障時燈不亮支路控制器發(fā)出聲光報警信號并顯示有故障路燈的地址編號整個系統(tǒng)的電路結構簡單可靠性能高實驗測試結果滿足要求采用的技術主要有通過編程來路燈的狀態(tài)傳感器的有效應用新型顯示芯片的采用關鍵詞stc89c52rc單片機 光電傳感器 紅外傳感器abstract stc89c52rc monolithic integrated circuits is one of eight monolithic integrated circuits his ease and functional by the users this graduation design system to

4、the subject of the requirements for the purpose of a monolithic integrated circuits to control the 8051photo electric 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 programmingused software to the

5、 system of control is the way can set in displaying switch the light of time and control all of the road and turn 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

6、the lights and the time when the faults occur audible and visible warning signalsand that there was failure the address numbers the entire circuit of the system simple reliable performance the test results to meet the requirementskeyword stc89c52rc photo electric sensors infrared sensors第一章 緒論 隨著交通行

7、業(yè)的迅速發(fā)展與之相關的一系列智能設備的研究也就越來越受人關注本設計就是以這樣的形勢為背景提出來的以此以它作為自己的畢業(yè)設計具有很現(xiàn)實的實用意義此次的畢業(yè)設計結合現(xiàn)在社會的實際需要從而達到學以致用服務于人民的效果根據(jù)實際需要設計的路燈模擬控制系統(tǒng)應該具有支路控制器有時鐘功能能設定顯示開關燈時間并控制整條支路按時開燈和關燈支路控制器能根據(jù)環(huán)境明暗變化自動開燈和關燈支路控制器能根據(jù)交通情況自動調節(jié)亮燈狀態(tài)支路控制器能分別獨立控制每只路燈的開燈和關燈時間當路燈出現(xiàn)故障時燈不亮支路控制器發(fā)出聲光報警信號并顯示有故障路燈的地址編號根據(jù)畢業(yè)設計的題目要求現(xiàn)確定如下方案以單片機最小系統(tǒng)為控制核心然后加裝光電傳

8、感器紅外傳感實現(xiàn)對路燈的控制以及交通情況的信息采集并將測量數(shù)據(jù)傳送至單片機進行處理然后由單片機根據(jù)所檢測的各種數(shù)據(jù)實現(xiàn)對路燈的智能控制這種方案能實現(xiàn)對路燈狀態(tài)進行實時控制控制靈活可靠精度高可滿足對系統(tǒng)的各項要求本設計采用mcs-51系列中的 stc89c52rc單片機stc89c52rc是一款八位單片機它的易用性和多功能性受到了廣大使用者的好評它是第三代單片機的代表第三代單片機包括了intel公司發(fā)展mcs-51系列的新一代產品如8c152、80c51fafb、80c51gagb、8c451、8c452還包括了philips、siemens、adm、fujutsu、oki、harria-met

9、ra、atmel等公司以80c51為核心推出的大量各具特色、與80c51兼容的單片機新一代的單片機的最主要的技術特點是向外部接口電路擴展以實現(xiàn)microcomputer完善的控制功能為己任將一些外部接口功能單元如ad、pwm、pca 可編程計數(shù)器陣列 、wdt 監(jiān)視定時器 、高速io口、計數(shù)器的捕獲比較邏輯等這一代單片機中在總線方面最重要的進展是為單片機配置了芯片間的串行總線為單片機應用系統(tǒng)設計提供了更加靈活的方式philips公司還為這一代單片機80c51系列8c592單片機引入了具有較強功能的設備間網(wǎng)絡系統(tǒng)總線-can controller area network bus 本設計就采用了

10、比較先進的80c51為控制核心80c51采用choms工藝功耗很低該設計具有實際意義可以應用于考古機器人醫(yī)療器械等許多方面尤其是在足球機器人研究方面具有很好的發(fā)展前景在考古方面也應用到了超聲波傳感器進行檢測所以本設計與實際相結合現(xiàn)實意義很強第二章 方案設計與論證 根據(jù)題目的要求確定如下方案利用光電傳感器和紅外傳感器進行外部路燈狀態(tài)和交通狀態(tài)的信息收集然后將收集的數(shù)據(jù)傳送至單片機進行處理然后由單片機根據(jù)所檢測的各種數(shù)據(jù)實現(xiàn)對路燈的智能控制這種方案能實現(xiàn)對路燈的工作進行實時控制控制靈活可靠精度高可滿足對系統(tǒng)的各項要求一 外部環(huán)境明暗的檢測單元方案一采用光敏二極管感受外屆光照變化無光照時有很小的飽和

11、反向漏電流二極管截止光照時反向電流增大形成光電流方案二采用光敏電阻對光源的感應改變自身電阻由電壓比較器提取之間電壓考慮到電阻變化的靈敏度采用兩個光敏電阻串聯(lián)的方式通過改變與光敏電阻串聯(lián)的電位器的值可以調節(jié)光敏電阻的感光范圍考慮到現(xiàn)實中聲光控制技術的運用已經(jīng)證明了光敏電阻完全可以達到要求且價格便宜電路簡單綜合考慮以上方案采用光敏電阻二 路況的檢測單元 方案一采用攝像頭或探測頭收集路面上信息用這種方法對路面信息處理準確但是成本過高數(shù)據(jù)處理量大對硬軟件的要求都非常高短時間內難以實現(xiàn) 方案二使用反射式紅外二極管和接收管組成發(fā)射-接收器由于紅外光波長比可見光長因此受可見光的影響比較小同時紅外對管還具有以

12、下優(yōu)點質量輕靈敏度高線性好接口電路比較簡單安裝方便足夠滿足對本系統(tǒng)中物體檢測的要求基于以上原因選用了成本較低的方案二 三 處理器的選擇 單片機stc89c52rc作為模擬路燈控制系統(tǒng)的核心stc89c52rc 具有許多優(yōu)點ramrom空間大指令周期短運算速度快低功耗低電壓可編程音頻處理易于編程和調試本題要求支路控制器有聲光報警功能由此看來單片機stc89c52rc更具有優(yōu)越性 第三章 硬件設計 一個單片機應用系統(tǒng)的硬件電路設計包含有兩部分內容一是系統(tǒng)擴展即單片機內部的功能單元如rom、ram、io口、定時記數(shù)器、中斷系統(tǒng)等能量不能滿足應用系統(tǒng)的要求時必須在片外進行擴展選擇適當?shù)男酒O計相應的電

13、路二是系統(tǒng)配置既按照系統(tǒng)功能要求配置外圍設備如鍵盤顯示器、打印機、ad、da轉換器等要設計合適的接口電路一 80c51單片機硬件結構80c51單片機是把那些作為控制應用所必需的基本內容都集成在一個尺寸有限的集成電路芯片上2如果按功能劃分它由如下功能部件組成即微處理器數(shù)據(jù)存儲器程序存儲器并行io口串行口定時器計數(shù)器中斷系統(tǒng)及特殊功能寄存器它們都是通過片內單一總線連接而成其基本結構依舊是cpu加上外圍芯片的傳統(tǒng)結構模式但對各種功能部件的控制是采用特殊功能寄存器的集中控制方式1 微處理器該單片機中有一個8位的微處理器與通用的微處理器基本相同同樣包括了運算器和控制器兩大部分只是增加了面向控制的處理功能

14、不僅可處理數(shù)據(jù)還可以進行位變量的處理2 數(shù)據(jù)存儲器片內為128個字節(jié)片外最多可外擴至64k字節(jié)用來存儲程序在運行期間的工作變量運算的中間結果數(shù)據(jù)暫存和緩沖標志位等所以稱為數(shù)據(jù)存儲器3 程序存儲器由于受集成度限制片內只讀存儲器一般容量較小如果片內的只讀存儲器的容量不夠則需用擴展片外的只讀存儲器片外最多可外擴至64k字節(jié)4 中斷系統(tǒng)具有5個中斷源2級中斷優(yōu)先權5 定時器計數(shù)器片內有2個16位的定時器計數(shù)器 具有四種工作方式6 串行口1個全雙工的串行口具有四種工作方式可用來進行串行通訊擴展并行io口甚至與多個單片機相連構成多機系統(tǒng)從而使單片機的功能更強且應用更廣7 p1口p2口p3口p4口為4個并行

15、8位io口7 特殊功能寄存器共有21個用于對片內的個功能的部件進行管理控制監(jiān)視實際上是一些控制寄存器和狀態(tài)寄存器是一個具有特殊功能的ram區(qū)由上可見80c51單片機的硬件結構具有功能部件種類全功能強等特點特別值得一提的是該單片機cpu中的位處理器它實際上是一個完整的1位微計算機這個一位微計算機有自己的cpu位寄存器io口和指令集1位機在開關決策邏輯電路仿真過程控制方面非常有效而8位機在數(shù)據(jù)采集運算處理方面有明顯的長處mcs-51單片機中8位機和1位機的硬件資源復合在一起二者相輔相承它是單片機技術上的一個突破這也是mcs-51單片機在設計的精美之處二 最小應用系統(tǒng)設計 80c51是片內有rome

16、prom的單片機因此這種芯片構成的最小系統(tǒng)簡單、可靠用80c51單片機構成最小應用系統(tǒng)時只要將單片機接上時鐘電路和復位電路即可如圖31 80c51單片機最小系統(tǒng)所示由于集成度的限制最小應用系統(tǒng)只能用作一些小型的控制單元其應用特點有可供用戶使用的大量io口線內部存儲器容量有限應用系統(tǒng)開發(fā)具有特殊性圖1 80c51單片機最小系統(tǒng)1 時鐘電路80c51雖然有內部振蕩電路但要形成時鐘必須外部附加電路80c51單片機的時鐘產生方法有兩種內部時鐘方式和外部時鐘方式本設計采用內部時鐘方式利用芯片內部的振蕩電路在xtal1xtal2引腳上外接定時元件內部的振蕩電路便產生自激振蕩本設計采用最常用的內部時鐘方式即

17、用外接晶體和電容組成的并聯(lián)諧振回路振蕩晶體可在12mhz到12mhz之間選擇電容值無嚴格要求但電容取值對振蕩頻率輸出的穩(wěn)定性大小振蕩電路起振速度有少許影響cx1cx2可在20pf到100pf之間取值但在60pf到70pf時振蕩器有較高的頻率穩(wěn)定性所以本設計中振蕩晶體選擇6mhz電容選擇65pf在設計印刷電路板時晶體和電容應盡可能靠近單片機芯片安裝以減少寄生電容更好的保證振蕩器穩(wěn)定和可靠地工作為了提高溫度穩(wěn)定性應采用npo電容2 復位電路80c51的復位是由外部的復位電路來實現(xiàn)的復位引腳rst通過一個斯密特觸發(fā)器用來抑制噪聲在每個機器周期的s5p2斯密特觸發(fā)器的輸出電平由復位電路采樣一次然后才能

18、得到內部復位操作所需要的信號 復位電路通常采用上電自動復位和按鈕復位兩種方式最簡單的上電自動復位電路中上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的只要vcc的上升時間不超過1ms就可以實現(xiàn)自動上電復位時鐘頻率用6mhz時c取22ufr取1k除了上電復位外有時還需要按鍵手動復位本設計就是用的按鍵手動復位按鍵手動復位有電平方式和脈沖方式兩種其中電平復位是通過rst端經(jīng)電阻與電源vcc接通而實現(xiàn)的按鍵手動復位電路見圖32時鐘頻率選用6mhz時c取22ufrs取200rk取1k圖2 80c51復位電路3 通用的晶振電路單片機的晶振電路是一種典型電路分為內部時鐘方式和外部時鐘方式兩種內部時鐘方式的電

19、路如圖4所示圖3 單片機的內部晶振電路內部始終的晶振頻率一般都選擇在4mhz12mhz之間外接兩個諧振電容該電容的典型值為30pf但是在實際應用時需要根據(jù)實際起振情況選擇如果單片機的時鐘必須使用某一個外接的時鐘信號就不要外接晶振由于此時的外接晶振引腳上沒有晶振信號輸入內部的時鐘電路將停振這種方式稱為外部時鐘方式圖5給出了兩種外部時鐘的電路可以根據(jù)不同的單片機型號選擇不同的電路 hmos型單片機 chmos型單片機圖4 單片機的外部晶振電路三 顯示電路本設計中用兩片7位八段數(shù)碼管gem4561ae作顯示器并具有雙重功能在一般情況下七段數(shù)碼comcom當路燈出現(xiàn)故障時顯示故障路燈的編號本設計中采用

20、新型芯片em78p458作為顯示驅動器它的管腳如em78p458管腳介紹所示用單片機的并行口控制一個數(shù)碼顯示電路用4個口線用專用驅動芯片控制可以減少對cpu的利用時間單片機將有更多的時間去完成其他功能該芯片共有20個管腳管腳 led1、led2、led3、led4分別接10k電阻和圖5三極管后與4位八段數(shù)碼管5461中的a1、a2、a3、a4四個數(shù)位選擇端相連這四個數(shù)位選擇端用來產生led選通信號管腳a、b、c、d、e、f、g、dp分別接680歐電阻后與四位八段數(shù)碼管5461中的a、b、c、d、e、f、g、dp相連分別控制各段碼和小數(shù)點管腳d0、d1、d2、d3接單片機并行口通過對單片機對芯片

21、進行控制管腳vss串上10k電阻后與vcc管腳相接后再接5v電源管腳gnd接地該芯片所驅動的顯示電路如圖36 em78p458集成顯示電路所示顯示驅動器支持動態(tài)顯示其顯示功能如表42真值表所示0000-1001顯示從0-9數(shù)字1010是未進位時是小數(shù)點清位1011是進位后加小數(shù)點1100-1111是八段共陰數(shù)碼管的位選表1真值表d3d2d1d0顯示000000001100102001130100401015011060111710008100191010清小數(shù)點1011加小數(shù)點1100a1選通1101a2選通1110a3選通1111a4選通四 led燈電路構成 led的內在特征決定了它是最理想

22、的光源去代替?zhèn)鹘y(tǒng)的光源它有著廣泛的用途體積小 led基本上是一塊很小的晶片被封裝在環(huán)氧樹脂里面所以它非常的小非常的輕耗電量低led耗電非常低一般來說led的工作電壓是2-36v工作電流是002-003a這就是說它消耗的電不超過01w燈體內也沒有松動的部分這些特點使得led可以說是不易損壞的led路燈的電路圖如下所示圖6三端集成穩(wěn)壓電路這是一種集成電路的穩(wěn)壓電路其功能是穩(wěn)定直流輸出電壓這種集成電路只有三根引腳使用很方便在許多場合都有著廣泛應用穩(wěn)壓電路的作用是使得輸出的直流電壓在電網(wǎng)電壓或負載電流發(fā)生變化時保持穩(wěn)定它由電源變壓器整流電路濾波電路穩(wěn)壓電路等4部分組成的變壓器的作用是將交流市電變換成所

23、需要的交流電壓整流電路的作用是將交流電變換成單向脈動直流電濾波電路的作用是將脈動電壓中的脈動成分去掉圖8 第四章 軟件設計系統(tǒng)軟件設計說明在進行微機控制系統(tǒng)設計時除了系統(tǒng)硬件設計外大量的工作就是如何根據(jù)每個生產對象的實際需要設計應用程序因此軟件設計在微機控制系統(tǒng)設計中占重要地位對于本系統(tǒng)軟件更為重要在單片機控制系統(tǒng)中大體上可分為數(shù)據(jù)處理過程控制兩個基本類型數(shù)據(jù)處理包括數(shù)據(jù)的采集數(shù)字濾波標度變換等過程控制程序主要是使單片機按一定的方法進行計算然后再輸出以便控制生產為了完成上述任務在進行軟件設計時通常把整個過程分成若干個部分每一部分叫做一個模塊所謂模塊實質上就是所完成一定功能相對獨立的程序段這種程

24、序設計方法叫模塊程序設計法模塊程序設計法的主要優(yōu)點是單個模塊比起一個完整的程序易編寫及調試模塊可以共存一個模塊可以被多個任務在不同條件下調用模塊程序允許設計者分割任務和利用已有程序為設計者提供方便本系統(tǒng)軟件采用模塊化結構由主程序、延時子程序按鍵掃描子程序、中斷子程序顯示子程序、顯示子程序、外部環(huán)境檢測子程序調試子程序子程序構成一 主程序設計 路燈模擬系統(tǒng)主程序清單如下void main init8255 timer0_init dir 0 j1 0 j2 0while 1 lightcon baojing_1 baojing_2 display keyscan keydown_if envir

25、onment road_light_control 主程序流程圖如下所示圖7圖9二 延時子程序設計程序清單如下void delay 以下是一段大約6ms的延時 uchar ijk for i 1i 0i- for j 2j 0j- for k 200k 0k- void delay_1 以下是一段大約防抖的延時 uchar def for d 10d 0d- for e 10e 0e- for f 200f 0f- void delay_2 以下是聲光報警部分的延時程序 uchar iijjkk for ii 2ii 0ii- for jj 50jj 0jj- for kk 100kk 0kk

26、- 三 按鍵掃描子程序設計程序清單如下void keyscan con8255 0x89 read 8255 port c temp c8255 read 8255c low 4 key_down temp temp1 temp0x0f key ascii temp if temp1 0x0f delay if temp1 0x07 key 1delay_1 delay_1 else if temp1 0x0b key 2delay_1 delay_1 else if temp1 0x0d key 3delay_1 delay_1 temp2 temp0xf0 key ascii temp i

27、f temp2 0xf0 delay if temp2 0xe0 key 4delay_1 delay_1 else if temp2 0xd0 key 5delay_1 delay_1 else if temp2 0xb0 key 6delay_1 delay_1 else if temp2 0x70 key 7delay_1 delay_1 四 中斷子程序設計程序清單如下void timer0_init tmod 0x01 th0 65536-50000 256 tl0 65536-50000 256 ea 1 tr0 1 et0 1 void close_timer ea 0 et0 0

28、 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 second 0 minute if minute 60 minute 0 hour if hour 24 hour 0 五 顯示子程序程序清單如下void display b8255 0x40 a8255 tablesecond10 delay b8255 0x80 a8255 tablesecond10 delay b8255

29、0x10 a8255 tableminute10 delay b8255 0x20 a8255 tableminute10 delay b8255 0x04 a8255 tablehour10 delay b8255 0x08 a8255 tablehour10 delay void display_zong b8255 0x40 a8255 table0 delay b8255 0x80 a8255 table0 delay b8255 0x10 a8255 tableminute_zong10 delay b8255 0x20 a8255 tableminute_zong10 delay

30、b8255 0x04 a8255 tablehour_zong10 delay b8255 0x08 a8255 tablehour_zong10 delay void display_zong_c b8255 0x40 a8255 table0 delay b8255 0x80 a8255 table0 delay b8255 0x10 a8255 tableminute_zong_c10 delay b8255 0x20 a8255 tableminute_zong_c10 delay b8255 0x04 a8255 tablehour_zong_c10 delay b8255 0x08

31、 a8255 tablehour_zong_c10 delay void display_zhi_1 b8255 0x40 a8255 table0 delay b8255 0x80 a8255 table0 delay b8255 0x10 a8255 tableminute_zhi_110 delay b8255 0x20 a8255 tableminute_zhi_110 delay b8255 0x04 a8255 tablehour_zhi_110 delay b8255 0x08 a8255 tablehour_zhi_110 delay void display_zhi_1_c

32、b8255 0x40 a8255 table0 delay b8255 0x80 a8255 table0 delay b8255 0x10 a8255 tableminute_zhi_1_c10 delay b8255 0x20 a8255 tableminute_zhi_1_c10 delay b8255 0x04 a8255 tablehour_zhi_1_c10 delay b8255 0x08 a8255 tablehour_zhi_1_c10 delay void display_zhi_2 b8255 0x40 a8255 table0 delay b8255 0x80 a825

33、5 table0 delay b8255 0x10 a8255 tableminute_zhi_210 delay b8255 0x20 a8255 tableminute_zhi_210 delay b8255 0x04 a8255 tablehour_zhi_210 delay b8255 0x08 a8255 tablehour_zhi_210 delay void display_zhi_2_c b8255 0x40 a8255 table0 delay b8255 0x80 a8255 table0 delay b8255 0x10 a8255 tableminute_zhi_2_c

34、10 delay b8255 0x20 a8255 tableminute_zhi_2_c10 delay b8255 0x04 a8255 tablehour_zhi_2_c10 delay b8255 0x08 a8255 tablehour_zhi_2_c10 delay void display_1 b8255 0x01 a8255 table1 delay void display_2 b8255 0x02 a8255 table2 delay 六 聲光報警子程序程序清單如下void baojing_1 if int1 1 display_1 j8 0光報警程序開始位置 delay_

35、2 j8 1 delay_2 光報警程序結束位置 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 environment if txd 1 j1 1 j2 1 display keyscan k

36、eydown_if else j1 0j2 0 display keyscan keydown_if 八 路燈控制子程序設計 程序清單如下void road_light_control if hour100minute hour_zhi_1100minute_zhi_1hour100minute hour_zhi_1_c100minute_zhi_1_c display keyscan keydown_if if hour100minute hour_zhi_2100minute_zhi_2hour100minute hour_zhi_2_c100minute_zhi_2_c display

37、keyscan keydown_if else if hour100minute hour_zong100minute_zonghour100minute hour_zong_c100minute_zong_c display keyscan keydown_if 九 看門狗技術 pc受到干擾而失控引起程序亂飛也可能使程序陷入死循環(huán) 6指令技術軟件陷阱技術不能使失控的程序擺脫死循環(huán)的困境這時系統(tǒng)完全癱瘓如果操作者在場就可以按下人工復位安鈕強制系統(tǒng)復位但操作者不能一直監(jiān)視著系統(tǒng)也往往是在引起不良后果之后才進行人工復位為使程序脫離死循環(huán)通常采用看門狗技術看門狗技術就是不斷監(jiān)視程序循環(huán)運行時間若發(fā)現(xiàn)

38、時間超過已知的循環(huán)設定時間則認為系統(tǒng)陷入了死循環(huán)然后強迫程序返回到0000h入口在0000h處安排一段出錯處理程序使系統(tǒng)運行納入正規(guī)看門狗技術可由硬件實現(xiàn)可由軟件實現(xiàn)也可由兩者結合實現(xiàn)本系統(tǒng)采用硬件看門狗電路實現(xiàn)硬件看門狗電路方案較多目前采用較多的方案有以下幾種采用微處理器監(jiān)控器采用單穩(wěn)態(tài)電路來實現(xiàn)看門狗單穩(wěn)定電路可采用74ls123采用內帶震蕩器的記數(shù)芯片本設計采用第三種方案實現(xiàn)看門狗電路下面就對該方案作以介紹 1 基本原理cd4060 是帶震蕩器的14位計數(shù)器由該芯片構成的看門狗電路如圖42看門狗電路圖所示4060記數(shù)頻率由rt和ct決定設實際的程序所需工作周期為t分頻器記滿時間為t當t

39、t 且系統(tǒng)正常工作時程序每隔t對4060進行掃描一次分頻且永無記滿輸出信號如系統(tǒng)工作不正常如程序跑飛死循環(huán)等程序對4060發(fā)不出掃描信號分頻器記滿輸出一脈沖號使cpu復位 2 參數(shù)選擇4060的振蕩頻率f由 rt ct決定rs用于改善振蕩器的穩(wěn)定性rs 要大于rt一般取rs 10rt且rt 1kct100pf如果rs 450rt 45ct 1uf則f 10hz4060的振蕩頻率和qi i 678910121314 的選擇要根據(jù)情況確定 3 幾個原則看門狗電路必須由硬件邏輯組成不宜由可編程計數(shù)器充當因為cpu失控后可能會修改可編程器件參數(shù)使看門狗失效4060的rst線上阻容組成的微分電路很重要因

40、為掃描輸入信號是cpu產生的正脈沖若此信號變1后由于干擾程序亂飛微分電路只能讓上跳沿通過不會封死4060看門狗仍能計數(shù)起作用若沒有微分電路掃描輸入信號上的1狀態(tài)封死4060使之不能記數(shù)看門狗不起作用圖42看門狗電路圖cpu必須在正確完成所有工作后才能發(fā)掃描輸入信號且程序中發(fā)掃描信號的地方不能太多否則正好在哪里有死循環(huán)看門狗就不產生記滿輸出信號不能重新啟動cpu4060的記滿輸出信號不但要接到mcs-51的rst腳而且還應接到其它芯片的rst腳因為程序亂飛后其它具有rst腳的芯片也混亂了必須全部復位圖10參考文獻 信號與系統(tǒng)alan voppenheim著西安西安交通大學出版社1997年數(shù)字圖像

41、處理學元秋奇著北京電子工業(yè)出版社2000年模擬電子線路基礎吳運昌著廣州華南理工大學出版社2004年數(shù)字電子技術基礎閻石著北京高等教育出版社1997年數(shù)據(jù)結構與算法張曉麗等著北京機械工業(yè)出版社2002年armlinux嵌入式系統(tǒng)教程馬忠梅等著北京北京航空航天大學出版社2004年單片機原理及應用李建忠著西安西安電子科技大學2002年附錄附1元器件明細表d8255acstc89c52dac0832adc080974ls245附2儀器設備清單數(shù)字示波器數(shù)字萬用表 信號發(fā)生器穩(wěn)壓電源附3電路圖圖紙附4程序清單此程序是路燈模擬系統(tǒng)include include stc 應包含的頭文件include 以下是

42、對p1口的位尋址定義sbit dir p20sbit j1 p10sbit j2 p11sbit j3 p12sbit j4 p13sbit j5 p14sbit j6 p15sbit j7 p16sbit j8 p17以下是對8255的端口地址的宏定義define a8255 xbyte0x0ff7cdefine b8255 xbyte0x0ff7ddefine c8255 xbyte0x0ff7edefine con8255 xbyte0x0ff7fdefine uchar unsigned char unsignedcharcode table 0xfc0x600xda0xf20x660

43、xb60xbe0xe00xfe0xf60xee0x3e0x9c0x7a0x9e0x8e 此為自己做的板子上的數(shù)碼管顯示編碼以下是對時分秒變量的聲明int scount 0這是中斷次數(shù)的計數(shù)寄存器unsigned int second 0unsigned int minute 0unsigned int hour 0unsigned int hour_zong 7unsigned int hour_zong_c 10unsigned int minute_zong 0unsigned int minute_zong_c 0unsigned int hour_zhi_1 13unsigned in

44、t hour_zhi_1_c 16unsigned int minute_zhi_1 0unsigned int minute_zhi_1_c 0unsigned int hour_zhi_2 20unsigned int hour_zhi_2_c 22unsigned int minute_zhi_2 0unsigned char minute_zhi_2_c 0unsigned int zongunsigned int zong_kunsigned int zong_cunsigned int zhi_2unsigned int zhi_2_kunsigned char zhi_2_cun

45、signed int zhi_1unsigned int zhi_1_kunsigned int zhi_1_c以下是按鍵復用的變量的聲明unsigned char x 0unsigned char y 0unsigned char z 0按鍵掃描部分-判斷哪一個按鍵被按下unsigned char temptemp1temp2unsigned char key 0unsigned char key_down 0 unsigned char key2 0unsigned char abk以下是一段大約6ms的延時void delay uchar ijk for i 1i 0i- for j 2

46、j 0j- for k 200k 0k- 以下是一段大約防抖的延時void delay_1 uchar def for d 10d 0d- for e 10e 0e- for f 200f 0f- 以下是聲光報警部分的延時程序void delay_2 uchar iijjkk for ii 2ii 0ii- for jj 50jj 0jj- for kk 100kk 0kk- 以下是8255的初始化void init8255 con8255 0x80 c8255 0xffcolse light 以下是定時器0的初始化void timer0_init tmod 0x01 th0 65536-50

47、000 256 tl0 65536-50000 256 ea 1 tr0 1 et0 1 關閉定時器0void close_timer ea 0 et0 0 tr0 0 以下是定時器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 second 0 minute if minute 60 minute 0 hour if hour 24 hour 0 以下是定時器0

48、的數(shù)碼管顯示部分人機對話窗口void display b8255 0x40 a8255 tablesecond10 delay b8255 0x80 a8255 tablesecond10 delay b8255 0x10 a8255 tableminute10 delay b8255 0x20 a8255 tableminute10 delay b8255 0x04 a8255 tablehour10 delay b8255 0x08 a8255 tablehour10 delay void display_zong b8255 0x40 a8255 table0 delay b8255 0x80 a8255 table0 delay b8255 0x10 a8255 tableminute_zong10 delay b8255 0x20 a8255 tableminute_zong10 delay b8255 0x04 a8255 tablehour_zong10

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論