基于單片機的紅外鬧鐘裝置設計與實現_第1頁
基于單片機的紅外鬧鐘裝置設計與實現_第2頁
基于單片機的紅外鬧鐘裝置設計與實現_第3頁
基于單片機的紅外鬧鐘裝置設計與實現_第4頁
基于單片機的紅外鬧鐘裝置設計與實現_第5頁
已閱讀5頁,還剩55頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上精選優質文檔-傾情為你奉上專心-專注-專業專心-專注-專業精選優質文檔-傾情為你奉上專心-專注-專業廣州大學松田學院畢業論文(設計)題 目 基于單片機的紅外鬧鐘裝置設計與實現 二一三 年 六 月基于單片機的紅外鬧鐘裝置設計與實現摘要: 隨著生活節奏的提高,事務必的繁多,人們越來越離不開電子產品的定時提醒功能,而最典型的就是早晨的鬧鐘喚醒,很多人有賴床和睡回籠覺的壞習慣,影響上班上學,本文中將針對此部分人群設計一款具有強制喚醒功能的智能感應鬧鐘。 單片機適用于機電一體化的智能產品,控制功能強,而熱釋電晶體作為紅外激光的一種較理想的探測器,被廣泛應用到各種自動化控制裝置中

2、,本設計基于以智能化強制喚醒方式,防止懶人賴床的設計理念,以STC89C52單片機控制為核心,結合DS1302時鐘芯片,1602 LCD液晶屏,按鍵電路,熱釋電紅外傳感器模塊,周期性遮光裝置。除了基本的鬧鐘功能,可以設置并且顯示年、月、日、時、分、秒、星期,主要實現智能紅外感應功能,到達設置時間,能自能檢測床上一定范圍內有無存在人體,有則驅動鬧鈴并延時檢測,無則延時感應檢測。設計特色在于鬧鐘理念的創新,及熱釋電紅外傳感器對靜止人體的感應敏感度低的問題解決。關鍵詞:STC89C52,1602 液晶顯示屏,熱釋電紅外傳感器,DS1302時鐘芯片 Based on single chip micro

3、computer infrared alarm device design and implementationAbstract:With the improvement of life rhythm, the transaction will be a variety of perspectives, people more and more inseparable from electronic products regularly remind function, and the most typical is the alarm clock wake up in the morning

4、 and many people depend on the bed and sleep up bad habits, and affected to work or school, this article in view of this part design a crowd has forced intelligent sensing alarm clock wake up function.Microcontroller is applicable to mechanical and electrical integration of intelligent product, cont

5、rol function is strong, the pyroelectric crystal as an ideal detector, infrared laser is widely applied to various kinds of automation control device, this design is based on intelligent forced wake up way, prevent the lazy bed design concept, STC89C52 singlechip control as the core, based on DS1302

6、 clock chip, 1602 LCD screen, button circuit, pyroelectric infrared sensor module, periodic shading device. In addition to the basic alarm clock function, can set up and display year, month, day, hours, minutes, seconds, weeks, and main function of intelligent infrared induction to set a time, and c

7、an detect the bed whether exist within a certain range of the human body, has the drive alarms and delay detection, no delay induced detection. Design feature is that alarm clock concept innovation, pyroelectric infrared sensor and low sensitivity to static human body induction of problem solving.Ke

8、ywords: STC89C52, 1602 LCD, Pyroelectric infrared sensor, DS1302 clock chip目 錄 TOC o 1-3 h z u 1 緒 論1.1單片機與熱釋電紅外傳感器的應用1.1.1單片機的應用由于單片機具有顯著的優點,它已成為科技領域的有力工具,人類生活的得力助手。它的應用遍及各個領域,主要表現的幾個方面:單片機在智能儀表中的應用,單片機在機電一體化中的應用,單片機在實時控制中的應用,單片機在分布式多機系統中的應用,單片機在人類生活中的應用。1.1.2 熱釋電紅外傳感器的應用熱釋電傳感器開發成功至今已經有30年左右的歷史,它是目

9、前人體探測方面性價比最好的傳感器,在感應范圍內無人體時,視場熱源恒定,一旦運動的人體進入其范圍,紅外場發生波動,傳感器接收到的輻射通量產生變化,從而觸發控制裝置。從誕生起就被應用于入侵警告、自動水閥、火災報警、照明設備的自動控制開關等領域。隨著器件生產工藝的成熟和性能不斷改善,熱釋電紅外傳感器在這些領域的應用也更加深入和廣泛。如今國外一些熱釋電傳感器在軍用民用方面又有許多新的進展,例如:微動檢測、空調設備的智能控制、耳孔式體溫計、非制冷焦平面列陣等。1.2 單片機與熱釋電紅外傳感器的結合單片機的智能化系統控制,配合熱釋電紅外傳感器的靈活多變,可以開發出許多更加方便更具新意的產品或者設備,為我們

10、的生活及工作帶來便利。現今已有許多例子,典型的有兩者結合構成的安防系統紅外報警裝置,自動空氣凈化系統,智能感應臺燈等。兩者的結合可廣泛運用于生產設備,家用電器,辦公配置,公共設施等領域,以新的理念打造新的應用,實現更多意想不到的功能,在智能儀表中的應用,機電一體化中的應用,在不定時控制中的應用,在人類生活中的應用,在許多的領域應用前景看好。比如:在房間無人時會自動停機的空調機、飲水機。電視機能判斷無人觀看或觀眾已經睡覺后自動關機的機構。開啟監視器或自動門鈴上的應用。結合攝影機或數碼照相機自動記錄動物或人的活動等等。我們可以根據自己的奇思妙想,結合其它電路開發出更加優秀的新產品。或自動化控制裝置

11、。本設計是一個新型的例子,巧妙地結合兩者,應用于生活用品,也可以說小家電。鬧鐘通常用于早晨喚床,以免因為貪睡賴床誤了上班上課的時間,目前大眾使用的鬧鐘,鈴聲響起時,只要伸手隨意按下開關,鬧鈴就會停下來,這種隨意性助長了“再睡一會”的賴床心理,人們往往遲到誤點之后才會后悔不已,但是又很難靠自己改變賴床的不良習慣,為工作學習帶來許多不良影響。本課題設計一種新型的紅外感應式鬧鐘,具有傳統的鬧鈴功能,也可以自動感應在預設的時刻使用者是否還在賴床,并通過自動控制電路來控制鬧鐘來進行強制性提醒。2 設計要求與方案論證2.1設計要求具有年、月、日、星期、時、分、秒顯示功能;具備年、月、日、星期、時、分、秒校

12、準功能;具有鬧鐘顯示、調節設定、鳴叫功能;具有檢測人體是否在床上一定范圍功能。2.2系統基本方案選擇及論證2.2.1單片機芯片方案的選擇及論證方案一: 使用STC89C52芯片作為硬件核心。STC89C52具備8KB ROM 存儲空間,512字節數據存儲空間,還帶有2K字節的EEPROM存儲空間,與MCS-51系列單片機完全兼容,STC89C52可以通過串口下載。方案二:采用AT89S52。AT89S52具備8K字節程序存儲空間,256字節的數據存儲空間,但沒有EEPROM存儲空間,也與MCS-51系列單片機完全兼容,而且具有在線編程可擦除技術。兩種單片機都完全能夠滿足設計需要,比較兩者,ST

13、C89C52比ATS89C52便宜,且抗干擾能力強。考慮到成本因素,決定選用STC89C52。2.2.2顯示模塊選擇方案和論證方案一:采用點陣式數碼管顯示。由八行八列的發光二極管組成的點陣式數碼管,對于顯示文字比較適合,用來顯示數字既浪費成本又高,所以不用此種作為顯示。方案二:采用LED數碼管動態掃描。LED數碼管有價格便宜和適合顯示數字的優點,但是缺點也很明顯,那就是功耗較大,容量不足,所以排除此方案。方案三:采用LCD液晶顯示屏。液晶顯示屏的顯示功能很強,可顯示大量文字字符,顯示效果清晰,性價比十分突出,1602液晶屏足夠使用,所以采用了LCD液晶屏作為顯示方案。2.2.3時鐘芯片的選擇方

14、案和論證方案一:直接采用單片機定時計數器提供秒信號,使用程序實現年、月、日、星期、時、分、秒計數。采用此方案可以減少芯片的使用,節省成本,但是,考慮到這樣實現的時間誤差較大。所以不采用此方案。方案二:采用DS1302時鐘芯片實現時鐘,DS1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補償的年進行計數,而且精度高,工作電壓2.5V5.5V范圍內,2.5V時耗電小于300nA。綜合考慮設計的實用性,故采用此方案。2.3電路設計最終方案決定綜上各方案所述,STC89C52有價格和抗干擾能力的優勢,液晶屏性價比高,DS1302精度高,故對此次作品的方案選定: 采用STC

15、89C52單片機作為主控制系統;采用DS1302作為時鐘電路;采用1602 LCD液晶作為顯示器件。3 主要元件介紹3.1 STC89C523.1.1 STC89C52主要功能及PDIP封裝STC89C52主要功能如表1所示,其PDIP封裝如圖1所示。表1 STC89C52主要功能主要功能特性兼容MCS51指令系統8K可反復擦寫Flash ROM32個雙向I/O口256x8bit內部RAM3個16位可編程定時/計數器中斷時鐘頻率0-24MHz2個串行中斷可編程UART串行通道2個外部中斷源共6個中斷源2個讀寫中斷口線3級加密位低功耗空閑和掉電模式軟件設置睡眠和喚醒功能3.1.2 STC89C5

16、2引腳介紹 主電源引腳(2根)VCC(Pin40):電源輸入,接5V電源GND(Pin20):接地線外接晶振引腳(2根)XTAL1(Pin19):片內振蕩電路的輸入端XTAL2(Pin20):片內振蕩電路的輸出端控制引腳(4根)RST/VPP(Pin9):復位引腳,引腳上出現2個機器周期的高電平將使單片機復位。ALE/PROG(Pin30):地址鎖存允許信號PSEN(Pin29):外部存儲器讀選通信號EA/VPP(Pin31):程序存儲器的內外部選通,接低電平從外部程序存儲器讀指令,如果接高電平則從內部程序存儲器讀指令。可編程輸入/輸出引腳(32根)STC89C52單片機有4組8位的可編程I/

17、O口,分別位P0、P1、P2、P3口,每個口有8位(8根引腳),共32根。P0口(Pin39Pin32):8位雙向I/O口線,名稱為P0.0P0.7P1口(Pin1Pin8):8位準雙向I/O口線,名稱為P1.0P1.7 P2口(Pin21Pin28):8位準雙向I/O口線,名稱為P2.0P2.7 P3口(Pin10Pin17):8位準雙向I/O口線,名稱為P3.0P3.7圖1 STC89C52 PDIP封裝圖3.2 DS1302時鐘芯片介紹3.2.1 DS1302概述DS1302是一款實時時鐘芯片,由美國DALLAS公司推出,具有低功耗卻高性能并且帶31字節RAM的特點,提供秒、分、時、星期

18、、月和年,一個月小與月大31天時可以自動調整,具備閏年補償功能,工作電壓寬,2.55.5V,雙電源供電模式(主電源和備用電源),同時提供對后備電源進行涓細電流充電的能力,采用SPI三線接口與CPU進行同步通信。DS1302如圖2所示。圖2 DS1302封裝圖3.2.2 DS1302引腳介紹各引腳功能為:Vcc1: 主電源;Vcc2:備用電源。當Vcc2Vcc1+0.2V時,由Vcc2向DS1302供電;當Vcc2Vcc1時,由Vcc1向DS1302供電。SCLK:串行時鐘輸入端,控制數據的輸入與輸出I/O: 三線接口時的雙向數據線 CE: 輸入信號,在讀、寫數據期間必須為高3.2.3 DS13

19、02時鐘芯片工作原理DS1302工作時為了對任何數據傳送進行初始化,需要將復位腳(RST)置為高電平且將8位地址和命令信息裝入移位寄存器。數據在時鐘(SCLK)的上升沿串行輸入,前8位指定訪問地址,命令字裝入移位寄存器后,在之后的時鐘周期,讀操作時輸出數據,寫操作時輸出數據。時鐘脈沖的個數在單字節方式下為8+8(8位地址+8位數據),在多字節方式下為8加最多可達248的數據。對DS1302的操作就是對其內部寄存器的操作,DS1302內部共有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為BCD碼形式。此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鐘突發寄存器及與RA

20、M相關的寄存器等。時鐘突發寄存器可一次性順序讀寫除充電寄存器以外的寄存器。3.2.4 DS1302內部結構圖圖3 DS1302內部結構圖3.3 1602字符液晶介紹3.3.1 1602液晶概述工業字符型液晶,1602代表的意思是顯示的內容為16*2,可以同時顯示兩行各為16個字。市面上常見的1602字符液晶有兩種,一種顯示的是綠色背光黑色字體,另一種顯示藍色背光白色字體,目前市面上字符液晶絕大多數是基于HD44780液晶芯片的,控制原理是完全相同的。本課題所用1602液晶模塊,顯示屏是藍色背光白色字體,如圖6所示。 圖4 1602字符液晶3.3.2 1602引腳介紹表2 1602字符液晶引腳說

21、明編號符號引腳說明編號符號引腳說明1GND電源地2VCC電源正極3VO液晶顯示對比度調節端4RS數據/命令選擇端5R/W讀寫選擇6E使能信號7D0數據口8D1數據口9D2數據口10D3數據口11D4數據口12D5數據口13D6數據口14D7數據口15BLA背光電源正16BLK背光電源負各個引腳具體功能說明:第1腳:GND為地電源。第2腳:VCC接5V正電源。第3腳:VO為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產生重影,使用一個1K的電位器調整對比度。第4腳:RS為寄存器選擇,高電平時選擇數據寄存器,低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,

22、高電平時進行讀操作,低電平時進行寫操作。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。第714腳:DB0DB7為8位雙向數據線。第1516腳:背光燈電源。3.3.3 1602字符液晶使用基本操作時序基本操作時序,如表3:表3 1602液晶屏操作時序操作輸入輸出讀狀態RSL,RWH,EHD0D7狀態字寫指令RSL,RWL,D0D7指令碼,E高脈沖無讀數據RSH,RWH,EHD0D7數據寫數據RSH,RWL,D0D7數據,E高脈沖無3.4 熱釋電紅外傳感器介紹熱釋電紅外傳感器是一種被動式調制型溫度敏感器,也稱熱探測型傳感器。可用來直接接收目標物體發射的紅外線并將其轉換為電壓

23、信號輸出,且不需要紅外發射傳感器。熱釋電紅外傳感器反應速度快、靈敏度高、準確度高、使用方便,尤其是可以進行非接觸式測量。主要應用在各類入侵報警、自動開關、非接觸式測溫、火焰報警、設備故障的診斷等自動化設施中這種熱釋電紅外傳感器能以非接觸形式檢測出人體輻射的紅外線,并將其轉變為電壓信號,同時,它還能鑒別出運動的生物與其它非生物。熱釋電紅外傳感器既可用于防盜報警裝置,也可以用于自動控制、接近開關、遙測等領域。用它制作的防盜報警器與目前市場上銷售的許多防盜報警器材相比,具有如下特點:(1)不需要用紅外線或電磁波等發射源(2)靈敏度高、控制范圍大。(3)隱蔽性好,可流動安裝。3.4.1熱釋電紅外傳感器

24、結構熱釋電紅外傳感器由濾光片、PZT熱電元件、支承環、高阻電阻、場效應管等構成,結構如圖5(a)所示。內部電路如如圖5(a),使用時D端接電源正極,G端接電源負極,S端為信號輸出。 圖5 熱釋電紅外傳感器內部結構和電路3.4.2 BISS0001紅外傳感器信號處理芯片BISS001 16腳DIP封裝如圖6。圖6 BIS0001封裝BISS0001管腳說明如表4。表4 BISS0001管腳說明引腳名稱I/O說明1AI可重復觸發和不可重復觸發選擇端。當A為“1”時,允許重復觸發;反之,不可重復觸發2VOO控制信號輸出端。由VS的上跳前沿觸發,使Vo輸出從低電平跳變到高電平時視為有效觸發。在輸出延遲

25、時間Tx之外和無VS的上跳變時,Vo保持低電平狀態。3RR1-輸出延遲時間Tx的調節端4RC1-輸出延遲時間Tx的調節端5RC2-觸發封鎖時間Ti的調節端6RR2-觸發封鎖時間Ti的調節端7VSS-工作負端8VRFI參考及復位輸入端。通常接VDD,當接“0”時可使定時器復位9VCI觸發禁止端。當VcVR時允許觸發(VR0.2VDD)10IB-運算放大器偏置電流設置端11VDD-工作電源正端122OUTO第二級運算放大器的輸出端132IN-I第二級運算放大器的反相輸入端141IN+I第一級運算放大器的同相輸入端151IN-I第一級運算放大器的反相輸入端161OUTO第一級運算放大器的輸出端BIS

26、S0001是由運算放大器、電壓比較器、狀態、延遲時間定時器以及封鎖時間定時器等構成的數模混合專用集成電路。內部結構如圖7所示。圖7 BIS0001內部結構4 系統軟硬件設計4.1總體電路設計總體電路包括6個電路模塊,按鍵電路模塊、DS1302時鐘電路模塊、紅外感應人體探測模塊、LCD顯示電路、鬧鈴電路。整體硬件框架如圖8。STCSTC89C52按鍵模塊DS1302時鐘模塊人體感應探測感模塊LCD顯示模塊鬧鈴模塊圖8 硬件框圖4.2 STC89C52單片機最小系統最小系統是指能進行正常工作的最簡單電路。STC89C52最小應用系統電路如圖9所示。保證單片機系統正常運行的最基本三部分電路為:1.電

27、源電路:VCC引腳一般接直流穩壓電源+5V,引腳GND接地,或者電源負極,電壓范圍在4V到5.5V之間。2.時鐘電路:芯片引腳18、19外接晶振及電容,晶振的頻率決定單片機的工作頻率,STC89C52的工作頻率在233MHz之間,一般選取12MHz晶振,兩個電容一般取值3pF。3.復位電路:一般RST引腳上保持24個工作主頻周期的高電平,單片機可完成復位,但是復位電路要使RST保持10ms以上的高電平才能保證系統可靠復位。如圖電路中,復位電路具有上電自動復位功能,在正常運行時,按復位按鈕也可對單片機復位。除了以上缺一不可的三部分,還包含片內外程序存儲器選擇電路、輸入/輸出接口電路。圖9 STC

28、89C52最小系統4.3時鐘電路設計時鐘電路主要由時鐘芯片DS1302、備用電池、晶振等幾部分組成,備份電源能夠使時鐘芯片在無主電源供電的情況下繼續工作,32.768Hz的外接晶振提供標準的秒脈沖,用戶可以根據需要通過單片機的控制來自行設置,接口如圖10所示。圖10 DS1302時鐘電路4.4顯示電路設計顯示電路由單片機驅動1602液晶屏構成,單片機與1602液晶屏的連接如圖11所示,這里需要提到的是,單片機P0.0P0.7口和1602液晶屏的714口接上了10K歐的上拉電阻,提高P0口的驅動能力,穩定信號,如圖12所示。圖11 1602液晶屏顯示電路圖12 上拉電阻4.5鬧鈴電路設計鬧鈴電路

29、較為簡單,主體為蜂鳴器,電路圖如圖13。圖13 蜂鳴器鬧鈴電路4.6按鍵電路設計按鍵電路由四個獨立按鍵組成,如圖14。S1連接單片機P1.0口,為時間功能鍵;S2連接P1.1口,為上調按鍵;S3連接P1.2口,為下調按鍵;S4連接P1.3口,為鬧鈴設置鍵,詳細功能將在軟件設計中提到。圖14 按鍵電路4.7人體探測模塊設計4.7.1設計思路主要由第三章主要元器件中介紹的熱釋電紅外傳感器探頭(具體型號LHI778)和紅外傳感器信號處理芯片組成,當人在檢測范圍內,菲涅爾透鏡可將人體輻射的紅外線聚焦到熱釋電紅外探測元上,熱釋電紅外傳感器是模塊的核心器件,它可以把人體的紅外信號轉化成電信號,然后進行信號

30、處理。人體探測模塊設計思路如圖15所示。待測目標熱釋電紅外傳感器待測目標熱釋電紅外傳感器菲涅爾透鏡信號處理及輸出圖15 人體探測模塊設計框圖4.7.2電路設計模塊總體電路如圖16所示,包含帶帶通濾波電路,及以BISS0001為核心的一級放大電路、二級放大電路、檢測電路。當人體輻射的紅外線通過菲涅爾透鏡被聚焦在熱釋電紅外傳感器的探測元上時,電路中的傳感器將輸出電壓信號,然后使該信號先通過一個由C2、R4、R5組成的帶通濾波器,進行隔交,限幅,整流。由于熱釋電紅外傳感器輸出的探測信號電壓十分微弱(通常僅有1mV 左右),而且是一個變化的信號,同時菲涅爾透鏡的作用又使輸出信號電壓呈脈沖形式(脈沖電壓

31、的頻率由被測物體的移動速度決定,通常為0.1Hz-10Hz右),所以應對熱釋紅外傳感器輸出的電壓信號進行放大。經過濾波器的信號輸入到BISS0001的14管腳,經過14、15管腳里的運算放大器OP1,一級放大后由16口輸出,輸出信號由C104、C4、R7進行耦合,其后由13管腳輸入,給運算放大器OP2進行二級放大,由12管腳輸出。檢測電路作用是,當傳感器探測到人體輻射的紅外線信號并經放大后送給比較器時,若信號幅度超過比較器的上下限,系統將輸出高電平信號;無異常情況時則輸出低電平信號。由12管腳輸出的信號再經由電壓比較器COP1和COP2構成的雙向鑒幅器、狀態控制器處理后,從2端口輸出。 圖16

32、 人體探測模塊電路4.7.3探測模塊與單片機接口由于單片機外部中斷觸發方式只能是低電平或者下降沿,而本文采用的HC-SR501是高電平輸出,所以的信號輸出端要外接反相器,本設計采用74LS04,接法如圖17所示。圖17 探測模塊引腳連接圖4.7.4 HC-SR501熱釋電人體感應模塊介紹為了簡化電路,提高集成度,本設計采用的購買的現成HC-SR501熱釋電人體感應探測模塊,基本符合設計電路。引腳如圖18所示,實物圖如圖19所示。其大部分元件采用貼片式,有小巧,集成度高,使用靈活的優點,可基本實現所需功能,并附帶其他功能,現介紹如下。(1) 全自動感應:當有人進入其感應范圍則輸入高電平,人離開感

33、應范圍則自動延時關閉高電平。輸出低電平。(2) 光敏控制(可選):模塊預留有位置,可設置光敏控制,白天或光線強時不感應。光敏控制為可選功能,出廠時未安裝光敏電阻。如果需要,可另行購買光敏電阻自己安裝。(3) 兩種觸發方式:L不可重復,H可重復。可跳線選擇,默認為H。 A、不可重復觸發方式:即感應輸出高電平后,延時時間一結束,輸出將自動從高電平變為低電平。B、可重復觸發方式: 即感應輸出高電平后,在延時時間段內,如果有人體在其感應范圍內活動,其輸出將一直保持高電平,直到人離開后才延時將高電平變為低電平(感應模塊檢測到人體的每一次活動后會自動順延一個延時時間段,并且以最后一次活動的時間為延時時間的

34、起始點)。(4)具有感應封鎖時間(默認設置:0.2秒):感應模塊在每一次感應輸出后(高電平變為低電平),可以緊跟著設置一個封鎖時間,在此時間段內感應器不接收任何感應信號。此功能可以實現(感應輸出時間和封鎖時間)兩者的間隔工作,可應用于間隔探測產品;同時此功能可有效抑制負載切換過程中產生的各種干擾。(5)工作電壓范圍寬:默認工作電壓DC5V至20V(6)微功耗:靜態電流65微安,特別適合干電池供電的電器產品。(7)輸出高電平信號:可方便與各類電路實現對接。圖18 HC-SR501的管腳分布圖圖19 HC-SR501熱釋電人體探測模塊實物圖4.3總體硬件電路原理圖綜合以上6部分電路模塊構成本次設計

35、基于單片機的紅外鬧鐘裝置,總體電路如圖,為了簡化電路,人體感應模塊總體硬件圖中只體現出HC-SR501模塊整體外形和引腳連接,模塊具體電路參考圖20。圖20 總體電路原理圖5系統的軟件設計5.解釋1主程序設計老師,由于板式問題,解釋文字在此圖后面,放在前面的話圖太大只能放于后面一頁,會造成此頁留白太多。解釋老師,由于板式問題,解釋文字在此圖后面,放在前面的話圖太大只能放于后面一頁,會造成此頁留白太多。顯示時間顯示時間進入調時模式進入鬧鐘設置模式將時間寫入DS1302讀取DS1302中的時間開始初始化LCD、DS1302、定時器判斷調時按鍵是否按下判斷鬧鐘設定鍵是否按下NYYN鬧鈴程序圖21 主

36、程序設計框圖軟件設計部分分為兩大步組成,首先設計一個較為常見的包含鬧鐘的萬年歷程序作為主程序,主要包含初始化程序、按鍵掃描程序、鬧鐘設定掃描程序、顯示程序、DS1302讀寫程序、鬧鈴程序,再以外部中斷程序的模式引入紅外感應模塊的作用。軟件設計部分分為兩大步組成,首先設計一個較為常見的包含鬧鐘的萬年歷程序作為主程序,主要包含初始化程序、按鍵掃描程序、鬧鐘設定掃描程序、顯示程序、DS1302讀寫程序、鬧鈴程序,再以外部中斷程序的模式引入紅外感應模塊的作用。主程序如圖21所示,包含初始化程序、按鍵掃描程序、鬧鐘設定掃描程序、顯示程序、DS1302讀寫程序、鬧鈴程序。5.2子程序設計(1)初始化程序

37、為了使各部分各模塊正常工作,必須進行相應的初始化,包括液晶屏的初始化、DS1302的初始化、定時器的初始化。(2)顯示程序 本設計中的顯示程序主要是整個界面時間日期鬧鐘的實時顯示,分兩行顯示,第一行顯示年月日周和鬧鈴標示,第二行顯示實時時間時分秒和鬧鈴設置時間時分,再有設置調整時的寫入顯示。(3)DS1302讀寫程序 DS1302的讀寫,需要有讀寫操作的開啟和禁止,時間日期星期的讀寫,BCD和十進制的互相轉換。(4)按鍵掃描程序 當系統檢測到按鍵S1被按下時,轉到相應程序處理,第一次按下S1,定時器關閉,秒閃爍,S2為上調按鍵,S3為下調按鍵,第二次按下S1,分閃爍,S2、S3作用如前,如上所

38、述S1依次按下實現秒分時周日月年的調節,S2、S3作為調節按鍵,第八次按下S1,定時器開啟,回到主程序。(5)鬧鐘設定掃描程序S4為鬧鐘功能鍵,S4第一次按下,定時器中斷關閉,鬧鐘標志作位為0;S4第二次按下,鬧鐘時閃爍,S2、S3實現上下調功能;S4第三次按下,鬧鐘分閃爍,可用S2、S3進行調節;S4第四次按下,鬧鐘標志位為1,定時器中斷開啟,回到主程序。(6)鬧鈴程序先判斷鬧鐘標志位是否為1,否則鬧鈴不響,是則判斷是否到鬧點及在鬧點后十分鐘之內,否則不響,是則判斷外部中斷是否觸發,否則不響,是則鬧鈴響。(7)外部中斷程序本設計的主要部分鬧鐘與人體紅外感應模塊的結合處就在于外部中斷的引入。能

39、處理中斷的功能部件被稱為中斷系統,能產生中斷請求的源被稱為中斷源,80C51單片機有5個中斷源,兩個外部中斷,兩個定時中斷,和一個串行中斷,要使用此類中斷,要先開總中斷(總中斷允許位EA=1)。外部中斷由P3.2(INT0)或者P3.3(INT1)端口線引入,可設置為低電平有效或者下降沿有效。下降沿觸發方式,當高電平向低電平轉變時,觸發產生,不論低電平持續多久都只會產生一次,所以,下降沿觸發適合以負脈沖形式輸入的外部中斷請求;低電平觸發方式,在低電平時間段內中斷一直有效,這就是說在電平沒有恢復之前中斷程序就已經執行完成而退出,那會在退出之后又再次進入中斷,本設計中要實現持續觸發響鈴,所以選擇低

40、電平觸發這種適合于外部中斷以低電平輸入的方式,接P3.2口,INT0外部中斷引入,IT0=1,外部中斷程序主要設置標志位,為鬧鈴程序所調用。6系統調試本次設計調試過程主要是在普中HC6800開發實驗板上進行,實驗板上硬件資源較為豐富,包含了STC89C52單片機、按鍵模塊,蜂鳴器,DS1302時鐘芯片,只需另外購置1602液晶顯示屏,紅外傳感模塊,反相器,搖擺器。6.1硬件調試該設計硬件部分并不十分復雜,首先按照復位電路,液晶顯示,按鍵輸入,蜂鳴器,DS1302電路,熱釋電紅外傳感模塊的順序進行分立調試,除了液晶顯示和紅外傳感模塊的調試,其他基本順利,當然最終這兩個模塊也調試完成。6.1.1

41、1602液晶屏的調試編寫了一段簡單的程序在液晶屏上顯示一段文字來調試液晶屏,插上開發板,液晶屏背光亮,但是屏幕無任何顯示,轉動開飯板上的滑動變阻器旋鈕調節無效,懷疑是液晶屏損壞,或者排針太短接觸不良,欲重新購買,后經耐心繼續嘗試,發現是由于旋動速度過快,需要慢慢調節才能調好對比度。6.1.2 紅外傳感模塊調試本次設計為簡化各模塊,使用的紅外傳感模塊應該為低電平輸出,但是由于知識的欠缺和粗心,購置了高電平輸出的模塊HC-SR501。為了節省成本,決定再加入反相器,所以調試也是用所購置的高電平輸出模塊加上反相器。開發板上有電源和接地的接口,也有8路LED燈模塊,所以只要將傳感模塊加上反相器接上一路

42、LED燈低電平輸入端,電源和地接好,就可調試,理想狀態下是感應范圍內有人,傳感模塊輸出高電平經過反相器轉換成低電平,此時LED燈亮,感應范圍內無人,則現象相反。可是在實際調試過程中發現,熱釋電紅外傳感器對靜止人體敏感度不高,當人體在感應范圍內處于準靜止狀態時,LED燈也是會熄滅的。一番調試,查找提高敏感度的辦法,始終沒辦法達到理想狀態,一度想更換成主動式的紅外傳感模塊,后來咨詢老師,老師發了一份包含了主動式紅外傳感器和被動式紅外傳感器的資料給我,里面提到了改善熱釋電紅外傳感器的方法,就是利用周期性的遮光來改善,于是我嘗試用條狀物體在傳感器前晃動,發現可行,在有周期遮光的情況下,即使人體靜止,L

43、ED燈也能亮著,于是決定加入獨立的周期遮光裝置,為了簡化過程,就使用搖擺器來進行周期性遮光,實驗結果基本達到目的要求。6.2軟件調試在編程前畫了流程框圖以便順利編程各程序結合,思路較為清晰,能夠按部就班進行調試。在未加入感應探測模塊外部中斷前,先對萬年歷鬧鐘進行調試,發現兩個問題:(1)讀取時間時出現部分顯示亂碼。 開始以為是液晶屏位置顯示指令有問題,或者是讀寫操作有錯誤,檢查并且參考其他相關論文程序附錄,修改調試,沒有解決問題,再仔細查看,發現程序設置中,部分使用char和uchar ,部分使用int定義,全部改作uchar定義后解決問題。(2)按鍵過于敏感不準確。調試按鍵設置,按一次卻出現

44、按幾次的效果,查閱資料參考相關程序,發現需要按鍵防抖。當我們按下按鍵時,不論速度有多快,都是接觸斷開接觸斷開的過程,可靠接觸的前面10至20毫秒就是抖動狀態,是不穩定狀態,抬起手指時也是如此。有此可見要正確獲取一次按鍵的信息,就要慮除前后的兩段抖動時間,以免計數錯誤。按鍵防抖有硬件方法和軟件方法,硬件方法里電容濾波法、觸發器法、中斷法都不易實現,所以選擇軟件方法,加入延時程序,并在按鍵掃描程序里調用,20ms延時去抖,基本解決問題。6.3系統聯調首先上電,直接顯示界面如圖22,未調節按動鬧鐘設置鍵,無顯示鬧鈴標志。圖22如圖23,按K1進入時間設置狀態,按的次數不同光標顯示的位置不同,從而進行

45、年、月、日、時、分、秒、的調整,按第8次時退出,按K2時間上調,K3時間下調。圖圖23如圖24,按K4進入鬧鐘調整狀態,按一次關定時器,時間停止顯示走動,鬧鐘標志位顯示0,按第二次光標顯示在鬧鈴時位置,此時可按K2、K3進行鬧鐘時調節,當按三次光標顯示在鬧鈴分位置,從而可使用K2、K3進行分的調整,按第四次鬧鐘標志位顯示1,退出調整狀態,開定時器,時間顯示走動。圖24整體功能調試,為了直觀顯示鬧鈴,使用LED燈代替,LED燈亮表示鬧鈴響,LED燈滅表示鬧鈴不響。首先設置鬧鐘時間,程序默認設置為鬧鈴時間后10分鐘內處于鬧鈴可觸發狀態。如圖25,先不加入周期遮光裝置搖擺器,人體靜止,鬧鈴不響(LE

46、D燈滅);如圖26,加入周期遮光裝置搖擺器,人體存在范圍內,即使靜止,鬧鈴也響(LED燈亮);如圖27,人體不存在范圍內則不響(LED燈不亮),調試成功。圖25圖26圖27參考文獻:1 張孝霖.紅外技術應用:光電光子器件及傳感器M.化學工業出版社,2004.2 付少波,付蘭芳.傳感器及其應用電路M.化學工業出版社,2011.3 郭天祥.新概念51單片機C語言教程:入門、提高、開發、拓展全攻略M.電子工業出版社,2011.4 楊天怡,黃勒.單片機原理及應用M.清華大學出版社,2010.5 張洪潤,呂泉傳.感器應用設計300例M.北京航空航天大學出版社,2008.6 高戈.熱釋電紅外線防盜報警器的

47、研制J.信息科技,2010(12).381-382.7 卿太全.熱釋電人體紅外傳感器原理與應用J.電子世界,1995(10).23-26.致謝大學四年的學習生活時光已經接近尾聲了,在此,我向母校,向父母親人、老師同學們表達我由衷的謝意。感謝母校廣州大學松田學院給了我大學四年深造的機會,讓我得以學習和提高;感謝家人對我四年以來的支持和關心,我的成長離不開你們的支持;感謝學校里各位老師領導的教導指引與幫助,希望我以后能不辜負你們的期望,成為一個成功的人;感謝那些陪我度過四年生活的同學,我們互相關心,互相學習的日子太過難忘,我們之間的情誼是生命中繽紛的色彩。這次畢業設計得到了許多老師和同學的幫助,特

48、別是廖老師耐心的指導,對我提出的疑問悉心一一解答,還有就是幾位給予我建議和提供元器件的同學。我再次真誠地向幫助過我的老師和同學表示感謝! 附錄源程序#include#include #define uint unsigned int#define uchar unsigned charsbit CLK_1302 = P36;/時鐘sbit DAT_1302 = P34;/數據sbit RST_1302 = P35;/ DS1302復位sbit LCD_RS = P26; /液晶控制端 sbit LCD_RW = P25;sbit LCD_EP = P27;sbit LED = P15;/與蜂鳴

49、器同一功能,替代蜂鳴器sbit settime = P10;/時間功能鍵,選擇時分秒年月日和星期的 sbit key_add = P11;/加1鍵 sbit key_dec = P12;/減1鍵sbit setalarm = P13;/鬧鐘功能鍵,選擇開關鬧鐘和時分的寫入sbit ACC0 = ACC0; sbit ACC7 = ACC7;uchar second,minute,hour,week,day,month,year,alarmhour=0,alarmminute=0;/時間和鬧鐘等的變量uchar settimemode=0,setalarmmode=3;/時間和鬧鐘的功能選擇標志

50、uchar alarmflag=0; /鬧鐘開關的標志位uchar code tab1 = 20 - - ;/液晶第一行默認顯示數據uchar code tab2 = : : 00:00;/液晶第二行默認顯示數據uchar code tab4 = MonTueWedThuFriSatSun;/星期的列表/*/* 函數聲明 */*/uchar bcd_dec(uchar bcd); /BCD碼轉十進制uchar dec_bcd(uchar dec); /十進制轉BCD碼void delay(uchar ms); /延時函數void lcd_init();/液晶初始化void write_1602

51、_wcmd(uchar com); /液晶寫入指令函數void write_1602_wdat(uchar dat);/液晶寫入數據函數void write_hms(uchar address,uchar dat);/1602寫時分秒void write_ymd(uchar address,uchar dat);/1602寫年月日void write_week(uchar num);/1602寫星期函數void init_1302();/1302初始化void write_1302_byte(uchar dat);/1302字節寫uchar read_1302_byte();/1302字節讀v

52、oid write_1302(uchar address,uchar dat);/1302地址寫uchar read_1302(uchar address);/1302地址讀void timer0_init();/定時器0初始化void keyscan();/按鍵掃描子程序void set_alarm();/鬧鐘設定掃描函數void alarm();/報時和鬧鐘函數uchar Eflag=0;uchar flag=0;/*/* 主函數 */*/void main()lcd_init(); /液晶初始化init_1302(); /1302初始化timer0_init(); /定時器0初始化whi

53、le(1)keyscan(); /掃描按鍵set_alarm(); /掃描設定鍵alarm(); /鬧時/* INT0中斷函數 */void counter0(void) interrupt 0 Eflag=1;/*/* BCD轉十進制 */*/uchar bcd_dec(uchar bcd)uchar decimal;decimal = bcd/16*10 + bcd%16;/高4位移到低4位return(decimal);/原高4位數據*10+低4位/*/* 十進制轉BCD */*/uchar dec_bcd(uchar decimal)uchar bcd;bcd = (decimal)/

54、10*16 + (decimal)%10;return(bcd);/*/* 延時函數 */*/void delay(uchar ms)uint i,j;for(i=ms;i0;i-)for(j=150;j0;j-);/*/* LCD初始化設定 */*/void lcd_init() uchar i;write_1602_wcmd(0 x38); /16*2顯示,5*7點陣,8位數據write_1602_wcmd(0 x0c); /顯示開,關光標write_1602_wcmd(0 x06); /移動光標write_1602_wcmd(0 x01); /清除LCD的顯示內容write_1602_w

55、cmd(0 x80);/第一行字符寫入的位置for(i=0;i11;i+)write_1602_wdat(tab1i);write_1602_wcmd(0 xc1);/第二行字符寫入的位置for(i=0;i14;i+)write_1602_wdat(tab2i);/*/* 寫指令到LCD */*/void write_1602_wcmd(uchar com)LCD_RS = 0;/置為寫入命令,低為寫指令LCD_RW = 0;P0 = com;/送入數據delay(1);LCD_EP = 1;/拉高使能端delay(1);LCD_EP = 0;/完成高脈沖,傳入數據到LCD/*/* 寫數據到L

56、CD */*/void write_1602_wdat(uchar dat)LCD_RS = 1; /置為寫入數據,高為寫數據LCD_RW = 0;P0 = dat; /送入數據delay(1);LCD_EP = 1; /拉高使能端delay(1);LCD_EP = 0; /完成高脈沖,傳入數據到LCD/*/* 寫時分秒到LCD */*/void write_hms(uchar address,uchar dat)uchar gw,sw;gw = dat%10;/分出個位數據sw = dat/10;/分出十位數據write_1602_wcmd(0 xc0+address);/在第二行對應位置顯

57、示write_1602_wdat(0 x30+sw);write_1602_wdat(0 x30+gw);/*/* 寫年月日到LCD */*/void write_ymd(uchar address,uchar dat)uchar gw,sw;gw = dat%10;/分出個位數據sw = dat/10;/分出十位數據write_1602_wcmd(0 x80+address);/在第一行對應位置顯示write_1602_wdat(0 x30+sw);write_1602_wdat(0 x30+gw);/*/* 寫星期到LCD */*/void write_week(uchar num)uch

58、ar i;write_1602_wcmd(0 x80+0 x0b);/在第一行0 x0B位置顯示num = 3*(num-1);/由于讀出的星期從17,所以需減一for(i=0;i0;i-) /循環8次 寫入數據DAT_1302 = ACC0; /先傳送數據低位CLK_1302 = 0; /上升沿輸入數據CLK_1302 = 1;ACC = ACC1; /右移一位/*/* 讀1302的一個字節 */*/uchar read_1302_byte()uchar i;RST_1302 = 1; /啟動讀寫操作for(i=8;i0;i-)ACC7 = DAT_1302; /先讀入數據低位CLK_130

59、2 = 1;CLK_1302 = 0; /下降沿輸出數據ACC = ACC1; /右移一位return ACC;/*/* 寫入1302時間 */*/void write_1302(uchar address,uchar dat)RST_1302 = 0;CLK_1302 = 0;RST_1302 = 1; /啟動讀寫操作write_1302_byte(address); /寫地址write_1302_byte(dat); /寫數據CLK_1302 = 1;RST_1302 = 0; /禁止讀寫操作/*/* 讀出1302時間 */*/uchar read_1302(uchar address)u

60、char temp;RST_1302 = 0;CLK_1302 = 0;RST_1302 = 1; /啟動讀寫操作write_1302_byte(address); /寫地址temp=read_1302_byte(); /讀數據CLK_1302 = 1;RST_1302 = 0; /禁止讀寫操作return temp;/*/* 1302初始化設定 */*/void init_1302()RST_1302 = 0;/禁止讀寫操作CLK_1302 = 0;/時鐘為低write_1302(0 x80,0 x00);/允許寫write_1302(0 x8a,7);/?/*/* 定時器0初始化 */*/

溫馨提示

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

評論

0/150

提交評論