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

正文內(nèi)容

基于單片機(jī)的智能空調(diào)節(jié)電控制器c語言編程(編輯修改稿)

2025-06-19 21:32 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 成了一個(gè)穩(wěn)定的自激振蕩器。如圖 。 圖 內(nèi)部時(shí)鐘電路 電路中的電 容 C C2的取值對(duì)振蕩頻率輸出的頻率值、穩(wěn)定性及振蕩電路起振速度有少許影響, C C2可在 20PF100PF之間選擇,外接陶瓷振蕩器時(shí)典型取值為 47PF,取 60PF70PF時(shí)振蕩器有較高的頻率穩(wěn)定性。晶體振蕩頻率可在 ,根據(jù)實(shí)際情況,選擇 。 2. 系統(tǒng)復(fù)位電路 MCS51單片機(jī)的復(fù)位操作有兩種方式:上電復(fù)位和上電按鈕復(fù)位。通常因?yàn)橄到y(tǒng)運(yùn)行的需要,常常需要人工 按鈕復(fù)位,復(fù)位電路如圖 ,只需要將一個(gè)常開按鈕開關(guān)并聯(lián)于上電復(fù)位電路,按下開關(guān)一定時(shí)間就能使 RST引腳端為高電平,從而使單片機(jī)復(fù)位。 圖 系統(tǒng)復(fù)位電路 數(shù)據(jù)存儲(chǔ)模塊 在此模塊中,使用 24C02作為擴(kuò)展數(shù)據(jù)存儲(chǔ)器,把 DS18B20的 ROM信息保存到里面。1. 24C02基本介紹 24C02是一個(gè) 2K存儲(chǔ)空間的 COMS EEPROM,內(nèi)部含有 256個(gè) 8位字節(jié), 16字節(jié)頁寫緩沖器。它支持 IIC總線數(shù)據(jù)傳送協(xié)議,通過器件地址輸入端 A0,A1和 A2最多可以實(shí)現(xiàn)將 10 8個(gè) 24C02連接到總線上 。對(duì) 24C02進(jìn)行操作,必須嚴(yán)格掌握讀寫時(shí)序。 2. IIC總線工作原理 IIC總線在傳送數(shù)據(jù)過程中共有三種類型信號(hào),他們分別是:開始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。 開始信號(hào): SCL為高電平時(shí), SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。 結(jié)束信號(hào): SCL為低電平時(shí), SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。 應(yīng)答信號(hào):接收數(shù)據(jù)的 IC在接收到 8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的 IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。 CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào), CPU接收到應(yīng)答信號(hào)后, 根據(jù)實(shí)際情況做出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障。 I2C規(guī)程運(yùn)用主 /從雙向通訊。器件發(fā)送數(shù)據(jù)到總線上,則定義為發(fā)送器,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)。 總線必須由主器件(通常為微控制器)控制,主器件產(chǎn)生串行時(shí)鐘( SCL)控制總線的傳輸方向,并產(chǎn)生起始和停止條件。 SDA線上的數(shù)據(jù)狀態(tài)僅在 SCL為低電平的期間才能改變, SCL為高電平的期間, SDA狀態(tài)的改變被用來表示起始和停止條件。 數(shù)據(jù)存儲(chǔ)模塊電路設(shè)計(jì)如圖 , SCK時(shí)鐘線和 SDA數(shù)據(jù)線經(jīng)上拉電阻接 +5V電源。 圖 數(shù)據(jù)存儲(chǔ)模塊 顯示模塊 1. 溫度數(shù)據(jù)顯示部分 圖 8位一體共陰極數(shù)碼顯示管作為顯示器,單片機(jī)輸出信號(hào)不能直接接入數(shù)碼管, 因?yàn)?此時(shí) I/O口輸出電流并不能驅(qū)動(dòng)數(shù)碼管。因此必須在數(shù)碼管輸入端接驅(qū)動(dòng),驅(qū)動(dòng)的接法有多種,可以使用上面模塊電路中所使用的方法,直接經(jīng)上拉電阻接到電源,還有一種方式就是接驅(qū)動(dòng)芯片,滿足信號(hào)的電平轉(zhuǎn)換。此模塊中采用信號(hào) 11 經(jīng)驅(qū)動(dòng)芯片 74LS244輸出到數(shù)碼管。而單片機(jī) P0口輸出信號(hào)作為數(shù)碼管段選信號(hào),顯示數(shù)字或者字符, P2口輸出信號(hào)作為數(shù)碼管位選信號(hào),用來選擇哪個(gè)數(shù)碼管亮或滅。其中后五位數(shù)碼管用來顯示溫度數(shù)據(jù),末尾兩位為小數(shù)顯示,第三位為帶小數(shù)點(diǎn)的整數(shù)顯示。第六位為負(fù)數(shù)字符 “”顯示。最高三位顯示 DS18B20編號(hào),用來顯示當(dāng)前 DS18B20的溫度數(shù)據(jù),如 “no 1”等編號(hào)。 圖 顯示模塊 2. 工作狀態(tài)顯示部分 圖 工作狀態(tài) 提 示電路 12 如圖 ,發(fā)光二極管 D1用來表示 發(fā)送加熱指令后的狀態(tài) ,并配合揚(yáng)聲器 LS1一聲提示 ; 發(fā)光二極管 D2表示 發(fā)送制冷 指令后的狀態(tài);發(fā)光二極管 D3表示發(fā)送開關(guān)指令后的狀態(tài); 并 且每次成功發(fā)送指令后都會(huì) 配合揚(yáng)聲器 LS1一 聲提示 。 紅外發(fā)送 與接收 模塊 1. 紅外發(fā)送模塊 考慮到成本的因素,我采用的是軟件調(diào)制發(fā)射的方法。 一般紅外電視遙控器的輸出都是用編碼后串行數(shù)據(jù)對(duì) 38~ 40kHz的方波進(jìn)行脈沖幅度調(diào)制而產(chǎn)生的。 當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征: 采用脈寬調(diào)制的串行碼,以脈寬為 、間隔 、周期為 “ 0” ;以脈寬為 、間隔 、周期為 “ 1” 。 上述“ 0” 和 “ 1” 組成的 32位二進(jìn)制碼經(jīng) 38kHz的載頻進(jìn)行二次調(diào)制,然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射。一般電視遙控器的遙控編碼是連續(xù)的 32位二進(jìn)制碼組,其中前16位為用戶識(shí)別碼,能區(qū)別不同的紅外遙控設(shè)備,防止不同機(jī)種遙控碼互相干擾。后 16位為 8位的操作碼和 8位的操作反碼,用于核對(duì)數(shù)據(jù)是否接收準(zhǔn)確。 根據(jù)紅外編碼的格式,發(fā)送數(shù)據(jù)前需要先發(fā)送 9ms的起始碼和 。 遙控串行數(shù)據(jù)編碼波形如下圖 所示: 圖 數(shù)據(jù) 0和 1的寬度 圖 紅外信號(hào) 0和 1的調(diào)制示意 13 圖 一條紅外信號(hào)的指令 2. 紅外接收模塊 接收電咱我們使用一化紅外接紅外接收管 TL0038,不需要任何外接無件,就能完成從紅外線接收到輸出與 TTL電平信號(hào)兼容的所有工作,實(shí) 物如圖 : 圖 紅外一體化接收頭實(shí)物圖 TL0038接收到 38kHz紅外信號(hào)時(shí),輸出端輸出低電平,否則為高電平。從接收端出來的數(shù)據(jù)波形如圖 : 14 圖 解調(diào)出來的指令信號(hào) 整個(gè)紅外發(fā)送以及與單片機(jī)的接口原理圖如 圖 : 圖 紅外發(fā)射與接收部分 P3是 TL0038的原理框圖,它的數(shù)據(jù)端直接接到單片機(jī)的 P32外部中斷 0口,發(fā)送端口則接到 P31端,為增大發(fā)射功率加了一個(gè)三極管放大電流。 電源部分 由于 控制器是一個(gè)獨(dú)立的模塊,因此我們?cè)O(shè)計(jì)時(shí)采用了從 220V市電獨(dú)立供電的方式,先用變壓器將交流電降到 24V,再用二極管橋式整流,輸出的電壓輸入到三端線性穩(wěn)壓芯片 7805輸出 5V的系統(tǒng)所需電壓,電源部分的電路原理圖如 圖 : 15 圖 電源模塊原理圖 單片機(jī)引腳分配圖 圖 。引腳分配說明如下: X1, X2分別接時(shí)鐘振蕩電路的輸入輸出; RST為復(fù)位信 號(hào)輸入端; SCL, SDA為存儲(chǔ)器 24C02的時(shí)鐘線,數(shù)據(jù)線; , , 、紅、藍(lán)發(fā)光二極管; 聲器; DS18B20數(shù)據(jù)輸入輸出及控制端口; P0為數(shù)碼管 數(shù)據(jù) 端口;,; , 紅外信號(hào)接收和發(fā)送 端口。 圖 單片機(jī)引腳分配 上面 5個(gè)模塊將下位機(jī)硬件分成了幾個(gè)部分,每個(gè)部分都對(duì)硬件做了較詳細(xì)的介紹,至于下位機(jī)整體的電路圖請(qǐng)?jiān)斠姼戒?A。 16 第 4 章 系統(tǒng)程序設(shè)計(jì) 我把軟件分成了以下幾個(gè)部分:紅外 指令信號(hào)的撲捉識(shí)別、紅外指令信號(hào)的調(diào)制發(fā)射、 E2PROM外部存儲(chǔ)器的存取、溫度傳感器的溫度的檢測(cè)及數(shù)碼管顯示和 單片機(jī)的主程序。 紅外指令信號(hào)的撲捉識(shí)別 由于采用的是紅外一體化接收頭,它的輸出信號(hào)就是單片機(jī)能夠識(shí)別的 TTL電平,因此我 采用定時(shí)計(jì)數(shù)的方式來區(qū)別 0和 1,用下降沿的外部 0中斷來撲捉紅外指令信號(hào) 。 首先檢測(cè)判斷是否是主遙控器的指令信號(hào),繼而根據(jù)不同的指令可以學(xué)習(xí)存儲(chǔ)不同的遙控器的加熱、制冷和開關(guān)機(jī)指令,這樣在學(xué)習(xí)完指令后控制器就可以根據(jù)檢測(cè)到得不同的溫度值向空調(diào)發(fā)送不同的指令信號(hào),實(shí)現(xiàn)智能控制 和節(jié)能的效果。 紅外指令信號(hào)的撲捉識(shí)別的程序流程圖如 圖 : 17 圖 紅外信號(hào)撲捉程序流程圖 整個(gè)紅外指令信號(hào)的撲捉程序放在外部中斷 0的中斷服務(wù)程序中。 紅外指令信號(hào)的調(diào)制發(fā)射 當(dāng)單片機(jī)檢測(cè)到的溫度達(dá)到設(shè)定的臨界值時(shí),單片機(jī)就要通過紅外發(fā)送電路向空調(diào)發(fā)送已經(jīng)學(xué)習(xí)過的相應(yīng)的指令信號(hào)。考慮到成本的因素,我決定采用軟件調(diào)制發(fā)射的方式。 由于我的主控遙控器是 32位編碼,因此本控制器只能識(shí)別 32的遙控器指令信號(hào),依據(jù)紅外 一體化接收的解調(diào)原理,發(fā)射時(shí)在低電平部分發(fā)射 38K的脈沖信號(hào),高電平則不發(fā)信號(hào), 發(fā)送 38K的脈沖信號(hào)時(shí)采用定時(shí)器 2定時(shí) 26us。 程序流程圖如 : 圖 紅外指令信號(hào)的調(diào)制發(fā)射流程圖 18 溫度傳感器的溫度的檢測(cè)及數(shù)碼管顯示 1. 溫度采集部分是系統(tǒng)的核心 之一 , 關(guān)于這一部分在硬件電路設(shè)計(jì)中有詳細(xì)的介紹。 而 DS18B20溫度傳感器的操作必須掌握嚴(yán)格的時(shí)序,這一點(diǎn)非常重要,當(dāng)初設(shè)計(jì)之時(shí)我就在這里下了很大功夫??刂坪脮r(shí)序就能編寫相應(yīng)功能的子函數(shù)對(duì) DS18B20進(jìn)行操作。 由于 DS18B20采用的是 1- Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì) AT89S51單片機(jī)來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時(shí)序來完成對(duì) DS18B20芯片的訪問。 由于 DS18B20是在一根 I/O線上讀寫數(shù)據(jù),因此,對(duì)讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。 DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而 每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫時(shí)序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。 DS18B20的復(fù)位時(shí)序 如圖 : 圖 復(fù)位時(shí)序圖 DS18B20 的讀時(shí)序 如圖 所示 : 對(duì)于 DS18B20 的讀時(shí)序分為讀 0 時(shí)序和讀 1 時(shí)序兩 個(gè)過程。 對(duì)于 DS18B20 的讀時(shí)隙是從主機(jī)把單總線拉低之后,在 15秒之內(nèi)就得釋放單總線,以讓 DS18B20 把數(shù)據(jù)傳輸?shù)絾慰偩€上。 DS18B20 在完成一個(gè)讀時(shí)序過程,至少需要 60us才能完成。 19 圖 讀時(shí)序圖 DS18B20 的寫時(shí)序 如圖 所示 : 對(duì)于 DS18B20 的寫時(shí)序仍然分為寫 0 時(shí)序和寫 1 時(shí)序兩個(gè) 過程。 對(duì)于 DS18B20 寫 0 時(shí)序和寫 1 時(shí)序的要求不同,當(dāng)要寫 0 時(shí)序時(shí),單總線要被拉低至少 60us,保證 DS18B20 能夠在 15us 到 45us 之間能夠正確地采樣 IO 總線上的 “0”電平,當(dāng)要寫 1 時(shí)序時(shí),單總線被拉低之后,在 15us 之內(nèi)就得釋放單總線。 圖 寫時(shí)序圖 在整個(gè)控制器程序的運(yùn)行過程中采用定時(shí)器 0定時(shí) ,每隔 1S實(shí)時(shí)采集一次環(huán)境的溫度值并用數(shù)碼管顯示, 下面對(duì)幾個(gè) DS18B20重要的函數(shù)進(jìn)行介紹。 void WriteOneChar(unsigned char dat); //寫 一個(gè)字節(jié) 數(shù)據(jù)到 DS18B20 unsigned char ReadOneChar(void); //讀取 一個(gè)字節(jié) 數(shù)據(jù) void Init_DS18B20(void); //初始化 DS18B20 unsigned char ReadTemperature(void) //獲取 當(dāng)前溫度值,并計(jì)算 24C02E2PROM外部存儲(chǔ)器的存取 24C02采用的是 I2C總線方式。 I2C總線介紹 I2C總線是由 PHILIPS公司推出的一種總線標(biāo)準(zhǔn),它是同步信號(hào)的一種特殊形式,具有接口線少、控制簡(jiǎn)單、器件封裝形式小、通信速率較高等優(yōu)點(diǎn)。在主從通信中,可以有多個(gè) I2C總線器件同時(shí)接到 I2C總線上, 所有與 I2C兼容的器件都具有標(biāo)準(zhǔn)的接口,通過地址來識(shí)別通信對(duì)象,使他們可以經(jīng)由 I2C總線自由通信 。 I2C總線由數(shù)據(jù)線 SDA和時(shí)鐘線 SCL兩條線構(gòu)成通信線路,既可發(fā)送數(shù)據(jù),又 可接收數(shù)據(jù)。在 CPU和被控 IC之間, IC和 IC之間都可進(jìn)行雙向傳送,最高傳送速率為 400kps,各種器件均并聯(lián)在總線上,但是每個(gè)器件均有唯一的地址,在信息傳輸過程中, I2C總線上并聯(lián)的每個(gè)器件既是 被控器(或主控器),又是接收器(或發(fā)送器),這取決于它所完成的功能。 CPU發(fā)出的控制信號(hào)分為地址碼和數(shù)據(jù)碼兩部分:地址碼用來選址,即接通 20 需要控制的電路,數(shù)據(jù)碼是通信的內(nèi)容,這樣各 IC電路雖然掛在同一條總線上,卻彼此獨(dú)立。 I2C總線硬件結(jié)構(gòu)圖 下圖為 I2C總線硬件結(jié)構(gòu)圖,其中, SCL是時(shí)鐘線, SDA是數(shù)據(jù)線。 總線上各器件均采用漏極開路結(jié)構(gòu)與總線相接,因此 SCL和 SDA都需要上拉電阻,總線在空閑狀態(tài)下均保持高電平,連接到總線上的任意器件輸出的低電平,都將使總線的信號(hào)變低,即各器件的SDA和 SCL都是線與的關(guān)系。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1