版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、北方民族大學(xué)學(xué)士學(xué)位論文 論文題目: 基于單片機(jī)的卷曲糾偏系統(tǒng)的設(shè)計(jì) 院(部)名 稱(chēng): 電氣信息工程學(xué)院 學(xué) 生 姓 名: 趙斌 專(zhuān) 業(yè): 電氣自動(dòng)化 學(xué) 號(hào): 20093401 指導(dǎo)教師姓名: 鄭華 論文提交時(shí)間: 2013年5月20日 論文答辯時(shí)間: 2013年5月25日 學(xué)位授予時(shí)間: 北方民族大學(xué)教務(wù)處 摘 要隨著工業(yè)生產(chǎn),社會(huì)的進(jìn)步的發(fā)展,人們對(duì)工業(yè)生產(chǎn)的生產(chǎn)線(xiàn)的自動(dòng)化要求越來(lái)越高。在自動(dòng)生產(chǎn)線(xiàn)中,糾偏系統(tǒng)的作用更顯得尤為突出,它的主要作用是檢測(cè)生產(chǎn)線(xiàn)上的物料是否出現(xiàn)偏移,當(dāng)出現(xiàn)偏移的時(shí)候,糾偏系統(tǒng)可以對(duì)物料進(jìn)行調(diào)整控制,讓其恢復(fù)到正常位置,以保證卷繞、分切的整齊。本文論述了一種由c
2、ortex-m3控制器組成的具有自動(dòng)模式和手動(dòng)模式的糾偏系統(tǒng)。該系統(tǒng)由光電傳感器電路、時(shí)鐘和復(fù)位電路、tft觸摸屏電路、控制輸出電路和處理器模塊構(gòu)成。通過(guò)光電傳感器檢測(cè)邊線(xiàn)的位置,拾取邊線(xiàn)位置偏差信號(hào),當(dāng)發(fā)現(xiàn)出現(xiàn)偏差時(shí),啟動(dòng)pwm信號(hào)和方向信號(hào)控制輸出電路輸出,及時(shí)糾正位置偏差。系統(tǒng)使用tft顯示屏對(duì)系統(tǒng)工作狀態(tài)、工作模式進(jìn)行顯示,使用觸摸屏界面上的按鈕對(duì)工作模式、手動(dòng)模式下左移和右移進(jìn)行切換。同時(shí)系統(tǒng)還有左、右限位開(kāi)關(guān),起到防止系統(tǒng)失控的作用。關(guān)鍵詞:自動(dòng)控制,cortex-m3,糾偏系統(tǒng)abstractwith the development of industrial productio
3、n, automation of production lines have become increasingly demanding. in automated production lines, the correction system is particularly prominent role, his main role is to detect whether the material production line offset when offset correction system can adjust the material control, to return i
4、t to its normal position, in order to ensure winding, slitting and tidy.this paper discusses a cortex-m3 controller correction system with automatic and manual modes. the system uses the position of the photoelectric sensor detects edges, pick up the edge position deviation signal to start the pwm s
5、ignal and the direction signal control output circuit output, and promptly correct position deviation when the deviation. system uses tft screen display system status, operating mode, use the buttons on the touch-screen interface on the operating mode, manual mode to switch the left and the right. s
6、ystem as well as the left and right limit switch, play a role to prevent the system out of control.keywords: automatic control, cortex-m3, the correction system目 錄摘 要iabstractii目 錄iii第1章 系統(tǒng)總體設(shè)計(jì)11.1 系統(tǒng)背景及意義11.2 設(shè)計(jì)任務(wù)及要求11.3 系統(tǒng)總體設(shè)計(jì)方案1第2章 系統(tǒng)硬件各模塊設(shè)計(jì)32.1 stm32簡(jiǎn)介32.2 stm32結(jié)構(gòu)52.3 stm32處理器硬件電路設(shè)計(jì)62.4 電源電路設(shè)計(jì)72
7、.5 光電傳感器電路設(shè)計(jì)82.6 tft觸摸屏電路設(shè)計(jì)92.7 控制電路設(shè)計(jì)132.7.1 pwm簡(jiǎn)介132.7.2 stm32的pwm模式132.7.3 控制輸出電路設(shè)計(jì)15第3章 系統(tǒng)編程環(huán)境搭建及軟件設(shè)計(jì)173.1 系統(tǒng)軟件設(shè)計(jì)173.2 顯示模塊設(shè)計(jì)173.3觸摸屏軟件設(shè)計(jì)203.3 控制輸出軟件設(shè)計(jì)283.3 顯示界面設(shè)計(jì)29第4章 系統(tǒng)調(diào)試與總結(jié)314.1 jlink介紹314.2 軟件調(diào)試324.3 總結(jié)34致 謝35參考文獻(xiàn)36附 錄 137i北方民族大學(xué)2013屆碩士學(xué)位論文 攻讀學(xué)位期間科研成果北方民族大學(xué)學(xué)士學(xué)位論文第1章 系統(tǒng)總體設(shè)計(jì)1.1 系統(tǒng)背景及意義隨著現(xiàn)代科學(xué)技
8、術(shù)水平的不斷提高,工廠生產(chǎn)自動(dòng)化水平也越來(lái)越高。目前,物料的放卷、收卷、傳送等操作已基本實(shí)現(xiàn)自動(dòng)化,然而在生產(chǎn)流水線(xiàn)中經(jīng)常會(huì)因?yàn)楦鞣N原因?qū)е挛锪显趥魉瓦^(guò)程中產(chǎn)生偏差,比如物料在放卷、收卷、傳送時(shí)會(huì)發(fā)生縱向偏移;物料在前后進(jìn)行拼接的過(guò)程中,可能前后拼接不整齊等等1。這些問(wèn)題在工業(yè)生產(chǎn)中都是不允許出現(xiàn)的,所以我們需要設(shè)計(jì)一套具有自動(dòng)糾偏功能的控制系統(tǒng)。1.2 設(shè)計(jì)任務(wù)及要求設(shè)計(jì)一糾偏控制系統(tǒng),跟蹤輸送過(guò)程的產(chǎn)品物料的標(biāo)志線(xiàn)或者邊緣線(xiàn),對(duì)此過(guò)程中的位置偏移進(jìn)行修正,保證物料在卷繞、分切時(shí)的整齊性。該系統(tǒng)可以自動(dòng)檢測(cè),并對(duì)出現(xiàn)的偏差進(jìn)行修正,同時(shí)還具有手動(dòng)調(diào)整的功能。設(shè)計(jì)的糾偏控制系統(tǒng)具有自動(dòng)跟蹤、檢
9、測(cè)、糾偏等功能。系統(tǒng)采用stm32單片機(jī)實(shí)現(xiàn),通過(guò)光電傳感器檢測(cè)標(biāo)志線(xiàn)和邊緣線(xiàn),對(duì)出現(xiàn)的偏差發(fā)出信號(hào),tft屏顯示系統(tǒng)工作狀態(tài),工作模式,觸摸屏控制系統(tǒng)的工作模式,手動(dòng)模式下微調(diào)物料。1.3 系統(tǒng)總體設(shè)計(jì)方案系統(tǒng)工作原理:光電傳感器檢測(cè)物料的邊緣線(xiàn)和標(biāo)志線(xiàn),獲取位置的偏差信號(hào),當(dāng)該信號(hào)超過(guò)一定值后,處理器識(shí)別并邏輯運(yùn)算,然后啟動(dòng)位置糾偏控制執(zhí)行裝置對(duì)物料進(jìn)行位置調(diào)整,直到物料回到正常位置,系統(tǒng)停止糾偏控制執(zhí)行裝置。糾偏控制執(zhí)行裝置通過(guò)脈沖信號(hào)和方向信號(hào)控制,系統(tǒng)工作狀態(tài)通過(guò)顯示屏顯示,手動(dòng)調(diào)整操作通過(guò)觸摸屏實(shí)現(xiàn)。系統(tǒng)采用了stm32f103處理器,結(jié)構(gòu)框圖如下圖所示,由光電傳感器電路、時(shí)鐘和復(fù)
10、位電路、tft觸摸屏電路、控制輸出電路和處理器模塊構(gòu)成。其中光電傳感器電路檢測(cè)物料是否超出邊界,當(dāng)超出邊界的時(shí)候,發(fā)出控制信號(hào)。在系統(tǒng)控制中需要兩種電源,分別是3.3v和5v,3.3v用于驅(qū)動(dòng)tft觸摸顯示屏電路,5v用于驅(qū)動(dòng)光電傳感器電路和控制輸出電路,所以電源電路為系統(tǒng)提供這兩種所需的電源。tft觸摸屏電路是系統(tǒng)的人機(jī)接口電路,通過(guò)tft觸摸屏可以顯示系統(tǒng)狀態(tài)、系統(tǒng)工作模式(自動(dòng)模式或者手動(dòng)模式)、以及在手動(dòng)模式下通過(guò)觸摸左右按鍵來(lái)控制輸出。作為系統(tǒng)的核心,stm32f103在工作中檢測(cè)光電傳感器信號(hào),當(dāng)信號(hào)有效時(shí),配置參數(shù)控制電路輸出信號(hào),同時(shí)控制tft觸摸屏顯示系統(tǒng)狀態(tài)和工作模式。圖1
11、 系統(tǒng)結(jié)構(gòu)框圖第2章 系統(tǒng)硬件各模塊設(shè)計(jì)2.1 stm32簡(jiǎn)介stm32系列單片機(jī)是為高性能、低成本、低功耗的嵌入式cortex-m3內(nèi)核。按性能分成兩個(gè)不同的系列:stm32f103“增強(qiáng)型”系列和stm32f101“基本型”系列。增強(qiáng)型系列時(shí)鐘頻率達(dá)到72mhz,是同類(lèi)產(chǎn)品中性能最高的產(chǎn)品;基本型時(shí)鐘頻率為36mhz,以16位產(chǎn)品的價(jià)格得到比16位產(chǎn)品大幅提升的性能,是16位產(chǎn)品用戶(hù)的最佳選擇。兩個(gè)系列都內(nèi)置32k到128k的閃存,不同的是sram的最大容量和外設(shè)接口的組合。時(shí)鐘頻率72mhz時(shí),從閃存執(zhí)行代碼,stm32功耗36ma,是32位市場(chǎng)上功耗最低的產(chǎn)品,相當(dāng)于0.5ma/mhz
12、2。stm32的i/o接口的驅(qū)動(dòng)電壓為2.0-3.6v,內(nèi)部有經(jīng)過(guò)調(diào)校的rc振蕩電路40khz和8mhz ,用于cpu的鎖相環(huán)pll。時(shí)鐘rtc采用32khz晶振。stm32具有dma控制器,總共有12個(gè)通道。分別包含有,usart,dac,spi,定時(shí)器,adc,i2c。a/d轉(zhuǎn)換器有2個(gè),12位精度,采樣時(shí)間都是us級(jí),采樣電壓在0-3.6 v,具有雙采樣和保持能力。stm32集成一個(gè)內(nèi)部溫度傳感器,通過(guò)a/d采用可以獲取,不過(guò)溫度的精度不高。stm32具有高達(dá)112個(gè)的fast的i/o端口,根據(jù)型號(hào)有26,37,51,80,和112的i/o端口,所有的端口都可以映射到16個(gè)外部中斷向量。
13、i/o端口都可以接受5v電壓。具有11個(gè)定時(shí)器,16位的定時(shí)器4個(gè),每個(gè)有4個(gè)獨(dú)立的ic/oc/pwm或者脈沖計(jì)數(shù)器。6個(gè)通道能配置成pwm輸出,還具有2個(gè)看門(mén)狗定時(shí)器,systick定時(shí)器,24位倒計(jì)數(shù)器,2個(gè)16位基本定時(shí)器用于驅(qū)動(dòng)dac。通信接口包括有2個(gè)i2c,5個(gè)usart,3個(gè)spi,can總線(xiàn)(2.0b),usb 2.03。本文采用的stm32f103屬于stm32f103xx,起特點(diǎn)有如下:stm32f103xx集成flash和sram存儲(chǔ)器,具有arm cortex-m3內(nèi)核。內(nèi)置多達(dá)128kb的嵌入式flash,存儲(chǔ)程序和數(shù)據(jù)。配置時(shí)鐘具有多個(gè)預(yù)比較器可以用于配置ahb頻率
14、,包括高速apb(pb2)和低速apb(apb1),高速apb最高的頻率為72mhz,低速apb最高的頻率為36mhz。啟動(dòng)模式:通過(guò)手動(dòng)選擇boot0和boot1的連接方式可以從不同的模式啟動(dòng)。stm32有三種啟動(dòng)模式,分別為:用戶(hù)flash,系統(tǒng)存儲(chǔ)器,sram。當(dāng)開(kāi)關(guān)p1的boot0為0時(shí),系統(tǒng)從用戶(hù)flash啟動(dòng);當(dāng)boot0為1時(shí),boot1為0時(shí),系統(tǒng)從系統(tǒng)存儲(chǔ)器啟動(dòng);當(dāng)boot0為1時(shí),boot1為1時(shí),系統(tǒng)從sram啟動(dòng)4。2.2 stm32結(jié)構(gòu)stm32f103xx的總體結(jié)構(gòu)框圖如圖2-1所示。內(nèi)部總線(xiàn)和兩條apb總線(xiàn)將片上系統(tǒng)和外設(shè)資源緊密地連接起來(lái),其中內(nèi)部總線(xiàn)是主系統(tǒng)總
15、線(xiàn),連接了cpu、存儲(chǔ)器和系統(tǒng)時(shí)鐘等。apb1總線(xiàn)連接高速外設(shè),apb2總線(xiàn)連接系統(tǒng)通用外設(shè)和中斷控制5。i/o端口包括pa、pb、pc、pd、pe、pf和pg七個(gè)16位的端口,其它的外設(shè)接口引腳都和i/o端口的引腳作用復(fù)用,圖中的af即表示作用復(fù)用引腳。stm32f103xx的總體內(nèi)核結(jié)構(gòu)圖如圖2-1所示:圖2-1 stm32f103xx內(nèi)核結(jié)構(gòu)圖2.3 stm32處理器硬件電路設(shè)計(jì)這是stm32的最小系統(tǒng)原理圖,復(fù)位引腳nrst接一個(gè)10k電阻到vcc,接一個(gè)104的電容到地,即可構(gòu)成上電復(fù)位的電路。osc_in和osc_out之間連接一個(gè)8mhz晶振,晶振兩端分別對(duì)地連接接20pf電容,
16、即構(gòu)成單片機(jī)的外部振蕩時(shí)鐘電路。osc32_in和osc32_out之間連接32.768khz晶振,22pf的c1和c2電容連接在晶振和地之間,這個(gè)晶振是為系統(tǒng)內(nèi)部時(shí)鐘,即萬(wàn)年歷時(shí)鐘源。p1為stm32啟動(dòng)模式選擇開(kāi)關(guān),p1的3腳和4腳,通過(guò)10k電阻分別連接cpu的boot1管腳和boot0管腳,p1的1、2腳連接3.3v電平,5、6腳接地,通過(guò)手動(dòng)選擇boot0和boot1的連接方式可以從不同的模式啟動(dòng)。stm32有三種啟動(dòng)模式,分別為:用戶(hù)flash,系統(tǒng)存儲(chǔ)器,sram。當(dāng)開(kāi)關(guān)p1的boot0為0時(shí),系統(tǒng)從用戶(hù)flash啟動(dòng);當(dāng)boot0為1時(shí),boot1為0時(shí),系統(tǒng)從系統(tǒng)存儲(chǔ)器啟動(dòng);
17、當(dāng)boot0為1時(shí),boot1為1時(shí),系統(tǒng)從sram啟動(dòng)。電路圖如圖2-2所示。圖2-2 stm32最小系統(tǒng)原理圖2.4 電源電路設(shè)計(jì)cpu內(nèi)核電源為3.3v,觸摸顯示屏也為3.3v,其他外設(shè)電路5v,電源有兩種不同的電源,所以需要設(shè)計(jì)一個(gè)電源供電電路為cpu、觸摸顯示屏和外設(shè)供電。供電電源電路由usb接口供電,如圖2-3所示。電路中連接了兩個(gè)usb,一個(gè)usb_232接口連接usb轉(zhuǎn)串口芯片,作為系統(tǒng)在開(kāi)發(fā)時(shí)調(diào)試輸出用;一個(gè)usb接口為usb設(shè)備的接口。s2為電源開(kāi)關(guān),ams1117-3.3芯片是集成穩(wěn)壓芯片,芯片把從usb取得的5v電壓轉(zhuǎn)換輸出為3.3v電壓6。3.3v電壓連接了r21電阻
18、和發(fā)光二極管d1,用于指示電源電路工作狀態(tài)。電路中c14、c15、c16、c17為電源的濾波電路,提高電源系統(tǒng)的抗干擾能力。ams1117-3.3穩(wěn)壓芯片輸出的3.3v,供給stm32和觸摸顯示屏使用。圖2-3 電源電路原理圖2.5 光電傳感器電路設(shè)計(jì)光電傳感器輸入電路用到的硬件有限位開(kāi)關(guān),光電傳感器。限位開(kāi)關(guān)是一種控制元件,它利用生產(chǎn)機(jī)械某些運(yùn)動(dòng)部件的碰撞來(lái)發(fā)出控制指令的主令電器,在本套系統(tǒng)中作為安全開(kāi)關(guān)使用,當(dāng)材料超出所定界限時(shí),進(jìn)入中斷,產(chǎn)生警告信息,通知操作人員。光電傳感器是一種能把光量的變化轉(zhuǎn)換成電量變化的器件。它利用被檢測(cè)物體對(duì)光束的遮擋或反射,由同步回路選通電路,從而檢測(cè)物體有無(wú)
19、的。光電傳感器把檢測(cè)的信號(hào)通過(guò)輸出口供給給單片機(jī),讓單片機(jī)控制步進(jìn)電機(jī),調(diào)整物料位置。傳感器與單片機(jī)接口電路如圖所示: 圖2-4 光電傳感器檢測(cè)電路圖2-4為光電傳感器電路圖,g1a和g2a兩個(gè)光電傳感器的電源與電源vcc相連,gnd與地線(xiàn)相連,信號(hào)輸出端分別經(jīng)過(guò)5.1k的限流電阻后,與ic2光耦連接,光耦的輸出端經(jīng)過(guò)5.1k上拉電阻拉高,同時(shí)輸出端還與,輸出端與單片機(jī)的pb0 端和pb1端相連。電路中當(dāng)光耦輸入端為高電平時(shí),光耦內(nèi)部二極管導(dǎo)通,射級(jí)輸出端導(dǎo)通,單片機(jī)檢測(cè)到電平為低電平。當(dāng)光耦輸入端為低電平時(shí),光耦內(nèi)部二極管截止,射級(jí)輸出截止,單片機(jī)檢測(cè)到的電平為高電平。系統(tǒng)默認(rèn)時(shí)低電平有效。
20、光耦在電路具有隔離作用,提高了系統(tǒng)的穩(wěn)定的性。2.6 tft觸摸屏電路設(shè)計(jì)2.6.1 tft顯示屏tft-lcd即薄膜晶體管液晶顯示器, 主要用于顯示文本及圖形信息。液晶顯示模塊是一種將液晶顯示器件、連接件、集成電路線(xiàn)路板、背光源等裝配在一起的組件。液晶顯示屏具有輕薄、體積小、功耗低、易于彩色化、畫(huà)質(zhì)高而且不易閃爍燈有點(diǎn)5。tft-lcd也被叫做真彩液晶顯示器。tft液晶顯示屏的特點(diǎn)是亮度好、對(duì)比度高、層次感強(qiáng)、顏色鮮艷,但也存在著比較耗電和成本過(guò)高的不足。tft型的液晶顯示器主要的構(gòu)成包括:螢光管、導(dǎo)光板、偏光板、濾光板、玻璃基板、配向膜、液晶材料、薄模式晶體管等等。我們這里使用的一種ili
21、9320模塊有如下特點(diǎn):顯示屏的大小2.8寸,分辨率320240,16位真彩色,自帶有xpt2046芯片的觸摸屏,16位并行的通用的接口,觸摸屏數(shù)據(jù)通過(guò)spi接口。該模塊采用的控制器為ili9320。觸摸屏顯示模塊采用80并口方式與外部連接,采用16位數(shù)據(jù)線(xiàn)該模塊的80并口有如下一些信號(hào)線(xiàn):cs:觸摸屏顯示片選信號(hào)。wr:向觸摸屏顯示寫(xiě)入數(shù)據(jù)。rd:從觸摸屏顯示讀取數(shù)據(jù)。d15:0:16位雙向數(shù)據(jù)線(xiàn)。rst:硬復(fù)位觸摸屏顯示。rs:命令/數(shù)據(jù)標(biāo)志(0,讀寫(xiě)命令;1,讀寫(xiě)數(shù)據(jù))。觸摸屏顯示模塊的rst復(fù)位信號(hào)線(xiàn)與stm32的復(fù)位腳相連接,觸摸屏顯示的背光控制需要io口來(lái)控制觸摸屏顯示的背光。觸摸
22、屏顯示總共需要的io口數(shù)目為21個(gè)。模塊的控制器為ili9320,該控制器自帶顯存,其顯存總大小為172820(240*320*18/8),即18位模式(26萬(wàn)色)下的顯存量。模塊的16位數(shù)據(jù)線(xiàn)與顯寸的對(duì)應(yīng)關(guān)系為565方式,如下圖所示:圖2-5 tft顯示屏數(shù)據(jù)與顯存關(guān)系在計(jì)算機(jī)中,常見(jiàn)的顏色有 8位、16位、24位、32位色,其中24位及以上稱(chēng)為真彩,我們這里使用的是16位,最低5位代表藍(lán)色,中間6位為綠色,最高5位為紅色。數(shù)值越大,表示該顏色越深。我們這里使用的是rgb模式,rgb色彩就是常說(shuō)的三原色,r代表red(紅色),g代表green(綠色),b代表blue(藍(lán)色)。2.6.2 觸摸
23、屏我們常用液晶的觸摸屏,大都是電阻式觸摸屏了,電阻屏與現(xiàn)在手機(jī)流行的電容優(yōu)勢(shì)在于,操作穩(wěn)定性好,需要一定力度才能觸發(fā)事件,適合控制工業(yè)場(chǎng)合。tftlcd自帶的觸摸屏屬于電阻式觸摸屏,下面簡(jiǎn)單介紹下電阻式觸摸屏的原理。電阻式觸摸屏利用壓力感應(yīng)進(jìn)行控制。電阻觸摸屏的主要部分是一塊與顯示器表面非常配合的電阻薄膜屏,這是一種多層的復(fù)合薄膜,它以一層玻璃或硬塑料平板作為基層,表面涂有一層透明氧化金屬(透明的導(dǎo)電電阻)導(dǎo)電層,上面再蓋有一層外表面硬化處理、光滑防擦的塑料層、它的內(nèi)表面也涂有一層涂層、在他們之間有許多細(xì)小的(小于1/1000英寸)的透明隔離點(diǎn)把兩層導(dǎo)電層隔開(kāi)絕緣8。當(dāng)觸摸屏幕時(shí),兩層導(dǎo)電層在
24、觸摸點(diǎn)位置就有了接觸,電阻發(fā)生變化,在x和y兩個(gè)方向上產(chǎn)生信號(hào),然后送觸摸屏控制器??刂破鱾蓽y(cè)到這一接觸并計(jì)算出(x,y)的位置,再根據(jù)獲得的位置模擬鼠標(biāo)的方式運(yùn)作9。這就是電阻觸摸屏技術(shù)的原理。電阻觸摸屏的有,不怕灰塵、水汽和油污;可以用任何物體來(lái)觸摸,可以用來(lái)寫(xiě)字畫(huà)畫(huà);電阻觸摸屏的精度只取決于a/d轉(zhuǎn)換精度等優(yōu)點(diǎn)。觸摸屏都需要一個(gè)ad轉(zhuǎn)換器,一般來(lái)說(shuō)是需要一個(gè)控制器。觸摸屏顯示模塊選擇的是四線(xiàn)電阻式觸摸屏,這種控制芯片的種類(lèi)有比較多,如:ads7846ak4182、xpt2046、ads7843、和tsc2046等等。這幾款芯片的驅(qū)動(dòng)基本上是一樣,且封裝也一樣,很方便實(shí)現(xiàn)替換。觸摸屏顯示模
25、塊自帶的觸摸屏控制芯片為xpt2046。xpt2046是一款4導(dǎo)線(xiàn)制觸摸屏控制器,內(nèi)含12位分辨率125khz轉(zhuǎn)換速率逐步逼近型a/d轉(zhuǎn)換器10。xpt2046支持從1.5v到5.25v的低電壓i/o接口。xpt2046能通過(guò)執(zhí)行兩次a/d轉(zhuǎn)換查出被按的屏幕位置, 除此之外,還可以測(cè)量加在觸摸屏上的壓力10。內(nèi)部自帶2.5v參考電壓可以作為輔助輸入、溫度測(cè)量和電池監(jiān)測(cè)模式之用,電池監(jiān)測(cè)的電壓范圍可以從0v到6v。xpt2046片內(nèi)集成有一個(gè)溫度傳感器。在2.7v的典型工作狀態(tài)下,關(guān)閉參考電壓,功耗可小于0.75mw。工作溫度范圍為-40+8510。2.6.3 電路設(shè)計(jì)tft觸摸顯示屏電路如圖2
26、-6所示。觸摸屏和顯示屏集成在一個(gè)模塊中,模塊接口如電路中l(wèi)cd1接口。引腳定義如下:lcd_cs:觸摸屏顯示片選信號(hào)。lcd_wr:向觸摸屏顯示寫(xiě)入數(shù)據(jù)。lcd_rd:從觸摸屏顯示觸顯示cd讀取數(shù)據(jù)。lcd_d15:0:16位雙向數(shù)據(jù)線(xiàn)。reset:硬復(fù)位觸摸屏顯示。lced_rs:命令/數(shù)據(jù)標(biāo)志(0,讀寫(xiě)命令;1,讀寫(xiě)數(shù)據(jù))。lcd_bl:觸摸屏背光源的控制引腳。t_miso:觸摸屏串行數(shù)據(jù)輸出端。t_mosi:觸摸屏串行數(shù)據(jù)輸入端。t_sck:觸摸屏?xí)r鐘信號(hào)端。t_cs:觸摸屏片選端。t_pen:觸摸屏中斷輸出端。圖2-6 觸摸顯示屏接口電路lcd的控制信號(hào)線(xiàn)lcd_cs連接stm32的
27、pc9管腳, lcd_rs連接pc8管腳, lcd_wr連接pc7管腳, lcd_rd連接pc6管腳。觸摸屏的數(shù)據(jù)總線(xiàn)t_miso觸摸屏串行數(shù)據(jù)輸出端連接stm32芯片的pc2管腳,t_mosi觸摸屏串行數(shù)據(jù)輸入端連接stm32芯片的pc3管腳,t_sck觸摸屏?xí)r鐘信號(hào)端連接stm32芯片的的pc0管腳。t_cs觸摸屏片選端stm32芯片的的pc13管腳,t_pen:觸摸屏中斷輸出端連接stm32芯片的的pc1管腳。電路中c12、c13為3.3v和5v電源的濾波電路。2.7 控制電路設(shè)計(jì)2.7.1 pwm簡(jiǎn)介pwm是pulse width modulation的縮寫(xiě),中文意思就是脈沖寬度調(diào)制,
28、簡(jiǎn)稱(chēng)脈寬調(diào)制11。它是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),其控制簡(jiǎn)單、靈活和動(dòng)態(tài)響應(yīng)好等優(yōu)點(diǎn)而成為電力電子技術(shù)最廣泛應(yīng)用的控制方式,其應(yīng)用領(lǐng)域包括測(cè)量,通信,功率控制與變換,電動(dòng)機(jī)控制、伺服控制、調(diào)光、開(kāi)關(guān)電源,甚至某些音頻放大器,因此研究基于pwm技術(shù)的正負(fù)脈寬數(shù)控調(diào)制信號(hào)發(fā)生器具有十分重要的現(xiàn)實(shí)意義12。目前,運(yùn)動(dòng)控制系統(tǒng)或電動(dòng)機(jī)控制系統(tǒng)中實(shí)現(xiàn)pwm的方法主要有傳統(tǒng)的數(shù)字電路方式、專(zhuān)用的pwm集成電路、單片機(jī)實(shí)現(xiàn)方式和可編程邏輯器件實(shí)現(xiàn)方式。2.7.2 stm32的pwm模式 脈沖寬調(diào)制模式可以產(chǎn)生一個(gè)由 tim1_arr寄存器確定頻、由 tim1_ccrx寄存
29、器確定占空比的信號(hào)。在 tim1_ccmrx寄存器中的 ocxm位寫(xiě)入“110”(pwm模式 1)或“111”(pwm模式 2),能夠獨(dú)地設(shè)置每個(gè)通道工作在 pwm模式,每個(gè) ocx輸出一路pwm。必須通過(guò)設(shè)置 tim1_ccmrx寄存器 ocxpe位使能相應(yīng)的預(yù)裝載寄存器,最后還要設(shè)置 tim1_cr1寄存器的 arpe位使能自動(dòng)重裝載的預(yù)裝載寄存器(在向上計(jì)數(shù)或中心對(duì)稱(chēng)模式中)。 因?yàn)閮H當(dāng)發(fā)生一個(gè)更新事件的時(shí)候,預(yù)裝載寄存器才能被傳送到影子寄存器,因此在計(jì)數(shù)器開(kāi)始計(jì)數(shù)之前,必須通過(guò)設(shè)置 tim1_egr寄存器中的 ug位來(lái)初始化所有的寄存器。 ocx的極性可以通過(guò)軟件在 tim1_ccer
30、寄存器中的 ccxp位設(shè)置,它可以設(shè)置為高電平有效活和低電平有效。ocx輸出通過(guò) ccxe、ccxne、moe、ossi和ossr位(在 tim1_ccer和 tim1_bdtr寄存器中)的組合控制。在 pwm模式(模式 1或模式 2)下,tim1_cnt和 tim1_ccrx始終在進(jìn)比較,(依據(jù)計(jì)數(shù)器的計(jì)數(shù)方向)以確定是否符合 tim1_ccrxtim1_cnt或者tim1_cnttim1_ccrx。根據(jù) tim1_cr1寄存器中 cms位的狀態(tài),定時(shí)器能夠產(chǎn)生邊沿對(duì)齊的或中央對(duì)齊的 pwm信號(hào)。pwm 邊沿對(duì)齊模式 向上計(jì)數(shù)配置 當(dāng)tim1_cr1寄存器中的dir位為低的時(shí)候執(zhí)向上計(jì)數(shù)。當(dāng)
31、tim1_cnttim1_ccrx時(shí)參考信號(hào) ocxref為低,否則為高。如果 tim1_ccrx中的比較值大于 tim1_arr中的自動(dòng)重裝載值,則ocxref保持為“1。該模式下能產(chǎn)生 0的 pwm波形。 pwm 中央對(duì)齊模式 當(dāng)tim1_cr1寄存器中的cms位為 00時(shí)為中央對(duì)齊模式(所有其他的配置對(duì)ocxref/ocx信號(hào)都有相同的作用)。根據(jù)同的cms位的設(shè)置,比較標(biāo)志可能在計(jì)數(shù)器向上計(jì)數(shù)時(shí)被置 1、在計(jì)數(shù)器向下計(jì)數(shù)時(shí)被置 1、或在計(jì)數(shù)器向上和向下計(jì)數(shù)時(shí)被置 1。tim1_cr1寄存器中的計(jì)數(shù)方向位(dir)由硬件新,要用軟件修改它。 圖 2-8給出一些中央對(duì)齊的pwm波形的子,t
32、im1_arr=8 ,pwm模式 1,tim1_cr1 寄存器中的 cms=01,在中央對(duì)齊模式 1 時(shí),當(dāng)計(jì)數(shù)器向下計(jì)數(shù)時(shí)標(biāo)志被設(shè)置。圖2-8 中央對(duì)齊的 pwm波形(apr=8)2.7.3 控制輸出電路設(shè)計(jì)在系統(tǒng)控制中,當(dāng)檢測(cè)到物料超過(guò)邊緣線(xiàn)時(shí),步進(jìn)電機(jī)慢速運(yùn)動(dòng),控制物料恢復(fù)到正常位置后步進(jìn)電機(jī)停止運(yùn)轉(zhuǎn)。這個(gè)過(guò)程中,stm32通過(guò)輸出pwm波形來(lái)驅(qū)動(dòng)步進(jìn)電機(jī)。定時(shí)器輸出的pwm波形控制步進(jìn)電機(jī)動(dòng)作,步進(jìn)電機(jī)帶有驅(qū)動(dòng)器,這里只需要一個(gè)方向信號(hào)dir和pulse信號(hào),當(dāng)dir等于1的時(shí)候,步進(jìn)電機(jī)正轉(zhuǎn),當(dāng)dir等于0的時(shí)候,步進(jìn)電機(jī)反轉(zhuǎn)。輸出的pulse信號(hào)給步進(jìn)電機(jī)驅(qū)動(dòng)器驅(qū)動(dòng)步進(jìn)電機(jī)動(dòng)作。步
33、進(jìn)電機(jī)驅(qū)動(dòng)器需要的電壓為5v。輸出控制電路如圖2-9所示,電路圖中pulse信號(hào)和dir信號(hào)經(jīng)過(guò)oc門(mén)反相器74ls06芯片,芯片的輸出先經(jīng)過(guò)r19和r20電阻上拉到5v,r22和r23電阻為限流電阻。jp5為步進(jìn)電機(jī)驅(qū)動(dòng)器的接口。圖2-9 控制輸出電路原理圖第3章 系統(tǒng)編程環(huán)境搭建及軟件設(shè)計(jì)3.1 系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì)主要有主程序設(shè)計(jì)、人機(jī)接口軟件設(shè)計(jì)和控制輸出軟件設(shè)計(jì)。其中主程序設(shè)計(jì)的流程圖如下圖所示,首先初始化stm32的i/o管腳、處理器工作頻率、定時(shí)器,接著初始化控制輸出歸零、tft觸摸屏初始化、顯示初始化。最后主程序進(jìn)入一個(gè)循環(huán),不斷查詢(xún)是否有觸摸屏事件和光電傳感器事件,如果有
34、對(duì)應(yīng)事件發(fā)生,則對(duì)響應(yīng)事件進(jìn)行處理。系統(tǒng)軟件流程圖如圖3-1所示。圖3-1 系統(tǒng)軟件流程圖3.2 顯示模塊設(shè)計(jì)顯示模塊程序由lcd初始化程序和定時(shí)器中斷程序,首先由lcd初始化程序?qū)⑵聊簧闲枰@示的按鍵,再由定時(shí)器中斷程序定時(shí)刷新屏幕顯示區(qū)域。lcd初始化流程圖如下:圖3-2 lcd初始化流程圖lcd初始化程序設(shè)計(jì):/* * 函數(shù)名稱(chēng):void lcd_init(void) * 函數(shù)功能:初始化lcd * 輸入?yún)?shù):無(wú) * 輸出參數(shù):無(wú)*/void lcd_init(void) rcc-apb2enr|=1apb2enr|=1apb2enr|=1crh&=0xfffff000;gpioc-cr
35、h|=0x00000333; gpioc-crl&=0x00ffffff;gpioc-crl|=0x33000000; gpioc-odr|=0x07c0; /portb 推挽輸出 gpiob-crh=0x33333333;gpiob-crl=0x33333333; gpiob-odr=0xffff;delay_ms(50); / delay 50 ms lcd_writereg(0x0000,0x0001);delay_ms(50); / delay 50 ms lcd_writereg(0x00,0x0001); delay_ms(10); lcd_writereg(0x10,0x1628
36、); lcd_writereg(0x12,0x000e);/0x0006 lcd_writereg(0x13,0x0a39); delay_ms(10); lcd_writereg(0x11,0x0040); lcd_writereg(0x15,0x0050); delay_ms(10); lcd_writereg(0x12,0x001e);/16 delay_ms(10); lcd_writereg(0x10,0x1620); lcd_writereg(0x13,0x2a39); delay_ms(10); lcd_writereg(0x01,0x0100); lcd_writereg(0x
37、02,0x0300); lcd_writereg(0x03,0x1030);/改變方向的 lcd_writereg(0x08,0x0202); lcd_writereg(0x0a,0x0008); lcd_writereg(0x30,0x0000); lcd_writereg(0x31,0x0402); lcd_writereg(0x32,0x0106); lcd_writereg(0x33,0x0503); lcd_writereg(0x34,0x0104); lcd_writereg(0x35,0x0301); lcd_writereg(0x36,0x0707); lcd_writereg
38、(0x37,0x0305); lcd_writereg(0x38,0x0208); lcd_writereg(0x39,0x0f0b); lcd_writereg(0x41,0x0002); lcd_writereg(0x60,0x2700); lcd_writereg(0x61,0x0001); lcd_writereg(0x90,0x0210); lcd_writereg(0x92,0x010a); lcd_writereg(0x93,0x0004); lcd_writereg(0xa0,0x0100); lcd_writereg(0x07,0x0001); lcd_writereg(0x
39、07,0x0021); lcd_writereg(0x07,0x0023); lcd_writereg(0x07,0x0033); lcd_writereg(0x07,0x0133); lcd_writereg(0xa0,0x0000); lcd_led=1;/點(diǎn)亮背光 lcd_clear(white);3.3觸摸屏軟件設(shè)計(jì)在觸摸屏使用時(shí),系統(tǒng)首先要檢測(cè)觸摸屏是否經(jīng)過(guò)校準(zhǔn)。若沒(méi)有則程序進(jìn)入到校準(zhǔn)模式,執(zhí)行觸摸屏校準(zhǔn)操作,同時(shí)用戶(hù)也可以在系統(tǒng)上電時(shí)通過(guò)按鍵進(jìn)入觸摸屏校準(zhǔn)模式。校準(zhǔn)模式是通過(guò)用戶(hù)點(diǎn)擊觸摸屏幾個(gè)校準(zhǔn)框來(lái)進(jìn)行,觸摸屏上電檢測(cè)校準(zhǔn)流程圖如圖3-3所示。在流程圖中,處理器檢測(cè)觸摸屏是否已經(jīng)
40、校準(zhǔn)了,沒(méi)有校準(zhǔn)進(jìn)入校準(zhǔn)模式,既觸摸屏校準(zhǔn)。然后開(kāi)啟中斷,系統(tǒng)則進(jìn)入了校準(zhǔn)模式。圖3-3 上電檢測(cè)觸摸屏校準(zhǔn)流程圖觸摸屏的初始化程序設(shè)計(jì):/* * 函數(shù)名稱(chēng):void touch_init(void) * 函數(shù)功能:觸摸屏初始化 * 輸入?yún)?shù):無(wú) * 輸出參數(shù):無(wú)*/void touch_init(void) /注意,時(shí)鐘使能之后,對(duì)gpio的操作才有效/所以上拉之前,必須使能時(shí)鐘.才能實(shí)現(xiàn)真正的上拉輸出rcc-apb2enr|=1apb2enr|=1crl&=0xffff0000;/pc03gpioc-crl|=0x00003883; gpioc-crh&=0xff0fffff;/pc13g
41、pioc-crh|=0x00300000;/pc13推挽輸出 gpioc-odr|=0x200f; /pc03 13 全部上拉 read_ads(&pen_point.x,&pen_point.y);/第一次讀取初始化 my_nvic_init(2,0,exti1_irqchannel,2); ex_nvic_config(gpio_c,1,ftir);/將line1映射到pc.1,下降沿觸發(fā).#ifdef adj_save_enable at24cxx_init();/初始化24cxxif(get_adjdata()return;/已經(jīng)校準(zhǔn)else /未校準(zhǔn)? lcd_clear(white
42、);/清屏 touch_adjust(); /屏幕校準(zhǔn) save_adjdata(); get_adjdata();#elselcd_clear(white);/清屏 touch_adjust(); /屏幕校準(zhǔn),帶自動(dòng)保存 #endif 下面是觸摸屏校準(zhǔn)程序:void touch_adjust(void) signed short pos_temp42;/坐標(biāo)緩存值u8 cnt=0;u16 d1,d2;u32 tem1,tem2;float fac; cnt=0;point_color=blue;back_color =white;lcd_clear(white);/清屏 point_colo
43、r=red;/紅色 lcd_clear(white);/清屏 drow_touch_point(20,20);/畫(huà)點(diǎn)1 pen_point.key_sta=key_up;/消除觸發(fā)信號(hào) pen_point.xfac=0;/xfac用來(lái)標(biāo)記是否校準(zhǔn)過(guò),所以校準(zhǔn)之前必須清掉!以免錯(cuò)誤 while(1)if(pen_point.key_sta=key_down)/按鍵按下了if(read_tp_once()/得到單次按鍵值 pos_tempcnt0=pen_point.x;pos_tempcnt1=pen_point.y;cnt+; switch(cnt) case 1:lcd_clear(whit
44、e);/清屏 drow_touch_point(220,20);/畫(huà)點(diǎn)2break;case 2:lcd_clear(white);/清屏 drow_touch_point(20,300);/畫(huà)點(diǎn)3break;case 3:lcd_clear(white);/清屏 drow_touch_point(220,300);/畫(huà)點(diǎn)4break;case 4: /全部四個(gè)點(diǎn)已經(jīng)得到 /對(duì)邊相等tem1=abs(pos_temp00-pos_temp10);/x1-x2tem2=abs(pos_temp01-pos_temp11);/y1-y2tem1*=tem1;tem2*=tem2;d1=sqrt(t
45、em1+tem2);/得到1,2的距離tem1=abs(pos_temp20-pos_temp30);/x3-x4tem2=abs(pos_temp21-pos_temp31);/y3-y4tem1*=tem1;tem2*=tem2;d2=sqrt(tem1+tem2);/得到3,4的距離fac=(float)d1/d2;if(fac1.05|d1=0|d2=0)/不合格cnt=0;lcd_clear(white);/清屏 drow_touch_point(20,20);adj_info_show(ver fac is:); lcd_shownum(40+24,40,pos_temp00,4,
46、16);/顯示數(shù)值lcd_shownum(40+24+80,40,pos_temp01,4,16);/顯示數(shù)值lcd_shownum(40+24,60,pos_temp10,4,16);/顯示數(shù)值lcd_shownum(40+24+80,60,pos_temp11,4,16);/顯示數(shù)值lcd_shownum(40+24,80,pos_temp20,4,16);/顯示數(shù)值lcd_shownum(40+24+80,80,pos_temp21,4,16);/顯示數(shù)值lcd_shownum(40+24,100,pos_temp30,4,16);/顯示數(shù)值lcd_shownum(40+24+80,10
47、0,pos_temp31,4,16);/顯示數(shù)值/擴(kuò)大100倍顯示lcd_shownum(40,140,fac*100,3,16);/顯示數(shù)值,該數(shù)值必須在95105范圍之內(nèi).continue;tem1=abs(pos_temp00-pos_temp20);/x1-x3tem2=abs(pos_temp01-pos_temp21);/y1-y3tem1*=tem1;tem2*=tem2;d1=sqrt(tem1+tem2);/得到1,3的距離tem1=abs(pos_temp10-pos_temp30);/x2-x4tem2=abs(pos_temp11-pos_temp31);/y2-y4t
48、em1*=tem1;tem2*=tem2;d2=sqrt(tem1+tem2);/得到2,4的距離fac=(float)d1/d2;if(fac1.05)/不合格cnt=0;lcd_clear(white);/清屏 drow_touch_point(20,20);adj_info_show(hor fac is:); lcd_shownum(40+24,40,pos_temp00,4,16);/顯示數(shù)值lcd_shownum(40+24+80,40,pos_temp01,4,16);/顯示數(shù)值lcd_shownum(40+24,60,pos_temp10,4,16);/顯示數(shù)值lcd_show
49、num(40+24+80,60,pos_temp11,4,16);/顯示數(shù)值lcd_shownum(40+24,80,pos_temp20,4,16);/顯示數(shù)值lcd_shownum(40+24+80,80,pos_temp21,4,16);/顯示數(shù)值lcd_shownum(40+24,100,pos_temp30,4,16);/顯示數(shù)值lcd_shownum(40+24+80,100,pos_temp31,4,16);/顯示數(shù)值/擴(kuò)大100倍顯示lcd_shownum(40,140,fac*100,3,16);/顯示數(shù)值,該數(shù)值必須在95105范圍之內(nèi). continue;/正確了 /對(duì)角線(xiàn)相等tem1=abs(pos_temp10-pos_temp20);/x1-x3tem2=abs(pos_temp11-pos_temp21);/y1-y3tem1*=tem1;tem2*=tem2;d1=sqrt(tem1+tem2);/得到1,4的距離tem1=a
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度桉樹(shù)種植與林業(yè)資源可持續(xù)利用合作協(xié)議3篇
- 二零二五年度打樁工程環(huán)境影響評(píng)價(jià)合同4篇
- 2025年度國(guó)際培訓(xùn)項(xiàng)目擔(dān)保書(shū)模板及服務(wù)合同4篇
- 2025年度害蟲(chóng)防治與環(huán)境保護(hù)責(zé)任合同樣本4篇
- 我國(guó)數(shù)據(jù)產(chǎn)權(quán)的法律供給需求現(xiàn)狀及優(yōu)化路徑研究
- 2025版小型飛機(jī)買(mǎi)賣(mài)合同:含飛行員招聘服務(wù)3篇
- 穴位埋線(xiàn)治療中風(fēng)后脾胃虛弱型消化不良的臨床研究
- 管道工程專(zhuān)項(xiàng)施工方案
- 二零二五年風(fēng)力發(fā)電機(jī)組安裝與運(yùn)維合同范本3篇
- 商用車(chē)融合式間接胎壓監(jiān)測(cè)算法開(kāi)發(fā)及實(shí)驗(yàn)研究
- 2024年山東省泰安市高考物理一模試卷(含詳細(xì)答案解析)
- 2025春夏運(yùn)動(dòng)戶(hù)外行業(yè)趨勢(shì)白皮書(shū)
- 《法制宣傳之盜竊罪》課件
- 通信工程單位勞動(dòng)合同
- 2024年醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理規(guī)范培訓(xùn)課件
- 高低壓配電柜產(chǎn)品營(yíng)銷(xiāo)計(jì)劃書(shū)
- 2024年4月自考02202傳感器與檢測(cè)技術(shù)試題
- 重癥醫(yī)學(xué)科健康宣教手冊(cè)
- 2022版《義務(wù)教育英語(yǔ)課程標(biāo)準(zhǔn)》解讀培訓(xùn)課件
- 五個(gè)帶頭方面談心談話(huà)范文三篇
- 互聯(lián)網(wǎng)的發(fā)展歷程
評(píng)論
0/150
提交評(píng)論