版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科畢業(yè)設(shè)計(jì)(論文)</p><p><b> ?。ǘ?屆)</b></p><p> 基于AVR單片機(jī)的倒車?yán)走_(dá)設(shè)計(jì)</p><p> 所在學(xué)院 </p><p> 專業(yè)班級(jí) 電子信息工程 </p
2、><p> 學(xué)生姓名 學(xué)號(hào) </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p><b> 摘 要</b></p><p>
3、 本文根據(jù)聲波在空氣中傳播反射原理,以超聲波傳感器為接口部件,介紹了基于AVR單片機(jī)的超聲波測(cè)距器。該設(shè)計(jì)由超聲波發(fā)射模塊、信號(hào)接收模塊、AVR單片機(jī)處理模塊、數(shù)碼顯示以及顯示模塊等部分組成,文中詳細(xì)介紹了測(cè)距器的硬件組成、檢測(cè)原理、方法以及軟件結(jié)構(gòu)。超聲波接收電路使用CX20106A紅外檢測(cè)芯片,該芯片用于38kHz的檢波電路。文中設(shè)計(jì)出對(duì)40kHz超聲波檢波的硬件電路,并使用數(shù)碼管顯示目標(biāo)物的距離。</p><p
4、> 關(guān)鍵詞:ATmega16,超聲波,倒車?yán)走_(dá) </p><p> The parking radar design system based on AVR microcontroller</p><p><b> Abstract</b></p><p> The paper introduces an ultrasonic r
5、ange-finder control system based on AVR microcontroller, according to the principle of sound wave propagation reflection in the air,using the ultrasonic sensors as the interface unit. The design consists of an ultrasoni
6、c transmitter module, a signal receiver module, AVR microcontroller processing module, digital display and the display module and other components, Described in detail the hardware components of the rangefinder, testing
7、principles, methods and </p><p> Keywords: ATmega16,Ultrasonic, back-draft radar</p><p><b> 目 錄</b></p><p> 摘要 …………………………………………………………………………………………Ⅰ</p><p>
8、; ABSTRACT ……………………………………………………………………………………Ⅱ</p><p> 目錄 …………………………………………………………………………………………Ⅲ</p><p> 1緒論…………………………………………………………………………………………1</p><p> 1.1汽車倒車?yán)走_(dá)系統(tǒng)概述……………………………………………
9、………………1</p><p> 1.1.1倒車?yán)走_(dá)系統(tǒng)作用…………………………………………………………1</p><p> 1.1.2倒車?yán)走_(dá)系統(tǒng)的發(fā)展………………………………………………………1</p><p> 2 核心器件簡(jiǎn)介………………………………………………………………………………3</p><p> 2.1 ATmega
10、16芯片……………………………………………………………………3</p><p> 2.1.1 ATmega16簡(jiǎn)介……………………………………………………………3</p><p> 2.1.2 芯片特性……………………………………………………………………3</p><p> 2.1.3 ATmega16引腳功能…………………………………………………………4&l
11、t;/p><p> 2.1.4 ATmega16 內(nèi)核介紹…………………………………………………………5</p><p> 2.2超聲波傳感器的結(jié)構(gòu)與特點(diǎn)………………………………………………………6</p><p> 2.3超聲波傳感器的應(yīng)用………………………………………………………………7</p><p> 3系統(tǒng)硬件設(shè)計(jì)…………………
12、……………………………………………………………8</p><p> 3.1 ATmega16核心控制模塊…………………………………………………………8</p><p> 3.2超聲波發(fā)射模塊……………………………………………………………………9</p><p> 3.3超聲波接收模塊……………………………………………………………………9</p>
13、<p> 3.4 顯示及報(bào)警模塊…………………………………………………………………10</p><p> 3.5 復(fù)位模塊…………………………………………………………………………11</p><p> 4系統(tǒng)軟件設(shè)計(jì)………………………………………………………………………………12</p><p> 4.1 超聲波測(cè)距原理及應(yīng)用……………………………
14、……………………………12</p><p> 4.2 軟件結(jié)構(gòu)…………………………………………………………………………12</p><p> 4.3 各模塊程序說(shuō)明…………………………………………………………………14</p><p> 4.3.1超聲波測(cè)距子程序………………………………………………………14</p><p> 4.3
15、.2 T0中斷子程序……………………………………………………………16</p><p> 參考文獻(xiàn)……………………………………………………………………………………16</p><p> 致 謝……………………………………………………………………………………17</p><p> 附錄1 原理圖………………………………………………………………………………18&l
16、t;/p><p> 附錄2 PCB圖………………………………………………………………………………18</p><p> 附錄3 程序…………………………………………………………………………………18</p><p><b> 1緒論</b></p><p> 1.1汽車倒車?yán)走_(dá)系統(tǒng)概述</p><
17、p> 1.1.1倒車?yán)走_(dá)系統(tǒng)作用</p><p> 隨著消費(fèi)水平的提高,擁有汽車的人也逐漸增多,停車位也日趨緊張,泊車就成為很多車主頭痛的問(wèn)題,這時(shí)倒車?yán)走_(dá)就成了車主泊車的好助手。倒車?yán)走_(dá),全稱“倒車防撞雷達(dá)”,又稱“泊車輔助裝置”,它是汽車泊車或者倒車時(shí)的安全輔助裝置,能以直觀的顯示和警報(bào)來(lái)告知車主周圍障礙物的情況,為車主解除了泊車時(shí)前后左右探視所引起的煩擾,并且還幫助車主掃除了視線模糊和視野死角的缺
18、陷,提高了泊車的安全性。</p><p> 倒車?yán)走_(dá)是汽車泊車安全輔助裝置,主要由超聲波探頭、控制器、顯示器及蜂鳴器等部分組成。它能以直觀的顯示和警報(bào)來(lái)告知車主周圍障礙物的情況,為車主解除了泊車時(shí)前后左右探視所引起的煩擾,并且還幫助車主掃除了視線模糊和視野死角的缺陷,提高了泊車的安全性。[1]倒車?yán)走_(dá)其實(shí)跟我們所知道的雷達(dá)是一樣的,是根據(jù)蝙蝠在黑夜里高速飛行而不會(huì)與任何障得物相撞的原理設(shè)計(jì)開(kāi)發(fā)的,通過(guò)感應(yīng)裝置發(fā)
19、出超聲波,然后通過(guò)反射回來(lái)的超聲波來(lái)判斷前方有無(wú)障得物,以及距障礙物的距離、障礙物的大小、方位和形狀等。不過(guò)由于倒車?yán)走_(dá)體積和實(shí)用性的限制,目前的倒車?yán)走_(dá)主要具備的就是判斷障礙物的距離,并作出提示,讓駕駛者便于判斷。[2]</p><p> 通常的倒車?yán)走_(dá)主要由三部分組成:感應(yīng)器(探頭)、主機(jī)和顯示設(shè)備。感應(yīng)器發(fā)出和接收超聲波信號(hào),然后將得到的信號(hào)傳輸?shù)街鳈C(jī)里面的電腦進(jìn)行分析,再通過(guò)顯示設(shè)備顯示出來(lái)。探頭裝在后
20、保險(xiǎn)杠上,根據(jù)不同價(jià)格和品牌,探頭有1、3、4、6只不等,有的高檔進(jìn)口車甚至要裝8只,分別管前后左右。探頭以45°角輻射,上下左右搜尋目標(biāo)。它最大的特點(diǎn)是能探索到那些低于保險(xiǎn)杠而駕駛員從后窗難以看見(jiàn)的障礙物(如花壇、蹲在車后玩耍的小孩等)并報(bào)警。倒車?yán)走_(dá)的顯示器裝在駕駛室儀表板上,它不停地提醒駕駛員汽車距后面物體還有多少距離。到危險(xiǎn)距離時(shí)蜂鳴器就開(kāi)始鳴叫,提醒駕駛員停車。按探頭分,倒車?yán)走_(dá)有粘貼式、鉆孔式和懸掛式三種。粘貼式探
21、頭后有層膠,可直接粘在后保險(xiǎn)杠上。鉆孔式探頭,是在保險(xiǎn)杠上打一個(gè)洞,然后把探頭嵌進(jìn)去。懸掛式探頭主要用于貨車。從顯示器分,有數(shù)字顯示、顏色顯示和蜂鳴三種。數(shù)字式顯示器是一只如BP機(jī)大小的盒子,安裝在駕駛室儀表板上,距離直接用數(shù)字顯示,精確到0.01mm,讓駕駛員一目了然。它會(huì)提醒駕駛員:1.5~0.8m為安全區(qū);0.8~0.3m為適當(dāng)區(qū);0.3~0.1m為危險(xiǎn)區(qū)。在安全區(qū),你可正常倒泊。在適當(dāng)區(qū)</p><p>
22、 1.1.2倒車?yán)走_(dá)系統(tǒng)的發(fā)展</p><p><b> (1)蜂鳴器</b></p><p> 這是倒車?yán)走_(dá)系統(tǒng)的真正開(kāi)始,倒車時(shí),如果車后1.5~1.8m處有障礙物,蜂鳴器就會(huì)開(kāi)始工作。蜂鳴聲越急,表示車輛離障礙物越近,沒(méi)有語(yǔ)音提示,也沒(méi)有距離顯示,雖然司機(jī)知道有障礙物,但不能確定障礙物離車有多遠(yuǎn),對(duì)駕駛員幫助不大。</p><p>
23、<b> ?。?)數(shù)碼波段顯示</b></p><p> 數(shù)碼波段顯示可以顯示車后障礙物離車體的距離。如果是物體,在1.8米開(kāi)始顯示;如果是人,在0.9米左右的距離開(kāi)始顯示。 這一代產(chǎn)品有兩種顯示方式,數(shù)碼顯示產(chǎn)品顯示距離數(shù)字,而波段顯示產(chǎn)品由三種顏色來(lái)區(qū)別:綠色代表安全距離,表示障礙物離車體距離有0.8米以上;黃色代表警告距離,表示離障礙物的距離只有0.6~0.8米;紅色代表危險(xiǎn)距離,表
24、示離障礙物只有不到0.6米的距離,你必須停止倒車。 該代產(chǎn)品由于比較實(shí)用,價(jià)格不高,中低檔車和車鈴超過(guò)三年的車安裝使用較多,但安裝在車內(nèi)不太美觀、功能單一。</p><p> ?。?)液晶顯示屏動(dòng)態(tài)顯示</p><p> 這一代產(chǎn)品有一個(gè)質(zhì)的飛躍,特別是熒屏顯示開(kāi)始出現(xiàn)動(dòng)態(tài)顯示系統(tǒng)。不用掛倒檔,只要發(fā)動(dòng)汽車,顯示器上就會(huì)出現(xiàn)汽車圖案以及車輛周圍障礙物的距離。動(dòng)態(tài)顯示,色彩清晰漂亮,外表美
25、觀,可以直接粘貼在儀表盤上,安裝很方便,目前已逐漸成為新購(gòu)中高檔車安裝使用的主流產(chǎn)品。不過(guò)目前國(guó)產(chǎn)的液晶顯示器外觀雖精巧,但靈敏度較高,抗干擾能力不強(qiáng),所以誤報(bào)也較多。</p><p> ?。?)魔幻鏡倒車?yán)走_(dá)</p><p> 魔幻鏡倒車?yán)走_(dá)結(jié)合了前幾代產(chǎn)品的優(yōu)點(diǎn),采用了最新仿生超聲雷達(dá)技術(shù),配以高速電腦控制,可全天候準(zhǔn)確地測(cè)知2米以內(nèi)的障礙物,并以不同等級(jí)的聲音提示和直觀的顯示提醒駕
26、駛員。 魔幻鏡倒車?yán)走_(dá)把后視鏡、倒車?yán)走_(dá)、免提電話、溫度顯示和車內(nèi)空氣污染顯示等多項(xiàng)功能整合在一起,并設(shè)計(jì)了語(yǔ)音功能,是目前市面上比較先進(jìn)的倒車?yán)走_(dá)系統(tǒng),部分進(jìn)口的高檔車已有安裝使用。因?yàn)槠渫庑尉褪且粔K倒車鏡,所以可以不占用車內(nèi)空間,直接安裝在車內(nèi)倒視鏡的位置,而且顏色款式多樣,可以按照個(gè)人需求和車內(nèi)裝飾選配。</p><p><b> (5)整合影音系統(tǒng)</b></p>&
27、lt;p> 這是專為高檔轎車生產(chǎn)的,它在上一代產(chǎn)品的基礎(chǔ)上新增了很多功能。從外觀上來(lái)看,這套系統(tǒng)比上代產(chǎn)品更精致和典雅;從功能上來(lái)看,它除了具備上代產(chǎn)品的所有功能之外,還整合了高檔轎車具備的影音系統(tǒng),可以在顯示器上觀看DVD影像。[4]</p><p><b> 2 核心器件簡(jiǎn)介</b></p><p> 2.1 ATmega16芯片</p>
28、<p> ATmega16是基于增強(qiáng)的AVR RISC結(jié)構(gòu)的低功耗8 位CMOS微控制器。由于單時(shí)鐘周期指令執(zhí)行時(shí)間以及先進(jìn)的指令集,ATmega16 的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,從而可以減少系統(tǒng)處理速度和系統(tǒng)功耗之間的矛盾。</p><p> ATmega16 AVR 內(nèi)核具有32 個(gè)通用工作寄存器和豐富的指令集。所有的寄存器都是直接跟算術(shù)邏輯單元(ALU) 相連接的,這種結(jié)構(gòu)大大提高
29、了代碼效率,并且具有比普通的CISC 微控制器最高至10 倍的數(shù)據(jù)吞吐率。在一個(gè)時(shí)鐘周期內(nèi),使得一條指令可以訪問(wèn)兩個(gè)獨(dú)立的寄存器。</p><p> 2.1.1 ATmega16簡(jiǎn)介</p><p> 芯片ATmega16是以Atmel 高密度非易失性存儲(chǔ)器技術(shù)生產(chǎn)的。片內(nèi)ISP Flash 允許程序存儲(chǔ)器通過(guò)運(yùn)行于AVR 內(nèi)核之中的引導(dǎo)程,或者序ISP 串行接口進(jìn)行編程,也可以通過(guò)通
30、用編程器進(jìn)行編程。ATmega16 具有一整套的編程與系統(tǒng)開(kāi)發(fā)工具,包括:程序調(diào)試器/ 軟件仿真器、仿真器及評(píng)估板、C 語(yǔ)言編譯器、宏匯編。引導(dǎo)程序可以使用任意接口將應(yīng)用程序下載到應(yīng)用Flash存儲(chǔ)區(qū)(ApplicationFlash Memory)。在更新應(yīng)用Flash存儲(chǔ)區(qū)時(shí)引導(dǎo)Flash區(qū)(Boot Flash Memory)的程序繼續(xù)運(yùn)行,實(shí)現(xiàn)了RWW 操作。[5] 通過(guò)將8 位RISC CPU 與系統(tǒng)內(nèi)可編程的Flash 集成
31、在一個(gè)芯片內(nèi),ATmega16 成為一個(gè)功能強(qiáng)大的單片機(jī),為許多嵌入式控制應(yīng)用提供了靈活而低成本的解決方案。</p><p> 2.1.2 芯片特性</p><p> 芯片ATmega16 具有如下特性: 32 個(gè)通用工作寄存器, 512 字節(jié)EEPROM,1K 字節(jié)SRAM,16K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時(shí)讀寫的能力,即RWW),32 個(gè)通用I/O 口線,支持片內(nèi)調(diào)試與編
32、程,用于邊界掃描的JTAG 接口,三個(gè)具有比較模式的靈活的定時(shí)器/ 計(jì)數(shù)器(T/C),片內(nèi)/外中斷,可編程串行USART,六個(gè)可以通過(guò)軟件進(jìn)行選擇的省電模式,8路10位具有可選差分輸入級(jí)可編程增益(TQFP 封裝) 的ADC ,一個(gè)SPI 串行端口,有起始條件檢測(cè)器的通用串行接口以及具有片內(nèi)振蕩器的可編程看門狗定時(shí)器。</p><p> 工作在省電模式下,異步定時(shí)器繼續(xù)運(yùn)行,允許用戶保持一個(gè)時(shí)間基準(zhǔn),而其余功能
33、模塊處于休眠狀態(tài);工作于掉電模式時(shí)晶體振蕩器停止振蕩,所有功能除了中斷和硬件復(fù)位之外都停止工作;工作于空閑模式時(shí)CPU 停止工作,而SPI 端口、T/C、SRAM、中斷系統(tǒng)、A/D 轉(zhuǎn)換器、USART以及兩線接口繼續(xù)工作;Standby 模式下只有晶體或諧振振蕩器運(yùn)行,其余功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時(shí)具有快速啟動(dòng)能力;擴(kuò)展Standby 模式下則允許振蕩器和異步定時(shí)器繼續(xù)工作;ADC 噪聲抑制模式時(shí)終止CPU 和
34、除了異步定時(shí)器與ADC 以外所有I/O 模塊的工作,以降低ADC 轉(zhuǎn)換時(shí)的開(kāi)關(guān)噪聲。[6]</p><p> 2.1.3 ATmega16 引腳功能</p><p> 端口B(PB0~PB7) 端口B 為8 位I/O雙向口,具有可編程的內(nèi)部上拉電阻。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特性,可以輸出和吸收大電流。在復(fù)位過(guò)程中,即
35、使系統(tǒng)時(shí)鐘還未起振,端口B 處于高阻狀態(tài)。端口B 也可以用做其他不同的特殊功能。</p><p> RESET 復(fù)位輸入引腳。持續(xù)時(shí)間超過(guò)最小門限時(shí)間的低電平將引起系統(tǒng)復(fù)位。持續(xù)時(shí)間小于門限間的脈沖不能保證可靠復(fù)位。</p><p><b> VCC 電源正極。</b></p><p><b> GND 電源地極。</b&
36、gt;</p><p> XTAL2 反向振蕩放大器的輸出端。</p><p> XTAL1 反向振蕩放大器與片內(nèi)時(shí)鐘操作電路的輸入端。</p><p> 端口D(PD0~PD7) 端口D 為8 位I/O雙向口,具有可編程的內(nèi)部上拉電阻。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,則端口被外部電路拉低時(shí)將輸出電流。其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特性,可以輸出和吸收大電流。
37、在復(fù)位過(guò)程中,即使系統(tǒng)時(shí)鐘還未起振,端口D 處于高阻狀態(tài)。端口D 也可以用做其他不同的特殊功能。</p><p> 端口C(PC0~PC7) 端口C 為8 位I/O雙向口,具有可編程的內(nèi)部上拉電阻。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特性,可以輸出和吸收大電流。在復(fù)位過(guò)程中,即使系統(tǒng)時(shí)鐘還未起振,端口C 處于高阻狀態(tài)。端口C 也可以用做其他不同的特殊功能
38、。如果JTAG接口使能,即使復(fù)位出現(xiàn)引腳 PC5(TDI)、 PC3(TMS)與 PC2(TCK)的上拉電阻被激活。</p><p> AVCC AVCC是端口A與A/D轉(zhuǎn)換器的電源。使用ADC時(shí)應(yīng)將VCC與一個(gè)低通濾波器連接。不使用ADC時(shí),該引腳應(yīng)直接與VCC連接。</p><p> AREF A/D 的模擬基準(zhǔn)輸入引腳。</p><p> 端口A(PA0
39、~PA7) 端口A 做為A/D 轉(zhuǎn)換器的模擬輸入端。端口A 為8 位I/O雙向口,具有可編程的內(nèi)部上拉電阻。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特性,可以輸出和吸收大電流。在復(fù)位過(guò)程中,即使系統(tǒng)時(shí)鐘還未起振,端口A 處于高阻狀態(tài)。</p><p> 圖2-1 ATmega16</p><p> 2.1.4 ATmega16 內(nèi)
40、核介紹</p><p> AVR 存儲(chǔ)器空間結(jié)構(gòu)為線性平面。</p><p> AVR有一個(gè)靈活的中斷模塊。每個(gè)中斷在中斷向量表里都有獨(dú)立的中斷向量。狀態(tài)寄存器里有全局中斷使能位??刂萍拇嫫魑挥贗/O空間。各個(gè)中斷的優(yōu)先級(jí)與其在中斷向量表的位置有關(guān),中斷向量地址越低,優(yōu)先級(jí)越高。</p><p> AVR 采用了Harvard 結(jié)構(gòu),取得了較高的性能以及并行性
41、,具有獨(dú)立的數(shù)據(jù)和程序總線。程序存儲(chǔ)器是可以在線編程的FLASH。程序存儲(chǔ)器里的指令通過(guò)一級(jí)流水線運(yùn)行。CPU在執(zhí)行一條指令的同時(shí)讀取下一條指令。這個(gè)概念實(shí)現(xiàn)了指令的單時(shí)鐘周期運(yùn)行。</p><p> 程序存儲(chǔ)器空間可以分為兩個(gè)區(qū):應(yīng)用程序區(qū)和引導(dǎo)程序區(qū)(Boot 區(qū))。這兩個(gè)區(qū)都有專門的鎖定位以實(shí)現(xiàn)讀和讀/ 寫保護(hù)。用于寫應(yīng)用程序區(qū)的SPM 指令必須位于引導(dǎo)程序區(qū)。</p><p>
42、 I/O 存儲(chǔ)器空間包含64 個(gè)可以直接尋址的地址,作為CPU 外設(shè)的控制寄存器、SPI,以及其他I/O 功能。映射到數(shù)據(jù)空間即為寄存器文件之后的地址0x20~0x5F。</p><p> 快速訪問(wèn)寄存器文件包括32 個(gè)8 位通用工作寄存器,又因?yàn)樵L問(wèn)時(shí)間為一個(gè)時(shí)鐘周期,從而實(shí)現(xiàn)了單時(shí)鐘周期的ALU 操作。在典型的ALU 操作中,整個(gè)過(guò)程僅一個(gè)時(shí)鐘周期,兩個(gè)位于寄存器文件中的操作數(shù)同時(shí)被訪問(wèn),然后執(zhí)行運(yùn)算,運(yùn)算
43、結(jié)果再被送回到寄存器文件。</p><p> ALU支持常數(shù)和寄存器之間以及寄存器之間的算術(shù)和邏輯運(yùn)算。ALU也可以執(zhí)行單寄存器操作。運(yùn)算完成之后狀態(tài)寄存器的內(nèi)容得到更新以反映操作結(jié)果。</p><p> 在調(diào)用和中斷子程序時(shí)返回地址的程序計(jì)數(shù)器(PC) 保存于堆棧之中。通用數(shù)據(jù)SRAM包含堆棧在內(nèi),因此其深度僅受限于SRAM 的大小。在復(fù)位例程里首先要初始化堆棧指針SP。這個(gè)指針可以
44、進(jìn)行讀寫訪問(wèn),它位于I/O 空間??梢酝ㄟ^(guò)5 種不同的尋址模式進(jìn)行訪問(wèn)數(shù)據(jù)SRAM。</p><p> 寄存器文件里有6 個(gè)寄存器可以用作3 個(gè)16 位的間接尋址寄存器指針以尋址數(shù)據(jù)空間,從而實(shí)現(xiàn)高效的地址運(yùn)算。這些附加的功能寄存器即為16 位的X、Y、Z 寄存器。其中一個(gè)指針還可以作為程序存儲(chǔ)器查詢表的地址指針。</p><p> 通過(guò)有無(wú)條件的調(diào)用指令和跳轉(zhuǎn)指令來(lái)控制程序流程,從而
45、直接尋址整個(gè)地址空間。大多數(shù)指令長(zhǎng)度為16 位,即每個(gè)程序存儲(chǔ)器地址都包含一條16 位或32 位的指令。</p><p> 2.2 超聲波傳感器的結(jié)構(gòu)與特點(diǎn)</p><p><b> ?。?)組成部分</b></p><p> 超聲波探頭主要由壓電晶片組成,用來(lái)發(fā)射超聲波和接收超聲波。功率較小的超聲波探頭大多用來(lái)探測(cè)。它的結(jié)構(gòu)可分斜探頭(橫
46、波)、直探頭(縱波)、蘭姆波探頭(蘭姆波)、表面波探頭(表面波)、雙探頭(一個(gè)探頭反射、一個(gè)探頭接收)等。</p><p><b> (2)性能指標(biāo)</b></p><p> 超聲探頭的核心部件是其金屬外套或者塑料外套中的一塊壓電晶片,構(gòu)成晶片的材料也有許多種,各有不同。由于晶片的大小,如直徑和厚度也各不相同,所以每個(gè)探頭的特性是不相同的,我們使用前應(yīng)該先了解它的
47、性能。超聲波傳感器的主要性能指標(biāo)包括以下部分:</p><p><b> a)靈敏度</b></p><p> 主要取決于制造晶片本身。機(jī)電耦合系數(shù)小,靈敏度低;反之,靈敏度高。</p><p><b> b)工作溫度</b></p><p> 由于壓電材料的居里點(diǎn)一般比較高,特別是診斷用的
48、超聲波探頭功率較小,因此工作溫度比較低,可以長(zhǎng)時(shí)間地工作而不失效。而醫(yī)療用的超聲探頭的溫度比較高,不能長(zhǎng)時(shí)間工作,所以需要單獨(dú)的制冷設(shè)備。</p><p><b> c)工作頻率</b></p><p> 工作頻率就是壓電晶片的共振頻率。當(dāng)晶片的共振頻率和加到它兩端的交流電壓的頻率相等時(shí),輸出的能量最大,靈敏度也最高。</p><p>
49、2.3 超聲波傳感器的應(yīng)用</p><p> 超聲波傳感技術(shù)廣泛應(yīng)用在生產(chǎn)實(shí)踐方面,其中最主要的應(yīng)用之一有醫(yī)學(xué)應(yīng)用,超聲波在醫(yī)學(xué)上的應(yīng)用主要體現(xiàn)在疾病的診斷,超聲波診斷是利用超聲波的反射。當(dāng)超聲波在人體組織中傳播遇到兩層聲阻抗不同的介質(zhì)界面時(shí),在該界面就產(chǎn)生反射回波。每遇到一個(gè)反射面,回波在示波器的屏幕上顯示出來(lái),回波的振幅的高低取決于兩個(gè)界面的阻抗差值。目前該技術(shù)受到患者和醫(yī)務(wù)工作者的大大歡迎,它已經(jīng)成為了臨
50、床醫(yī)學(xué)中不可缺少的診斷方法。超聲波診斷的優(yōu)點(diǎn)包括有:對(duì)受檢者無(wú)損害、無(wú)痛苦、診斷的準(zhǔn)確率高、顯像清晰、方法簡(jiǎn)便等[7]。在工業(yè)的應(yīng)用方面,超聲波的典型應(yīng)用是超聲波測(cè)厚和對(duì)金屬的無(wú)損探傷兩種。以前許多技術(shù)因?yàn)闊o(wú)法探測(cè)到物體組織內(nèi)部而受到阻礙,導(dǎo)致失敗?,F(xiàn)在,超聲波傳感技術(shù)的出現(xiàn)改變了這種狀況。在未來(lái)的應(yīng)用中,超聲波將與信息技術(shù)、新材料技術(shù)相互結(jié)合,會(huì)出現(xiàn)更多的高靈敏度、智能化的超聲波傳感器。以現(xiàn)在人類無(wú)法想像的方式存在在我們的周圍,毫無(wú)聲
51、息地探測(cè)人們所需要的信號(hào)。</p><p><b> 3系統(tǒng)硬件設(shè)計(jì)</b></p><p> 本系統(tǒng)采用ATmega16 AVR為控制核心,外圍電路由超聲波發(fā)射電路(74HC04)、超聲波接收電路(CX20106A)、報(bào)警電路、顯示電路(LCD1602)、接口電路及電源電路等部分組成。系統(tǒng)框圖如圖3-1所示。</p><p> 圖3-1
52、 Atmega16 AVR系統(tǒng)框架</p><p> 3.1 ATmega16核心控制模塊</p><p> Atmega16是Atmel公司近幾年才推向市場(chǎng)的新一代低功耗、高性能、高集成化的8位CMOS微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,加上片內(nèi)32 個(gè)通用工作寄存器都直接與算術(shù)邏輯單元(ALU) 相連接,使得一條指令可以在一個(gè)時(shí)鐘周期內(nèi)同時(shí)訪問(wèn)兩個(gè)獨(dú)立的寄存器
53、,大大提高了代碼效率,運(yùn)行速度比AT89C51高出很多。用于邊界掃描的JTAG接口,可以對(duì)片上16 KB閃存Flash在線編程和調(diào)試,非常方便軟件的升級(jí)。內(nèi)部集成了較大容量的存儲(chǔ)器和豐富強(qiáng)大的硬件接口電路,如實(shí)時(shí)時(shí)鐘、定時(shí)/計(jì)數(shù)器、I2C的串行接口、A/D轉(zhuǎn)換器、可編程的串行USART接口、快速PWM通道、SPI串行接口和帶片內(nèi)晶振的可編程看門狗定時(shí)器以及片內(nèi)的模擬比較器等,除傳感器外幾乎可以不需要其他任何元件即可構(gòu)成系統(tǒng),從而為本設(shè)計(jì)
54、提供了靈活而低成本的解決方案。其主控電路如圖3-2所示。</p><p> 圖3-2 Atmega16 主控電路圖</p><p> 3.2 超聲波發(fā)射模塊</p><p> 超聲波發(fā)射器由超聲波的生成電路與超聲波發(fā)射控制電路兩部分組成,本系統(tǒng)中選用了CSB40T作為超聲波探頭。超聲波的產(chǎn)生可采用軟件發(fā)生方法和硬件方法。這里是利用軟件產(chǎn)生40KHz的超聲波信
55、號(hào),經(jīng)過(guò)74HC04兩次和一次反向放大驅(qū)動(dòng)后輸出到CSB40T,如圖3-3所示。</p><p> 圖3-3 超聲波發(fā)射電路</p><p> 芯片74HC04是一個(gè)高速CMOS六反相器,相對(duì)于LSTTL邏輯IC,它的功耗少很多,74HC04還具有對(duì)稱的傳輸延遲和轉(zhuǎn)換時(shí)間。對(duì)于HC類型的芯片,其工作電壓為2~6V,它具有高抗擾度,可以兼容直接輸入LSTTL邏輯信號(hào)和CMOS邏輯信號(hào)。
56、</p><p> 3.3 超聲波接收模塊</p><p> 因?yàn)槌暡ㄔ诳諝庵袀鞑?huì)消耗能量,傳輸距離越遠(yuǎn)能量損失越大,從遠(yuǎn)距離障礙物反射的回波信號(hào)一般比較弱,所以超聲波接收到回波信號(hào)后,要對(duì)回波信號(hào)進(jìn)行放大[8]。為減少環(huán)境噪聲對(duì)回波信號(hào)的影響。也要考慮選用濾波特性較好的電路,使回波信號(hào)易于檢測(cè)。本系統(tǒng)使用集成電路CX20106A作為超聲波接收電路,用來(lái)完成信號(hào)的放大、限幅、整形、
57、帶通濾波和峰值檢波等功能,如圖3-4所示。</p><p> 圖3-4 超聲波接收電路</p><p> CX20106A的前置放大器具有自動(dòng)增益的控制功能,可以保證在接收較遠(yuǎn)反射信號(hào)輸出的微弱電壓時(shí),放大器有較高的增益,而在近距離輸入信號(hào)比較強(qiáng)時(shí),放大器不會(huì)過(guò)載。CX20106A接收超聲波有較高的抗干擾能力,并且靈敏度也很高,可以滿足接受電路的要求。同時(shí)也可以減少電路之間的相互干擾
58、,減少電噪聲。當(dāng)接收到40KHz信號(hào)后,芯片7腳會(huì)出現(xiàn)低電平,接入單片機(jī)便可以使單片機(jī)產(chǎn)生中斷。</p><p> 3.4 顯示及報(bào)警模塊</p><p> 此模塊由AVR單片機(jī)控制LCD1602顯示并且發(fā)出警報(bào)。主要作用是在汽車尾部與障礙物距離較近時(shí)進(jìn)行報(bào)警并且顯示出車尾與障礙物的距離。在大于2 m時(shí)認(rèn)為是正常的,處于安全狀態(tài),顯示實(shí)測(cè)距離;小于2 m時(shí),應(yīng)提醒司機(jī)注意,系統(tǒng)發(fā)出聲音
59、報(bào)警功能,單片機(jī)主芯片向其端口發(fā)出脈沖,隨著距離的減小,通過(guò)控制脈沖的占空比使蜂鳴的頻率加劇,產(chǎn)生警報(bào)同時(shí)在顯示器上顯示距離。</p><p> 圖3-5 顯示及其警報(bào)電路</p><p><b> 3.4 復(fù)位模塊</b></p><p> ATmega16單片機(jī)共有5個(gè)復(fù)位源:</p><p> 上電復(fù)位。
60、當(dāng)系統(tǒng)電源電壓低于上電復(fù)位門限Vpot時(shí),MCU復(fù)位。</p><p> 外部復(fù)位。當(dāng)外部引腳RESET為低電平,且低電平持續(xù)時(shí)間大于1.5us時(shí),MCU復(fù)位。</p><p> 掉電檢測(cè)(BOD)復(fù)位。BOD使能時(shí),且電源電壓低于掉電檢測(cè)復(fù)位門限(4.0v或2.7v)時(shí),MCU復(fù)位。</p><p> 看門狗復(fù)位。WDT使能時(shí),并且WDT超時(shí)溢出時(shí),MCU復(fù)
61、位。</p><p> JTAG AVR復(fù)位。當(dāng)使用JTAG接口時(shí),可由JTAG口控制MCU復(fù)位。</p><p><b> 4系統(tǒng)軟件設(shè)計(jì)</b></p><p> 4.1 超聲波測(cè)距原理及應(yīng)用</p><p> 超聲波測(cè)距的原理比較簡(jiǎn)單,一般采用的方法有渡越時(shí)間法,即將超聲傳感器裝在汽車尾部,則障礙物到達(dá)車尾
62、的垂直距離為:</p><p> S=c△t/2 (4-1)</p><p> 式(4-1)中,S為被測(cè)障礙物與超聲波發(fā)射點(diǎn)之間的距離,C為聲波在介質(zhì)中的傳輸速率,△t為發(fā)射超聲波和接收超聲波的時(shí)間間隔。</p><p> 超聲波的傳播速度C受到空氣中壓強(qiáng)、濕度、溫度等因素的影響,其中受到溫度的影響較大??諝庵袦囟扰c聲速的關(guān)系可表示為:&l
63、t;/p><p> C=331.5+0,6T(m/s) (4-2)</p><p> 式(4-2)中,T(攝氏度)為環(huán)境溫度</p><p> 為了提高超聲波測(cè)距的精度,本系統(tǒng)用溫度補(bǔ)償來(lái)校正傳播速度。所以只要測(cè)量超聲發(fā)射到超聲接收的時(shí)間間隔△t以及環(huán)境溫度T,然后根據(jù)式(4-1)、式(4-2)即可計(jì)算出距離S。</p><p> 在超聲
64、波測(cè)距時(shí),需要測(cè)的是超生比發(fā)射和接收到信號(hào)之間的時(shí)間差,因此要盡量避免檢測(cè)到余波信號(hào),這也是超聲波檢測(cè)中存在最小測(cè)量盲區(qū)的主要原因。[9]</p><p> 用軟件來(lái)控制脈沖發(fā)射信號(hào)和檢測(cè)回波信號(hào):</p><p> 進(jìn)行程序設(shè)計(jì)時(shí)采用脈沖測(cè)量的方法,由ATmega16發(fā)生20KHz的脈沖信號(hào),每一次所測(cè)量出來(lái)發(fā)射的脈沖數(shù)要在12個(gè)以上完整的40KHz脈沖。與此同時(shí)在發(fā)射信號(hào)前要打開(kāi)計(jì)
65、數(shù)器進(jìn)行計(jì)時(shí);等到計(jì)時(shí)到達(dá)一定的值之后,再開(kāi)啟檢測(cè)回波信號(hào),以避免余波信號(hào)的干擾。</p><p> 采用外部中斷來(lái)對(duì)回波信號(hào)進(jìn)行檢測(cè)。當(dāng)接收到檢測(cè)回波信號(hào)時(shí),馬上讀取計(jì)數(shù)器上所顯示的數(shù)值,該數(shù)據(jù)就是所需要測(cè)量的時(shí)間差數(shù)據(jù)。為避免測(cè)量數(shù)據(jù)的誤差,采取的處理方法是:每進(jìn)行一次測(cè)距,用時(shí)基中斷測(cè)量4次,獲得4組數(shù)據(jù),經(jīng)過(guò)處理后得到這一次測(cè)距數(shù)值。</p><p> 超聲波對(duì)固體、液體的穿透
66、本領(lǐng)很大,尤其是不透明的固體中,它可穿透該固體幾十米的深度。</p><p> 超聲波在碰到分界面或者是雜質(zhì)時(shí),會(huì)產(chǎn)生顯著反射形成反射回波,碰到活動(dòng)物體時(shí)會(huì)產(chǎn)生多普勒效應(yīng)。所以超聲波檢測(cè)在生物醫(yī)、國(guó)防、工業(yè)學(xué)等方面廣泛應(yīng)用。</p><p> 超聲波距離傳感器也可以廣泛應(yīng)用在防盜報(bào)警,各種超聲波接近開(kāi)關(guān),機(jī)器人防撞,以及物位(液位)監(jiān)測(cè)等相關(guān)領(lǐng)域,靈敏度高,安裝方便,工作可靠,防水型,
67、發(fā)射夾角較小,方便與工業(yè)顯示儀表連接,也提供發(fā)射夾角較大的探頭。</p><p><b> 4.2軟件結(jié)構(gòu)</b></p><p> 軟件設(shè)計(jì)采用模塊化設(shè)計(jì),由主程序、聲速修正子程序、T0中斷子程序、距離計(jì)算子程序、LED顯示子程序和報(bào)警子程序等模塊組成。主程序流程圖如4-1圖所示。</p><p> 圖4-1 主程序流程圖</p&
68、gt;<p> 在程序進(jìn)行初始化之后,先對(duì)聲速進(jìn)行修正。當(dāng)進(jìn)行超聲波測(cè)距時(shí),由AVR單片機(jī)發(fā)出一個(gè)脈寬為125μs的脈沖信號(hào),該脈沖信號(hào)主要控制74HC04發(fā)射5個(gè)40 kHz的超聲波脈沖串。T0定時(shí)器的定時(shí)時(shí)間為30 ms,就是每隔30 ms發(fā)射出5個(gè)40 kHz的超聲波脈沖串。發(fā)射超聲波脈沖串的同時(shí)AVR單片機(jī)的T0計(jì)數(shù)器進(jìn)行計(jì)數(shù),一旦接收到回波信號(hào)馬上停止計(jì)數(shù)。利用超聲波距離計(jì)算子程序?qū)λ鶞y(cè)得的時(shí)間和修正后的聲速進(jìn)
69、行數(shù)據(jù)處理后,將結(jié)果送入LCD顯示和進(jìn)行報(bào)警。</p><p> 4.3各模塊程序說(shuō)明</p><p> 4.3.1 超聲波測(cè)距子程序</p><p><b> 圖4-2</b></p><p> 超聲波測(cè)距控制程序中,超聲波測(cè)距的功能流程圖如4-2圖所示。使用者要先對(duì)函數(shù)進(jìn)行初始化,然后調(diào)用此函數(shù)即可進(jìn)行下一次
70、測(cè)距操作,測(cè)量結(jié)果為函數(shù)返回值,每一次測(cè)距要進(jìn)行四次數(shù)據(jù)測(cè)量,這四次的測(cè)量值要經(jīng)過(guò)處理后才能得到最終的測(cè)距返回值;每一次測(cè)距中,用時(shí)基中斷來(lái)控制四次測(cè)量的間隔時(shí)間;每一次測(cè)量,先發(fā)射20個(gè)40KHz脈沖,然后使能測(cè)量時(shí)間基準(zhǔn)計(jì)數(shù)器,當(dāng)計(jì)數(shù)到4ms時(shí),等待回波信號(hào)反射到接收頭。四次數(shù)據(jù)的測(cè)量完成后,再對(duì)測(cè)量值進(jìn)行處理、換算,并進(jìn)行出錯(cuò)處理,使用者可以根據(jù)不同的需要對(duì)數(shù)據(jù)處理部分的程序給予適當(dāng)?shù)恼{(diào)整。壓電式的電聲傳感器存在余波干擾,有部分聲
71、波會(huì)沿電路板直接傳到接收,經(jīng)接收電路的放大后,系統(tǒng)就有可能把它誤認(rèn)為是反射回來(lái)的回波信號(hào)。</p><p> void main(void)</p><p><b> {</b></p><p> init_devices();</p><p><b> while(1)</b></p
72、><p> {DDRB=0b00001000;</p><p> timer1_init();</p><p> TCCR0 = 0x19;//time0</p><p><b> while(1);</b></p><p><b> }</b></p>
73、<p><b> while(1)</b></p><p><b> {</b></p><p> unsigned int n=100;</p><p> init_devices();</p><p> DDRB=0b00001000;</p><p>
74、;<b> step=1;</b></p><p><b> t1=0;</b></p><p> timer1_init();</p><p> TCCR0 = 0x19;//time0</p><p> while(step){}</p><p> GICR
75、 = 0b00000000;</p><p> ds=t1/54.2122;</p><p> ds_to_disbuffer(ds);</p><p> while(n--)</p><p><b> {</b></p><p> display();</p><p
76、><b> } </b></p><p><b> }</b></p><p><b> }</b></p><p> 4.3.2 T0中斷子程序</p><p> 中斷程序分為T0,INT0,INT1</p><p> T0設(shè)置為
77、30ms中斷一次,其主要目的就是每隔30ms產(chǎn)生5~8個(gè)40kHz的方波作為超聲波脈沖,并且按順序送到四個(gè)通道產(chǎn)生超聲波發(fā)射脈沖。INT0中斷子程序讀取A/D轉(zhuǎn)換的結(jié)果,將相應(yīng)數(shù)值轉(zhuǎn)換為所在環(huán)境的溫度值。INT1停止T0、T1計(jì)數(shù),根據(jù)T1內(nèi)容計(jì)算出時(shí)間T,并計(jì)算最終距離。先計(jì)算超聲波傳播速度C,再計(jì)算距離,并將計(jì)算值送入緩沖區(qū)以備通訊。T1工作在方式1。</p><p><b> 圖4-3</
78、b></p><p> /TIMER0 initialize - prescale:1</p><p> // WGM: CTC</p><p> // desired value: 40KHz</p><p> // actual value: 79.277KHz (-0.9%)</p><p> v
79、oid timer0_init(void)</p><p><b> {</b></p><p> TCCR0 = 0x00; //stop</p><p> TCNT0 = 0xA4; //set count</p><p> OCR0 = 0x5C; //set compare</p>&l
80、t;p> // TCCR0 = 0x19; //start timer</p><p><b> }</b></p><p> //TIMER1 initialize - prescale:8 1.08506 US</p><p> //TIMER1 initialize - prescale:8</p>&l
81、t;p> // WGM: 0) Normal, TOP=0xFFFF</p><p> // desired value: 500uSec</p><p> // actual value: 499.132uSec (0.2%)</p><p> void timer1_init(void)</p><p><b>
82、 {</b></p><p> TCCR1B = 0x00; //stop</p><p> TCNT1H = 0x00; //setup</p><p> TCNT1L = 0x00;</p><p> //OCR1A=FF;</p><p> //OCR1A=5000;</p>
83、<p> OCR1AH = 0x13;</p><p> OCR1AL = 0x88;</p><p> OCR1BH = 0x01;</p><p> OCR1BL = 0xCC;</p><p> ICR1H = 0x01;</p><p> ICR1L = 0xCC;</p>
84、<p> TCCR1A = 0x00;</p><p> TCCR1B = 0x02; //start Timer</p><p> GICR=0b11100000;</p><p> TCCR0 = 0x19; //start timer0</p><p><b> }</b></p>
85、;<p> #pragma interrupt_handler timer1_compa_isr:7</p><p> void timer1_compa_isr(void)</p><p><b> {</b></p><p> // TCCR0 = 0x00; //stop T0</p><p>
86、; //compare occured TCNT1=OCR1A</p><p> // TCCR0 = 0x00; //stop T0</p><p> //delay_us(50);</p><p> //if(LR==0)GICR=0b01000000;</p><p> // else GICR=0b10000000;<
87、/p><p><b> }</b></p><p> #pragma interrupt_handler timer1_ovf_isr:9</p><p> void timer1_ovf_isr(void)</p><p><b> {</b></p><p> //
88、TIMER1 has overflowed</p><p><b> step=0;</b></p><p> TCCR1B = 0x00;</p><p> TCCR0 = 0x00; //stop T0</p><p> //delay_ms(30);</p><p> #pragm
89、a interrupt_handler int0_isr:2 </p><p> void int0_isr(void)//收到波</p><p><b> {</b></p><p> CLI(); //disable all interrupts</p><p><b> t1=TCNT1;<
90、/b></p><p> TCCR0 = 0x00; //stop T0</p><p><b> //step=0;</b></p><p><b> //GICR=0;</b></p><p> GICR&=0b10111111;//stop int0</p>
91、<p><b> SEI(); </b></p><p><b> } </b></p><p> 4.3系統(tǒng)調(diào)試及其結(jié)果</p><p> 從資料的著手到電路原理圖的繪制,所花的時(shí)間并不是很多,很大部分的經(jīng)歷付諸在軟件的修改之上。在這個(gè)階段也有部分收獲,最初是出現(xiàn)了LCD1602無(wú)法顯示,思考著可能是
92、因?yàn)槌绦虻膯?wèn)題導(dǎo)致LCD1602無(wú)法顯示,改變程序之后還是不能夠顯示,然后我認(rèn)為很有可能是電路出現(xiàn)問(wèn)題了,緊接著開(kāi)始查找電路的連線及其焊接。這一環(huán)節(jié)結(jié)束之后,我發(fā)現(xiàn)芯片之間的焊接與連線大體是沒(méi)有問(wèn)題的,除了有個(gè)地方的焊接出現(xiàn)了虛焊。發(fā)現(xiàn)問(wèn)題后重新進(jìn)行焊接。等全部檢查無(wú)誤后再次運(yùn)行,仍然無(wú)法顯示,而且有燒焦的味道,查看之后發(fā)現(xiàn)ATmega16芯片被燒壞了。因此無(wú)法顯示,導(dǎo)致設(shè)計(jì)的失敗。</p><p><b&
93、gt; 參 考 文 獻(xiàn)</b></p><p> [1] 牛余朋,成曙.基于單片機(jī)的超聲波測(cè)距系統(tǒng).兵工自動(dòng)化出版社,2005</p><p> [2] 蘇長(zhǎng)贊.紅外線與超聲波遙測(cè).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1999-6:128-134 </p><p> [3] 朱華.發(fā)展中的倒車?yán)走_(dá).[期刊論文]《城市車輛》,2006年</p>
94、;<p> [4] 丁鑫.全景視覺(jué)泊車輔助系統(tǒng)研究.浙江大學(xué)信息與電子工程學(xué)系出版社,2010年</p><p> [5] 蘭金虎. CAN總線技術(shù)在工程機(jī)械發(fā)動(dòng)機(jī)檢測(cè)中的應(yīng)用.西安電子科技大學(xué)出版社,2009年</p><p> [6] 文樺.單片機(jī)教學(xué)與應(yīng)用平臺(tái)的研究. 同濟(jì)大學(xué)軟件學(xué)院出版社,2009年</p><p> [7] 何莉,曾
95、憲文.基于PIC單片機(jī)的超聲波測(cè)距系統(tǒng).重慶工學(xué)院電子信息與自動(dòng)化學(xué)院出版社,2006-7</p><p> [8] 恒清,張靖.加強(qiáng)單片機(jī)系統(tǒng)抗干擾能力的方法.通化師范學(xué)院報(bào)社,2004-10</p><p> [9] 丁鎮(zhèn)生.傳感器及遙測(cè)技術(shù).電子工業(yè)出版社,1998-5</p><p> [10] 陳光東.單片機(jī)微型計(jì)算機(jī)原理與技術(shù)接口(第二版).武漢:
96、華中理工大學(xué)出版社,1999-4:21-25</p><p> [11] 郭天祥.概念51單片機(jī)C語(yǔ)言教程——入門、提高、開(kāi)發(fā)、拓展.電子工業(yè)出版社</p><p> [12] 李廣弟,朱月秀,王秀山.單片機(jī)基礎(chǔ)(修訂本).北京:北京航空航天大學(xué)出版社,2001</p><p> [13] 戴巍.現(xiàn)代汽車防撞系統(tǒng).汽車維修出版社,2006</p>
97、<p> [14] 馬忠梅,籍順信.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì).第三版,北京航天航空大學(xué)出版社,2003-11</p><p> [15] 黃繼呂.電子元器件應(yīng)用手冊(cè).人民郵電出版社,2007</p><p> [16] 恒盛杰資訊.Protel電路板設(shè)計(jì)從入門到精通.中國(guó)青年出版社,2006</p><p> [17] rotor S ,ZHA
98、NG G X. Geometric Error Measurement and Compensation of Machines. Annals of the CIRP. 1995:599-609</p><p> [18] Olton W. Instrumentation process measurement.Longmanscientific Technical. 1991:364-372</p&g
99、t;<p><b> 附 錄 1</b></p><p><b> 附 錄 2</b></p><p><b> 附 錄 3</b></p><p> //TIMER0 initialize - prescale:1</p><p> // WGM: C
100、TC</p><p> // desired value: 40KHz</p><p> // actual value: 76.923KHz (-4.0%)</p><p> void timer0_init(void)</p><p><b> {</b></p><p> TCCR
101、0 = 0x00; //stop</p><p> TCNT0 = 0xF4; //set count</p><p> OCR0 = 0x0C; //set compare</p><p> TCCR0 = 0x19; //start timer</p><p><b> }</b></p>
102、<p> T/C1計(jì)時(shí)部分設(shè)置函數(shù)</p><p> //TIMER0 initialize - prescale:1</p><p> // WGM: CTC</p><p> // desired value: 40KHz</p><p> // actual value: 79.277KHz (-0.9%)</
103、p><p> void timer0_init(void)</p><p><b> {</b></p><p> TCCR0 = 0x00; //stop</p><p> TCNT0 = 0xA4; //set count</p><p> OCR0 = 0x5C; //set co
104、mpare</p><p> // TCCR0 = 0x19; //start timer</p><p><b> }</b></p><p> //TIMER1 initialize - prescale:8 1.08506 US</p><p> //TIMER1 initialize - presc
105、ale:8</p><p> // WGM: 0) Normal, TOP=0xFFFF</p><p> // desired value: 500uSec</p><p> // actual value: 499.132uSec (0.2%)</p><p> void timer1_init(void)</p>
106、<p><b> {</b></p><p> TCCR1B = 0x00; //stop</p><p> TCNT1H = 0x00; //setup</p><p> TCNT1L = 0x00;</p><p> //OCR1A=FF;</p><p> //OCR1
107、A=5000;</p><p> OCR1AH = 0x13;</p><p> OCR1AL = 0x88;</p><p> OCR1BH = 0x01;</p><p> OCR1BL = 0xCC;</p><p> ICR1H = 0x01;</p><p> ICR1L
108、 = 0xCC;</p><p> TCCR1A = 0x00;</p><p> TCCR1B = 0x02; //start Timer</p><p> GICR=0b11100000;</p><p> TCCR0 = 0x19; //start timer0</p><p><b> }
109、</b></p><p> #pragma interrupt_handler timer1_compa_isr:7</p><p> void timer1_compa_isr(void)</p><p><b> {</b></p><p> // TCCR0 = 0x00; //stop T0&
110、lt;/p><p> //compare occured TCNT1=OCR1A</p><p> // TCCR0 = 0x00; //stop T0</p><p> //delay_us(50);</p><p> //if(LR==0)GICR=0b01000000;</p><p> // else G
111、ICR=0b10000000;</p><p><b> }</b></p><p> #pragma interrupt_handler timer1_ovf_isr:9</p><p> void timer1_ovf_isr(void)</p><p><b> {</b></p
112、><p> //TIMER1 has overflowed</p><p><b> step=0;</b></p><p> TCCR1B = 0x00;</p><p> TCCR0 = 0x00; //stop T0</p><p> //delay_ms(30);</p>
113、<p> #pragma interrupt_handler int0_isr:2 </p><p> void int0_isr(void)//收到波</p><p><b> {</b></p><p> CLI(); //disable all interrupts</p><p><b
114、> t1=TCNT1;</b></p><p> TCCR0 = 0x00; //stop T0</p><p><b> //step=0;</b></p><p><b> //GICR=0;</b></p><p> GICR&=0b10111111;//s
115、top int0</p><p><b> SEI(); </b></p><p><b> } </b></p><p> void display(void)</p><p><b> {</b></p><p> unsigned cha
116、r i;</p><p> for(i=0;i<3;i++)</p><p><b> {</b></p><p> PORTA=led_7[dis_buff[i]];</p><p> PORTC=position[i];</p><p> delay_ms(1); </p
117、><p> PORTC=0x00; </p><p><b> }</b></p><p><b> }</b></p><p><b> 初始化部分函數(shù):</b></p><p> void port_init(void)</p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于avr單片機(jī)倒車?yán)走_(dá)設(shè)計(jì)【文獻(xiàn)綜述】
- 基于avr單片機(jī)倒車?yán)走_(dá)設(shè)計(jì)【開(kāi)題報(bào)告】
- 基于avr單片機(jī)的倒車?yán)走_(dá)設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 基于單片機(jī)的倒車?yán)走_(dá)設(shè)計(jì)開(kāi)題報(bào)告
- 基于單片機(jī)的倒車?yán)走_(dá)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的倒車?yán)走_(dá)系統(tǒng)設(shè)計(jì)【開(kāi)題報(bào)告】
- 畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的倒車?yán)走_(dá)的設(shè)計(jì)
- 基于單片機(jī)畢業(yè)設(shè)計(jì)---基于單片機(jī)的汽車倒車?yán)走_(dá)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于msp430單片機(jī)的倒車?yán)走_(dá)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的倒車?yán)走_(dá)設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的智能遙控窗簾設(shè)計(jì)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 基于單片機(jī)的公交報(bào)站系統(tǒng)設(shè)計(jì)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 基于單片機(jī)的電子時(shí)鐘設(shè)計(jì)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 基于單片機(jī)溫度測(cè)量系統(tǒng)的設(shè)計(jì)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 基于單片機(jī)的倒車?yán)走_(dá)設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)倒車?yán)走_(dá)系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
- 基于單片機(jī)的自動(dòng)灌溉系統(tǒng)設(shè)計(jì)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 基于單片機(jī)的無(wú)線點(diǎn)菜系統(tǒng)【開(kāi)題報(bào)告+文獻(xiàn)綜述+畢業(yè)設(shè)計(jì)】
- 基于單片機(jī)得倒車?yán)走_(dá)設(shè)計(jì)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)論文 基于單片機(jī)的汽車倒車?yán)走_(dá)的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論