版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)說明書</b></p><p><b> 設(shè)計(jì)題目:</b></p><p> 學(xué) 院:機(jī)械工程學(xué)院</p><p> 專 業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化</p><p><b> 班 級(jí):</b></p>
2、<p><b> 學(xué) 號(hào):</b></p><p><b> 姓 名:</b></p><p><b> 指導(dǎo)教師:</b></p><p><b> 目 錄</b></p><p> 1. 課程設(shè)計(jì)要求1<
3、;/p><p> 2. 系統(tǒng)功能分析與方案確定1</p><p> 3. 系統(tǒng)主要硬件電路模塊設(shè)計(jì)4</p><p> 3.1編碼器模塊4</p><p> 3.2液晶顯示模塊9</p><p> 3.3復(fù)位電路模塊14</p><p> 3.4晶振電路模塊17</p&
4、gt;<p> 3.5 單片機(jī)硬件端口分配18</p><p> 4. 程序軟件設(shè)計(jì)與分析19</p><p> 4.1系統(tǒng)軟件分析及詳細(xì)技術(shù)文件設(shè)計(jì)19</p><p> 5. 后續(xù)有待完善和提高的工作25</p><p><b> 參考文獻(xiàn)26</b></p><
5、p><b> 附錄26</b></p><p><b> 1. 課程設(shè)計(jì)要求</b></p><p> 數(shù)字轉(zhuǎn)速(數(shù))計(jì)的設(shè)計(jì)</p><p><b> 一、設(shè)計(jì)任務(wù)</b></p><p> 轉(zhuǎn)速計(jì)是我們經(jīng)常會(huì)用到的儀器之一,通常與編碼器配合用來測(cè)量旋轉(zhuǎn)機(jī)械
6、設(shè)備的轉(zhuǎn)速。用單片機(jī)的定時(shí)/計(jì)數(shù)器功能可以實(shí)現(xiàn)頻率計(jì)的數(shù)字化、智能化,通過合理的硬件設(shè)計(jì)和軟件編程使測(cè)量精度達(dá)到實(shí)用化要求。</p><p><b> 二、 基本要求</b></p><p> 測(cè)量速度范圍1~1000轉(zhuǎn)每分鐘。</p><p> 可對(duì)轉(zhuǎn)數(shù)計(jì)數(shù)并實(shí)時(shí)顯示;</p><p> 可對(duì)轉(zhuǎn)速檢測(cè)并實(shí)時(shí)顯示
7、;</p><p> 速度檢測(cè)精度:1%。</p><p><b> 被測(cè)信號(hào)是方波。</b></p><p> 顯示方式為轉(zhuǎn)數(shù)計(jì)數(shù):5位十進(jìn)制數(shù)顯示;速度計(jì):5位有效數(shù)字顯示,保留小數(shù)點(diǎn)后2位。</p><p> 2. 系統(tǒng)功能分析與方案確定</p><p> 2.1 轉(zhuǎn)速測(cè)量系統(tǒng)的原
8、理</p><p> 2.1.1 轉(zhuǎn)速測(cè)量方法</p><p> 轉(zhuǎn)速是指作圓周運(yùn)動(dòng)的物體在單位時(shí)間內(nèi)所轉(zhuǎn)過的圈數(shù),其大小及變化往往意味</p><p> 著機(jī)器設(shè)備運(yùn)轉(zhuǎn)的正常與否,因此,轉(zhuǎn)速測(cè)量一直是工業(yè)領(lǐng)域的一個(gè)重要問題。按照不同的理論方法,先后產(chǎn)生過模擬測(cè)速法(如離心式轉(zhuǎn)速表) 、同步測(cè)速法(如機(jī)械式或閃光式頻閃測(cè)速儀) 以及計(jì)數(shù)測(cè)速法。計(jì)數(shù)測(cè)速法又可分
9、為機(jī)械式定時(shí)計(jì)數(shù)法和電子式定時(shí)計(jì)數(shù)法。本文介紹的采用單片機(jī)和光電傳感器組成的高精度轉(zhuǎn)速測(cè)量系統(tǒng),其轉(zhuǎn)速測(cè)量方法采用的就是電子式定時(shí)計(jì)數(shù)法。</p><p> 對(duì)轉(zhuǎn)速的測(cè)量實(shí)際上是對(duì)轉(zhuǎn)子旋轉(zhuǎn)引起的周期脈沖信號(hào)的頻率進(jìn)行測(cè)量。在頻率的工程測(cè)量中,電子式定時(shí)計(jì)數(shù)測(cè)量頻率的方法一般有三種:</p><p> ?、贉y(cè)頻率法:在一定時(shí)間間隔t 內(nèi),計(jì)數(shù)被測(cè)信號(hào)的重復(fù)變化次數(shù)N ,則被測(cè)信號(hào)的頻率fx
10、 可表示為</p><p> f x =Nt(1)</p><p> ?、跍y(cè)周期法:在被測(cè)信號(hào)的一個(gè)周期內(nèi),計(jì)數(shù)時(shí)鐘脈沖數(shù)m0 ,則被測(cè)信號(hào)頻率</p><p> fx = fc/ m0 ,其中, fc 為時(shí)鐘脈沖信號(hào)頻率。</p><p> ?、鄱嘀芷跍y(cè)頻法:在被測(cè)信號(hào)m1 個(gè)周期內(nèi), 計(jì)數(shù)時(shí)鐘脈沖數(shù)m2 ,從而得到被測(cè)信號(hào)頻率fx ,
11、則fx 可以表示為fx =m1 fcm2, m1 由測(cè)量準(zhǔn)確度確定。</p><p> 電子式定時(shí)計(jì)數(shù)法測(cè)量頻率時(shí), 其測(cè)量準(zhǔn)確度主要由兩項(xiàng)誤差來決定: 一項(xiàng)是時(shí)基誤差; 另一項(xiàng)是量化±1 誤差。當(dāng)時(shí)基誤差小于量化±1 誤差一個(gè)或兩個(gè)數(shù)量級(jí)時(shí),這時(shí)測(cè)量準(zhǔn)確度主要由量化±1 誤差來確定。對(duì)于測(cè)頻率法,測(cè)量相對(duì)誤差為:</p><p> Er1 =測(cè)量誤差值實(shí)
12、際測(cè)量值×100 % =1N×100 % (2)</p><p> 由此可見,被測(cè)信號(hào)頻率越高, N 越大, Er1 就越小,所以測(cè)頻率法適用于高頻信號(hào)</p><p> ( 高轉(zhuǎn)速信號(hào)) 的測(cè)量。對(duì)于測(cè)周期法,測(cè)量相對(duì)誤差為:</p><p> Er2 =測(cè)量誤差值實(shí)際測(cè)量值×100 % =1m0×100 % (3)&
13、lt;/p><p> 對(duì)于給定的時(shí)鐘脈沖fc , 當(dāng)被測(cè)信號(hào)頻率越低時(shí),m0 越大, Er2 就越小,所以測(cè)周期法適用于低頻信號(hào)( 低轉(zhuǎn)速信號(hào)) 的測(cè)量。對(duì)于多周期測(cè)頻法,測(cè)量相對(duì)誤差為:</p><p> Er3 =測(cè)量誤差值實(shí)際測(cè)量值100%=1m2×100 % (4)</p><p> 從上式可知,被測(cè)脈沖信號(hào)周期數(shù)m1 越大, m2 就越大,則測(cè)
14、量精度就越高。它適</p><p> 用于高、低頻信號(hào)(高、低轉(zhuǎn)速信號(hào)) 的測(cè)量。但隨著精度和頻率的提高, 采樣周期將大大延長(zhǎng),并且判斷m1 也要延長(zhǎng)采樣周期,不適合實(shí)時(shí)測(cè)量。</p><p> 根據(jù)以上的討論,考慮到實(shí)際應(yīng)用中需要測(cè)量的轉(zhuǎn)速范圍很寬,上述的轉(zhuǎn)速測(cè)量方法難以滿足要求,因此,研究高精度的轉(zhuǎn)速測(cè)量方法,以同時(shí)適用于高、低轉(zhuǎn)速信號(hào)的測(cè)量,不僅具有重要的理論意義,也是實(shí)際生產(chǎn)中
15、的需要。</p><p> 2.1.2 轉(zhuǎn)速測(cè)量原理</p><p> 利用編碼器產(chǎn)生方波信號(hào)來模擬速度快慢,即通過編碼器,將轉(zhuǎn)速信號(hào)變?yōu)殡娒}沖,利用微機(jī)在單位時(shí)間內(nèi)對(duì)脈沖進(jìn)行計(jì)數(shù),再經(jīng)過軟件計(jì)算獲得轉(zhuǎn)速數(shù)據(jù)。即:</p><p> n=N/ (mT) (1)</p><p> ◆n ———轉(zhuǎn)速、單位:轉(zhuǎn)/ 分鐘;</p>
16、<p> ◆N ———采樣時(shí)間內(nèi)所計(jì)脈沖個(gè)數(shù);</p><p> ◆T———采樣時(shí)間、單位:分鐘;</p><p> ◆m ———每旋轉(zhuǎn)一周所產(chǎn)生的脈沖個(gè)數(shù)。</p><p> 如果m=60, 那么1 秒鐘內(nèi)脈沖個(gè)數(shù)N 就是轉(zhuǎn)速n, 即:</p><p> n=N/ (mT) =N/60 ×1/60=N (2
17、)</p><p> ◆這里m 為400。(看編碼器而定)</p><p> 在對(duì)轉(zhuǎn)速波動(dòng)較快系統(tǒng)或要求動(dòng)態(tài)特性好而精度高的轉(zhuǎn)速測(cè)控系統(tǒng)中,調(diào)節(jié)周期</p><p> 一般很短,相應(yīng)的采樣周期需取得很小,使得脈沖當(dāng)量增高,從而導(dǎo)致整個(gè)系統(tǒng)測(cè)量精度降低,難以滿足測(cè)控要求。提高采樣速率通常就要減小采樣時(shí)間T, 而T 的減小會(huì)使采到的脈沖數(shù)值N 下降,導(dǎo)致脈沖當(dāng)量(
18、每個(gè)脈沖所代表的轉(zhuǎn)速) 增高,從而使得測(cè)量精度變得粗糙。通過增加測(cè)速碼盤的齒數(shù)可以提高精度,但是碼盤齒數(shù)的增加會(huì)受到加工工藝的限制,同時(shí)會(huì)使轉(zhuǎn)速測(cè)量脈沖的頻率增高,頻率的提升又會(huì)受到傳感器中光電器或磁敏器或磁電器件最高工作頻率的限制。凡此種種因素限制了常規(guī)智能轉(zhuǎn)速測(cè)量方法的使用范圍。而采用本文所提出的定時(shí)分時(shí)雙頻率采樣法,可在保證采樣度的同時(shí),提高采樣速率,充分發(fā)揮微機(jī)智能測(cè)速方法的優(yōu)越性及靈活性。</p><p&g
19、t; 圖1.1 系統(tǒng)原理圖</p><p><b> 各部分模塊的功能:</b></p><p> ①編碼器:用來對(duì)信號(hào)的采樣。</p><p> ?、诜糯?、整形電路:對(duì)傳感器送過來的信號(hào)進(jìn)行放大和整形,在送入單片機(jī)進(jìn)行數(shù)據(jù)</p><p><b> 的處理轉(zhuǎn)換。</b></p>
20、<p> ?、蹎纹瑱C(jī):對(duì)處理過的信號(hào)進(jìn)行轉(zhuǎn)換成轉(zhuǎn)速的實(shí)際值,1602液晶</p><p> ?、?602液晶顯示:用來對(duì)所測(cè)量到的轉(zhuǎn)速進(jìn)行顯示。</p><p> 3. 系統(tǒng)主要硬件電路模塊設(shè)計(jì)</p><p><b> 3.1編碼器模塊</b></p><p> 轉(zhuǎn)速測(cè)量的方案選擇,一般要考慮傳感器
21、的結(jié)構(gòu)、安裝以及測(cè)速范圍與環(huán)境條</p><p> 件等方面的適用性;再就是二次儀表的要求,除了顯示以外還有控制、通訊和遠(yuǎn)傳方面的要求。這里主要由編碼器性質(zhì)決定,以下為本次實(shí)驗(yàn)的編碼器,及其工作原理:</p><p> 3.1.1光電編碼器的介紹:</p><p> 光電編碼器是通過讀取光電編碼盤上的圖案或編碼信息來表示與光電編碼器相連的電機(jī)轉(zhuǎn)子的位置信息的。
22、根據(jù)光電編碼器的工作原理可以將光電編碼器分為絕對(duì)式光電編碼器與增量式光電編碼器,下面我就這兩種光電編碼器的結(jié)構(gòu)與工作原理做介紹。</p><p> ?。ㄒ唬⒔^對(duì)式光電編碼器</p><p> 絕對(duì)式光電編碼器如圖所示,他是通過讀取編碼盤上的二進(jìn)制的編碼信息來表示絕對(duì)位置信息的。</p><p> 編碼盤是按照一定的編碼形式制成的圓盤。圖1是二進(jìn)制的編碼盤,圖中
23、空白部分是透光的,用“0”來表示;涂黑的部分是不透光的,用“1”來表示。通常將組成編碼的圈稱為碼道,每個(gè)碼道表示二進(jìn)制數(shù)的一位,其中最外側(cè)的是最低位,最里側(cè)的是最高位。如果編碼盤有4個(gè)碼道,則由里向外的碼道分別表示為二進(jìn)制的23、22、21和20,4位二進(jìn)制可形成16個(gè)二進(jìn)制數(shù),因此就將圓盤劃分16個(gè)扇區(qū),每個(gè)扇區(qū)對(duì)應(yīng)一個(gè)4位二進(jìn)制數(shù),如0000、0001、…、1111。</p><p> 按照碼盤上形成的碼道
24、配置相應(yīng)的光電傳感器,包括光源、透鏡、碼盤、光敏二極管和驅(qū)動(dòng)電子線路。當(dāng)碼盤轉(zhuǎn)到一定的角度時(shí),扇區(qū)中透光的碼道對(duì)應(yīng)的光敏二極管導(dǎo)通,輸出低電平“0”,遮光的碼道對(duì)應(yīng)的光敏二極管不導(dǎo)通,輸出高電平“1”,這樣形成與編碼方式一致的高、低電平輸出,從而獲得扇區(qū)的位置腳。</p><p> (二)、增量式光電編碼器</p><p> 增量式光電編碼器是碼盤隨位置的變化輸出一系列的脈沖信號(hào),然后
25、根據(jù)位置變化的方向用計(jì)數(shù)器對(duì)脈沖進(jìn)行加/減計(jì)數(shù),以此達(dá)到位置檢測(cè)的目的。它是由光源、透鏡、主光柵碼盤、鑒向盤、光敏元件和電子線路組成。</p><p> 增量式光電編碼器的工作原理是是由旋轉(zhuǎn)軸轉(zhuǎn)動(dòng)帶動(dòng)在徑向有均勻窄縫的主光柵碼盤旋轉(zhuǎn),在主光柵碼盤的上面有與其平行的鑒向盤,在鑒向盤上有兩條彼此錯(cuò)開90o相位的窄縫,并分別有光敏二極管接收主光柵碼盤透過來的信號(hào)。工作時(shí),鑒向盤不動(dòng),主光柵碼盤隨轉(zhuǎn)子旋轉(zhuǎn),光源經(jīng)透鏡平
26、行射向主光柵碼盤,通過主光柵碼盤和鑒向盤后由光敏二極管接收相位差90o的近似正弦信號(hào),再由邏輯電路形成轉(zhuǎn)向信號(hào)和計(jì)數(shù)脈沖信號(hào)。為了獲得絕對(duì)位置角,在增量式光電編碼器有零位脈沖,即主光柵每旋轉(zhuǎn)一周,輸出一個(gè)零位脈沖,使位置角清零。利用增量式光電編碼器可以檢測(cè)電機(jī)的位置和速度。</p><p> 二、光電編碼器的測(cè)量方法:</p><p> 光電編碼器在電機(jī)控制中可以用來測(cè)量電機(jī)轉(zhuǎn)子的磁場(chǎng)
27、位置和機(jī)械位置以及轉(zhuǎn)子的磁場(chǎng)和機(jī)械位置的變化速度與變化方向。下面就我就光電編碼器在這幾方面的應(yīng)用方法做一下介紹。</p><p> ?。ㄒ唬⑹褂霉怆娋幋a器來測(cè)量電機(jī)的轉(zhuǎn)速</p><p> 可以利用定時(shí)器/計(jì)數(shù)器配合光電編碼器的輸出脈沖信號(hào)來測(cè)量電機(jī)的轉(zhuǎn)速。具體的測(cè)速方法有M法、T法和M/T法3種。</p><p> M法又稱之為測(cè)頻法,其測(cè)速原理是在規(guī)定的檢
28、測(cè)時(shí)間Tc內(nèi),對(duì)光電編碼器輸出的脈沖信號(hào)計(jì)數(shù)的測(cè)速方法,如圖2所示,例如光電編碼器是N線的,則每旋轉(zhuǎn)一周可以有4N個(gè)脈沖,因?yàn)閮陕访}沖的上升沿與下降沿正好使編碼器信號(hào)4倍頻。現(xiàn)在假設(shè)檢測(cè)時(shí)間是Tc,計(jì)數(shù)器的記錄的脈沖數(shù)是M1,則電機(jī)的每分鐘的轉(zhuǎn)速為</p><p> 在實(shí)際的測(cè)量中,時(shí)間Tc內(nèi)的脈沖個(gè)數(shù)不一定正好是整數(shù),而且存在最大半個(gè)脈沖的誤差。如果要求測(cè)量的誤差小于規(guī)定的范圍,比如說是小于百分之一,那么M1
29、就應(yīng)該大于50。在一定的轉(zhuǎn)速下要增大檢測(cè)脈沖數(shù)M1以減小誤差,可以增大檢測(cè)時(shí)間Tc單考慮到實(shí)際的應(yīng)用檢測(cè)時(shí)間很短,例如伺服系統(tǒng)中的測(cè)量速度用于反饋控制,一般應(yīng)在0.01秒以下。由此可見,減小測(cè)量誤差的方法是采用高線數(shù)的光電編碼器。</p><p> M法測(cè)速適用于測(cè)量高轉(zhuǎn)速,因?yàn)閷?duì)于給定的光電編碼器線數(shù)N機(jī)測(cè)量時(shí)間Tc條件下,轉(zhuǎn)速越高,計(jì)數(shù)脈沖M1越大,誤差也就越小。</p><p>
30、 T法也稱之為測(cè)周法,該測(cè)速方法是在一個(gè)脈沖周期內(nèi)對(duì)時(shí)鐘信號(hào)脈沖進(jìn)行計(jì)數(shù)的方法,如圖3所示。例如時(shí)鐘頻率為fclk,計(jì)數(shù)器記錄的脈沖數(shù)為M2,光電編碼器是N線的,每線輸出4N個(gè)脈沖,那么電機(jī)的每分鐘的轉(zhuǎn)速為</p><p> 為了減小誤差,希望盡可能記錄較多的脈沖數(shù),因此T法測(cè)速適用于低速運(yùn)行的場(chǎng)合。但轉(zhuǎn)速太低,一個(gè)編碼器輸出脈沖的時(shí)間太長(zhǎng),時(shí)鐘脈沖數(shù)會(huì)超過計(jì)數(shù)器最大計(jì)數(shù)值而產(chǎn)生溢出;另外,時(shí)間太長(zhǎng)也會(huì)影響控制
31、的快速性。與M法測(cè)速一樣,選用線數(shù)較多的光電編碼器可以提高對(duì)電機(jī)轉(zhuǎn)速測(cè)量的快速性與精度。</p><p> M/T法測(cè)速是將M法和T法兩種方法結(jié)合在一起使用,在一定的時(shí)間范圍內(nèi),同時(shí)對(duì)光電編碼器輸出的脈沖個(gè)數(shù)M1和M2進(jìn)行計(jì)數(shù),則電機(jī)每分鐘的轉(zhuǎn)速為</p><p> 實(shí)際工作時(shí),在固定的Tc時(shí)間內(nèi)對(duì)光電編碼器的脈沖計(jì)數(shù),在第一個(gè)光電編碼器上升沿定時(shí)器開始定時(shí),同時(shí)開始記錄光電編碼器和時(shí)
32、鐘脈沖數(shù),定時(shí)器定時(shí)Tc時(shí)間到,對(duì)光電編碼器的脈沖停止計(jì)數(shù),而在下一個(gè)光電編碼器的上升沿到來時(shí)刻,時(shí)鐘脈沖才停止記錄。采用M/T法既具有M法測(cè)速的高速優(yōu)點(diǎn),又具有T法測(cè)速的低速的優(yōu)點(diǎn),能夠覆蓋較廣的轉(zhuǎn)速范圍,測(cè)量的精度也較高,在電機(jī)的控制中有著十分廣泛的應(yīng)用。</p><p> ?。ǘ┦褂迷隽渴焦怆娋幋a器來判別電機(jī)轉(zhuǎn)速方向的原理</p><p> 增量式光電編碼器輸出兩路相位相差90o
33、的脈沖信號(hào)A和B,當(dāng)電機(jī)正轉(zhuǎn)時(shí),脈沖信號(hào)A的相位超前脈沖信號(hào)B的相位90o,此時(shí)邏輯電路處理后可形成高電平的方向信號(hào)Dir。當(dāng)電機(jī)反轉(zhuǎn)時(shí),脈沖信號(hào)A的相位滯后脈沖信號(hào)B的相位90o,此時(shí)邏輯電路處理后的方向信號(hào)Dir為低電平。因此根據(jù)超前與滯后的關(guān)系可以確定電機(jī)的轉(zhuǎn)向。其轉(zhuǎn)速辯相的原理如圖4所示</p><p><b> 圖4轉(zhuǎn)向判別原理圖</b></p><p>
34、 ?。ㄈ?、增量式光電編碼器的反饋脈沖的四倍頻原理</p><p> 在使用增量式編碼器時(shí),通過計(jì)相位相差90o的兩路正交脈沖信號(hào)A和B的上升沿與下降沿已達(dá)到將增量式編碼器的反饋脈沖四倍頻的目的。這樣在不增加增量式光電編碼器的線數(shù)的情況下,就可以獲得更精度高的位置脈沖信息,以實(shí)現(xiàn)對(duì)電機(jī)位置的精確控制。其工作原理與脈沖的相位關(guān)系如圖5所示</p><p> 圖5 脈沖四倍頻相位關(guān)系圖&l
35、t;/p><p><b> 結(jié)束語:</b></p><p> 光電式編碼器有著良好的抗干擾特性與應(yīng)用的可靠性,在電機(jī)控制這種有著極高電磁感染的應(yīng)用環(huán)境下有著廣闊的應(yīng)用前景。相信在不久的將來光電式編碼器一定會(huì)在電機(jī)控制領(lǐng)域發(fā)揮更為重要的作用。而我們對(duì)于光電式編碼器的研究也就顯得格外的重要。</p><p><b> 3.2液晶顯示模
36、塊</b></p><p><b> ?、僖壕э@示原理</b></p><p> 液晶顯示的原理是利用液晶的物理特性,通過電壓對(duì)其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動(dòng)、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn),目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字?jǐn)z像機(jī)、PDA移動(dòng)通信工具等眾多領(lǐng)域。</p>
37、<p><b> ②液晶顯示器的分類</b></p><p> 液晶顯示的分類方法有很多種,通??砂雌滹@示方式分為段式、字符式、點(diǎn)陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據(jù)驅(qū)動(dòng)方式來分,可以分為靜態(tài)驅(qū)動(dòng)(Static)、單純矩陣驅(qū)動(dòng)(Simple Matrix)和主動(dòng)矩陣驅(qū)動(dòng)(Active Matrix)三種。</p><p>
38、; ?、垡壕э@示器各種圖形的顯示原理:</p><p><b> 線段的顯示</b></p><p> 點(diǎn)陣圖形式液晶由M×N個(gè)顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對(duì)應(yīng)1字節(jié)的8位,即每行由16字節(jié),共16×8=128個(gè)點(diǎn)組成,屏上64×16個(gè)顯示單元與顯示RAM區(qū)1024字節(jié)相對(duì)應(yīng),每一字節(jié)的內(nèi)容和顯示屏上
39、相應(yīng)位置的亮暗對(duì)應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H——00FH的16字節(jié)的內(nèi)容決定,當(dāng)(000H)=FFH時(shí),則屏幕的左上角顯示一條短亮線,長(zhǎng)度為8個(gè)點(diǎn);當(dāng)(3FFH)=FFH時(shí),則屏幕的右下角顯示一條短亮線;當(dāng)(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H時(shí),則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。</p>
40、<p><b> 字符的顯示</b></p><p> 用LCD顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋€(gè)字符由6×8或8×8點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對(duì)應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來就組成某個(gè)字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡(jiǎn)單了,可以讓控制器工
41、作在文本方式,根據(jù)在LCD上開始顯示的行列號(hào)及每行的列數(shù)找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對(duì)應(yīng)的代碼即可。</p><p><b> 漢字的顯示</b></p><p> 漢字的顯示一般采用圖形的方式,事先從微機(jī)中提取要顯示的漢字的點(diǎn)陣碼(一般用字模提取軟件),每個(gè)漢字占32B,分左右兩半,各占16B,左邊為1、3、5……右邊為2、4、6……根據(jù)在
42、LCD上開始顯示的行列號(hào)及每行的列數(shù)可找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),送上要顯示的漢字的第一字節(jié),光標(biāo)位置加1,送第二個(gè)字節(jié),換行按列對(duì)齊,送第三個(gè)字節(jié)……直到32B顯示完就可以LCD上得到一個(gè)完整漢字。</p><p> 3.2.1 1602字符型LCD簡(jiǎn)介</p><p> 字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,目前常用16*1,16*2,20*2
43、和40*2行等的模塊。下面以長(zhǎng)沙太陽人電子有限公司的1602字符型液晶顯示器為例,介紹其用法。一般1602字符型液晶顯示器實(shí)物如圖10-53:</p><p> 圖3-1 1602字符型液晶顯示器實(shí)物圖</p><p> 3.2.2 1602LCD的基本參數(shù)及引腳功能</p><p> 1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶
44、背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如下圖10-54所示:</p><p> 圖3-2 1602LCD尺寸圖</p><p> 1602LCD主要技術(shù)參數(shù):</p><p> 顯示容量:16×2個(gè)字符</p><p> 芯片工作電壓:4.5—5.5V</p><p> 工作
45、電流:2.0mA(5.0V)</p><p> 模塊最佳工作電壓:5.0V</p><p> 字符尺寸:2.95×4.35(W×H)mm</p><p><b> 引腳功能說明</b></p><p> 1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,</p>&
46、lt;p> 第1腳:VSS為地電源。</p><p> 第2腳:VDD接5V正電源。</p><p> 第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度。</p><p> 第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。<
47、;/p><p> 第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。</p><p> 第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。</p><p> 第7~14腳:D0~D7為8
48、位雙向數(shù)據(jù)線。</p><p> 第15腳:背光源正極。</p><p> 第16腳:背光源負(fù)極。</p><p> 3.2.7 硬件原理圖</p><p> 1602液晶顯示模塊可以和單片機(jī)AT89C51直接接口,電路如圖3-11所示。</p><p> 圖3-11 硬件原理圖</p>&l
49、t;p> 3.2.8 程序流程圖</p><p> 圖3-12 軟件流程圖</p><p><b> 3.3復(fù)位電路模塊</b></p><p> 復(fù)位電路(圖4.8):</p><p> MCS-51 單片機(jī)復(fù)位電路是指單片機(jī)的初始化操作。單片機(jī)啟運(yùn)運(yùn)行時(shí),都需要先復(fù)位,其作用是使CPU 和系統(tǒng)中其他
50、部件處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。因而,復(fù)位是一個(gè)很重要的操作方式。但單片機(jī)本身是不能自動(dòng)進(jìn)行復(fù)位的,必須配合相應(yīng)的外部電路才能實(shí)現(xiàn)。</p><p><b> 圖4.8 復(fù)位電路</b></p><p><b> ①復(fù)位功能:</b></p><p> 復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),
51、直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號(hào)。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電源插頭分-合過程中引起的抖動(dòng)而影響復(fù)位。</p><p> 單片機(jī)的復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳RST 通過一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個(gè)機(jī)器周期的S5P2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動(dòng)復(fù)位(如圖4.9 (a))和按鈕復(fù)位(如
52、圖4.9(b))兩種方式。</p><p> 圖4.9 RC 復(fù)位電路</p><p> ②單片機(jī)復(fù)位后的狀態(tài):</p><p> 單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化狀態(tài),其中包括使程序計(jì)數(shù)器PC=0000H,這表明程序從0000H 地址單元開始執(zhí)行。單片機(jī)冷啟動(dòng)后,片內(nèi)RAM 為隨機(jī)值,運(yùn)行中的復(fù)位操作不改變片內(nèi)RAM 區(qū)中的內(nèi)容,21 個(gè)特殊功能寄存器復(fù)位
53、后的狀態(tài)為確定值,見表1。值得指出的是,記住一些特殊功能寄存器復(fù)位后的主要狀態(tài),對(duì)于了解單片機(jī)的初態(tài),減少應(yīng)用程序中的初始化部分是十分必要的。說明:表4-1 中符號(hào)*為隨機(jī)狀態(tài):</p><p> 表4-1 寄存器復(fù)位后狀態(tài)表</p><p> PSW=00H,表明選寄存器0 組為工作寄存器組; SP=07H,表明堆棧指針指向片內(nèi)RAM 07H 字節(jié)單元,根據(jù)堆棧操作的先加后壓法則,第
54、一個(gè)被壓入的內(nèi)容寫入到08H 單元中;Po-P3=FFH,表明已向各端口線寫入1,此時(shí),各端口既可用于輸入又可用于輸出。IP=×××00000B,表明各個(gè)中斷源處于低優(yōu)先級(jí); IE=0××00000B,表明各個(gè)中斷均被關(guān)斷; 系統(tǒng)復(fù)位是任何微機(jī)系統(tǒng)執(zhí)行的第一步,使整個(gè)控制芯片回到默認(rèn)的硬件狀態(tài)下。</p><p> 51 單片機(jī)的復(fù)位是由RESET 引腳來控制的
55、,此引腳與高電平相接超過24 個(gè)振蕩周期后,51 單片機(jī)即進(jìn)入芯片內(nèi)部復(fù)位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET 引腳轉(zhuǎn)為低電平后,才檢查EA 引腳是高電平或低電平,若為高電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會(huì)執(zhí)行外部程序。51 單片機(jī)在系統(tǒng)復(fù)位時(shí),將其內(nèi)部的一些重要寄存器設(shè)置為特定的值,至于內(nèi)部RAM 內(nèi)部的數(shù)據(jù)則不變。</p><p> 3.4 晶振電路模塊</p><p&g
56、t; 晶振(圖4.10)是晶體振蕩器的簡(jiǎn)稱,在電氣上它可以等效成一個(gè)電容和一個(gè)電阻并聯(lián)再串聯(lián)一個(gè)電容的二端網(wǎng)絡(luò),電工學(xué)上這個(gè)網(wǎng)絡(luò)有兩個(gè)諧振點(diǎn),以頻率的高低分其中較低的頻率是串聯(lián)諧振,較高的頻率是并聯(lián)諧振。</p><p> AT89C51 單片機(jī)內(nèi)部有一個(gè)用構(gòu)成振蕩器的高增益反相放大器。引腳XTAL1 和XTAL2 分別是此放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個(gè)自激振蕩器
57、。外接晶體諧振器以及電容C1 和C2 構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對(duì)外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會(huì)影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為12MHz,電容應(yīng)盡可能的選擇陶瓷電容,電容值約為30μF。在焊接刷電路板時(shí),晶體振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近,以減少寄生電容,更好地保證震蕩器穩(wěn)定和可靠地工作。晶體振蕩電路如圖3-6:</p
58、><p> 晶振有一個(gè)重要的參數(shù),那就是負(fù)載電容值,選擇與負(fù)載電容值相等的并聯(lián)電容,就可以得到晶振標(biāo)稱的諧振頻率。</p><p> 3.5 單片機(jī)硬件端口分配 </p><p> 為合理利用單片機(jī)的端口資源,并且兼顧程序設(shè)計(jì)的便利,將系統(tǒng)的輸出和輸入端口作如表3.1配置。</p><p> 表3.1 單片機(jī)端口配置表</p>
59、;<p> 4. 程序軟件設(shè)計(jì)與分析</p><p> 4.1系統(tǒng)軟件分析及詳細(xì)技術(shù)文件設(shè)計(jì)</p><p> 單片機(jī) AT89C51介紹</p><p> AT89C51 是一種帶4K 字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—FalshProgrammable and Erasable Read Only Memory)的低電壓,高性能
60、CMOS8 位微處理器,俗稱單片機(jī)。該器件采用ATMEL 高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51 指令集和輸出管腳相兼容。由于將多功能8 位CPU 和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL 的AT89C51 是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p> 圖4.5 是常用的一種單片機(jī),型號(hào)為AT89C51,它將計(jì)算機(jī)的功能都集成到這個(gè)芯片內(nèi)部去了,就
61、這么一個(gè)小小的芯片就能構(gòu)成一臺(tái)小型的電腦,因此叫做單片機(jī)。</p><p> 圖4.5 AT89C51 芯片</p><p> 它有40 個(gè)管腳,分成兩排,每一排各有20 個(gè)腳,其中左下角標(biāo)有箭頭的為第1 腳,然后按逆時(shí)針方向依次為第2 腳、第3 腳……第40 腳。</p><p> 在40 個(gè)管腳中,其中有32 個(gè)腳可用于各種控制,比如控制小燈的亮與滅、控制
62、電機(jī)的正轉(zhuǎn)與反轉(zhuǎn)、控制電梯的升與降等,這32 個(gè)腳叫做單片機(jī)的“端口”,在單片機(jī)技術(shù)中,每個(gè)端口都有一個(gè)特定的名字,比如第一腳的那個(gè)端口叫做“P1.0”。</p><p> AT89C51 單片機(jī)的功能:</p><p><b> 1.主要特性:</b></p><p> ◆與MCS-51 兼容</p><p>
63、 ◆4K 字節(jié)可編程閃爍存儲(chǔ)器</p><p> ◆壽命:1000 寫/擦循環(huán)</p><p> ◆數(shù)據(jù)保留時(shí)間:10 年</p><p> ◆全靜態(tài)工作:0Hz-24Hz</p><p> ◆三級(jí)程序存儲(chǔ)器鎖定</p><p> ◆128*8 位內(nèi)部RAM</p><p> ◆32
64、 可編程I/O 線</p><p> ◆兩個(gè)16 位定時(shí)器/計(jì)數(shù)器</p><p><b> ◆5 個(gè)中斷源</b></p><p><b> ◆可編程串行通道</b></p><p> ◆低功耗的閑置和掉電模式</p><p> ◆片內(nèi)振蕩器和時(shí)鐘電路</p
65、><p> 2.管腳說明(圖4.7):</p><p> ●VCC:供電電壓,</p><p><b> ●GND:接地。</b></p><p> ●P0 口:P0 口為一個(gè)8 位漏級(jí)開路雙向I/O 口,每腳可吸收8TTL 門電流。當(dāng)P1 口的管腳第一次寫1 時(shí),被定義為高阻輸入。P0 能夠用于外部程序數(shù)據(jù)存儲(chǔ)
66、器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH 編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH 進(jìn)行校驗(yàn)時(shí),P0 輸出原碼,此時(shí)P0 外部必須被拉高。</p><p> ●P1 口:P1 口是一個(gè)內(nèi)部提供上拉電阻的8 位雙向I/O 口,P1 口緩沖器能接收輸出4TTL 門電流。P1 口管腳寫入1 后,被內(nèi)部上拉為高,可用作輸入,P1 口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。
67、在FLASH 編程和校驗(yàn)時(shí),P1 口作為第八位地址接收。</p><p> ●P2 口:P2 口為一個(gè)內(nèi)部上拉電阻的8 位雙向I/O 口,P2 口緩沖器可接收,輸出4 個(gè)TTL 門電流,當(dāng)P2 口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2 口當(dāng)用于外部程序存儲(chǔ)器或16 位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí)
68、,P2 口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2 口輸出其特殊功能寄存器的內(nèi)容。P2 口在FLASH 編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p> ●P3 口:P3 口管腳是8 個(gè)帶內(nèi)部上拉電阻的雙向I/O 口,可接收輸出4 個(gè)TTL 門電流。當(dāng)P3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外
69、部下拉為低電平,P3 口將輸出電流(ILL)這是由于上拉的緣故。P3 口也可作為AT89C51 的一些特殊功能口。</p><p> P3 口管腳備選功能:</p><p> ●P3.0 RXD(串行輸入口)</p><p> ●P3.1 TXD(串行輸出口)</p><p> ●P3.2 /INT0(外部中斷0)</p&g
70、t;<p> ●P3.3 /INT1(外部中斷1)</p><p> ●P3.4 T0(記時(shí)器0 外部輸入)</p><p> ●P3.5 T1(記時(shí)器1 外部輸入)</p><p> ●P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)</p><p> ●P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><
71、;p> ●P3 口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p> ● RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST 腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p> ●ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字</p><p> 節(jié)。在FLASH 編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE
72、端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE 脈沖。如想禁止ALE 的輸出可在SFR8EH 地址上置0。此時(shí), ALE 只有在執(zhí)行MOVX,MOVC 指令是ALE 才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE 禁止,置位無效。</p><p> ●PSEN:外部
73、程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN 有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p> ●EA/VPP:當(dāng)/EA 保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1 時(shí),/EA 將內(nèi)部鎖定為RESET;當(dāng)/EA 端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH 編
74、程期間,此引腳也用于施加12V 編程電源(VPP)。</p><p> ●XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p> ●XTAL2:來自反向振蕩器的輸出。</p><p><b> 3.振蕩器特性:</b></p><p> XTAL1 和XTAL2 分別為反向放大器的輸入和
75、輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2 應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p><b> 4.芯片擦除:</b></p><p> 整個(gè)PEROM 陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合
76、,并保持ALE 管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。</p><p> 此外,AT89C51 設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU 停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM 的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下
77、一個(gè)硬件復(fù)位為止。</p><p><b> 5.系統(tǒng)軟件設(shè)計(jì)</b></p><p> 硬件電路完成以后,進(jìn)行系統(tǒng)軟件設(shè)計(jì)。首先要分析系統(tǒng)對(duì)軟件的要求,然后進(jìn)行軟件的總體的設(shè)計(jì),包括程序的總體設(shè)計(jì)和對(duì)程序的模塊化設(shè)計(jì)。按整體功能分為多個(gè)不同的模塊,單獨(dú)設(shè)計(jì)、編程、調(diào)試,然后將各個(gè)模塊裝配聯(lián)調(diào),組成完整的軟件。</p><p> 根據(jù)設(shè)計(jì)
78、的要求,單片機(jī)的任務(wù)是:內(nèi)部進(jìn)行計(jì)數(shù),在計(jì)算出速度后顯示。軟件編程用C 語言完成的,需要能掌握C 語言,還要熟練AT89C51 單片機(jī)。從程序流程圖、編寫程序、編譯,到最后的調(diào)試,是很復(fù)雜的。下面作簡(jiǎn)單介紹:系統(tǒng)軟件主程序的功能是完成系統(tǒng)的初始化、顯示程序。</p><p> 5.1 主程序初始化</p><p><b> .定時(shí)器的初始化</b></p&g
79、t;<p> AT89C51 有兩個(gè)定時(shí)器/計(jì)數(shù)器T0 和T1,每個(gè)定時(shí)器/計(jì)數(shù)器均可設(shè)置成為16</p><p> 位,也可以設(shè)置成為13 位進(jìn)行定時(shí)或計(jì)數(shù)。計(jì)數(shù)器的功能是對(duì)T0 或T1 外來脈沖的進(jìn)行計(jì)數(shù),外部輸入脈沖負(fù)跳變時(shí),計(jì)數(shù)器進(jìn)行加1。</p><p> 定時(shí)功能是通過計(jì)數(shù)器的計(jì)數(shù)來實(shí)現(xiàn)的,每個(gè)機(jī)器周期產(chǎn)生1 個(gè)計(jì)數(shù)脈沖,即每個(gè)機(jī)器周期計(jì)數(shù)器加1,因此定時(shí)時(shí)
80、間等于計(jì)數(shù)個(gè)數(shù)乘以機(jī)器周期。定時(shí)器工作時(shí),每接收到1 個(gè)計(jì)數(shù)脈沖(或機(jī)器周期)則在設(shè)定的初值基礎(chǔ)上自動(dòng)加1,當(dāng)所有位都位1時(shí),再加1 就會(huì)產(chǎn)生溢出,將向CPU 提出定時(shí)器溢出中斷身請(qǐng)。當(dāng)定時(shí)器采用不同的工作方式和設(shè)置不同的初值時(shí),產(chǎn)生溢出中斷的定時(shí)值和計(jì)數(shù)值將不同,從而可以適應(yīng)不同的定時(shí)或計(jì)數(shù)控制。</p><p> 定時(shí)器有4 種工作方式:方式0、方式2、方式2 和方式3,在此對(duì)工作方式不做具體介紹。<
81、/p><p> 工作方式寄存器TMOD 的設(shè)定:</p><p> TMOD 各位的含義如下:</p><p> ◆GATE:門控位,用于控制定時(shí)/計(jì)數(shù)器的啟動(dòng)是否受外部中斷請(qǐng)求信號(hào)的影響。</p><p> ◆C/T:定時(shí)或計(jì)數(shù)方式選擇位,當(dāng)C/T=1 時(shí)工作于計(jì)數(shù)方式;當(dāng)C/T=0 時(shí)工作于定時(shí)方式。</p><
82、;p> M1、M0 為工作方式選擇位,用于對(duì)T0 的四種工作方式,T1 的三種工作方式進(jìn)行選擇,選擇情況如下表5-1:M1M0=00 為方式0;M1M0=01 為方式1;</p><p> 表5-1 M1、M0 為工作方式選擇位</p><p><b> ?。?)中斷允許控制</b></p><p> MCS-51 單片機(jī)中沒有專門
83、的開中斷和關(guān)中斷指令,對(duì)各個(gè)中斷源的允許和屏蔽是由內(nèi)部的中斷允許寄存器IE 的各位來控制的。中斷允許寄存器IE 的字節(jié)地址為A8H,可以進(jìn)行位尋址</p><p> 表5-2 中斷位尋址表</p><p> ◆EA:中斷允許總控位。EA=0,屏蔽所有的中斷請(qǐng)求;EA=1,開放中斷。</p><p> ◆ET2:定時(shí)器/計(jì)數(shù)器T2 的溢出中斷允許位</p&
84、gt;<p> ◆ES:串行口中斷允許位。</p><p> ◆ET1:定時(shí)器/計(jì)數(shù)器T1 的溢出中斷允許位。</p><p> ◆EX1:外部中斷INT1 的中斷允許位。</p><p> ◆ET0:定時(shí)器/計(jì)數(shù)器T0 的溢出中斷允許位。</p><p> ◆EX0:外部中斷INT0 的中斷允許位。</p>
85、;<p> 5.2主程序流程圖程序流程圖</p><p> ?、僦鞒绦蛄鞒虉D5.1</p><p><b> 圖5.1 流程圖</b></p><p> ?、鄱〞r(shí)計(jì)數(shù)子程序流程圖5.3</p><p> 圖5.3 定時(shí)計(jì)數(shù)子程序流程圖</p><p> 后續(xù)有待完善和提高的工
86、作</p><p> 采用單片機(jī)技術(shù)來實(shí)現(xiàn)轉(zhuǎn)速的測(cè)量,可以提高轉(zhuǎn)速的測(cè)量,可以提高轉(zhuǎn)速測(cè)量的精確度,并且加快了采樣的速率,具有較好的實(shí)時(shí)性。本文介紹的轉(zhuǎn)速方法使用于高、低轉(zhuǎn)速的測(cè)量,測(cè)量精確度與轉(zhuǎn)速無關(guān),因而具有較寬的應(yīng)用范圍和廣闊的應(yīng)用的前景?;趩纹瑱C(jī)的轉(zhuǎn)速測(cè)量系統(tǒng),具有硬件電路簡(jiǎn)單,程序簡(jiǎn)單和運(yùn)算速度快,測(cè)速范圍廣,抗干擾性能好的特點(diǎn)。在設(shè)計(jì)的信號(hào)處理電路中經(jīng)過濾波,能夠進(jìn)一步減少誤差,是測(cè)速精度得到提高
87、。</p><p> 可以再加入其他檢測(cè)模塊如檢測(cè)電機(jī)溫度、扭矩等,精度方面也可以再提高一點(diǎn)。</p><p><b> 參考文獻(xiàn)</b></p><p> 1、陳伯時(shí).電力拖動(dòng)自動(dòng)控制系統(tǒng)-運(yùn)動(dòng)控制系統(tǒng).機(jī)械工業(yè)出版社,2003</p><p> 2、馬全權(quán),李慶輝,強(qiáng)盛.一種高精度實(shí)時(shí)電機(jī)轉(zhuǎn)速測(cè)量新方法,齊齊
88、哈爾大學(xué)學(xué)報(bào).2002</p><p> 3、孫桂榮,班瑩,劉鳴.電機(jī)轉(zhuǎn)速測(cè)量設(shè)計(jì)實(shí)驗(yàn). 實(shí)驗(yàn)室科學(xué),2005</p><p> 4、王雪文.張志勇.傳感器原理及應(yīng)用.北京航空航天大學(xué)出版社.2004</p><p> 5、王秀杰,張疇先.模擬集成電路應(yīng)用.西北工業(yè)大學(xué)出版社,2003</p><p> 6、何立民.MCS-51 系列
89、單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,1990</p><p> 7、蔣智勇. 單片微型計(jì)算機(jī)原理及接口技術(shù).沈陽:遼寧科學(xué)技術(shù)出版設(shè),1992</p><p> 8、何立民.MCS-51 系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,1990</p><p> 9、穆蘭.單片微型計(jì)算機(jī)原理及接口技術(shù).北京:機(jī)械工業(yè)出版社,1995<
90、/p><p> 10、張毅剛.MCS-51 單片機(jī)應(yīng)用設(shè)計(jì).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1990</p><p> 11、蔣智勇. 單片微型計(jì)算機(jī)原理及接口技術(shù).沈陽:遼寧科學(xué)技術(shù)出版設(shè),1992</p><p><b> 附錄</b></p><p> /*系統(tǒng)軟件源程序*/</p><p&g
91、t; #include<reg52.h> //包含單片機(jī)寄存器的頭文件</p><p> #include<stdlib.h> //包含隨機(jī)函數(shù)rand()的定義文件</p><p> #include<intrins.h> //包含_nop_()函數(shù)定義的頭文件</p><p> sbit RS=P2^0;
92、 //寄存器選擇位,將RS位定義為P2.0引腳</p><p> sbit RW=P2^1; //讀寫選擇位,將RW位定義為P2.1引腳</p><p> sbit E=P2^2; //使能信號(hào)位,將E位定義為P2.2引腳</p><p> sbit BF=P0^7; //忙碌標(biāo)志位,,將BF位定義為P0.7引腳</p>
93、<p> sbit b_pul=P3^2; //編碼器脈沖</p><p> sbit b_dir=P1^2; //編碼器方向</p><p> float counter = 0.0,shudu=0.0,shuju1=0.0,shuju2=0.0; //編碼器脈沖計(jì)數(shù) </p><p> unsigned char n,shi
94、ft;</p><p> unsigned char code digit[ ]={"0123456789"}; //定義字符數(shù)組顯示數(shù)字</p><p> unsigned char code string2[ ]={"ZS"}; //定義字符數(shù)組顯示提示信息</p><p> unsigned char code s
95、tring1[ ]={"QS"}; //定義字符數(shù)組顯示提示信息</p><p> unsigned char count; //定義變量統(tǒng)計(jì)中斷累計(jì)次數(shù)</p><p> long s,m,zuikuai;</p><p> /*****************************************************&
96、lt;/p><p> 函數(shù)功能:延時(shí)1ms</p><p> (3j+2)*i=(3×33+2)×10=1010(微秒),可以認(rèn)為是1毫秒</p><p> ***************************************************/</p><p> void delay1ms()<
97、/p><p><b> {</b></p><p> unsigned char i,j;</p><p> for(i=0;i<10;i++)</p><p> for(j=0;j<33;j++)</p><p><b> ; </b></p&
98、gt;<p><b> }</b></p><p> /*****************************************************</p><p> 函數(shù)功能:延時(shí)若干毫秒</p><p><b> 入口參數(shù):n</b></p><p> **
99、*************************************************/</p><p> void delay(unsigned char ms)</p><p><b> {</b></p><p> unsigned char i;</p><p> for(i=0;i<m
100、s;i++)</p><p> delay1ms();</p><p><b> }</b></p><p> /*****************************************************</p><p> 函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)</p><p>
101、 返回值:result。result=1,忙碌;result=0,不忙</p><p> ***************************************************/</p><p> unsigned char BusyTest(void)</p><p><b> {</b></p><
102、;p> bit result;</p><p> RS=0; //根據(jù)規(guī)定,RS為低電平,RW為高電平時(shí),可以讀狀態(tài)</p><p><b> RW=1;</b></p><p> E=1; //E=1,才允許讀寫</p><p> _nop_(); //空操作</p&
103、gt;<p><b> _nop_();</b></p><p><b> _nop_(); </b></p><p> _nop_(); //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間</p><p> result=BF; //將忙碌標(biāo)志電平賦給result</p><p>
104、; E=0; //將E恢復(fù)低電平</p><p> return result;</p><p><b> }</b></p><p> /*****************************************************</p><p> 函數(shù)功能:將模式設(shè)置指令或顯示
105、地址寫入液晶模塊</p><p> 入口參數(shù):dictate</p><p> ***************************************************/</p><p> void WriteInstruction (unsigned char dictate)</p><p><b> {
106、 </b></p><p> while(BusyTest()==1); //如果忙就等待</p><p> RS=0; //根據(jù)規(guī)定,RS和R/W同時(shí)為低電平時(shí),可以寫入指令</p><p><b> RW=0; </b></p><p> E=0;
107、 //E置低電平(根據(jù)表8-6,寫指令時(shí),E為高脈沖,</p><p> // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0"</p><p><b> _nop_();</b></p><p> _nop_(); //空操作兩個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間</p>
108、;<p> P0=dictate; //將數(shù)據(jù)送入P0口,即寫入指令或地址</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p>&l
109、t;p> _nop_(); //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間</p><p> E=1; //E置高電平</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><
110、p><b> _nop_();</b></p><p> _nop_(); //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間</p><p> E=0; //當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令</p><p><b> }</b></p&
111、gt;<p> /*****************************************************</p><p> 函數(shù)功能:指定字符顯示的實(shí)際地址</p><p><b> 入口參數(shù):x</b></p><p> ****************************************
112、***********/</p><p> void WriteAddress(unsigned char x)</p><p><b> {</b></p><p> WriteInstruction(x|0x80); //顯示位置的確定方法規(guī)定為"80H+地址碼x"</p><p><
113、b> }</b></p><p> /*****************************************************</p><p> 函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫入液晶模塊</p><p> 入口參數(shù):y(為字符常量)</p><p> ****************
114、***********************************/</p><p> void WriteData(unsigned char y)</p><p><b> {</b></p><p> while(BusyTest()==1); </p><p> RS=1; //
115、RS為高電平,RW為低電平時(shí),可以寫入數(shù)據(jù)</p><p><b> RW=0;</b></p><p> E=0; //E置低電平(根據(jù)表8-6,寫指令時(shí),E為高脈沖,</p><p> // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0"</p><p> P0=y;
116、 //將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p> _nop_(); /
117、/空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間</p><p> E=1; //E置高電平</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p&g
118、t;<p> _nop_(); //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間</p><p> E=0; //當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令</p><p><b> }</b></p><p> /**************************************
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字轉(zhuǎn)速計(jì)設(shè)計(jì)課程設(shè)計(jì)
- 光電轉(zhuǎn)速計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)---光電轉(zhuǎn)速計(jì)的設(shè)計(jì)
- 光電轉(zhuǎn)速計(jì)的設(shè)計(jì)課程設(shè)計(jì)
- 數(shù)電課程設(shè)計(jì)-數(shù)字溫度計(jì)
- 數(shù)電課程設(shè)計(jì)---數(shù)字溫度計(jì)
- 光電轉(zhuǎn)速計(jì)課程設(shè)計(jì)報(bào)告
- 數(shù)字轉(zhuǎn)速表課程設(shè)計(jì)--- 數(shù)字轉(zhuǎn)速表的設(shè)計(jì)
- 數(shù)電課程設(shè)計(jì)--數(shù)字頻率周期計(jì)
- 數(shù)電課程設(shè)計(jì)--數(shù)字頻率計(jì)
- 數(shù)電課程設(shè)計(jì)--數(shù)字頻率計(jì)
- 數(shù)電課程設(shè)計(jì)--數(shù)字頻率計(jì)
- 數(shù)字轉(zhuǎn)速表課程設(shè)計(jì)
- 課程設(shè)計(jì)---數(shù)字溫度計(jì)設(shè)計(jì)
- 數(shù)電課程設(shè)計(jì)數(shù)字頻率計(jì)
- 課程設(shè)計(jì)---數(shù)字溫度計(jì)
- 數(shù)字溫度計(jì)課程設(shè)計(jì)
- 數(shù)字溫度計(jì)的課程設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---數(shù)字轉(zhuǎn)速計(jì)的設(shè)計(jì)
- 數(shù)字溫度計(jì)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論