基于單片機的直流電機調(diào)速、測速以及顯示系統(tǒng)_第1頁
基于單片機的直流電機調(diào)速、測速以及顯示系統(tǒng)_第2頁
基于單片機的直流電機調(diào)速、測速以及顯示系統(tǒng)_第3頁
基于單片機的直流電機調(diào)速、測速以及顯示系統(tǒng)_第4頁
基于單片機的直流電機調(diào)速、測速以及顯示系統(tǒng)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

基于單片機實現(xiàn)直流電機調(diào)速、測速以及顯示系統(tǒng)摘要本文主要研究了利用Quick51系列單片機控制PWM信號從而實現(xiàn)對直流電機轉(zhuǎn)速進行控制的方法。單片機具有體積小、功能強、本錢低、應用面廣等優(yōu)點,可以說,智能控制與自動控制的核心就是單片機。目前,一個學習與應用單片機的高潮在全社會大規(guī)模地興起。學習單片機的最有效方法就是理論與實踐并重,本文用8051單片機自制了一個采用了專門的芯片組成了PWM信號的發(fā)生系統(tǒng),并且對PWM信號的原理、產(chǎn)生方法以及如何通過軟件編程對PWM信號占空比進行調(diào)節(jié),從而控制其輸入信號波形等均作了詳細的闡述。還對直流電機的速度進行了測量和顯示?;魻杺鞲衅鞴怆妭鞲衅麝P(guān)鍵詞:單片機、PWM、直流電機、測速、顯示目錄摘要1第一章概述3概述31.2Quick51的技術(shù)簡介和開展前景31.2.1SmartSOPC與Quick5131.2.2Quick51特性41.3Quick51電路結(jié)構(gòu)5第二章總體方案設(shè)計62.18051單片機簡介72.2PWM信號發(fā)生電路設(shè)計132.2.1PWM的根本原理132.2.2PWM發(fā)生電路主要芯片的工作原理142.3128*64液晶顯示16第三章硬件設(shè)計與連接17傳感器電路設(shè)計173.2信號處理電路設(shè)計19存儲器電路設(shè)計203.3.1I2C總線概述203.3.2存儲器電路213.4顯示電路設(shè)計223.5PWM信號發(fā)生電路設(shè)計23第四章軟件設(shè)計25系統(tǒng)軟件總流程圖25程序清單26第五章結(jié)論與展望36附錄37附一速度控制子程序37附二電路圖40辯論41概述概述本文主要研究了利用Quick51系列單片機,通過PWM方式控制直流電機調(diào)速的方法。沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上時,其效果根本相同。PWM控制技術(shù)就是以該結(jié)論為理論根底,使輸出端得到一系列幅值相等而寬度不相等的脈沖,用這些脈沖來代替正弦波或其他所需要的波形。按一定的規(guī)那么對各脈沖的寬度進行調(diào)制,既可改變逆變電路輸出電壓的大小,也可改變輸出頻率。PWM控制的根本原理很早就已經(jīng)提出,但是受電力電子器件開展水平的制約,在上世紀80年代以前一直未能實現(xiàn)。直到進入上世紀80年代,隨著全控型電力電子器件的出現(xiàn)和迅速開展,PWM控制技術(shù)才真正得到應用。隨著電力電子技術(shù)、微電子技術(shù)和自動控制技術(shù)的開展以及各種新的理論方法,如現(xiàn)代控制理論、非線性系統(tǒng)控制思想的應用,PWM控制技術(shù)獲得了空前的開展。到目前為止,已經(jīng)出現(xiàn)了多種PWM控制技術(shù)。PWM控制技術(shù)以其控制簡單、靈活和動態(tài)響應好的優(yōu)點而成為電力電子技術(shù)最廣泛應用的控制方式,也是人們研究的熱點。由于當今科學技術(shù)的開展已經(jīng)沒有了學科之間的界限,結(jié)合現(xiàn)代控制理論思想或?qū)崿F(xiàn)無諧振軟開關(guān)技術(shù)將會成為PWM控制技術(shù)開展的主要方向之一。本文就是利用這種控制方式來改變電壓的占空比實現(xiàn)直流電機速度的控制。Quick51的技術(shù)簡介和開展前景1.SmartSOPC與Quick51SmartSOPC教學實驗開發(fā)平臺集眾多功能于一體,是SOPC、DSP、EDA、ARM、ARM7SOC以及8051教學實驗、科研開發(fā)的最正確選擇。開發(fā)平臺采用“主板+核心板〞的模式,更換不同的核心板即可實驗不同平臺的功能。Quick51正是跟SmartSOPC相配套的8051單片機核心板。Quick51是一款自由的、開放全部系統(tǒng)資源的單片機實驗板。單片機芯片采用Philips最新推出的擁有64KBFlash的增強型8052內(nèi)核單片機P89LV51RD2,工作電壓〔3V邏輯是大趨勢〕。Quick51與SmartSOPC配合,可以做各種單片機教學實驗,如LED點陣掃描顯示、鍵盤檢測、動態(tài)數(shù)碼管、液晶屏、電機驅(qū)動、I2C.2Quick51特性采用Philips半導體新型單片機P89LV51RD2,增強型Intel8052CPU內(nèi)核。具有許多增強功能,如內(nèi)置64KB用戶程序Flash,8KB引導Flash〔用來支持ISP和IAP功能〕,1KB片內(nèi)靜態(tài)RAM,雙倍速模式,雙DPTR,4個中斷優(yōu)先級,進入掉電模式后外部中斷可喚醒〔8052只有復位,不方便〕,硬件SPI,增強型UART,等等。配備的P89LV51RD2單片機支持ISP〔在系統(tǒng)可編程〕方式下載用戶程序。Quick51只需要一根普通電腦RS-232通信電纜〔該電纜已經(jīng)隨SmartSOPC實驗箱標配〕就能實現(xiàn)ISP下載,不需要制作專門的下載線。配備1片專門的仿真芯片。在目前最流行的8051內(nèi)核單片機Windows環(huán)境軟件開發(fā)工具KeilC51的支持下,能夠方便地進行硬件在線仿真,而且并不需要安裝特別的驅(qū)動程序。該仿真芯片能夠全面支持單步、全速、斷點、跳出、變量觀察、外圍設(shè)備訪問等仿真功能。晶振〔默認〕采用插座式安裝,為用戶替換成其它頻點的晶振來做實驗提供了方便。復位方式可選:RC復位、按鍵復位、看門狗復位。此外,看門狗芯片還內(nèi)置有256B的EEPROM。單片機的4組I/O端口全部用雙排插針引出,方便用戶做實驗。擴展32KB靜態(tài)RAM。擴展512KB大容量Flash存儲器,可以用作程序Flash或者大容量數(shù)據(jù)存儲。擴展1個8位并行高阻輸入端口、1個8位并行推挽輸出端口。采用PLD器件作為譯碼器。提供8組輸出,地址范圍已經(jīng)印在PCB上,一目了然。在產(chǎn)品光盤里提供譯碼器內(nèi)部結(jié)構(gòu)的等效電路原理圖。提供豐富的實驗例程。1.3Quick51電路結(jié)構(gòu)Quick51的PCB元件布局如圖1.1所示。Quick51的跳線設(shè)置非常重要,在做Quick51大局部實驗時,跳線的接法都和表中“默認〞的接法一致。表1.1Quick51跳線設(shè)置表圖1.1Quick51PCB元件分布圖第二章總體方案設(shè)計本速度表由信號預處理電路、8051單片機、LCD顯示電路、串口數(shù)據(jù)存儲電路和系統(tǒng)軟件組成。其中信號預處理電路包含信號放大、波形變換和波形整形。信號預處理電路中的放大器用于對待測信號進行放大,以降低對待測信號的幅度要求;波形變換和波形整形電路那么用來將放大的信號轉(zhuǎn)換成可與單片機接口的TTL信號;通過單片機的設(shè)置可使INT0引腳能夠?qū)?nèi)部定時器T0的工作進行控制,這樣能精確地測出加到INT0引腳的正脈沖寬度(即測出脈沖信號的周期);速度顯示局部采用數(shù)碼顯示模塊,所得的數(shù)據(jù)采用I2C總線,并通過E2PROM來存儲,因而節(jié)省了所需單片機的口線和外圍器件,同時也簡化了顯示局部的軟件編程。系統(tǒng)軟件包括單片機和液晶模塊的初始化模塊、液晶模塊的寫數(shù)據(jù)/命令子模塊、數(shù)據(jù)顯示模塊以及實時中斷效勞模塊等。該設(shè)計能實時地將所測的速度顯示出來。該速度表能將傳感器輸入到單片機的脈沖信號的寬度(傳感器將車速轉(zhuǎn)變成相應寬度的脈沖信號)實時地測量出來,然后通過單片機計算出速度,再將所得的數(shù)據(jù)存儲到串口數(shù)據(jù)存儲器,并由動態(tài)數(shù)碼顯示模塊實時顯示出所測速度。本設(shè)計用兩個按鍵來控制顯示速度??紤]到信號的衰減、干擾等影響,在信號送入單片機前應對其進行放大整形,然后再輸入到單片機進行測速。系統(tǒng)方框圖如圖2-1所示。8051單片機PWM方波信號直流電機測速發(fā)電機8051單片機PWM方波信號直流電機測速發(fā)電機LCD顯示圖2-1系統(tǒng)方框圖8051單片機簡介一、8051單片機的根本組成8051單片機由CPU和8個部件組成,它們都通過片內(nèi)單一總線連接,其根本結(jié)構(gòu)依然是通用CPU加上外圍芯片的結(jié)構(gòu)模式,但在功能單元的控制上采用了特殊功能存放器的集中控制方法。二、CPU及8個部件的作用功能介紹如下中央處理器CPU:它是單片機的核心,完成運算和控制功能。內(nèi)部數(shù)據(jù)存儲器:8051芯片中共有256個RAM單元,能作為存儲器使用的只是前128個單元,其地址為00H—7FH。通常說的內(nèi)部數(shù)據(jù)存儲器就是指這前128個單元,簡稱內(nèi)部RAM。特殊功能存放器:是用來對片內(nèi)各部件進行管理、控制、監(jiān)視的控制存放器和狀態(tài)存放器,是一個特殊功能的RAM區(qū),位于內(nèi)部RAM的高128個單元,其地址為80H—FFH。內(nèi)部程序存儲器:8051芯片內(nèi)部共有4K個單元,用于存儲程序、原始數(shù)據(jù)或表格,簡稱內(nèi)部ROM。并行I/O口:8051芯片內(nèi)部有4個8位的I/O口〔P0,P1,P2,P3〕,以實現(xiàn)數(shù)據(jù)的并行輸入輸出。串行口:它是用來實現(xiàn)單片機和其他設(shè)備之間的串行數(shù)據(jù)傳送。定時器:8051片內(nèi)有2個16位的定時器,用來實現(xiàn)定時或者計數(shù)功能,并且以其定時或計數(shù)結(jié)果對計算機進行控制。中斷控制系統(tǒng):該芯片共有5個中斷源,即外部中斷2個,定時/計數(shù)中斷2個和串行中斷1個。振蕩電路:它外接石英晶體和微調(diào)電容即可構(gòu)成8051單片機產(chǎn)生時鐘脈沖序列的時鐘電路。系統(tǒng)允許的最高晶振頻率為12MHz。三、8051單片機引腳圖四、單片機系統(tǒng)中所用其他芯片簡介地址鎖存器74LS37374LS373片內(nèi)是8個輸出帶三態(tài)門的D鎖存器。其結(jié)構(gòu)如下列圖所示:當使能端G呈高電平時,鎖存器中的內(nèi)容可以更新,而在返回低電平的瞬間實現(xiàn)鎖存。如果此時芯片的輸出控制端為低,也即是輸出三態(tài)門翻開,鎖存器中的地址信息便可以通過三態(tài)門輸出。以下是其引腳圖:2.程序存儲器27128(1)芯片引腳〔2〕功能表引腳工作方式〔片選〕〔允許輸出〕VPP〔編程控制〕輸出讀LLVCCH數(shù)據(jù)輸出維持H*VCC*高阻編程LHVPPL數(shù)據(jù)輸入編程校驗LLVPPH數(shù)據(jù)輸出編程禁止H*VPP*高阻3.數(shù)據(jù)存儲器6264〔1〕芯片引腳〔2〕芯片功能表引腳工作方式I/O0—I/O7未選中H***高阻未選中*L**高阻輸出禁止LHHH高阻讀LHLH數(shù)據(jù)輸出寫LHHL數(shù)據(jù)輸入寫LHLL數(shù)據(jù)輸入五、8051單片機擴展電路及分析接線分析P0.7P0.0:這8個引腳共有兩種不同的功能,分別使用于兩種不同的情況。第一種情況是8051不帶片外存儲器,P0口可以作為通用I/O口使用,P0.7P0.0用于傳送CPU的I/O數(shù)據(jù)。第二種情況是8051帶片外存儲器,P0.7P0.0在CPU訪問片外存儲器時先是用于傳送片外存儲器的低8位地址,然后傳送CPU對片外存儲器的讀寫數(shù)據(jù)。P2.7P2.0:這組引腳的第一功能可以作為通用的I/O使用。它的第二功能和P0口引腳的第二功能相配合,用于輸出片外存儲器的高8位地址,共同選中片外存儲器單元,但是并不能像P0口那樣還可以傳送存儲器的讀寫數(shù)據(jù)。P3.7P3.0:這組引腳的第一功能為傳送用戶的輸入/輸出數(shù)據(jù)。它的第二功能作為控制用,每個引腳不盡相同,如下表所示:P3口的位第二功能注釋RXD串行數(shù)據(jù)接收口TXD串行數(shù)據(jù)發(fā)送口外中斷0輸入外中斷1輸入T0計數(shù)器0計數(shù)輸入T1計數(shù)器1計數(shù)輸入外部RAM寫選通信號外部RAM讀選通信號VCC為+5V電源線,VSS為接地線。ALE/線上輸出一個高電位脈沖,其下降沿用于把這個片外存儲器低8位地址鎖存到外部專用地址鎖存器,以便空出P0.7P0.0引腳線去傳送隨后而來的片外存儲器的讀寫數(shù)據(jù)。在不訪問片外存儲器時,8051自動在ALE/線上輸出頻率為1/6fOSC的脈沖序列。該脈沖序列可以用作外部時鐘源或者作為定時脈沖源使用。/VPP:允許訪問片外存儲器/編程電源線,可以控制8051使用片內(nèi)ROM還是片外ROM。如果=1,那么允許使用片內(nèi)ROM;如果=0,那么允許使用片外ROM。:片外ROM選通線,在執(zhí)行訪問片外ROM的指令MOVC時,8051自動在線上產(chǎn)生一個負脈沖,用于片外ROM芯片的選通。其他情況下,線均為高電平封鎖狀態(tài)。RST/VPD:復位備用電源線,可以使8051處于復位工作狀態(tài)。XTAL1和XTAL2:片內(nèi)振蕩電路輸入線,這兩個端子用來外接石英晶體和微調(diào)電容,即用來連接8051片內(nèi)OSC的定時反應電路。石英晶振起振后,應能在XTAL2線上輸出一個3V左右的正弦波,以便于8051片內(nèi)的OSC電路按石英晶振相同頻率自激振蕩,電容C1、C2可以幫助起振,調(diào)節(jié)它們可以到達微調(diào)fOSC的目的。PWM信號發(fā)生電路設(shè)計2.2.1PWM的根本原理PWM〔脈沖寬度調(diào)制〕是通過控制固定電壓的直流電源開關(guān)頻率,改變負載兩端的電壓,從而到達控制要求的一種電壓調(diào)整方法。PWM可以應用在許多方面,比方:電機調(diào)速、溫度控制、壓力控制等等。在PWM驅(qū)動控制的調(diào)整系統(tǒng)中,按一個固定的頻率來接通和斷開電源,并且根據(jù)需要改變一個周期內(nèi)“接通〞和“斷開〞時間的長短。通過改變直流電機電樞上電壓的“占空比〞來到達改變平均電壓大小的目的,從而來控制電動機的轉(zhuǎn)速。也正因為如此,PWM又被稱為“開關(guān)驅(qū)動裝置〞。如下列圖所示:設(shè)電機始終接通電源時,電機轉(zhuǎn)速最大為Vmax,設(shè)占空比為D=t1/T,那么電機的平均速度為Va=Vmax*D,其中Va指的是電機的平均速度;Vmax是指電機在全通電時的最大速度;D=t1/T是指占空比。由上面的公式可見,當我們改變占空比D=t1/T時,就可以得到不同的電機平均速度Vd,從而到達調(diào)速的目的。嚴格來說,平均速度Vd與占空比D并非嚴格的線性關(guān)系,但是在一般的應用中,我們可以將其近似地看成是線性關(guān)系。PWM的根本原理PWM〔脈沖寬度調(diào)制〕是通過控制固定電壓的直流電源開關(guān)頻率,改變負載兩端的電壓,從而到達控制要求的一種電壓調(diào)整方法。PWM可以應用在許多方面,比方:電機調(diào)速、溫度控制、壓力控制等等。在PWM驅(qū)動控制的調(diào)整系統(tǒng)中,按一個固定的頻率來接通和斷開電源,并且根據(jù)需要改變一個周期內(nèi)“接通〞和“斷開〞時間的長短。通過改變直流電機電樞上電壓的“占空比〞來到達改變平均電壓大小的目的,從而來控制電動機的轉(zhuǎn)速。也正因為如此,PWM又被稱為“開關(guān)驅(qū)動裝置〞。如下列圖所示:設(shè)電機始終接通電源時,電機轉(zhuǎn)速最大為Vmax,設(shè)占空比為D=t1/T,那么電機的平均速度為Va=Vmax*D,其中Va指的是電機的平均速度;Vmax是指電機在全通電時的最大速度;D=t1/T是指占空比。由上面的公式可見,當我們改變占空比D=t1/T時,就可以得到不同的電機平均速度Vd,從而到達調(diào)速的目的。嚴格來說,平均速度Vd與占空比D并非嚴格的線性關(guān)系,但是在一般的應用中,我們可以將其近似地看成是線性關(guān)系。2.2.2PWM發(fā)生電路主要芯片的工作原理1.芯片4585〔1〕芯片4585的用途:對于A和B兩組4位并行數(shù)值進行比擬,來判斷它們之間的大小是否相等?!?〕芯片4585的功能表:輸入輸出比擬級取A3、B3A2、B2A1、B1A0、B0A<BA=BA>BA<BA=BA>BA3>B3*****1001A3=B3A2>B2****1001A3=B3A2=B2A1>B1***1001A3=B3A2=B2A1=B1A0>B0**1001A3=B3A2=B2A1=B1A0=B0001001A3=B3A2=B2A1=B1A0=B0010010A3=B3A2=B2A1=B1A0<B0100100A3=B3A2=B2A1<B1****100A3=B3A2<B2*****100A3<B3******100〔3〕芯片4585的引腳圖:2.芯片4040芯片4040是一個12位的二進制串行計數(shù)器,所有計數(shù)器位為主從觸發(fā)器,計數(shù)器在時鐘下降沿進行計數(shù)。當CR為高電平時,它對計數(shù)器進行清零,由于在時鐘輸入端使用施密特觸發(fā)器,故對脈沖上升和下降時間沒有限制,所有的輸入和輸出均經(jīng)過緩沖。芯片4040提供了16引線多層陶瓷雙列直插、熔封陶瓷雙列直插、塑料雙列直插以及陶瓷片狀載體等4種封裝形式。〔1〕芯片4040的極限值:—18V—VDD輸入電流范圍:±10mA貯存溫度范圍:-65°C〔2〕芯片4040引出端功能符號:CP:時鐘輸入端CR:去除端Q0—Q11:計數(shù)脈沖輸出端VDD:正電源VSS:地端〔3〕芯片4040功能表:輸入輸出CPCR↑↓*LLH保持計數(shù)所有輸出端均為L〔4〕芯片4040的引腳圖:128*64液晶顯示LCD顯示器工作原理就是利用液晶的物理特性;通電時排列變得有序,使光線容易通過;不通電時排列混亂,阻止光線通過,說簡單點就是讓液晶如閘門般地阻隔或讓光線穿透。LCD的好處有:與CRT顯示器相比,LCD的優(yōu)點主要包括零輻射、低功耗、散熱小、體積小、圖像復原精確、字符顯示銳利等。其接口信號說明如下:第三章硬件設(shè)計與連接在信號脈沖發(fā)生源上,本系統(tǒng)采用的是開關(guān)型霍爾傳感器。以磁場作為媒介,利用霍爾傳感器可以檢測多種物理量,如位移、振動、轉(zhuǎn)速、加速度、流量、電流、電功率等。它不僅可以實現(xiàn)非接觸測量,并且采用永久磁鐵產(chǎn)生磁場,不需附加能源。另外霍爾傳感器尺寸小、價格廉價、應用電路簡單、性能可靠,因而獲得極為廣泛的應用。除了直接利用霍爾傳感器外,還利用它開發(fā)出各種派生的傳感器。金屬或半導體薄片的兩個端面通以控制電流Ic,并在薄片的垂直方向上施加磁感應強度為B的磁場,那么在垂直于電流和磁場的方向上將產(chǎn)生電勢Uh,稱為霍爾電勢或霍爾電壓(如圖l所示)?;魻栯妱軺h=KhIcB(其中Kh為霍爾元件靈敏度,它與所用的材料及幾何尺寸有關(guān))。這種現(xiàn)象稱為霍爾效應,而用這種效應制成的元件稱為霍爾元件。由于霍爾元件輸出的電壓信號較小,并且有一定溫度誤差,目前已較少直接使用霍爾元件作傳感器?;魻杺鞲衅髟韴D如圖3-6所示。圖3-6霍爾傳感器磁場效應本系統(tǒng)采用開關(guān)型霍爾傳感器A04E。開關(guān)型霍爾傳感器是一種集成傳感器,它內(nèi)部含有霍爾元件、放大器、穩(wěn)壓電源、帶一定滯后特性的比擬器及集電極開路輸出局部等,如圖3-7所示。開關(guān)型霍爾傳感器的工作特性如圖3-8所示。圖3-7開關(guān)型霍爾傳感器內(nèi)部結(jié)構(gòu)圖圖3-8開關(guān)型霍爾傳感器工作特性當外加的磁感應強度超過動作點Bop時,傳感器輸出低電平,但磁感應強度降到動作點Bop以下時,傳感器輸出電平不變,一直要降到釋放點BRE時,傳感器才由低電平躍變?yōu)楦唠娖?。Bop與Bre之間的滯后(或稱為回差)使開關(guān)動作更為可靠。圖3-9霍爾傳感器檢測轉(zhuǎn)速示意圖霍爾傳感器檢測轉(zhuǎn)速示意圖3-9如下。在非磁材料的圓盤邊上粘貼一塊磁鋼,霍爾傳感器固定在圓盤外緣附近。圓盤每轉(zhuǎn)動一圈霍爾傳感器便輸出一個脈沖。通過單片機測量產(chǎn)生脈沖的頻率,就可以得出圓盤的轉(zhuǎn)速。同樣道理,根據(jù)圓盤(車輪)的轉(zhuǎn)速,再結(jié)合圓盤的周長就是計算出物體的位移。如果要增加測量位移精度,可以在圓盤(車輪)上多增加幾個磁鋼。由于傳感器內(nèi)部為集電極開路輸出,所以需外接一個上拉電阻,其阻值與電源電壓大小有關(guān),一般取1~2k,如圖3-10所示。圖3-10傳感器輸出電路信號處理電路設(shè)計系統(tǒng)的信號預處理電路由二級電路構(gòu)成,第一級是由開關(guān)三極管組成的零偏置放大器,采用開關(guān)三極管可以保證放大器具有良好的高頻響應。當輸入信號為零或負電壓時,三極管截止,電路輸出高電平;而當輸入信號為正電壓時,三極管導通,此時輸出電壓隨著輸入電壓的上升而下降,這使得速度里程表既可以測量任意方波信號的頻率,也可以測量正弦波信號的頻率。由于放大器的放大功能降低了對待測信號的幅度要求,因此,系統(tǒng)能對任意大于0.5V的正弦波和脈沖信號進行測量。預處理電路的第二級采用帶施密特觸發(fā)器的反相器DM74LS14來把放大器生成的單相脈沖轉(zhuǎn)換成與COMS電平相兼容方波信號,同時將輸出信號加到單片機的P3.4口上。利用施密特觸發(fā)器狀態(tài)轉(zhuǎn)換過程中的正反應作用,可以把邊沿變化緩慢的周期性信號變換為邊沿很陡的矩形脈沖信號。輸入的信號只要幅度大于VT+,即可在施密特觸發(fā)器的輸出端得到同等頻率的矩形脈沖信號。從傳感器得到的矩形脈沖經(jīng)傳輸后往往發(fā)生波形畸變。當傳輸線上的電容較大時,波形的上升沿將明顯變壞;當傳輸線較長,而且接受端的阻抗與傳輸線的阻抗不匹配時,在波形的上升沿和下降沿將產(chǎn)生振蕩現(xiàn)象;當其他脈沖信號通過導線間的分布電容或公共電源線疊加到矩形脈沖信號時,信號上將出現(xiàn)附加的噪聲。無論出現(xiàn)上述的那一種情況,都可以通過用施密特反相觸發(fā)器整形而得到比擬理想的矩形脈沖波形。只要施密特觸發(fā)器的VT+和VT-設(shè)置得適宜,均能受到滿意的整形效果。信號預處理電路如圖3-11所示。圖3-11信號預處理電路圖存儲器電路設(shè)計.1I2C總線概述I2C總線是一種用于IC器件之間連接的二線制總線。它通過SDA〔串行數(shù)據(jù)線〕及SCL〔串行時鐘線)兩根線在連到總線上器件之間傳送信息,并根據(jù)地址識別每個器件,不管是單片機、存儲器、LCD驅(qū)動器還是鍵盤接口。采用I2C總線標準單片機或IC器件,其內(nèi)部不僅有I2C接口電路,而且將內(nèi)部各單元電路按功能劃分為假設(shè)干相對獨立模塊,通過軟件尋址實現(xiàn)片選,減少了器件片選線連接。CPU不僅能通過指令將某個功能單元電路掛靠或摘離總線,還可對該單元的工作狀況進行檢測,從而實現(xiàn)對硬件系統(tǒng)的既簡單又靈活的擴展與控制。傳統(tǒng)的單片機串行接口發(fā)送和接收一般都各用一條線,如MCS51系列的TXD和RXD,而I2C總線那么根據(jù)器件的功能通過軟件程序使其可工作于發(fā)送或接收方式。當某個器件向總線上發(fā)送信息時,它就是發(fā)送器(也叫主器件),而當其從總線上接收信息時,又成為接收器(也叫從器件)。主器件用于啟動總線上傳送數(shù)據(jù)并產(chǎn)生時鐘以開放傳送的器件,此時任何被尋址的器件均被認為是從器件。I2C總線的控制完全由掛接在總線上的主器件送出的地址和數(shù)據(jù)決定。在總線上,既沒有中心機,也沒有優(yōu)先機。I2C總線的數(shù)據(jù)傳送格式是:在I2C總線開始信號后,送出的第一個字節(jié)數(shù)據(jù)是用來選擇從器件地址的,其中前7位為地址碼,第8位為方向位(R/W)。方向位為“0”表示發(fā)送,即主器件把信息寫到所選擇的從器件;方向位為“1”表示主器件將從從器件讀信息。開始信號后,系統(tǒng)中的各個器件將自己的地址和主器件送到總線上的地址進行比擬,如果與主器件發(fā)送到總線上的地址一致,那么該器件即為被主器件尋址的器件,其接收信息還是發(fā)送信息那么由第8位(R/W)確定。在I2C總線上每次傳送的數(shù)據(jù)字節(jié)數(shù)不限,但每一個字節(jié)必須為8位,而且每個傳送字節(jié)后面必須跟一個認可位〔第9位〕,也叫應答位〔ACK〕。數(shù)據(jù)的傳送過程如圖3所示。每次都是先傳最高位,通常從器件在接收到每個字節(jié)后都會作出響應,即釋放SCL線返回高電平,準備接收下一個數(shù)據(jù)字節(jié),主器件可繼續(xù)傳送。如果從器件正在處理一個實時事件而不能接收數(shù)據(jù)時,〔例如正在處理一個內(nèi)部中斷,在這個中斷處理完之前就不能接收I2C總線上的數(shù)據(jù)字節(jié)〕可以使時鐘SCL線保持低電平,從器件必須使SDA保持高電平,此時主器件產(chǎn)生1個結(jié)束信號,使傳送異常結(jié)束,迫使主器件處于等待狀態(tài)。當從器件處理完畢時將釋放SCL線,主器件繼續(xù)傳送。.2存儲器電路AT24C02是美國ATMEL公司的低功耗CMOS串行EEPROM,它是內(nèi)含256×8位存儲空間,具有工作電壓寬〔2.5~5.5V〕、擦寫次數(shù)多〔大于10000次〕、寫入速度快〔小于10ms〕等特點。AT24C02的1、2、3腳是三條地址線,用于確定芯片的硬件地址。在AT89C2051試驗開發(fā)板上它們都接地,第8腳和第4腳分別為正、負電源。第5腳SDA為串行數(shù)據(jù)輸入/輸出,數(shù)據(jù)通過這條雙向I2C總線串行傳送,在AT89C2051試驗開發(fā)板上和單片機的P3.5連接。第6腳SCL為串行時鐘輸入線,在AT89C2051試驗開發(fā)板上和單片機的P3.6連接。SDA和SCL都需要和正電源間各接一個5.1K的電阻上拉。第7腳需要接地。AT24C02中帶有片內(nèi)地址存放器。每寫入或讀出一個數(shù)據(jù)字節(jié)后,該地址存放器自動加1,以實現(xiàn)對下一個存儲單元的讀寫。所有字節(jié)均以單一操作方式讀取。為降低總的寫入時間,一次操作可寫入多達8個字節(jié)的數(shù)據(jù)。AT24C02是CMOS2048位串行E2PROM,在內(nèi)部的組織成256×8位。AT24C02的特點是具有允許在簡單的二線總線上工作的串行接口和軟件協(xié)議。在本設(shè)計中用芯片AT24C02的SDA端與單片機的P3.7口相連,SCL端與單片機的P3.5口相連。因為在這個I2C總線上只有一個器件,所以把AT24C02的地址設(shè)為000,即把A0、A2、A3都接地。單片機計算出來的里程數(shù)據(jù)通過SDA、SCL向AT24C02輸送數(shù)據(jù)。單片機首先向AT24C02發(fā)送寫信號,當確認后從單片機內(nèi)部的數(shù)據(jù)儲存單元提取數(shù)據(jù)然后向AT24C02的內(nèi)部地址傳送數(shù)據(jù)。當顯示里程時,單片機首先向AT24C02發(fā)送讀信號,然后確認后,單片機從AT24C02內(nèi)部的地址向單片機的讀出單元字節(jié)讀出數(shù)據(jù),供顯示所用。與單片機的接口如圖3-12所示。圖3-12AT24CO2與單片機的接口電路顯示電路設(shè)計3.5PWM信號發(fā)生電路設(shè)計PWM波可以由具有PWM輸出的單片機通過編程來得以產(chǎn)生,也可以采用PWM專用芯片來實現(xiàn)。當PWM波的頻率太高時,它對直流電機驅(qū)動的功率管要求太高,而當它的頻率太低時,其產(chǎn)生的電磁噪聲就比擬大,在實際應用中,當PWM波的頻率在18KHz左右時,效果最好。在本系統(tǒng)內(nèi),采用了兩片4位數(shù)值比擬器4585和一片12位串行計數(shù)器4040組成了PWM信號發(fā)生電路。兩片數(shù)值比擬器4585,即圖上U2、U3的A組接12位串行4040計數(shù)輸出端Q2—Q9,而U2、U3的B組接到單片機的P1端口。只要改變P1端口的輸出值,那么就可以使得PWM信號的占空比發(fā)生變化,從而進行調(diào)速控制。12位串行計數(shù)器4040的計數(shù)輸入端CLK接到單片機C51晶振的振蕩輸出XTAL2。計數(shù)器4040每來8個脈沖,其輸出Q2—Q9加1,當計數(shù)值小于或者等于單片機P1端口輸出值X時,圖中U2的〔A>B〕輸出端保持為低電平,而當計數(shù)值大于單片機P1端口輸出值X時,圖中U2的〔A>B〕輸出端為高電平。隨著計數(shù)值的增加,Q2—Q9由全“1”變?yōu)槿?使用這個方法時,單片機只需要根據(jù)調(diào)整量輸出X的值,而PWM信號由三片通用數(shù)字電路生成,這樣可以使得軟件大大簡化,同時也有利于單片機系統(tǒng)的正常工作。由于單片機上電復位時P1端口輸出全為“1”第四章軟件設(shè)計系統(tǒng)軟件總流程圖開始開始設(shè)堆棧清標志清暫存清顯示T0初始化串行口初始化CPU開中斷掃描鍵盤速度采樣顯示圖4.1系統(tǒng)軟件主程序流程圖4.2程序清單/* 128×64LCD驅(qū)動程序頭文件*/#ifndefLCD_H_#defineLCD_H_#include<REG51.H>//定義背光控制信號sbitLCD_BL=P1^4;//點亮背光燈voidLcdLightOn();//熄滅背光燈voidLcdLightOff();//清屏voidLcdClear();//初始化voidLcdInit();//顯示ASCⅡ碼voidLcdPutChar(unsignedcharc);//顯示字符串voidLcdPuts(unsignedchar*s);#endif//LCD_H_/* 128×64LCD驅(qū)動程序*/#include<INTRINS.H>#include<ABSACC.H>//#include"LCD.H"http://定義屏幕光標〔取值0~63,光標本身不可見〕unsignedcharLcdCursor;inti,j;/*函數(shù):LcdLightOn()功能:點亮背光燈*/voidLcdLightOn(){ LCD_BL=1;}/*函數(shù):LcdLightOff()功能:熄滅背光燈*/voidLcdLightOff(){ LCD_BL=0;}/*函數(shù):LcdGetBF()功能:讀出狀態(tài)位BF返回: BF=1,表示忙,不可進行任何操作 BF=0,表示不忙,可以進行正常操作*/bitLcdGetBF(){ unsignedchardat; dat=XBYTE[0xD002]; //XBYTE的定義見<ABSACC.H> return(bit)(dat&0x80);}/*函數(shù):LcdWriteCmd()功能:向LCD發(fā)送命令參數(shù): cmd:命令字,詳見器件的數(shù)據(jù)手冊*/voidLcdWriteCmd(unsignedcharcmd){ while(LcdGetBF()); XBYTE[0xD000]=cmd;}/*函數(shù):LcdWriteDat()功能:向LCD寫入數(shù)據(jù)參數(shù):dat,要寫入的數(shù)據(jù)說明:目標地址由地址計數(shù)器AC隱含指定,寫完后AC自動加1*/voidLcdWriteDat(unsignedchardat){ while(LcdGetBF()); XBYTE[0xD001]=dat;}/*函數(shù):LcdReadDat()功能:從LCD讀出數(shù)據(jù)返回:讀出的數(shù)據(jù)*//*unsignedcharLcdReadDat(){ volatileunsignedchardat; while(LcdGetBF()); dat=XBYTE[0xD003]; dat=XBYTE[0xD003]; //需要連續(xù)執(zhí)行兩次才能夠讀出真正的數(shù)據(jù) returndat;}*//*函數(shù):LcdSetAC()功能:設(shè)置DDRAM〔顯示數(shù)據(jù)RAM〕的AC〔地址計數(shù)器〕值參數(shù): ac:地址計數(shù)器值,范圍0~63*/voidLcdSetAC(unsignedcharac){ ac&=0x3F; ac|=0x80; LcdWriteCmd(ac);}/*函數(shù):LcdClear()功能:LCD清屏,并使光標回到0*/voidLcdClear(){ LcdWriteCmd(0x01); //清屏命令 LcdCursor=0;}/*函數(shù):LcdDelay()功能:延時(t*100)個機器周期*/voidLcdDelay(unsignedchart){ unsignedcharn; do { n=49; while(--n!=0); }while(--t!=0);}/*函數(shù):LcdInit()功能:LCD初始化*/voidLcdInit(){ LcdWriteCmd(0x30); //設(shè)置根本指令集 LcdDelay(3); LcdWriteCmd(0x30); //設(shè)置根本指令集〔需要再執(zhí)行一次〕 LcdDelay(1); LcdWriteCmd(0x0C); //開啟顯示 LcdDelay(3); LcdClear(); //清屏 LcdDelay(250); LcdWriteCmd(0x06); //設(shè)置進入點 LcdDelay(10);}/*函數(shù):LcdCheckAC()功能:根據(jù)光標位置調(diào)整AC*/voidLcdCheckAC(){ switch(LcdCursor) { case16: LcdSetAC(16); break; case32: LcdSetAC(8); break; case48: LcdSetAC(24); break; case64: LcdCursor=0; LcdSetAC(0); break; default: break; }}/*函數(shù):LcdPutChar()功能:顯示ASCII碼參數(shù): c為可顯示的ASCII碼〔0x20~0x7F〕*/voidLcdPutChar(unsignedcharc){ LcdWriteDat(c); LcdCursor++; LcdCheckAC();}/*函數(shù):LcdPutHZ()功能:顯示漢字參數(shù): ch,cl:漢字編碼*/voidLcdPutHZ(unsignedcharch,unsignedcharcl){ if(LcdCursor&0x01) {//顯示漢字時,必須偶地址對準,即光標位置不能是奇數(shù) LcdPutChar(''); //額外輸出一個空格 } LcdWriteDat(ch); LcdWriteDat(cl); LcdCursor+=2; LcdCheckAC();}/*函數(shù):LcdPuts()功能:顯示字符串參數(shù): *s:要顯示的字符串〔可同時包含ASCII碼和漢字〕*/voidLcdPuts(unsignedchar*s){ unsignedcharch,cl; for(;;) { ch=*s++; if(ch=='\0')break; if(ch<0x80) { LcdPutChar(ch); } else { cl=*s++; LcdPutHZ(ch,cl); } }}/* 顯示主程序*///#include"LCD.H"#include<REG51.H>//#include"DELAY.H"/*包含延時函數(shù)的頭部文件delay_us();delay_ms();*//*函數(shù):Delay()t>0時,延時〔t*0.001〕s*//********************************************************/unsignedcharSD[4]={'1','2','3','4'};//速度設(shè)定unsignedcharFK[4]={'2','2','3','4'};//速度反應intD=0;//方向控制中間變量 unsignedintPwm=0;//速度產(chǎn)生中間變量unsignedintp=0;unsignedintValue=0; unsignedintPwm_Value=0; unsignedintm;//unsignedinta,b,c,d;sbitKEY1=P2^0;sbitKEY2=P2^1;sbitKEY3=P2^2;sbitMotorA=P1^6;sbitMotorB=P1^7; bitSWTR;bitSWTF;unsignedintSWTV;#definePwm_MAX255voidDelay(unsignedintT){SWTV=T;SWTR=1;while(!SWTF);SWTR=0;SWTF=0;}voidKEY(){ if(KEY1==0) { Value=Value+1; } if(KEY2==0) { Value=Value-1; } if(KEY3==0) { if(D==0) { D=1; } else { D=0; } }}voidPWM_Init(){static unsignedchart=0; t++; if(t>Pwm_MAX)t=0; if(t<=Pwm_Value) { Pwm=1; } else { Pwm=0; } if(D==0) { MotorA=0; MotorB=Pwm; } else { MotorA=Pwm; MotorB=0; }}voidShow_Value(unsignedcharCH[]){inti;for(i=0;i<4;i++) { LcdPutChar(CH[i]); }}voidShow_Init(){LcdWriteCmd(0x80);LcdPuts("速度設(shè)定");LcdWriteCmd(0x90);LcdPuts("速度反應");LcdWriteCmd(0x88);LcdPuts("速度方向");LcdWriteCmd(0x98);LcdPuts("測控071");LcdWriteCmd(0x9c);LcdPuts("14號");} voidT_int()//定時器初始化{TMOD&=0x00;TMOD=0x25;TH1=TL1=0xa4;TH0=TL0=0;ET1=1;TR1=1;EA=1;}voidMeasureSpeed(){TH0=TL0=0;TR0=1;Delay(2420);TR0=0;TF0=0;m=2*(TH0*255+TL0);if(m>Value){Pwm_Value=Pwm_Value-1;}if(m<Value){Pwm_Value=Pwm_Value+1;}FK[3]=(m%10)+48;FK[2]=(m/10%10)+48;FK[1]=(m/100%10)+48;FK[0]=(m/1000%10)+48;SD[3]=(Value%10)+48;SD[2]=(Value/10%10)+48;SD[1]=(Value/100%10)+48;SD[0]=(Value/1000%10)+48;}voidmain(){ unsignedchari;MotorA=0; MotorB=0;EA=0; T_int();Delay(50);LcdInit();//LCD初始化/*****************************************/for(i=0;i<2;i++) { LcdLightOff(); Delay(660); LcdLightOn(); Delay(660); }Delay(660);LcdClear();Delay(660);/****************************************/EA=1; Show_Init();Delay(20); Value=200;Pwm_Value=Value;for(;;) { KEY();//按鍵處理 MeasureSpeed(); LcdWriteCmd(0x94); Show_Value(FK); LcdWriteCmd(0x84); Show_Value(SD); LcdWriteCmd(0x8c); if(D==0) { LcdPuts("正向"); } if(D==1) { LcdPuts("反向"); } }}voidT1ZD()interrupt3{TR1=0; // KEY();//按鍵處理 PWM_Init();if(SWTR)//延時 { if(--SWTV==0)SWTF=1; }TR1=1;}第五章結(jié)論與展望本設(shè)計以8051為核心,利用單片機的運算和控制功能,并采用系統(tǒng)化LCD顯示模塊實時顯示所測速度的設(shè)計方案,以及串口數(shù)據(jù)存儲電路和系統(tǒng)軟件。傳感器也是實現(xiàn)測量與控制不可缺少的環(huán)節(jié),是測控系統(tǒng)的關(guān)鍵部件,如果沒有傳感器對原始被測信號進行準確可靠的捕捉和轉(zhuǎn)換,一切

溫馨提示

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

最新文檔

評論

0/150

提交評論