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

正文內(nèi)容

基于單片機的超聲測距系統(tǒng)設(shè)計方案-資料下載頁

2025-05-06 00:22本頁面
  

【正文】 ****/void HEXtoBCD() {float tp。unsigned long int tmp。fuhao=0。 //溫度符號位if(temp0x8000)tp=temp*。else //溫度為負(fù),則求補碼得到原碼{BUMA()。tp=temp*。fuhao=1。}tp*=10。 tmp=tp。num[12]=tmp/100。 //數(shù)據(jù)轉(zhuǎn)換后放到顯示數(shù)組里面if(fuhao)num[12]=num[12]|0x80。 //最高位加上符號位num[13]=tmp/10(tmp/100)*10。tmp=distance。num[25]=tmp/1000。tmp%=1000。num[26]=tmp/100。tmp%=100。num[27]=tmp/10。tmp%=10。num[28]=tmp/1。 }/**************溫度轉(zhuǎn)換函數(shù)***************************/void TESTTEMP(){Init_18B20()。 //初始化18B20if(flag){B20_WDAT(0xCC)。 // 跳過讀序號列號的操作,忽略ROM匹配B20_WDAT(0x44)。 // 發(fā)送溫度轉(zhuǎn)化命令}}/***********讀取溫度函數(shù)**************/uint GET_WD(void){uint a = 0, b = 0, t = 0。Init_18B20()。 //初始化18B20B20_WDAT(0xCC)。 //跳過讀序號列號的操作B20_WDAT(0xBE)。 //發(fā)送讀溫度命令 a = B20_RDAT()。 b = B20_RDAT()。 //讀取一個字節(jié)(讀出高8位和低8位)t = b。t = 8。t = t | a。 //字節(jié)合并 return (t)。 //返回結(jié)果給調(diào)用} /***************18B20復(fù)位函數(shù)***********************/void Init_18B20() {DQ = 1。 //DQ復(fù)位Delay(10)。DQ = 0。 //單片機將DQ拉低Delay(80)。 //480usDQ = 1。 //拉高總線Delay(10)。 //稍做延時后 如果x=0則初始化成功,x=1則初始化失敗if(DQ)flag=0。elseflag=1。Delay(20)。}/*******************讀數(shù)據(jù)******************************/uchar B20_RDAT(void) //讀取一個字節(jié){uchar i = 0。uchar dat = 0。for (i = 8。 i 0。 i){DQ = 0。 // 拉低數(shù)據(jù)線,開始讀數(shù)據(jù)dat = 1。DQ = 1。 // 拉高數(shù)據(jù)線,停止讀數(shù)據(jù)if(DQ)dat |= 0x80。 //拼裝處理Delay(15)。}return (dat)。 //注意讀取的為補碼}/*********************寫數(shù)據(jù)****************************/void B20_WDAT(uchar dat){uchar i = 0。for (i = 8。 i 0。 i){DQ = 0。 //拉低數(shù)據(jù)線至少15us以作為起始信號DQ = datamp。0x01。 //取出低位的一位數(shù)據(jù)Delay(5)。 //稍作延時DQ = 1。 //將數(shù)據(jù)線拉高以作為停止信號dat=1。 //移位,為寫入下一位數(shù)據(jù)做準(zhǔn)備}}/*******************數(shù)據(jù)轉(zhuǎn)換函數(shù)**************************/void BUMA(){temp=~temp。 //按位取反 temp+=1。}/**************************LCD顯示函數(shù)*******************/void LCD_DISP(){ uchar a,b,d。Init_LCD()。Write_Comm(0x01)。 //清顯示W(wǎng)rite_Comm(0x80)。 //寫首地址for(a=0。a16。a++){ d=dispBUF[a]。if((a11)amp。amp。(a14)) //如果是結(jié)果位到num[]里面讀取{d=numcode[num[a]]。 //待顯示的結(jié)果 } if(14==a) { d=0xdf。}Write_Data(d)。 //寫入要顯示的數(shù)據(jù)}Write_Comm(0xc0)。 //換行,換到第二行for(b=16。b33。b++){ d=dispBUF[b]。if((b24)amp。amp。(b29)){ d=numcode[num[b]]。 }Write_Data(d)。 //寫入要顯示的數(shù)據(jù)(數(shù)據(jù)傳輸)}}/*********檢查LCD忙狀態(tài)***********/bit LCD_BUSY() //lcd_busy為1時,忙,等待。lcdbusy為0時,閑,可寫指令與數(shù)據(jù){bit BS。RW = 1。RS = 0。 E = 1。delay1ms(1)。BS =(bit)(P0amp。0x80)。E = 0。return BS。}/*******************寫指令函數(shù)******************************/void Write_Comm(uchar lcdm) //寫指令{ while(LCD_BUSY())。RS = 0。RW = 0。E = 1。delay1ms(1)。 P0= lcdm。delay1ms(1)。E = 0。}/*********************寫數(shù)據(jù)函數(shù)****************************/void Write_Data(uchar lcddata)//寫數(shù)據(jù){ while(LCD_BUSY())。 RS = 1。RW = 0。E = 1。delay1ms(1)。P0= lcddata。delay1ms(1)。 //判斷是否忙狀態(tài)E = 0。}/*********************初始化LCD****************************/void Init_LCD(){delay()。 //稍微延時,等待LCD進入工作狀態(tài)Write_Comm(0x01)。 //清顯示Delay(2)。Write_Comm(0x38)。 //8位2行 5*8Delay(2)。Write_Comm(0x06)。 //文字不動,光標(biāo)右移Delay(2)。Write_Comm(0x0c)。 //顯示開/關(guān),光標(biāo)開閃爍開Delay(2)。}/*************************延時n*15US函數(shù)*************************/void delay15(uchar us){do{_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。us。}while(us)。} /************************18b20延時函數(shù)************************/void Delay(uint time){while( time )。 }/****************************延時1MS*************************/void delay1ms(uint ms){uint i,j。for(i=0。ims。i++)for(j=0。j100。j++)。}/***************************顯示延時函數(shù)*********************/void delay(){ uchar y。for(y=0。y0xff。y++)。}/*********************導(dǎo)通即可驅(qū)動蜂鳴器*********************/void beep(uint bp) {uchar i, j。for (i=0。ii++){BUZZER=!BUZZER。 //BEEP取反for (j = 0 。 jbp 。 j++) //需要產(chǎn)生方波_nop_()。 //一個CPU周期} BUZZER=0。 //關(guān)閉蜂鳴器}/*******************系統(tǒng)主函數(shù)******************/void main(void){uchar i,j。for(i=0。i255。i++)for(j=0。j255。j++)。 //延時 SYS_INIT()。 //初始化while(!START ){ beep(150)。 //調(diào)用beep()函數(shù),使喇叭發(fā)聲delay1ms(500)。LCD_DISP()。 //顯示sta_flag=0。 //標(biāo)準(zhǔn)位復(fù)位 ET0=1。 //開定時器0中斷TR0=1。 //啟動定時器0TESTTEMP()。 //啟動溫度轉(zhuǎn)換while(1) {if(sta_flag) //10MS到了(sta_flag=1) { while(0==CSBIN)。 //收到回波 TR1=0。 //關(guān)閉計數(shù)器1jsh=TH1。jsl=TL1。 //讀取計數(shù)器高低位的數(shù)值HEXtoBCD()。 //轉(zhuǎn)換成BCD碼JULIJS()。 //計算距離if(15==count) //900MS到,檢測溫度{temp=GET_WD()。 //讀取溫度count=0。TESTTEMP()。 //重新啟動轉(zhuǎn)換LCD_DISP()。 //刷新顯示}sta_flag=0。 //標(biāo)準(zhǔn)位復(fù)位}if(distance=110){ beep(150)。} } }} 45指 導(dǎo) 教 師 情 況姓 名技術(shù)職稱工作單位指 導(dǎo) 教 師 評 語指導(dǎo)教師評定成績:指導(dǎo)教師簽字: 年 月 日答 辯 委 員 會 評 語最終評定成績:答辯委員會主任簽字: 單位(公章)年 月 日1
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1