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

正文內(nèi)容

帶lcd顯示功能的避障小車的設(shè)計(jì)畢業(yè)論文(參考版)

2025-06-26 02:24本頁面
  

【正文】 。 WriteInstruction(0x06)。 WriteInstruction(0x0c)。 WriteInstruction(0x38)。 //延時(shí)5ms  WriteInstruction(0x38)。 //延時(shí)15ms,首次寫指令時(shí)應(yīng)給LCD一段較長的反應(yīng)時(shí)間 WriteInstruction(0x38)。 //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 E=0。 _nop_()。 //E置高電平 _nop_()。 _nop_()。 _nop_()。 //E置低電平(根據(jù)表86,寫指令時(shí),E為高脈沖, // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置0 P0=y。 //RS為高電平,RW為低電平時(shí),可以寫入數(shù)據(jù) RW=0。 //顯示位置的確定方法規(guī)定為80H+地址碼x }/*****************************************************函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫入液晶模塊入口參數(shù):y(為字符常量)***************************************************/ void WriteData(unsigned char y) { while(BusyTest()==1)。 //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 E=0。 _nop_()。 //E置高電平 _nop_()。 _nop_()。 _nop_()。 //空操作兩個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 P0=dictate。 //E置低電平(根據(jù)表86,寫指令時(shí),E為高脈沖, // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置0 _nop_()。 //根據(jù)規(guī)定,RS和R/W同時(shí)為低電平時(shí),可以寫入指令 RW=0。 }/*****************************************************函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊入口參數(shù):dictate***************************************************/void WriteInstruction (unsigned char dictate){ while(BusyTest()==1)。 //將忙碌標(biāo)志電平賦給result E=0。 _nop_()。 //空操作 _nop_()。 E=1。 RS=0。result=1,忙碌。i++) delay1ms()。 for(i=0。j++) 。i++) for(j=0。 for(i=0。 //使能信號位,sbit BF=P0^7。 //寄存器選擇位,sbit RW=P1^3。 } }}//修改時(shí)把主直流電機(jī)的程序改為PWM控制速度,提高可控性,方便加測速和PID調(diào)節(jié),STC89C52本身帶三個(gè)定時(shí)器。 back()。 } while(K1==0||K2==0) //有障礙物,光電的感應(yīng)距離肯定很小,此時(shí)不進(jìn)行超聲判斷了,直接倒車之后停止 { stop()。amp。 WriteData(A[i])。i17。 WriteAddress(0x00)。 baidong()。//會(huì)不會(huì)影響TRIG引腳一直為高,以為要超聲波模塊要工作?改FE P0=0XFF。 P2=0XFF。void main(void) { unsigned char i,j。 } } else{ eon()。beep()。 DATA115) {back()。} else if (DATA215 amp。beep()。amp。eon()。 DATA1DATA2)//轉(zhuǎn)過幾個(gè)角度,進(jìn)行測距后,判斷轉(zhuǎn)向,以下為判斷機(jī)制,有更好的判斷機(jī)制嗎?? {eright()。//無論判斷出來的情況如何,最后總是eon(),所以這個(gè)子程序之后小車總是在跑動(dòng)的,//也就是說下一次進(jìn)入該子程序,進(jìn)行超聲波測距時(shí)小車是在跑動(dòng)中 if(DATA115 amp。 beep()。 //180176。 TR1=1。 chaoshengbo()。 beep()。 pro=36。 DATA1= distance1。 TR1=0。 delay_ms(100)。 pro=10。//超聲測距,返回測得距離distance1,此時(shí)小車沒有停止 if(distance1=15)//15cm { stop()。} /************測距判斷并動(dòng)作子程序****************///疑問:那個(gè)距離15什么單位?修改嗎?判斷機(jī)制合理嗎?void shunback(){ uint DATA1,DATA2。 out3=1。 out4=0。 out4=0。 out2=0。 delay_ms(150)。 out1=0。}//后退void back(){out2=1。 out1=1。}//前進(jìn)void eon(){out2=0。out4=1。out2=0。 delay_ms(120)。out3=1。 }}/************直流電機(jī)子程序,直流電機(jī)的驅(qū)動(dòng)未加PWM調(diào)速,ENA,ENB直接接了VCC,使用最大速****************///其中各程序的延時(shí)時(shí)間需要進(jìn)行實(shí)測//左轉(zhuǎn),且轉(zhuǎn)向時(shí)一個(gè)車輪正傳,一個(gè)車輪反轉(zhuǎn),轉(zhuǎn)過的角度,取決于延時(shí)時(shí)間,因?yàn)閑left()之后總是跟eon()void eleft(){ out1=0。k++) { delay_ms(100)。 for(k=0。 D[1]=distance1%10。 //這個(gè)公式修改為單位CM,沒有用到浮點(diǎn)運(yùn)算,不會(huì)有小數(shù)位 } distance1=distance_data。 //放入16位的高8位 distance_data=distance_data|outeL。 //等待,為了保證必進(jìn)入外部中斷0,還是低電平觸發(fā)比較好 if(succeed_flag==1)//成功測試信號為1,表明已經(jīng)從外部中斷返回了,此時(shí)外部中斷關(guān)閉了? { distance_data=outeH。 //打開外部中斷0 EA=1。 //第一時(shí)間啟動(dòng)定時(shí)器0 //啟動(dòng)之后做下面幾件事情 succeed_flag=0。 //在Trig引腳產(chǎn)生一個(gè)20us的高電平脈沖 while(Echo==0)。 delay_20us()。 EA=0。 unsigned char D[2]。 //關(guān)閉定時(shí)器0,使之不計(jì)數(shù) EX0=0。 //定時(shí)器0清零 TL0=0。 //取出定時(shí)器的值 succeed_flag=1。 //關(guān)定時(shí)器1,關(guān)閉舵機(jī)PWM,關(guān)閉定時(shí)器則定時(shí)器不走,不會(huì)產(chǎn)生溢出中斷,假設(shè)關(guān)閉時(shí)正好為FF,則中斷一次之后計(jì)數(shù)值為初值,且不再進(jìn)入中斷}/************外部中斷0服務(wù)函數(shù),用做判斷回波電平,修改了****************/void INT0_0() interrupt 0 // 外部中斷是0號{ outeH =TH0。 delay_ms(50)。 pro=24。 //大于160176。 delay_ms(50)。 pro=10。 //90176。//PRO不可能超過400,CHAR類型最大255,所以這里翻轉(zhuǎn)沒問題 }}/************舵機(jī)初始搖頭,疑問:PWM為一直為0或者1就可以使舵機(jī)不搖頭了嗎,關(guān)閉TR1時(shí),PWM為0為1不一定的****************/void baidong(){ TR1=1。 } if(j==400) //周期20ms,頻率50HZ,是舵機(jī)的工作頻率嗎? { j=0。 if(j=pro)//pro調(diào)節(jié)脈寬, { PWM=1。 TL1=0xce。 //T1為高優(yōu)先級 EA = 1。 //定時(shí)器1開中斷,這里這個(gè)ET1始終是1,因?yàn)橹袛噙M(jìn)不進(jìn)得看TR1 EX0 = 0。 //定時(shí)器1先不啟動(dòng)TR0 = 0。 //T1用來舵機(jī)PWM脈沖波發(fā)生定時(shí)中斷,每50US進(jìn)入一次中斷,該中斷僅在舵機(jī)需要搖頭時(shí)開啟 TL1 = 0xce。 //T0用來進(jìn)行對回波高電平計(jì)時(shí),初值為0 TL0 = 0x00。 //現(xiàn)在不輸出高,防止產(chǎn)生回波TMOD = 0x11。}/*******************初始化子函數(shù)***********************/void Init() { flag=0。 beem=1。 beem=0。 beem=1。 }}/*******************蜂鳴2聲子函數(shù)***********************/void beep() { beem=0。}//毫秒級延時(shí)void delay_ms(uint x){ while(x!=0) { delay_us(500)。 }//微秒級延時(shí)void delay_us(uint x){ do { x。bt100。 //測量成功標(biāo)志/*******************3個(gè)延時(shí)子函數(shù)***********************///20US為了超聲波那至少10US的發(fā)送高電平,時(shí)間具體值需要計(jì)算void delay_20us() { uchar bt 。uchar pro,temp,flag,outeH,outeL。 //舵機(jī)pwm//定義數(shù)據(jù)寄存器uint distance[4]。 //回波引腳,需要檢測高電平持續(xù)時(shí)間,但回波之前一直為低嗎?sbit beem = P3^7。舵機(jī)sbit Trig = P3^0。//超聲波amp。sbit out3 = P2^2 。//ENA,ENB圖中都接VCC高了sbit out1 = P2^0 。//紅外光電傳感器,改為激光會(huì)不會(huì)干擾小點(diǎn),但激光是模擬量,需要AD,難度大 sbit K2=P1^1。參考資料[1][M].北京:機(jī)械工業(yè)出版社,2005[2]元增民,[M].長沙:國防科技大學(xué)出版社,2006[3](第三版)[M].北京:北京航空航天大學(xué)出版社,2005[4][M].北京:北京航空航天大學(xué)出版社,2002[5][M].北京:北京航空航天大學(xué)出版社,2001[6](第一冊)[M].北京:化學(xué)工業(yè)出版社,2004[7](第二版)[M].北京:機(jī)械工業(yè)出版社,[8][M].北京:化學(xué)工業(yè)出版社,2001[9][M].北京:科學(xué)出版社,2007[10](數(shù)字部分)[M].北京:高等教育出版社, [11][M].北京:機(jī)械工業(yè)出版社,2001[12][M].西安:西安電子科技大學(xué)出版社,[13]王秋爽,(第一版)[M].北京:[14][M].北京: 高等教育出版社,[15][M].哈爾濱:哈爾濱工程大學(xué)出版社,2000附錄一MCU1dis模塊程序:include include define uchar unsigned char define uint unsigned intunsigned char A[]=Distance。對英語知識(shí)和專業(yè)英語的學(xué)習(xí),掌握了外文閱讀和外文翻譯的能力,在外文翻譯和查閱外文資料時(shí)候可以得心應(yīng)手;通過C語言的學(xué)習(xí),在編程的時(shí)候也不感覺到非常棘手;計(jì)算機(jī)知識(shí)的學(xué)習(xí),使我能夠熟練使用多種最基本的計(jì)算機(jī)相關(guān)軟件和專業(yè)軟件的使用方法,包括基本的Windows辦公軟件,還有一些專業(yè)軟件,如Protel9Proteus等。由于實(shí)際設(shè)計(jì)經(jīng)驗(yàn)的匱乏,在許多地方難免有考慮不周全的,如果沒有何諧老師的指導(dǎo)和督促,以及
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1