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

正文內(nèi)容

基于單片機的溫控報警器設(shè)計-閱讀頁

2025-06-27 05:13本頁面
  

【正文】 { delay_ms(100)。 //轉(zhuǎn)換位變量加 1 if(sw4) //轉(zhuǎn)換位變量加到 5 歸 0 { sw=0。amp。 xs++。 26 } } if((reduce==0)amp。(sw==1)) //當(dāng)減 1鍵按下并且轉(zhuǎn)換位變量 sw 等于 1 { delay_ms(100)。 //小數(shù)位減 1 if(xs0) //當(dāng)小數(shù)位減到 1歸 9 { xs=9。amp。 ge++。 } } if((reduce==0)amp。(sw==2)) //當(dāng)減 1鍵按下并且轉(zhuǎn)換位變量 sw 等于 2 { delay_ms(100)。 //個位減 1 if(ge0) //當(dāng)個位減到 1歸 9 { ge=9。amp。 shi++。 } } if((reduce==0)amp。(sw==3)) //當(dāng)減 1鍵按下并且轉(zhuǎn)換位變量 sw 等于 3,十位減法變化 { delay_ms(100)。 if(shi0) { shi=9。amp。 bai++。 } 28 } if((reduce==0)amp。(sw==4)) ////當(dāng)減 1 鍵按下并且轉(zhuǎn)換位變量 sw等于 4,百位減法變化 { delay_ms(100)。 if(bai0) { bai=1。 //將小數(shù)位,個位,十位和百位整合到全局變量 t 中 } 程序代碼如下: void main(void) { delay_ms(100)。 //端口初始化 lcd_init()。 //關(guān) led 燈 bell_off。 //將從18b20讀回來的數(shù)據(jù)傳入全局變量 temperture中 displayl(temperture)。 //100us 延時 ss()。 //設(shè)定溫度顯示子函數(shù) if(temperture=t) //當(dāng)實時溫度比設(shè)定溫度高 { bell_on。 //點亮 led 燈 } if(ttemperture) //當(dāng)實時溫度比設(shè)定溫度低 { led_off。 //關(guān)閉蜂鳴器 } } } 整個程序的主函數(shù)就是該函數(shù),它讓整個程序不斷運行和為它服務(wù)。最后,對實時溫度進行判斷,當(dāng)實時溫度大于設(shè)定溫度,燈亮、器鳴;當(dāng)實時溫度小于設(shè)定溫度,燈滅并關(guān)閉 蜂鳴器。該系統(tǒng)的硬件調(diào)試主要是液晶顯示器 LCD1602, DS18B20 溫度傳感器之間的關(guān)系,分別與單片機 ATmega16 的調(diào)試。 不可接反 或 虛焊多焊 。 30 在設(shè)計調(diào)試的問題很多,其中最重要的關(guān)鍵是 按鈕 防抖調(diào)試,液晶顯示位置調(diào)試和啟動DS18B20 調(diào)試。由于 按鍵沒有 考慮防抖的漏洞 ,它 必須加上防抖功能在軟件或硬件提供了一個按鍵的實時和準確性。這是因為 按下按鍵 時,水平不穩(wěn)定之間的轉(zhuǎn)換,那么將有很多次的電平轉(zhuǎn)換。 液晶顯示器 顯示位置的調(diào)試。因此,在調(diào)試時,位置數(shù)據(jù)顯示位置是不是我想要的。 啟動調(diào)試 DS18B20。由于這個原因,在一開始的時候一直無法啟動 DS18B20,已被寫入在參考和控制程序,發(fā)現(xiàn)差異并不大,在水平設(shè)置。想要延遲過快或延緩?fù)?。特別注意的是,一定要按照指示加入 延時功能,因為 DS18B20 的設(shè)備是特別敏感的時間設(shè)備 參考文獻 [1]居榮 .郭怡倩. DS18B20 在溫控系統(tǒng)中的應(yīng)用 [J].農(nóng)機化研究, 2021: 01 [2]明德剛. DS18B20 在單片機溫控系統(tǒng)中的應(yīng)用 [J].貴州大學(xué)學(xué)報(自然科學(xué)版) 2021:01 [3]張粵.倪偉 DSl8B20 在分布式測溫系統(tǒng)中的應(yīng)用 [J].淮陰工學(xué)院學(xué)報 2021: 10 [4] 楊振江,馮軍:《單片機原理與實踐指導(dǎo)》,西安電子科技大學(xué)出版社, 2021. [5]葉丹.基于單片機的自適應(yīng)溫度控制系統(tǒng) [M].傳感器技術(shù) 2021: 03 [6]周興華.單片機 c語言高級編程 [M].北京:中國電力出版社, 2021: 5993 [7]譚浩強. C程序設(shè)計(第二版) [M].北京:清華大學(xué)出版社, 1999 31 [8]馬潮. AVR 單片機嵌入式系統(tǒng)原理與應(yīng)用實踐 [M] .北京:北京航空航天大學(xué)出版社,2021 [9]ATMEL. Atmega48 Data Book[M]. [10]Mao H,Lee FredC . Review of power factor correction techniques[C] . Proceedings of IPEMC’ 97,Hangzhou,1997 32 附錄 附錄 1 系統(tǒng)原理圖 33 附錄 2 系統(tǒng) PCB 圖 34 附錄 3 系統(tǒng)軟件程序 include include define uchar unsigned char define uint unsigned int define lcd_rs_1 PORTD|=BIT(PD5) //1602 的 rs 信號置高電平 define lcd_rs_0 PORTDamp。=~BIT(PD6) //1602 的 rw 信號拉低電平 define lcd_en_1 PORTD|=BIT(PD7) //1602 的 en 信號置高電平 define lcd_en_0 PORTDamp。=~(1PB3) //設(shè)置 PB3為輸入 define DQ_SET PORTB|=(1PB3) //置高 PB3 電平 define DQ_CLR PORTBamp。(1PB3)) //設(shè)置讀 PB3 define con (PINBamp。(1PD2)) //設(shè)置讀 PD2,數(shù)字位加信號 define reduce (PINDamp。=~(1PB4) //點亮 led 燈 define bell_on PORTD|=(1PD4) //打開蜂鳴器 define led_off PORTB|=(1PB4) //熄滅 led 燈 define bell_off PORTDamp。 //用于顯示的數(shù)組 int temperture=0。 //全局變量,設(shè)定溫度總變量,初始值為 50 int xs=0,ge=0,shi=5,bai=0,sw=0。 void delay_us(uint us)。 void lcd_busy(void)。 void lcd_w_data(uchar w_data)。 void locate(char posx,char posy)。 void display_str(uchar x,uchar y,uchar *s)。 void write_18b20_(uchar val)。 void init_18b20(void)。 void ss(void)。 /**************************************************************/ void delay_us(uint us) //us 級別延時子函數(shù) { if(us==0) { return。 } } void delay_ms(uint ms) //ms 級別子函數(shù) { uint i=0,j=0。ims。j(uint)(xtal*1432)。 } } 37 /**************************************************************/ void port_init(void) //端口初始化子函數(shù) { DDRD=0xf0。 DDRC=0xff。 DDRBamp。 DDRB|=(14)。 //DDRB|=BIT(3)。 } /*****************************************************************/ void locate(char posx,char posy) //1602 位置顯示子函數(shù) { uchar temp。=0x01。 //y 軸為 1時,加十六位的 40 } temp|=0x80|posx。 } 38 //字符 lcd1602 顯示子函數(shù) void display_char(uchar x,uchar y,uchar code) { locate(x,y)。 } //字符串 lcd1602 顯示子函數(shù) void display_str(uchar x,uchar y,uchar *s) { while(*s != 39。) //判斷顯示內(nèi)容不為空 { display_char(x,y,*s++)。 if((y == 0) amp。 (x = 16)) //當(dāng) x軸不夠位置顯示,字符自動換行 { y = 1。 } else if((y == 1) amp。 (x = 16)) { return。 dataport=0xff。 lcd_rw_1。 lcd_en_1。 _NOP()。 val=PINC。busy) //判斷 lcd1602 為工作中,工作完成繼續(xù)下一條代碼 { val=PINC。 DDRC=0xff。 40 } lcd_rs_0。 //拉低 rw 電平 _NOP()。 //將要輸入到 1602 的命令放到 PC 端口 _NOP()。 //拉高 en 電平 _NOP()。 lcd_en_0。 //檢測 lcd 是否處于忙狀態(tài) lcd_rs_1。 //拉低 rw 電平 _NOP()。 //將要輸入到 lcd1602 的數(shù)據(jù)放到 PC 端口 _NOP()。 //拉高 en 電平 _NOP()。 lcd_en_0。 //8 位數(shù)據(jù)傳輸, 2行顯示, 5*7 字形,不檢測忙信號 delay_ms(5)。 delay_ms(5)。 delay_ms(5)。 //8 位數(shù)據(jù)傳輸, 2行顯示, 5*7 字形,檢測忙信號 lcd_w_(0x08,1)。 //清屏,檢測忙信號 lcd_w_(0x06,1)。 //顯示屏打開,光標不顯示,不閃爍,檢測忙信號 delay_ms(5)。 //第一行要顯示的初始內(nèi)容 delay_ms(5)。 //第二行要顯示的初始內(nèi)容 delay_ms(5)。 //100ms 延時 42 port_init()。 //lcd1602 初始化 led_off。 //關(guān)蜂鳴器 while(1) { temperture=read_18b20_temp()。 //實時溫度顯示子函數(shù) delay_us(100)。 //溫度設(shè)定子函數(shù) display_2(t)。 //打開蜂鳴器 led_on。 //關(guān)閉 led 燈 bell_off。 //設(shè)置 lcd 顯示位置是第一行,第12 個位 delay_ms(5)。 //實時溫度的百位 delay_ms(5)。 //設(shè)置 lcd 顯示 位置是第一行,第13 個位 delay_ms(5)。 //實時溫度的十位 delay_ms(5)。 //設(shè)置 lcd 顯示位置是第一行,第14 個位 delay_ms(5)。 //實時溫度的個位 delay_ms(5)。 //設(shè)置 lcd 顯示位置是第一行,第16個位 delay_ms(5)。 //實時溫度的小數(shù)后一位 delay_ms(5)。 } while(i) { NOP()。 NOP()。 } } //18b20 初始化(復(fù)位)子函數(shù) void init_18b20(void) { DQ_OUT。 //拉高 PB3 電平 delay_10us(1)。 //拉低 PB3 電平 delay_10us(75)。 //再次拉高 PB3 電平 delay_10us(6)。 //
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1