2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  襖蒄薇蟻芃蒃蠆羆腿蒃螂蝿肅蒂蒁羅羈肈薃螈袇肇蚆羃膅膇蒞螆肁膆蒈羈羇膅蝕螄羃膄螂蚇節(jié)膃蒂袂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆芀葿衿膅艿薁螞肁羋螃袇肆芇蒃螀羂芆薅羆袈芅蚈螈膇芅莇羄肅莄葿螇罿莃薂羂裊莂蚄螅芄莁蒄薈膀莀薆袃肆荿蚈蚆羂荿莈袂袈莈蒀蚄膆蕆薃袀肂蒆蚅蚃羈蒅蒞袈襖蒄薇蟻芃蒃蠆羆腿蒃螂蝿肅蒂蒁羅羈肈薃螈袇肇蚆羃膅膇蒞螆肁膆蒈羈羇膅蝕螄羃膄螂蚇節(jié)膃蒂袂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆芀葿衿膅艿薁螞肁羋螃袇肆芇蒃螀羂芆薅羆袈芅蚈螈膇

2、芅莇羄肅莄葿螇罿莃薂羂裊莂蚄螅芄莁蒄薈膀莀薆袃肆荿蚈蚆羂荿莈袂袈莈蒀蚄膆蕆薃袀肂蒆蚅蚃羈蒅蒞袈襖蒄薇蟻芃蒃蠆羆腿蒃螂蝿肅蒂蒁羅羈肈薃螈袇肇蚆羃膅膇蒞螆肁膆蒈羈羇膅蝕螄羃膄螂蚇節(jié)膃蒂袂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆芀葿衿膅艿薁螞肁羋螃袇肆芇蒃螀羂芆薅羆袈芅蚈螈膇芅莇羄肅莄葿螇罿莃薂羂裊莂蚄螅芄莁蒄薈膀莀薆袃肆荿蚈蚆羂荿莈袂袈莈蒀蚄膆蕆薃袀肂蒆蚅蚃羈蒅蒞袈襖蒄薇蟻芃蒃蠆羆腿蒃螂蝿肅蒂蒁羅羈肈薃螈袇肇蚆羃膅膇蒞螆肁膆蒈羈羇膅蝕螄羃膄螂蚇節(jié)膃蒂袂膈

3、膂薄蚅肄膁蚇袁羀膁莆蚄袆芀葿衿膅艿薁螞肁羋螃袇肆芇蒃螀羂芆薅羆袈芅蚈螈膇芅莇羄肅莄葿螇罿莃薂羂裊莂蚄螅芄莁蒄薈膀莀薆袃肆荿蚈蚆羂荿莈袂袈莈蒀蚄</p><p><b>  目錄</b></p><p><b>  前 言1</b></p><p><b>  第一章 概述2</b></p&

4、gt;<p>  1.1 單片機控制直流調(diào)速系統(tǒng)的設(shè)計方案2</p><p>  1.2 單片機控制直流調(diào)速系統(tǒng)工作原理概述2</p><p>  第二章 單片機控制系統(tǒng)的硬件設(shè)計4</p><p>  2.1單片機系統(tǒng)的地址分配4 </p><p>  2.2數(shù)據(jù)存儲器6264的擴展5</p>&l

5、t;p>  2.3 ADC0809與8051單片機的接口電路設(shè)計7</p><p>  2.3.1給定速度的設(shè)計7</p><p>  2.3.2 反饋速度采樣電路設(shè)計8</p><p>  2.4 DAC0832與8051單片機的接口電路設(shè)計9</p><p>  2.5 LED數(shù)碼顯示電路設(shè)計11</p>

6、<p>  2.6 單片機控制直流調(diào)速系統(tǒng)中的其它設(shè)計13</p><p>  第三章 單片機控制系統(tǒng)的軟件設(shè)計14</p><p>  3.1主程序的設(shè)計14</p><p>  3.2采樣子程序18</p><p>  3.2.1 ADC0809的采樣程序19</p><p>  3.2.2中

7、值濾波算法子程序20</p><p>  3.3數(shù)字PID控制算法子程序21</p><p>  3.4 DAC0832的轉(zhuǎn)換24</p><p>  3.5程序中的代碼的轉(zhuǎn)換25</p><p>  3.6給定速度顯示與實際速度顯示子程序28</p><p>  3.6.1 給定速度顯示程序設(shè)計29<

8、;/p><p>  3.6.2實際速度顯示子程序30</p><p>  3.7 程序的調(diào)試30</p><p>  第四章 總結(jié)31</p><p><b>  致 謝32</b></p><p>  參 考 文 獻32</p><p>  附錄 一 軟件程

9、序清單33</p><p><b>  前 言</b></p><p>  自電動機成為第二次工業(yè)革命開始的標(biāo)志以來,其在工業(yè)生產(chǎn)制造、交通運輸、家用電器等領(lǐng)域發(fā)揮重要作用,電動機的應(yīng)用無處不在。電機的控制系統(tǒng)隨著計算機的發(fā)展而不斷的改進。</p><p>  在很長一段時間內(nèi),在較高控制性能的傳動系統(tǒng)中,直流電機一直占據(jù)主導(dǎo)地位,主要原因

10、在于其控制簡單、調(diào)速平滑、性能良好。隨著電力電子技術(shù)的發(fā)展,直流電機拖動將有逐步被交流電機拖動所取代的趨勢。但在中、小功率的場合,采用永磁直流電動機,對其轉(zhuǎn)速控制相對比較簡單,只需對電樞回路進行控制。直流調(diào)速系統(tǒng)中應(yīng)用最廣泛的一種調(diào)速方法是調(diào)節(jié)電動機的電樞電壓。為了獲得可調(diào)的直流電壓,利用電力電子器件的完全可控性,采用脈寬調(diào)制(Pulse Width Modulation)技術(shù),將恒定的直流電壓調(diào)制成大小、極性可變的直流電壓作為電動機的

11、電樞電壓,實現(xiàn)系統(tǒng)的平滑調(diào)速,這種調(diào)速系統(tǒng)就稱為直流脈寬調(diào)速系統(tǒng)。它越來越廣泛地應(yīng)用于各種功率的調(diào)速系統(tǒng)中。</p><p>  微處理器使電機運動控制技術(shù)再次發(fā)生巨大變革,使用微處理器實現(xiàn)數(shù)字化控制不僅可以簡化控制硬件,而且可以加入人工智能對運動系統(tǒng)進行診斷,這對電機運動控制系統(tǒng)的發(fā)展影響重大。單片機用做微處理器的調(diào)速系統(tǒng)應(yīng)用尤為廣泛。單片機結(jié)構(gòu)相對比較簡單,通過學(xué)習(xí)一些專業(yè)基礎(chǔ)知識以后依靠自己的技術(shù)力量,也能

12、夠開發(fā)出自己所希望的單片機應(yīng)用系統(tǒng)。</p><p>  為了在比較簡單的運動控制系統(tǒng)中實現(xiàn)智能控制,因此設(shè)計了單片機控制直流調(diào)速系統(tǒng)。單片機是應(yīng)用于直流調(diào)速系統(tǒng)的最基本處理器,就其組成和結(jié)構(gòu)而言,大大縮小控制器的體積,增加了功能,而且可以通過串行通信和計算機相連接,實現(xiàn)集中控制。</p><p><b>  第一章 概述</b></p><p&g

13、t;  1.1 單片機控制直流調(diào)速系統(tǒng)的設(shè)計方案</p><p>  本次設(shè)計的任務(wù)是單片機控制的直流調(diào)速系統(tǒng),該系統(tǒng)通過單片機對直流電動機的速度進行控制,同時對速度進行檢測采樣,并顯示給定速度和實際速度??刂葡到y(tǒng)設(shè)計總體結(jié)構(gòu)框圖如下: </p><p>  圖1-1系統(tǒng)結(jié)構(gòu)框圖</p><p>  1.2 單片機控制直流調(diào)速系統(tǒng)工作原理概述</p>

14、<p>  整個系統(tǒng)的工作原理:首先是人為給定電動機轉(zhuǎn)速的電壓信號,然后將這個電壓信號通過A/D轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字信號后傳送給單片機(8051)。單片機通過中斷通信方式將接收到數(shù)據(jù)先保存起來。然后再對此數(shù)據(jù)進行處理:要將此二進制數(shù)進行轉(zhuǎn)換,先將(00H~FFH)轉(zhuǎn)換成對應(yīng)的實際數(shù)值,接著啟動ADC0809開始采樣直流電動機的實際速度值,因為用到了中值濾波算法,所以需要連續(xù)采集三次數(shù)據(jù),作比較之后取中間值,這個值即為直流電動機速度

15、的實際值。然后用給定值與這個實際值作比較,再通過PID控制算法,得到一個輸出信號值,再通過DAC0832轉(zhuǎn)換器將這個數(shù)字信號轉(zhuǎn)換成相應(yīng)的模擬電壓控制信號,經(jīng)過PWM波形發(fā)生器來驅(qū)動直流電動機;接著繼續(xù)采樣,又通過PID控制算法,同樣又輸出一個電壓控制信號來驅(qū)動直流電動機,其實這是一個不斷地循環(huán)往復(fù)的過程,作比較直至差值為零,即實際速度等于給定速度。并在這個循環(huán)往復(fù)的過程中,將采集到的不斷變化的速度值,通過LED數(shù)碼管顯示出直流電動機的給

16、定速度值和實際速度值。</p><p>  整個系統(tǒng)設(shè)計包括了四個大的部分: A/D轉(zhuǎn)換電路部分、D/A轉(zhuǎn)換電路部分、存儲器的擴展部分、轉(zhuǎn)速數(shù)字顯示部分。</p><p>  (1)A/D轉(zhuǎn)換電路的設(shè)計:從畢業(yè)設(shè)計任務(wù)書中給的原始數(shù)據(jù)知道,測速發(fā)電機的輸出電壓范圍為(0~12V),直流電動機的額定轉(zhuǎn)速值是1500轉(zhuǎn)/分。選用了一塊ADC0809芯片,對測速發(fā)電機發(fā)出的電壓進行轉(zhuǎn)換,轉(zhuǎn)換成相

17、應(yīng)的數(shù)字信號。但是ADC0809芯片只能接受(0~5V)的電壓范圍,需要外加一個轉(zhuǎn)換電路,將測速發(fā)電機發(fā)出的電壓進行轉(zhuǎn)換,達到ADC0809芯片能接受要求范圍。</p><p>  (2)D/A轉(zhuǎn)換電路的設(shè)計:畢業(yè)設(shè)計任務(wù)要求單片機控制系統(tǒng)部分能夠輸出(0~5V)電壓控制信號。這里選用DAC0832芯片,因為它具有數(shù)據(jù)鎖存器、片選、讀、寫控制信號線,故可以與MCS-51擴展總線直接相連。但是DAC0832的輸出是

18、電流,使用運算放大器可以將DAC0832的電流輸出線性的轉(zhuǎn)換成電壓輸出。</p><p>  (3)存儲器的擴展電路設(shè)計:MCS-51系列單片機內(nèi)具有128B或256B的數(shù)據(jù)存儲器RAM,但在大多數(shù)的實時控制系統(tǒng)中,肯定會要求采集大量的數(shù)據(jù)信息,而這些信息又比較珍貴,為此需要將這些大量寶貴的數(shù)據(jù)保存下來,唯一可行的辦法就是擴展控制系統(tǒng)的存儲容量,因此外接一塊6264芯片。</p><p>

19、 ?。?)速度顯示電路設(shè)計:從畢業(yè)設(shè)計任務(wù)書中給的原始數(shù)據(jù)知道,直流電動機的額定轉(zhuǎn)速為1500轉(zhuǎn)/分。LED顯示電路設(shè)計的目的就是為了顯示給定轉(zhuǎn)速和實際速度值,而轉(zhuǎn)速值又只能是整數(shù),也就是說LED顯示的是一個4位的整數(shù)值。因此選用8個LED顯示器,可分別顯示出給定速度值和實際速度值。</p><p>  第二章 單片機控制系統(tǒng)的硬件設(shè)計</p><p>  單片機控制直流調(diào)速系統(tǒng)接口電

20、路集中了MCS-51系列單片機的功能芯片,包括數(shù)據(jù)存儲器擴展芯片6264,I/O口擴展芯片8255,AD轉(zhuǎn)換芯片ADC0809及DA轉(zhuǎn)換芯片DAC0832,另外還有3-8譯碼器74LS138,地址鎖存器74LS373等。下面將分別介紹各個芯片的功能和設(shè)計電路圖。</p><p>  2.1單片機系統(tǒng)的地址分配</p><p>  單片機與74LS138譯碼器的設(shè)計如圖所示:</p&g

21、t;<p>  圖2-1 8051與74LS138的連接圖</p><p>  單片機控制直流調(diào)速系統(tǒng)的接口電路屬于RAM和I/O容量較大的應(yīng)用系統(tǒng),單片機共有四個外圍及接口芯片,需要四個片選信號,我們采用全地址譯碼方法。這種譯碼方法將低位地址作為片內(nèi)地址,而用譯碼器74LS138對高位地址線進行譯碼,譯碼器輸出的地址選擇線用作片選線。</p><p>  本系統(tǒng)采用的3-

22、8譯碼器74LS138,輸入端占用3根最高位地址線,取A (P2.5), A (P2.6), A (P2.7)作為74LS138譯碼器的輸入信號依次接至74LS138的A口、B口、C口,剩余的13根低位可作為片內(nèi)地址線。因此,譯碼器的8根輸出線分別對應(yīng)8個8K字節(jié)地址空間。74LS138的控制端,接地,G1接+5V,否則譯碼器的8個輸出端全為高阻狀態(tài)。邏輯功能表如下:</p><p>  表2-1 74LS13

23、8邏輯功能表</p><p>  根據(jù)上表中地址線的連接方法可知各個芯片全部地址譯碼如下表所示:</p><p>  表2-2 地址譯碼</p><p>  2.2數(shù)據(jù)存儲器6264的擴展</p><p>  數(shù)據(jù)存儲器即隨機存取存儲器,簡稱RAM,用于存放可隨時修改的數(shù)據(jù)信息,對RAM可進行讀、寫操作。數(shù)據(jù)存儲器用于存儲現(xiàn)場采集的原始數(shù)據(jù)

24、、運算結(jié)果等,所以外部數(shù)據(jù)存儲器應(yīng)能夠隨機讀/寫,通常采用半導(dǎo)體隨機存儲器RAM電路。RAM為易失性存儲器,斷電后所存儲的信息會立即丟失。因為設(shè)計的系統(tǒng)中需要采集大量的數(shù)據(jù)并要保存下來,因此使用一片6264擴展單片機的數(shù)據(jù)存儲器,6264與單片機的電路設(shè)計如下圖所示:</p><p>  圖2-2 8051與數(shù)據(jù)存儲器6264的接口電路圖</p><p>  因6264是8K字節(jié)的RA

25、M,故需要13根低位地址線(A0~A12)進行片內(nèi)尋址,6264有兩個片選信號(CS2、),只有當(dāng)CS2=1,=0時,芯片才被選中工作。否則就不工作,在實際應(yīng)用中,往往只用其中一個,而另一個接成常有效。</p><p>  本系統(tǒng)將74LS138的片選信號CS0接至6264的,6264的CS2接+5V電源。6264數(shù)據(jù)線D0~D7依次接到8051單片機的P0口,地址線A0~A7依次接到74LS373的輸出端,高五

26、位地址線(A8~A12)依次接到8051單片機的(P2.0~P2.4口)。、的信號分別接到8051單片機的和端口。6264在此系統(tǒng)中的工作原理,當(dāng)6264的CS2=1,=0,=0,=1時從6264讀出數(shù)據(jù)到D7~D0;當(dāng)6264的CS2=1,=0,=1,=0時把D7~D0數(shù)據(jù)寫入6264。具體工作方式見下表:</p><p>  表 2-3 6264的工作方式選擇表</p><p>  

27、由于8051單片機的P0口是分時復(fù)用的地址/數(shù)據(jù)總線,因此在進行數(shù)據(jù)存儲器擴展時,必須利用地址鎖存器將地址信號從地址/數(shù)據(jù)總線中分離開來。這里使用了帶三態(tài)緩沖輸出的8D鎖存器74LS373,當(dāng)74LS373用作地址鎖存器時,三態(tài)門的使能信號應(yīng)該為低電平。當(dāng)C輸入端為高電平時,鎖存器輸出(1Q~8Q)狀態(tài)和輸入端(1D~8D)狀態(tài)相同;當(dāng)C端從高電平返回到低電平(下降沿)時,輸入端(1D~8D)的數(shù)據(jù)鎖入(1Q~8Q)的8位鎖存器中。&l

28、t;/p><p>  MCS-51單片機外部數(shù)據(jù)操作簡單,只有累加器A和外部數(shù)據(jù)存儲器的數(shù)據(jù)傳送操,它可以通過下面兩類指令實現(xiàn):</p><p>  MOVX @Ri, A ;累加器A中數(shù)據(jù)送片外數(shù)據(jù)存儲器</p><p>  MOVX A, @Ri ;片外數(shù)據(jù)存儲器中數(shù)據(jù)送累加器A中</p><p>  這類指令中,片外數(shù)據(jù)

29、存儲器低8 位地址由Ri(i=0,1)間接尋址,而高8位地址則隱含為程序指令地址的高8位。</p><p>  MOVX DPTR ,A ;累加器A中數(shù)據(jù)送片外數(shù)據(jù)存儲器</p><p>  MOVX A, @DPTR ;片外數(shù)據(jù)存儲器中數(shù)據(jù)送累加器A</p><p>  這類指令中,片外數(shù)據(jù)存儲器由16位數(shù)據(jù)指針DPTR間接尋址。</p>

30、<p>  2.3 ADC0809與8051單片機的接口電路設(shè)計</p><p>  2.3.1給定速度的設(shè)計</p><p>  給定轉(zhuǎn)速電路設(shè)計如下圖所示:</p><p>  圖2-3 給定模擬電壓與ADC0809的連接</p><p>  已知直流電動機的額定轉(zhuǎn)速為1500轉(zhuǎn)/分,為簡化設(shè)計電路,給定轉(zhuǎn)速由一個旋轉(zhuǎn)電位

31、器給定一個0~5V可變模擬電壓,通過ADC0809模數(shù)轉(zhuǎn)換器將這一給定0~5V電壓轉(zhuǎn)換成對應(yīng)的數(shù)字信號,將這個數(shù)字信號作為控制直流電動機轉(zhuǎn)速的給定速度值。旋轉(zhuǎn)電位器R4的一端接+5V直流電壓,另一端接地,可變輸出端接ADC0809模擬量輸入通道IN0。當(dāng)電位器輸出電壓為0V時即給定轉(zhuǎn)速為0轉(zhuǎn)/分,當(dāng)電位器輸出電壓為+5V時即給定轉(zhuǎn)速為1500轉(zhuǎn)/分。這樣當(dāng)給定電壓在0~5V之間變化時,其轉(zhuǎn)換后的數(shù)字信號相當(dāng)于0~1500轉(zhuǎn)/分。<

32、/p><p>  2.3.2 反饋速度采樣電路設(shè)計</p><p>  反饋速度采樣電路設(shè)計如下圖所示:</p><p>  圖2-4 ADC0809和8051的連接電路圖</p><p>  在設(shè)計中首先要將給定直流電動機轉(zhuǎn)速的模擬電壓轉(zhuǎn)換成數(shù)字信號,同時還要對測速發(fā)電機進行采樣并轉(zhuǎn)化成數(shù)字信號,因此需要一片A/D芯片。A/D的種類很多,根據(jù)轉(zhuǎn)

33、換原理可以分為雙積分式(優(yōu)點是轉(zhuǎn)換精度高,抗干擾性好,價格便宜,但轉(zhuǎn)換速度慢)、逐次逼近式(轉(zhuǎn)換精度、速度、價格適中)、并行式(速度快,但價格昂貴)和計數(shù)器式。其中逐次逼近式A/D轉(zhuǎn)換器應(yīng)用比較普遍,也能滿足設(shè)計要求,因此選用了一片ADC0809芯片。ADC0809是8路8位逐次逼近式A/D,由多路模擬開關(guān)、通道地址所存、譯碼器、8位A/D轉(zhuǎn)換器及三態(tài)輸出數(shù)據(jù)鎖存器組成。</p><p>  本次設(shè)計中,由于AD

34、C0809片內(nèi)無時鐘,因此利用8051單片機 的ALE提供,而8051單片機的晶振頻率為12MHz,則其ALE腳輸出的頻率為2MHz,再將8051單片機的 ALE經(jīng)過觸發(fā)器74LS74 四分頻后為500KHz。ADC0809的CLK典型值為640 KHz,超過640 KHz時會使轉(zhuǎn)換精度降低,因此經(jīng)過四分頻后8051單片機的ALE連接到ADC0809的CLK能夠滿足系統(tǒng)的設(shè)計要求。ADC0809具有輸出三態(tài)鎖存器,其8位數(shù)據(jù)輸出線D0~

35、D7可直接與8051單片機的P0口相連。ADC0809的ADDA、ADDB、ADDC分別與8051單片機的地址總線D0、D1、D2經(jīng)過74LS373相連后A0、A1、A2連接,以選中IN0~IN7的某一路,但是實際上只需要兩個轉(zhuǎn)換通道就行了(IN0給定轉(zhuǎn)速電壓通道;IN1測速發(fā)電機反饋電壓通道)。而將74LS138的CS3()作為片選信號,由8051單片機的寫信號控制ADC0809的地址鎖存和轉(zhuǎn)換啟動。由于ADC0809的ALE和STA

36、RT連在一起,故在鎖存通道的同時,啟動并進行轉(zhuǎn)換,輸出允許信號ENABLE由8051單片機的讀信號R</p><p>  A/D轉(zhuǎn)換是否完成的判斷。因為只有確認數(shù)據(jù)轉(zhuǎn)換完成后,才能把數(shù)據(jù)傳送給8051單片機做處理。通常有三種方式:定時傳送方式、查詢方式、中斷方式。從ADC0809和8051單片機的連接電路圖中可知 ADC0809 的EOC經(jīng)過74F04反向器后再和8051單片機的INT0相連接,所以采用的是中斷方

37、式進行數(shù)據(jù)傳送。由于采用的是中值濾波算法,所以需要采集三次。當(dāng)檢測到EOC為高電平時,即A/D轉(zhuǎn)換完成,單片機將數(shù)據(jù)讀入并做相應(yīng)的處理。ADC0809和8051單片機的連接電路圖中主要涉及到三個問題:第一個是ADC0809的8路模擬信號的通道選擇(上文中已經(jīng)做出說明),第二個就是A/D轉(zhuǎn)換完后轉(zhuǎn)換數(shù)據(jù)的傳送,第三個就是ADC0809的8路模擬信號的通道所能承受的電壓為0~5V,而測速發(fā)電機輸出電壓為0~12V,因此需要加一個轉(zhuǎn)換電路將測

38、速發(fā)電機的輸出電壓轉(zhuǎn)換成能夠滿足ADC0809的模擬量輸入通道的要求,通常將測速發(fā)電機的輸出電壓接到一個電位器上,調(diào)整電位器使輸出電壓變成0~5V的直流電壓。A/D轉(zhuǎn)換后得到的是數(shù)字量,傳送給單片機進行處理。</p><p>  2.4 DAC0832與8051單片機的接口電路設(shè)計</p><p>  DAC0832與單片機連接電路如圖所示:</p><p>  圖

39、2-5 DAC0832和8051接口電路圖</p><p>  數(shù)/模轉(zhuǎn)換器是一種將數(shù)字信號轉(zhuǎn)換成模擬信號的器件。 設(shè)計中需要將給定轉(zhuǎn)速與實際速度的差值經(jīng)過數(shù)字PID算法后再轉(zhuǎn)換成(0~5V)電壓輸出,故選擇一片DAC0832實現(xiàn)設(shè)計要求。DAC0832是8位D/A,片內(nèi)帶數(shù)據(jù)鎖存器,電流輸出,輸出電流穩(wěn)定時間為1µs,+5~+15V單電源供電,功耗為20mW。</p><p>

40、  從DAC0832和8051單片機的接口電路圖可以看到:DAC0832的DI0~DI7這八個引腳和8051單片機的P0口依次相連,用于輸入CPU送來的待轉(zhuǎn)換的數(shù)字量,DI7為最高位。DAC0832的CS和74LS138的CS2相連,當(dāng)DAC0832的CS為低電平時,此芯片被選中工作;當(dāng)CS為高電平時,此芯片不被選中工作。DAC0832的Iout1和Iout2是兩條模擬電流輸出線。Iout1+Iout2為一常數(shù);若輸入數(shù)字量為全“1”,

41、則Iout1為最大,Iout2為最??;若輸入數(shù)字量為全“0”,則Iout1最小,Iout2最大。為了保證額定負載下輸出電流的線性度,Iout1和Iout2引腳線上的電位必須盡量接近低電平。單片機控制直流調(diào)速系統(tǒng)中要求用0~5V 模擬電壓來控制PWM,因此DAC0832的電流輸出必須轉(zhuǎn)換成電壓輸出,方法就是在DAC0832的Iout1和Iout2的輸出端接運算放大器,本設(shè)計中選用的是LM339作為運算放大器。DAC0832的 WR1、WR

42、2為兩條寫命令輸入線。WR1用于控制數(shù)字量輸入到輸入寄存器:若ILE為“1”,CS為“0”和WR1為“0”同時滿足,則與門M</p><p>  根據(jù)對DAC0832的數(shù)據(jù)鎖存器和DAC寄存器的不同控制方法,DA0832有三種工作方式。單緩沖方式、雙緩沖方式、直通方式。本次設(shè)計采用的是單緩沖方式。此方式適用于只有一路模擬量輸出或幾路模擬量非同步輸出的場合,方法是控制數(shù)據(jù)鎖存器和DAC寄存器同時接收數(shù)據(jù),或者只用數(shù)

43、據(jù)鎖存器而把DAC寄存器接成直通方式。</p><p>  DAC0832的輸出是電流,有兩個電流輸出端(Iout1和Iout2),它們的和為常數(shù)。使用運算放大器可以將DAC0832的Iout1和Iout2電流輸出線性的轉(zhuǎn)換成電壓輸出。根據(jù)運算放大器和DAC0832的連接方法,運算放大器的輸出可以分為單極性和雙極性兩種,這次設(shè)計使用的是單極性的連接方法。輸出電壓Vo與對應(yīng)輸入數(shù)字量的關(guān)系為:</p>

44、<p>  式子中: ; /256為一常數(shù)。</p><p>  顯然,Vo和B成正比關(guān)系。輸入數(shù)字量B為00H時,Vo也為0,輸入數(shù)字量為FFH時,由于=-5V,Vo為正的最大值5V,輸出電壓為正的單極性。</p><p>  2.5 LED數(shù)碼顯示電路設(shè)計</p><p>  數(shù)

45、碼顯示電路設(shè)計如圖所示:</p><p>  圖2-6 8255與8051的連接電路圖</p><p>  本次設(shè)計中要將給定的轉(zhuǎn)速電壓轉(zhuǎn)換成數(shù)字量的轉(zhuǎn)速,并用LED(Light Emitting Diode)數(shù)碼管顯示這一給定轉(zhuǎn)速,同時還要顯示直流電機實際轉(zhuǎn)速。已知給定電機的轉(zhuǎn)速為0~1500轉(zhuǎn)/分,因此需要兩個四位的LED數(shù)碼管才能滿足設(shè)計要求。</p><p&g

46、t;  LED顯示器是由發(fā)光二極管夠成的字段組成的顯示器,有8段和16段管兩大類,本次設(shè)計采用的是8段數(shù)碼管。顯示器有靜態(tài)顯示和動態(tài)顯示兩種方式。動態(tài)顯示控制的基本原理是,單片機依次發(fā)出段選控制字和對應(yīng)哪一位LED顯示器的位選控制信號,顯示器逐個循環(huán)點亮。適當(dāng)選擇掃描速度,利用人眼睛的“留光”效應(yīng),使得看上去好像幾位顯示器同時在顯示一樣,而在動態(tài)掃描顯示控制中,同一時刻實際上只要一位LED顯示器被點亮。單片機控制系統(tǒng)的接口電路中的LED

47、數(shù)碼顯示器使用的是共陰極接法。共陰極接法的原理:將所有發(fā)光二極管的陰極互相連接后接地,每個發(fā)光二極管的陽極通過電阻與輸入端相連,當(dāng)陽極端輸入高電平時,段發(fā)光二極管就導(dǎo)通點亮,當(dāng)陽極端輸入低電平時,段發(fā)光二極管就不點亮。設(shè)計中采用動態(tài)顯示,單片機控制系統(tǒng)采用動態(tài)掃描顯示。動態(tài)顯示采用軟件法把將要顯示的十六進制數(shù)(或BCD碼)轉(zhuǎn)化為相應(yīng)字型碼,所以需要在RAM區(qū)中建立一個顯示緩沖區(qū)。顯示緩沖區(qū)內(nèi)包含的存儲單元個數(shù)需和系統(tǒng)中的LED顯示器的個

48、數(shù)相等。而顯示緩沖區(qū)的起始地址很重要,它決定了顯示緩沖區(qū)在RAM中的位置。顯示緩沖區(qū)的每個存儲單元用于存放相應(yīng)LED顯示管將要顯</p><p>  為了顯示字符,要為LED顯示器提供顯示段選碼(或稱字型碼)。采用共陰極接法的8段LED數(shù)碼顯示器字型碼表如下:</p><p>  表2-3 8段LED數(shù)碼顯示器字型碼表</p><p>  2.6 單片機控制直流調(diào)

49、速系統(tǒng)中的其它設(shè)計</p><p>  單片機控制直流調(diào)速系統(tǒng)中除上述電路設(shè)計之外,還有8051單片機的復(fù)位電路設(shè)計,本次設(shè)計中采用手動復(fù)位,當(dāng)用手按一下按鈕S1時就可以對8051單片機進行復(fù)位。除此之外原理圖中還具備測速發(fā)電機接口卡J3,用來將測速發(fā)電機的電壓信號接入系統(tǒng)?;鶞?zhǔn)電源輸入和模擬電壓輸出接口卡J2,為單片機系統(tǒng)引入+5V的基準(zhǔn)電壓,還有將0~5V的模擬電壓輸出的接口卡J1。</p>&

50、lt;p>  前面已經(jīng)分別介紹了系統(tǒng)中各個部分的設(shè)計,現(xiàn)在將系統(tǒng)整體的原理圖設(shè)計如下:</p><p>  圖2-7單片機控制系統(tǒng)原理圖</p><p>  第三章 單片機控制系統(tǒng)的軟件設(shè)計</p><p>  為實現(xiàn)單片機對直流電機的控制,滿足設(shè)計的要求,系統(tǒng)的工作過程是靠軟件來實現(xiàn)的。因此軟件的設(shè)計和編寫很重要,程序的編寫采用匯編語言。 </p&g

51、t;<p><b>  3.1主程序的設(shè)計</b></p><p>  主程序的內(nèi)容一般包括:主程序的起始地址、中斷服務(wù)程序的起始地址、設(shè)置堆棧指針、相關(guān)存儲單元和元器件的初始化以及一些子程序的調(diào)用等。</p><p> ?。?)主程序的起始地址:</p><p>  MCS-51系列單片機經(jīng)復(fù)位后,(PC)=0000H,而000

52、3H~0023H為各中斷源的入口地址,所以在編程的時候應(yīng)在0000H處寫一跳轉(zhuǎn)指令(一般寫長跳轉(zhuǎn)指令),CPU在執(zhí)行指令時,直接從0000H跳過各中斷服務(wù)程序的入口地址,直接到0300H執(zhí)行主程序(本程序設(shè)置的MAIN從0300H開始)。在設(shè)計的系統(tǒng)中,使用了兩個中斷,即T0,INT0。其中在T0中斷程序中必須要對電機的轉(zhuǎn)速進行定時采樣,所以T0中斷必須允許嵌套外部中斷0的中斷申請,所以在主程序初始化中置外部中斷0為高優(yōu)先級中斷,在T0

53、中斷服務(wù)程序中必須要開外部中斷0中斷。</p><p>  T0定時器的工作參數(shù)確定后,在主程序初始化部分,對T0定時器進行設(shè)定,并且啟動T0定時器(SETB TR0),開始工作,定時器T0和CPU并行工作。當(dāng)定時1ms到,T0定時器向CPU提出中斷請求,程序中設(shè)置軟計數(shù)器,當(dāng)一定的時間到,執(zhí)行相應(yīng)的中斷程序。</p><p>  T0定時器中斷服務(wù)程序的功能:</p>&l

54、t;p>  15ms執(zhí)行一次A/D轉(zhuǎn)換、數(shù)據(jù)采集、PID算法、D/A轉(zhuǎn)換,結(jié)束后進行顯示,1ms顯示一位。</p><p>  INT0 中斷主要的功能是完成數(shù)據(jù)的采集,采集完一次數(shù)據(jù)后向CPU發(fā)送中斷請求。</p><p> ?。?) 中斷服務(wù)程序的起始地址:</p><p>  當(dāng)CPU接收到中斷請求信號并給予響應(yīng)后,CPU把當(dāng)前接收到的內(nèi)容進行堆棧保護,

55、然后轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序入口地址處開始執(zhí)行。INT0的中斷入口地址為0003H。</p><p> ?。?) 設(shè)置堆棧指針:</p><p>  在CPU經(jīng)復(fù)位后,SP中的內(nèi)容為07H,和工作寄存器區(qū)中的內(nèi)容重復(fù)了,所以將SP中的內(nèi)容改為70H。</p><p>  (4) 主程序的初始化:</p><p>  所謂的初始化,就是對將要

56、用到的MCS-51系列單片機的內(nèi)部單元和擴展的芯片進行初始化工作狀態(tài)的設(shè)定。MCS-51系列單片機復(fù)位后,特殊功能寄存器IE、IP的內(nèi)容為00H,所以應(yīng)對IE、IP進行初始化編程,以開CPU總中斷,允許某些中斷源中斷,并設(shè)置中斷優(yōu)先級等。</p><p>  主程序流程圖和T0中斷流程圖設(shè)計如下:</p><p>  圖3-1 主程序流程圖

57、 圖3-2 T0中斷服務(wù)流程圖</p><p><b>  程序如下:</b></p><p>  ORG 0000H</p><p>  LJMP MAIN ;轉(zhuǎn)主程序</p><p>  ORG 0003H ;外部中斷INT0的入口地址</p>&

58、lt;p>  LJMP INTA ;轉(zhuǎn)外部中斷INT0服務(wù)程序</p><p>  ORG 000BH ;T0中斷的入口地址</p><p>  LJMP T0-SEV ;轉(zhuǎn)T0中斷服務(wù)程序</p><p>  ORG 0300H</p>&l

59、t;p>  DATABUF EQU 50H ;數(shù)據(jù)緩沖區(qū)的首地址</p><p>  DISBUF1 EQU 60H ;給定速度顯示緩沖區(qū)的首地址</p><p>  DISBUF2 EQU 64H ;實際速度顯示緩沖區(qū)的首地址</p><p>  SAMP-D1 E

60、QU 0000H ;保存給定速度采樣數(shù)據(jù)的首地址</p><p>  SAMP-D2 EQU 0500H ;保存實際速度采樣數(shù)據(jù)的首地址</p><p>  MAIN: MOV SP,#70H ;設(shè)置堆棧指針</p><p>  MOV R0,#7FH ;相關(guān)寄存器清零</p&g

61、t;<p>  MOV @R0, #0</p><p>  MOV TMOD,#01H ;定時器T0工作方式1</p><p>  MOV TL0,#18H ;定時器賦初值,定時1ms</p><p>  MOV TH0,#0FCH</p><p>  MOV IP,#01H

62、;設(shè)置外部中斷INT0優(yōu)先</p><p>  SETB TR0 ;啟動T0工作</p><p>  SETB EX0 ;允許INT0中斷 </p><p>  SETB EA ;開CPU中斷 </p><p>  SJMP $

63、 ;等待中斷</p><p><b>  T0中斷程序:</b></p><p>  T0-SEV: ; T0中斷服務(wù)子程序</p><p>  MOV TL0,#18H ;定時器重新賦值</p><p>  MOV TH0,#0FCH</

64、p><p>  SETB IT0 ;中斷觸發(fā)方式為邊沿觸發(fā)方式</p><p>  SETB EA ; CPU開中斷</p><p>  SETB EX0 ;允許外部中斷0中斷</p><p>  INTA: PUSH ACC ;保護現(xiàn)場&

65、lt;/p><p>  PUSH DPH </p><p>  PUSH DPL</p><p>  ACALL AD1 ;調(diào)用AD1給定速度采樣子程序</p><p>  ACALL FILTER ;調(diào)用中值濾波子程序</p><p>  

66、ACALL FA1</p><p>  ACALL AD2 ;調(diào)用AD2實際速度采樣子程序 </p><p>  ACALL FILTER ;調(diào)用中值濾波子程序</p><p>  ACALL FA2</p><p>  POP DPH ;恢復(fù)現(xiàn)場</p

67、><p>  POP DPL</p><p>  POP ACC</p><p>  RETI </p><p>  ACALL PID ;調(diào)用數(shù)值PID控制算法子程序</p><p>  ACALL DAC ;調(diào)用DAC轉(zhuǎn)換程序</p>

68、;<p>  LCALL TRAST1</p><p>  LCALL DBCD1</p><p>  LCALL DIS1 ;調(diào)用速度顯示子程序</p><p>  MOV A,2AH ;實際速度值送A</p><p>  LCALL TRAST1

69、 ;調(diào)用代碼轉(zhuǎn)換子程序</p><p>  LCALL DBCD2 ;將實際轉(zhuǎn)速BCD碼轉(zhuǎn)換成單獨的BCD碼</p><p>  LCALL DIS2 ;調(diào)用實際速度顯示子程序 </p><p>  RETI ;中斷返回</p><p><b>

70、;  3.2采樣子程序</b></p><p>  3.2.1 ADC0809的采樣程序</p><p>  DAC0809 的地址可為7FF8H~7FFFH,具體該為哪一個地址涉及到轉(zhuǎn)換通道的選擇,在第二章中已經(jīng)設(shè)定給定轉(zhuǎn)速電壓模擬量地址為7FF8H(IN0),實際速度電壓通道地址為 7FF9H(IN1)。</p><p><b>  采樣

71、設(shè)計流程圖</b></p><p>  圖3-3 ADC0809采樣子程序流程圖</p><p><b>  程序如下:</b></p><p>  AD1: ;調(diào)用AD1給定速度采樣子程序</p><p>  MOV R0,#2CH

72、 ;采樣值起始地址送R0</p><p>  MOV R2,#03H ;采樣次數(shù)初值送R2</p><p>  MOV DPTR,#6FF8H</p><p>  JMP ADC1</p><p>  AD2: MOV R0,#2CH ;采樣值起始地址送R0</p>&

73、lt;p>  MOV R2,#03H ;采樣次數(shù)初值送R2</p><p>  MOV DPTR,#6FF9H</p><p>  ADC1: MOVX @DPTR,A ;啟動ADC0809工作</p><p>  MOV R3,#20H</p><p>  DLY D

74、JNZ R3,DLY ;延時</p><p>  DENG: JB P3.3,DENG ;等待A/D完成</p><p>  MOVX A,@DPTR ;采樣值送A</p><p>  MOV @R0,A ;存放采樣值</p><p><b>

75、;  INC R0</b></p><p>  DJNZ R2,ADC1 ;若采樣未完,則ADC1</p><p>  RET ;若采樣完,則返回</p><p>  3.2.2中值濾波算法子程序</p><p>  因為要對速度進行三次采樣,取其中間值作為轉(zhuǎn)速的實

76、際值來減小誤差,以達到設(shè)計要求。設(shè)三次采樣值分別放在2CH、2DH、2EH中,程序流程圖如下:</p><p>  圖3-4 中值濾波流程圖</p><p><b>  程序如下:</b></p><p>  FILTER: ;中值濾波算法子程序</p><p>  MO

77、V A,2CH ;(2CH)送A</p><p>  CJNE A,2DH,CMP1 ;(2CH)≠(2DH),則CMP1</p><p>  AJMP CMP2 ;否則轉(zhuǎn)CMP2</p><p>  CMP1: JNC CMP2 ;若(2CH)=(2DH),

78、則CMP2</p><p>  XCH A,2DH</p><p>  XCH A,2CH</p><p>  CMP2: MOV A,2DH ;(2DH)送A</p><p>  CJNE A,2EH,CMP3 ;若(2DH)≠(2EH),則CMP3</p><p

79、>  MOV 2AH,A ;否則(2DH)送2AH</p><p>  RET ;返回</p><p>  CMP3: JC CMP4 ;若(2DH)<(2EH),則CMP4</p><p>  MOV 2AH,A ;否

80、則(2DH)送2AH</p><p>  ERT ;返回</p><p>  CMP4: MOV A,2EH ;(2EH)送A</p><p>  CJNE A,2CH,CMP5 ;若(2EH)≠(2CH),則CMP5</p><p>  MOV 2

81、AH,A ;否則(2EN)送2AH</p><p>  RET ;返回</p><p>  CMP5: JC CMP6 ;若(2EH)<(2CH),則CMP6</p><p>  XCH A,2CH ;否則(2EH)(2CH)<

82、;/p><p>  CMP6: MOV 2AH,A ;A送2AH</p><p><b>  RET</b></p><p>  FA1: MOV DPTR,#SAMP-D1</p><p>  MOVX @DPTR,A ;將采樣值送到外部RAM中的0000

83、H單元</p><p>  MOV 1AH, A</p><p>  INC DPTR</p><p>  FA2: MOV DPTR,#SAMP-D2</p><p>  MOVX @DPTR,A ;將采樣值送到外部RAM中的0000H單元</p><p>  INC

84、DPTR</p><p><b>  RET</b></p><p>  3.3數(shù)字PID控制算法子程序</p><p>  PID控制的理想微分方程為:</p><p>  其中稱為偏差值,可作為速度調(diào)節(jié)器的輸入信號,為給定值,為被測變量值,為比例系數(shù),為積分時間常數(shù),為微分時間常數(shù),為調(diào)節(jié)器的輸出控制電壓信號。<

85、;/p><p>  但計算機只能處理數(shù)字信號,故上述數(shù)學(xué)方程必須加以變換,若設(shè)速度的采樣周期為T,第n次采樣得到的輸入偏差為,調(diào)節(jié)器輸出為,則有: </p><p>  則微分方程可改寫為 </p><p><b>  寫成遞推形式為</b></p><p><b>  PID計算程序:</b>&l

86、t;/p><p>  圖3-5 PID算法流程圖</p><p>  表3-1 內(nèi)部RAM的有關(guān)參數(shù)分配圖</p><p>  3.4 DAC0832的轉(zhuǎn)換</p><p>  要將給定轉(zhuǎn)速Ug和反饋轉(zhuǎn)速Uf作差,將差值△U轉(zhuǎn)換成0~5V模擬電壓,驅(qū)動直流電機。按照圖2-1可知DAC0832的地址為5FFFH,假設(shè)要轉(zhuǎn)換的數(shù)據(jù)在累加器A中,輸出

87、的程序為:</p><p>  MOV DPTR,#5FFFH ;送DAC0832的入口地址</p><p>  MOV A, #data ;數(shù)字量先裝入累加器</p><p>  MOVX @DPTR,A ;啟動D/A轉(zhuǎn)換</p><p>  圖3-6數(shù)模轉(zhuǎn)換流程圖<

88、/p><p>  3.5程序中的代碼的轉(zhuǎn)換</p><p> ?。?)因為單片機一個存儲單元能接收的最大數(shù)據(jù)為FFH,而電動機的最大轉(zhuǎn)速為1500r/m,中間的倍數(shù)關(guān)系是5.9。因此在顯示之前,要先將從通信中接收到的數(shù)據(jù)乘59除10處理,所得的結(jié)果才能送到顯示緩沖區(qū)內(nèi)。</p><p>  TRAST1: ;轉(zhuǎn)換接收到的

89、數(shù)據(jù)代碼</p><p>  MOV A,1AH ;接收到的數(shù)據(jù)送A</p><p>  JMP TRAST</p><p>  TRAST: MOV B,#3BH ;乘數(shù)59送B</p><p><b>  MUL AB</b></p>&l

90、t;p>  MOV R5,A ;積的低位送R5</p><p>  MOV R4,B ;積的高位送R4</p><p>  ACALL CHU ;調(diào)用雙字節(jié)除法程序</p><p>  MOV 51H,R4 ;將壓縮BCD碼的高位送51H<

91、/p><p>  MOV 50H,R5 ;將壓縮BCD碼的低位送50H</p><p>  CHU: ;雙字節(jié)除法(R4R5被除數(shù),R6R7除數(shù),商在R4R5,余數(shù)在R2R3)</p><p>  MOV R6,#00H</p><p>  MOV R7,

92、#0AH ;除數(shù)為10</p><p>  SRT: ACALL L1</p><p>  L2: SJMP L5</p><p><b>  NOP</b></p><p>  L1: CLR A ;寄存器A清零</p>

93、<p>  MOV R2,A ;R2清零</p><p>  MOV R3,A ;R3清零</p><p>  MOV R1,#10H ;循環(huán)16次</p><p>  L5: CLR C ;進位標(biāo)志位清零</p

94、><p>  MOV A,R5 ;被乘數(shù)低8位送A</p><p>  RLC A ;帶進位左循環(huán)</p><p>  MOV R5,A ;A中內(nèi)容送到被乘數(shù)低8位</p><p>  MOV A,R4 ;被乘數(shù)

95、高8位送A</p><p>  RLC A ;帶進位左循環(huán)</p><p>  MOV R4,A ;A中內(nèi)容送到被乘數(shù)高8位</p><p>  MOV A,R3</p><p><b>  RLC A</b></p><

96、p>  MOV R3,A</p><p>  MOV A,R2</p><p><b>  RLC A</b></p><p>  MOV R2,A ;被乘數(shù)左移一位送R2R3</p><p><b>  CLR C</b></p>

97、<p>  SUBB A,R6 ;比較R2和R6的大小</p><p>  JC L3 ;R2小,則轉(zhuǎn)L3</p><p>  PUSH 0E0H ;壓入堆棧</p><p>  MOV A,R3</p><p>  

98、SUBB A,R7 ;比較R3和R7的大小</p><p>  JNC L4 ;R3大,則轉(zhuǎn)L4</p><p>  MOV 0F0H,A</p><p>  POP 0E0H ;出堆棧</p><p>  SUBB A,#00H

99、</p><p><b>  JC L3</b></p><p>  MOV R2,A</p><p>  MOV R3,0F0H</p><p><b>  INC R5</b></p><p><b>  SJMP L3</b>&

100、lt;/p><p>  L4: MOV R3,A</p><p>  POP 0E0H</p><p>  MOV R2,A</p><p><b>  INC R5</b></p><p>  L3: DJNZ R1,L5 ;循環(huán)16次未

101、完,則轉(zhuǎn)L5</p><p>  RET ;返回。將二進制數(shù)轉(zhuǎn)換成對應(yīng)的轉(zhuǎn)速量,也就是轉(zhuǎn)換成壓縮BCD碼</p><p> ?。?)在顯示程序段要調(diào)用二進制轉(zhuǎn)換成BCD碼子程序。將壓縮的BCD碼轉(zhuǎn)換成單獨的BCD碼后才能通過數(shù)碼管顯示。</p><p>  DBCD1:

102、 ;設(shè)定轉(zhuǎn)速值壓縮的BCD碼轉(zhuǎn)換成單獨的BCD碼</p><p>  MOV A,50H</p><p>  ANL A,#0FH</p><p>  MOV 60H,A ;個位數(shù)送60H</p><p>  MOV A,50H</p><p>  ANL A,#

103、0F0H</p><p><b>  SWAP A</b></p><p>  MOV 61H,A ;十位數(shù)送61H</p><p>  MOV A,51H</p><p>  ANL A,#0FH</p><p>  MOV 62H,A

104、 ;百位數(shù)送62H</p><p>  MOV A,51H</p><p>  ANL A,#0F0H</p><p><b>  SWAP A</b></p><p>  MOV 63H,A ;千位數(shù)送63H</p><p><b>  RET&l

105、t;/b></p><p>  DBCD2; ;實際轉(zhuǎn)速值壓縮BCD碼轉(zhuǎn)換成單獨的BCD碼</p><p>  MOV A,50H</p><p>  ANL A,#0FH</p><p>  MOV 64H,A ;個位數(shù)送64H</p>

106、<p>  MOV A,50H</p><p>  ANL A,#0F0H</p><p><b>  SWAP A</b></p><p>  MOV 65H,A ;十位數(shù)送65H</p><p>  MOV A,51H</p><p>  

107、ANL A,#0FH</p><p>  MOV 66H,A ;百位數(shù)送66H</p><p>  MOV A,51H</p><p>  ANL A,#0F0H</p><p><b>  SWAP A</b></p><p>  MOV 67H,A

108、 ;千位數(shù)送67H</p><p><b>  RET</b></p><p>  3.6給定速度顯示與實際速度顯示子程序</p><p>  3.6.1 給定速度顯示程序設(shè)計</p><p>  給定速度顯示流程圖設(shè)計如下:</p><p>  圖3-7 顯示流程圖<

109、;/p><p><b>  程序如下:</b></p><p>  DIS1: MOV A,#80H ;方式控制字送A</p><p>  MOV DPTR,#2FFFH ;控制命令口地址送2FFFH</p><p>  MOV @DPTR,A

110、 ;方式控制字送8255命令口</p><p>  DISPLY1:MOV R0,#DISBUF1 ;顯示緩沖區(qū)首地址送R0</p><p>  MOV R3,#0EFH ;字位碼始值送R3</p><p>  MOV A,R3</p><p>  LD1: MOV D

111、PTR,#2FFDH ;B口地址送DPTR</p><p>  MOV @DPTR,A ;字位碼送B口</p><p>  MOV DPTR,#2FFCH ;A口地址送DPTR</p><p>  MOV A,@R0 ;待顯示的地址偏移量送A</p>

112、<p>  MOV DPTR,#LEDCODE</p><p>  MOVC A,@A+DPTR ;查字型碼表</p><p>  ACALL DELAY ;延時1ms</p><p>  INC R0 ;修正顯示緩沖區(qū)指針</p><

113、;p>  MOV A,R3 ;字位碼送A</p><p>  JNB ACC.7,LD0 ;若ACC.7=0顯示完一遍,則轉(zhuǎn)LD0</p><p>  RL A ;否則字位碼左移一位</p><p>  MOV R3,A

114、 ;送回R3</p><p>  AJMP LD1 ;顯示下一個數(shù)碼(L6)</p><p>  LD0: RET ;返回</p><p>  DELAY: MOV R7,#02H ;延時1ms程序</p><p> 

115、 DLY1: MOV R6,#0FFH</p><p>  DLY2: DJNZ R6,DLY2</p><p>  DJNZ R7,DLY1</p><p><b>  RET</b></p><p>  LEDCODE:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6F

溫馨提示

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

最新文檔

評論

0/150

提交評論