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

正文內(nèi)容

xx-20xx年單片機(jī)溫度控制總結(jié)(編輯修改稿)

2024-12-23 14:56 本頁面
 

【文章內(nèi)容簡介】 ,超調(diào)值大約為 %左右。雖然超調(diào)為不利結(jié)果,但另一方面卻減小了系統(tǒng) 的調(diào)節(jié)時(shí)間。從其數(shù)據(jù)表可以看出該系統(tǒng)為穩(wěn)定系統(tǒng)。 設(shè)計(jì)方案評價(jià) 優(yōu)點(diǎn) 在硬件方面:本設(shè)計(jì)方案采用了單總線型數(shù)字式的溫度傳感器,提高了溫度的采集精度,節(jié)約了單片機(jī)的口線資源。方案還使用場效應(yīng)管作加熱控制器件,使設(shè)計(jì)簡單化,且可靠性強(qiáng)。在控制精度方面,本設(shè)計(jì)在不能確定執(zhí)行機(jī)構(gòu)的數(shù)學(xué)模型的情況下,大膽的假設(shè)小心的求證,利用模糊控制的算法來提高控制精度。 在軟件方面:我們采用模塊化編程,思路清晰,使程序簡潔、可移植性強(qiáng)。 缺點(diǎn) 本設(shè)計(jì)方案雖然采用了當(dāng)前市場最先進(jìn)的電子器件,使電 路設(shè)計(jì)簡單,但設(shè)計(jì)方案不是最佳。本系統(tǒng)雖然具有較小的超調(diào)量,但加大了調(diào)節(jié)時(shí)間。如果需要更高的控制精度,則我們的模糊控制將不適應(yīng),需要修改程序。 設(shè)計(jì)中加熱控制方面存在遺憾,雖采用了場效應(yīng)管控制加熱,但不能使溫度加熱到限制溫度時(shí)截止,需要更好的控制器件。 6 結(jié)論 本次實(shí)驗(yàn)采用了 C 語言編程方式,實(shí)現(xiàn)了溫度的測量與控制,完全達(dá)到了本次實(shí)驗(yàn)的要求,更重要的是該實(shí)驗(yàn)的測量誤差小于 1℃ 度,控制精度小于 ℃度,已基本實(shí)現(xiàn)本實(shí)驗(yàn)擴(kuò)展部分的要求。它可以廣泛用于溫度測量精度要求比較高的場面,實(shí)現(xiàn)簡單,成本低。綜上所示,本系統(tǒng)的方案具有實(shí)用推廣價(jià)值。本系統(tǒng)通過添加一個(gè)傳感器,還有一個(gè) 12V 供電的加熱片,使系統(tǒng)能夠?qū)崟r(shí)顯示溫度和快速加熱。若系統(tǒng)開始加熱就使溫度迅速上升,則說明杯中水不足,很有可能為干燒,為不安全加熱,用戶請注意,這屬于該系統(tǒng)需 要改進(jìn)的地方。 附 錄 1 源程序清單如下: //ds18b20 drive program //for 51 mcu with lcd1602 display include include /*******************************************************************/ define HIGH 1 //高電平 define LOW 0 //低電平 define TRUE 1 //真 define ZERO 0 //假 define MSB 0x80 //ds18b20 part define SkipRom 0xcc define ConvertTemperature 0x44 define Read Scratchpad 0xbe sbit One_Wire_Bus=P1^6。 void One_ Wire_ Delay (unsigned char delay_ time)。 void One_Wire_Write_Byte (unsigned char oww_dat)。 unsigned char One_Wire_Read_Byte(void)。 void Read_18B20(void)。 void Initize_One_Wire_Bus(void)。 void delay(void)。 /********************************************************************/ data unsigned char GetScratchpad[2]。 code unsignedchardecimalH[16]={00,06,12,18,25,31,37,43,50,56,62,68,75,81,87,93}。 code unsigned char decimalL[16]={00,25,50,75,00,25,50,75,00,25,50,75,00,25,50,75}。 unsigned char Result Temperature H。//經(jīng)過處理后的溫度整數(shù)部分 unsigned char Result Temperature L H, Result Temperature LL。//經(jīng)過處理后的溫度的小數(shù)部分 data unsigned char ResultSignal。//溫度為負(fù)數(shù)標(biāo)志位 /********************************************************************/ void Initize_One_Wire_Bus(void) {One_Wire_Bus=0。 One_Wire_Delay (80)。 / /Bus master pulling low 488us One_Wire_Bus=1。 One_Wire_Delay (25)。//Resister pull up 158us。} /********************************************************************/ /******************* ds18b20 **********************************/ void One_Wire_Delay (unsigned char delay_time) { While (delay_time) delay_time。//Delay time us :=(8+delay_time*6)us。 } /********************************************************************/ unsigned char One_Wire_Read_Byte (void) { bit temp_bit。 unsigned char i,result=0。 for (i=0。 i8。i++) { One_Wire_Bus=0。 One_Wire_Bus=1。 temp_bit=One_Wire_Bus。 One_Wire_Delay (9)。 //delay 62 us If (temp_bit) result|=0x01i。 } Return (result)。 } /********************************************************************/ void One_Wire_Write_Byte(unsigned char oww_dat) { unsigned char i。 for (i=0。i8。i++) { One_Wire_Bus=0。 if(oww_datamp。0x01)One_Wire_Bus=1。 One_Wire_Delay (20)。 //delay 128 us One_Wire_Bus=1。 oww_dat=1。 } One_Wire_Delay (10)。 } /********************************************************************/ void Read_18B20 (void) { unsigned char tempH,tempL。 Initize_One_Wire_Bus ()。 One_Wire_Write_Byte (SkipRom)。 _nop_()。 One_Wire_Write_Byte (ConvertTemperature)。 One_Wire_Delay (5)。 Initize_One_Wire_Bus ()。 One_Wire_Write_Byte (SkipRom)。 _nop_()。 One_Wire_Write_Byte (ReadScratchpad)。 GetScratchpad[0]=One_Wire_Read_Byte()。 //從 DS18B20 讀出的低 8 位溫度值 GetScratchpad[1]=One_Wire_Read_Byte()。 //從 DS18B20 讀出的高 8 位溫度值 One_Wire_Delay (120)。 tempH=(GetScratchpad[1]4)|(GetScratchpad[0]4)。 //溫度的整數(shù)部分 tempL=(GetScratchpad[0]amp。0x0f)。 //溫度的小數(shù)部分 Initize_One_Wire_Bus()。 if(tempHamp。0x80) //判斷溫度的正負(fù)值 { tempH=~tempH。 tempL=~tempL+1。 ResultSignal=1。//溫度為負(fù)數(shù)標(biāo)志位 } Result Temperature H=tempH。 //經(jīng)過處理后的溫度的整數(shù)部分 Result Temperature L=decimalL[tempL]。 //經(jīng)過處理的溫度的小數(shù)部分十分位 Result Temperature LH=decimalH[tempL]。//經(jīng)過處理的溫度的小數(shù)部分的百分位 } /********************************************************************/ /*******************************************************************/ //lcd part define LINE1 0 define LINE2 1 define LINE1_HEAD 0x80 define LINE2_HEAD 0xC0 define LCD_DELAY_TIME 40 define DATA_MODE 0x38 define OPEN_SCREEN 0x0C define DISPLAY_ADDRESS 0x80 define CLEARSCREEN LCD_en_mand(0x01) define COMMAND_SLOT LCD1602_RS=LOW。 LCD1602_RW=LOW。LCD1602_EN=LOW define DATA_SLOT LCD1602_RS=HIGH。LCD1602_RW=LOW。LCD1602_EN=LOW //mon part define HIGH 1 //高電平 define LOW 0 //低電平 define TRUE 1 //真 define ZERO 0 //假 define MSB 0x80 //change this part at different board define LCDIO P0 sbit LCD1602_RS=P1^0。 //數(shù)據(jù)命令選擇 1 data 0 mand sbit LCD1602_RW=P1^1。 //讀寫選擇 1 read 0 write sbit LCD1602_EN=P1^2。 //LCD 使能信號 //function define /********************************************************************/ void LCD_delay(void)。//lcd 延時(shí)函數(shù) void LCD_en_mand(unsigned char mand)。//寫命令 void LCD_en_dat(unsigned char temp)。//寫數(shù)據(jù) void LCD_set_xy( unsigned char x, unsigned char y )。//設(shè)置顯示地址 void LCD_write_char( unsigned x,unsigned char y,unsigned char dat)。//write lcd a character function void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s)。//write lcd string function void LCD_init(void)。//lcd 初始化 . //unsigned char code mytab[8] = {0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00}。//自定義字符 /************************************************
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1