編程模式表
① 程序員在設計和編寫程序時,經常採用哪兩種編程模式
你好
程序員編程時有14種模式
1.滑動窗口
2.二指針或迭代器
3.快速和慢速指針或迭代器
4.合並區間
5.循環排序
6.原地兄者缺反轉鏈表
7.樹的寬度優先搜索(Tree BFS)
8.樹的嫌源深度優先搜索(Tree DFS)
9.Two Heaps
10.羨辯子集
11.經過修改的二叉搜索
12. 前 K 個元素
13. K 路合並
14.拓撲排序
經常用哪個哪些,看個人習慣了
② 編程模式是什麼意思
編程模式是現實事物的一種抽象表示。
那麼抽象的最大作用在我看來就在於抽象事物的重用性,一個事物越具體,那麼他的可重用性就越低,因此,我們再打造可重用性代碼,類,類庫時,其實在做的本質工作就在於提高代碼的抽象性。而再往大了說開來,程序員做的工作,就是把一系列過程抽象開來,反映成一個通用過程,然後用代碼表示出來。
傳統的命令式語言比如:FortranC和Pascal都是面向過程的,它們主要的程序設計單元是過程。它們採用一種自頂向下的編程風格。現代的命令式語言比如:C++Java和C#則是面向對象的,它們將對象作為程序的基本單元,將程序和數據封裝其中,通過對象的之間的協作來解決問題。面向過程和面向對象是命令式語言主要的肢滾兩種風格。
命令式編程語言泛指所有把修改變數的值當作最基本計算方式的語言,函數式編程語言指把一個程序的輸出定義為其輸入的數學函數的語言,純函數式編程沒有內部狀態的概念,也沒有副作用。
函數式編程是一種編程模型,他將計算機運算看做是數學中函數的計算,並且避免了狀肢蠢態以及變數的概念。
特性:並發&變數的不變性
在函數式編程中,我們要做的是把函數傳來傳去,而這個,說成術語,我們把他叫做高階函數。
在函數式編程中,函數是基本單位,是第一型,他幾乎被用作一切,包括最簡單的計算,甚至連變數都被計算所取代。在函數式編程中,變數只歷飢陪是一個名稱,而不是一個存儲單元,這是函數式編程與傳統的命令式編程最典型的不同之處。
一切問題,歸根結底到最後都是數學問題。編程從來都不是難事兒,無非是細心,加上一些函數類庫的熟悉程度,加上經驗的堆積,而真正困難的,是如何把一個實際問題,轉換成一個數學模型。
在函數式編程中,我們則是在將函數方法抽象,函數一樣是可重用,可置換的抽象單位。那麼我們說函數式編程的抽象本質則是將函數也作為一個抽象單位,而反映成代碼形式,則是高階函數。
遞歸與循環在編程模型和思維模型上最大的區別則在於:
循環是在描述我們該如何地去解決問題。
遞歸是在描述這個問題的定義。
③ 科陸智能電表怎樣進入編程模式
科陸智能電表進入編程模式,具體操作步驟如下:
1、按下電表上的「P」鍵,進入編程模式。
2、數肆友在顯示屏上出現「0000」時,輸入4位管理員密碼,並按下「#」鍵確認。如果密碼正確,顯示屏上將出現「PASS」字樣,表示進入管理員模雹晌式。
3、按下「P」鍵,進入編程設置界面。
4、按下「+」或「-」鍵,選薯槐擇要設置的項目,如電價、倍率等,然後按下「#」鍵進行確認。
5、按下「+」或「-」鍵,設置選定項目的參數值,如電價的數值、倍率的倍數等,然後按下「#」鍵進行確認。
6、編程完成後,按下「P」鍵退出編程模式。
④ WIMP編程模式是什麼
一、Singleton,單例模式:保證一個類只有一個實例,並提供一個訪問它的全局訪問點
二、Abstract Factory,抽象工廠:提供一個創建一系列相關或相互依賴對象的介面,而無須指定它們的具體類。
三、Factory Method,工廠方法:定義一個用於創建對象的介面,讓子類決定實例化哪一個類,Factory Method使一個類的實例化延遲到了子類。
四、Builder,建造模式:將一個復雜對象的構建與他的表示相分離,使得同樣的構建過程可以創建不同的表示。
五、Prototype,原型模式:用原型實例指定創建對象的種類,並且通過拷貝這些原型來創建新的對象。
行為型有:
六、Iterator,迭代器模式:提供一個方法順序訪問一個聚合對象的各個元素,而又不需要暴露該對象的內部表示。
七、Observer,觀察者模式:定義對象間一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知自動更新。
八、Template Method,模板方法:定義一個操作中的演算法的骨架,而將一些步驟延遲到子類中,TemplateMethod使得子類可以不改變一個演算法的結構即可以重定義該演算法得某些特定步驟。
九、Command,命令模式:將一個請求封裝為一個對象,從而使你可以用不同的請求對客戶進行參數化,對請求排隊和記錄請求日誌,以及支持可撤銷的操作。
十、State,狀態模式:允許對象在其內部狀態改變時改變他的行為。對象看起來似乎改變了他的類。
十一、Strategy,策略模式:定義一系列的演算法,把他們一個個封裝起來,並使他們可以互相替換,本模式使得演算法可以獨立於使用它們的客戶。
十二、China of Responsibility,職責鏈模式:使多個對象都有機會處理請求,從而避免請求的送發者和接收者之間的耦合關系
十三、Mediator,中介者模式:用一個中介對象封裝一些列的對象交互。
十四、Visitor,訪問者模式:表示一個作用於某對象結構中的各元素的操作,它使你可以在不改變各元素類的前提下定義作用於這個元素的新操作。
十五、Interpreter,解釋器模式:給定一個語言,定義他的文法的一個表示,並定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。
十六、Memento,備忘錄模式:在不破壞對象的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。
結構型有:
十七、Composite,組合模式:將對象組合成樹形結構以表示部分整體的關系,Composite使得用戶對單個對象和組合對象的使用具有一致性。
十八、Facade,外觀模式:為子系統中的一組介面提供一致的界面,fa?ade提供了一高層介面,這個介面使得子系統更容易使用。
十九、Proxy,代理模式:為其他對象提供一種代理以控制對這個對象的訪問
二十、Adapter,適配器模式:將一類的介面轉換成客戶希望的另外一個介面,Adapter模式使得原本由於介面不兼容而不能一起工作那些類可以一起工作。
二十一、Decrator,裝飾模式:動態地給一個對象增加一些額外的職責,就增加的功能來說,Decorator模式相比生成子類更加靈活。
二十二、Bridge,橋模式:將抽象部分與它的實現部分相分離,使他們可以獨立的變化。
二十三、Flyweight,享元模式
⑤ ADO是什麼麻煩告訴我
一種程序對象,用於表示用戶資料庫中的數據結構和所包含的數據。
在Microsoft Visual Basic編輯器中,可以使用ADO對象以及ADO的附加組件(稱為Microsoft ADO Extensions for DLL and Security(ADOX))來創建或修改表和查詢、檢驗資料庫、或者訪問外部數據源。還可在代碼中使用ADO來操作資料庫中的數據。
ADO(ActiveX Data Objects,ActiveX數據對象)是Microsoft提出的應用程序介面(API)用以實現訪問關系或非關系資料庫中的數據。
例如,如果希望編寫應用程序從DB2或Oracle資料庫中向網頁提供數據,可以將ADO程序包括在作為活動伺服器頁(ASP)的HTML文件中。當用戶從網站請求網頁時,返回的網頁也包括了數據中的相應數據,這些是由於使用了ADO代碼的結果。
(5)編程模式表擴展閱讀:
ADO介面簡介
1、_ConnectionPtr介面
返回一個記錄集或一個空指針。通常使用它來創建一個數據連接或執行一條不返回任何結果的SQL語句,如一個存儲過程。
2、_CommandPtr介面
返回一個記錄集。它提供了一種簡單的方法來執行返回記錄集的存儲過程和SQL語句。
3、_RecordsetPtr介面
是一個記錄集對象。與以上兩種對象相比,它對記錄集提供了更多的控制功能,如記錄鎖定,游標控制等。
⑥ 編程模式是什麼意思啊
模式這個概念被廣泛使用。一位仁兄的文章中說,國外已經把模式這個概念推向日常生活中的許多領域。具體情況怎麼樣,我沒有機會去考證,但是從西方人崇尚務實的精神推測,我想出現這種勢頭很合理。
我理解,模式是一種歸納整理已有經驗的方式。比如設計模式,就系統整理了一些通用幽雅的設計經驗。
作為程序員,」掌握某種技術」和」能合理地使用該技術解決實際問題」並不是一回事。前者偏向理論,後者側重實踐。前者得到人們的一致重視,而後者一直被忽略。我參與的項目中,經常出現這種情況,新加入項目組的程序員得不到這方面的培訓,需要自己花費很大的精力來尋找使用特定技術實現特定應用的方式。這樣降低了開發效率,使程序代碼晦澀難懂,可讀性差,而且代碼隱藏BUG的幾率大,影響了系統的穩定性和質量。而項目中經驗豐富的程序員和編程高手們,掌握了大量的經驗,但是這些經驗都是個人技巧,很少拿出來交流。這種狀況使高手們的編程方式各不相同,所以他們編寫的代碼可讀性也不高。而且由於缺少系統的交流和整理,高手們的編程模式也難免存在一些不盡合理的地方,甚至可能潛伏了一些影響系統穩定性的錯誤步驟。我覺得有必要把這個問題提出來和大家討論,論題就叫編程模式,希望能引起大家的關注。
把編程模式定義為:合理地使用特定技術解決實際問題的經驗。編程模式這個概念應該被明確地提出來,在程序員間系統地交流、討論、整理。每個項目組在編碼之前,都可以歸納出一組針對自己開發環境的編程模式,要求程序員參考這些模式進行編碼,質量檢查人員以這些模式為標准進行質量檢查。當然編程模式需要不斷地補充和完善,這個不斷改進的過程需要項目組所有人員的共同智慧。關注這個問題,我們的軟體代碼的質量和可讀性將大大提高。我們就可以在軟體開發水平上邁出踏踏實實的一步。
現在常被我們掛在嘴邊的一個話題就是「印度軟體業」,有人說它好,有人罵他爛,不過印度軟體既然被國際社會承認,我想它在質量上應該還過得去。靜下心來比較一下,印度和我們的主要區別之一在於軟體業的基礎——程序員。讓一群印度程序員用同一種編程語言解決同一個問題,會發現他們的程序幾乎一模一樣,變數命名、程序結構、處理思路等就象是抄襲下來的,可以說他們在使用相同的編程模式。站在軟體工程的角度看,所有的程序員都以相同的編程模式作為模板編碼,是保證代碼質量的一條途徑,畢竟所有的軟體系統都是建立再代碼之上的,基礎不牢,上層建築再花哨也沒有用。軟體工程是一個側重應用和實踐的領域,國外的工程方法更多地來自實踐經驗,所以可操作性很強。但是傳到國內以後就變味了,許多人更願意把它抽象成純理論去研究,最後出來的理論,只能看,不好使。
這或許還涉及到一個心態的問題,業內的氣氛比較浮,有點急功近利。關注軟體開發的基礎問題,相信可以提高個人和整體的水平。
⑦ 電子商務應用軟體的編程模式都有哪幾種分別有什麼特點
(1)傳統的Web的開發模式:這種方式以WWW伺服器為核心進行開發,編程的主要工作主要集中在Web上的各種靜態、動態網頁的製作方面。
基於Web的編程模式 的特點:(1)比較簡單,所以將編程工作分成兩部分:靜態網頁製作、動態網頁製作。
(2)靜態網頁製作相對較為簡單,可以例如各種網頁製作工具(例如MS FrontPage)完成。
(3)動態網頁製作的重點集中在各類公共網關介面程序(CGI)、腳本程序的編寫方面。
(4)應用軟體如果和資料庫、其他外部應用進行集成,主要通過動態網頁的CGI程序、腳本程序的資料庫介面驅動程序實現。
(2)基於組件的開發編程模式:這一方式主要利用了軟體的可重用性思想,
其特徵是基於面向的程序設計方法,以應用伺服器為核心進行開發,開發工作的重心集中在各類組件程序編碼和組裝方面。由於軟體可重用理論發展很快,盡管思路相似,但是這種模式的編程工具和手段卻不盡相同,比較有代表性的包括:
J2EE的編程模式. 基於Microsoft Windows DCOM的開發編程模式;
⑧ IDLE的編程模式一般分為什麼
分兩種情況:如果是電腦上的話那就是在用戶每次活動(例如,按鍵盤、移動滑鼠等)後重置定時器,n秒後觸發應用對象的Idle事件,基本上不論想管還是不想管都管不著的狀態。要是手機的話那就是手機處於空閑狀態,可以理解為待機界面。
一、Singleton,單例模式:保證一個類只有一個實例,並提供一個訪問它的全局訪問點。
二、Abstract Factory,抽象工廠:提供一個創建一系列相關或相互依賴對象的介面,而無須指定它們的具體類。
三、Factory Method,工廠方法:定義一個用於創建對象的介面,讓子類決定實例化哪一個類,Factory Method使一個類的實例化延遲到了子類。
含義
當在if關鍵字所在行的冒號後面按[Enter]鍵之後,IDLE自動進行縮進。一般情況下IDLE將代碼縮進一級,即4個空格。如果想改變這個默認的縮進量,可以選擇 Format→NewIndent Width命令進行修改。需要注意的是盡管自動縮進功能非常方便,但是不能完全依賴它,因為有時自動縮進未必能完全滿足要求,所以還需要仔細檢查一下。
⑨ 數控車床編程G代碼格式以及詳細說明
FANUCncG代碼,通用M代碼:
代碼名稱-功能描述
g₀₀——快速定位
G01——線性插值
G02——順時針方向圓弧插補
G03——逆時針方向圓弧插補
G04——超時
G05——圓弧插補過中點
G07——Z樣條插值
G08——飼料加速度
G09——飼料減速
20國集團(G20)——子程序調用
G22—半徑大小編程模式
G220——系統操作界面
G23—直徑編程模式
G230——系統操作界面
G24——子程序結束
G25,跳處理
G26——循環處理
G30,乘數取消
G31——乘數定義
G32——等螺距螺紋切割,英寸
等螺距螺紋切削,公制
G53,G500-設置工件坐標系取消
G54—設置工件坐標系1
G55——設置工件坐標系2
G56——設置工件坐標系3
G57——設置工件坐標系4
G58—設置工件坐標系5
G59——設置工件坐標系6
G60——精確路徑模式
G64——連續路徑模式
G70——一英寸一英寸
G71——度量毫米
G74——回到參考點(機床零點)
G75——返回編程坐標0
G76——返回編程坐標的起點
G81——外圓固定循環
G331—螺紋固定循環
G90-絕對規模
G91——相對大小
G92——預制坐標
G94——進料量,每分鍾進料量
G95—每次進給的進給率
(9)編程模式表擴展閱讀:
注意事項:
1.每次進料深度為R÷p,且為圓形,末次進料不打磨螺紋表面
2.根據內部線程的正方向和負方向確定I值的標題。
3.螺紋加工周期的起始位置是將刀尖指向螺紋的外圓。
提示:
一、g₀₀和G01
G00軌跡有兩種:直線和折線。此指令僅用於點定位,不用於切割
G01以指定的進給速度沿直線移動到指令指定的目標點。一般用於機械加工
二、G02,G03
G02:順時針圓弧插補G03:逆時針圓弧插補
三、G04(延遲或暫停指令)
一般用於正反轉、加工盲孔、台階孔、車削坡口
四、G17、G18、G19平面選擇指令,指定平面加工,一般用於銑床和加工中心
G17:x-y平面,省略或平行於x-y平面
G18:X-Z平面或平行平面,只有X-Z平面在數控車床上
G19:y-z平面或與其平行的平面
五、G27,G28,G29參考點說明
G27:返回基準點,檢查並確認基準點位置
G28:自動返回參考點(通過中間點)
G29:從參考點返回,並與G28一起使用
⑩ 求幫忙翻譯 :the port 1 output buffers can sink 20 mA
埠1 輸出緩沖器可以吸收20mA的電流
附餘下全文:
1.4 引腳說明
VCC 電源電壓
GND 接地
埠 1
埠 1是一個8位雙向 I/O 埠引腳P1.2 至P1.7,提供P1.1和P1.0內部上帆碼拉需要P1和P1.1外部上拉也可作為正輸入(AIN0)和服輸入(AIN1),分別對片內精密模擬比較器的埠1 輸出緩沖器可以吸收20mA的電流,並且可以直接驅動LED時1秒寫入埠1引腳,他們可以作為輸入引腳P1.2時至P1.7作為輸入,並從外部拉低,將輸出電流(IIL)由於內部上拉在埠1也接收片內flash存儲。
埠 3
埠 3 引腳P3.0至P3.5,P3.7有內部上拉雙向I/O引腳是作為對片上比較器輸出輸入硬連接,而不是作為一個通用訪問構成I/O引腳的輸出緩沖器可吸收20mA,當1秒寫入埠3拉高內部上拉,可作為輸入,埠3被外部拉低的引腳為低電平輸入的引腳將輸出電流(IIL),由於上拉在埠3也接收片陸稿內flash存儲。
埠引腳的第二功能:
P3.0 RXD(串列輸入口)
P3.1 TXD(串列輸出埠)
P3.2 INT0(外部中斷0)
P3.3 INT1(外部中斷1)
P3.4 T0(定時器0外部輸入)
P3.5 T1(定時器1外部輸入)
埠3也可以用下面列出的AT89C2051各種特殊功能。
1.5 Flash 進行編程
該AT89C2051是隨片上PEROM代碼存儲陣列的2千位元組的擦除狀態(即,內容=FFH),並准備進行編程代碼存儲器陣列的編程以一次一個位元組數組一旦被編程,以重新編程的任何非空白位元組,整個存儲器陣列需要電擦除內部地址計數器。
內部地址計數器的AT89C2051包含的內部PEROM地址,計數器,它總是重置為000H的RST的上升沿和先進應用到管腳XTAL1一個正脈沖。
編程演算法:編程AT89C2051的,按下列順序推薦。
1、上電順序:
接通電源VCC和GND引腳之間設置RST和XTAL1和GND
與所有其他引腳浮動,等待大於10毫秒
2、設置「H」集態悉哪引腳RST引腳P3.2「H」
3、申請適當結合「H」或「L」邏輯管腳的P3.3,P3.4,P3.5,P3.7分別選擇在PEROM編程模式表所示的編程操作之一。
進行編程和驗證陣列:
4、適用於位置000H的P1.0到P1.7.5.Raise RST至12V,使編程代碼位元組的數據。
5、一次脈沖P3.2編程在PEROM陣列位元組或鎖定位。位元組寫周期是自定時的,通常需要1.2ms。
6、為了驗證編程的數據,從12V到邏輯「H」級和一套引腳P3.3的P3.7分別到適當的水平較低的RST。在P1口引腳輸出數據可以讀取。
7、編寫一個位元組的下一個地址位置,脈沖XTAL1引腳一次,以推進內部地址計數器。申請新的數據到P1口管腳。
8、重復步驟5到8,不斷變化的數據,並推動整個2位元組數組的地址計數器或對象文件的末尾,直到達到。
9、斷電順序:集XTAL1和「L」設置RST的「L」
漂浮其他所有的I / O引腳切斷VCC
2.1壓電式超聲波發生器原理
壓電式超聲波發生器實際上是利用壓電晶體的諧振來工作的。超聲波發生器內部結構,它有兩個壓電晶片和一個共振板。當它的兩極外加脈沖信號,其頻率等於壓電晶片的固有振盪頻率時,壓電晶片將會發生共振,並帶動共振板振動,便產生超聲波。反之,如果兩電極間未外加電壓,當共振板接收到超聲波時,將壓迫壓電晶片作振動,將機械能轉化為電信號,這時它就成為超聲波接收器了。
測量脈沖到達時間的傳統方法是以擁有固定參數的接受信號開端為基礎的。這個界限恰恰選於噪音水平之上,然而脈沖到達時間被定義為脈沖信號剛好超過界限的第一時刻。一個物體的脈沖強度很大程度上取決於這個物體的自然屬性尺寸還有它與感測器的距離。進一步說,從脈沖起始點到剛好超過界限之間的時間段隨著脈沖的強度而改變。結果,一種錯誤便出現了——兩個擁有不同強度的脈沖在不同時間超過界限卻在同一時間到達。強度較強的脈沖會比強度較弱的脈沖超過界限的時間早點兒,因此我們會認為強度較強的脈沖屬於較近的物體。
2.2超聲波測距原理
超聲波發射器向某一方向發射超聲波,在發射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。超聲波在空氣中的傳播速度為340m/s,根據計時器記錄的時間t,就可以計算出發射點距障礙物的距離(s),即:s=340t/2
3、超聲波測距系統的電路設計
系統的特點是利用單片機控制超聲波的發射和對超聲波自發射至接收往返時間的計時,單片機選用C51,經濟易用,且片內有4k的ROM,便於編程。
3.1 40 kHz 脈沖的產生與超聲波發射
測距系統中的超聲波感測器採用UCM40的壓電陶瓷感測器,它的工作電壓是40 kHz的脈沖信號,這由單片機執行下面程序來產生。
puzel: mov 14h, # 12h; 超聲波發射持續200ms
Here: cpl p1.0; 輸出40kHz方波
nop;
nop;
nop;
djnz 14h, here;
ret
前方測距電路的輸入端接單片機P1.0埠,單片機執行上面的程序後,在P1.0埠輸出一個40kHz的脈沖信號,經過三極體T放大,驅動超聲波發射頭UCM40T,發出40kHz的脈沖超聲波,且持續發射200ms。右側和左側測距電路的輸入端分別接P1.1和P1.2埠,工作原理與前方測距電路相同。
3.2超聲波的接收與處理
接收頭採用與發射頭配對的UCM40R,將超聲波調制脈沖變為交變電壓信號,經運算放大器IC1A和IC1B兩極放大後加至IC2。IC2是帶有鎖定環的音頻解碼集成塊LM567,內部的壓控振盪器的中心頻率f0=1/1.1R8C3,電容C4決定其鎖定帶寬。調節R8在發射的載頻上,則LM567輸入信號大於25mV,輸出端8教由高電平躍變為低電平,作為中斷請求信號,送至單片機處理。
前方測距電路的輸出端接單片機INT0埠,中斷優先順序最高,左、右測距電路的輸出通過與門IC3A的輸出接單片機INT1埠,同時單片機P1.3和P1.4接到IC3A的輸入端,中斷源的識別由程序查詢來處理,中斷優先順序為先右後左。部分源程序如下:
receivel : push psw
push acc
clr ex1; 關外部中斷1
jnbp1.1, right; P1.1 引腳為0,轉至右測距電路中斷服務程序
jnb p1.2, left; P1.2 引腳為0,轉至左測距電路中斷服務程序
return: SETB EX1; 開外部中斷1
pop acc
pop psw
reti
right: …; 右測距電路中斷服務程序入口
Ajmp Return
left: …; 左測距電路中斷服務程序入口
Ajmp Return
3.3計算超聲波傳播時間
在啟動發射電路的同時啟動單片機內部結構的定時器T0,利用定時器的計數功能記錄超聲波發射的時間和收到反射波的時間。當收到超聲波反射波時,接收電路輸出端產生一個負跳變,在INT0或INT1端產生一個中斷請求信號,單片機響應外部中斷請求,執行外部中斷服務子程序,讀取時間差,計算距離。其部分源程序如下:
RECEIVE0:PUSH PSW
PUSH ACC
CLR EX0; related external interrupt 0
MOV R7, TH0; read the time value
MOV R6, TL0
CLR C
MOV A, R6
SUBB A, #0BBH; calculate the time difference
MOV 31H, A; storage results
MOV A, R7
SUBB A, # 3CH
MOV 30H, A
SETB EX0; open external interrupt 0\
POP ACC
POP PSW
RETI
對於一個平坦的目標,距離測量包括兩個階段:粗糙的測量和精細測量。
第一步: 脈沖的傳送產生一種簡單的超聲波。
第二部: 根據公式改變回波放大器的獲得量直到回波被檢測到。
第三部: 檢測兩種回波的振幅與過零時間。
第四部: 設置回撥放大器的所得來規定輸出,假定是3伏。通過脈沖的周期設置下一個脈沖。根據第二部的數據設定時間窗。
第五步: 發射兩串脈沖產生干擾波。測量過零時間與回波振幅。如果逆向發生在回波中,決定要不要通過在低氣壓插入振幅。
第六步: 通過公式計算距離y。
4、超聲波測距系統的軟體設計
軟體分為兩部分,主程序和中斷服務程序。主程序完成初始化工作、各路超聲波發射和接收順序的控制。定時中斷服務子程序完成三方向超聲波的輪流發射,外部中斷服務子程序主要完成時間值的讀取、距離計算、結果的輸出等工作。
5、結論
對所要求測量范圍30cm—200cm內的平面物體做了多次測量發現,其最大誤差為0.5cm,且重復性好。可見基於單片機設計的超聲波測距系統具有硬體結構簡單、工作可靠、測量誤差小等特點。因此,它不僅可用於移動機器人,還可用在其他檢測系統中。
6、倒車雷達
6.1倒車雷達介紹
倒車雷達全稱叫「倒車防撞雷達」,也叫「泊車輔助裝置」,是汽車泊車或者倒車時的安全輔助裝置,由超聲波感測器(俗稱探頭)、控制器和顯示器(或蜂鳴器)等部分組成。能以聲音或者更為直觀的顯示告知駕駛員周圍障礙物的情況,解除了駕駛員泊車、倒車和起動車輛時前後左右探視所引起的困擾,並幫助駕駛員掃除了視野死角和視線模糊的缺陷,提高駕駛的安全性。
6.2 倒車雷達探測原理
倒車雷達是根據蝙蝠在黑夜裡高速飛行而不會與任何障礙物相撞的原理設計開發的。探頭裝在後保險杠上,根據不同價格和品牌,探頭有二、三、四、六、八隻不等,分別管前後左右。探頭以45度角輻射,上下左右搜尋目標。它最大的好處是能探索到那些低於保險杠而司機從後窗難以看見的障礙物,並報警,如花壇、蹲在車後玩耍的小孩等。
倒車雷達的顯示器裝在後視鏡上,它不停地提醒司機車距後面物體還有多少距離,到危險距離時,蜂鳴器就開始鳴叫,讓司機停車。檔位桿掛入倒擋時,倒車雷達自動開始工作,測距范圍達0.3到2.0米左右,故在停車時,對司機很實用。倒車雷達就相當於超聲波探頭,從整體上來說超聲波探頭可以分為兩大類:一是用電氣方式產生超聲波,二是用機械方式產生超聲波,鑒於目前較為常用的是壓電式超聲波發生器,它有兩個電晶片和一個共振板,當兩極外加脈沖信號,它的頻率等於壓電晶片的固有震盪頻率時,壓力晶片將會發生共振,並帶動共振板振動,將機械的能轉為電信號的這一過程,這就成了超聲波探頭的工作原理。為了更好地研究超聲波和利用起來,人們已經設計和製造出很多超聲波發聲器,超聲波探頭加以運用在使用汽車倒車雷達上。這種原理用在一種非接觸檢測技術上,用於測距來說其計算簡單,方便迅速,易於做到實時控制,距離准確度達到工業實用的要求。倒車雷達用於測距上,在某一時刻發出超聲波信號,在遇到被測物體後的射回信號波,被倒車雷達接收到,得用在超聲波信號從發射到接收回波信號這一個時間而計算出在介質中的傳播速度,這就可以計算出探頭與被探測到的物體的距離。
6.3 倒車雷達的功能和性能
倒車雷達可分為LCD距離顯示、聲音提示報警、方位指示、語音提示、探頭自動檢測等,功能較齊全的倒車雷達應該有距離顯示、聲音提示報警、方位指示等功能。一台性能良好的倒車雷達它的主要性能主要包括:(1)靈敏度,在有障礙物的時候反應是否夠快。(2)是否存在盲區。(3)探測距離范圍。
6.4各部分作用
倒車雷達各部分主要有以下幾個作用:(1)超聲波感測器:用於發射以及接收超聲波信號,通過超聲波感測器可以測量距離。(2)主機:發射正弦波脈沖給超聲波感測器,並處理其接收到的信號,換算出距離值後,將數據與顯示器通訊。(3)顯示器或蜂鳴器:接收主機距離數據,並根據距離遠近顯示距離值和提供不同級別的距離報警音。
6.5使用注意事項
1、安裝高度:一般離地:車前的安裝45~55: 車後的安裝50~65cm。
2、經常清洗探頭,防止積土。
3、不要用堅硬的東西將探頭表面遮住,會產生誤報或測距不準,如泥漿把探頭表面覆蓋。
4、冬天避免結冰。
5、6/8探頭倒車雷達前後探頭不可隨意對調,可能會引起常鳴誤報問題。
6、注意探頭安裝朝向,要按UP朝上安裝。
7、探頭不建議安裝在金屬板材上,因為金屬板材振動時會引起探頭共振,產生誤報。