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

正文內(nèi)容

基于avr的水溫控制系統(tǒng)畢業(yè)論文(編輯修改稿)

2024-08-23 03:40 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 簡(jiǎn)單的讀取溫度值的時(shí)候,只用讀取暫存器中的第0和第1個(gè)字節(jié)就可以了。讀取溫度值的步驟如下:1)初始化2)跳過(guò)ROM操作3)發(fā)送溫度轉(zhuǎn)換命令4)跳過(guò)ROM操作5)發(fā)送讀取溫度命令6)讀取溫度值開(kāi)始初始化N初始化成功 判斷YROM指令存儲(chǔ)操作讀操作 結(jié)束初始化/*DS18B20復(fù)位函數(shù)*/unsigned char ds1820_reset(void) { unsigned char i。 flag = SREG。 /*中斷保護(hù)*/ CLI()。 /*關(guān)中斷*/ DQ_OUT。 DQ_CLR。 delay_10us(49)。 /*延時(shí)500uS(480960)*/ DQ_SET。 DQ_IN。 delay_10us(7)。 /*延時(shí)80uS*/ i = DQ_R。 delay_10us(49)。 /*延時(shí)500uS(保持480uS)*/ if (flag amp。 0x80) SEI()。 /*恢復(fù)中斷狀態(tài)*/ if (i) return 0x00。 else return 0x01。 }讀操作/*DS18B20字節(jié)讀取函數(shù)*/unsigned char ds1820_read_byte(void) { unsigned char i。 unsigned char value = 0。 flag = SREG。 /*中斷保護(hù)*/ CLI()。 /*關(guān)中斷*/ for (i = 8。 i != 0。 i) { value = 1。 DQ_OUT。 DQ_CLR。 NOP()。 /*延時(shí)4uS*/ NOP()。 NOP()。 NOP()。 DQ_SET。 DQ_IN。 delay_10us(1)。 /*延時(shí)10uS*/ if (DQ_R) value|=0x80。 delay_10us(5)。 /*延時(shí)60uS*/ } if (flag amp。 0x80) SEI()。 /*恢復(fù)中斷狀態(tài)*/ return(value)。}寫(xiě)操作/*DS18B20字節(jié)寫(xiě)入函數(shù)*/void ds1820_write_byte(unsigned char value) { unsigned char i。 flag = SREG。 /*中斷保護(hù)*/ CLI()。 /*關(guān)中斷*/ for (i = 8。 i != 0。 i) { DQ_OUT。 DQ_CLR。 NOP()。 /*延時(shí)4uS*/ NOP()。 NOP()。 NOP()。 if (value amp。 0x01) DQ_SET。 delay_10us(7)。 /*延時(shí)80uS*/ DQ_SET。 /*位結(jié)束*/ value = 1。 } if (flag amp。 0x80) SEI()。 /*恢復(fù)中斷狀態(tài)*/ }溫度轉(zhuǎn)化/*啟動(dòng)ds1820轉(zhuǎn)換*/void ds1820_start(void) { ds1820_reset()。 ds1820_write_byte(0xCC)。 /*勿略地址*/ ds1820_write_byte(0x44)。 /*啟動(dòng)轉(zhuǎn)換*/}讀溫度/*DS8B20讀取溫度信息*/unsigned int ds1820_read_temp(void) { unsigned int i。 unsigned char buf[9]。 ds1820_reset()。 ds1820_write_byte(0xCC)。 /*勿略地址*/ ds1820_write_byte(0xBE)。 /*讀取溫度*/ for (i = 0。 i 9。 i++) { buf[i] = ds1820_read_byte()。 } i = buf[1]。 i = 8。 i |= buf[0]。 return i。}Y溫度上限值加1按鍵1檢測(cè)是否按下YY高溫大于低溫溫度上限值減1按鍵2檢測(cè)是否按下結(jié)束開(kāi)始YY高溫大于低溫按鍵3檢測(cè)是否按下溫度下限值加1Y溫度上限值加1按鍵4檢測(cè)是否按下備注:按鍵程序分別檢測(cè)四個(gè)獨(dú)立按鍵,功能分別為上限加一、上限減一;下限加一、下限減一。設(shè)置了溫度控制模塊中溫度數(shù)值的上限與下限,并且上限不能低于下限,下限也不能高于上限。 開(kāi)始當(dāng)前溫度是否小于 下限溫度Y繼電器打開(kāi)執(zhí)行加溫NY當(dāng)前溫度是否=上限溫度2N繼電器停止 加溫 結(jié)束注:當(dāng)前溫度小于下限溫度的時(shí)候,直接加熱到上限溫度,之后不在加溫。當(dāng)溫度再一次小于下限溫度的時(shí)候再加熱到上限溫度。如此循環(huán)控制使溫度控制在預(yù)設(shè)的范圍內(nèi)。在第二個(gè)判斷框中是當(dāng)前溫度大于上限溫度減兩度。這是因?yàn)榧訜嵫b置在斷電之后猶豫熱量仍會(huì)散發(fā)一段時(shí)間,所以仍然會(huì)使水溫增高,通過(guò)實(shí)驗(yàn)結(jié)合水的比熱容所以最后決定當(dāng)溫度加熱到上限減兩度的時(shí)候繼電器就會(huì)自動(dòng)關(guān)閉。(1)寫(xiě)入命令/地址RS=L,RW=L,D0~D7=指令碼,E=高脈沖。/***************************************************************** 函數(shù)名 : LcdWriteCom 函數(shù)功能 : 向LCD寫(xiě)入一個(gè)字節(jié)的命令* 輸入 : * 輸出 : 無(wú)*************************************************************/void write_(uchar ){ PORTBamp。=~BIT(5)。 PORTBamp。=~BIT(6)。 PORTA=。 PORTB|=BIT(7)。 delay(1)。 PORTBamp。=~BIT(7)。}(2)寫(xiě)入數(shù)據(jù)RS=H,RW=L,D0~D7=數(shù)據(jù),E=高脈沖。/*************************************************************************** 函數(shù)名 : LcdWriteData * 函數(shù)功能 : 向LCD寫(xiě)入一個(gè)字節(jié)的數(shù)據(jù)* 輸入 : dat * 輸出 : 無(wú)**************************************************************************/ void write_dat(uchar dat){ PORTB|=BIT(5)。 PORTBamp。=~BIT(6)。 PORTA=dat。 PORTB|=BIT(7)。 delay(1)。 PORTBamp。=~BIT(7)。}(3) LCD1602初始化/************************************************************************* 函數(shù)名 : LcdInit()* 函數(shù)功能 : 初始化LCD屏* 輸入 : 無(wú)* 輸出 : 無(wú)************************************************************************/void LcdInit() //LCD初始化子程序{ write_(0x38)。 //設(shè)置顯示模式 write_(0x0c)。 //開(kāi)顯示不顯示光標(biāo),光標(biāo)不閃爍 write_0x06)。 //寫(xiě)一個(gè)指針加1 write_(0x01)。 //清屏 write_(0x80)。 //設(shè)置數(shù)據(jù)指針起點(diǎn)}本系統(tǒng)EEPROM利用的存儲(chǔ)器芯片ATmega128內(nèi)部EEPROM,要通過(guò)I2C總線去驅(qū)動(dòng),ATmega128微處理器自帶I2C總線。I2C總線是PHLIPS公司推出的一種串行總線,是具備多主機(jī)系統(tǒng)所需的包括總線裁決和高低速器件同步功能的高性能串行總線。I2C總線只有兩根雙向信號(hào)線。一根是數(shù)據(jù)線SDA,另一根是時(shí)鐘線SCL。在用戶(hù)設(shè)置預(yù)設(shè)溫度的時(shí),S1S2按鍵按下執(zhí)行溫度下限加減的之后,程序自動(dòng)會(huì)把溫度下限存儲(chǔ)在EERPOM,的一個(gè)地址。同理在S3S4按鍵按下之后,程序會(huì)把溫度上限自動(dòng)存儲(chǔ)在EEPROM中的另一個(gè)地址中。兩者數(shù)據(jù)并會(huì)相互影響。在單片機(jī)斷電之后,原來(lái)的數(shù)值并不會(huì)因斷電而丟失,在單片機(jī)上電的時(shí)候,程序會(huì)自動(dòng)從EEPROM取出兩個(gè)數(shù)值,并分別把數(shù)據(jù)存儲(chǔ)在溫度的上限與下限。從而達(dá)到斷電保護(hù)與數(shù)據(jù)安全。下圖為I2C總線發(fā)送數(shù)據(jù)的整個(gè)過(guò)程的時(shí)序:I2C總線 空閑的時(shí)候,有可能需要完成一些其它工作,如處理內(nèi)部中斷服務(wù)等,可能無(wú)法立刻接收下一個(gè)字節(jié),這時(shí)接收器件可以將SCL線拉成低電平,從而使主機(jī)處于等待狀態(tài)。直到接收器件準(zhǔn)備好接收下一個(gè)字節(jié)時(shí),再釋放SCL線使之為高電平,從而使數(shù)據(jù)傳送可以繼續(xù)進(jìn)行。 在使用ATmega128內(nèi)部EEPROM過(guò)程如下:1)寫(xiě)入過(guò)程:1發(fā)送器件地址(0XA0)2發(fā)送要寫(xiě)入EEPROM的內(nèi)存地址3發(fā)送要寫(xiě)入的數(shù)據(jù)void EEPROM_write(uint EEPROM_ADDR, uchar EEPROM_DAT){ while(EECR amp。 (1EEWE))。 EEARH = 0X00。 EEARL = EEPROM_ADDR。 EEDR = EEPROM_DAT。 EECR |= (1EEMWE)。 EECR |= (1EEWE)。}2)讀出過(guò)程1發(fā)送寫(xiě)入的器件地址(0XA0)2發(fā)送要讀的EEPROM的內(nèi)存地址3發(fā)送讀出的器件地址(0XA1)4讀取數(shù)據(jù)uchar EE0PROM_read(uint EEPROM_ADDR){ while(EECR amp。 (1EEWE))。 EEARH = 0X00。 EEARL = EEPROM_ADDR。 EECR |= (1EERE)。 return EEDR。} 一、ICCAVR的介紹自ATMEL公司的AT90系列單片機(jī)誕生以來(lái)有很多第三方廠商為AT90系列開(kāi)發(fā)了用于程序開(kāi)發(fā)的C語(yǔ)言工具,ICCAVR就是ATMEL公司推薦的第三方C編譯器之一。 ImageCraft 的ICCAVR 介紹 ImageCraft 的ICCAVR 是一種使用符合 ANSI 標(biāo)準(zhǔn)的 C 語(yǔ)言來(lái)開(kāi)發(fā)微控制器 MCU 程序的一個(gè)工具。它有以下幾個(gè)主要特點(diǎn) :1)ICCAVR是一個(gè)綜合了編輯器和工程管理器的集成工作環(huán)境(IDE);2)源文件全部被組織到工程之中,文件的編輯和工程的構(gòu)筑也在這個(gè)環(huán)境中完成,錯(cuò)誤顯示在狀態(tài)窗口中,并且當(dāng)你點(diǎn)擊編譯錯(cuò)誤時(shí),光標(biāo)自動(dòng)跳轉(zhuǎn)到錯(cuò)誤的那一行;3)該工程管理器還能直接產(chǎn)生 INTEL HEX格式文件的燒寫(xiě)文件(該格式的文件可被大多數(shù)編程器所支持,可以直接下載到芯片中使用)和符合 AVRStudio的調(diào)試文件(COFF格式)。4)ICCAVR是一個(gè)32位的程序,支持長(zhǎng)文件名。5)ICCAVR是一個(gè)綜合了編輯器和工程管理器的集成開(kāi)發(fā)環(huán)境(IDE),是一個(gè)純32位的程序,可在 Win 9Win 9Win ME、Win NT、Win 2000、Win XP和Win 7環(huán)境下運(yùn)行。ICCAVR 中的文件類(lèi)型及其擴(kuò)展名 文件類(lèi)型是由它們的擴(kuò)展名決定的 IDE 和編譯器可以使用以下幾種類(lèi)型的文件。輸入文件:1).c 擴(kuò)展名表示是 C 語(yǔ)言源文件。 2).s 擴(kuò)展名表示是匯編語(yǔ)言源文件。 3).h 擴(kuò)展名表示是 C 語(yǔ)言的頭文件。4).prj 擴(kuò)展名表示是工程文件,這個(gè)文件保存由 IDE 所創(chuàng)建和修改的一個(gè)工程的有關(guān)信息。 5).a 擴(kuò)展名庫(kù)文件 它可以由幾個(gè)庫(kù)封裝在一起 是一個(gè)包含了標(biāo)準(zhǔn) C 的 庫(kù)和 AVR 特殊程序調(diào)用的基本庫(kù) 如果庫(kù)被引用 鏈接器會(huì)將其鏈接到用戶(hù)的模塊或文件中 用戶(hù)也可以創(chuàng)建或修改一個(gè)符合你需要的庫(kù) 輸出文件 1).s 對(duì)應(yīng)每個(gè) C 語(yǔ)言源文件 由編譯器在編譯時(shí)產(chǎn)生的匯編輸出文件 2) .o 由匯編文件匯編產(chǎn)生的目標(biāo)文件 多個(gè)目標(biāo)文件可以鏈接成一個(gè)可執(zhí)行文件 3).hex INTEL HEX 格式文件 其中
點(diǎn)擊復(fù)制文檔內(nèi)容
語(yǔ)文相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1