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

正文內(nèi)容

基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)與仿真畢業(yè)論文-資料下載頁(yè)

2025-06-30 19:02本頁(yè)面

【導(dǎo)讀】本課題以單片機(jī)為控制核心,設(shè)計(jì)了一款數(shù)字溫度計(jì)。該系統(tǒng)由51單片機(jī)、DS18B20溫度傳感器以及1602LCD液晶顯示屏等部件組成。系統(tǒng)上電后進(jìn)入實(shí)時(shí)。系統(tǒng)可以設(shè)置上下限報(bào)警溫度值,當(dāng)測(cè)得結(jié)果超過(guò)設(shè)定值時(shí)進(jìn)行相應(yīng)的。報(bào)警,提供一個(gè)接口可以將溫度值傳送給其它控制器或計(jì)算機(jī),測(cè)量準(zhǔn)確且誤差小,在工農(nóng)業(yè)生產(chǎn)和日常生活中,對(duì)溫度的測(cè)量占據(jù)著極其重要地位。烘干機(jī)中均用了溫度控制系統(tǒng)。目前,我國(guó)單片機(jī)的開(kāi)發(fā)應(yīng)用正在興起,單片機(jī)在。機(jī)電一體化、智能儀表、工業(yè)控制、家用電器等方面的應(yīng)用成果尤為顯著。來(lái)進(jìn)行溫度顯示,有鍵盤(pán)輸入和LED二極管進(jìn)行溫度報(bào)警功能。通信方式傳送出去,可給另一控制器或計(jì)算機(jī)進(jìn)行其它操作用。硬件總的包括單片。機(jī)及相應(yīng)單片機(jī)小系統(tǒng)相關(guān)元件、18B20溫度傳感、1602液晶顯示屏、三個(gè)按鍵,具體的功能如下所述:

  

【正文】 //復(fù)位 B20_write_byte(0xCC)。//跳過(guò) ROM B20_write_byte(0x44)。//溫度轉(zhuǎn)換 B20_delay(10000)。//等待轉(zhuǎn)換 B20_init()。//復(fù)位 B20_write_byte(0xCC)。//跳過(guò) ROM B20_write_byte(0xBE)。//Read Scratchpad 命令 tem1=B20_read_byte()。//讀低位 tem2=B20_read_byte()。//讀高位 if((tem2amp。0x80)==0x80)//如果溫度是負(fù)值 { tmp_tmp=(~((tem2*256+tem1)+1)) *+20。//+20 是實(shí)驗(yàn)中負(fù)數(shù)計(jì)算出現(xiàn)在誤差 ! flag1=1。 } else tmp_tmp=(tem2*256+tem1)*。 temperature=(int)tmp_tmp。 if(flag1){temperature|=0x8000。flag1=0。}//表示負(fù)數(shù) ,因負(fù)數(shù)運(yùn)算時(shí)丟失了符號(hào)位 EA=1。//開(kāi)中斷 } 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)與仿真 附錄 2 35 3. 1602. C 程序: /*************************************************** 液晶顯示部分 所有的資源 : 包含 void check_busy () void lcd_write(bit d_c,uchar input_data) void lcd_initial(void) void lcd_printc(uchar i,uchar x,uchar y) void lcd_prints(uchar *strint,uchar x,uchar y) 相關(guān) IO 定義資料 : (用戶(hù)定義的 IO 端口 ) rs 數(shù)據(jù) /數(shù)據(jù)選擇端 rw 讀寫(xiě)選擇端 en 使能端 busy_f 忙標(biāo)志 dc_port 八位數(shù)據(jù)端口 define lcd_ 0 // Command define lcd_data 1 // Data ****************************************************/ include /**************************************************** 函數(shù)名稱(chēng) : void check_busy () 功能說(shuō)明:檢查忙標(biāo)志位 入口參數(shù):無(wú) *****************************************************/ void check_busy () { dc_port=0xff。 rs =0。 rw =1。 en =1。 while(busy_f)。 en=0。 } 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)與仿真 附錄 2 36 /***************************************************** 函數(shù)名稱(chēng): void lcd_write(bit d_c,uchar input_data) 功能說(shuō)明:寫(xiě)指令或?qū)憯?shù)據(jù) 入口參數(shù): d_c 可選為指令 (lcd_)數(shù)據(jù)( lcd_data) input_data 為輸入的八位數(shù)據(jù) ******************************************************/ void lcd_write(bit d_c,uchar input_data) { check_busy()。 rs=d_c。 rw=0。 dc_port=input_data。 en=1。 _nop_()。 _nop_()。 _nop_()。 en=0。 } /**************************************************** 函數(shù)名稱(chēng): void lcd_initial(void) 功能說(shuō)明:初始化液晶 入口參數(shù):無(wú) *****************************************************/ void lcd_initial(void) { en=0。 lcd_write(lcd_,0X38)。 //設(shè)置 8 位數(shù)據(jù)方式,無(wú)光標(biāo) lcd_write(lcd_,0X38)。 lcd_write(lcd_,0x0c)。 //開(kāi)顯示 lcd_write(lcd_,0x06)。 //設(shè)置地址指針加 1 lcd_write(lcd_,0x01)。 //清屏 lcd_write(lcd_,0x02)。 //AC 自增 } /****************************************************************** 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)與仿真 附錄 2 37 函數(shù)名稱(chēng): void lcd_printc(uchar i,uchar x,uchar y) 功能說(shuō)明:輸出一個(gè)字符 入口參數(shù): i 為一個(gè)字符 x 設(shè)置第幾列 y 中 0 為第一行 1 為第二行 *******************************************************************/ /*void lcd_printc(uchar i,uchar x,uchar y) { if(y==0) lcd_write(lcd_,0x80|x)。 //設(shè)置 DDRAM 地址 if(y==1) lcd_write(lcd_,0x80|(x0x40))。 lcd_write(lcd_data,i)。 //寫(xiě)入數(shù)據(jù) } *///如果用得著時(shí)可以用 ! /****************************************************************** 函數(shù)名稱(chēng): void lcd_prints(uchar *strint,uchar x,uchar y) 功能說(shuō)明:輸出 一個(gè)字符串 入口參數(shù): *strint 為一個(gè)字符串 x 設(shè)置第幾列 y 中 0 為第一行 1 為第二行 *******************************************************************/ void lcd_prints(uchar *strint,uchar x,uchar y) { if(y==0) lcd_write(lcd_,0x80|x)。 //設(shè)置 DDRAM 地址 if(y==1) lcd_write(lcd_,0x80|(x0x40))。 while(*strint!=39。\039。) { lcd_write(lcd_data,*strint++)。 //寫(xiě)入數(shù)據(jù) } } 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)與仿真 附錄 2 38 4. 文件程序: /********************************************************** 鍵盤(pán)掃描部分 所用資源 :void delay(uint z) void saomiao() 用于鍵盤(pán)的掃描,掃描值有 key1,key2,key3 中 ***********************************************************/ include /********************************************************** 函數(shù)名稱(chēng): void delay(uint z) 功能說(shuō)明:鍵盤(pán)掃描延時(shí)程序 入口參數(shù): z 為延時(shí) z*(理想 ) ***********************************************************/ void delay(uint z) { uint x,y。 for(x=z。x0。x) for(y=20。y0。y)。 } /********************************************************** 函數(shù)名稱(chēng): void key_scanf() 功能說(shuō)明:鍵盤(pán)掃描子程序 入口參數(shù): void ***********************************************************/ void key_scanf() { key=0xff。 delay(30)。 key=keyamp。0xff。 while(key!=0xff) { switch(key) { 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)與仿真 附錄 2 39 case 0x7f:key1=1。break。 case 0xbf:key2=1。break。 case 0xdf:key3=1。break。 } delay(70)。 key=keyamp。0xff。 } } 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)與仿真 附錄 2 40 5. 文件程序: /*************************************************** 到達(dá)上下限時(shí)間的報(bào)警相關(guān)程序 所有的資源 :void pare_temperature() 包含 ****************************************************/ include /********************************************************** 函數(shù)名稱(chēng): void pare_temperature() 功能說(shuō)明:用來(lái)判斷溫度是否超過(guò)最高設(shè)置溫度或最低設(shè)置溫度 入口參數(shù) : void 出口參數(shù) :全局變量中的 low_flag 和 high_flag ***********************************************************/ void pare_temperature() { int temperature1。//用來(lái)轉(zhuǎn)換成正常值 /////因 temperature 是大小乘 100 的并有正負(fù)標(biāo)示的 ,要比較得先轉(zhuǎn)換正常溫度值 // if((temperatureamp。0x8000)==0x8000)//如果溫度是負(fù)值 { temperature1=temperatureamp。0x0fff。//去掉符號(hào)位 temperature1=(~(temperature11))/100。 } else temperature1=temperature/100。//如果溫度是負(fù)值 ////////////////////////////////轉(zhuǎn)換正常溫度值完 ///////////////////////// if((temperatureamp。0x8000)==0x8000)//如果溫度是負(fù)值 { if(temperature1=low_temp) { low_flag=1。 } else low_flag=0。 if(high_temptemperature1) { high_flag=1。 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)與仿真
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1