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

正文內(nèi)容

畢業(yè)設計-基于mcs-51單片機的溫度報警系統(tǒng)-資料下載頁

2025-01-17 00:55本頁面
  

【正文】 )。 _nop_()。 _nop_()。 _nop_()。 37 ep = 1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 0。 } /************************************************************** 液晶寫地址操作命令子函數(shù) ***************************************************************/ void lcd1602_write_address(unsigned char address_data) { lcd1602_write_dand(address_data|0x80)。 //數(shù)據(jù)顯示的位置 } /************************************************************** 寫入數(shù)據(jù)顯示到 lcd 的程序 ***************************************************************/ void lcd1602_write_data(unsigned char display_data) //寫入數(shù)據(jù)顯示到 lcd的 { while(lcd1602_busytest())。 rs = 1。 //rs 為高電平, rw 為低電平時,寫數(shù)據(jù) rw = 0。 ep = 0。 //使能,下降沿有效 P0 = display_data。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 ep = 1。 _nop_()。 38 _nop_()。 _nop_()。 _nop_()。 ep = 0。 } /************************************************************** 液晶的初始化程序 ***************************************************************/ void lcd1602_init() { delay(15)。 lcd1602_write_dand(0x38)。//顯示模式設置; 16*2 顯示, 5*7 點陣, 8位數(shù)據(jù)接口 delay(5)。 lcd1602_write_dand(0x38)。 delay(5)。 lcd1602_write_dand(0x38)。 delay(5)。 lcd1602_write_dand(0x0c)。//顯示模式設置:顯示開,有光標,光標閃爍 delay(5)。 lcd1602_write_dand(0x06)。//顯示模式設置:光標右移動,字符不移動 delay(5)。 lcd1602_write_dand(0x38)。//清屏指令,將以前的指令全部清除 delay(5)。 } /*******************DS18B20 的 模 塊 化 程 序*****************************/ /* 獲取外界溫度信息,轉化溫度值 DQ 與 P 7 口連接 /*******************DS18B20 的 模 塊 化 程 序*****************************/ /****************初始化 *********************/ 39 void init_ds18b20(void) { DQ = 0。 delay480us。 DQ = 1。 delay15us。 while(DQ==1)。 //等待從機 delay480us。 } /****************寫時隙 *********************/ void write_byte(unsigned char write_data) { unsigned char i,temp。 for(i=0。i8。i++) { temp=write_dataamp。0x01。 write_data=write_data1。 DQ = 0。 delay1us。 if(temp==0x01) { DQ = 1。 } else { DQ = 0。 } delay60us。 DQ = 1。 delay1us。 } } 40 /****************讀時隙 ***********************/ unsigned char read_byte(void) { unsigned char read_data。 unsigned char i。 for(i=0。i8。i++) { read_data=read_data1。 DQ = 0。 delay1us。 DQ = 1。 delay5us。 if(DQ==1) { read_data=read_data|0x80。 } else { read_data=read_data|0x00。 } delay45us。 DQ=1。 delay1us。 } return (read_data)。 } /*************************************/ void readtemp(void) { init_ds18b20()。 write_byte(0xcc)。 write_byte(0x44)。 41 init_ds18b20()。 write_byte(0xcc)。 write_byte(0xbe)。 tl_byte=read_byte()。 th_byte=read_byte()。 tempreture_int=th_byte*16+tl_byte/16。 // 實 際 溫 度 值=(TH*256+TL)/16,即: TH*16+TL/16 //這樣得出的是溫度的整數(shù)部分 ,小數(shù)部分被丟棄了 tempreture_dot=(tl_byte%16)*100/16。 //小數(shù)部分的溫度值 } /**********************控制子程序 ********************/ /** 控制子程序 **/ /**********************控制子程序 ********************/ void control_funcation() { if(tempreture_int upper_temperature) { HT_motor = 0。 //高溫電機 1 驅動 H_alarm = 0。 //高溫報警開啟 normal = 1。 //正常溫度關閉 } else if(tempreture_int lower_temperature) { LT_motor = 0。 //低溫電機 2 驅動 L_alarm = 0。 //低溫報警啟動 normal = 1。 //正常溫度關閉 } else { P1 = 0xf7。 //只有正常的溫度提示 } 42 } /**************************************************************** 外部中斷 INT0 中斷服務子程序, 主要用于切換當前溫度、設定溫度的顯示界面 *****************************************************************/ void waibuzhongduan_INT0() interrupt 0 { set_flag++。 if(set_flag=3) { set_flag = 0。 } } /**************************************************************** 按鍵功能子程序 主要用于溫度的上限、下限的設置 *****************************************************************/ /*void Lkey_funcation() { if(key_add1==0) //加 1 按鍵按下 { delay(20)。 //延時 20ms,去抖動 if(key_add1==0) //加 1 按鍵還有效 { lower_temperature++。//設置溫度加 1 if(lower_temperature = 100) { lower_temperature=0。 } delay(20)。 } } 43 if(key_add10==0) //加 10 按鍵按下 { delay(20)。 //延時 20ms,去抖動 if(key_add10==0) //加 10 按鍵還有效 { lower_temperature=lower_temperature+10。//設置溫度加 10 if(lower_temperature = 100) { lower_temperature=0。 } delay(20)。 } } }*/ /**************************************************************** 按鍵功能子程序 主要用于溫度的上限、下限的設置 *****************************************************************/ void Hkey_funcation() { if(key_add1==0) //加 1 按鍵按下 { delay(20)。 //延時 20ms,去抖動 if(key_add1==0) //加 1 按鍵還有效 { upper_temperature++。//設置溫度加 1 if(upper_temperature = 100) { upper_temperature=0。 } delay(20)。 } 44 } if(key_add10==0) //加 10 按鍵按下 { delay(20)。 //延時 20ms,去抖動 if(key_add10==0) //加 10 按鍵還有效 { upper_temperature=upper_temperature+10。//設置溫度加 10 if(upper_temperature = 100) { upper_temperature=0。 } delay(20)。 } } } /**********************溫度顯示程序 ********************/ /** 將 DS18B20 讀取得溫度 顯示在液晶上 **/ /**********************溫度顯示程序 ********************/ void Temperature_display()//溫度顯示模塊 { unsigned char i=0。 lcd1602_write_address(0x44)。 //顯示第二行的第五位 lcd1602_write_data(display1[tempreture_int/10])。 delay(2)。 lcd1602_write_data(display1[tempreture_int%10])。 delay(2)。 lcd1602_write_data(display2[0])。 delay(2)。 lcd1602_write_data(display1[tempreture_dot/10])。
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1