智能小區(qū)安防系統(tǒng)畢業(yè)設(shè)計(jì)論文_第1頁
已閱讀1頁,還剩52頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  引言</b></p><p>  中國安居工程需要大力發(fā)展安全文明小區(qū)建設(shè),嚴(yán)峻的社會治安形勢,需要建立并完善安全文明小區(qū)防盜報(bào)警網(wǎng)絡(luò)系統(tǒng)體系。如何解決在當(dāng)前每個家庭經(jīng)濟(jì)承受能力有限的情況下,建設(shè)滿足防范功能及可靠性需求的安全文明小區(qū)防范防盜報(bào)警網(wǎng)絡(luò)系統(tǒng),是當(dāng)前急需解決的課題。本方案是在考慮以上因素的基礎(chǔ)上,所設(shè)計(jì)的可行實(shí)施方案。</p><

2、p>  小區(qū)安全防范報(bào)警系統(tǒng)是智能小區(qū)實(shí)現(xiàn)安全管理的重要系統(tǒng),主要包括防盜報(bào)警、煤氣泄漏報(bào)警、消防報(bào)警等。小區(qū)管理極為重要的內(nèi)容是確保住宅,住戶安全,生活中,人人都可能出現(xiàn)一些意想不到的求助情況,現(xiàn)代居住的格局,鄰里常年不來往已是常事,家庭生活穩(wěn)密性、封閉,性越來越強(qiáng)。因此,小區(qū)安全防范及報(bào)警系統(tǒng)是具有先進(jìn)的設(shè)計(jì)和設(shè)備,并為小區(qū)住戶的安全提供保障的必要系統(tǒng)。</p><p>  我國的安防自動報(bào)警控制系

3、統(tǒng)經(jīng)歷了從無到有、從簡單到復(fù)雜的發(fā)展過程,其智能化程度也越來越高。在小區(qū)內(nèi)的每個住戶單元安裝一臺報(bào)警主機(jī),住戶可選擇安裝在住戶門口、窗戶處安裝聲檢、緊急求助,煙霧/煤氣探頭、瓦斯探頭,等報(bào)警感知設(shè)備,報(bào)警主機(jī)通過總線與管理中心的電腦想連接,進(jìn)行安防信息管理。如果發(fā)生盜賊闖入、搶劫、煙霧、燃汽泄露,聲音過高等緊急事故,傳感器就會立即獲知并由報(bào)警系統(tǒng)即刻觸發(fā)聲光警報(bào)以有效恫嚇企圖行竊的盜賊;系統(tǒng)還會迅速向報(bào)警中心傳送報(bào)警信息;報(bào)警中心接到警

4、情后立即自動進(jìn)行分辨處理,迅速識別判定警報(bào)類型、地點(diǎn)、用戶,中心據(jù)此派出機(jī)動力量采取相應(yīng)解救措施;系統(tǒng)具備24小時(shí)防破壞等并自我監(jiān)視,一旦有任何被破壞的跡象也會即刻報(bào)警??傊?,無論白天黑夜,你離家在外還是在家休息,電子保安時(shí)時(shí)刻刻保護(hù)的安全,這正是能為家人、家庭、財(cái)產(chǎn)所做的最有效的安全防盜保護(hù)措施。</p><p><b>  1 總體設(shè)計(jì)</b></p><p>

5、<b>  1.1 設(shè)計(jì)背景</b></p><p>  在當(dāng)今高速發(fā)展的社會中,人們對自身所處的環(huán)境越來越關(guān)心,居家安全已成為當(dāng)今小康之家優(yōu)先考慮的問題。當(dāng)上班家中無人,或者僅有老人孩子在家,或晚上在家熟睡,都必須確保家庭成員和財(cái)產(chǎn)的絕對安全。</p><p>  中國安居工程需要大力發(fā)展安全文明小區(qū)建設(shè),嚴(yán)峻的社會治安形勢,需要建立并完善安全文明小區(qū)防盜報(bào)警網(wǎng)絡(luò)系

6、統(tǒng)體系。如何解決在當(dāng)前每個家庭經(jīng)濟(jì)承受能力有限的情況下,建設(shè)滿足防范功能及可靠性需求的安全文明小區(qū)防范防盜報(bào)警網(wǎng)絡(luò)系統(tǒng),是當(dāng)前急需解決的課題。本方案是在考慮以上因素的基礎(chǔ)上,所設(shè)計(jì)的可行實(shí)施方案。一、住宅小區(qū)防盜報(bào)警系統(tǒng)要求 當(dāng)前,隨著經(jīng)濟(jì)的發(fā)展,人民的生活日益改善,人們對家庭生命財(cái)產(chǎn)安全越來越重視,采取了許多措施來保護(hù)家庭的安全。以往的做法是安裝防盜門、防盜網(wǎng),但也存在有礙美觀,不符合防火要求,不能有效地防止壞人的入侵。現(xiàn)在,全國各地

7、都在如火如荼地開展建設(shè)安全文明小區(qū)的活動,而且很多地方都提出取消防盜網(wǎng)的口號,家庭電子防盜報(bào)警系統(tǒng)也就應(yīng)運(yùn)而生。因?yàn)榇蠖鄶?shù)家庭都是雙職工,白天家里通常沒有人,發(fā)生報(bào)警后,必須要有專人來處理,因此,必須設(shè)立報(bào)警中心。而且因?yàn)閲鴥?nèi)住宅區(qū)大多數(shù)是密集型分布,一個住宅區(qū)往往有幾百上千戶,并且都有自身的保安隊(duì)伍,因此當(dāng)用戶防盜報(bào)警系統(tǒng)報(bào)警時(shí),除了在現(xiàn)場報(bào)警外,還需要向當(dāng)?shù)嘏沙鏊蚬卜志诌M(jìn)行報(bào)警聯(lián)網(wǎng)外,也需要向住宅小區(qū)的保安中心進(jìn)行聯(lián)網(wǎng)報(bào)警,以便

8、警情得到迅速處理。</p><p><b>  1.2 設(shè)計(jì)思想</b></p><p>  在小區(qū)內(nèi)的每個住戶單元安裝一臺報(bào)警主機(jī),住戶可選擇安裝在住戶門口、窗戶處安裝聲檢、緊急求助,煙霧/煤氣探頭、瓦斯探頭,病毒檢測器,防盜報(bào)警器等報(bào)警感知設(shè)備,報(bào)警主機(jī)通過總線與管理中心的電腦想連接,進(jìn)行安防信息管理,本系統(tǒng)具有遠(yuǎn)程報(bào)警功能。如果發(fā)生盜賊闖入、搶劫、煙霧、燃汽泄露

9、,聲音過高等緊急事故,傳感器就會立即獲知并由報(bào)警系統(tǒng)即刻觸發(fā)聲光警報(bào)以有效恫嚇企圖行竊的盜賊;系統(tǒng)還會迅速向報(bào)警中心傳送報(bào)警信息;報(bào)警中心接到警情后立即自動進(jìn)行分辨處理,迅速識別判定警報(bào)類型、地點(diǎn)、用戶,中心據(jù)此派出機(jī)動力量采取相應(yīng)解救措施;系統(tǒng)具備24小時(shí)防破壞等并自我監(jiān)視,一旦有任何被破壞的跡象也會即刻報(bào)警。總之,無論白天黑夜,你離家在外還是在家休息,電子保安時(shí)時(shí)刻刻保護(hù)的安全,這正是能為家人、家庭、財(cái)產(chǎn)所做的最有效的安全防盜保護(hù)措

10、施。</p><p><b>  1.3 系統(tǒng)功能</b></p><p>  設(shè)計(jì)具有防盜并且兼有防火,防煤氣,防盜毒等功能的小區(qū)防盜報(bào)警系統(tǒng),無疑可以使家庭保安自動化。系統(tǒng)采用體積小巧,功能強(qiáng)大,價(jià)格便宜的單片微型計(jì)算機(jī)作為居民家庭第一監(jiān)視端,與單片機(jī)連接各種用于家庭安保的傳感器作為收集信號并送給單片機(jī)初步處理,單片機(jī)實(shí)時(shí)與遠(yuǎn)方主監(jiān)控計(jì)算機(jī)通信,將從傳感器接受來的

11、信號實(shí)時(shí)傳給主機(jī),主機(jī)端就可以知道小區(qū)各個居民家庭的異常情況,從而進(jìn)行實(shí)時(shí)處理。系統(tǒng)利用CAN總線傳輸信息,提高了可靠性,操作更方便,在工程實(shí)際中有廣泛的應(yīng)用,因而具有良好的應(yīng)用前景和工程推廣價(jià)值。</p><p>  該系統(tǒng)運(yùn)用了了單片機(jī)AT89C51, CAN總線的主要特性和功能,將主從式微機(jī)通信運(yùn)用于今天的生活,體現(xiàn)了自動化的發(fā)展前景一片光明。對于應(yīng)用區(qū)域:</p><p>  每個

12、家庭可實(shí)現(xiàn):家中無人時(shí),如上班了,可把家庭報(bào)警系統(tǒng)設(shè)置在外出布防狀態(tài),使所有的探測器都工作起來。當(dāng)竊賊試圖破門而入或從陽臺闖入,被動紅外探測器探測到動作,警號發(fā)聲,并且保安中心立刻接收到警情,接著在數(shù)秒后公安局報(bào)警中心也會收到報(bào)警信號。家中有人時(shí),如睡覺時(shí),把系統(tǒng)設(shè)置在留守布防狀態(tài),當(dāng)竊賊企圖從大門闖入時(shí),立刻動作發(fā)出警報(bào);如果主人有緊急情況,如急病或受到挾持時(shí),可按動鍵盤上的緊急按鈕發(fā)出警報(bào)。</p><p>

13、  1.4 系統(tǒng)設(shè)計(jì)框圖</p><p>  圖1.1 系統(tǒng)組成結(jié)構(gòu)圖</p><p>  1.5 系統(tǒng)實(shí)現(xiàn)方法</p><p>  (1) 利用各種傳感器接收需要防備外界的異常信號,信號的檢測與轉(zhuǎn)換傳輸。</p><p>  (2) 單片機(jī)接收傳感器檢測信號,進(jìn)行初步處理,如記錄發(fā)生情況的位置,何種報(bào)警等等,也可以單片機(jī)進(jìn)行現(xiàn)場報(bào)警。<

14、;/p><p>  (3) 利用CAN總線實(shí)現(xiàn)單片機(jī)與主控計(jì)算機(jī)的串口通訊。</p><p>  (4) 在主控計(jì)算機(jī)上接收單片機(jī)送來的報(bào)警信號,發(fā)出報(bào)警信息。</p><p>  2 系統(tǒng)可行性分析</p><p><b>  2.1 硬件模塊</b></p><p>  報(bào)警器硬件由溫度煙霧信號

15、采集模塊、煤氣信號采集模塊、防盜報(bào)警模塊、光報(bào)警模塊,鍵盤顯示模塊以及單片機(jī)與CAN總線模塊組成。</p><p>  2.1.1單片機(jī)控制模塊</p><p>  經(jīng)過比較,作者決定使用常用、廉價(jià)的單片機(jī)AT89C51作為主控制器。單片機(jī)AT89C51是由ATMEL公司生產(chǎn)的51單片機(jī)。簡單介紹如下:</p><p>  AT89C51是一個低電壓,高性能CMOS

16、 8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫的只讀程序存儲器(PEROM)和128 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,內(nèi)置功能強(qiáng)大的微型計(jì)算機(jī)的AT89C51提供了高性價(jià)比的解決方案。 AT89C51是一個低功耗高性能單片機(jī),40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個

17、外中斷口,2個16位可編程定時(shí)計(jì)數(shù)器,2個全雙工串行通信口, AT89C51可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。</p><p>  AT89C51具有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。</p><p>  AT89C51的

18、引腳圖如下圖所示:</p><p>  圖2.1AT89C51芯片的引腳圖</p><p><b>  VCC:供電電壓。</b></p><p><b>  GND:接地。</b></p><p>  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1

19、時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p>  P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的

20、緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。</p><p>  P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”

21、時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。</p><p>  P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p>

22、<p>  P3口也可作為AT89C51的一些特殊功能口,如下所示:</p><p>  P3.0 RXD(串行輸入口)</p><p>  P3.1 TXD(串行輸出口)</p><p>  P3.2 /INT0(外部中斷0)</p><p>  P3.3 /INT1(外部中斷1)</p><p>  

23、P3.4 T0(記時(shí)器0外部輸入)</p><p>  P3.5 T1(記時(shí)器1外部輸入)</p><p>  P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)</p><p>  P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)</p><p>  P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。</p><p>  RST:復(fù)位輸

24、入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個機(jī)器周期的高電平時(shí)間。</p><p>  ALE/PROG:當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個ALE脈沖。如想禁止ALE的

25、輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p>  /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時(shí),這兩次有效的/PSEN信號將不出現(xiàn)。</p><p>  /EA/VPP:當(dāng)/

26、EA保持低電平時(shí),則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p>  XTAL2:來自反向振蕩器的輸出。 &

27、lt;/p><p>  此單片機(jī)主要用于控制,包括響應(yīng)中斷、延時(shí)、判斷、發(fā)送對方號碼等等。</p><p>  2.1.2溫度煙霧信號采集模塊</p><p>  要準(zhǔn)確的進(jìn)行火災(zāi)報(bào)警,選擇合適的溫度傳感器和煙霧傳感器是準(zhǔn)確報(bào)警的前提。綜合考慮各種因素,作者選擇集成數(shù)字溫度傳感器DS18B20和煙霧傳感器NIS-09C用作采集系統(tǒng)的敏感元件。</p>&l

28、t;p>  2.1.3煤氣信號采集模塊</p><p>  煤氣泄露報(bào)警:一當(dāng)室內(nèi)煤氣超過正常標(biāo)準(zhǔn)時(shí),它將通過傳感器向家庭控制器發(fā)出報(bào)警信號。對于密度大于空氣的氣體,感應(yīng)器放在氣體源的下方。對于密度小于空氣的氣體,感應(yīng)器放在氣體源的上方,當(dāng)煤氣泄露報(bào)警啟動,就通知管理中心。綜合考慮各種因素,作者選用氣敏傳感器TP-1.1A,用作煤氣報(bào)警。</p><p>  2.1.4防盜報(bào)警模塊&

29、lt;/p><p>  防盜報(bào)警:在小區(qū)每一住戶內(nèi)安裝防盜報(bào)警裝置。當(dāng)住戶家中無人時(shí),可把家庭內(nèi)的防盜報(bào)警系統(tǒng)設(shè)置為布防狀態(tài),當(dāng)竊賊闖入時(shí),報(bào)警系統(tǒng)自動發(fā)出警報(bào)并向小區(qū)安保中心報(bào)警。綜合考慮各種因素,選用熱電釋紅外傳感器RE200B來進(jìn)行防盜報(bào)警。</p><p>  2.1.5光報(bào)警模塊</p><p>  由AT89C51的P1口的P1.4~P1.7分別控制4個發(fā)

30、光二極管,予以光報(bào)警。P1.4~P1.7控制的燈依次為正常信號燈、煤氣信號燈、火災(zāi)信號燈和防盜信號燈。當(dāng)這些輸出端輸出低電平時(shí),對應(yīng)的信號燈便會發(fā)光報(bào)警。</p><p>  圖2.2 光報(bào)警電路圖</p><p>  2.1.6數(shù)據(jù)采集模塊</p><p>  A/D轉(zhuǎn)換是本系統(tǒng)比較關(guān)鍵的一步,通過A/D轉(zhuǎn)換,成功的把所要測量和控制的數(shù)據(jù)采集過來,是保證系統(tǒng)功能可

31、以實(shí)現(xiàn)的第一步。為了設(shè)計(jì)好A/D轉(zhuǎn)換模塊,使它達(dá)到預(yù)想的A/D轉(zhuǎn)換效果,必須選定合適的A/D轉(zhuǎn)換器。</p><p>  A/D轉(zhuǎn)換電路采用了常用的8位8通道數(shù)模轉(zhuǎn)換專用芯片ADC0809,ADC0809由8路模擬開頭、地址鎖存與譯碼器、8位A/D轉(zhuǎn)換器和三態(tài)輸出鎖存緩沖器組成。</p><p>  (1) 其主要性能指標(biāo)為:</p><p><b>  

32、①分辨率為8位。</b></p><p> ?、谧畲蟛豢烧{(diào)誤差:0808為1/2LSB,0809為1LSB。</p><p> ?、蹎坞娫?5v供電,基準(zhǔn)電壓由外部提供,典型值為+5v,此時(shí)允許輸入模擬電壓為0—5V。</p><p>  ④具有鎖存控制的8路模擬選通開關(guān)。</p><p>  ⑤可鎖存三態(tài)輸出,輸出電平與TTL電

33、平兼容。</p><p><b>  功耗15mW。</b></p><p> ?、揶D(zhuǎn)換速度取決于芯片的時(shí)鐘頻率。時(shí)鐘頻率范圍500KHz時(shí),轉(zhuǎn)換時(shí)間為128μs。</p><p>  (2)ADC0809引腳功能</p><p>  圖2.3為ADC0809引腳圖,說明如下;</p><p> 

34、 圖2.3 ADC0809芯片引腳</p><p>  ①IN0—IN7——8路模擬信號輸入端。</p><p>  ②ADDA、ADDB、ADDC——3位地址碼輸入端。8路模擬信號轉(zhuǎn)換選擇由A、B、C決定。A為低位,C為高位。與低8位地址中A0—A2連接。由A0—A2地址000-111選擇INO-IN7八路A/D通道。其中模擬開關(guān)與輸入通道的關(guān)系見表3.1。</p><

35、;p> ?、跜LK——外部時(shí)鐘輸入端。時(shí)鐘頻率高,A/D轉(zhuǎn)換速度快。允許范圍為10—1280KHz,典型值為640KHz,此時(shí)A/D轉(zhuǎn)換時(shí)間為100μs通常由MCS-51型單片機(jī)ALE端直接或分頻后與0809CLK端相連接。當(dāng)MCS-51型單片機(jī)無讀寫外RAM操作時(shí),ALE信號固定為CPU時(shí)鐘頻率的1/6。若晶振為6MHz,則1/6為1MHz時(shí).A/D轉(zhuǎn)換時(shí)間為64μs。</p><p>  表2.1路模擬

36、開關(guān)與輸入通道的關(guān)系表</p><p> ?、蹹0—D7——數(shù)字量輸出端。</p><p> ?、?——A/D轉(zhuǎn)換結(jié)果輸出允許控制端。當(dāng)面端為高電平時(shí),允許將A/D轉(zhuǎn)換結(jié)果從Do—D7端輸出。通常由MCS- 51型單片機(jī)的端與0809片選端(例如P2.0)通過或非門與0809端相連接。當(dāng)DPTR為FEFFH,且執(zhí)行MOVX A,@DPTR指令</p><p>  

37、后,RD和P2.0均有效,或非后產(chǎn)生高電平,使0809端有效,0809將A/D轉(zhuǎn)換結(jié)果送入數(shù)據(jù)總線Po口,CPU再讀入A中。</p><p> ?、轆LE——地址鎖存允許信號。8路模擬通道地址由A、B、C輸入,在0809的ALE信號有效時(shí)將該8路地址鎖存(注意0809ALE與803lALE的區(qū)別)。</p><p> ?、逽TART——啟動A/D轉(zhuǎn)換信號。當(dāng)START端輸入一個正脈沖時(shí),立

38、即啟動0809進(jìn)行A/D轉(zhuǎn)換。START端與ALE端連在一起,由MCS-51型單片機(jī)WR與0809片選端(例如P2.0)通過或非門相連,當(dāng)DPTR為EFF8H,執(zhí)行“MOVX@DPTR,A”指令后,將啟動0809模擬通道0的A/D轉(zhuǎn)換。FEF8H—FEFFH分別為8路模擬輸入通道的地址。執(zhí)行MOVX寫指令,井非真的將A中內(nèi)容寫進(jìn)0809,而是產(chǎn)生WR信號和P2.o有效,從而使0809的START和ALE有效,且輸出A/D通道0地址A0—

39、A2。事實(shí)上也無法將A內(nèi)容寫進(jìn)0809,0809中沒有一個寄存器能容納A中內(nèi)容,0809的輸入通道是IN0—IN7,輸出通道是D0—D7,因此,執(zhí)行“MOVX@DPTR,A”指令與A中內(nèi)容無關(guān),但DPTR地址應(yīng)指向當(dāng)前A/D的通道地址。</p><p> ?、郋OC——A/D轉(zhuǎn)換結(jié)束信號。當(dāng)啟動0809A/D轉(zhuǎn)換后;EOC輸出低電平;轉(zhuǎn)換結(jié)束后,EOC輸出高電平,表示可以讀取A/D轉(zhuǎn)換結(jié)果。該信號取反后,若與MC

40、S-51型單片機(jī)引腳INT0或連接,可引發(fā)CPU中斷,在中斷服務(wù)程序中讀A/D轉(zhuǎn)換的數(shù)字信號。若MC5—51型單片機(jī)兩個中斷源已用完,則EOC也可與P1口或四口的一條端線相連,不采用中斷方式,采用查詢方式,查得EOC為高電平后,再讀A/D轉(zhuǎn)換值。</p><p> ?、酼REF+、VREF- ——正負(fù)基準(zhǔn)電壓輸入端。基準(zhǔn)電壓的典型值為+5v,可與電源電壓(+5v)相連,但電源電壓往往有一定波動,將影響A/D精度。

41、因此,精度要求較高時(shí),可用高穩(wěn)定度基準(zhǔn)電源輸入。當(dāng)模擬信號電壓較低時(shí),基準(zhǔn)電壓也可取低于5v的數(shù)值。</p><p> ?、釼cc——正電源電壓(+5v)。GND——接地端。</p><p>  ADC0809的A/D轉(zhuǎn)換過程是在時(shí)鐘信號的協(xié)調(diào)下進(jìn)行的。ADC0809的時(shí)鐘信號由CLOCK端送入,其最高頻率為640MHz,在這個最高頻率下ADC0809的A/D轉(zhuǎn)換時(shí)間為100uS左右。&l

42、t;/p><p>  A/D轉(zhuǎn)換結(jié)束后,A/D轉(zhuǎn)換的結(jié)果(8位數(shù)字量)送到三態(tài)鎖存輸出緩沖器,此時(shí)A/D轉(zhuǎn)換結(jié)果還沒有現(xiàn)在DB0—DB7八條數(shù)字量輸出線上,單片機(jī)不能獲取之。單片機(jī)要想讀到A/D轉(zhuǎn)換結(jié)果,必須使ADC0809的允許輸出控制端OE為高電平,打開三態(tài)輸出鎖存器,A/D轉(zhuǎn)換結(jié)果出現(xiàn)在DB0—DB7上。</p><p>  圖2.4 ADC0809的讀、寫、啟動以及A/D轉(zhuǎn)換時(shí)序圖&l

43、t;/p><p>  圖2.4中EOC為轉(zhuǎn)換結(jié)束輸出信號。在A/D轉(zhuǎn)換期間,EOC維持高電平,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),EOC變成高電平。ADC0809的START端收到下降沿后,并不立即進(jìn)行A/D轉(zhuǎn)換,EOC=1,而是延遲10uS后,才開始A/D轉(zhuǎn)換,EOC變?yōu)榈碗娖?。單片機(jī)讀取A/D轉(zhuǎn)換結(jié)果的方法有三種(1)延遲法:單片機(jī)啟動ADC0809后,延時(shí)130uS以上,可以讀到正確的A/D轉(zhuǎn)換結(jié)果。(2)查詢法:EOC必須接

44、到AT89C51的一條I/O線上。單片機(jī)啟動ADC0809后,延遲10uS,檢測EOC,若EOC=0則A/D轉(zhuǎn)換沒有結(jié)束,繼續(xù)檢測EOC直到EOC=1。當(dāng)EOC=1時(shí),A/D轉(zhuǎn)換已經(jīng)結(jié)束,單片機(jī)讀取A/D轉(zhuǎn)換結(jié)果。(3)中斷法:EOC必須經(jīng)過非門接到AT89C51的中斷請求輸入線INT0或INT1上,AT89C51的中斷觸發(fā)方式為下降沿觸發(fā)。單片機(jī)啟動A/D轉(zhuǎn)換后可以做其它工作,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),EOC由0—1經(jīng)過非門傳到INT端,A

45、T89C51收到中斷請求信號,若AT89C51開中斷,則進(jìn)入中斷服務(wù)程序,在中斷服務(wù)程序中單片機(jī)讀取A/D轉(zhuǎn)換的結(jié)果。</p><p>  數(shù)據(jù)采集的電路如圖2.5所示。溫度、煙霧、煤氣、防盜傳感器的輸出分別接到ADC0809的IN4、IN5、IN6和IN7。ADC0809的通道選擇地址A,B,C分別由AT89C51的P0.0~P0.2經(jīng)地址鎖存器74LS373輸出提供。當(dāng)P2.0=0時(shí),與寫信號WR共同選通AD

46、C0809。圖中ALE信號與ST信號連在一起,在WR信號的前沿寫入地址信號,在其后沿啟動轉(zhuǎn)換。例如,輸出地址7FF8H可選通通道IN4,實(shí)現(xiàn)對溫度傳感器輸出的模擬量進(jìn)行轉(zhuǎn)換;輸出地址7FF9H可選通通道IN1,實(shí)現(xiàn)對煙霧傳感器輸出的模擬量進(jìn)行轉(zhuǎn)換。圖中ADC0809的轉(zhuǎn)換結(jié)束狀態(tài)信號EOC接到89C51的INT1引腳,當(dāng)A/D轉(zhuǎn)換完成后,EOC變?yōu)楦唠娖?,表示轉(zhuǎn)換結(jié)束,產(chǎn)生中斷。在中斷服務(wù)程序中,將轉(zhuǎn)換好的數(shù)據(jù)送到指定的存儲單元。<

47、;/p><p>  圖2.5 數(shù)據(jù)采集模塊 </p><p>  2.1.7鍵盤顯示模塊</p><p>  單片機(jī)系統(tǒng)所用的鍵盤有編碼鍵盤和非編碼鍵盤兩種。</p><p>  編碼鍵盤是只要按下它的某一個鍵,就能產(chǎn)生這個鍵的代碼,與此同時(shí)還產(chǎn)生一個脈沖信號,以通知CPU接收鍵碼。編碼鍵盤使用方便,也不用編寫太復(fù)雜的程序。但硬件電路復(fù)雜,比非編

48、碼簡易鍵盤成本要高。</p><p>  非編碼鍵盤也稱簡易鍵盤,它的按鍵是排列成行、列矩陣形式的。按鍵的作用只是簡單地實(shí)現(xiàn)接點(diǎn)的接通或斷開,因此必須有一套相應(yīng)的程序與之配合,才能產(chǎn)生相應(yīng)的鍵碼,它基本上不需要附加什么硬件電路。但需要通過軟件來解決按的識別、防抖動以及如何產(chǎn)生鍵碼的問題。</p><p>  為了節(jié)約成本,本系統(tǒng)選用簡易鍵盤作為撥號輸入。</p><p&

49、gt;  單片機(jī)所用的顯示有LED和LCD兩種,從設(shè)計(jì)的難度和成本造價(jià)來說LCD都要高于LED。本作品要顯示的是要撥的號碼和來電顯示對方機(jī)子的號碼,為數(shù)字顯示。因此,本作品選用了由LED組成的7段發(fā)光顯示器,它有簡單、經(jīng)濟(jì)、易于與單片機(jī)接口等優(yōu)點(diǎn)。7段LED選用的是共陽極的。</p><p>  2.1.8CAN總線協(xié)議</p><p>  CAN(Controller Area Netw

50、ork)總線,又稱控制器局域網(wǎng),是Bosch公司在現(xiàn)代汽車技術(shù)中領(lǐng)先推出的一種多主機(jī)局域網(wǎng)。由于其卓越的性能,極高的可靠性,獨(dú)特靈活的設(shè)計(jì)和低廉的價(jià)格,現(xiàn)已廣泛應(yīng)用于工業(yè)現(xiàn)場控制、智能大廈、小區(qū)安防、交通工具、醫(yī)療儀器、環(huán)境監(jiān)控等眾多領(lǐng)域。</p><p>  CAN的通信協(xié)議主要由CAN控制器完成。CAN控制器主要由實(shí)現(xiàn)CAN總線協(xié)議的部分和實(shí)現(xiàn)與微處理器接口部分的電路組成。對于不同型號的CAN總線通信控制器,

51、實(shí)現(xiàn)CAN協(xié)議部分電路的結(jié)構(gòu)和功能大多相同,而與微處理器接口部分的結(jié)構(gòu)和方式存在一些差異。</p><p>  CAN控制器選用SJA1000作為控制器。SJA1000是高集成度CAN控制器。具有多主結(jié)構(gòu)、總線訪問優(yōu)先權(quán)、成組與廣播報(bào)文功能及硬件濾波功能。輸入時(shí)鐘頻率為16MHZ時(shí)鐘,輸出可編程控制。由以下幾部分構(gòu)成:接口管理邏輯、發(fā)送緩存器、接收緩存器、位流處理器、位定時(shí)邏輯、收發(fā)邏輯、錯誤管理邏輯、控制器接口

52、邏輯等。</p><p>  SJA1000在電路中是一個總線接口芯片,通過它實(shí)現(xiàn)上位機(jī)與現(xiàn)場微處理器之間的數(shù)據(jù)通信。該電路的主要功能是通過CAN總線接收來自上位機(jī)的數(shù)據(jù)進(jìn)行分析組態(tài)然后下傳給下位機(jī)的控制電路實(shí)現(xiàn)控制功能,當(dāng)CAN總線接口接收到下位機(jī)的上傳數(shù)據(jù),SJA1000就產(chǎn)生一個中斷,引發(fā)微處理器產(chǎn)生中斷,通過中斷處理程序接收每一幀信息并通過CAN總線上傳給上位機(jī)進(jìn)行分析。AT89C51是CAN總線接口電路

53、的核心,其承擔(dān)CAN控制器的初始化、CAN的收發(fā)控制等任務(wù)。</p><p>  CAN總線收發(fā)器選用PCA82C250作為總線收發(fā)器。 PCA82C250是CAN 協(xié)議控制器和物理總線之間的接口。82C250 可以為總線提供不同的發(fā)送性能,為CAN 控制器提供不同的接收性能。而且它與“ISO 11898”標(biāo)準(zhǔn)完全兼容。PCA82C250的目的是為了增大通信距離,提高系統(tǒng)的瞬間抗干擾能力,保護(hù)總線,降低射頻干擾(

54、RFI)實(shí)現(xiàn)熱防護(hù)等。</p><p>  接口主要元件電路原理圖見圖2.6,在進(jìn)行電路設(shè)計(jì)時(shí)應(yīng)注意以下幾點(diǎn),否則達(dá)不到預(yù)期的效果。</p><p> ?。?)總線兩端必須接兩個終端匹配電阻RT,忽略掉它們,會使數(shù)據(jù)通信的抗干擾性及可靠性大大降低。</p><p> ?。?)PCA82C250為CAN控制器和物理總線之間的接口,它可以提供向總線的</p>

55、<p>  差動發(fā)送能力和CAN控制器的差動接收能力,TXD和RXD引腳分別發(fā)送經(jīng)過驅(qū)動后的發(fā)送和接收信號。其引腳8(RS)可以選擇2種不同的工作方式:把該引腳直接與地相連,系統(tǒng)將處于高速工作方式,在這種方式下,為避免射頻干擾,建議使用屏蔽電纜作總線;而在波特率較低,總線較短時(shí),一般采用斜率控制方式,上升及下降的斜率取決于RS的阻值,實(shí)踐表明15-200k為RS較理想的取值范圍,在這種方式下,可以使用雙絞線作總線(本系統(tǒng)采

56、用該工作方式)。</p><p> ?。?)SJA1000的TX1腳懸空,RX1引腳的電位必須維持在約0.5VCC上,否則,</p><p>  將不能形成CAN協(xié)議要求的電平邏輯。因本系統(tǒng)傳輸距離近,環(huán)境干擾小,可以不用電流隔離,這樣可以直接把82C250的VREF端(約為0.5VCC)與SJA1000的RX1相連,從而簡化了電路。</p><p>  (4)設(shè)計(jì)

57、時(shí)將SJA1000的CLOCKOUT的時(shí)鐘信號接至AT89C51的時(shí)鐘電路輸</p><p>  入端,作為AT89C51的外部時(shí)鐘輸入,解決了時(shí)鐘同步問題;SJA1000中斷輸出信號/INT接至AT89C51的/INT0端,通過中斷方式與AT89C51通信。</p><p>  AT89C51 SJA1000</p><p>  圖

58、2.6 接口主要元器件電路圖</p><p>  2.1.9傳感器模塊</p><p>  上述所說的各種信號采集模塊都是經(jīng)過傳感器來進(jìn)行信號采集,再送到ADC0809。</p><p>  傳感器是一個從系統(tǒng)接收功率,通常以另一種形式將功率送到第二個系統(tǒng)中的器件。按照這一定義,可以說傳感器是一種吸收(提取)、轉(zhuǎn)換和傳送能量的器件。嚴(yán)格地說,應(yīng)該區(qū)別檢測和變換這兩個

59、概念。前者只是將被測量轉(zhuǎn)移到系統(tǒng)中去,而后者從字面上說是將被測量的種類加以改變。有時(shí),對被測量只進(jìn)行一次變換還不夠,必須進(jìn)行第二次、第三次變換,一直到所希望的能量形式為止。傳感器轉(zhuǎn)換能量的理論基礎(chǔ)都是利用物理學(xué)、化學(xué)等各種現(xiàn)象和效應(yīng)來進(jìn)行能量形式的變換。隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,傳感器輸出信號的形式應(yīng)盡可能是電量。</p><p>  傳感器的組成按其定義一般是由敏感元件、變換元件和測量電路三部分組成。除自源

60、型傳感器外,還需外加輔助電源,用框圖表示,如圖2.7所示。由圖可知,傳感器由以下幾個部分組成:</p><p>  圖2.7 傳感器的組成框圖</p><p> ?。?)敏感元件(預(yù)變換器) 直接感受被測量(一般為非電量)并將其轉(zhuǎn)換為與被測量有確定關(guān)系的易變成電量(包括電量)的其它量的元件。</p><p> ?。?)轉(zhuǎn)換元件(變換器) 它能將其它物理量直接轉(zhuǎn)換

61、為有確定關(guān)系的電量的元件。</p><p> ?。?)測量電路(變換電路) 把轉(zhuǎn)換元件輸出的電信號變?yōu)楸阌谔幚怼@示、記錄、控制的可用電信號的電路。測量電路的類型視轉(zhuǎn)換元件的不同而定.經(jīng)常采用的有電橋電路和其它特殊電路,加高阻抗輸入電路、脈沖電路、振蕩電路等。</p><p> ?。?)輔助電源 供給轉(zhuǎn)換能量。</p><p><b>  2.2 軟件

62、模塊</b></p><p>  通過上面分析,決定選用C51系列單片機(jī)作為控制器,那么它的軟件編寫就要按照單片機(jī)語言:C語言或匯編語言來編寫,這里選用執(zhí)行效率高的匯編語言編寫。 開發(fā)工具為keil c51,它的功能強(qiáng)大,支持c語言和匯編語言的編寫與調(diào)試,其軟件模擬I/O口也會給軟件調(diào)試帶來極大的方便。</p><p>  2.2.1溫度煙霧信號采集模塊</p>

63、<p>  進(jìn)行火災(zāi)報(bào)警,需要溫度和煙霧兩個傳感器,當(dāng)溫度達(dá)到一定的度數(shù)和煙霧的濃度達(dá)到一定的百分比時(shí),就進(jìn)行火災(zāi)報(bào)警。在本設(shè)計(jì)中,作者選用了數(shù)字溫度傳感器AS18B20和煙霧傳感器NIS-09C來進(jìn)行報(bào)警。</p><p>  把數(shù)字溫度傳感器AS18B20和煙霧傳感器NIS-09C分別接到ADC0809IN4口和IN5口。當(dāng)進(jìn)行火災(zāi)報(bào)警時(shí),ADC0809就將采集到的數(shù)據(jù)信號存儲在數(shù)據(jù)區(qū),進(jìn)行A/D轉(zhuǎn)

64、換,并將指針指向下一個通道。</p><p>  2.2.2煤氣信號采集模塊</p><p>  進(jìn)行煤氣報(bào)警,作者選用了常用的家庭煤氣報(bào)警傳感器TP-1.1A。將煤氣傳感器TP-1.1A接到ADC0809的IN6口。當(dāng)進(jìn)行煤氣報(bào)警時(shí),ADC0809就將采集到的數(shù)據(jù)信號存儲在數(shù)據(jù)區(qū),進(jìn)行A/D轉(zhuǎn)換,并將指針指向下一個通道。</p><p>  2.2.3防盜報(bào)警信號

65、采集模塊</p><p>  人體有恒定的體溫,一般在37攝氏度,所以會發(fā)出特定波長的紅外線。熱電釋紅外傳感器探頭就是靠探測人體發(fā)射的紅外線而進(jìn)行工作。人體發(fā)出的紅外線,通過菲涅爾濾光片增強(qiáng)后,聚集到紅外感應(yīng)源上。熱電式元件在接收到人體紅外輻射溫度發(fā)生變化時(shí)將會失去電荷平衡,向外釋放電荷,后續(xù)電路經(jīng)檢測處理后產(chǎn)生報(bào)警信號。進(jìn)行防盜報(bào)警時(shí),作者選用了價(jià)格比較合適的熱電釋紅外傳感器RE200B。當(dāng)人體靠近熱電釋紅外傳

66、感器RE200B到一定距離時(shí),熱電釋紅外傳感器就會報(bào)警,ADC0809就會將采集的信號存儲在數(shù)據(jù)區(qū),進(jìn)行A/D轉(zhuǎn)換。</p><p><b>  2.2.4光報(bào)警</b></p><p>  把四個發(fā)光二極管分別接在AT89C51的P1.4~P1.7口。P1.4~P1.7口控制的燈依次為正常信號燈、煤氣信號燈、火災(zāi)信號燈和防盜信號燈。當(dāng)這些輸出端輸出低電平時(shí),對應(yīng)的信

67、號燈便會發(fā)光報(bào)警。</p><p>  2.2.5信號采集模塊</p><p>  數(shù)據(jù)采集部分的程序設(shè)計(jì)包括:驅(qū)動ADC0809的IN4,IN5,IN6和IN7進(jìn)行A/D轉(zhuǎn)換,分別由子程序ADC1(溫度轉(zhuǎn)換),ADC2(煙霧濃度轉(zhuǎn)換),ADC3(煤氣濃度轉(zhuǎn)換)和ADC4(防盜轉(zhuǎn)換)完成;單片機(jī)接收轉(zhuǎn)換好的數(shù)據(jù),存入指定內(nèi)存單元,由INT1中斷服務(wù)程序完成。每次驅(qū)動A/D轉(zhuǎn)換后等待外部中斷

68、1,中斷到來說明A/D轉(zhuǎn)換已經(jīng)完成,通過中斷服務(wù)程序讀取轉(zhuǎn)換得到的數(shù)據(jù)。</p><p>  數(shù)據(jù)采集模塊的工作原理:各類傳感器采集到數(shù)據(jù)后模擬量傳送到ADC0809,0809將轉(zhuǎn)換成的數(shù)字量傳給89C51,最后單片機(jī)將采集到的數(shù)據(jù)送到SJA1000通過CAN總線收發(fā)器82C250傳上總線,完成數(shù)據(jù)采集工作,并由CAN 總線通過RS232傳給上位機(jī)。</p><p>  2.2.6鍵盤顯示

69、模塊</p><p>  本單元需要兩個并行口:一個作為行信號輸出,它與顯示器的位選碼共享一個口,這里作者選用P2口的P2.2和P2.3;另一個作為列信號的讀入口,這里選用P0口的前四位P2.4至P2.7。</p><p>  2.2.7CAN總線通訊模塊</p><p>  CAN總線測控系統(tǒng)的通信軟件分為3部分:CAN初始化、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收。</p&g

70、t;<p>  CAN初始化,其主要是設(shè)置CAN的通信參數(shù)。需要初始化的寄存器有:模式寄存器(Peli CAN模式)、時(shí)分寄存器、接收代碼寄存器、屏蔽寄存器、總線定時(shí)寄存器、輸出控制寄存器等。需要注意的是,這些寄存器僅能在復(fù)位期間可寫訪向,因此,在對這些寄存器初始化前,必須確保系統(tǒng)進(jìn)入了復(fù)位狀態(tài),并且系統(tǒng)中各CAN控制器的總線定時(shí)寄存器的初始化字必須相同。</p><p>  數(shù)據(jù)發(fā)送,現(xiàn)場的各傳感

71、器把環(huán)境多參數(shù)的檢測信號(數(shù)字量、模擬量、開關(guān)量)進(jìn)行轉(zhuǎn)換處理后,發(fā)向CAN控制器的發(fā)送緩沖區(qū),然后啟動CAN控制器的發(fā)送命令,此時(shí)CAN控制器將自動向總線發(fā)送數(shù)據(jù),不再需傳感器的微控制器進(jìn)行干預(yù)。</p><p>  數(shù)據(jù)接收,整個微機(jī)測控系統(tǒng)中的CAN控制器檢測到總線上有數(shù)據(jù)時(shí)會自動接收總線上的數(shù)據(jù),存入其接收緩沖區(qū),并向AT89C51微控制器發(fā)送接收中斷,啟動中斷接收服務(wù)程序,AT89C51通過執(zhí)行中斷接收

72、服務(wù)程序,從CAN控制器的接收緩沖區(qū)讀取數(shù)據(jù),并對其進(jìn)行進(jìn)一步處理工作。</p><p>  3 硬件單元電路設(shè)計(jì)</p><p>  3.1 ADC0809和四個報(bào)警傳感器的接口電路設(shè)計(jì)</p><p>  ADC0809和四個報(bào)警傳感器的接口電路設(shè)計(jì)圖如圖3.1所示。</p><p>  圖3.1 ADC0809和傳感器的接口電路圖&l

73、t;/p><p>  上圖所示的四個插針分別代表溫度傳感器,煙霧傳感器,煤氣傳感器和防盜傳感器。因?yàn)閭鞲衅鬟M(jìn)行報(bào)警時(shí),要將傳感器放于不同的位子,所以在設(shè)計(jì)電路圖時(shí),作者就選用插針,這樣,用軟線把插針與傳感器連接起來,顯得更加方便,可以將傳感器放于需要的位子。</p><p><b>  元器件的選?。?lt;/b></p><p>  ADC0809芯片

74、一塊</p><p>  插針?biāo)膫€(三排插針兩個,兩排插折兩個)</p><p>  47K的電阻一個,51歐姆的電阻一個,50K的電阻兩個</p><p>  3.2 AT89C51與ADC0809接口電路</p><p>  AT89C51與ADC0809接口電路如3.2所示。</p><p>  圖3.2 AT8

75、9C51與ADC0809接口電路圖</p><p>  ADC0809的通道選擇地址A,B,C分別由AT89C51的P0.0~P0.2經(jīng)地址鎖存器74LS373輸出提供。當(dāng)P2.7=0時(shí),與寫信號WR共同選通ADC0809。圖中ALE信號與ST信號連在一起,在WR信 號的前沿寫入地址信號,在其后沿啟動轉(zhuǎn)換。ADC0809的轉(zhuǎn)換結(jié)束狀態(tài)信號EOC接到AT89C51的INT1引腳,當(dāng)A/D轉(zhuǎn)換完成后,EOC變?yōu)楦唠娖?/p>

76、,表示轉(zhuǎn)換結(jié)束,產(chǎn)生中斷。在中斷服務(wù)程序中,將轉(zhuǎn)換好的數(shù)據(jù)送到指定的存儲單元。</p><p>  AT89C51的頻率跟ADC0809的頻率不一致,所以選用74LS74進(jìn)行二分頻。</p><p><b>  元器件的選?。?lt;/b></p><p>  AT89C51單片機(jī)一塊</p><p>  ADC0809芯片一

77、塊</p><p>  74LS74芯片一塊</p><p>  74LS02芯片一塊</p><p>  74LS04芯片兩塊</p><p>  3.3 AT89C51與光報(bào)警接口電路</p><p>  AT89C51與光報(bào)警接口電路如圖3.3所示</p><p>  圖3.3 AT89C

78、51與光報(bào)警接口電路圖</p><p>  把四個發(fā)光二極管分別接在AT89C51的P1.4~P1.7口。P1.4~P1.7口控制的燈依次為正常信號燈、煤氣信號燈、火災(zāi)信號燈和防盜信號燈。當(dāng)進(jìn)行一種報(bào)警時(shí),所對應(yīng)的發(fā)光二極管就會亮。例如,當(dāng)進(jìn)行火災(zāi)報(bào)警時(shí),P1.6口的發(fā)光二極管就會亮。</p><p><b>  元器件的選取:</b></p><

79、p>  四個340歐姆的電阻</p><p><b>  四個發(fā)光二極管</b></p><p>  3.4 鍵盤顯示接口電路</p><p>  鍵盤顯示接口電路如圖3.4所示。</p><p>  圖3.4 鍵盤顯示接口電路圖</p><p>  具體掃描法:(1)將全部行線Y0-Y3(

80、行)置低電平,然后檢測列的狀態(tài)。只要有一列的電平為低,則表示按鍵中有鍵被按下,而且閉合的鍵位于低電平與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中沒有鍵按下。(2)判斷閉合鍵所在的位置。在確定有按鍵按下以后,就可以進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置低電平,即在置某根行線為低電平時(shí),其線為高電平。在確定某根行線位置為低電平后,再將行檢測各列的電平狀態(tài)。若為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按

81、鍵。</p><p><b>  元器件的選?。?lt;/b></p><p>  按鍵選用我們熟悉的四腳矩形按鍵8個</p><p>  9012PNP放大三極管4個</p><p>  四位共陽LED數(shù)碼管一塊</p><p>  4.7k的限流電阻4個</p><p>  

82、3.5 AT89C51與CAN總線接口電路</p><p>  AT89C51與CAN總線接口電路圖如圖3.5所示。</p><p>  圖3.5 AT89C51與CAN總線接口電路圖</p><p>  在系統(tǒng)中,SJA1000的片選信號一般由地址總線經(jīng)譯碼獲得,并由此決定出CAN控制器各寄存器的地址。在本設(shè)計(jì)中,作者用單片機(jī)AT89C51的P2.7為片選信號。所

83、以,SJA1000的地址為:7F00-7F32H。</p><p>  SJA1000的TX1腳懸空,RX1引腳的電位必須維持在約0.5Vcc上,否則,將不能形成CAN協(xié)議所要求的電平邏輯。如果系統(tǒng)傳輸距離近,環(huán)境干擾小,可以不用電流隔離,這樣可直接把82C250的VREF端(約為0.5 Vcc)與RX1腳相連,從而簡化了電路。</p><p>  當(dāng)上電復(fù)位時(shí),AT89C52的上電復(fù)位,

84、需要從低到高的電平變化來激活,而SJA1000的17腳RST被激活,需要出現(xiàn)一個由高電平到低電平的跳變,因此,這必須加一個反相器。</p><p>  82C50第8腳與地之間的電阻Rs稱為斜率電阻,它的取值決定了系統(tǒng)處于高速工作方式還是斜率控制方式。而在波特率較低、總線較短時(shí),一般采用斜率控制方式,上升及下降的斜率取決于民的阻值,實(shí)驗(yàn)數(shù)據(jù)表明15~200kΩ為Rs較理想的取值范圍,在該方式下,可以使用平行線或雙

85、絞線作總線。在本設(shè)計(jì)中,Rs選用150K。</p><p><b>  元器件的選?。?lt;/b></p><p>  SJA1000芯片一塊</p><p>  PCA82C250芯片一塊</p><p>  74LS04芯片一塊</p><p><b>  16MHZ晶振一個</b

86、></p><p>  22PF的二極管兩個</p><p><b>  60歐姆的電阻一個</b></p><p><b>  150K的電阻一個</b></p><p><b>  4 軟件設(shè)計(jì)</b></p><p>  本系統(tǒng)的軟件設(shè)計(jì)主

87、要是采集四個報(bào)警傳感器的報(bào)警信號,再通過發(fā)光二極管顯示,每一個發(fā)光二極管亮就表示有一種報(bào)警傳感器報(bào)警。用戶可以根據(jù)自己家庭的具體情況來設(shè)置報(bào)警的最高限度,用鍵盤顯示來實(shí)現(xiàn)。單片機(jī)還要把采集的信號通過CAN總線傳輸?shù)缴衔粰C(jī),在上位機(jī)上顯示出來。</p><p>  4.1 CAN總線程序</p><p>  CAN總線測控系統(tǒng)的通信軟件分為3部分:CAN初始化、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收。</

88、p><p>  4.1.1CAN初始化</p><p>  CAN初始化,其主要是設(shè)置CAN的通信參數(shù)。需要初始化的寄存器有:模式寄存器(Peli CAN模式)、時(shí)分寄存器、接收代碼寄存器、屏蔽寄存器、總線定時(shí)寄存器、輸出控制寄存器。</p><p>  CAN初始化程序代碼為:</p><p>  #include <reg52.h>

89、;</p><p>  #include <stdio.h></p><p>  #include <string.h></p><p>  #include <absacc.h></p><p>  #define byte unsigned char</p><p>  #def

90、ine word unsigned int</p><p>  #define time0 65536-2000</p><p>  #define BAUD -13</p><p>  #define MAIN 1 ///定義主機(jī),從機(jī)地址</p><p>  #define ADDR 2</p><p

91、>  #define READ 'R'</p><p>  #define WRIT 'W'</p><p>  #define CAN_PORT P0</p><p>  #define CAN_CR 0 //控制</p><p>  #define CAN_CMR 1 //命

92、令</p><p>  #define CAN_SR 2 //狀態(tài)</p><p>  #define CAN_IR 3 //中斷</p><p>  #define CAN_ACR 4 //驗(yàn)收</p><p>  #define CAN_AMR 5 //屏蔽</p><p>  

93、#define CAN_BTR0 6 //時(shí)序0</p><p>  #define CAN_BTR1 7 //時(shí)序1</p><p>  #define CAN_OCR 8 //輸出</p><p>  #define CAN_TXB 10 //發(fā)送緩沖</p><p>  #define CAN_RXB 20

94、 //接收緩沖</p><p>  #define CAN_CDR 31 //分頻</p><p>  sbit CAN_WR = P2^5;</p><p>  sbit CAN_RD = P2^6;</p><p>  sbit CAN_ALE = P2^7;</p><p>  sbit CAN_RS

95、T = P1^0;</p><p>  sbit da_in = P3^7;</p><p>  sbit da_clk = P3^6;</p><p>  sbit da_cs = P3^5;</p><p>  sbit KEY1 = P2^0;</p><p>  sbit KEY2 = P

96、2^1;</p><p>  sbit LED1 = P1^3;</p><p>  sbit LED2 = P1^4;</p><p>  sbit LED7 = P1^7;</p><p>  sbit beer = P1^1;</p><p>  bit CANBUS;</p>

97、<p>  byte bdata Acc ;</p><p>  sbit Acc7=Acc^7;</p><p>  byte idata TXB[10]={1,2,3,4,5,6,7,8,9,10}; //第一個為報(bào)文標(biāo)志碼</p><p>  byte idata RXB[10];</p><p>  void CAN_I

98、NI() /*初始化部分*/</p><p><b>  {</b></p><p>  CANW(CAN_CR,0x01); </p><p>  CANW(CAN_ACR,MAIN); //驗(yàn)收濾波器需與報(bào)文標(biāo)志碼(從機(jī)的發(fā)送的第一個字節(jié))一致</p><p>  CANW(CAN_AMR,0x00);

99、</p><p>  CANW(CAN_BTR0,0x42); //125k-BPS</p><p>  CANW(CAN_BTR1,0x1c);</p><p>  CANW(CAN_OCR,0x1A); //0xaa,0xd2,0xfa </p><p>  CANW(CAN_CR,0x02); //**中斷使能 &l

100、t;/p><p><b>  }</b></p><p>  4.1.2CAN數(shù)據(jù)發(fā)送</p><p>  數(shù)據(jù)發(fā)送,現(xiàn)場的各傳感器把環(huán)境多參數(shù)的檢測信號(數(shù)字量、模擬量、開關(guān)量)進(jìn)行轉(zhuǎn)換處理后,發(fā)向CAN控制器的發(fā)送緩沖區(qū),然后啟動CAN控制器的發(fā)送命令,此時(shí)CAN控制器將自動向總線發(fā)送數(shù)據(jù),不再需傳感器的微控制器進(jìn)行干預(yù)。</p>

101、<p>  CAN數(shù)據(jù)發(fā)送的程序代碼為:</p><p>  void CANW(byte adr,byte dat) //寫CAN數(shù)</p><p><b>  {</b></p><p>  CAN_ALE=1; </p><p>  CAN_PORT=adr;</p><p> 

102、 CAN_ALE=0;</p><p>  CAN_WR=0; </p><p>  CAN_PORT=dat;</p><p><b>  CAN_WR=1;</b></p><p><b>  }</b></p><p>  byte CANR(byte adr) /

103、/讀CAN數(shù)</p><p><b>  {</b></p><p><b>  byte dat;</b></p><p>  CAN_ALE=1; </p><p>  CAN_PORT=adr;</p><p>  CAN_ALE=0;</p><

104、p>  CAN_PORT=0xff;</p><p>  CAN_RD=0; </p><p>  dat=CAN_PORT;</p><p><b>  CAN_RD=1;</b></p><p>  return dat;</p><p><b>  }</b>

105、</p><p>  void CAN_SEND() /*發(fā)送數(shù)據(jù)部分*/</p><p><b>  {</b></p><p><b>  byte i,p;</b></p><p>  p=CANR(CAN_SR);</p><p>  if (p&0x04)&

106、lt;/p><p><b>  {</b></p><p>  p=CAN_TXB; /*p指向發(fā)送緩存首址*/</p><p>  for(i=0;i<10;i++) CANW(p++,TXB[i]);</p><p>  CANW(CAN_CMR,0x01); /*請求發(fā)送*/</p>

107、;<p><b>  }</b></p><p><b>  }</b></p><p>  4.1.3CAN接收數(shù)據(jù)</p><p>  數(shù)據(jù)接收,整個微機(jī)測控系統(tǒng)中的CAN控制器檢測到總線上有數(shù)據(jù)時(shí)會自動接收總線上的數(shù)據(jù),存入其接收緩沖區(qū),并向AT89C51微控制器發(fā)送接收中斷,啟動中斷接收服務(wù)程序,AT

108、89C51通過執(zhí)行中斷接收服務(wù)程序,從CAN控制器的接收緩沖區(qū)讀取數(shù)據(jù),并對其進(jìn)行進(jìn)一步處理工作。</p><p>  CAN接收數(shù)據(jù)程序?yàn)椋?lt;/p><p>  void CAN_INT() interrupt 0 using 1/*接收中斷*/</p><p><b>  {</b></p><p><b>

109、;  byte i,p;</b></p><p>  p=CANR(CAN_IR);</p><p>  if(p&0x01) </p><p><b>  {</b></p><p>  p=CAN_RXB;</p><p>  for(i=0;i<10;i++)<

110、;/p><p><b>  {</b></p><p>  RXB[i]=CANR(p++);</p><p><b>  }</b></p><p>  CANW(CAN_CMR,0x04); /*釋放接收緩存*/</p><p>  CANBUS=1;// LED2=

111、1;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void CAN_SCAN()</p><p><b>  {</b></p><p>  TXB[0]=ADDR;</p><

112、p><b>  TXB[1]=8;</b></p><p>  TXB[2]=ADDR; </p><p>  TXB[3]=WRIT;</p><p>  TXB[4]=2; </p><p>  if(KEY1==0) TXB[5]=0; else TXB[5]=1;</p><p> 

113、 if(KEY2==0) TXB[6]=0; else TXB[6]=1;</p><p>  CAN_SEND();</p><p>  // while(!CANBUS); //等待接收完標(biāo)志</p><p><b>  CANBUS=0;</b></p><p>  TXB[0]=ADDR; //總線地址<

溫馨提示

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

評論

0/150

提交評論