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

正文內(nèi)容

基于at89s52太陽能熱水器控制系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)論文-文庫吧資料

2025-06-24 17:00本頁面
  

【正文】 再檢測一次,看是否按鍵真得已經(jīng)按下了,若是真得已經(jīng)按下了,這時(shí)候肯定輸出是低電平,若這時(shí)候檢測到的是高電平,會證明剛才是因?yàn)楦蓴_信號而引起的誤觸發(fā),CPU就會認(rèn)為是誤觸發(fā)信號從而舍棄這次的按鍵識別的過程。而事實(shí)上并非如此,我們的手卻一直按在按鍵上,并沒有重復(fù)的按動很多次。那么在這段抖動時(shí)間內(nèi),單片機(jī)可能讀到很多次高低電平的變化。這個(gè)時(shí)間很短暫,我們的手根本不能夠感覺出來。所以,按鍵被按下的時(shí)候,要把我們身體上的干擾的信號還有按鍵本身通過機(jī)械接觸產(chǎn)生的干擾信號等等濾除掉,通常,我們要濾除這樣干擾信號可以通過電容來濾除,但是實(shí)際上,這樣增加了硬件的成本和硬件的電路板的容積,這并不是我們希望的,總得想個(gè)辦法解決這個(gè)問題,因此我們可采用軟件濾波方法來去除這些干擾信號,一般的情況下,一個(gè)按鍵按下時(shí),總是在按下的瞬間存在著一定的干擾的信號,按下去之后就基本上的進(jìn)入了穩(wěn)定的狀態(tài)。 return(t)。 tt=t*。 t=8。 b=Read()。 Write(0xBE)。 Init_DS18B20()。 Write(0xCC)。 float tt=0。 uchar b=0。讀取溫度數(shù)據(jù),最后通過處理輸入對應(yīng)的攝氏溫度。程序中首先復(fù)位1wire總線,然后啟動溫度轉(zhuǎn)換命令(代碼為44H)。} Return(value)。i++){ if(readbit()) Value|=0x01i。For(i=0。Uchar readbyte(void){ Uchar i。}字節(jié)讀取函數(shù)字節(jié)讀取函數(shù)readbyte用于1wire總線上讀取從器件返回的一個(gè)字節(jié)數(shù)據(jù)。 For(i=0。 DQ=0。最后延時(shí)一段時(shí)間,讀取并返回?cái)?shù)據(jù)總線DQ上的位數(shù)據(jù)。 }位讀取函數(shù) 位讀取函數(shù)readbit用于從1wire總線上讀取從器件返回的一位值。 Writebit(temp)。 Temp amp。i8。 Uchar temp。程序中采用循環(huán)移位的方式,每次調(diào)用位寫入函數(shù)writebit寫入一位。 DQ=1。 Else DQ=0。 Void writebit(char val){ DQ=0。程序中首先拉低數(shù)據(jù)線DQ開始寫時(shí)間隙,然后向DQ寫入數(shù)據(jù)。 Return presencesignal。 Presencesignal=DQ。 DQ=1。 DQ=0。如果返回0,則表示器件存在;返回1,則表示無器件。}復(fù)位函數(shù) 復(fù)位函數(shù)reset用于完成1wire總線的復(fù)位操作,程序中首先將數(shù)據(jù)DQ拉低并保持一段時(shí)間來實(shí)現(xiàn)1wire總線上所有器件的復(fù)位。susecond。Void delay(int usecond){ Int s。 }} 應(yīng)用程序 DS18B20的驅(qū)動設(shè)計(jì)延時(shí)函數(shù)延時(shí)函數(shù)delay用于延時(shí)指定的時(shí)間,用來構(gòu)成1wire總線協(xié)議所需要的時(shí)序。 if(wendu35) kai2=0。 if(shuiwei20) kai1=0。 開始 初始化 開加熱器 自動上水 關(guān)加熱器是否到了設(shè)定的溫度 關(guān)進(jìn)水閥門是否到了水位低線 顯示溫度和水位 開中斷 N Y N Y 系統(tǒng)軟件流程圖 主控程序void main(){ while(1) { xianshiTemperature()。芯片的工作有著和自己相對應(yīng)的時(shí)序圖,只有根據(jù)芯片的時(shí)序準(zhǔn)確的執(zhí)行命令才能夠達(dá)到想要的目的,才能夠?qū)崿F(xiàn)芯片的功能。總之,只要RRC的時(shí)間常數(shù)選取恰當(dāng),使電容C能夠有穩(wěn)態(tài)額電壓充電到開啟電壓,或者放電到關(guān)閉電壓延遲時(shí)間等于或者大于10ms,該電路就能夠消除抖動影響。盡管在觸點(diǎn)的接觸過程中可能會出現(xiàn)抖動,只要能夠適當(dāng)選取RRC的值,就可保證電容C的兩端充電電壓的波動不超過非門的開啟電壓(),非門輸出維持高電平。濾波防抖電路圖如圖352所示。但是按鍵抖動是難以避免的,為了穩(wěn)定的操作,所以我們要防止抖動的發(fā)生,消除抖動的影響,可以從硬件、軟件兩方面來解決。 LED連接電路圖 按鍵電路設(shè)計(jì) 按鍵是用以向系統(tǒng)提供操作的人員命令的接口,所以準(zhǔn)確無誤的辨認(rèn)每個(gè)鍵的動作和其所處的狀態(tài),是系統(tǒng)是否能正常工作的關(guān)鍵。如此循環(huán),使每個(gè)LED顯示該LED應(yīng)顯示的數(shù)據(jù),并進(jìn)行適當(dāng)?shù)难訒r(shí),形成視覺暫留效果,這樣便可以達(dá)到動態(tài)顯示的目的。程序中采用掃描顯示的方式,即在同一時(shí)刻,只使用一個(gè)LED顯示數(shù)據(jù)。動態(tài)顯示是指每隔一段時(shí)間循環(huán)點(diǎn)亮每個(gè)LED數(shù)碼管,每次只有一個(gè)LED被點(diǎn)亮。這種顯示的優(yōu)點(diǎn)是:接口操作簡單,只需將顯示字符相應(yīng)的字段碼發(fā)送到LED,并在端口保持即可;靜態(tài)顯示字符時(shí),只需較小的驅(qū)動電流便可以獲得較高的顯示亮度。LED數(shù)碼管靜態(tài)顯示方式是指當(dāng)數(shù)碼管顯示某個(gè)字符的時(shí)候,相應(yīng)字段的發(fā)光二極管恒定地導(dǎo)通或截止,即亮或滅是完全不變的。 在實(shí)際的單片機(jī)應(yīng)用系統(tǒng)中,使用單個(gè)LED數(shù)碼管的情況比較少,經(jīng)常需要使用多個(gè)LED數(shù)碼管來顯示大于一位的數(shù)據(jù)或字符串。這種結(jié)構(gòu)使其和單片機(jī)的接口十分方便,可以直接將8個(gè)顯示字段引腳接到單片機(jī)的一個(gè)8位并行I/O口端口上。在7段共陽極數(shù)碼管中,發(fā)光二極管的陽極為公共端,接高電平+5V,當(dāng)某個(gè)發(fā)光二極管的陰極為低電平的時(shí)候,發(fā)光二極管導(dǎo)通,該字段發(fā)光;反之,如果某個(gè)發(fā)光二極管的陰極接高電平的時(shí)候,發(fā)光二極管截止,則該字段不發(fā)光。 數(shù)碼管引腳圖 7段共陽極LED數(shù)碼管是由7個(gè)條形的發(fā)光二極管和一個(gè)小數(shù)點(diǎn)位構(gòu)成的,其引腳配置如圖所示,從圖中可以看出,7個(gè)發(fā)光二極管構(gòu)成字形“8”,可以用來顯示數(shù)字,另一個(gè)發(fā)光二極管構(gòu)成小數(shù)點(diǎn)。LED數(shù)碼管廣泛被用于儀表、時(shí)鐘、車站、家電等等場合。下圖是共陰與共陽極LED的內(nèi)部電路圖,它們的發(fā)光原理是相同的,只是區(qū)別在于它們的電源極性不同而已。單片機(jī)應(yīng)用系統(tǒng)中使用最多的是7段數(shù)碼管,其可以顯示十進(jìn)制數(shù)字及一些英文字符。當(dāng)數(shù)碼管中的某個(gè)發(fā)光二極管導(dǎo)通的時(shí)候,相應(yīng)的一個(gè)字段便發(fā)光,不導(dǎo)通的則不發(fā)光。單個(gè)發(fā)光二極管使用比較簡單。 LED顯示 LED即發(fā)光二極管[7],英文全稱為light emitting diode。ALE/(pin30):ALE為地址鎖存使能端和編程脈沖輸入端。特殊功能寄存器AUXR中的DISRT0位可以使復(fù)位無效。RST(pin9):單片機(jī)內(nèi)部CPU的復(fù)位信號輸入端;在單片機(jī)的振蕩器啟動后,該引腳置兩個(gè)機(jī)器周期以上的高電平,便可實(shí)現(xiàn)復(fù)位,另外,對于AT89S52,其內(nèi)部包含定時(shí)監(jiān)視(看門狗)電路。(RXD)(TXD)用于串行數(shù)據(jù)傳輸,分別為串行數(shù)據(jù)的接受和發(fā)送端口;,分別用于和的中斷輸入;(T0)(T1),分別為定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器1的外部計(jì)數(shù)輸入端;()()用于讀寫單片機(jī)外部RAM,分別是外部數(shù)據(jù)寫選通信號和讀選通信號。4)P3口:(pin10到pin17),輸入/輸出腳,8位準(zhǔn)雙向并行I/O口。P2口內(nèi)部已經(jīng)具有上拉電阻的8位準(zhǔn)雙向I/O口,能負(fù)載4個(gè)TTL;當(dāng)訪問外部存儲器時(shí),定義為高8位地址線。|計(jì)數(shù)器T2的外部計(jì)數(shù)輸入,|計(jì)數(shù)器T2捕獲|再裝入觸發(fā)及方向控制,(MOSI),(MISO)(SCK)用于系統(tǒng)內(nèi)部編程。2)P1口:(pin1到pin8),輸入/輸出腳,8位準(zhǔn)雙向并行I|O口,P1口內(nèi)部已經(jīng)具有上拉電阻的8位準(zhǔn)雙向 I/O口,能負(fù)載4個(gè)TTL;在FLASH編程和校驗(yàn)的時(shí)候,定義為低8位地址線。1)P0口:(pin39到pin32),輸入/輸出腳,可用于八位并行I/O口或分時(shí)復(fù)用為地址和數(shù)據(jù)總線。另外一種是外部時(shí)鐘方式,將XTAL2懸空,外部時(shí)鐘信號(0到33兆赫茲)從XTAL1腳輸入。AT89S52的時(shí)鐘震蕩器有兩種工作方式。XTAL1(PIN19),時(shí)鐘XTAL1腳,片內(nèi)震蕩電路的輸入端。GND(PIN20),接地端。 單片機(jī)芯片封裝引腳電源引腳 電源引腳主要負(fù)責(zé)單片機(jī)的電源供電,有兩根引腳。另外,單片機(jī)AT89S52 可降到0Hz 靜態(tài)邏輯來操作,可支持2種軟件可選擇節(jié)電模式。 AT89S52的主要性能 和MCS51單片機(jī)的產(chǎn)品兼容;8K字Flash存儲器;一千次的擦寫周期;全靜態(tài)的操作:0Hz到33MHz;三級加密的程序字存儲器;有32個(gè)I/O口;有3個(gè)16位的定時(shí)器/計(jì)數(shù)器;有8個(gè)中斷源;擁有全雙工UART;低功耗的空閑和掉電模式;掉電之后中斷可喚醒; AT89S52的引腳說明Atmel公司的AT89S系列與MCS51是兼容的, AT89S52的40Pin雙列直插封裝的引腳配置,如下圖334所示。片上的Flash允許的程序存儲器在系統(tǒng)可編程,亦適用于常規(guī)的編程器。復(fù)位電路如圖所示: 手動復(fù)位電路 自動復(fù)位電路單片機(jī)時(shí)鐘信號是由外部的晶振產(chǎn)生的,晶振連接的電路如圖所示: 單片機(jī)晶振電路單片機(jī)AT89S52是一種低功耗、高性能的CMOS 8位微處理器,具有8K在線系統(tǒng)可編程的Flash 存儲器。最后考慮尺寸是否能夠合適。要查閱相關(guān)資料,確定使用條件后,要找出需要的繼電器的型號以及規(guī)格號。選用繼電器的時(shí)候,一般控制的電路的電源電壓可以作為選用的依據(jù)。缺點(diǎn)是:灰塵沉積在觸點(diǎn)上,引起接觸不良;斷開帶電感性負(fù)載的電路時(shí),觸點(diǎn)間會產(chǎn)生火花,引起燒灼或黏連;繼電器線圈本身是電感原件,對電流變化反應(yīng)具有一定慣性,一秒鐘的動作幾百次以上的電路無法應(yīng)用。最后一類是先合后離切換觸點(diǎn),也又三片簧片組成,它和一般切換觸點(diǎn)的區(qū)別,是繼電器吸動后,要保證原來分開的兩簧片先接觸,然后再使原來閉合的兩簧片分離,以達(dá)到不間斷地切換電路的目的。一類是切換觸點(diǎn),由三片簧片組成,平時(shí)中間一片簧片和上面的簧片接觸,而和下面的簧片分開。一類是靜合觸點(diǎn),又叫常閉觸點(diǎn)。一類是動合觸點(diǎn),又叫常開觸點(diǎn)。在電源接通的瞬間,電流不能從0躍變到40毫安,而是按指數(shù)規(guī)律上升,上升的快慢,取決于線圈的電感L和電阻R。電磁繼電器的線圈,是用很細(xì)的漆包線在鐵芯上繞近萬砸的螺管線圈。電磁繼電器是由感應(yīng)機(jī)構(gòu)、變換機(jī)構(gòu)、比較機(jī)構(gòu)和執(zhí)行機(jī)構(gòu)組成。電磁式繼電器的結(jié)構(gòu)和工作原理與接觸器相似,由電磁系統(tǒng)、觸點(diǎn)系統(tǒng)和釋放彈簧等組成,是由控制電流通過線圈所產(chǎn)生的電磁吸力驅(qū)動磁路中的可動部分而實(shí)現(xiàn)觸點(diǎn)開、閉或轉(zhuǎn)換功能的繼電器。3)讀操作 讀操作當(dāng)單片機(jī)將總線t0時(shí)刻從高電平拉到低電平的時(shí)候,總線只需要保持,低電平4us之后,在t1的時(shí)刻會將總線拉高,會產(chǎn)生讀的時(shí)的候的間隙,讀的時(shí)間在t1時(shí)刻后t2時(shí)刻前有效,t2距t0為15us,也就是說,在t2的時(shí)刻前的主機(jī)必須要完成讀位 并在t0后的60us~120us內(nèi)要釋放總線。DS18B20在t0后1560us間會對總線采集樣本數(shù)據(jù),若低電平寫入是0;若高電平,寫入的是1。2)寫操作 寫操作當(dāng)單片機(jī)將總線t0時(shí)刻從高電平拉至低電平的時(shí)候,就產(chǎn)生寫時(shí)間隙。1wire主機(jī)使用讀暫存器命令可以把高速暫存器中的測量結(jié)果讀出。測量結(jié)果存放在高速暫存器中,占有暫存器字節(jié)0(LSB)和字節(jié)1(MSB0)。DS18B20的溫度與數(shù)據(jù)對應(yīng)關(guān)系,,所有的數(shù)據(jù)都是以最低有效位(LSB)在前的方式進(jìn)行讀寫的。在讀暫存器命令執(zhí)行的過程中,1wire主機(jī)可以在任何時(shí)間發(fā)出復(fù)位命令來中止讀取。f 讀暫存器命令(代碼為BEH),用于讀取高速暫存器中的內(nèi)容。d 重讀E2PROM命令(代碼為B8H),用于將存儲在非易失性E2PROM中的內(nèi)容重新讀入到存儲器中e 讀電源命令(代碼為B4H),用于讀取DS18B20的供電方式。c 寫暫存器命令(代碼為4EH),用于將數(shù)據(jù)寫入DS18B20高速暫存器的地址2(TH字節(jié))和地址3(TL字節(jié))。溫度轉(zhuǎn)換命令被執(zhí)行后,DS18B20進(jìn)行溫度測量和轉(zhuǎn)換。e 溫度報(bào)警搜索命令(代碼為ECH),用于識別和定位系統(tǒng)中超出用戶設(shè)定的報(bào)警溫度界限的節(jié)點(diǎn)設(shè)備。c 搜索ROM序列號命令(代碼為F0H),用于確定1wire總線上的節(jié)點(diǎn)數(shù),以及所有節(jié)點(diǎn)設(shè)備的ROM序列號。a 讀出ROM序列號命令(代碼為33H),用于讀出DS18B20的64位激光ROM序列號。1)rom操作命令 1wire總線協(xié)議選擇1wire設(shè)備,主要是讀取內(nèi)部的64位ROM序列號。DS18B20的數(shù)據(jù)操作1wire總線將通信時(shí)使用的引腳減少到只有一根,在數(shù)據(jù)傳輸時(shí)需要滿足特定的格式才能進(jìn)行。但需要注意的是在外部供電的方式下,傳感器的GND引腳不能夠懸空,否則讀取溫度顯示總是85℃。 DS18B20寄生電源供電電路 DS18B20外部供電單點(diǎn)測溫電路2)DS18B20外部電源的供電方式DS18B20外部供電的單點(diǎn)測溫電路,DS18B20外部供電的多點(diǎn)測溫電路。因此,不宜采用電池供電的方式,并且電源的電壓必須是穩(wěn)壓5V。系統(tǒng)的擴(kuò)充維護(hù)十分方便。只需將DS18B20的信號線與單片機(jī)1位I/O口相連,且單片機(jī)的1位I/O線可以掛接多個(gè)DS18B20,也就是可以實(shí)現(xiàn)
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1