分揀機器人單片機控制系統(tǒng)設計_第1頁
分揀機器人單片機控制系統(tǒng)設計_第2頁
分揀機器人單片機控制系統(tǒng)設計_第3頁
分揀機器人單片機控制系統(tǒng)設計_第4頁
分揀機器人單片機控制系統(tǒng)設計_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、學校代碼: 10128學 號:010202064本科畢業(yè)設計說明書題目:分揀機器人單片機控制系統(tǒng)設計學生姓名: 學院: 系別:專業(yè):班級:指導教師:二o 一七年五月摘要一般的分揀機器人由于其操作方式較復雜,分揀的效率較差,人機交互系統(tǒng) 的不太完善,機械性能欠佳等已經很難滿足當今社會的生產實踐需要。伴隨著社 會的飛速發(fā)展,人們對性能優(yōu)良智能分揀人的需求也與日俱增。設計一款基于單 片機的分揀機器人有很大的實踐需要和社會功能。根據控制系統(tǒng)的要求,決定采 用美國INTEL公司MCS-51系列單片機基本產品89C52,作為分揀機器人的主控 制芯片。它具有運行速度快,功耗低,抗干擾能力強等優(yōu)點,能夠完全我

2、的設計 要求。本系統(tǒng)包括硬件和軟件兩個部分。硬件系統(tǒng)主要包括電壓轉換電路的設計、 單片機連接PC機串口電路的設計,單片機系統(tǒng)的設計,驅動電路的設計,顯示 電路的設計等。在電路圖板上完成各模塊的設計與連接。分析易得,此系統(tǒng)可以 完全滿足設計需要。通過光耦等器件克服電機驅動部分與單片機部分的相互干擾。關鍵詞:單片機;硬件設計;軟件編程;89C52AbstractThe general sorting robot is more complicated due to its operation sorting is less efficient, human-computer interaction

3、 system is not perfect, poor mechanical performance has been difficult to meet the needs of today,s social production practice. Accompanied by the rapid development of society, the demand for smart sorters is also growing。 The design of a sorting robot based on a single chip has a great practical ne

4、ed and social function.According to the requirements of the control system, Decided to adopt the United States INTEL MCS-51 series of basic products 89C52, as the main control chip for the sorting robot, It has the advantages of fast running speed, low power consumption and strong anti-interference

5、ability, can be completely my design requirementso The system includes both hardware and softwareo The hardware system mainly includes the design of voltage conversion circuit, design of serial circuit of PC computer connected by single chip microcomputer, design of Single Chip Microcomputer System,

6、 design of the drive circuit, display circuit design, etc。 In the circuit board to complete the design and connection of the moduleo Analysis easy to get, This system can fully meet the design needs。 Through the optocoupler and other devices to overcome the motor drive part and the microcontroller p

7、art of the mutual interference。Keywords:Single chip, hardware design, software programming, 89C52目錄第一章前言11.1 本論文的背景和意義11.2 研究現(xiàn)狀11.3 本論文的主要方法與研究進展21.4 本論文的工作原理框圖21.5 本論文的主要內容3第二章系統(tǒng)方案設計42.1 單片機型號的論證與選擇42.2 數(shù)據顯示模塊的論證與選擇52.3 驅動器模塊的論證與選擇62.4 電磁閥的論證與選擇72.5 總體的方案比較與選擇7第三章系統(tǒng)硬件電路設計83.1 STC89C52RC單片機模塊83.1.1

8、中央處理單元CPU的介紹83.1.2 STC89C52RC單片機的特點93.2 復位電路模塊103.3 振蕩電路模塊103.4 LCD12864液晶顯示器模塊113.5 繼電器驅動電路113.6 8255電機驅動123.7 外部定時器123.8 下載電路14第四章軟件系統(tǒng)設計154.1 程序流程圖154.2 塊初始化函數(shù)154.2.1 定時器初始化和pwm的模擬154.1.2 12864液晶的初始化204.2 按鍵檢測程序254.3 電機運行狀態(tài)控制程序274.3.1 電機控制方法簡介274.3.2 電機速度控制策略274.4 機械爪控制程序314.5 鎖存器74LS573控制程序32第五章設

9、計總結及技術展望33致謝34參考文獻35附錄1系統(tǒng)設計電路總圖36第一章前言1.1 本論文的背景和意義隨著人類社會的進步,人類的聰明才智使得工具越來越先進。工具一直是為 人類服務而被生產和改進。工具的進步使人類勞動更加方便,能夠在更困難的環(huán) 境中工作。機器人的誕生是通過解放人類的雙手和大腦,從社會生產力的枯竭和 生產更方便的工具。自恩格爾伯格先生的發(fā)明1,機器人已經在過去的100年里發(fā)生了很大的 變化。目前,機器人已廣泛應用于人類生產活動的各個領域。在現(xiàn)代工廠中,白 天不懂夜的黑,輸送搬運物品,危險完成排爆排爆機器人代替人類工作,甚至坐 在宇宙飛船探索宇宙去探索人類未知的世界。與人類相比,機器

10、人有許多優(yōu)點。 機器人不怕累,怕臟,不怕苦。在危險的情況下,機器人的功能突出。而且,機 器人工作的準確性比較高,人們不會受到同樣情緒波動的影響。機器人的運動方 式主要是機械運動,電機驅動2是其主要控制方式。單片機控制電機驅動3在當今社會很普遍。隨著單片機理論和硬件系統(tǒng)的 更替,單片機控制技術在國民經濟發(fā)展中起著重要的作用。自20世紀70年代單 片機誕生以來,先后經歷了單片機、單片機和SOC三個發(fā)展階段。目前,供應鏈 管理正朝著高性能、多品種方向發(fā)展。未來的趨勢將是CMOS,低功耗,小體積, 高性能,低價格,外圍電路。目前,如功率表、示波器等智能儀表,在工業(yè)控制、 家用電器、各種大型電器等的模塊

11、化應用中,都有單片機的使用。單片機滲透到 我們工作的各個領域。1.2 研究現(xiàn)狀國外分揀系統(tǒng)起步較早,目前普遍采用自動化的分揀系統(tǒng),在我國分揀系統(tǒng) 起步較晚,目前主要采用人工分揀方式。智能分揀系統(tǒng)發(fā)展依賴于機械設計水平 的不斷提高,在自動分揀系統(tǒng)中4,機械手爪設計科學性影響系統(tǒng)的正常工作。 自動分揀系統(tǒng)是二戰(zhàn)后,發(fā)達國家為了提升運送物品效率提出的一種作業(yè)方式, 廣泛應用于大型商場、快遞行業(yè)。分揀系統(tǒng)適用于大批量的分揀貨物,降低了出 錯概率。此系統(tǒng)的出現(xiàn)極大的減少了人員使用。隨著技術的發(fā)展,國外的分揀系 統(tǒng)呈現(xiàn)出自動化程度越來越高5,精確度越來越高。但是系統(tǒng)一次性投入較大, 資本回收較慢,系統(tǒng)結構

12、復雜,同時對商品外觀要求較高,因此國內發(fā)展較慢。 而機械機械手在國外發(fā)展也較快,由于國外起步較早,其機床加工水平相對較高, 機械手爪的生產主要使用自動化機械生產,產品工藝水平高,同時機械手臂自由 度公式的出現(xiàn),加快了工業(yè)水平的提升,通過理論計算可以得到機械手臂的尺寸 以及需要多少相關的模塊678。在進行設計之前可以進行仿真分析每個部 件受到的力度,優(yōu)化各部分尺寸的設計。在國內分揀系統(tǒng)起步較晚,目前還是主要采用人工分揀方式。我國的分揀系 統(tǒng)集約化程度低。企業(yè)投資一般集中在貨架以及傳送帶等設備上面。物流體系整 體運轉較低,技術設備相對落后。隨著技術的發(fā)展,我國自動分揀系統(tǒng)也在不斷 發(fā)展,我國可以自

13、主生產多種自動分揀機,如托盤式翻板式與交叉帶式分揀機等, 主要應用于配送中心、郵政、機場等部門。但精度還需要提高。同時我國的機械 加工水平不斷提升,我國機械加工起步較晚,但隨著車床等技術的引進,發(fā)展較 快。1.3 本論文的主要方法與研究進展本畢業(yè)設計論文以生產實踐中所出現(xiàn)的問題為出發(fā)點,為了滿足市場化需要,提升我國的自動化水平,本文擬研究一款基于單片機的分揀機器人。 該系統(tǒng)采用傳送結構實現(xiàn),傳送帶負責將物件傳送等待分揀,紅外檢測到 物品到達時,單片機控制伺服電機抓取物品,放置在對應的物品箱。1.4 本論文的工作原理框圖本設計采用以單片機為控制核心,實現(xiàn)抓物的基本動作功能,基于紅 外技術的收發(fā)系

14、統(tǒng)實時檢測機器抓物的設計與實現(xiàn)的工作原理框圖如圖 1.4所示。圖1.4工作原理框圖1.5 本論文的主要內容研究伺服電機與步進電機區(qū)別,伺服電機的工作原理,單片機控制器使用驅 動器高精度控制伺服電機的運動9,可以實現(xiàn)水平、垂直兩個軸的定位控制和 機械手爪的開合控制;(1)手爪運行速度可達3m/s,定位精度不小于0.5mm;(2)要具有較好的人機接口和安全性措施;(3)控制系統(tǒng)具有與其它計算機通訊功能。第二章系統(tǒng)方案設計2.1單片機型號的論證與選擇方案一:51單片機優(yōu)點:STC89C52RC是51單片機,它的成本低性能高而且支持ISP和IAP技 術。用戶可以在系統(tǒng)板上燒錄自己的程序,修改調試非常簡

15、單方便。IAP技術能 將內部部分EEPROM可以用專用Flash代替使用,保證停電后能保證數(shù)據不丟失, 擦寫次數(shù)可以達到100000多次,不用外接EEPROM。而且與傳統(tǒng)8051單片機程 序兼容,硬件無需改動。缺點:作為8位的單片機,運行速度相對來說比較慢。而且普通的非加強版 51單片機并不帶內部時鐘電路,如果不外接振蕩電路就無法工作,5v的工作環(huán) 境相對來說比較耗電。方案二:MSP430單片機優(yōu)點:使用MSP430系列單片機。MSP430系列單片機是美國德州儀器公 司生產的一種16位微處理器,使用的是精簡指令集。MSP430單片機最顯著 特點就是超低功耗。微小的電量就能使單片機正常工作,中央

16、處理器可的 工作電壓在1.8V3.3V之間10。缺點:超低功耗使得單片機只需要3.3v就能工作,但是這也使得很多需要 5v才能工作的硬件電路需要外加驅動才能工作,使得硬件設計復雜化。而且430 單片機不帶片內EEPROM,這就使得430單片機不能執(zhí)行一些特殊指令。430單片 機作為16位單片機雖然運行速度快了一些但是價格卻高了很多,在產品設計中 無疑會增加產品的成本。方案三:STM32單片機優(yōu)點:STM32F1系列屬于32位ARM微控制器中的中低端產品,由意法半導 體公司生產,Cortex-M3內核。可由Flash的大小可分為小容量、中容量、大 容量。芯片集成定時器,CAN, ADC, SPI

17、, I2C, USB, UART,等多種功能11。 所以STM32單片機基本具備51和430單片機的所有優(yōu)點,而且隨著STM32的普 及,部分STM32的低端產品甚至比430還要便宜。缺點:基于ARM內核的STM32單片機的價格也是單片機中價格最高的,而且 程序編寫復雜,初學者不容易看懂。綜上所述,STM32單片機雖然最強,但是由于其出色的性能與高昂的價格, 使得它并不適用于小型的電子產品的應用,430單片機可以說除了低功耗基本沒 有任何優(yōu)點。至于51單片機,作為年代最早的單片機,它使用的方式簡單,基 本能滿足多種小型電子產品設計的需求,而且它使用和學習都十分簡單,比較能 被更多人接收。通過對

18、比使用STC89C52RC單片機。2.2 數(shù)據顯示模塊的論證與選擇方案一:數(shù)碼管優(yōu)點:數(shù)碼管是由半導體發(fā)光器件組成,主要是由八個發(fā)光二極管工作。而 且數(shù)碼管擁有兩種驅動方式,靜態(tài)顯示驅動和動態(tài)驅動,但是無論是動態(tài)驅動還 是靜態(tài)驅動,數(shù)碼管都有高亮度和低功耗的優(yōu)點。而且數(shù)碼管的使用相當?shù)暮唵?且價格低廉。缺點:不同位數(shù)的數(shù)碼管的管腳數(shù)不同,位數(shù)越多管腳越多。所有的數(shù)碼管 都需要外接驅動電路,焊接比較復雜而且能顯示的內容相當有限。方案二:LCD1602優(yōu)點:LCD1602為平面薄型顯示設備,LCD1602能夠顯示字母、符號和 數(shù)字,能夠顯示16*2個字符,能夠顯示較多信息。而且 LCD1602價格

19、低, 體積小,功耗低等優(yōu)點,被廣泛的用作各種儀器的顯示器。缺點:1602除了程序上要求復雜一點基本沒有缺點。方案三:LCD12864優(yōu)點:12864液晶顯示模塊分為有字庫和無字庫兩種,都是由 128*64 個點陣構成,該模塊可以較多的各種文字數(shù)字字符圖案等信息。而且使用 較為方便。缺點:該模塊的價格較高,有字庫的12864在編程是容易出現(xiàn)字符亂 碼的現(xiàn)象,處理起來較為麻煩。綜上所述,LCD1602具有很大的優(yōu)勢,但是考慮到實際的需求,雖然數(shù) 碼管的使用硬件設計比較復雜,但是很多情況下可以直接使用驅動芯片來 代替驅動電路,而且在大部分電子產品中液晶 LCD1602的使用并不是很普 及,比如它顯示

20、的字符特別小,且不可改變,大部分電子產品中使用的都 是筆段式液晶,其原理和用法和數(shù)碼管一樣,但是成本卻比數(shù)碼管要高得 多,但是這兩種模塊都只能十分局限的顯示數(shù)字字母等信息,無法符合本 次設計的要求,以本次設計選擇了無字庫的 LCD12864。2.3 驅動器模塊的論證與選擇方案一:繼電器優(yōu)點:繼電器是在電氣輸出電路中使用的電氣控制裝置,使用較為廣泛,用 法簡單。而且根據不同的要求還分為不同的繼電器,普通的繼電器價格也十分的 低。缺點:繼電器的使用需要外接驅動電路,而且不同的功率的繼電器所需要的 驅動的電壓也不同,所以使用繼電器時要考慮到電源的要求。方案二:可控硅優(yōu)點:使用簡單,無論多大功率的可控

21、硅都只需要高低電平就能驅動,不需要考 慮控制端電源的要求。缺點:只適用于交流電。綜上所述:本次設計不需要使用大功率電機,所以普通的繼電器就能工作, 所以選擇繼電器。2.4 電磁閥的論證與選擇方案一:直動式電磁閥在通電時電磁力會將關閉閥門的開關提起,閥門就打開了,斷電的時候電磁 力消失開關又開始工作閥門就會關閉12。優(yōu)點:能在各種環(huán)境下工作。缺點:孔徑太小,用處很局限。方案二:先導式電磁閥在通電的時候電磁力會先把導孔打開,這樣會使上腔的壓力下降,在關閉開 關周圍形成壓差,流體產生的壓力毀推動開關向上移動,閥門開啟。同樣斷電, 閥門關閉13。優(yōu)點:可以通過定制隨意安裝。缺點:工作時有流體壓差的限制

22、。綜上所述,作為機械手,需要滿足任意性,有力度限制,所以選擇先導式電 磁閥。2.5 總體的方案比較與選擇該設計運動主要利用直流電機實現(xiàn)在平面上運動,數(shù)字金屬舵機構成機械手 抓取物體。利用按鍵控制裝置到達指定位置,再由機械手抓取物體,再將物體送 往指定位置,從而實現(xiàn)物體的分揀。13主控芯片選擇較多,有常見的AVR、STC、ARDUINO等。根據之前學過的課 程,我們決定采用stc系列的STC89c5A60S2增強型單片機作為主控芯片。之所 以不選89C52等芯片,不是因為他們的運算速度不夠,主要原因是它們的片上 flash太小,難以滿足需求,其次是因為自己有閑置的STC89C5A60S2,片上內

23、存 大,運算速度1T,即充分利用資源節(jié)省成本,又可以實現(xiàn)所需要的功能需求。最后就是附屬配件usb轉ttl串口的stc下載線。選擇采用cp2102作為usb轉串口芯片方案,下載STC單片機完勝PL2303 方案,最高下載速度可達115200波特率。第三章系統(tǒng)硬件電路設計3.1 STC89C52RC單片機模塊3.1.1 中央處理單元CPU的介紹STC89C52RC單片機是宏晶科技推出一款超低功耗、抗干擾、高速的單 片機。STC89C52RC單片機選用8051核的ISP在系統(tǒng)可編程芯片。它具有結 構簡單,易于開發(fā)和價格便宜等特點。STC89C52RC單片機有兩種工作電壓,一種是 2.0V-3.8V,

24、即3V電壓單 片機,另一種是3.4V-5.5V,即5V電壓單片機,本設計選用5V電壓單片機。STC89C52RC單片機具有很寬廣的工作溫度范圍,工業(yè)級的單片機能夠 工作在-40 至85 的環(huán)境里,商業(yè)級的單片機能夠工作在0 至75 的環(huán) 境里。STC89C52RC單片機的工作頻率最大能夠達到 48MHz,這樣它就能夠以 飛快的速度去處理相關數(shù)據。STC89C52RC單片機內部擁有專用復位電路,當外部晶體頻率在20MHz以下時,可以省去外部的復位電路。STC89C52RC單片機是一種低功耗、抗干擾性強、速度快的單片機。 STC89C52RC單片機在系統(tǒng)可編程芯片上使用8051核isp。其特點是結

25、構簡 單,開發(fā)簡單,價格低廉。STC89C52RC微控制器有兩種工作電壓,一種是 2.0 V到3.8 V,即三V 電壓單片微機,另一種是3.4 V到3.4 V,5 V電壓單芯片微機,這種設計 選擇5伏電壓單片機。STC89C52RC單片機具有廣泛的工作溫度范圍,工業(yè)級 MCU可在40到 85的環(huán)境中工作,在0到75的環(huán)境中,單片微型計算機的商業(yè)水平可以工 作。STC89C52RC單片機的工作效率最高為48MHz,因此它可以以快速的速 度處理相關數(shù)據。STC89C52RC單片機有一個專用的復位電路,當外部的晶體頻率低于 20MHz時,它可以保存外部復位電路 3.1.2 STC89C52RC單片機

26、的特點1.512字節(jié)的RAM;2 .eepm 功能;3 .兩個16位的定時器/計數(shù)器;4 .看門狗;5 .有一個程序系列的UART通道;6 .六個中斷;7 .低功耗模式;8 .有三個級別的加密內存+5V31Pl 0Pl 1Pl 2Pl 340pn Q*FV.VPO I pfb I3S1A打1I V.d.品Pl 4DA 1R>V. J35Pl 5Pl 6pn j1ITW-BA S34-ftopi 7P06P0 79RST32A* 1LU1P3 0RXDEA VppJI121 fPS I TXDP3,亦TQALE PROGPSENJv-P3 3'INTlP271413P3 4 TOP

27、3 5 TIPI 6P2 5z/261 cL0>P2417P簿EP2314 <?Lavt at tpi 119XTAL1Pl 1in in11 I,vGNDP2Q-1 189C52圖3.1.2 STC89C52RC的管腳圖3.2復位電路模塊當系統(tǒng)接入5V電源時時,STC89C52RC單片機開始復位,如圖3.3所示復位 電路模塊電路原理圖。圖3.2復位電路模塊電路原理圖3.3振蕩電路模塊此次設計選用的是11.0592MHz的晶振和30pF的電容,那么STC89C52RC 單片機的工作周期是11.0592MHz X (1/11.0592MHz)=1us。如圖3.3所示的 最小時鐘振蕩電

28、路原理圖。1ST11911 0592M20C730一GND圖3.3振蕩電路模塊P3. /KD XT.AL2 XTAL1 GND3.4 LCD12864液晶顯示器模塊本設計使用LCD2864液晶顯示作為觀察正在執(zhí)行的功能。如圖3.4所示為LCD12864液晶顯示器電路原理圖。6LCD12S6JIU 二n r 序徭2式瑞黑眼罌鎮(zhèn)隆AK圖3.4LCD12864液晶顯示器模塊電路原理圖3.5 繼電器驅動電路當認為按下啟動按鍵時,單片機開始工作,給繼電器發(fā)送指令。因為 STC89C52RC單片機端口輸出的電流比較低,所以加一個三極管以增大功率, 驅動繼電器正常工作。如圖3.5所示的繼電器電路原理圖。圖3

29、.5繼電器驅動模塊電路原理圖3.68255電機驅動DRV8255可以驅動一個二項四線步進電機,也可以驅動兩個直流電機,與 8-45v輸入電壓,最大電流為1.7a,經得起2.5a的瞬時電壓通過PWM輸入驅動。 可以avref / bvref調整電機繞組電流的電阻,電流應大小的電機額定電流;通 過模型/模型/模式,三角配置細分驅動模式,您可以配置2 / 4 / 8 / 16 / 32 細分。nhome腳,從電源,電機轉了 45度的位置,nhome引腳會輸出一個低電平。 如圖3.6.5-<DOnistBIMEKHIr繇刖ai£ekra昭陽仲FBr-H/陽 mptkpcpckkpc-Z

30、AJC肘A2A3煽相恥 pppppppp圖3.68255連接電路3.7外部定時器此次8253作為定時器執(zhí)行復雜的電機控制器。1 .數(shù)據母線緩沖器這個三態(tài)、雙向和八位的緩沖器用于將8253與系統(tǒng)數(shù)據總 線連接起來。CPU執(zhí)行輸入/輸出指令時緩沖器就發(fā)送或接收數(shù)據。數(shù)據總線緩 沖器有三個基本功能: 通過編程確定8253的工作方式; 向計數(shù)寄存器裝入數(shù)據; 讀出計數(shù)值。2. 讀/寫邏輯讀/寫邏輯接受來自系統(tǒng)總線的輸入,然后產生控制整個器件 工作的控制信號。由CS信號來允許或禁止讀寫邏輯的工作,因此除非該器件被 系統(tǒng)邏輯選中,否則不會發(fā)生改變其功能的操作。3. RD (讀)這個輸入端上的低電平信號告知

31、8253, CPU正在輸入計數(shù)值。4. WR (寫)這個輸入端上的低電平信號告訴8253, CPU正在輸出工作方式 信息或向計數(shù)器裝入數(shù)據。5. A0A1這兩個輸入端通常連接到地址總線上。其作用是選擇三個計數(shù)器中 的一個以及選擇控制字寄存器以便選擇工作方式。6. CS (選片)這個輸入端上的低電平信號將啟用8253。除非器件被選中, 否則不會發(fā)生讀或寫操作。CS輸入信號對計數(shù)器的實際操作沒有影響8253內部 擁有三個獨立但是結構和功能全部相同的定時器。本次設計使用到了兩個8253, 連接方式如圖3.7。圖3.78253連接圖3.8下載電路本次設計使用到了 CH340芯片下載,因為現(xiàn)在的筆記本電

32、腦都沒有了并口通 信接口,而用了 CH340就可以實現(xiàn)USB轉串口,電腦上裝上驅動后就可以下載數(shù) 據,接線方式如圖3.8圖所示.圖3.8CH340下載電路第四章 軟件系統(tǒng)設計4.1 程序流程圖程序采用了順序結構,流程圖如下:4.2 塊初始化函數(shù)4.2.1 定時器初始化和pwm的模擬本方案中定時器采用的是8253定時器,該定時器有六種工作方式,我們需 要定時功能。8253的片選端是用來控制定時器工作方式的端口。該端口連接至 單片機io 口。只需要設置對應端口的電平就可以設置定時器的工作方式。定時 器的作用是用來控制電機的轉動時間。由于存在著電機這種設備,所以需要使用pwm進行調速。但是51單片機

33、并 不能直接輸出pwm,所以本設計中通過軟件模擬的方法產生pwm。軟件模擬主要 利用定時器的定時中斷功能。本設計采用的是51單片機,51單片機內部有兩個 定時器,分別是T0和T1,T0和T1是兩個完全一樣的16位定時器。定時器的作 用主要就是定時,在51單片機中定時器的工作方式是以中斷的方式進行的。設 定一個定時時間當定時器定時達到定時時間后,就會進入定時器中斷。在中斷中 可以處理相關的事件。在本設計中定時器中斷的作用是用來模擬產生pwm的。由于51單片機內部 不帶硬件pwm,所以需要模擬。模擬的思路是通過定時器設定時間來控制脈沖的 寬度,其控制思路如下圖所示:上述流程圖是定時器模擬產生pwm

34、的步驟,定時器設定的定時時間為1ms, 也就是說,定時時間到了 1ms定時器就會進入中斷,在初始化時,要首先設置好 單片機的工作方式,設置單片機的工作方式為方式1,定時時間設為1ms,通過 往寄存器TH和TL中裝入初始值實現(xiàn)計時時間的調節(jié)。定時時間到1ms時,程序 會自動進入中斷。在中斷服務程序中可以執(zhí)行相關的任務代碼。也就是說程序會 每隔1ms就會進入一次中斷,就會有一個較為準確的周期性。在中斷中主要進行的是按鍵的處理和pwm的模擬,按鍵的處理將在后續(xù)章 節(jié)中介紹。PWM如下圖所示:tT圖 4.2.1 PWM 圖在上圖中,可以看到pwm是一個方波。占空比是t/T,要讓單片機的管腳輸 出這個占

35、空比,只有通過定時器來實現(xiàn)。首先假設要輸出的pwm頻率為100hz, 也就是周期T為10ms。在上面已經提到設置單片機的定時時間為1ms,也就是每 個1ms會執(zhí)行一次中斷服務程序。在中斷服務程序里設一個變量flag,每進一 次中斷這個變量就會自增一次,那么變量自增的次數(shù)就可以用來表示時間,每加 一次就是過來1ms。利用這個時間變量就可以設置單片機輸出的PWM 了。假設現(xiàn) 在要設置的占空比是百分之30.那么就是說整個周期中,高電平時間占整個周期 的百分之30.也就是3ms。在程序中是通過判斷定時變量實現(xiàn)的,在第一次進入 中斷時,設置單片機的一個io 口輸出低電平。當?shù)谄叽芜M入中斷時,此時正好 是

36、7ms??刂七@個單片機的io 口輸出電平翻轉,輸出高電平。當?shù)谑芜M入中 斷的時候,此時是第10ms,控制這個io 口再次輸出低電平,如此反復,就可以 模擬出占空比為百分之30的pwm 了。程序代碼如下:void timer0( ) interrupt 1 定時器 0 工作方式 1TH0=0xff; 重裝計數(shù)初值TL0=0x38;重裝計數(shù)初值b+; get_key();按鍵查詢if(p10=0) ( delay(10);延時消抖,按鍵消抖if(p10=0) ( p00=0;p02=p01=p03=1;前進list_write_HZ_Str(6,20,“qianjin");) ) if

37、(p11=0) ( delay(10); if(p11=0) (p01=0;p02=p00=p03=1; list_write_HZ_Str(6,20,“houtui ");后退 ) ) if(p12=0) ( delay(10); if(p12=0) ( p02=0;p00=p01=p03=1;list_write_HZ_Str(6,20,"zuo "); 左邊if(p13=0)(delay(10);if(p13=0)(p03=0;p00=p01=p02=1;右邊運動list_write_HZ_Str(6,20,"you ");)if(p14

38、=0)(delay(10);if(p14=0)(p00=p02=p01=p03=1;list_write_HZ_Str(6,20,“停止 ");)if (key_up=1)if(X!=15)判斷是否計數(shù)到9999加一X=X+1;key_up=0;if (key_down=1) (if(X!=2)判斷是否計數(shù)到0( X=X-1;減一key_down=0; ) ) )4.1.2 12864液晶的初始化12864是一個帶字符庫的液晶,可以顯示128*64個點。12864液晶需要通過 軟件寫入命令和數(shù)據才可以顯示出字符。在初始化時首先需要寫入命令,讓 12864液晶進入顯示狀態(tài)。設定顯示地址

39、。指令是根據12864液晶的數(shù)據手冊編 寫的。12864液晶的初始化流程如下:程序代碼如下: * 寫指令代碼 * void wcode(uchar cd) 寫指令代碼(chkbusy();寫等待P2=0xff;使能 LCDRW=0;讀禁止RS=0;輸出設置P2=cd;寫數(shù)據代碼E=1;以下兩句產生下降沿E=0;)* 把顯示數(shù)據寫到內存單元中 *void wdata(uchar dat)(chkbusy();P2=0xff;RW=0;RS=1;P2=dat 八0xFF;E=1;E=0;寫顯示數(shù)據寫等待使能LCD讀禁止輸出設置寫數(shù)據代碼以下兩句產生下降沿*顯示 LCD 程序*void disrow

40、(uchar page,uchar col,uchar *temp) (uchar i;if(col<64) /左半平面(L=1;R=0;wcode(LCDPAGE+page);/ 寫指令頁wcode(LCDLINE+col); 寫指令行if(col+16)<64)如果字在左半平面顯示不了,轉到右半平面去(for(i=0;i<16;i+)wdata(*(temp+i);)else右半平面/寫字for(i=0;i<64-col;i+)/減去左邊數(shù),從右半平面第一位開始顯示wdata(*(temp+i); 寫字顯示L=0;R=1;wcode(LCDPAGE+page);wc

41、ode(LCDLINE); 寫指令行for(i=64-col;i<16;i+) wdata(*(temp+i);)else(L=0;R=1;wcode(LCDPAGE+page);wcode(LCDLINE+col-64);for(i=0;i<16;i+)wdata(*(temp+i);右半平面/寫指令頁寫字右半平面/寫指令頁寫指令行/寫字)/* 供調用 * 子程序 */ void display( int page, int col,uchar *temp)(disrow( page, col, temp); 顯示上半字disrow( page+1, col, temp+16);

42、顯示下半字)void disrow_ascii(uchar page,uchar col,uchar *temp) (uchar i;if(col<64) /左半平面 (L=1;R=0;wcode(LCDPAGE+page);/ 寫指令頁wcode(LCDLINE+col);寫指令行if(col+8)<64)如果字在左半平面顯示不了,轉到右半平面去(for(i=0;i<8;i+) 寫字 wdata(*(temp+i);)else右半平面(for(i=0;i<64-col;i+)減去左邊數(shù),從右半平面第一位開始顯示wdata(*(temp+i); 寫字顯示L=0;R=1;

43、右半平面wcode(LCDPAGE+page);/ 寫指令頁wcode(LCDLINE);寫指令行for(i=64-col;i<8;i+)寫字右半平面wdata(*(temp+i);) else (L=0;R=1;wcode(LCDPAGE+page);/ 寫指令頁wcode(LCDLINE+col-64); 寫指令行 for(i=0;i<8;i+)寫字wdata(*(temp+i); )void display_ascII( int page, int col,uchar *temp) (disrow_ascii( page, col, temp); /顯示上半字disrow_a

44、scii( page+1, col, temp+8);/顯示下半字)*lcd 初始化 * /void iniLCD(void)初始化(L=1;R=1;wcode(0x38);wcode(0x0f); 開顯示設置wcode(0xc0); 設置顯示啟動為第一行wcode(0x01); 清屏wcode(0x06); 畫面不動,光標右移。list_write_HZ_Str(0,18,電子科技“);list_write_HZ_Str(3,18,“前進”);list_write_HZ_Str(6,20,“停止”);4.2 按鍵檢測程序按鍵檢測程序是整個系統(tǒng)中人機交模塊的重要組成部分。按鍵起著輸入參數(shù) 的作

45、用。按鍵檢測的原理是掃描法。當按鍵被按下時,按鍵連接著單片機的IO 口就會被拉到地,此時,單片機io電平就會由高電平變成低電平。程序就是掃 描這個電平的變化來檢測按鍵的狀態(tài)的。一旦檢測到某個引腳被拉低,就會進行 相應的按鍵處理。在按鍵處理過程中需要有一些問題需要注意。其中最重要的就 是按鍵的消抖問題。按鍵的消抖是按鍵處理過程中不可避免的一環(huán),按鍵的抖動,就是按鍵在按下 過程中,按鍵的觸點之間的接觸并不是理想的直接接觸的,而是有一個抖動的過 程。在松開按鍵的過程中,也會有一個抖動的過程,具體如下圖所示:在上圖中,理想的按鍵檢測波形,是一個沒有任何毛刺的波形,按鍵一按下 就會接觸,一松開就會立馬分

46、離。但是在實際中,按鍵是由機械結構制作的,都 會有一定的彈性。所以觸點在分合時都會有圖中的抖動現(xiàn)象。根據一般經驗,人 手按下按鍵的時間大約在20ms。按下時的抖動時間大約在5ms,松手時抖動也是 5ms。如果不消除這段抖動,那么程序就會檢測到按鍵按下了多次。實際上并沒 有按下多次,只是按下了一次。按鍵的消抖方法主要由硬件法和軟件法兩種。硬件消抖的方法主要是用濾波電路 實現(xiàn)。在本設計中使用的是軟甲消抖的方法。軟件消抖使用的是延時的策略,由 于按鍵按下時,抖動的時間只有5ms,只要能夠在這段時間內不檢測按鍵的狀態(tài), 只在按鍵穩(wěn)定接觸的那段時間內檢測,就可以消除抖動的影響。所以只要檢測到 按鍵按下,

47、就立馬進行延時,延時時間為5ms。再檢測按鍵的狀態(tài),就可以保證 檢測到的是穩(wěn)定的狀態(tài)。在檢測到按鍵按下時,需要等待按鍵松手,此就使用 while函數(shù)來實現(xiàn),當按鍵的端口一直是低電平時,就一直循環(huán),等待松手,松 手時按鍵是從低電平跳變到高電平。然后執(zhí)行相關按鍵的處理任務。由于在松手 時,按鍵也會有一個抖動,如果不對這個按鍵抖動進行處理,那程序也會多次檢 測到按鍵按下。這個時刻的按鍵處理也是使用延時的方法實現(xiàn)的。按鍵檢測的流 程圖如下:檢測到按鍵按下延時5ms#*等待松手時間處理,*延時5ms.按鍵控制程序如下:if (key_up=1)(if(X!=15)判斷是否計數(shù)到9999(X=X+1;加一

48、key_up=0;)if (key_down=1)(if(X!=2)判斷是否計數(shù)到0(X=X-1;減一key_down=0;) )4.3 電機運行狀態(tài)控制程序4.3.1 電機控制方法簡介電機控制采用的是電機驅動控制。單片機對電機的控制采用的是使能和pwm 法。電機驅動每個通道有一個使能端。兩個使能端如果給的是相同狀態(tài)的電平, 那么電機就不會轉動。如果兩個使能端電平狀態(tài)不同電機就會轉動,轉動的方向 和兩個電平的狀態(tài)有關??刂苾蓚€電機的運動方向就是通過控制每個電機的使能 端來實現(xiàn)的。電機運行速度的判定采用的是pwm的方法。使能端的信號以pwm 的方式輸入進去。就可以調節(jié)電機的轉速。4.3.2 電機

49、速度控制策略由于要使電機能夠穩(wěn)定的在3m/s的狀態(tài)下運行,所以需要對電機的運行狀態(tài)進 行測速。電機的測速是通過測量電機的脈沖數(shù)進行的。電機采用的是光耦測速。 每轉一圈光耦輸出兩個脈沖數(shù)。在設計中采用的電機是傳送帶傳輸?shù)姆绞?,電機 主動傳動飛輪采用的是直徑為20cm的圓盤。要想保證機械手每秒運行3m,即相 當于電機每秒要轉4.77圈。也就是電機每秒輸出的脈沖數(shù)至少要有9.55個脈沖。 由于不存在9.55個脈沖數(shù)的情況,所以要求電機測速機構每秒中要輸出10個脈 沖。所以程序里需要對電機的速度進控制。電機各傳動機構速度之間的對應關系 如下表:電機輸出脈沖數(shù)(HZ)電機轉速(R/S)機械手移動速度(M

50、/S)210.628表1電機各傳動機構速度之間的對應關系表在上表中可以發(fā)現(xiàn)電機每秒輸出1個脈沖,機械手移動速度是0.314m/s。要想機械手移動速度在3m/s以上,就需要電機每秒輸出10個脈沖數(shù)以上。所以在程序中要實時監(jiān)控電機的 轉速。由于所采用的51單片機內部沒有輸入捕獲模塊,需要通過軟件來計算輸 入的脈沖頻率。脈沖頻率的獲取方法是依靠定時器和單片機的外部中斷實現(xiàn)的,51單片機 的外部中斷引腳只要輸入一個跳變的波形,就會觸發(fā)一個中斷。觸發(fā)中斷后會進 入中斷服務函數(shù),在中斷服務函數(shù)里開啟定時器,連續(xù)計數(shù)到10個脈沖,說明 電機轉了 5圈,記到第五圈時就停止定時器定時。此時將10個脈沖除以這段時

51、 間內的時間就是頻率。因為電機轉一圈輸出的是兩個脈沖。所以再將這個頻率除 以2就是得到了電機的轉速。檢測到電機的實時速度后,需要換算成機械手的移動速度,在上標中,已經 提到了電機轉速和機械手移動速度之間的關系根據表格的關系,至少要保證電機 每秒輸出的脈沖數(shù)在10個以上。當檢測到電機轉速低于是個脈沖每秒的時候, 就增大占空比,提高電機轉速。速度控制的流程圖如下:本次使用的是8253外部定時器驅動8255驅動,首先進行外部定時器初始化, init8253();(A 1=1; 寫狀態(tài)字A 0=1;P0=0XB4; 設定計數(shù)器2工作方式2A 1=1;A 0=0;P0=0X FF; 裝載計數(shù)器2初值P0

52、=0X FF;A 0=1;A 1=1;P0=0X30; 設定計數(shù)器0工作方式0A 1=0;A 0=0;P0=0XFF; 裝載計數(shù)器0初值P0=0XFF;)主程序中調用8253進行初始化。下面是電機驅動程序:if(p10=0)(delay(10);延時消抖,按鍵消抖 51if(p10=0)(p00=0;p02=p01=p03=1;前進list_write_HZ_Str(6,20,“qianjin");)if(p11=0)(delay(10);if(p11=0)(p01=0;p02=p00=p03=1;list_write_HZ_Str(6,20,“houtui ");后退)i

53、f(p12=0)(delay(10);if(p12=0)(p02=0;p00=p01=p03=1;list_write_HZ_Str(6,20,“zuo)if(p13=0)(delay(10);if(p13=0)(p03=0;p00=p01=p02=1;list_write_HZ_Str(6,20,“you)if(p14=0)(delay(10);if(p14=0)(p00=p02=p01=p03=1;list_write_HZ_Str(6,20,“停止 )4.4機械爪控制程序);左邊右邊運動););機械爪是用來控制抓取物體的一個機構,機械爪是由繼電器和電磁閥機構以 及機械傳動機構構成的一個幾

54、點結合的設備??刂茩C械爪的抓取和放開主要是控 制電磁閥的吸合和關閉的。電磁閥和是由繼電器驅動的。繼電器模塊由于采用的 是三極管驅動,三極管只要基極給一個低電平,三極管就會導通,繼電器就會吸 合。否則繼電器斷開,所以要控制繼電器吸合只需要給三極管的基極一個電平就 可以。三極管的基極接到的是單片機的引腳,所以只需要控制引腳輸出低電平就 可以控制繼電器吸合,反之,如果要繼電器斷開,只需要控制這個引腳輸出高電 平就可以控制繼電器斷開。繼電器的吸合與斷開控制的又是電磁閥的吸合與斷開。 所以控制電磁閥吸合還是斷開只需要控制單片機io 口輸出高電平還是低電平即 可??刂瞥绦虼a如下:while(1)(If(zhua) Dianci=0; Else If(fang) Dianci=1; )4.5鎖存器74LS573 控制程序由于單片機端口的資源有限,為了能夠驅動更多的外設,使用了鎖存器 74LS573來擴展io 口,鎖存器具有數(shù)據鎖存的作用,當器件的輸入端信號消失 時輸入的的信號還會保存,擴展IO 口時,只需要將需要送入端口的數(shù)據送入鎖 存器,然后將選通對應的鎖存器就可以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論