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

正文內(nèi)容

[信息與通信]溫度自動(dòng)控制的設(shè)計(jì)-資料下載頁

2025-01-18 14:19本頁面
  

【正文】 等內(nèi)容做簡要介紹。1602LCD基本上分為帶背光和不帶背光兩種,基控制器大都為HD44780,一般帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無太大差別。 LCD1602尺寸圖: LCD1602的技術(shù)參數(shù)顯示容量16*2個(gè)字符片工作電壓~工作電流()模塊最佳工作電壓字符尺寸*(WXH)mm 溫度數(shù)據(jù)顯示電路 : 數(shù)據(jù)顯示電路圖 Proteus仿真原理圖本溫度自動(dòng)控制系統(tǒng)采用Proteus電子仿真軟件對本系統(tǒng)的設(shè)計(jì)電路進(jìn)行仿真。 整個(gè)溫度自動(dòng)控制系統(tǒng)電路原理圖在KEIL C中的程序編譯成功后,將其復(fù)制到Proteus原理圖文件中并加載,點(diǎn)運(yùn)行見后,可觀察到整個(gè)運(yùn)行結(jié)果。其在不同溫度下的運(yùn)行效果圖見附錄一。第四章 溫度自動(dòng)控制系統(tǒng)的軟件設(shè)計(jì)本章主要介紹了整個(gè)溫控系統(tǒng)的軟件設(shè)計(jì)思路及部分模塊的程序代碼。在上一章硬件基礎(chǔ)上,根據(jù)溫度自動(dòng)控制系統(tǒng)硬件的設(shè)計(jì)要求,本系統(tǒng)的軟件部分包括溫度采集系統(tǒng)的程序設(shè)計(jì)、溫度控制系統(tǒng)的程序設(shè)計(jì)和LCD1602顯示模塊的程序設(shè)計(jì)三個(gè)部分。整個(gè)軟件設(shè)計(jì)過程采用模塊化結(jié)構(gòu),C語言編程。接下來本章將重點(diǎn)分析溫度采集系統(tǒng)的程序設(shè)計(jì)、溫度控制系統(tǒng)的程序設(shè)計(jì)和LCD1602顯示模塊的程序設(shè)計(jì)三個(gè)部分的軟件實(shí)現(xiàn)過程,包括程序流程圖和C程序代碼。 溫度采集系統(tǒng)的軟件設(shè)計(jì) 溫度傳感器是整個(gè)溫度自動(dòng)控制系統(tǒng)的核心部件,它的選擇成功與否將直接關(guān)系到溫控系統(tǒng)的性能、成本和開發(fā)周期。協(xié)議包括集中單總線信號(hào)類型:復(fù)位脈沖、存在脈沖、寫0、寫讀0、和讀1。所有這些信號(hào),除存在脈沖外,都是由總線控制器發(fā)出的[3]。前面已對DS18B20的特性和引腳接口做過詳細(xì)介紹,這里就僅對溫度采集模塊的軟件設(shè)計(jì)流程和此部分的C程序代碼做一個(gè)詳細(xì)的說明。 溫度采集模塊的軟件設(shè)計(jì)流程圖用DS18B20進(jìn)行采集溫度數(shù)據(jù)時(shí),首先給單總線復(fù)位,經(jīng)過延時(shí),復(fù)位成功之后選擇DS18B20并發(fā)轉(zhuǎn)換命令,總線復(fù)位,經(jīng)過延時(shí),復(fù)位成功之后發(fā)讀溫度命令,返回采集到的溫度值。 DS18B20溫度采集系統(tǒng)程序流程圖 溫度采集模塊的軟件設(shè)計(jì)C程序代碼用DS18B20進(jìn)行采集溫度數(shù)據(jù)時(shí),先給單總線復(fù)位,經(jīng)過延時(shí),復(fù)位成功之后選擇DS18B20并發(fā)轉(zhuǎn)換命令,總線復(fù)位,經(jīng)過延時(shí),復(fù)位成功之后發(fā)讀溫度命令,返回采集到的溫度值。然后處理溫度數(shù)據(jù),先設(shè)置一個(gè)正負(fù)溫度標(biāo)志位flagdat,由于溫度數(shù)據(jù)已被擴(kuò)大10倍,分別用除以1000得到溫度值百位的值;用模1000再除以100得到溫度值的十位的值;用模100再除以10得到溫度值個(gè)位的值;用模10得到溫度數(shù)值小數(shù)位的值。將DS18B20處理溫度數(shù)據(jù)所得的數(shù)據(jù)賦給發(fā)送有效數(shù)據(jù)寄存器。flagdat:溫度為負(fù)值時(shí)為1,否則為0;disdata[0]:溫度值的百位;disdata[1]:溫度值的十位;disdata[2]:溫度值的個(gè)位;disdata[3]:溫度值的小數(shù)位。此部分的具體C程序代碼如下:void delay_18B20(unsigned int i) //延時(shí)1微秒// { while(i )。 } void ds1820rst( ) //ds1820復(fù)位// { unsigned char x=0。 DQ = 1。 //DQ復(fù)位// delay_18B20(4)。 //延時(shí)// DQ = 0。 //DQ拉低// delay_18B20(100)。 //精確延時(shí)大于480us// DQ = 1。 //拉高// delay_18B20(40)。 } uchar ds1820rd( ) //讀數(shù)據(jù)//{ unsigned char i=0。 unsigned char dat = 0。 for (i=8。i0。i) { DQ = 0。 //給脈沖信號(hào)// dat=1。 DQ = 1。 //給脈沖信號(hào)// if(DQ) dat|=0x80。 delay_18B20(10)。 } return(dat)。}void ds1820wr(uchar wdata) //寫數(shù)據(jù)//{ unsigned char i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = wdataamp。0x01。 delay_18B20(10)。 DQ = 1。 wdata=1。 }}read_temp( ) //讀取溫度值并轉(zhuǎn)換//{ uchar a,b。 ds1820rst()。 ds1820wr(0xcc)。 //跳過讀序列號(hào)// ds1820wr(0x44)。 //啟動(dòng)溫度轉(zhuǎn)換,發(fā)44H溫度轉(zhuǎn)換命令// ds1820rst()。 ds1820wr(0xcc)。 //跳過讀序列號(hào)// ds1820wr(0xbe)。 //讀取溫度// a=ds1820rd( )。 b=ds1820rd( )。 tvalue=b。 tvalue=8。 tvalue=tvalue|a。 if(tvalue0x0fff) //若溫度為正值// tflag=0。 else //若溫度為負(fù)值// { tvalue=~tvalue+1。 tflag=1。 } tvalue=tvalue*()。 //溫度值擴(kuò)大10倍,精確到1位小數(shù)// return(tvalue)。}void ds1820disp( ) //溫度值顯示//{ uchar flagdat。 disdata[0]=tvalue/1000+0x30。 //百位數(shù) disdata[1]=tvalue%1000/100+0x30。 //十位數(shù) disdata[2]=tvalue%100/10+0x30。 //個(gè)位數(shù) disdata[3]=tvalue%10+0x30。 //小數(shù)位 if(tflag==0) flagdat=0x20。//正溫度不顯示符號(hào) else flagdat=0x2d。//負(fù)溫度顯示負(fù)號(hào): if(disdata[0]==0x30) { disdata[0]=0x20。 //如果百位為0,不顯示// if(disdata[1]==0x30) { disdata[1]=0x20。 //如果百位為0,十位為0也不顯示// } } wr_(0xc0)。 wr_dat(flagdat)。 //顯示符號(hào)位// wr_(0xc1)。 wr_dat(disdata[0])。 //顯示百位// wr_(0xc2)。 wr_dat(disdata[1])。 //顯示十位// wr_(0xc3)。 wr_dat(disdata[2])。 //顯示個(gè)位// wr_(0xc4)。 wr_dat(0x2e)。 //顯示小數(shù)點(diǎn)// wr_(0xc5)。 wr_dat(disdata[3])。 //顯示小數(shù)位//} 溫度控制系統(tǒng)的軟件設(shè)計(jì)在此溫度控制系統(tǒng)中,我們采用了AT89C51單片機(jī)控制加熱設(shè)備來對溫度進(jìn)行控制,加熱設(shè)備主要包括兩部分:繼電器和加熱器。由DS18B20溫度傳感器采集來的溫度數(shù)據(jù)經(jīng)過單片機(jī)處理后,通過繼電器進(jìn)行電壓轉(zhuǎn)換,進(jìn)而為加熱器提供額定電壓驅(qū)動(dòng)其進(jìn)行加熱工作。本部分也是整個(gè)主程序的主要組成部分。 溫度控制模塊的軟件設(shè)計(jì)流程圖 : 對AT89C51的引腳進(jìn)行定義DS18B20采集到的溫度值tvalue990?Y延 時(shí)NHT=1Modeflag=1初始狀態(tài)設(shè)置為加熱狀態(tài),即HT=0,Modeflag=0開 始延 時(shí)延 時(shí)Modeflag==1?YTvalue800?NNTvalue600?YHT=0YHT=1 圖 溫度控制程序模塊流程圖 溫度控制模塊的軟件設(shè)計(jì)C程序代碼 此塊程序設(shè)計(jì)部分是在主函數(shù)里,C代碼如下:void main( ){ init_play( )。 //初始化顯示 while(1) { read_temp()。 //讀取溫度 ds1820disp( )。 //顯示 if(tvalue990) //當(dāng)溫度大于99度,不需要加熱 { HT=1。 modeflag=1。 //保溫模式 } if(modeflag==1) { if(tvalue800) //當(dāng)溫度大于80度,不需要加熱 { HT=1。 } if(tvalue600) //當(dāng)溫度小于60度,需要加熱 { HT=0。 modeflag=0。 } } } } 溫度顯示系統(tǒng)的軟件設(shè)計(jì) LCD1602液晶顯示模塊的軟件設(shè)計(jì)流程本系統(tǒng)采用LCD1602顯示,它需要用單片機(jī)來對其控制。單片機(jī)控制LCD1602液晶顯示過程:首先選中該芯片,對LCD進(jìn)行初始化。當(dāng)執(zhí)行顯示操作時(shí),器件需延時(shí)約1 ms后才能開始設(shè)置現(xiàn)實(shí)的位置。若按照LCD1602的規(guī)格可顯示8*2個(gè)字符。 LCD1602 顯示流程圖 LCD1602液晶顯示模塊的軟件設(shè)計(jì)C語言代碼本系統(tǒng)的溫度顯示模塊采用LCD1602的C語言編程代碼如下所示:void delay1ms(unsigned int ms) //延時(shí)1毫秒(不夠精確){ unsigned int i,j。 for(i=0。ims。i++) for(j=0。j100。j++)。}void wr_(unsigned char ) //寫指令//{ delay1ms(1)。 RS=0。 RW=0。 EN=0。 P2=。 delay1ms(1)。 EN=1。 delay1ms(1)。 EN=0。}void wr_dat(unsigned char dat) //寫數(shù)據(jù)//{ delay1ms(1)。 RS=1。 RW=0。 EN=0。 P2=dat。 delay1ms(1)。 EN=1。 delay1ms(1)。 EN=0。}void lcd_init() //初始化設(shè)置//{ delay1ms(15)。 wr_(0x38)。 delay1ms(5)。 wr_(0x08)。delay1ms(5)。 wr_(0x01)。delay1ms(5)。 wr_(0x06)。delay1ms(5)。 wr_(0x0c)。delay1ms(5)。}void display(unsigned char *p) //顯示//{ while(*p!=39。\039。) { wr_dat(*p)。 p++。 delay1ms(1)。 }}init_play() //初始化顯示//{ lcd_init()。 wr_(0x80)。 display(str1)。 wr_(0xc0)。 display(str2)。 modeflag=0。 HT=0。} KEIL C 環(huán)境中整個(gè)軟件程序設(shè)計(jì)本設(shè)計(jì)采用 Keil Software 公司的 uVision2 仿真環(huán)境
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1