紅外線自動計數(shù)器_第1頁
紅外線自動計數(shù)器_第2頁
紅外線自動計數(shù)器_第3頁
紅外線自動計數(shù)器_第4頁
紅外線自動計數(shù)器_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 紅外線自動計數(shù)器設(shè)計 一設(shè)計方案的選擇1. 單片機(jī)的論證與選擇 方案一:選擇普通8051內(nèi)核的ST89C51單片機(jī),此單片機(jī)價格便宜,滿足本設(shè)計要求,但已經(jīng)停產(chǎn)故不宜選擇。方案二:選擇加強(qiáng)型8051內(nèi)核的STC89C2單片機(jī),此單片機(jī)價格便宜,功能強(qiáng)大,完全滿足本設(shè)計要求。方案三:采用飛思卡爾公司生產(chǎn)的MC9S12XS128單片機(jī),此單片機(jī)具有8路PWM,16路AD采集通道,2個UART,2個硬件SPI,具有背景調(diào)試功能,方便實(shí)時查看程序中全局變量的值,具有80個引腳,硬件資源相當(dāng)豐富。但其價格相對較高。綜合以上三種方案,為了方便控制,節(jié)約成本,故我們選擇方案二。2. 顯示器件的選擇方案一:

2、兩位一體共陽數(shù)碼管顯示,數(shù)碼管功耗低,價格便宜,顯示清晰,完全符合本設(shè)計要求。方案二:采用液晶屏1602顯示,1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊它有若干個5X7或者5X11等點(diǎn)陣字符位組成,每個點(diǎn)陣字符位都可以顯示一個字符。不過占用IO多,體積大,價格貴。綜合以上二種方案,為了減少硬件資源,節(jié)約成本,故我們選擇方案一。二硬件設(shè)計 1.硬件總方案確定 依據(jù)檢測原理和設(shè)計思想經(jīng)過細(xì)致比較研究得到如下總體設(shè)計方案: 直流輸入5v直流電源7805 CPU stc89c52程序下載口數(shù)碼管顯示復(fù)位位驅(qū)動紅外光電開關(guān)A蜂鳴器電路紅外光電開關(guān)B2. LE

3、D指示燈 它是半導(dǎo)體二極管的一種,可以把電能轉(zhuǎn)化成光能;常簡寫為LED。發(fā)光二極管與普通二極管一樣是由一個PN結(jié)組成,也具有單向?qū)щ娦浴.?dāng)給發(fā)光二極管加上正向電壓后,從P區(qū)注入到N區(qū)的空穴和由N區(qū)注入到P區(qū)的電子,在PN結(jié)附近數(shù)微米內(nèi)分別與N區(qū)的電子和P區(qū)的空穴復(fù)合,產(chǎn)生自發(fā)輻射的熒光。不同的半導(dǎo)體材料中電子和空穴所處的能量狀態(tài)不同。當(dāng)電子和空穴復(fù)合時釋放出的能量多少不同,釋放出的能量越多,則發(fā)出的光的波長越短。常用的是發(fā)紅光、綠光或黃光的二極管。發(fā)光二極管的反向擊穿電壓約5伏。它的正向伏安特性曲線很陡,使用時必須串聯(lián)限流電阻以控制通過管子的電流。3.三極管 半導(dǎo)體三極管又稱“晶體三極管”或“

4、晶體管”。在半導(dǎo)體鍺或硅的單晶上制備兩個能相互影響的PN結(jié),組成一個PNP(或NPN)結(jié)構(gòu)。中間的N區(qū)(或P區(qū))叫基區(qū),兩邊的區(qū)域叫發(fā)射區(qū)和集電區(qū),這三部分各有一條電極引線,分別叫基極B、發(fā)射極E和集電極C,是能起放大、振蕩或開關(guān)等作用的半導(dǎo)體電子器件。在本設(shè)計中選擇了PNP三極管用來驅(qū)動蜂鳴器個雙位數(shù)碼管。4. 雙位數(shù)碼管顯示的種類很多,從液晶顯示、發(fā)光二極管顯示到CRT顯示器等,都可以與微機(jī)連接。其中單片機(jī)應(yīng)用系統(tǒng)最常用的顯示是發(fā)光二極管數(shù)碼顯示器(簡稱LED顯示器)。液晶顯示器簡LCD。LED顯示器價廉,配置靈活,與單片接口方便,LCD可顯示圖形,但接口較復(fù)雜成本也較高。該電路使用雙位7

5、段LED構(gòu)成字型“8”,另外還有一個發(fā)光二極管顯示符號及小數(shù)點(diǎn)。這種顯示器分共陽極和共陰極兩種。這里采用共陽極LED顯示塊的發(fā)光二極管陽極共接,如下圖左所示,當(dāng)某個發(fā)光二極管的陰極為低電平時,該發(fā)光二極管亮。它的管腳配置如下圖右所示。圖左圖右VCC實(shí)際上要顯示各種數(shù)字和字符,只需在各段二極管的陰極上加不同的電平,就可以得到不同的代碼。這些用來控制LED顯示的不同電平代碼稱為字段碼(也稱段選碼)。如下表為七段LED的段選碼。 下表為七段LED的段選碼顯示字符共陽極段選碼dp gfedcba顯示字符共陽極段選碼dp gfedcba 0 C0H A 88H 1 F9H B 83H 2 A4H C C

6、6H 3 B0H D A1H 4 99H E 86H 5 92H F 8EH 6 82H P 8CH 7 F8H y 91H 8 80H 8 00H 9 90H“滅” FFH本系統(tǒng)顯示電路采用簡單實(shí)用兩位一體共陽數(shù)碼管,位碼用三極管驅(qū)動。5. STC89C52系統(tǒng)單片機(jī) STC89C52 單片機(jī)是深圳宏晶科技有限公司生產(chǎn)的一種單片機(jī),STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。STC89C52是一種低功

7、耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,

8、RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。最高運(yùn)作頻率35Mhz,6T/12T可選。6. 蜂鳴器播報 蜂鳴器采用三極管放大,單片機(jī)IO口控制,通過高低電平觸發(fā)使其工作。每當(dāng)檢測有人進(jìn)出時,播放一段優(yōu)美的音樂,人性化的旋律。7. 單片機(jī)復(fù)位電路單片機(jī)復(fù)位后的狀態(tài): 單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化狀態(tài),其中包括使程序計數(shù)器PC0000H,這表明程序從0000H地址單元開始執(zhí)行。單片機(jī)冷啟動后,片內(nèi)RAM為隨機(jī)值,運(yùn)行中的復(fù)位操作不改變片內(nèi)RAM區(qū)中的內(nèi)容,21個特殊功能寄存器復(fù)位后的狀態(tài)為確定值,見下表。值得指出的是,記住一些特殊功能寄存器復(fù)位后的主要狀

9、態(tài),對于了解單片機(jī)的初態(tài),減少應(yīng)用程序中的韌始化部分是十分必要的。說明:表中符號*為隨機(jī)狀態(tài);A00H,表明累加器已被清零;特殊功能寄存器初始狀態(tài)特殊功能寄存器初始狀態(tài)A00HTMOD00HB00HTCON00HPSW00HTH000HSP07HTL000HDPL00HTH100HDPH00HTL100HP0P3FFHSBUF不定IP*00000BSCON00HIE0*00000BPCON0*BPSW00H,表明選寄存器0組為工作寄存器組;SP07H,表明堆棧指針指向片內(nèi)RAM 07H字節(jié)單元,根據(jù)堆棧操作的先加后壓法則,第一個被壓入的內(nèi)容寫入到08H單元中;Po-P3FFH,表明已向各端口線

10、寫入1,此時,各端口既可用于輸入又可用于輸出;IP×××00000B,表明各個中斷源處于低優(yōu)先級;IE0××00000B,表明各個中斷均被關(guān)斷;51單片機(jī)在系統(tǒng)復(fù)位時,將其內(nèi)部的一些重要寄存器設(shè)置為特定的值,(在特殊寄存器介紹時再做詳細(xì)說明)至于內(nèi)部RAM內(nèi)部的數(shù)據(jù)則不變。系統(tǒng)復(fù)位是任何微機(jī)系統(tǒng)執(zhí)行的第一步,使整個控制芯片回到默認(rèn)的硬件狀態(tài)下。51單片機(jī)的復(fù)位是由RESET引腳來控制的,此引腳與高電平相接超過24個振蕩周期后,51單片機(jī)即進(jìn)入芯片內(nèi)部復(fù)位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET引腳轉(zhuǎn)為低電平后,才檢查EA引腳是高電平或低電平

11、,若為高電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會執(zhí)行外部程序。9.數(shù)碼管顯示電路采用兩組雙位共陽數(shù)碼管,實(shí)現(xiàn)人體計數(shù),段選分別接P0口和P1口,位選通過PNP三極管放大,然后接單片機(jī)I/O口。數(shù)碼管動態(tài)顯示1 動態(tài)顯示概念用數(shù)碼管顯示信息時,由于每個數(shù)碼管至少需要8 個I/O 口,如果需要多個數(shù)碼管,則需要太多I/O 口,而單片機(jī)的I/O 口是有限的。在實(shí)際應(yīng)用中,一般采用動態(tài)顯示的方式解決此問題。 在編程時,需要輸出段選和位選信號,位選信號選中其中一個數(shù)碼管,然后輸出段碼,使該數(shù)碼管顯示所需要的內(nèi)容,延時一段時間后,再選中另一個數(shù)碼管,再輸出對應(yīng)的段碼,高速交替。例如需要顯示數(shù)字“12”

12、時,先輸出位選信號,選中第一個數(shù)碼管,輸出1 的段碼,延時一段時間后選中第二個數(shù)碼管,輸出2 的段碼。把上面的流程以一定的速度循環(huán)執(zhí)行就可以顯示出“12”,由于交替的速度非???,人眼看到的就是連續(xù)的“12”。 在動態(tài)顯示程序中,各個位的延時時間長短是非常重要的,如果延時時間長,則會出現(xiàn)閃爍現(xiàn)象;如果延時時間太短,則會出現(xiàn)顯示暗且有重影。 三軟件設(shè)計紅外自動計數(shù)器主要由光電傳感檢測電路、進(jìn)出門處理與識別電路、中央處理顯示電路、數(shù)碼管顯示電路,蜂鳴器播報音樂電路組成。鑒于單片機(jī)技術(shù)比較成熟,且開發(fā)過程中可以利用的資源和工具豐富、價格便宜、成本低。故設(shè)計用C語言對其編程并燒錄到芯片內(nèi)部,C語言表達(dá)和

13、運(yùn)算能力比較強(qiáng),且具有很好的可移植性和硬件控制能力。采用KEIL51的C52編譯器。KEIL Uvision3是眾多單片機(jī)應(yīng)用開發(fā)軟件中的優(yōu)秀軟件之一,它支持眾多不同公司的構(gòu)架的芯片,集編輯、編譯、仿真等于一體,同時還支持PLM,匯編和C語言的程序設(shè)計,它的界面和常用的微軟VC+的界面相似,界面友好,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強(qiáng)的功能。硬件設(shè)計和軟件設(shè)計是電子設(shè)計中必不可少的內(nèi)容,為了滿足設(shè)計的功能和指標(biāo)的要求,我們必須在開始設(shè)計的時候就要考慮到硬件和軟件的協(xié)調(diào);不然不是造成硬件資源的浪費(fèi)就是增加軟件實(shí)現(xiàn)時困難和復(fù)雜程度,甚至造成信號的斷層,即使硬件和軟件能單獨(dú)使用,卻不能使它們

14、組成的系統(tǒng)工作。故在設(shè)計的過程中必須考慮軟硬件的處理能力以及它們的接口是否兼容,實(shí)現(xiàn)軟硬件的信號過渡。其次設(shè)計時硬件之間應(yīng)盡可能減小聯(lián)系,只要把必要的信號線相連則可。這樣做的優(yōu)點(diǎn)是:首先,調(diào)試時可以減少很多不必要的麻煩,因?yàn)殡娐肥窍鄬Κ?dú)立的,故在調(diào)整電路參數(shù)值時其影響和干擾就小,在滿足發(fā)射和接收模塊的要求后可單獨(dú)對控制模塊進(jìn)行調(diào)整;再者,當(dāng)出現(xiàn)問題時檢查電路就容易縮小問題的范圍,使得排錯效率高。由于硬件的分離,在軟件的調(diào)試時就可以單獨(dú)針對控制模塊。 1. 進(jìn)出方向控制程序方向的判斷,是通過紅外光電開關(guān)檢測到物體的前后順序不同來判斷的,當(dāng)?shù)谝粋€光電開關(guān)先檢測到人通過,接著第二個光電開關(guān)檢測到有人

15、通過,說明有人進(jìn)門,相反,則有人出門。具體控制程序如下:void direction(void) if(dirvalue=0x18)if(hongwai1=1)dirvalue>>=1;if(hongwai2=1)dirvalue<<=1;while(hongwai1|hongwai2);else if(dirvalue=0x0c)if(hongwai2=1)num1+;yuyin=1;while(hongwai2);dirvalue=0x18;if(num1=99)num1=99; yuyin=0;else if(dirvalue=0x30)if(hongwai1=1

16、)num2+;yuyin=1;while(hongwai1);dirvalue=0x18;if(num2=99)num2=99; yuyin=0; 定義方向初值流程圖紅外開關(guān)A先有效紅外開關(guān)B先有效方向左移一位方向右移一位紅外開關(guān)B先有效紅外開關(guān)A有效出門數(shù)碼管加一,蜂鳴器播放音樂進(jìn)門數(shù)碼管加一,蜂鳴器播放音樂設(shè)計中采用了兩組雙位共陽數(shù)碼管,因此,顯示函數(shù)分別對應(yīng)display1()和display2()兩個函數(shù),在動態(tài)顯示程序中,各個位的延時時間長短是非常重要的,如果延時時間長,則會出現(xiàn)閃爍現(xiàn)象;如果延時時間太短,則會出現(xiàn)顯示暗且有重影。具體程序如下:void display1(uchar

17、numdis) uchar shi,ge;shi=numdis/10;ge=numdis%10;P0=Tabshi;a=0;delayms(5);a=1;P0=Tabge;b=0;delayms(5);b=1;void display2(uchar numdis) uchar shi,ge;shi=numdis/10;ge=numdis%10;P2=Tabshi;c=0;delayms(5);c=1;P2=Tabge;d=0;delayms(5);d=1; 2.軟件流程框圖開始系統(tǒng)初始化YYK1按下K2按下K2按下K1按下數(shù)碼管1加一,進(jìn)門指示燈閃爍一次蜂鳴器播報數(shù)碼管2加一,出門指示燈閃爍一

18、次,蜂鳴器播報K1,K2順序檢測3.程序#include"reg52.h"#define uchar unsigned char#define uint unsigned int#include<intrins.h>sbit hongwai1=P36; /位定義模擬紅外光電開關(guān)1接口sbit hongwai2=P37; /位定義模擬紅外光電開關(guān)2接口sbit a=P10; /第一個數(shù)碼管十位sbit b=P11; /第一個數(shù)碼管各位sbit c=P12; /第二個數(shù)碼管十位sbit d=P13; /第二個數(shù)碼管各位sbit jin=P35; /進(jìn)門指示燈端口sb

19、it chu=P34; /出門指示燈端口uchar dirvalue=0x18; /方向開始賦初值void delayms(uint); /Tab為數(shù)碼管顯示值,存入一個數(shù)組內(nèi)void direction(void); /聲明按鍵掃描函數(shù)uchar code Tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;unsigned char num1=0,num2=0; /num為被顯示的數(shù)字void display1(uchar numdis) /顯示函數(shù)1 uchar shi,ge;shi=numdis/10; /將數(shù)扯開到十位ge=numdis%10; /將數(shù)扯開到各位P0=Tabshi; /送十位數(shù)a=0; /打開位選delayms(5); /延時a=1; /關(guān)閉位選P0=Tabge; /送個位數(shù)b=0; /打開位選delayms(5); /延時b=1; /關(guān)閉位選void display2(uchar numdis) /顯示函數(shù)2 uchar shi,ge; /同上shi=numdis/10;ge=numdis%10;P2=Tabshi;c=0;delayms(5);c=1;P2=Tabge;d=0;del

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論