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

正文內(nèi)容

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

2025-06-27 19:30本頁面
  

【正文】 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)。}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++。 } }}//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_()。 _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])。 //顯示點(diǎn) 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])。 //顯示點(diǎn) 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()。 }/********************************************************/ 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()。 //計算 delayms(120)。 //80MS } }}第33頁
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1