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

正文內(nèi)容

基于51單片機的數(shù)字溫度計畢業(yè)設計-資料下載頁

2025-06-28 00:18本頁面
  

【正文】 gineering of China, 2003附錄1電路原理圖 數(shù)字溫度計原理圖測附錄2 溫度計實物圖附錄3測量序列號實物圖附錄4溫度計程序includedefine uchar unsigned chardefine uint unsigned intsbit DQ=P1^0。 //數(shù)據(jù)傳輸線接單片機的相應的引腳sbit smg1=P2^3。//第一位數(shù)碼管sbit smg2=P2^2。//第二位數(shù)碼管sbit smg3=P2^1。//第三位數(shù)碼管sbit smg4=P2^0。 //符號位第四位數(shù)碼管,當為負溫時候顯示負號。unsigned char tempL=0。 //臨時變量低位(無符號字符變量)unsigned char tempH=0。 //臨時變量高位unsigned int tempa。 //溫度值(整型變量)uchar TH=60。 //設置初始高溫度uchar TL=8。 //設置初始低溫度uchar num。uchar flag=0。//符號位標志,0為正溫度,1為負溫度uchar xianshi=0。unsigned int temp,temp1。unsigned char code smg_du[]={0x3f,0x24,0x5d,0x75,0x66,0x73,0x7b,0x25,0x7f,0x77,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}。unsigned int tt=0。void delay_50us(uint t){ uchar j。 for(。t0。t) for(j=19。j0。j)。}///DS18B20void DS18_delay(int useconds)//延時函數(shù) { int s。 for (s=0。 suseconds。s++)。 }unsigned char Init_DS18B20(void){ unsigned char x=0。 DQ=0。 //發(fā)送復位脈沖 DS18_delay(29)。 //延時(480ms) DQ=1。 //拉高數(shù)據(jù)線 DS18_delay(3)。 //等待(15~60ms) 等待存在脈沖 x=DQ。 //獲得存在信號(用于判斷是否有器件) DS18_delay(25)。 // 等待時間隙結束 return(x)。 //返回存在信號,0 = 器件存在, 1 = 無器件}ReadOneChar(void)//讀一個字節(jié){ unsigned char i=0。 unsigned char dat=0。 for (i=8。i0。i) { DQ=1。 DS18_delay(1)。 DQ=0。 dat=1。//復合賦值運算,等效dat=dat1(dat=dat右移一位后的值) DQ=1。 if(DQ) dat|=0x80。 DS18_delay(4)。 } return(dat)。} WriteOneChar(unsigned char dat)//有參函數(shù),功能是寫,而寫的內(nèi)容就是括號內(nèi)的參數(shù){ unsigned char i=0。 for(i=8。i0。i) { DQ=0。 DQ=datamp。0x01。 DS18_delay(5)。 DQ=1。 dat=1。//復合賦值運算,等效dat=dat1(dat=dat右移一位后的值) } DS18_delay(4)。}unsigned int ReadTemperature(void)//返回讀取的溫度.{ unsigned int tt。 Init_DS18B20()。 //初始化,調(diào)用初始化函數(shù) WriteOneChar(0xcc)。 //跳過讀序列號的操作,調(diào)用寫函數(shù),寫0xcc指令碼(跳過讀序列號) WriteOneChar(0x44)。 //啟動溫度轉換,調(diào)用寫函數(shù),寫0x44指令碼(啟動溫度轉換) DS18_delay(125)。 //轉換需要一點時間,延時 Init_DS18B20()。 //初始化,調(diào)用初始化函數(shù) WriteOneChar(0xcc)。 //跳過讀序列號的操作,調(diào)用寫函數(shù),寫0xcc指令碼(跳過讀序列號? WriteOneChar(0xbe)。 //調(diào)用寫函數(shù),寫0xbe指令碼,讀溫度寄存器(頭兩個值分別為溫度的低位和高位) tempL=ReadOneChar()。 //讀出溫度的低位LSB tempH=ReadOneChar()。 //讀出溫度的高位MSB if(tempH=0x0f) { flag=1。tt=tempH。tt=tt8。tt=tt+tempL。tt=~tt。tt=tt+1。tempa=tt*。 } else {tempa=((tempH*256)+tempL)*。 flag=0。} //溫度轉換,擴大100返回 return(tempa)。//運算結果返回到函數(shù) }///DS18B20void delay(uint z){ uint x,y。 for(x=z。x0。x) for(y=110。y0。y)。}void display(void){ xianshi=0。 if(flag==1)//顯示負號 { P2=0XFF。//關位選 P0=0X40。//產(chǎn)生負號位, smg4=0。 //開通第四位數(shù)碼管 delay_50us(20)。//數(shù)碼管延時 } if((temp/100)!=0) { P2=0XFF。 P0=P0=smg_du[temp/100]。 smg3=0。 delay_50us(20)。 xianshi=1。 } if((xianshi==1)||((temp%100/10)!=0)) { P2=0XFF。 P0=smg_du[temp%100/10]。 smg2=0。 delay_50us(20)。 } P2=0XFF。 P0=smg_du[temp%10]。 smg1=0。 delay_50us(20)。 P2=0XFF。 }void main(){ for(num=0。num80。num++) //防止上電顯示初始值85 { temp=ReadTemperature()。 DS18_delay(65535)。 DS18_delay(65535)。 DS18_delay(65535)。 } while(1)//顯示溫度 { temp1=ReadTemperature()/100。 DS18_delay(60)。 temp=ReadTemperature()/100。 DS18_delay(60)。 if(temp1==temp) display()。 }}
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1