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

正文內(nèi)容

基于單片機(jī)lcd顯示的超聲波測距系統(tǒng)畢業(yè)論文-資料下載頁

2025-06-30 21:44本頁面

【導(dǎo)讀】泛應(yīng)用于防盜、倒車?yán)走_(dá)、水位測量、建筑施工工地以及一些工業(yè)現(xiàn)場。該系統(tǒng)電路設(shè)計合理、工作穩(wěn)定、性能良好、檢測速度快、計算簡單、易于做到實時控。制,并且在測量精度方面能達(dá)到工業(yè)實用的要求。

  

【正文】 LCM(void)。 unsigned char ReadStatusLCM(void)。 unsigned char code mcustudio[] ={}。 unsigned char code [] = { }。 unsigned char code Cls[] = { }。 unsigned char code ASCII[15] = {39。039。,39。139。,39。239。,39。339。,39。439。,39。539。,39。639。,39。739。,39。839。,39。939。,39。.39。,39。39。,39。M39。}。 int i。 static unsigned char DisNum = 0。 //顯示用指針 unsigned int time=0。 unsigned long S=0。 bit flag =0。 unsigned char disbuff[4] ={ 0,0,0,0,}。 //寫數(shù)據(jù) void WriteDataLCM(unsigned char WDLCM) { 第 28 頁 ReadStatusLCM()。 //檢測忙 LCM_Data = WDLCM。 LCM_RS = 1。 LCM_RW = 0。 LCM_E = 0。 //若晶振速度太高可以在這后加小的延時 LCM_E = 0。 //延時 LCM_E = 1。 } //寫指令 void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC 為 0 時忽略忙檢測 { if (BuysC) ReadStatusLCM()。 //根據(jù)需要檢測忙 LCM_Data = WCLCM。 LCM_RS = 0。 LCM_RW = 0。 LCM_E = 0。 LCM_E = 0。 LCM_E = 1。 } //讀數(shù)據(jù) unsigned char ReadDataLCM(void) { LCM_RS = 1。 LCM_RW = 1。 LCM_E = 0。 LCM_E = 0。 LCM_E = 1。 return(LCM_Data)。 } //讀狀態(tài) unsigned char ReadStatusLCM(void) { LCM_Data = 0xFF。 LCM_RS = 0。 LCM_RW = 1。 LCM_E = 0。 LCM_E = 0。 LCM_E = 1。 while (LCM_Data amp。 Busy)。 //檢測忙信號 return(LCM_Data)。 } 第 29 頁 void LCMInit(void) //LCM 初始化 { LCM_Data = 0。 WriteCommandLCM(0x38,0)。 //三次顯示模式設(shè)置,不檢測忙信號 Delay5Ms()。 WriteCommandLCM(0x38,0)。 Delay5Ms()。 WriteCommandLCM(0x38,0)。 Delay5Ms()。 WriteCommandLCM(0x38,1)。 //顯 示模式設(shè)置 ,開始要求每次檢測忙信號 WriteCommandLCM(0x08,1)。 //關(guān)閉顯示 WriteCommandLCM(0x01,1)。 //顯示清屏 WriteCommandLCM(0x06,1)。 // 顯示光標(biāo)移動設(shè)置 WriteCommandLCM(0x0F,1)。 // 顯示開及光標(biāo)設(shè)置 } //按指定位置顯示一個字符 void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData) { Y amp。= 0x1。 X amp。= 0xF。 //限制 X 不能大于 15, Y 不能大于 1 if (Y) X |= 0x40。 //當(dāng)要顯示第二行時地址碼 +0x40。 X |= 0x80。 //算出指令碼 WriteCommandLCM(X, 1)。 //發(fā)命令字 WriteDataLCM(DData)。 //發(fā)數(shù)據(jù) } //按指定位置顯示一串字符 void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData) { unsigned char ListLength。 ListLength = 0。 Y amp。= 0x1。 X amp。= 0xF。 //限制 X 不能大于 15, Y 不能大于 1 while (DData[ListLength]0x19) //若到達(dá)字串尾則退出 { if (X = 0xF) //X 坐標(biāo)應(yīng)小于 0xF { DisplayOneChar(X, Y, DData[ListLength])。 //顯示單個字符 ListLength++。 X++。 第 30 頁 } } } //5ms 延時 void Delay5Ms(void) { unsigned int TempCyc = 5552。 while(TempCyc)。 } //400ms 延時 void Delay400Ms(void) { unsigned char TempCycA = 5。 unsigned int TempCycB。 while(TempCycA) { TempCycB=7269。 while(TempCycB)。 }。 } /********************************************************/ void StartModule() //啟動模塊 { TX=1。 for(i=0。i10。i++) //啟動一次模塊 { _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 第 31 頁 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 } TX=0。 } /********************************************************/ void Conut(void) { time=TH0*256+TL0。 TH0=0。 TL0=0。 S=(time*)/100。 //算出來是 CM if((S=700)||flag==1) //超出測量范圍顯示“ ” { flag=0。 DisplayOneChar(0, 1, ASCII[11])。 DisplayOneChar(1, 1, ASCII[10])。 //顯示點 DisplayOneChar(2, 1, ASCII[11])。 DisplayOneChar(3, 1, ASCII[11])。 DisplayOneChar(4, 1, ASCII[12])。 //顯示 M } else { disbuff[0]=S%1000/100。 disbuff[1]=S%1000%100/10。 disbuff[2]=S%1000%10 %10。 DisplayOneChar(0, 1, ASCII[disbuff[0]])。 DisplayOneChar(1, 1, ASCII[10])。 //顯示點 DisplayOneChar(2, 1, ASCII[disbuff[1]])。 DisplayOneChar(3, 1, ASCII[disbuff[2]])。 DisplayOneChar(4, 1, ASCII[12])。 //顯示 M } } /********************************************************/ void zd0() interrupt 1 //T0 中斷用來計數(shù)器溢出 ,超過測距范圍 { flag=1。 //中斷溢出標(biāo)志 StartModule()。 } 第 32 頁 /********************************************************/ void delayms(unsigned int ms) { unsigned char i=100,j。 for(。ms。ms) { while(i) { j=10。 while(j)。 } } } /*********************************************************/ void main(void) { unsigned char TempCyc。 Delay400Ms()。 //啟動等待,等 LCM 講入工作狀態(tài) LCMInit()。 //LCM 初始化 Delay5Ms()。 //延時片刻 (可不要 ) DisplayListChar(0, 0, mcustudio)。 DisplayListChar(0, 1, )。 ReadDataLCM()。//測試用句無意義 for (TempCyc=0。 TempCyc10。 TempCyc++) Delay400Ms()。 //延時 DisplayListChar(0, 1, Cls)。 while(1) { TMOD=0x01。 //設(shè) T0 為方式 1, GATE=1; TH0=0。 TL0=0。 ET0=1。 //允許 T0 中斷 EA=1。 //開啟總中斷 while(1) { StartModule()。 // DisplayOneChar(0, 1, ASCII[0])。 while(!RX)。 //當(dāng) RX 為零時等待 TR0=1。 //開啟計數(shù) while(RX)。 //當(dāng) RX 為 1 計數(shù)并等待 TR0=0。 //關(guān)閉計數(shù) Conut()。 //計算 第 33 頁 delayms(120)。 //80MS } } }
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1