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

正文內(nèi)容

基于單片機(jī)的電熱水器溫度控制系統(tǒng)設(shè)計(jì)本科-資料下載頁(yè)

2024-12-06 02:19本頁(yè)面

【導(dǎo)讀】隨著科學(xué)技術(shù)和生產(chǎn)的快速發(fā)展,在生活中,溫度成為了頻繁出現(xiàn)的詞匯。溫度測(cè)量與控制也成為了生活生產(chǎn)中重要的一部分。在化工、石油、冶金等生產(chǎn)。除了這些部門(mén)之外,溫度控制系統(tǒng)還廣泛應(yīng)用于其他領(lǐng)域,是用途很廣的一。類(lèi)工業(yè)控制系統(tǒng)。本文所設(shè)計(jì)的電熱水器溫度控制系統(tǒng)就采用AT89C51單片機(jī)為控制核心,到的溫度數(shù)據(jù)傳送給單片機(jī)進(jìn)行分析處理。并由LCD1602液晶屏顯示溫度值及。通過(guò)該上下限控制蜂鳴器的報(bào)警,再通過(guò)繼電器的通斷來(lái)決定電熱絲是否加熱,實(shí)現(xiàn)對(duì)溫度的簡(jiǎn)單控制,達(dá)到預(yù)先設(shè)置范圍內(nèi)。

  

【正文】 result =P0 amp。 0x80。 en = 0。 return result。 } void write_data(uchar dat) // 寫(xiě)一個(gè)字節(jié) { lcd_busy()。 rs=1。 rw=0。 en=0。 P0=dat。 _nop_()。 _nop_()。 _nop_()。 en=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 西北工業(yè)大學(xué)明德學(xué)院本科畢業(yè)設(shè)計(jì)論文 39 en=0。 } void read_cmd(uchar cmd) //讀一個(gè)字節(jié) { lcd_busy()。 rs=0。 rw=0。 en=0。 _nop_()。 _nop_()。 P0=cmd。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 en=1。 _nop_()。 _nop_()。 _nop_()。 en=0。 } void lcd_pos(uchar x,uchar y) //確定位置 { if(y)read_cmd(x|0xc0)。 else read_cmd(x|0x80)。 } 西北工業(yè)大學(xué)明德學(xué)院本科畢業(yè)設(shè)計(jì)論文 40 void init_lcd() //初始化 lcd { read_cmd(0x01)。 //清屏 delay(1)。 read_cmd(0x06)。 delay(1)。 read_cmd(0x02)。 delay(1)。 read_cmd(0x0f)。 delay(1)。 read_cmd(0x38)。 } void disp(uchar *string,uchar x,uchar y) //顯示 { lcd_pos(x,y)。 while(*string) { write_data(*string)。 string++。 } } /***************ds1302***************/ void input_1byte(uchar temp) //寫(xiě)一個(gè)字節(jié) { uchar i。 ACC=temp。 for(i=8。i0。i) { 西北工業(yè)大學(xué)明德學(xué)院本科畢業(yè)設(shè)計(jì)論文 41 io=ACC0。 sclk=1。 sclk=0。 ACC=ACC1。 } } uchar output_1byte(void) { uchar i。 for(i=8。i0。i) { ACC=ACC1。 ACC7=io。 sclk=1。 sclk=0。 } return(ACC)。 } void write_ds1302(uchar add,uchar dat) { rst=0。 sclk=0。 rst=1。 input_1byte(add)。 西北工業(yè)大學(xué)明德學(xué)院本科畢業(yè)設(shè)計(jì)論文 42 input_1byte(dat)。 sclk=1。 rst=0。 } uchar read_ds1302(uchar add) { uchar dat。 rst=0。 sclk=0。 rst=1。 input_1byte(add)。 dat=output_1byte()。 sclk=1。 rst=0。 return(dat)。 } void init_1302() { write_ds1302(0x8e,0x00)。 //guanbixiebaohu write_ds1302(0x90,0xaa)。 //chongdian write_ds1302(0x80,0x00)。 //miao write_ds1302(0x82,0x21)。 //fen 西北工業(yè)大學(xué)明德學(xué)院本科畢業(yè)設(shè)計(jì)論文 43 write_ds1302(0x84,0x15)。 //shi write_ds1302(0x86,0x23)。 //ri write_ds1302(0x88,0x04)。 //yue write_ds1302(0x8a,0x01)。 //xingqi write_ds1302(0x8c,0x12)。 //nian write_ds1302(0x8e,0x80)。 //dakaixiebaohu } /***************ds18b20***************/ void delay1(uchar i) //12Mhz 的晶振 ,T=(i*2+5)us { while(i)。 } void mdelay(unsigned int ms) { unsigned char k。 while(ms) { for(k = 0。 k 114。 k++)。 } } void init_DS18B20(void) { DQ = 1。 delay1(1)。 //稍做延時(shí) DQ = 0。 //單片機(jī)拉低總線 delay1(250)。 //精確延時(shí),維持至少 480us 西北工業(yè)大學(xué)明德學(xué)院本科畢業(yè)設(shè)計(jì)論文 44 DQ = 1。 //釋放總線,即拉高了總線 delay1(120)。 //此處延時(shí)有足夠 ,確保能讓 DS18B20 發(fā)出存在脈沖。 } //18B20 寫(xiě)命令函數(shù) void write_DS18B20(uchar cmd) { uchar i。 for (i=8。 i0。 i) // { DQ=1。 _nop_()。_nop_()。 DQ=0。 _nop_()。_nop_()。_nop_()。_nop_()。_nop_()。//5us DQ=cmd amp。 0x01。 //最低位移出 delay1(30)。 //65us cmd=cmd=1。 //右移一位 } DQ = 1。 delay1(2)。 } //18B20 讀 1 個(gè)字節(jié)函數(shù) uchar read_DS18B20(void) { uchar i。 西北工業(yè)大學(xué)明德學(xué)院本科畢業(yè)設(shè)計(jì)論文 45 uchar byte = 0。 for (i=8。i0。i) { DQ=1。 _nop_()。_nop_()。 byte=1。 DQ = 0。 _nop_()。_nop_()。_nop_()。_nop_()。 //4us DQ = 1。 _nop_()。_nop_()。_nop_()。_nop_()。 //4us if(DQ) byte|=0x80。 delay1(30)。 //65us } DQ=1。 return(byte)。 } //讀出溫度函數(shù) read_temp() { float t。 init_DS18B20()。 //復(fù)位 _nop_()。 write_DS18B20(0xcc)。 西北工業(yè)大學(xué)明德學(xué)院本科畢業(yè)設(shè)計(jì)論文 46 write_DS18B20(0x44)。 //轉(zhuǎn)換 mdelay(750)。 init_DS18B20()。 //復(fù)位 _nop_()。 write_DS18B20(0xcc)。 write_DS18B20(0xBE)。 temp_l=read_DS18B20()。 //連續(xù)讀取兩位溫度 temp_h=read_DS18B20()。 flag=temp_hamp。0xf8。 if(flag) { disp(,10,1)。 temp_h=~temp_h。 if(temp_l==0)temp_h++。 //若低8位全為0且溫度為負(fù),取補(bǔ)時(shí)就要向高位進(jìn)1 temp_l=~temp_l+1。 } t=(temp_h*256+temp_l)*。 return(t)。 } void disp_temp() { realtemp=read_temp()。 shi=realtemp/10。 西北工業(yè)大學(xué)明德學(xué)院本科畢業(yè)設(shè)計(jì)論文 47 ge=(uchar)realtemp%10。 dec1=(uchar)(realtemp*10)%10。 dec2=(uchar)(realtemp*100)%10。 lcd_pos(10,1)。 write_data(table[shi])。 lcd_pos(11,1)。 write_data(table[ge])。 lcd_pos(13,1)。 write_data(table[dec1])。 lcd_pos(14,1)。 write_data(table[dec2])。 } void disp_time() { sec=read_ds1302(0x81)。 sec1=secamp。0x0f。 sec2=(sec4)。 min=read_ds1302(0x83)。 min1=minamp。0x0f。 min2=(min4)。 hour=read_ds1302(0x85)。 hour1=houramp。0x0f。 hour2=(hour4)。 day=read_ds1302(0x87)。 day1=dayamp。0x0f。 day2=(day4)。 mon=read_ds1302(0x89)。 mon1=monamp。0x0f。 西北工業(yè)大學(xué)明德學(xué)院本科畢業(yè)設(shè)計(jì)論文 48 mon2=(mon4)。 year=read_ds1302(0x8d)。 year1=yearamp。0x0f。 year2=(year4)。 week=read_ds1302(0x8b)。 week1=weekamp。0x0f。 lcd_pos(8,1)。 write_data(table[sec1])。 lcd_pos(7,1)。 write_data(table[sec2])。 lcd_pos(5,1)。 write_data(table[min1])。 lcd_pos(4,1)。 write_data(table[min2])。 lcd_pos(2,1)。 write_data(table[hour1])。 lcd_pos(1,1)。 write_data(table[hour2])。 lcd_pos(10,0)。 write_data(table[day1])。 lcd_pos(9,0)。 write_data(table[day2])。 lcd_pos(7,0)。 write_data(table[mon1])。 lcd_pos(6,0)。 write_data(table[mon2])。 lcd_pos(4,0)。 write_data(table[year1])。 西北工業(yè)大學(xué)明德學(xué)院本科畢業(yè)設(shè)計(jì)論文 49 lcd_pos(3,0)。 write_data(table[year2])。 lcd_pos(13,0)。 switch(week1) { case 1: disp(MON,13,0)。 break。 case 2: disp(TUE,13,0)。 break。 case 3: disp(WEN,13,0)。 break。 case 4: disp(THU,13,0)。 break。 case 5: disp(FRI,13,0)。 brea
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1