目錄
摘 要
Abstract
1 緒論
1.1 前言
1.2 背景與意義
1.2.1 國內(nèi)外研究的概況
1.2.2 研究主要成果
1.2.3 發(fā)展趨勢
1.3 設(shè)計任務(wù)
2 基于單片機構(gòu)成的產(chǎn)品自動計數(shù)器的設(shè)計
2.1 方案論證與選擇
2.2 系統(tǒng)總體框圖和原理
2.3 主控芯片簡介
2.3.1 單片機的發(fā)展及趨勢
2.3.2 51系列單片機的主要特點
3 紅外線計數(shù)器硬件設(shè)計
3.1 單片機最小系統(tǒng)的設(shè)計
3.2 紅外線檢測電路
3.2.1 紅外線發(fā)射電路
3.3 計數(shù)顯示部分
3.4 蜂鳴器報警電路
4 紅外線計數(shù)器軟件設(shè)計
4.1 主程序設(shè)計
4.2 子程序設(shè)計
4.2.1 LCD顯示程序設(shè)計
4.2.2 蜂鳴器報警程序設(shè)計
5 系統(tǒng)調(diào)試
5.1 系統(tǒng)的硬件調(diào)試
5.2 軟件調(diào)試
6 結(jié)論
參考文獻
附錄
1 緒論
1.1 前言在當(dāng)今社會飛速發(fā)展的格局下,廠家基本采用流水線技術(shù)進行產(chǎn)品生產(chǎn)作業(yè),而怎樣對其線上的產(chǎn)品進行實時的、有效率的、精確的自動計數(shù)成為廣大生產(chǎn)廠家十分關(guān)注的問題。傳統(tǒng)的機械式或電子式計數(shù)器(主要是用數(shù)字電路集成組件組成)電路比較復(fù)雜,元器件數(shù)量較多,故障率較高,維修比較困難,而且設(shè)置預(yù)定數(shù)值不太方便,功能不易更改且功能過于單一,適用范圍較窄。而基于單片機為核心控制的計數(shù)器有著能夠?qū)崟r,精確,可靠,穩(wěn)定等計數(shù)優(yōu)點已成為廣大廠家的首選自動計數(shù)的裝置。
1.2 背景與意義電子計數(shù)器到目前為止已有30 多年的發(fā)展史。早期,設(shè)計師們追求的目標主要是擴展計數(shù)范圍,再加上提高計數(shù)精度、穩(wěn)定度等,這些也是人們衡量電子計數(shù)器的技術(shù)水平,決定電子計數(shù)器價格高低的主要依據(jù).目前這些基本技術(shù)日臻完善,成熟.應(yīng)用現(xiàn)代技術(shù)可以輕松地將電子計數(shù)器的計數(shù)上限擴展到無限大。當(dāng)今,單片微型計算機技術(shù)迅速發(fā)展,基于單片機技術(shù)開發(fā)的計數(shù)設(shè)備和產(chǎn)品廣泛應(yīng)用到各個領(lǐng)域,單片機技術(shù)產(chǎn)品和設(shè)備促進了生產(chǎn)技術(shù)水平的提高.企業(yè)迫切需要大量熟練掌握單片機技術(shù)并能開發(fā)、應(yīng)用和維護管理這些智能化產(chǎn)品的高級工程技術(shù)人才.單片機以體積小、功能強、可靠性高、性能價格比高等特點,已成為實現(xiàn)工業(yè)生產(chǎn)技術(shù)進步和開發(fā)機電一體化和智能化測控產(chǎn)品的重要手段。已經(jīng)實現(xiàn)或者部分實現(xiàn),但要真正完美的實現(xiàn)這些目標,對于設(shè)計者來說,還有許多工作要做,而不是表面看來似乎發(fā)展到頭了.電子計數(shù)器是一種多功能的電子測量儀器。它利用電子學(xué)的方法測出一定時間內(nèi)輸入的脈沖數(shù)目,并將結(jié)果以數(shù)字形式顯示出來。
1.2.1 國內(nèi)外研究的概況計數(shù)器是工業(yè)生產(chǎn)流水線上重要的組成部分,其實時的、有效率的、精確的自動計數(shù)在很大程度上解決了工業(yè)生產(chǎn)的問題決定了生產(chǎn)效率成為廣大廠家的首選自動計數(shù)的裝置。但計數(shù)器種類繁多,如何選擇一個方便有多功能的計數(shù)器成了廣大廠家非常關(guān)心的核心老問題,如何讓計數(shù)器超越簡單的技術(shù)功能,成為生產(chǎn)流水線上的一把利器。而基于單片機的紅外線計數(shù)器能夠滿足廣大廠家的要求,它擁有實時,精確,可靠,穩(wěn)定等技術(shù)有點而且體積小、功能強、可靠性高、性能價格比高等特點。
利用單片機做紅外線電子計數(shù)器能夠使產(chǎn)品的穩(wěn)定性、實時性、功能和性價比得到大幅的提高。
早期的單片機都是8位或4位的。其中最成功的是INTEL8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發(fā)展出了MCS51系列單片機系統(tǒng)單片機比專用處理器更適合應(yīng)用于嵌入式系統(tǒng),因此它得到了最多的應(yīng)用。事實上單片機是世界上數(shù)量最多的計算機。現(xiàn)代人類生活中所用的幾乎每件電子和機械產(chǎn)品中都會集成有單片機。
如今的產(chǎn)品自動計數(shù)器大多采用非接觸式的計數(shù)觸發(fā)方式。早已開發(fā)出了多種型號的專用檢測芯片.而利AT89C2051 為控制單元、輔以多種外圍硬件搭配而成的計數(shù)裝置已成為現(xiàn)在自動計數(shù)應(yīng)用領(lǐng)域的潮流。而如何提高自動計數(shù)器的實時性,抗干擾能力、穩(wěn)定性是現(xiàn)在國內(nèi)外自動計數(shù)生產(chǎn)廠家研究的主要課題.產(chǎn)品自動計數(shù)器主要用于工廠的流水線上,往往是處于高溫,高噪聲等極度惡劣的環(huán)境當(dāng)中.而MCS-51 系列單片構(gòu)成的產(chǎn)品自動計數(shù)器在這種環(huán)境中工作時往往會出現(xiàn)誤動作(單片機程序跑飛)或死機(程序進入死循環(huán)).這也是基于單片機構(gòu)成的產(chǎn)品自動計數(shù)器存在的致命問題
1.2.2 研究主要成果通過查閱相關(guān)德文獻期刊書籍,對對紅外線德一些研究成果如下:
①在作者王送德,朱小龍的《對射式紅外線計數(shù)器的設(shè)計》文章中把紅外線發(fā)射、接收模塊作計數(shù)傳感器代替了傳統(tǒng)的光電傳感器、紅外線傳感器。經(jīng)作者實際應(yīng)用驗證,該方法在數(shù)據(jù)采集這方面它的抗干擾能力強,且在該設(shè)計中還使用了加密、解碼技術(shù),故工作穩(wěn)定,計數(shù)準確,但是該實驗是采用對射式的,所以發(fā)射管和接受管的方向一定要對正,這在現(xiàn)實中可能會造成不必要的麻煩。
②在作者謝洪的《用單片機控制紅外編碼探測障礙物》文章中采用由單片機控制發(fā)射一定意義的紅外編碼脈沖串,同時,單片機接收該脈沖串。如果接受到的信號和發(fā)射的信號基本一致,才判斷為有障礙物的存在。經(jīng)作者實際應(yīng)用驗證,這種方法能夠較強的降低虛警率,具有較強的抗干擾性。作者在該文章中提到3種編碼的方案:(1)發(fā)送較短的編碼串(10~16 位),判斷時間約6~10 ms。在接收過程中,不能有一位的誤碼,否則認為是干擾,要等待下一次的障礙檢測。這種方案在檢測過程中,不能存在干擾。(2)發(fā)送大于16 位的編碼串(16~32 位),判斷時問約10~20 ms。對接收“0”和“1”的編碼誤碼統(tǒng)計,其中可以根據(jù)應(yīng)用場合的需要,存在1~2 位“0”的誤碼和1~3 位“1”的誤碼,這樣能有效提高抗干擾能力。(3)發(fā)送大于32 位編碼串,判斷時間>20 ms。根據(jù)實際情況來分析接收的編碼,以判斷障礙的存在。且這三種方案都在該實驗中得到驗證。
③在作者王松德,梁會琴,王丹的《紅外線計數(shù)器的設(shè)計與制作》文章中采用一體化紅外線傳感器TX05D,由于TX05D 使用了調(diào)制技術(shù)和采用帶補償?shù)目垢蓴_器件,在一定程度上解決了抗干擾問題,使白天黑夜的靈敏度基本保持一致。計數(shù)部分使用十進制計數(shù)7段譯碼器二合一集成電路CD4033 可直接驅(qū)動LCD 液晶實現(xiàn)高亮度數(shù)字顯示電源部分使用變壓器降壓集成穩(wěn)壓器穩(wěn)壓可確保電路工作更穩(wěn)定使用更安全。該設(shè)計電路和控制方案簡潔明了,容易實現(xiàn),具有應(yīng)用推廣價值。
④在作者戴培山,馮成德,劉棟的《基于keil+c51 的紅外遙控器解碼設(shè)計》文章中采用HS9012 芯片,它是一塊用于紅外遙控系統(tǒng)中的專用發(fā)射集成電路,功耗低,外圍元件少。它的發(fā)射碼采用脈沖位相調(diào)制方式(PPM)進行編碼,效率高,抗干擾性能好。HS9012的振蕩頻率為fesc=455kH,高電平脈沖的寬度(即內(nèi)部工作時鐘周期)Tm=256/lose=0.56ms。根據(jù)計時/計數(shù)器T0 的數(shù)值來判斷脈沖的間隔,進而判斷一位二進制遙控碼是“0”,“1”,還是“引導(dǎo)碼”或是干擾碼。這樣用兩個中斷可以提高解碼效率,節(jié)省解碼時間。該設(shè)計接受裝置簡單明了,設(shè)計的keilc51 程序通用性好,編寫效率高,可以方便的移植到其它微控制器上,可靠性好,不受其他遙控器碼的干擾。
⑤在作者王禮廣、胡解生、熊東平、肖秀如的《基于RS-485 的靜脈注射網(wǎng)絡(luò)監(jiān)控系統(tǒng)的設(shè)計與實驗》文章中采用RS-485收發(fā)器,該收發(fā)器采用平衡驅(qū)動和差分接收,具有抑制共模干擾的能力,RS-485接受器靈敏度可以達到4-200 mv,在100 kbit/s速率下電纜長度可以達到l200 m,如果通信距離縮短,最大速率可達10 Mbit/s。該系統(tǒng)性能穩(wěn)定、安全可靠、操控直觀方便。
1.2.3 發(fā)展趨勢電子計數(shù)器到目前為止已有30多年的發(fā)展史。早期,設(shè)計師門追求的目標主要是擴展計數(shù)范圍,再加上提高計數(shù)精度、穩(wěn)定度等,這些也是人們衡量電子技術(shù)器的技術(shù)水平,決定電子計數(shù)器價格高低的主要依據(jù),目前這些基本技術(shù)日臻完善,成熟。應(yīng)用現(xiàn)代化技術(shù)可以輕松地將電子計數(shù)器的計數(shù)上限擴展到無限大。
隨著單片微型計算機迅速發(fā)展,基于單片機技術(shù)開發(fā)的計數(shù)設(shè)備和產(chǎn)品廣泛應(yīng)用到各個領(lǐng)域,單片機技術(shù)產(chǎn)品和設(shè)備促進生產(chǎn)技術(shù)水平的提高。企業(yè)迫切需要大量熟練掌握單片機技術(shù)并能開發(fā)、應(yīng)用和維護管理這些智能化產(chǎn)品的高級工程技術(shù)人才,單片機以體積小、功能強、可靠性高、性能價格比高等特點。已經(jīng)實現(xiàn)或部分實現(xiàn),但要真正完美的實現(xiàn)這些目標,對于設(shè)計者來說,還有許多工作要做,而不是表面看來似乎發(fā)展到頭了。
紅外線電子計數(shù)器是一種多功能的電子測量儀器。它利用紅外線發(fā)射器發(fā)射紅外線,接收器接收由物體阻擋或直射的紅外線,把接受到的紅外線信號轉(zhuǎn)換為電脈沖,并由放大電路進行多級放大,通過計數(shù)芯片分析,計算出遮攔的次數(shù),再由數(shù)碼譯碼器翻譯,通過動態(tài)數(shù)字顯示方式顯示被測物體遮擋的次數(shù)從而進行計數(shù)。隨著紅外技術(shù)的提高,在軍事、醫(yī)學(xué)等多種領(lǐng)域得到應(yīng)用,在軍事上可以用來防止敵人的侵入,在醫(yī)學(xué)上可以查看病人的病情等。
紅外線電子計數(shù)器作為工業(yè)生產(chǎn)流水線上的重要組成部分,對任何一個大型乃至中、小型企業(yè)都是不可或缺的。它能夠快速準確的統(tǒng)計產(chǎn)品的數(shù)量提高生產(chǎn)的效率,節(jié)約大量的人力資源,提高廠家的競爭力。并且隨著紅外計數(shù)器的不斷改進,抗干擾能力增強,可以在許多惡劣的地方代替科研人員進行科學(xué)工作。
1.3 設(shè)計任務(wù)本設(shè)計主要任務(wù)是以單片機為主控芯片來進行軟件控制,能正常進行數(shù)據(jù)計數(shù);趩纹瑱C構(gòu)成的產(chǎn)品自動計數(shù)器研究的主要內(nèi)容包括:如果構(gòu)成檢測電路、MCS-51 單片機用何種方式對外部計數(shù)脈沖進行計數(shù)顯示控制、LCD 顯示驅(qū)動模塊的選擇、MCS-51 單片機的擴展。在這個設(shè)計中主要需要解決的問題便是如何提高MCS-51單片機的抗干擾能力以及穩(wěn)定性。
主要技術(shù)指標:
(1)顯示并能計數(shù);
(2)具有報警功能;
(3)具有較強的抗干擾性。
2 基于單片機構(gòu)成的產(chǎn)品自動計數(shù)器的設(shè)計
2.1 方案論證與選擇方案一、如圖1所示:
圖1 方案一
原理闡述:專業(yè)檢測芯片形成計數(shù)后送入控制單元AT89C51單片機,通過對它片內(nèi)計數(shù)、顯示編程。74LS245是LCD驅(qū)動芯片,可以同時驅(qū)動4個7段液晶,AT24C02是EEPROM模塊,可以保存單片機運算時的中間有用結(jié)果的芯片,是突然掉電,關(guān)斷電源或瞬間電源電壓不穩(wěn)定時,不會造成數(shù)據(jù)丟失或數(shù)據(jù)誤寫,也可以在上電后從中讀出其保存的數(shù)據(jù)內(nèi)容,大大增強了抗干擾的能力。
方案二 如圖2所示:
圖2 方案二
原理闡述:紅外發(fā)射電路和紅外接收電路(由LM324為核心)構(gòu)成紅外檢測單元及形成計數(shù)脈沖,計數(shù)顯示部分使用了使用共陰液晶。當(dāng)紅外線被阻擋時,P32口由高電平變?yōu)榈碗娖,形成下降沿,單片機進行計數(shù),并在液晶上顯示。
方案三 如圖3所示:
圖3 方案三
原理闡述:利用紅外接收發(fā)射管的特性(即紅外接收頭在有紅外光電阻原理分壓)可取基準電壓,然后通過電壓比較器可輸出高低電平,當(dāng)有紅外光照射的時候,紅外接收管串聯(lián)的電阻分得的電壓很大,可使電壓比較器LM324輸出為低電平;當(dāng)無紅外光照射的時候,紅外接收頭串聯(lián)電阻分得的電壓很小,可使電壓比較器LM324輸出為高電平,然后通過單片機處理,可使輸出精準的計數(shù)值。
以上三個方案各有自己的優(yōu)點:
方案一既可完美的實現(xiàn)產(chǎn)品自動計數(shù)功能且能讓系統(tǒng)處于異常狀態(tài)和抗干擾時通過外圍專用芯片到非常好的解決,外圍電路架設(shè)相對簡單、在市場上屬于高端自動計數(shù)產(chǎn)品。同時它也暴露出一個重大問題;由于成本太貴的原因此類產(chǎn)品并沒有得到普及。如果用此方案進行設(shè)計只需要了解各專用芯片的引腳功能以及外圍連接方法就可以實現(xiàn)自動計數(shù),并沒有很好的達到我人做畢業(yè)設(shè)計的目的,故雖然這個方案最完美的一個方案也只有舍棄。
方案二是這次畢業(yè)設(shè)計用的方案,該方案價格低廉、計數(shù)精確,且在系統(tǒng)處于異常狀態(tài)時,工作也十分穩(wěn)定,也是屬于現(xiàn)在產(chǎn)品自動計數(shù)市場上的熱銷產(chǎn)品,可用于在計數(shù)要求比較高的場合中。
方案三涉及的知識面廣也能達到精確、穩(wěn)定的自動計數(shù),但也有一個致命的缺點,整個系統(tǒng)的抗干擾力較弱,系統(tǒng)掉電后不能保存數(shù)據(jù),在系統(tǒng)牌異常狀態(tài)時容易出現(xiàn)誤操作或死機,故不考慮。
2.2 系統(tǒng)總體框圖和原理系統(tǒng)總體框圖如圖4所示:
圖4 系統(tǒng)總體框圖
原理:電路的指導(dǎo)思想是紅外發(fā)射管發(fā)射紅外線,紅外接收管接收紅外線,并且接收管當(dāng)有紅外線照射的時候,電阻比較小,當(dāng)無線外線照射的時候電阻比較大,這樣就可以通過一個電壓比較器和一個基準電壓進行對比,當(dāng)有光照的時候,紅外接收管電阻比較小,那么和其串聯(lián)的電壓分壓就會增大,所以電壓比較器將會輸出一高電平;當(dāng)無光照射的時候,紅外接收管的電阻比較大,這樣電壓比較器就會輸出一個低電平。這個便是外部計數(shù)電平信號,這個電平信號送入AT89C51單片機進行計數(shù)控制,在經(jīng)過擴展、顯示驅(qū)動完成最后的顯示過程。
2.3 主控芯片簡介(見附件)
2.3.1 單片機的發(fā)展及趨勢
3 紅外線計數(shù)器硬件設(shè)計
3.1 單片機最小系統(tǒng)的設(shè)計圖6 電源供電電路
如圖6所示電源供電部分采用變壓器降壓、橋式整流、電容器濾波、三端穩(wěn)壓器7805穩(wěn)壓后供電。電源用220V 市電經(jīng)變壓器T1降壓成12V交流電,然后經(jīng)四個整流二極管(D1—D4)組成的橋式整流變成直流電壓,經(jīng)C1濾波后送入7805 芯片穩(wěn)壓成5V直流電源供紅外線發(fā)射、接收電路、AT89C51等供電。C1和C2的作用都是起到對輸出電壓的濾波作用。
STC89C51單片機的最小系統(tǒng)設(shè)計如圖7,8所示。.
圖7 時鐘電路 圖8 復(fù)位電路
51單片機的最小系統(tǒng)由單片機、晶振電路、復(fù)位電路和P0的上拉電阻組成。其介紹如下:
時鐘電路:時鐘電路(圖6)是由電容C4、C5和12MHz的晶振組成,接在單片機的第18和19腳(即XTAL1和XTAL2端)。因其采用的是振蕩頻率12MHz的晶振,所以其軟件的一個機器周期為1us。
復(fù)位電路:C1和R2構(gòu)成了復(fù)位電路。剛開始上電時時,C1瞬間相當(dāng)于短路,C1 兩端保持0V電壓,VCC的電源電壓就都加在了R2上,因此在單片機9腳RST上變成了高電平,此后C1上逐漸充電,即在C1上出現(xiàn)電壓,R2上的電壓開始下降,最后單片機9腳RST上變成了低電平。在此過程中只要滿足單片機9腳RST上的高電平持續(xù)24個振蕩周期即可使單片機復(fù)位。
3.2、紅外線檢測電路3.2.1 紅外線發(fā)射電路圖9 紅外線檢測部分
如圖9所示,紅外線檢測部分采用一對紅外發(fā)送接收管完成,當(dāng)電路正常工作時,無障礙物遮擋,紅外接收頭有紅外線照射,這時,紅外接收頭的電阻很小,大部分電壓都加在R3上,這正是電壓比較器LM324的正向輸入電壓,而負向輸入電壓由R4和R5分壓得到
,而R3分得的電壓要大于此基準電壓值,故這時電壓比較器LM324輸出高電平;當(dāng)在紅外發(fā)射接收管間有一不透光的障礙物時,,紅外接收頭無紅外線照射,這時紅外接收頭的電阻很大,大部分電壓都加在紅外接收頭上,這也是電壓比較器LM324的正向輸入電壓,而負向輸入電壓也是由R4和R5分壓得到,和原來電壓一樣,這時,R3分得的電壓要小于此基準電壓值,故這時電壓比較器LM324輸出低電平。
3.3 計數(shù)顯示部分計數(shù)顯示部分由單片機AT89C51控制完成。基本原理為當(dāng)紅外檢測部分檢測到有產(chǎn)品經(jīng)過時,紅外接收電路LM567 芯片的8輸出口將產(chǎn)生一個低電平信號,這個信號將供給單片機進行計數(shù)控制;顯示部分是通8 位LCD數(shù)碼顯示管顯示。
計數(shù)控制部分是將計數(shù)脈沖(負脈沖有效)送入單片機AT89C51兩個中斷入口的INT0入口,經(jīng)過單片機內(nèi)部對這個中斷信號進行計數(shù)編程構(gòu)成.AT89C51與MCS-51 指令系統(tǒng)完全兼容。提供以下標準功能:4K字節(jié)FLASH 閃爍存儲器、128字節(jié)內(nèi)部RAM、32個I/O口線、兩個16位定時/計數(shù)器、一個5 向量兩級中斷、一個全雙工串行通信口、片內(nèi)振蕩器及時鐘電路。同時AT89C51可降至0HZ的靜態(tài)邏輯操作,并支持兩個軟件的節(jié)電工作模式?臻e方式停止CPU 的工作,但是允許RAM、定時/計數(shù)器、串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電后保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其他所有部件工作直到下一個硬件。
3.4 蜂鳴器報警電路本設(shè)計采軟件處理報警,利用有源蜂鳴器進行報警輸出,采用直流供電。當(dāng)所測溫度超過獲低于所預(yù)設(shè)的溫度時,數(shù)據(jù)口相應(yīng)拉高電平,報警輸出。(也可采用發(fā)光二級管報警電路,如過需要報警,則只需將相應(yīng)位置1,當(dāng)參數(shù)判斷完畢后,再看報警模型單元ALARM 的內(nèi)容是否與預(yù)設(shè)一樣,如不一樣,則發(fā)光報警)報警電路硬件連接見下圖10。
圖10 蜂鳴器電路連接圖
4 紅外線計數(shù)器軟件設(shè)計STC89C52RC 單片機可以用匯編語言和C語言進行編程。匯編語言與機器指令一一對應(yīng),所以用匯編語言編寫的程序在單片機里運行起來效率較高,而且對于紅外計數(shù)器數(shù)據(jù)的讀寫上,所用到的語句比較簡單易懂。而C語言程序可讀性高,更便于理解。本設(shè)計使用C語言編程。
4.1 主程序設(shè)計第一次開機,系統(tǒng)進行初始化,LCD顯示51芯片的初始數(shù)字,并開始運行。如果這個時候按下S2鍵,則LCD液晶的前兩位則累加,該數(shù)字作為本次實驗的報警觸發(fā)數(shù)據(jù),后兩位液晶則位紅外線當(dāng)前的計數(shù),當(dāng)顯示數(shù)據(jù)達到觸發(fā)數(shù)據(jù)則蜂鳴器報警。當(dāng)此時按下S1鍵,則蜂鳴器報警停止且后兩位液晶數(shù)據(jù)清零,重新進行計數(shù)。
主程序流程圖如圖11所示:
圖11 主程序流程圖
void main()
{
ET0=1;
IT0=1;
EX0=1;
EA=1;
beep=1;
num=10;
while(1)
{
keyClear();
keySet();
BJ();
process(count);
display();
}
}
設(shè)定左邊兩位校對液晶初始值E=10,設(shè)定右邊兩位計數(shù)液晶初始值N=0。
4.2 子程序設(shè)計
4.2.1 LCD 顯示程序設(shè)計用NPN 三極管驅(qū)動LCD液晶動態(tài)顯示電路,編程就是利用人視覺的暫留性,不斷地輪流輸出每個液晶位的數(shù)據(jù),達到不閃爍的效果,編程上還是比較簡單的。
其難點就在把4 位一體共陰液晶分成兩部分并且能夠進行0~999的計數(shù),這么做是為了能夠清楚的反映實驗的效果,左邊的兩位為給定的數(shù)據(jù)并且能夠通過按鍵S2進行累加達到改變數(shù)據(jù)而不用通過修改程序來改變的效果,后兩位則是紅外對管所測得遮擋的次數(shù)。
另外,就是顯示中閃爍的功能。常用的方法是利用單片機的中斷產(chǎn)生方波來達閃爍的功能,而本次設(shè)計則采用不斷調(diào)用幾個顯示子程序來達到閃爍的效果,如當(dāng)要閃爍秒位時,則調(diào)用完整的顯示子程序一段時間,然后再調(diào)用缺少秒位的顯示子程序一段時間,這樣就達到了閃爍的效果。而整個閃爍程序是通過掃描一個標志位來實現(xiàn)的,標志位則是由鍵控制。
void process(uint i)
{
dat[0]=num/10;
dat[1]=num%10;
dat[2]=i/10;
dat[3]=i%10;
}
把4 位LCD 液晶分成兩部分并賦予不同功能。
void keySet()
{
if(key2==0)
{
delayms(10);
if(key2==0)
{num++;
}
while(!key2)
{
process(count);
display();
};
}
}
通過按鍵S2可以改變校對液晶的初始值進行累加。加強可操控性。
4.2.2 蜂鳴器報警程序設(shè)計void BJ()
{
if(count>=num)
beep=0;
else
beep=1;
}
當(dāng)后兩位液晶的數(shù)據(jù)大于等于給定的數(shù)字則蜂鳴器發(fā)聲報警,當(dāng)按下S1 按鈕,則后兩位數(shù)據(jù)清零進行新一輪的計數(shù)且蜂鳴器停止報警,從而達到計數(shù)的意義。
5 系統(tǒng)調(diào)試
5.1 系統(tǒng)的硬件調(diào)試調(diào)試工作可分硬件調(diào)試和軟件調(diào)試兩個部分,調(diào)試方法如下:
首先,硬件調(diào)試主要是先制作硬件電路板,然后用萬用表等工具對電路檢查,最后應(yīng)用程序進行功能調(diào)試。硬件調(diào)試比較費時,需要細心和耐心,也需要熟練掌握電路原理。然后,用仿真軟件進行軟件調(diào)試,比如單片機C51編輯軟件KEIL,該軟件提供一個集成開發(fā)環(huán)境uVision,它包括C編輯器、宏編輯器、連接器、庫管理和一個功能強大的仿真調(diào)試器。通過編譯、運行,可以檢查程序錯誤。但應(yīng)用此方法,仍需要十分了解所使用元器件的工作方式和管腳連接方式。
5.2 軟件調(diào)試本次設(shè)計則是直接完成電路的硬件設(shè)計,出現(xiàn)的硬件問題幾乎沒有,主要在軟件的程序上進行調(diào)試。
在軟件調(diào)試過程中,曾遇到以下問題:
當(dāng)硬件初次開機的時候,發(fā)現(xiàn)LCD亮度不夠均勻。進行分析,是程序設(shè)里面對顯示程序的延時不夠造成的。在調(diào)試按鍵的時候,當(dāng)一按下任意一個按鍵,系統(tǒng)顯示的就處于定格狀態(tài),再按下按鍵則沒有任何反應(yīng)。查詢程序,由于在延時和循環(huán)程序里,對Rx寄存器重復(fù)使用造成的,經(jīng)過合理分配使用,問題解決。由于本硬件設(shè)計中,對P0是復(fù)用的狀態(tài),顯示程序的段碼和時鐘芯片的數(shù)據(jù),都是通過P0傳輸?shù)摹T诰幊讨校雎粤岁P(guān)閉另個數(shù)據(jù)的通信,導(dǎo)致顯示有余光的狀態(tài)。
6 結(jié)論在研究這個畢業(yè)設(shè)計的過程當(dāng)中曾經(jīng)讓我遇到了許多小麻煩:在檢測單元的選擇上是選擇光電傳感器還是紅外對射式曾經(jīng)讓我迷茫.在MCS-51單片機的選擇上是選擇內(nèi)部具有4KB字節(jié)的閃爍存儲器的AT89C51 還是選擇內(nèi)部具有8KB 字節(jié)的閃爍存儲器的AT89C2051 曾經(jīng)也讓我困惑不已(其實任選一款都可以實現(xiàn))。而最讓我感到迷茫的是否利用8155 進行I/O 口的擴展,其實通過設(shè)計要求可以看出不難看出根本不需要對AT89C51進行擴展就可有完成0-999999 的計數(shù)顯示功能(采用7 段液晶顯示可以不擴展)。
基于單片機構(gòu)成的產(chǎn)品自動計數(shù)器能夠?qū)崿F(xiàn)實時、穩(wěn)定、精確的計數(shù)。如果要對這個課題進行深入的研究可以采用AT89C2051 或者AT89C52為控制單元的產(chǎn)品自動計數(shù)器在配合專用的掉電數(shù)據(jù)保護芯片、單片機專用保護芯片等就可以很好的提高整個系統(tǒng)的抗干擾能力。產(chǎn)品自動計數(shù)器的設(shè)計的抗干擾問題永遠是設(shè)計者們研究的課程!只要能有效的遏制這個缺陷形成一個優(yōu)質(zhì)的自動技術(shù)產(chǎn)品指日可待。∕CS—51 單片機允許工作的溫度范圍:-55℃--150℃,正產(chǎn)工作的頻率范圍上限:24MHZ—33MHZ)。
通過本次設(shè)計,對單片機的內(nèi)部模塊更加熟悉,使用上也更加的清晰,對于今后用單片機設(shè)計產(chǎn)品提供了極大的幫助,并且培養(yǎng)了良好的編程習(xí)慣,對子程序命名的規(guī)范,和對寄存器的使用上,有了一定的良好意識。
附錄一原理圖
附錄二
致謝
本設(shè)計在選題及研究過程中得***教授的悉心指導(dǎo)。馬老師多次詢問研究進程,并為我指點迷津,幫助我開拓研究思路,精心點撥、熱忱鼓勵。馬老師一絲不茍的作風(fēng),嚴謹求實的態(tài)度,踏踏實實的精神,不僅授我以文,而且教我做人,我對馬老師的感激之情是無法用言語表達的。他不僅學(xué)識淵博,對專業(yè)孜孜以求,精益求精;而且在百忙之余仍然讀書不輟,不斷探求;為人師表,率先垂范;傳道授業(yè),嘔心瀝血。如果說我從指導(dǎo)老師那里學(xué)會了怎樣做好學(xué)問,那么首先應(yīng)該說我從導(dǎo)師那里領(lǐng)略了真正的學(xué)術(shù)精神,導(dǎo)師嚴謹?shù)闹螌W(xué)態(tài)度和堅韌的探索精神將使我終生受益。
在此,我還要感謝在一起愉快的度過大學(xué)生生活的宿舍——309 的各位同門,正是由于你們的幫助和支持,我才能克服一個一個的困難和疑惑,直至本文的順利完成。特別感謝我的同學(xué),劉子偉,賴章勇等對本課題做了不少工作,給予我不少的幫助。
在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!最后我還要感謝培養(yǎng)我長大含辛茹苦的父母,謝謝你們!