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

正文內(nèi)容

畢業(yè)論文-基于stc89c5單片機(jī)的室內(nèi)溫濕度計(jì)的設(shè)計(jì)(編輯修改稿)

2025-02-12 22:32 本頁面
 

【文章內(nèi)容簡介】 了深刻的認(rèn)識?;菊莆樟嗽撔酒幕竟δ?。經(jīng)過軟件在硬件電路的時候,基本功能均能實(shí)現(xiàn),如果把手放在傳感器上面,溫度和濕度會立即發(fā)生變化。并且溫濕度上下限可以實(shí)時調(diào)節(jié)。 致 謝 四年的大學(xué)生活接近尾聲,我的畢業(yè)設(shè)計(jì)也順利的完成了,這里首先向我的指導(dǎo)老師王丹老師表示最誠摯的感謝,同時也感謝那些幫助過我的同學(xué)們。 在本次的畢業(yè)設(shè)計(jì)中王老師給我提供了極大的幫助,首先在一開始的選題中我便遇到了難題,由于當(dāng)時選題的時候不在學(xué)校,回到學(xué)校面對 眾多選題不知該選哪一個,好在老師在時間上給了我很大的寬限,讓我有足夠的時間回頭復(fù)習(xí)一下專業(yè)知識,然后選題,最終選了一個自己擅長和喜歡的方向。因此畢業(yè)設(shè)計(jì)對于自己來說也是充滿著興趣,這樣做出來的東西可能會更加完美和輕松。在畢業(yè)設(shè)計(jì)的過程中,王老師定期檢查督促我們的畢業(yè)設(shè)計(jì),幫我們解決遇到的問題。王老師認(rèn)真負(fù)責(zé)的態(tài)度讓我倍受感激。同時在此也感謝白鑫和丁寶寶同學(xué),他們解決了許多我在畢業(yè)設(shè)計(jì)中遇到的問題,特別是剛開始軟件的學(xué)習(xí)中,他們給了我很大的幫助。 在此向所有畢業(yè)設(shè)計(jì)的過程中給予我?guī)椭睦蠋熀屯瑢W(xué)表示最誠摯的謝 意。 參考文獻(xiàn) [1]徐 瑋 .C51 單片機(jī)高效入門 第二版 機(jī)械工業(yè)出版社 [2]湯武輝 .Proteus 仿真軟件與單片機(jī)實(shí)驗(yàn)教學(xué)長江 大學(xué)學(xué)報(bào) [3]李建民 .單片機(jī)在溫度控制系統(tǒng)中的應(yīng)用 網(wǎng)絡(luò)信息資源 15 [4]陳汝全 .實(shí)用微機(jī)與單片機(jī)控制技術(shù) 電子科技大學(xué)出版社 [5]劉寶元 .張玉虹 基于單片機(jī)的溫濕度監(jiān)控系統(tǒng)設(shè)計(jì) 國外電子測量技術(shù) 附 錄 源程序 include include define SIZE 5 //定義存貯數(shù)組為五個字節(jié) define NUMBER 20 define OK 1 define ERROR 0 typedef unsigned char uchar。 typedef unsigned int uint。 uint shidu,wendu。 uint wen_sx=0。 //溫度上限 uint shi_sx=0。 //濕度上限 uchar num。 uchar STATUS = OK。 //狀態(tài)標(biāo)志 uchar code table[]=wendu:。 //溫度 uchar code table1[]=shidu:。//濕度 uchar code table2[]={0123456789}。 uchar value_array[SIZE]。 uchar bai,shi,ge,bai1,shi1,ge1,num1,shi2,ge2,shi3,ge3。 /*各個變量定義 */ uchar count,shidu_xiaoshu,wendu_xiaoshu。//標(biāo)志,問四度小數(shù)部分 uchar num。 sbit e=P2^7。 sbit rs=P2^6。 sbit wr=P2^5。 sbit DHT11=P1^7。// 傳感器傳輸總線定義 sbit s1=P1^1。 //按鍵定義 sbit s2=P1^2。 sbit s3=P1^3。 sbit s4=P1^4。 sbit baojing=P1^5。// 報(bào)警位定義 sbit led=P3^4。 void delay_5us() { _nop_()。 16 _nop_()。 _nop_()。 _nop_()。 _nop_()。 } void delay(uint delay) { uint i,j。 for(i=0。idelay。i++) for(j=0。j120。j++)。 } uchar read_one_byte(void) { uchar count,value=0,i=0。 STATUS = OK。 for(i=8。i0。i) { value = 1。 count = 0。 while(DHT11 == 0 amp。amp。 count++NUMBER)。 if(count=NUMBER) { STATUS = ERROR。 return 0。 } delay_5us()。 delay_5us()。 delay_5us()。 if(DHT11 != 0) { value ++。 while(DHT11 != 0amp。amp。 count++ NUMBER) { DHT11 = 1。 } if(count=NUMBER) { STATUS = ERROR。 return 0。 } } } return value。 } 17 uchar ReadValue(void) { uchar count=0,check_value=0,i=0。 DHT11 = 0。 delay(20)。 DHT11 = 1。 delay_5us()。 delay_5us()。 delay_5us()。 delay_5us()。 if(DHT11 != 0) { return ERROR。 } while(DHT11 == 0 amp。amp。 count++NUMBER)。 if(count=NUMBER) { DHT11 = 1。 return ERROR。 } count = 0。 DHT11 = 1。 while(DHT11 != 0 amp。amp。count++NUMBER)。 if(count=NUMBER) { DHT11 = 1。 return ERROR。 } for(i=0。iSIZE。i++) { value_array[i]=read_one_byte()。 if(STATUS==ERROR) { DHT11 = 1。 return ERROR。 } if(i!=SIZE1) { check_value+=value_array[i]。 } } if(check_value==value_array[SIZE1]) { 18 shidu = value_array[0]*10 + value_array[1]/100。 wendu = value_array[2]*10 + value_array[3]/100。 DHT11 = 1。 return OK。 } else { return ERROR。 } } void delayms(uint z) { uint x,y。 for(x=z。x0。x) for(y=110。y0。y)。 } void writedata1602(uchar Data) { e=0。 rs=0。 rs=1。 //rs 為一時寫數(shù)據(jù) delayms(1)。 P0=Data。 e=1。 delayms(1)。 e=0。 rs=0。 } void write1602(uchar Data1) { e=0。 rs=1。 rs=0。 //rs 為 0 時寫命令 delayms(1)。 P0=Data1。 e=1。 delayms(1)。 e=0。 rs=1。 } void lcd_int()//lcd 初始化 { 19 e=0。 write1602(0x38)。 write1602(0x0c)。 write1602(0x06)。 write1602(0x80)。 } void interrupt_init() { TMOD=0X01。 TH0=(6553650000)/256。 TL0=(6553650000)%256。 EA=1。 ET0=1。 TR0=1。 } void keyscan() { if(s1==0) delay(50)。 if(s1==0) { if(wen_sx50) wen_sx++。//按鍵 1 按下時溫度上限增加 else( wen_sx=0)。 //當(dāng)上限大于五十時,變?yōu)?0 } if(s2==0) delay(50)。 if(s2==0) { if(wen_sx0) wen_sx。//溫度上限大于 0 時,使溫度上限減小 else( wen_sx=50)。 //當(dāng)減小到零時,為 50 } if(s3==0) delay(50)。 if(s3==0) { if(shi_sx95) shi_sx++。//使?jié)穸壬舷拗翟黾? else( shi_sx=0)。 //上限大于 95 時,變?yōu)?0 } if(s4==0) delay(50)。 if(s4==0) { if(shi_sx0) shi_sx。 //使?jié)穸壬舷拗禍p小 else( shi_sx=95)。 // 減小到零時變?yōu)?95 20 } } void kongzhi() //控制報(bào)警 { if((wendu/10=wen_sx)||(shidu/10=shi_sx)) //此處 設(shè)定預(yù)設(shè)溫度 { baojing=0。 //報(bào)警,蜂鳴器響 led=0。 //led 燈亮 num++。 if(num==20) { num=0。 baojing=~baojing。 //取反 led=~led。 } } else { baojing=1。 //不報(bào)警,燈不亮 led=1。 } } /*中斷處理液晶顯示函數(shù) */ void timer0() interrupt 1 { TH0=(6553650000)/256。 TL0=(6553650000)%256。 count++。 if(count==3) { ReadValue()。 //讀溫度值 keyscan()。 //按鍵掃描程序 bai=wendu/100。 //溫度,濕度值各位進(jìn)行分離 shi=wendu%100/10。 ge=wendu%10。 bai1=shidu/100。 shi1=shidu%100/10。 ge1=shidu%10。 shi2=wen_sx/10。 ge2=wen_sx%10/1。 shi3=shi_sx/10。 21 ge3=shi_sx%10/1。 write1602(0x80)。//寫指令 for(num=0。num6。num++) { writedata1602(table[num])。 // delay(20)。 } /* 寫入溫濕度以及溫濕度上限值數(shù)據(jù) */ writedata1602(table2[bai])。 writedata1602(table2[shi])。 writedata1602(39。.39。)。 writedata1602(table2[ge])。 writedata1602(0xdf)。 writedata1602(39。C39。)。 writedata1602(39。39。)。 writedata1602(table2[shi2])。 writedata1602(table2[ge2])。 write1602(0x80+0x40)。 for(num1=0。num16。num1++) { writedata1602(table1[num1])。 } writedata1602(table2[bai1])。 writedata1602(table2[shi1])。 writedata1602(39。.39。)。 writedata1602(table2[ge1])。 writedata1602(39。%39。)。 writedata1602(39。39。)。 writedata1602(table2[shi3])。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1