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

正文內(nèi)容

汽車倒車?yán)走_(dá)系統(tǒng)設(shè)計(jì)_畢業(yè)設(shè)計(jì)論文-資料下載頁

2025-08-11 17:58本頁面

【導(dǎo)讀】STC89C52RC單片機(jī)的汽車倒車?yán)走_(dá)系統(tǒng)。本系統(tǒng)采用軟硬件結(jié)合的方法,包括電源模塊、單片機(jī)及顯示模塊、報(bào)警模塊、超聲波發(fā)射與接收模塊,具有模塊化和多功能化的特點(diǎn)。與障礙物的距離,當(dāng)距離小于報(bào)警距離時(shí),發(fā)出相應(yīng)的聲光報(bào)警。提出了系統(tǒng)的總體構(gòu)成。通過多種設(shè)計(jì)方案比較,得出了最佳設(shè)計(jì)方案,并對(duì)系統(tǒng)各個(gè)。對(duì)組成各系統(tǒng)電路的芯片進(jìn)行了介紹,并闡述了它們的工。論文介紹了系統(tǒng)的軟件結(jié)構(gòu),通過編程來實(shí)現(xiàn)系統(tǒng)功能。

  

【正文】 主要由反向器 74LS04 和超聲波換能器構(gòu)成,單片機(jī) 端口輸出 40KHz 方波信號(hào)一路經(jīng)一級(jí)反向器后送到超聲波換能器的一個(gè)電極,另一路經(jīng)兩級(jí)反向器后送到超聲波換能器的另一個(gè)電極。用這種推挽形式將方波信號(hào)加到超聲波換能器兩端,可以提高超聲波的發(fā)射強(qiáng)度。輸出端采用兩個(gè)反向器并聯(lián),用以提高驅(qū)動(dòng)能力,上拉電阻 R R5 一方面可以提高反向器 74LS04輸出高電平的驅(qū)動(dòng)能力,另一方面可以增加超聲波換能器的阻尼效果,縮短其自由振蕩的時(shí)間。 壓電式超聲波換能器是利用 壓電晶體的諧振來工作的。超聲波換能器內(nèi)部有兩個(gè)壓電晶片和一個(gè)換能板。當(dāng)它的兩極外加脈沖信號(hào),其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片會(huì)發(fā)生共振,并帶動(dòng)共振板振動(dòng)產(chǎn)生超聲波,這時(shí)它就是一個(gè)超聲波發(fā)生器;反之,如果兩電極 間 未外加電壓,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片振動(dòng),使 機(jī)械能轉(zhuǎn)換為電信號(hào),這時(shí)它就成為超聲波接收換能器。超聲波發(fā)射換能器與接收換能器在結(jié)構(gòu)上稍有不同,使用時(shí)應(yīng)分清器件上的標(biāo)志。 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 23 48 超聲波發(fā)射電路 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 24 5 系統(tǒng)軟件設(shè)計(jì) 超聲波測距的原理:超聲波發(fā)生器 T 在某一時(shí)刻發(fā)出一個(gè)超聲波信號(hào),當(dāng)這個(gè)超聲波遇到被測物體后反射回來,就被超聲波接收器 R 所接收到。這樣只要計(jì)算出從發(fā)出超聲波信號(hào)到接收到返回信號(hào)所用的時(shí)間 t,就可算出超聲波發(fā)生器與反射物體的距離。距離的計(jì)算公式為: S=Ct/2 ( 41) 其中, S 為被測物與 發(fā)射點(diǎn) 的距離, C 為聲速, t為聲波來回所用的時(shí)間。 超聲波的指向性強(qiáng),能量消耗緩慢,遇到障礙物后反 射效率高,是測距的良好載體。測距時(shí) 有安裝在同一位置的超聲波發(fā)射器和接收器完成超聲波的發(fā)射與接收, 由 定時(shí)器計(jì)時(shí)。首先由發(fā)射器向特定方向發(fā)射 40KHZ 的 超聲波 ,超聲波接收器收到信號(hào)時(shí),輸出高電平,高電平持續(xù)的時(shí)間就是超聲波往返所用的時(shí)間 t。由于常溫下超聲波在空氣中的傳播 速度 約為 340m/s,所以由公式 ( 41) 知發(fā)射點(diǎn)距離障礙物之間的距離為: S=340t/2=170t (42) 在啟動(dòng) 發(fā)射電路的同時(shí)啟動(dòng)單片機(jī)內(nèi)部的定時(shí)器 T0,利用定時(shí)器的計(jì)數(shù)功能記錄超聲波發(fā)射的時(shí)間和收到 反射波的時(shí)間。當(dāng)收到超聲波反射波時(shí),接收電路輸出端產(chǎn)生一個(gè) 高電平 , 高電平持續(xù)的時(shí)間就是發(fā)射點(diǎn)與障礙物的距離。 讀取時(shí)間差,計(jì)算距離。在使用時(shí),如果溫度變化不大,則可以認(rèn)為聲速是基 本不變的。 51 距離計(jì)算流程圖 讀取時(shí)間值 計(jì)算距離 結(jié)果輸出 開外部中斷 返回 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 25 其部分源程序如下: void Conut(void) { time=TH0*256+TL0。 TH0=0。 TL0=0。 // S=(time*)/100。 //算出來是 cm S=time*。 S/=58。 //算出來是 cm if((S=400)||flag==1) //超出測量范圍顯示“ ” { flag=0。 disbuff[0]=10。 //“ ” disbuff[1]=10。 //“ ” disbuff[2]=10。 //“ ” } else { disbuff[0]=S%1000/100。 //百位 disbuff[1]=S%1000%100/10。 //十位 disbuff[2]=S%1000%10 %10。 //個(gè)位 } 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 26 主程序設(shè)計(jì)及其流程圖 主程序是單片機(jī)程序的主體,整個(gè)單片機(jī)端系統(tǒng)軟件的功能的實(shí)現(xiàn)都是在其中完成的,在此過程中主程序調(diào)用了子程序及中斷服務(wù)程序。程序首先完成初始化過程,然后是一個(gè)重復(fù)的控制發(fā)射信號(hào)的過程,即調(diào)用發(fā)射子程序幾遍,而且每次發(fā)射周期結(jié)束都判斷在發(fā)射信號(hào)后延時(shí)等待的過程中是否發(fā)生了中斷,即是否有回波產(chǎn)生來判斷程序的流程。 工作時(shí),微處理器 STC89C52RC 先把 置 0,啟動(dòng)超聲波傳感器發(fā)射超聲波,同時(shí)啟動(dòng)內(nèi)部定時(shí)器 T0 開始計(jì)時(shí)。要檢測返回信號(hào)必須在啟動(dòng)發(fā)射信 號(hào)后 毫秒才可以檢測,這樣就可以抑制輸出的干擾。當(dāng)超聲波信號(hào)碰到障礙物時(shí)信號(hào)立刻返回,微處理器不停的掃描 INT0 引腳,如果 INT0 接收的信號(hào)有高電平變?yōu)榈碗娖?,此時(shí)表明信號(hào)已經(jīng)返回,微處理器進(jìn)入中斷關(guān)閉定時(shí)器。再把定時(shí)器中的數(shù)據(jù)經(jīng)過換算就可以得出超聲波傳感器與障礙物之間的距離。然后再根據(jù)現(xiàn)場情況進(jìn)行聲光報(bào)警。下 面是部分主程序 void main( void ) {TMOD=0x11。 //設(shè) T0 為方式 1, GATE=1; TH0=0。 TL0=0。 TH1=0xf8。 //2ms 定時(shí) TL1=0x30。 ET0=1。 //允許 T0 中斷 ET1=1。 //允許 T1中斷 TR1=1。 //開啟定時(shí)器 EA=1。 //開啟總中斷 while(1) { while(!RX)。 //當(dāng) RX為零時(shí)等待 TR0=1。 //開啟計(jì)數(shù) while(RX)。 //當(dāng) RX為 1計(jì)數(shù)并等待 TR0=0。 //關(guān)閉計(jì)數(shù) Conut()。 //計(jì)算 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 27 52 主程序流程圖 開始 初始化 等待 RX=0 計(jì)算距離 開中斷 啟動(dòng)定時(shí) RX=1 發(fā)射超聲波 關(guān)報(bào)警 響鈴并發(fā)光 發(fā)光 顯示距離 距離 =1m 距離 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 28 超聲波發(fā)送及接收程序 超聲波發(fā)生子程序的作用是通過 端口發(fā)送 若干個(gè) 超聲波脈沖信號(hào)(頻率約40KHz 的方波),脈沖寬度為 12μs 左右,同時(shí)把計(jì)數(shù)器 T0打開進(jìn)行計(jì)時(shí)。主程序利用為中斷 0 檢測返回超聲波信號(hào),一旦接收到返回超聲波信號(hào)( 引腳出現(xiàn) 高電平 ),立即進(jìn)入中斷程序。超聲波發(fā)射程序比較簡單,主要包括 T0 中斷服務(wù)程序和超聲波接收中斷服務(wù)程序 。 N Y 53 超聲波發(fā)射子程序 流程圖 54 超聲波 接收子程序 流程圖 超聲波發(fā)射及接收的部分程序如下: void zd3() interrupt 3 //T1 中斷用來掃描數(shù)碼管和計(jì)800ms啟動(dòng)模塊 { TH1=0xf8。 TL1=0x30。 Display()。 定時(shí)中斷入口 返回 停止發(fā)射 超聲波發(fā)射完否? 發(fā)射超聲波 定時(shí)器初始化 開啟定時(shí)器 開啟總中斷 RX=1 計(jì)數(shù) 關(guān)閉計(jì)數(shù) 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 29 timer++。 if(timer=400) { timer=0。 TX=1。 _nop_()。 TX=0。 while(1) { while(!RX)。 //當(dāng) RX為零時(shí)等待 TR0=1。 //開啟計(jì)數(shù) while(RX)。 //當(dāng) RX為 1計(jì)數(shù)并等待 TR0=0。 //關(guān)閉計(jì)數(shù) 程序 清單 程序的設(shè)計(jì)思想是超聲波發(fā)射器先發(fā)射一連串 40KHZ 的方波,然后自動(dòng)檢測是否有信號(hào)返回。有信號(hào)返回時(shí),通過 I/O 口輸出一高電平,高電平持續(xù)的時(shí) 間就是超聲波從發(fā)射到返回的時(shí)間,通過計(jì)算子程序把時(shí)間轉(zhuǎn)化為距離。如果距離小于等于 時(shí),發(fā)光二極管發(fā)光,并在 LED 數(shù)碼管上顯示距離; 如果距離小于 等于 ,響鈴,發(fā)光二極管發(fā)光 。并在 LED數(shù)碼管 上顯示距離;如果距離大于 ,數(shù)碼管顯示“ ”;此外只在數(shù)碼管上顯示距離。數(shù)碼管采用時(shí)間間隔為 的動(dòng)態(tài)顯示。模塊 TRIG 接 , ECH0 接 。 共陽數(shù)碼管 P1 接數(shù)據(jù)口 , 、 、 接選通數(shù)碼管 。 include //初始化 include sbit RX=P0^1。 sbit TX=P0^2。 sbit LED=P3^2。 sbit BEEP=P3^4。 unsigned int time=0。 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 30 unsigned int timer=0。 unsigned char posit=0。 unsigned long S=0。 bit flag =0。 unsigned char const discode[] ={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0xff/**/}。// 斷碼 unsigned char const positon[4]={ 0xdf,0xef,0xf7,0xFB}。 //位碼 unsigned char disbuff[4] ={ 0,0,0,0,}。 /********************************************************/ void Display(void) //掃描數(shù)碼管 { if(posit==0) {P1=(discode[disbuff[posit]])amp。0x7f。} else {P1=discode[disbuff[posit]]。} P2=positon[posit]。 if(++posit=3) posit=0。 } /********************************************************/ void Conut(void) { time=TH0*256+TL0。 TH0=0。 TL0=0。 // S=(time*)/100。 //算出來是 cm S=time*。 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 31 S/=58。 //算出來是 cm if((S=400)||flag==1) //超出測量范圍顯示“ ” { flag=0。 disbuff[0]=10。 //“ ” disbuff[1]=10。 //“ ” disbuff[2]=10。 //“ ” } else { disbuff[0]=S%1000/100。 //百位 disbuff[1]=S%1000%100/10。 //十位 disbuff[2]=S%1000%10 %10。 //個(gè)位 } if(S=150) { unsigned g=0。 while(g=10) { BEEP=0。 for(h=0。h=150。h++) BEEP=1。 for(h=0。h=150。h++) g++。 } } if(S=80) { 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 32 unsigned f=0。 while(f=10) { BEEP=0。 for(h=0。h=80。h++) BEEP=1。 for(h=0。h=80。h++) f++。 } } if (S=40) //報(bào) 警距離 { LED=0。 BEEP=0。 } if ((S150)amp。amp。(S600)) { LED=1。 BEEP=1。 } } /********************************************************/ void zd0() interrupt 1 //T0 中斷用來計(jì)數(shù)器溢出 ,超過測距范圍 { flag=1。 //中
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦