freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的防盜警報(bào)器的畢業(yè)設(shè)計(jì)-文庫吧

2025-06-12 19:59 本頁面


【正文】 。第三章:具體介紹了單片機(jī)程序的設(shè)計(jì)。第四章:具體介紹了如何利用Proteus進(jìn)行系統(tǒng)仿真。第五章:總結(jié)了本次畢業(yè)設(shè)計(jì)取得的成果和心得 2 系統(tǒng)結(jié)構(gòu)及硬件電路設(shè)計(jì) 系統(tǒng)的結(jié)構(gòu)框圖及工作原理EEPROMAT89S52最小系統(tǒng)電源模塊顯示模塊鍵盤模塊圖21 系統(tǒng)結(jié)構(gòu)框圖本系統(tǒng)采用單片機(jī)AT89S52為控制核心,系統(tǒng)主要由四個(gè)模塊:電源模塊、AT89S52最小系統(tǒng)、EEPROM存儲模塊、LED和數(shù)碼管顯示模塊構(gòu)成:電源模塊作為整個(gè)系統(tǒng)的各個(gè)模塊提供穩(wěn)定的電源。AT89S52最小系統(tǒng)作為控制系統(tǒng),控制著整個(gè)系統(tǒng)的功能實(shí)現(xiàn)。鍵盤模塊提供了人機(jī)交流的輸入控制功能。顯示模塊由LED和數(shù)碼管組成,提供了人機(jī)交流的顯示功能。 電源模塊本系統(tǒng)中芯片的工作電壓有5V??梢岳猛獠?V電池然后利用7805進(jìn)行電壓調(diào)整獲得5V穩(wěn)定電壓值。7805為3 端正穩(wěn)壓電路,提供固定的輸出電壓,應(yīng)用范圍廣。內(nèi)含過流、過熱和過載保護(hù)電路。帶散熱片時(shí),輸出電流可達(dá)1A。雖然是固定穩(wěn)壓電路,但使用外接元件,可獲得不同的電壓和電流。 其主要特點(diǎn)如下:l 輸出電流可達(dá)1A l 輸出電壓有:5V l 過熱保護(hù) l 短路保護(hù) l 輸出晶體管SOA 保護(hù)l 其TO220封裝結(jié)構(gòu)如圖22所示 圖22 7805封裝結(jié)構(gòu)圖 圖23 5V電源模塊圖D1為電源指示燈,用以指示電源正常工作。圖中C1電源濾波電容,穩(wěn)定電源電壓,亦為抗沖擊電容,防止上電時(shí)產(chǎn)生的沖擊電壓過大而影響后續(xù)電路。C2為去耦電容,防止干擾信號返回電源影響其正常。 AT89S52單片機(jī)最小系統(tǒng)本設(shè)計(jì)的的單片機(jī)采用Atmel公司的AT89S52。AT89S52 是一種低功耗、高性能 CMOS8 位微控制器,具有8K 在系統(tǒng)可編程 Flash 存儲器。使用 Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè) 80C51 產(chǎn)品指令和引腳完全兼容。片上 Flash 允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的 8 位 CPU 和在系統(tǒng)可編程 Flash,使得 AT89S52 為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 AT89S52 具有以下標(biāo)準(zhǔn)功能: 8k 字節(jié) Flash,256 字節(jié) RAM,32 位 I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位定時(shí)器/計(jì)數(shù)器,一個(gè) 6 向量 2 級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至 0Hz 靜態(tài)邏輯操作,支持 2 種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許 RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。AT89S52最小系統(tǒng)包括晶體振蕩電路、復(fù)位開關(guān)和電源部分。電源部分有電源模塊提供穩(wěn)定的電壓。圖24為AT89S52的最小系統(tǒng)原理圖。如圖24 所示CCX1組成晶體振蕩電路連接到單片機(jī)的XTALXTAL2引腳上。CR11和按鍵開關(guān)組成復(fù)位電路連接到單片機(jī)的RST引腳上。圖24 AT89S52單片機(jī)最小系統(tǒng) 鍵盤模塊在單片機(jī)應(yīng)用系統(tǒng)中,特別是在工業(yè)測控和智能化儀器儀表中,通常都要有人人機(jī)對話功能,他包括人對應(yīng)用系統(tǒng)的狀態(tài)干預(yù)、數(shù)據(jù)的輸入以及應(yīng)用系統(tǒng)向人報(bào)告運(yùn)行狀態(tài)和運(yùn)行結(jié)果,這就需要配接鍵盤和顯示器等外設(shè)。本節(jié)結(jié)束鍵盤的接口技術(shù)。鍵盤電路的設(shè)計(jì)應(yīng)使CPU能識別是否有鍵按下以及是哪一個(gè)鍵按下,并將此鍵所代表的信息翻譯成所能接收的形式,例如ASCII碼或預(yù)定的其他編碼。鍵盤按接口原理可分為全編碼方式和非編碼方式兩種。全編碼方式有硬件邏輯來提供與被按鍵對應(yīng)的編碼。非編碼方式只簡單地提供輸入按鍵連接電路,其他的工作靠軟件來完成,具有經(jīng)濟(jì)實(shí)用的特點(diǎn)。對于一個(gè)鍵盤或一組按鍵,單片機(jī)系統(tǒng)利用一個(gè)接口電路與CPU相連。CPU可以采用查詢或中斷方式了解有無按鍵輸入并檢查是哪一個(gè)鍵按下,將該鍵號保存在某一變量中,然后通過跳轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完后再返回主程序。按鍵一般是由機(jī)械觸點(diǎn)構(gòu)成的。當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),會有抖動,如下圖25所示。在觸點(diǎn)抖動期間檢測按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯(cuò)。即按鍵一次按下或釋放被錯(cuò)誤地認(rèn)為是多次操作,這種情況是不允許出現(xiàn)的。所以就必須對按鍵進(jìn)行消抖。常用的有硬件方法、軟件方法兩種。軟件方法具有硬件設(shè)計(jì)簡易、成本低等特點(diǎn)。圖25 鍵盤抖動由上所述,考慮到本設(shè)計(jì)中按鍵不多,且單片機(jī)的接口較多,同時(shí)考慮簡易經(jīng)濟(jì)性,本設(shè)計(jì)采用由軟件消抖的非編碼方式獨(dú)立鍵盤電路,如圖26所示。圖26 鍵盤輸入模塊在圖26的電路中,按鍵輸入都采用低電平有效,上拉電阻保證了按鍵斷開時(shí)I/O口由確定的高電平。 顯示模塊在單片機(jī)應(yīng)用系統(tǒng)中,為了觀察單片機(jī)的運(yùn)行情況,進(jìn)行人機(jī)之間的交流,通常采用顯示器作為其輸出設(shè)備,用于顯示輸入鍵值中間信息及運(yùn)算結(jié)果等。本設(shè)計(jì)采用常用的發(fā)光二極管(LED=Light Emitting Diode)顯示器,即7段數(shù)碼管和LED指示燈。他們具有耗電省、線路簡單、價(jià)格低廉、安裝方便、耐振動等優(yōu)點(diǎn)。我們最常用的是七段式和八段式LED數(shù)碼管,八段比七段多了一個(gè)小數(shù)點(diǎn),其他的基本相同。所謂的八段就是指數(shù)碼管里有八個(gè)小LED發(fā)光二極管,通過控制不同的LED的亮滅來顯示出不同的字形。數(shù)碼管又分為共陰極和共陽極兩種類型,其實(shí)共陰極就是將八個(gè)LED的陰極連在一起,讓其接地,這樣給任何一個(gè)LED的另一端高電平,它便能點(diǎn)亮。而共陽極就是將八個(gè)LED的陽極連在一起。其原理圖如下。圖27 數(shù)碼管顯示器外形結(jié)構(gòu)及兩種連接方式在本設(shè)計(jì)中采用共陰極連接方式,原理圖如圖28所示。圖28 數(shù)碼管顯示器連接電路在圖28所示的數(shù)碼管顯示器連接電路中,考慮到單片機(jī)的輸出電流有限,所以在P0端口與數(shù)碼管之間接入一個(gè)上拉電阻到+5V,確使在P0口輸出高電平時(shí),VCC與P0口同時(shí)給數(shù)碼管供電,這樣可以減小P0口的輸出電流保護(hù)端口。上拉電阻是用來限制電流的。對照圖27所示的字段,字型碼各位定義如表21所示??梢钥闯?,如果要顯示“7”字形,a、b、c、三個(gè)字段應(yīng)點(diǎn)亮,所以對應(yīng)的字型碼為00000111B,依此類推可寫出所要顯示的各字形碼存放在程序存儲器的固定區(qū)域中,構(gòu)成顯示代碼表。表21abcdefg對于系統(tǒng)中的指示燈,本設(shè)計(jì)采用如圖29所示的電路。圖中D2為LED指示燈,R5作為限流電阻。P1口可輸出5V電壓,通常電流限制在10mA以下,所以R5的阻值不小于330歐姆(()V/10mA)。在本設(shè)計(jì)中采用500歐姆。圖29 LED指示電路 EEPROMEEPROM (Electrically Erasable Programmable ReadOnly Memory),電可擦可編程只讀存儲器,一種掉電后數(shù)據(jù)不丟失的存儲芯片。 EEPROM 可以在電腦上或?qū)S迷O(shè)備上擦除已有信息,重新編程。一般用在即插即用。在本設(shè)計(jì)中使用24C04。24C04是一個(gè)4K位串行CMOS EEPROM,內(nèi)部含有512個(gè)8位字節(jié)。其內(nèi)部有一個(gè) 16 字節(jié)頁寫緩沖器,該器件通過I2C總線接口進(jìn)行操作,同時(shí)有一個(gè)專門的寫保護(hù)功能。其所具有的特性如下:l 與400KHz I2C總線兼容l 到 伏工作電壓范圍l 低功耗 CMOS 技術(shù) l 寫保護(hù)功能:當(dāng)WP為高電平時(shí)進(jìn)入寫保護(hù)狀態(tài) l 頁寫緩沖器 l 自定時(shí)擦寫周期 l 1,000,000 編程/擦除周期 l 可保存數(shù)據(jù) 100 年 l 8 腳 DIP、SOIC或TSSOP 封裝 圖210 為24C04的管腳配置,同時(shí)在表22給出了各管腳簡易功能描述。圖210 24C04管腳配置表22 24C04管腳描述圖211 EEPROM電路原理圖如圖211所示為本設(shè)計(jì)的EEPROM電路原理圖。 3 程序設(shè)計(jì)本系統(tǒng)的單片機(jī)程序利用Keil uVision ,以下介紹整個(gè)系統(tǒng)的程序流程,具體程序參見附錄。 主程序流程開始變量定義端口初始化無操作?NoYes數(shù)碼管初始化當(dāng)前狀態(tài)判斷報(bào)警?顯示、計(jì)時(shí)Yes輸入?顯示、保存Yes查找?顯示、保存YesNoNoNo圖31 主程序流程圖如31所示圖所示為單片機(jī)的主程序流程圖。首先進(jìn)行各個(gè)模塊的初始化工作,如變量定義、單片機(jī)端口和EERPOM端口初始化、顯示模塊初始化等。然后進(jìn)入程序的主流程,判斷系統(tǒng)的當(dāng)前狀態(tài),掃描鍵盤輸入確定狀態(tài)后,執(zhí)行相應(yīng)的處理。 鍵盤輸入模塊的程序設(shè)計(jì)本設(shè)計(jì)采用由軟件消抖的非編碼方式獨(dú)立鍵盤電路,所以在進(jìn)行鍵盤輸入模塊的程序設(shè)計(jì)時(shí),需考慮兩個(gè)過程:鍵盤按鍵的識別;消抖。首先在程序中定義各個(gè)鍵盤的輸入信號管腳,如下所示。在key_input=0時(shí)代表輸號鍵被按下,其他按鍵同此。sbit key_input =P1^0。 //輸號sbit key_find =P1^1。 //查號sbit key_reset =P1^2。 //復(fù)位sbit key_jingbao=P1^6。 //警報(bào)信號然后在一個(gè)子程序中實(shí)現(xiàn)鍵盤的識別及消抖。本系統(tǒng)中把鍵盤的輸入狀態(tài)作為整個(gè)系統(tǒng)的狀態(tài),所以定義一個(gè)uchar state(void)子程序,其返回值為鍵盤的當(dāng)前狀態(tài),其定義如下:define state_null 0 //無按鍵狀態(tài)define state_input 1 //輸號鍵按下define state_find 2 //查詢鍵按下define state_reset 3 //復(fù)位鍵按下define state_jingbao 4 //報(bào)警鍵按下在uchar state(void)子程序中本設(shè)計(jì)利用變量keycount的條件自加來實(shí)現(xiàn)消抖和長短按鍵的識別過程。每次進(jìn)入子程序時(shí)keycount清零,然后進(jìn)入循環(huán),keycount自加,同時(shí)查詢按鍵狀態(tài):當(dāng)keycount自加到N1時(shí),表示長按,則返回狀態(tài)值,退出子程序;當(dāng)無按鍵按下時(shí),退出按鍵查詢循環(huán),并判斷keycount是否小于于N2,即是否為抖動,當(dāng)keycountN2時(shí),為抖動信號則返回0,當(dāng)keycount=N2時(shí),為有效按鍵返回狀態(tài)值。整個(gè)uchar state(void) 子程序流程如圖32所示。開始Keycount=0按鍵?YesKeycount自加返回按鍵值長按?返回按鍵值No保存按鍵值抖動?NoNo退出子程序YesYes圖32 主程序流程圖 數(shù)碼管顯示模塊的程序設(shè)計(jì)由上章所述,本設(shè)計(jì)利用table數(shù)組保存字形碼,作為顯示代碼表,如下所示:uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,//0123456789 0x3e, 0x73, 0x7c, 0x40//“U”10,“P”11,“b”12,“”13 }。由table數(shù)組可知,總共可以顯示0~U、P、b、共14個(gè)字符。同時(shí)在程序中編寫Display(uchar data_disp)函數(shù),data_disp為要顯示的字符,程序如下:void Display(uchar data_disp){ if (data_disp=13) //不在表內(nèi) P0=table[13]。 //顯示“” else //表內(nèi) P0=table[data_disp]。 //查表顯示}對于LED指示燈,本設(shè)計(jì)中采用高電平點(diǎn)亮的方式。由此在程序中定義sbit Led =P1^7,當(dāng)LED=0時(shí),輸出低電平,LED燈滅,當(dāng)LED=1時(shí),輸出高電平,LED燈亮。 EEPROM的驅(qū)動程序設(shè)計(jì)本設(shè)計(jì)中利用EEPROM(24C04)來存儲報(bào)警用的電話號碼,24C04支持I2C總線數(shù)據(jù)傳送協(xié)議,要在單片機(jī)系統(tǒng)中應(yīng)用I2C總線的24C04做存儲設(shè)備時(shí),先要了解I2C總線的基本驅(qū)動方法,以下介紹24C04的I2C驅(qū)動程序的設(shè)計(jì)。 24C04的I2C總線構(gòu)成及其協(xié)議I2C總線是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。I2C總線協(xié)議規(guī)定
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1