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

正文內(nèi)容

基于51單片機的超聲波測距儀之倒車?yán)走_(dá)作品設(shè)計畢業(yè)論文【最新】-資料下載頁

2025-06-01 22:28本頁面
  

【正文】 PNP1 42356S1SWSPDTVCCS2SWPBS3SWPBS4SWPB 28 29 歡迎進店詳談,總有一款適合您?。?! →→ 浙江傳媒學(xué)院本科畢業(yè)論文 基于單片機的超聲波測距 附 錄( B) (單片機 C 源程序清單 ) //宏定義 define uchar unsigned char define uint unsigned int define ULint unsigned long int //溫度零上與零下的標(biāo)志位 char flag=0。 //超聲波 char flags=0。 //超聲波距離 char flag1s=0。 //計算定時間 uint time=0。 //計算距離 ULint L_=0。 //溫度 uint t_=0。 //顯示模式 0 正常 1 最大值調(diào)整 2 最小值調(diào)整 uchar mode=0。 uint Max=40。 uint Min=0。 //按鍵標(biāo)志 uchar k=0。 //數(shù)值有誤 uchar FW=0。 //頭函數(shù) include include include //報警按鍵 include //顯示頭函數(shù) include //超聲波頭函數(shù) include //溫度傳感器頭函數(shù) 31 //函數(shù)聲明 void delayms(uint ms)。 //主函數(shù) void main() { Init_ultrasonic_wave()。 //屏幕初始化 Init1602()。 //溫度初始化 tmpchange()。 t_=tmp()。 tmpchange()。 t_=tmp()。 tmpchange()。 t_=tmp()。 //循環(huán)顯示 while(1) { Key()。 //正常顯示 if(mode==0) { StartModule()。//啟動超聲波 while(!RX)。 //當(dāng) RX 為零時等待 TR0=1。 //開啟計數(shù) while(RX)。 //當(dāng) RX 為 1 計數(shù)并等待 TR0=0。 //關(guān)閉計數(shù) delayms(20)。 //20MS tmpchange()。 //溫度轉(zhuǎn)換 t_=tmp()。 //度溫度 Conut(t_/10)。 //計算距離 32 if(L_Max||L_Min) { Feng_Start()。 } else { if(FW!=1) Feng_Stop()。 } Display_1602(t_/10,L_)。 } //調(diào)整顯示 else if(mode!=0) { //最大最小值 Init_MaxMin()。 while(mode!=0) { Key()。 if(k==1amp。amp。mode==1) { Init_MaxMin()。 write_(0x8d)。//設(shè)置位置 } else if(k==1amp。amp。mode==2) { Init_MaxMin()。 write_(0x8d+0x40)。//設(shè)置位置 } k=0。 } //界面初始化 Init1602()。 33 } } } void delayms(uint ms) { uchar i=100,j。 for(。ms。ms) { while(i) { j=10。 while(j)。 } } } //T0 中斷用來計數(shù)器溢出 ,超過測距范圍 void CJ_T0() interrupt 1 { flags=1。 //中斷溢出標(biāo)志 } //LCD 管腳聲明 sbit LCDRS = P2^7。 sbit LCDEN= P2^6。 //初始畫時顯示的內(nèi)容 uchar code Init1[]=Temperature: C。 uchar code Init2[]=Distance: 000CM。 //初始畫時顯示的內(nèi)容 34 uchar code Init3[]= Max CM。 uchar code Init4[]= Min CM。 //LCD 延時 void LCDdelay(uint z) { uint x,y。 for(x=z。x0。x) for(y=10。y0。y)。 } //寫命令 void write_(uchar ) { LCDRS=0。 P0=。 LCDdelay(5)。 LCDEN=1。 LCDdelay(5)。 LCDEN=0。 } //寫數(shù)據(jù) void write_data(uchar date) { LCDRS=1。 P0=date。 LCDdelay(5)。 LCDEN=1。 LCDdelay(5)。 LCDEN=0。 } //1602 初始化 void Init1602() { uchar i=0。 35 write_(0x38)。//屏幕初始化 write_(0x0C)。//打開顯示 無光標(biāo) 無光標(biāo)閃爍 write_(0x06)。//當(dāng)讀或?qū)懸粋€字符是指針后一一位 write_(0x01)。//清屏 write_(0x80)。//設(shè)置位置 for(i=0。i14。i++) { write_data(Init1[i])。 } write_data(0xdf)。 write_data(Init1[14])。 write_(0x80+40)。//設(shè)置位置 for(i=0。i16。i++) { write_data(Init2[i])。 } } //溫度 距離顯示 void Display_1602(uchar W,uint L) { //溫度值顯示 write_(0x80+12)。 write_data(39。039。+W/10)。 write_data(39。039。+W%10)。 //長度值顯示 if(flag1s==1) { write_(0x80+0x40+0x0a)。 write_data(39。 39。)。 36 write_data(39。039。+L/100)。 write_data(39。039。+L/10%10)。 write_data(39。039。+L%10)。 } else if(flag1s==0) { write_(0x80+0x40+0x0a)。 write_data(39。39。)。 write_data(39。39。)。 write_data(39。39。)。 write_data(39。39。)。 } } //1602 初始化最大化最小化調(diào)整界面 void Init_MaxMin() { uchar i=0。 write_(0x38)。//屏幕初始化 write_(0x0f)。//打開顯示 無光標(biāo) 無光標(biāo)閃爍 write_(0x06)。//當(dāng)讀或?qū)懸粋€字符是指針后一一位 write_(0x01)。//清屏 write_(0x80)。//設(shè)置位置 for(i=0。i16。i++) { write_data(Init3[i])。 } write_(0x80+40)。//設(shè)置位置 for(i=0。i16。i++) { write_data(Init4[i])。 37 } write_(0x8b)。//設(shè)置位置 write_data(39。039。+Max/100)。 write_data(39。039。+Max/10%10)。 write_data(39。039。+Max%10)。 write_(0x80+0x40+0x0b)。//設(shè)置位置 write_data(39。039。+Min/100)。 write_data(39。039。+Min/10%10)。 write_data(39。039。+Min%10)。 write_(0x8d)。//設(shè)置位置 } define uchar unsigned char define uint unsigned int //define interface 定義 DS18B20 接口 sbit DS=P1^4。 //variable of temperature uint temp=0。 //延時子函數(shù) //sign of the result positive or void delay(uint count) { uint i。 while(count) { i=200。 while(i0) i。 count。 38 } } //發(fā)送初始化及復(fù)位信號 void dsreset(void) { //DS18B20 初始化 uint i。 DS=0。 i=103。 while(i0)i。 DS=1。 i=4。 while(i0)i。 } //read a bit 讀一位 bit tmpreadbit(void) { uint i。 bit dat。 //i++ for delay 小延時一下 DS=0。i++。 DS=1。i++。i++。 dat=DS。 i=8。while(i0)i。 return (dat)。 } //read a byte date 讀一個字節(jié) uchar tmpread(void) { uchar i,j,dat。 dat=0。 39 for(i=1。i=8。i++) { j=tmpreadbit()。 //讀出的數(shù)據(jù)最低位在最前面,這樣剛好 //一個字節(jié)在 dat 里 dat=(j7)|(dat1)。 } //將一個字節(jié)數(shù)據(jù)返回 return(dat)。 } //write a byte to ds18b20 //寫一個字節(jié)到 DS18B20 里 void tmpwritebyte(uchar dat) { uint i。 uchar j。 bit testb。 for(j=1。j=8。j++) { testb=datamp。0x01。 dat=dat1。 if(testb) //write 1 寫 1 部分
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1