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

正文內(nèi)容

基于單片機(jī)的溫度測量警報(bào)器秒表(編輯修改稿)

2024-07-24 19:44 本頁面
 

【文章內(nèi)容簡介】 CII碼 TempBuffer0[4]=TH/100+0x30。 //分離出TH的百十個位 if( TempBuffer0[4]==0x30) TempBuffer0[4]=0xfe。 //百位數(shù)消隱 TempBuffer0[5]=(TH%100)/10+0x30。 //分離出十位 TempBuffer0[6]=(TH%100)%10+0x30。 //分離出個位 TempBuffer0[12]=TL/100+0x30。 //分離出TL的百十個位 if( TempBuffer0[12]==0x30) TempBuffer0[12]=0xfe。 //百位數(shù)消隱 TempBuffer0[13]=(TL%100)/10+0x30。 //分離出十位 TempBuffer0[14]=(TL%100)%10+0x30。 //分離出個位}void covert1(void) //將溫度轉(zhuǎn)換為LCD顯示的數(shù)據(jù){ unsigned char x=0x00,y=0x00。 t[0]=*pt。 pt++。 t[1]=*pt。 if(t[1]0x07) //判斷正負(fù)溫度 { TempBuffer1[0]=0x2d。 //0x2d為的ASCII碼 t[1]=~t[1]。 /*下面幾句把負(fù)數(shù)的補(bǔ)碼*/ t[0]=~t[0]。 /* 換算成絕對值*********/ x=t[0]+1。 /***********************/ t[0]=x。 /***********************/ if(x255) /**********************/ t[1]++。 /*********************/ } else TempBuffer1[0]=0x2b。 //0xfe為變+的ASCII碼 t[1]=4。 //將高字節(jié)左移4位 t[1]=t[1]amp。0x70。 //取出高字節(jié)的3個有效數(shù)字位 x=t[0]。 //將t[0]暫存到X,因?yàn)槿⌒?shù)部分還要用到它 x=4。 //右移4位 x=xamp。0x0f。 //和前面兩句就是取出t[0]的高四位 t[1]=t[1]|x。 //將高低字節(jié)的有效值的整數(shù)部分拼成一個字節(jié) TempBuffer1[1]=t[1]/100+0x30。 //+0x30 為變 0~9 ASCII碼 if( TempBuffer1[1]==0x30) TempBuffer1[1]=0xfe。 //百位數(shù)消隱 TempBuffer1[2]=(t[1]%100)/10+0x30。 //分離出十位 TempBuffer1[3]=(t[1]%100)%10+0x30。 //分離出個位 t[0]=t[0]amp。0x0c。 //取有效的兩位小數(shù) t[0]=2。 //左移兩位,以便查表 x=t[0]。 y=dotcode[x]。 //查表換算成實(shí)際的小數(shù) TempBuffer1[5]=y/10+0x30。 //分離出十分位 TempBuffer1[6]=y%10+0x30。 //分離出百分位 } void delay(unsigned char i){ while(i)。}main(){ unsigned char TH=32,TL=0。 //讀取溫度,溫度值存放在一個兩個字節(jié)的數(shù)組中, unsigned int w,maini。 //測溫函數(shù)返回這個數(shù)組的頭地址 T0init()。 //定時器0初始化 while(1) { spe=0。 LCD_Initial()。 //lcd初始化// for(maini=0。maini25。maini++) main_1()。 LCD_Initial()。 pt=ReadTemperature(TH,TL,0x3f)。 //上限溫度+110,下限20,分辨率10位, delay(100)。 //讀取溫度,溫度值存放在一個兩個字節(jié)的數(shù)組中, covert1()。 //將溫度轉(zhuǎn)換為LCD顯示的數(shù)據(jù) covert0(TH,TL)。 //將溫度上下限轉(zhuǎn)換為LCD顯示的數(shù)據(jù) //第一個參數(shù)列號,第二個為行號,為0表示第一行 //為1表示第二行,第三個參數(shù)為顯示數(shù)據(jù)的首地址 LCD_Print(1,1,TempBuffer0)。 //下一步擴(kuò)展時可能通過這兩個變量,調(diào)節(jié)上下限 LCD_Print(1,0,TempBuffer1)。 for(w=0。w999。w++) //***************************************// delay(400)。 //*********************************// //報(bào)警復(fù)位// }}void timer0()interrupt 1{ TH0=(6553650000)/256。 TL0=(6553650000)%256。//定時50MS if(timecount==0) { timecount=20。//執(zhí)行20次后秒標(biāo)志位置1 timeflag=1。 //1S } if(++timecount11) { timecount1 = 0。 bit_100ms = 1。 //置100MS標(biāo)志位 }}文件2://include //用AT89C51時就用這個頭文件include //用華邦W78E58B時必須用這個頭文件sbit DQ = P3^4。 // sbit spe=P2^4。//sbit spe=P3^7。 /***********ds18b20延遲子函數(shù)(晶振12MHz )*******/ /************DS18B20對時間要求很嚴(yán),但只能長不能短*************,因?yàn)闀r間長些********///*************6u秒********//void delay_18B20(unsigned int i){ while(i)。}/**********ds18b20初始化函數(shù)**********************/void Init_DS18B20(void) { unsigned char x=0。 DQ = 1。 //DQ復(fù)位 delay_18B20(8)。 //稍做延時 DQ = 0。 //單片機(jī)將DQ拉低 delay_18B20(80)。 //精確延時 大于 480us DQ = 1。 //拉高總線 delay_18B20(14)。 x=DQ。 //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗 delay_18B20(20)。}/***********ds18b20讀一個字節(jié)**************/ unsigned char ReadOneChar(void){ unsigned char i=0。 unsigned char dat = 0。 for (i=8。i0。i) { DQ = 0。 // 給脈沖信號 dat=1。 DQ = 1。 // 給脈沖信號 if(DQ) dat|=0x80。 delay_18B20(4)。 } return(dat)。}/*************ds18b20寫一個字節(jié)****************/ void Wr
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1