




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、運(yùn)動(dòng)控制系統(tǒng)課程設(shè)計(jì)運(yùn)動(dòng)控制系統(tǒng)課程設(shè)計(jì) 學(xué)號(hào): 姓名: 日期:2016/6/30M法、T法、M/T法測(cè)速單片機(jī)程序設(shè)計(jì)摘 要數(shù)字測(cè)速具有測(cè)速精度高、分辨能力強(qiáng)、受器件影響小等優(yōu)點(diǎn),被廣泛應(yīng)用于調(diào)速高,調(diào)速范圍大的調(diào)速系統(tǒng)和伺服系統(tǒng)。本設(shè)計(jì)的數(shù)字轉(zhuǎn)速測(cè)量是以單片機(jī)AT89C52為控制芯片, 利用單片機(jī)三個(gè)定時(shí)器的特點(diǎn),可以使用按鍵輸入來調(diào)整M法、T法測(cè)速法中Z、TC等參數(shù)以及測(cè)速方法的選擇,以此來增強(qiáng)本設(shè)計(jì)的適應(yīng)性,運(yùn)用轉(zhuǎn)速測(cè)量M法、T法、M/T法, 通過對(duì)光電編碼盤輸出的脈沖信號(hào)測(cè)量,獲得電動(dòng)機(jī)轉(zhuǎn)速測(cè)量,有精度高,范圍寬等特點(diǎn)。測(cè)量結(jié)果將會(huì)顯示在LCD1602液晶顯示屏上。關(guān)鍵詞:數(shù)字測(cè)速,
2、單片機(jī),LCD1602,轉(zhuǎn)速,測(cè)速法7目錄第1章 緒論51.1 數(shù)字測(cè)速方法的原理與應(yīng)用51.1.1 M法測(cè)速51.1.2 T法測(cè)速61.1.3 M/T法測(cè)速6第2章 系統(tǒng)總體設(shè)計(jì)8第3章 硬件設(shè)計(jì)93.1 硬件選型93.1.1 CPU主控模塊的選型93.1.2顯示器的選型103.2 硬件電路設(shè)計(jì)103.2.1時(shí)鐘電路的設(shè)計(jì)103.2.2顯示電路103.2.3速度檢測(cè)電路113.2.4按鍵輸入電路113.2.5復(fù)位電路12第4章 軟件設(shè)計(jì)134.1 系統(tǒng)流程134.1.1 主程序流程設(shè)計(jì)134.1.2 M法測(cè)速程序設(shè)計(jì)144.1.3 T法測(cè)速程序設(shè)計(jì)154.1.4 M/T法測(cè)速程序設(shè)計(jì)15第5
3、章 仿真結(jié)果175.1 測(cè)速功能仿真測(cè)試175.1.1 建立仿真文件175.1.2 測(cè)速功能測(cè)試185.2 仿真結(jié)果分析19結(jié)論20參考文獻(xiàn)21附錄22 第1章 緒論1.1 數(shù)字測(cè)速方法的原理與應(yīng)用1.1.1 M法測(cè)速 在一定時(shí)間TC 內(nèi)測(cè)取旋轉(zhuǎn)編碼器輸出的脈沖個(gè)數(shù)M1用以計(jì)算這段時(shí)間內(nèi)的轉(zhuǎn)速,稱作M法測(cè)速。把M1除以TC就可得到旋轉(zhuǎn)編碼器輸出脈沖的頻率f1=M1/TC,所以又稱為頻率法。M法是測(cè)量單位時(shí)間內(nèi)的脈數(shù)換算成頻率,因存在測(cè)量時(shí)間內(nèi)首尾的半個(gè)脈沖問題,可能會(huì)有2個(gè)脈的誤差。速度較低時(shí),因測(cè)量時(shí)間內(nèi)的脈沖數(shù)變少,誤差所占的比例會(huì)變大,所以M法宜測(cè)量高速。如要降低測(cè)量的速度下限,可以提高
4、編碼器線數(shù)或加大測(cè)量的單位時(shí)間,使用一次采集的脈沖數(shù)盡可能多。計(jì)算公式為:時(shí)鐘Z = 倍頻系數(shù) x 編碼器光柵數(shù)。M法測(cè)速的分辨率:M法測(cè)速誤差率: 在上式中,Z和TC 均為常值,因此轉(zhuǎn)速 n 正比于脈沖個(gè)數(shù)。高速時(shí)M1大,量化誤差較小,隨著轉(zhuǎn)速的降低誤差增大。所以,M法測(cè)速只適用于高速段。1.1.2 T法測(cè)速T法測(cè)速是測(cè)出旋轉(zhuǎn)編碼器兩個(gè)輸出脈沖之間的間隔時(shí)間來計(jì)算轉(zhuǎn)速,它又成為周期法測(cè)速。T法是測(cè)量?jī)蓚€(gè)脈沖之間的時(shí)間換算成周期,從而得到頻率。因存在半個(gè)時(shí)間單位的問題,可能會(huì)有1個(gè)時(shí)間單位的誤差。速度較高時(shí),測(cè)得的周期較小,誤差所占的比例變大,所以T法宜測(cè)量低速。如要增加速度測(cè)量的上限,可以減
5、小編碼器的脈沖數(shù),或使用更小更精確的計(jì)時(shí)單位,使一次測(cè)量的時(shí)間值盡可能大。計(jì)算公式為:T法測(cè)速的分辨率: 法測(cè)速誤差率: 低速時(shí),編碼器相鄰脈沖間隔時(shí)間長(zhǎng),測(cè)得的高頻時(shí)鐘脈沖個(gè)數(shù)M2多,所以誤差率小,測(cè)速精度高,故T法測(cè)速適用于低速段。1.1.3 M/T法測(cè)速在M法測(cè)速中,隨著電動(dòng)機(jī)的轉(zhuǎn)速的降低,計(jì)數(shù)值M1減少,測(cè)速裝置的分辨能力變差,測(cè)速誤差增大。如果速度過低,M1將小于1,測(cè)速裝置便不能正常工作。T法測(cè)速正好相反,隨著電動(dòng)機(jī)轉(zhuǎn)速的增加,計(jì)算值M2減小,測(cè)速裝置的分辨能力越來越差。綜合這兩種測(cè)速方法的特點(diǎn),產(chǎn)生了M/T法測(cè)速。它無論在高速還是在低速時(shí)都具有較高的分辨力和檢測(cè)精度。M/T法采用
6、三個(gè)定時(shí)/計(jì)數(shù)器,同時(shí)對(duì)輸入脈沖、高頻脈沖、及預(yù)設(shè)的定時(shí)時(shí)間進(jìn)行定時(shí)和計(jì)數(shù),M1反映轉(zhuǎn)角,M2反映測(cè)速的準(zhǔn)卻時(shí)間,通過計(jì)算可得轉(zhuǎn)速值n。該法在高速及低速時(shí)都具有相對(duì)較高的精度。測(cè)速時(shí)間Td由脈沖發(fā)生器脈沖來同步,即Td等于M1個(gè)脈沖周期。由圖1-1可見,從a點(diǎn)開始,計(jì)數(shù)器對(duì)M1和M2計(jì)數(shù),到達(dá)b點(diǎn),預(yù)定的測(cè)速時(shí)間時(shí),單片機(jī)發(fā)出停止計(jì)數(shù)指令,因?yàn)門C不一定正好等于整數(shù)個(gè)脈沖發(fā)生器脈沖周期,所以,計(jì)數(shù)器仍然對(duì)高頻脈沖繼續(xù)計(jì)數(shù),到達(dá)C點(diǎn)時(shí),脈沖發(fā)生器脈沖的上升沿使計(jì)數(shù)器停止,這樣M2就代表了M1個(gè)脈沖在周期時(shí)間。轉(zhuǎn)速角可表示為:=2M1Z檢測(cè)周期可寫成:T=M2f0綜合二式可求出被測(cè)得轉(zhuǎn)速為:n=6
7、0f0M1ZM2n轉(zhuǎn)速值,單位:(轉(zhuǎn)/分);f0晶體震蕩頻率,單位:HZ; M1輸入脈沖數(shù),反映轉(zhuǎn)角; M2時(shí)基脈沖數(shù)。圖1-1 M/T法定時(shí)/計(jì)數(shù)測(cè)量第2章 系統(tǒng)總體設(shè)計(jì)設(shè)計(jì)一個(gè)基于51單片機(jī)的光電編碼器測(cè)測(cè)速。設(shè)計(jì)一個(gè)電路來實(shí)現(xiàn)光電編碼器測(cè)量;利用單片機(jī)內(nèi)部精確到微妙的定時(shí)計(jì)數(shù)器來實(shí)現(xiàn)一個(gè)周期的時(shí)間來統(tǒng)計(jì)脈沖數(shù);P0和P2口控制1602液晶顯示轉(zhuǎn)速;利用復(fù)位按鍵功能來實(shí)現(xiàn)復(fù)位操作。由于定時(shí)器工作模式2是八位,可裝入的值太小,每進(jìn)行一個(gè)周期的脈沖統(tǒng)計(jì)需要進(jìn)入5000次定時(shí)器中斷,由于進(jìn)入中斷的次數(shù)太多,所以很容易出現(xiàn)在低八位裝滿本應(yīng)觸發(fā)而程序還在中斷子程序中運(yùn)行,而無法觸發(fā)中斷的情況,所以不
8、采用工作模式2。工作模式0只需要進(jìn)入定時(shí)中斷1000次就可以進(jìn)行一個(gè)周期的脈沖統(tǒng)計(jì),所以選擇功能模式0。用純軟件計(jì)數(shù)雖然電路簡(jiǎn)單,但是計(jì)數(shù)速度慢,難以滿足實(shí)時(shí)性要求,而且容易出錯(cuò)。我們可以用單片機(jī)內(nèi)部的計(jì)數(shù)器來實(shí)現(xiàn)加減計(jì)數(shù)。單片機(jī)片內(nèi)有兩個(gè)16位定時(shí)計(jì)數(shù)器都可以用來脈沖計(jì)數(shù),用兩個(gè)外部中斷來檢測(cè)正反轉(zhuǎn),避免了每一個(gè)脈沖都要進(jìn)行高低電平檢測(cè)的步驟。轉(zhuǎn)速測(cè)量系統(tǒng)的總體設(shè)計(jì)框圖如圖2-1所示。圖2-1總體設(shè)計(jì)框圖8計(jì)算機(jī)控制技術(shù)課程答辯論文第3章 硬件設(shè)計(jì)3.1 硬件選型3.1.1 CPU主控模塊的選型 AT89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)
9、器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,內(nèi)置4KB EEPROM,MAX810復(fù)位電路,2個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口。另外 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻
10、率35MHz,6T/12T可選。T2/P1.040T2EX/P1.141P1.242P1.343P1.444P1.51P1.62P1.73P0.037P0.136P0.730P0.631P0.532P0.433P0.334P0.235P2.018P2.119P2.220P2.321P2.422P2.523P2.624P2.725RxD/P3.05TxD/P3.17INT0/P3.28INT1/P3.39T0/P3.410T1/P3.511WR/P3.612RD/P3.713VSS16VDD38RES4ALE27PSEN26EA29X014X115P4.017P4.128INT3/P4.239I
11、NT2/P4.36U1AT89C52RC-40C-PQFP圖3-1單片機(jī)原理圖3.1.2顯示器的選型 本設(shè)計(jì)的顯示部分使用的是液晶顯示器LCD1602,該顯示器只能顯示英文字母和數(shù)字,所以參數(shù)的說明都用英語意思或是符號(hào)代替。屏幕上會(huì)顯示參數(shù)、模式以及計(jì)算后的速度。3.2 硬件電路設(shè)計(jì)3.2.1時(shí)鐘電路的設(shè)計(jì) STC89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳RXD和TXD分別是此放大器的輸入端和輸出端。時(shí)鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。在RXD和TXD引腳上外接定時(shí)元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時(shí)元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.212M
12、Hz之間選擇,電容值在530pF之間選擇,電容值的大小可對(duì)頻率起微調(diào)的作用。其電路圖3-2如下所示:圖3-2時(shí)鐘電路圖3.2.2顯示電路顯示電路原理圖如圖3-3所示。圖3-3顯示電路原理圖3.2.3速度檢測(cè)電路光電編碼器是開漏輸出,所以在和單片機(jī)連接時(shí)需要加上拉電阻。編碼器輸出端連接到51單片機(jī)外部中斷0引腳上所以就可以在每次接收到脈沖時(shí)就能觸發(fā)外部中斷,電路如圖3-4所示。圖3-4 速度檢測(cè)電路原理圖3.2.4按鍵輸入電路按鍵輸入負(fù)責(zé)調(diào)整測(cè)速模式和改變參數(shù)的值,一個(gè)按鍵是“確認(rèn)”按鍵,一個(gè)是“加”按鍵,在模式選擇時(shí)為T法選擇鍵;另一個(gè)是“減”按鍵, 在模式選擇時(shí)為M法選擇鍵。在調(diào)整參數(shù)的時(shí)候
13、,也是根據(jù)“減”“加”調(diào)整參數(shù)。其電路圖如圖3-5所示 圖3-5按鍵輸入電路圖3.2.5復(fù)位電路復(fù)位電路是指單片機(jī)的初始化操作。單片機(jī)啟動(dòng)運(yùn)行時(shí)都需要先復(fù)位,其作用是使CPU和系統(tǒng)中其他的部件處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。因而,復(fù)位是個(gè)很重要的操作方式。但單片機(jī)本身不能自動(dòng)進(jìn)行復(fù)位的,必須配合相應(yīng)的外部電路才能實(shí)現(xiàn)復(fù)位功能。復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號(hào)。為可靠期間,電源穩(wěn)定后還需經(jīng)歷一定延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電源插頭分合過程中引起抖動(dòng)而影響復(fù)位。復(fù)位電路如圖3-6所示: 圖3-6復(fù)位電路12 第4章 軟件設(shè)計(jì)4.1
14、系統(tǒng)流程4.1.1 主程序流程設(shè)計(jì)本設(shè)計(jì)程序運(yùn)行時(shí),通過按鍵輸入首先來選擇測(cè)速方法,然后設(shè)定測(cè)速法中T和Z等參數(shù)。主程序流程圖如圖4-1所示。圖4-1 主程序流程圖4.1.2 M法測(cè)速程序設(shè)計(jì)選擇M法測(cè)速模式后,打開外部中斷0,同時(shí)開啟定時(shí)器0開始一定時(shí)間的定時(shí),外部中斷開始計(jì)數(shù)脈沖個(gè)數(shù)。當(dāng)定時(shí)間到的時(shí)候關(guān)閉外部中斷和定時(shí)器,讀取外部中斷計(jì)數(shù)的個(gè)數(shù)并計(jì)算速度。M法測(cè)速程序流程如圖 4-2所示。圖4-2 M法測(cè)速流程圖4.1.3 T法測(cè)速程序設(shè)計(jì)程序初始化完成后選擇T法測(cè)速模式,只打開外部中斷0,當(dāng)外部中斷檢測(cè)到脈沖的第一個(gè)跳變時(shí)打開定時(shí)器0的中斷開始計(jì)時(shí)。當(dāng)外部中斷檢測(cè)到第二個(gè)跳變是關(guān)閉外部中
15、斷0和定時(shí)器并讀取計(jì)時(shí)的時(shí)間值。圖 4-3T法測(cè)速程序流程圖:圖4-3 T法測(cè)速流程圖4.1.4 M/T法測(cè)速程序設(shè)計(jì)M/T法測(cè)速程序設(shè)計(jì)如圖4-4所示。圖4-4 M/T法測(cè)速流程圖16第5章 仿真結(jié)果5.1 測(cè)速功能仿真測(cè)試 電路仿真采用Proteus軟件,Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR
16、、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。5.1.1 建立仿真文件 認(rèn)真了解設(shè)計(jì)要求并寫出具體方案后,開始進(jìn)行硬件仿真調(diào)試,建立如圖5-1電路仿真圖圖5-1 電路仿真圖5.1.2 測(cè)速功能測(cè)試首先運(yùn)行程序,然后選擇M法測(cè)速,則液晶屏?xí)袌D5-2顯示圖5-2 選擇M法測(cè)速按下確認(rèn)鍵,通過加間按鈕來進(jìn)行Z、TC參數(shù)的選擇,如同5-3所示圖5-3 參數(shù)的選擇選擇完畢后,按下確認(rèn)鍵,液晶屏就會(huì)顯示出測(cè)速結(jié)果,如圖5-4所示圖5-3測(cè)速結(jié)果5.2 仿真結(jié)果分析 通過軟件
17、程序控制能夠?qū)崿F(xiàn)測(cè)速方法德選擇,參數(shù)的設(shè)定,及測(cè)試結(jié)果的顯示等基本功能。調(diào)試結(jié)果一切正常。此過程中我們查找出來了些程序的錯(cuò)誤并通過多次的運(yùn)行分析,終于把程序更完善了,但是我們認(rèn)為在一些方面還可以再進(jìn)行深一步研究和完善,不過由于時(shí)間與能力有限,沒能繼續(xù)。20結(jié)論本設(shè)計(jì)是M法、T法、M/T法測(cè)速單片機(jī)程序設(shè)計(jì),采用單片機(jī)技術(shù)來實(shí)現(xiàn)轉(zhuǎn)速的測(cè)量,可以提高效果和精確度,具有較好的實(shí)時(shí)性。本文介紹的轉(zhuǎn)速測(cè)量方法適用于高、低轉(zhuǎn)速測(cè)量,測(cè)量精確度與轉(zhuǎn)速無關(guān),因而具有較寬的適用范圍和較廣闊的應(yīng)用前景。經(jīng)過這次課程設(shè)計(jì),使我覺得不論從理論知識(shí)還是從實(shí)際操縱中都學(xué)到了不少知識(shí)。它讓我接觸更多平時(shí)沒有接觸過的科學(xué)儀器
18、、元器件以及獲得相關(guān)的儀器調(diào)試經(jīng)驗(yàn),同時(shí)我也發(fā)現(xiàn)自己在這方面很多不足之處。體會(huì)到理論知識(shí)對(duì)實(shí)踐有很大的指導(dǎo)作用,學(xué)會(huì)了高效率的查閱資料、運(yùn)用工具書、利用網(wǎng)絡(luò)查找資料,各種參數(shù)都需要自己去調(diào)整。偶爾還會(huì)遇到錯(cuò)誤的資料現(xiàn)象,這就要求我們應(yīng)更加注重實(shí)踐環(huán)節(jié)。在課程設(shè)計(jì)中,我們應(yīng)當(dāng)注意重點(diǎn)與細(xì)節(jié)的關(guān)系。參考文獻(xiàn)1 高偉.AT89單片機(jī)原理及應(yīng)用.北京:國(guó)防工業(yè)出版社,2008 2 陳伯時(shí).電力拖動(dòng)自動(dòng)控制系統(tǒng)M.北京:機(jī)械工業(yè)出版社,2004.3 新型高精度測(cè)速方法探討J. 安徽機(jī)電學(xué)院學(xué)報(bào), 1997年02期.4 于海生.微型計(jì)算機(jī)控制技術(shù)選編.北京:清華大學(xué)出版社,19995 耿長(zhǎng)清單片機(jī)應(yīng)用技術(shù)
19、M北京:化學(xué)工業(yè)出版社,20026 李曉林,蘇淑靖. 單片機(jī)原理與接口技術(shù)M. 北京: 電子工業(yè)出版社, 20157 陳敏遜.近代電機(jī)調(diào)速技術(shù)G:科學(xué)技術(shù)文獻(xiàn)出版社,20048 康華光.電子技術(shù)基礎(chǔ).數(shù)字部分(第四版).北京:高等教育出版社,200032附錄 硬件電路總圖軟件程序#include <reg52.h>#include <intrins.h>#defineucharunsigned char#define uintunsigned int #define DataPort P0/LCD1602數(shù)據(jù)端口sbit LCM_RS=P25; /LCD1602命令端口
20、sbit LCM_EN=P27; /LCD1602使能端口 sbit KEY1=P11; /確認(rèn)按鍵sbit KEY2=P13; /減按鍵M法sbit KEY3=P15; /加按鍵T法sbit KEY4=P16; /按鍵M/T法uchar table = "Mode selection:" /顯示模式選擇uchar table2 = "selection:M/T" /顯示模式選擇uint M1 = 0;bit M_FLAG = 0; /M法脈沖個(gè)數(shù)及M法標(biāo)志位uint M2 = 0;bit T_FLAG = 0; /T法測(cè)速脈沖個(gè)數(shù)及T法標(biāo)志位bit M
21、T_FLAG = 0;uint Z = 0,T = 1000,n = 100; /轉(zhuǎn)軸轉(zhuǎn)一周脈沖發(fā)生器個(gè)數(shù) 計(jì)時(shí)時(shí)間 bit flag = 0;void delay(uint z)/延遲函數(shù)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void write_com(uchar com)/寫命令LCM_RS=0; /低電平為命令選擇,即選擇寫命令模式DataPort=com; /將要寫的命令送到數(shù)據(jù)總線P0口delay(5); /延遲5ms,稍作延遲使數(shù)據(jù)穩(wěn)定LCM_EN=1; / 給使能端一段高脈沖,因?yàn)槌跏蓟泻瘮?shù)已將使能端置0delay(5
22、);/稍作延遲LCM_EN=0;/完成高脈沖void write_data(uchar date)/寫數(shù)據(jù)LCM_RS=1;/高電平為數(shù)據(jù)選擇DataPort=date; / 將要寫的數(shù)據(jù)傳送到P0口delay(5);/延遲5msLCM_EN=1;/高脈沖delay(5);LCM_EN=0;/完成高脈沖void init()/1602初始化LCM_EN=0;write_com(0x38); /設(shè)置16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口write_com(0x0e);/設(shè)置開顯示 write_com(0x06);/寫一個(gè)字符后地址指針加1 write_com(0x01);/顯示清0,數(shù)據(jù)指針清0
23、(清除LCD顯示內(nèi)容)write_com(0x80+0x00); /1000 0000 從液晶第一行開始寫命令void main(void)/主函數(shù) uchar i; init(); /液晶初始化write_com(0x80); /1000 0000 從液晶第一行開始寫命令for(i = 0;i < 15;i+)/循環(huán)寫入15個(gè)數(shù)據(jù)字母"Mode selection:"write_data(tablei);/寫數(shù)據(jù) 令其顯示在1602上while(!flag)/循環(huán)檢測(cè) 如果flag=0 則執(zhí)行循環(huán)if(!KEY2) /減按鍵 選擇M法delay(15);/延遲15m
24、swrite_com(0x80 + 15);/定位數(shù)據(jù)指針,使其顯示在后面write_data('M');/寫數(shù)據(jù),使其顯示“M”M_FLAG = 1; /M標(biāo)志位置1T_FLAG = 0; / T標(biāo)志位置0MT_FLAG = 0;while(!KEY2); /等待按鍵釋放if(!KEY3) /加按鍵 選擇T法delay(15);write_com(0x80 + 15);write_data('T'); /寫數(shù)據(jù),使其顯示“T”T_FLAG = 1;M_FLAG = 0;MT_FLAG = 0;while(!KEY3);if(!KEY4) /加按鍵 選擇M/T法
25、delay(15);init(); /液晶初始化write_com(0x80); /1000 0000 從液晶第一行開始寫命令for(i = 0;i < 13;i+)/循環(huán)寫入15個(gè)數(shù)據(jù)字母"Mode selection:"write_data(table2i);/寫數(shù)據(jù) 令其顯示在1602上T_FLAG = 0;M_FLAG = 0;MT_FLAG = 1;while(!KEY4);if(!KEY1 &&(T_FLAG | M_FLAG | MT_FLAG) /如果已經(jīng)選擇了M法或T法,/并按確認(rèn)鍵flag = 1;/flag標(biāo)志位置1while(!
26、KEY1);/等待按鍵釋放write_com(0x80 + 0x40);/從1602第二行開始寫命令、數(shù)據(jù)write_data('Z');/顯示“Z”write_data('='); /顯示“=”write_data(Z / 100 + '0');/顯示Z的百位write_data(Z / 10 % 10 + '0');/顯示Z的十位write_data(Z % 10 + '0');/顯示Z的個(gè)位flag = 0; /flag標(biāo)志位置0while(!flag) /如果flag標(biāo)志位是0if(!KEY2)/ 減按鍵
27、delay(15);Z=Z-50;write_com(0x80 + 0x42); /從1602第二行第三位開始寫命令、數(shù)據(jù)write_data(Z / 100 + '0');write_data(Z / 10 % 10 + '0');write_data(Z % 10 + '0');delay(15);while(!KEY2);if(!KEY3) /加按鍵 delay(15);Z=Z+50;write_com(0x80 + 0x42);write_data(Z / 100 + '0');write_data(Z / 10 % 10
28、 + '0');write_data(Z % 10 + '0');delay(15);while(!KEY3);if(!KEY1) /按下確認(rèn)建flag = 1;while(!KEY1);write_com(0x80 + 0x48); /LCD第二行,第9位開始寫數(shù)據(jù) write_data('T'); /顯示T=多少ms (周期)write_data('=');write_data(T / 1000 + '0');write_data(T / 100 % 10 + '0');write_data(T
29、 / 10 % 10 + '0');write_data(T % 10 + '0');write_com(0x80 + 0x4E);write_data('m');write_data('s');flag = 0;while(!flag)if(!KEY2)delay(15);T=T-500;write_com(0x80 + 0x4A);write_data(T / 1000 + '0');write_data(T / 100 % 10 + '0');write_data(T / 10 % 10 +
30、'0');write_data(T % 10 + '0');while(!KEY2);if(!KEY3)delay(15);T=T+500;write_com(0x80 + 0x4A);write_data(T / 1000 + '0');write_data(T / 100 % 10 + '0');write_data(T / 10 % 10 + '0');write_data(T % 10 + '0');while(!KEY3);if(!KEY1) flag = 1;while(!KEY1);f
31、lag = 0;write_com(0x01); /lCD1602清零IT0 = 1; /下降沿觸發(fā)EX0 = 1; /打開外部中斷0 TMOD = 0x11; /定時(shí)/計(jì)數(shù)器0、1工作于方式1TH0 = 0xFC; /裝入初值12.000TL0 = 0x18; /裝入初值 ET0=1; /允許定時(shí)/計(jì)數(shù)器0 中斷if(MT_FLAG) /如果選擇了M法測(cè)速TR0=1; /啟動(dòng)定時(shí)/計(jì)數(shù)器0 中斷 if(M_FLAG) /如果選擇了M法測(cè)速TR0=1; /啟動(dòng)定時(shí)/計(jì)數(shù)器0 中斷else if(T_FLAG) /如果選擇了T法測(cè)速 TR0=0; /啟動(dòng)定時(shí)/計(jì)數(shù)器0 中斷EA=1; /開總中斷
32、while(1) /大循環(huán);void Int0(void) interrupt 0 /外部中斷0函數(shù)if(M_FLAG) /如果選擇M法測(cè)速M(fèi)1+; if(MT_FLAG) /如果選擇M/T法測(cè)速M(fèi)1+; if(T_FLAG) /如果選擇T法測(cè)速TR0=1; /啟動(dòng)定時(shí)器0if(flag) /如果flag標(biāo)志位為1flag = 0; /將標(biāo)志位置零 n = 60000/Z/M2;/n = 60000/Z/M2; /轉(zhuǎn)速公式/ /轉(zhuǎn)速公式 /轉(zhuǎn)速公式/write_com(0x80); /從1602第一行寫數(shù)據(jù)write_data('s');/顯示Speed:(表示速度)write
33、_data('p');write_data('e');write_data('e');write_data('d');write_data(':');write_data(n / 10000 + '0');/顯示轉(zhuǎn)速萬位write_data(n / 1000 % 10 + '0');/顯示轉(zhuǎn)速千位write_data(n / 100 % 10 + '0');/顯示轉(zhuǎn)速百位write_data(n / 10 % 10 + '0');/顯示轉(zhuǎn)速十位write_data(n % 10 + '0');/顯示轉(zhuǎn)速個(gè)位write_data('r');/顯示單位 r/minwrite_data('/');write_data('m');write_data('i');write_data('n');EA = 0; /關(guān)總中斷flag = 1;M2 =
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司運(yùn)營(yíng)流程與規(guī)章制度詳解手冊(cè)
- 生物信息學(xué)實(shí)驗(yàn)手冊(cè)
- 三農(nóng)災(zāi)害應(yīng)急管理指南
- 三農(nóng)工作者的實(shí)踐指南
- 生物質(zhì)顆粒燃料蒸汽發(fā)生器
- 重大項(xiàng)目進(jìn)度協(xié)調(diào)會(huì)議紀(jì)要記錄
- 育嬰師復(fù)習(xí)試題含答案
- 藝術(shù)鑒賞油畫技法分析題集
- 茶藝師復(fù)習(xí)試題含答案(一)
- 外科總論復(fù)習(xí)測(cè)試有答案
- GB/T 45236-2025化工園區(qū)危險(xiǎn)品運(yùn)輸車輛停車場(chǎng)建設(shè)規(guī)范
- 2025湖北日?qǐng)?bào)傳媒集團(tuán)招聘45人筆試參考題庫(kù)附帶答案詳解
- 2025年南京信息職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)匯編
- 2025春教科版(2024)小學(xué)一年級(jí)下冊(cè)科學(xué)全冊(cè)教案
- 第10章 浮力較難2 難題練習(xí) 2021年初中物理培優(yōu)(重點(diǎn)高中自主招生 競(jìng)賽)
- 計(jì)算機(jī)一級(jí)測(cè)試題(附參考答案)
- GB∕T 2518-2019 連續(xù)熱鍍鋅和鋅合金鍍層鋼板及鋼帶
- 數(shù)字電子基礎(chǔ)(康華光)
- 猜字謎競(jìng)賽(課堂PPT)
- 上海機(jī)場(chǎng)控制區(qū)通行證申請(qǐng)表(人員)
- 第五章新聞評(píng)論的嬗變
評(píng)論
0/150
提交評(píng)論