九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

《微機原理課程設計》基于80x86的步進電機控制系統(tǒng)

上傳人:仙*** 文檔編號:30335687 上傳時間:2021-10-10 格式:DOC 頁數(shù):25 大?。?62KB
收藏 版權(quán)申訴 舉報 下載
《微機原理課程設計》基于80x86的步進電機控制系統(tǒng)_第1頁
第1頁 / 共25頁
《微機原理課程設計》基于80x86的步進電機控制系統(tǒng)_第2頁
第2頁 / 共25頁
《微機原理課程設計》基于80x86的步進電機控制系統(tǒng)_第3頁
第3頁 / 共25頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《微機原理課程設計》基于80x86的步進電機控制系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《《微機原理課程設計》基于80x86的步進電機控制系統(tǒng)(25頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、江蘇科技大學(張家港) 微機原理與接口技術(shù)課程設計 微機原理與接口技術(shù)課程設計姓名: 厲小洋 學號: 0945533117 班級: 09電氣1班 專業(yè): 電氣工程及其自動化學院: 電氣與信息工程學院江蘇科技大學張家港校區(qū)2012年9月24 目錄一 理論部分21課題要求與內(nèi)容22 系統(tǒng)方案設計33 系統(tǒng)硬件的設計44 系統(tǒng)軟件設計5二 實踐部分61 系統(tǒng)硬件原理簡介62 系統(tǒng)硬件調(diào)試中出現(xiàn)的問題及解決措施103 系統(tǒng)軟件113.1 軟件設計113.2軟件調(diào)試中出現(xiàn)的問題及解決措施14三 附錄15題目:基于80x86的步進電機控制系統(tǒng)第一章、 理論部分一 微機原理課程設計課題要求與內(nèi)容內(nèi)容要求:(

2、1) 使用8255A控制步進電機的運轉(zhuǎn)。(2) 使用數(shù)碼管LED顯示速度的大小。(3) 使用8253定時器調(diào)節(jié)速度的大小。(4) 使用4個獨立按鍵控制步進電機,即“正傳”、“反轉(zhuǎn)”、“停止”、“調(diào)速”。(5) 使用8259A產(chǎn)生中斷控制按鍵;(6) 使用DAC0832顯示速度的波形。拓展功能:(1) 按鍵部分可以增加“加速”、“減速”等功能;(2) 考慮可以加蜂鳴器來區(qū)分“正轉(zhuǎn)”和“反轉(zhuǎn)”;(3) 其他可以有自己特色的功能均可。二 系統(tǒng)方案設計80X86825582598254步進電機LED顯示按鍵控制在課程要求的前提下,步進電機為四相八拍步進電機,這樣可以用8255的一個端口控制電機的驅(qū)動,

3、LED顯示為十六位 圖1系統(tǒng)流程圖在8255中可用兩個端口控制,按鍵單元可與電機共用一個八位端口,由8254產(chǎn)生可編程脈沖,進入8259產(chǎn)生中斷,反饋給80x86,控制8255。再執(zhí)行到步進電機及其LED顯示上,一個脈沖步進電機一拍。由按鍵讀入系統(tǒng)狀態(tài)。具體的系統(tǒng)設計如圖1為系統(tǒng)概況流程圖三 系統(tǒng)硬件設計在硬件設計中,主要是通過步進電機模塊、8255模塊、LED模塊、8254模塊。在8255芯片上用A,B口控制數(shù)碼管的顯示(A為位選B為段選),C口的高四位為四個按鍵單元,低四位作為輸出,控制步進電機。片選CS接IOY2。在8259和8254上,采用一個脈沖一拍的方式。給8254一個1.8432

4、MHZ在CLK2,OUT2輸出給CLK0,由OUT0給8259的INT,輸出一個脈沖,經(jīng)由IR0給80x86的中斷口INTR。如圖2為硬件連接圖,如下 硬件連接:8254,8255,8259的CS分別接在IOY2,IOY0,IOY1 8255芯片連接:8255的A,B控制LED,A口接位選,B口接段選,將C口分為兩段,高四位讀取按鍵,低四位控制步進電機,按鍵分為四個如下表1所示 表1 K1K2K3 K4判斷開關(guān)0開1關(guān)判斷正反轉(zhuǎn)0正1反0 0 速度11 0 速度20 1 速度31 1 速度4 8254:GATE2接電源+5v 給CLK2一個信號OUT2接CLK0將輸出接8259的INT ,在用

5、8259的IRO1連接到80X86的中斷INTRXD0XD7XIORXIOWXA2XA2INTRIOY0XD0XD7IOY1IORIOWIORIOWXA28086系統(tǒng)總線D0 PC0D7 PC3 A0 PC4A1 PC7 8255WR A口RDCS B口按鍵單元步進電機單元LED顯示XD0XD7D0 D7 WRRD INTCS 8259 IR0A0D0 OUT0D7 CLK0WR OUT2RDCS CLK2 8254A0A1 GATE21.8432MHZ+5VIOY2圖2硬件連接圖四 系統(tǒng)軟件設計開始系統(tǒng)初始化判斷開關(guān)判斷正反判斷速度計數(shù)器裝入初值判斷是否進入中斷LED顯示判斷是否八拍走完判斷

6、鍵盤是否有按鍵否否是是是否結(jié)束是否 圖3軟件系統(tǒng)工作流程圖 過8255讀取按鍵的信號,來控制步進電機的開關(guān),正轉(zhuǎn),反轉(zhuǎn),速度的大小。通過8254計數(shù)器工作在方式0的狀態(tài)下來控制每拍運行的時間,步進電機速度不同,賦給8254的初始值不同,同時8255的PA,PB口向LED接口輸出信號,LED數(shù)碼管顯示步進電機每分鐘的轉(zhuǎn)速。8254計數(shù)器每次運行結(jié)束,向8259發(fā)出一個高電平,8259IR0接口檢測到高電平信號,即進入中斷服務程序,在中斷服務程序里,執(zhí)行對下一拍給步進電機信號的賦值。在每次循環(huán)中,執(zhí)行鍵盤按鍵檢測程序,如有按鍵,退出程序,否則,反復循環(huán)。如圖3為軟件系統(tǒng)的工作流程圖第二章 實踐部分

7、一 系統(tǒng)硬件原理簡介 1.1步進電機的簡介及其工作原理步進電機的驅(qū)動原理是通過它每相線圈的電流的順序切換來使電機作步進式旋轉(zhuǎn),驅(qū)動電路由脈沖來控制,所以調(diào)節(jié)脈沖的頻率便可改變步進電機的轉(zhuǎn)速,微控制器最適合控制步進電機。另外,由于電機的轉(zhuǎn)動慣量的存在,其轉(zhuǎn)動速度還受驅(qū)動功率的影響,當脈沖的頻率大于某一值時,電機便不再轉(zhuǎn)動。本次課程設計中電機共有四個相位(A,B,C,D),按轉(zhuǎn)動步驟可分單4拍(A-B-C-D-A),雙4拍(AB-BC-CD-DA-AB)和單雙8拍(A-AB-B-BC-C-CD-D-DA-A).此模塊的主要功能是通過接收8255的C口輸入信號來控制步進電機的轉(zhuǎn)動,A,B,C,D分別

8、代表不同的四個相位,分別接入到PC0,PC1,PC2和PC3實現(xiàn)轉(zhuǎn)動控制相12345678A11000001B01110000C00011100D00000111表 2如上述表2所示,通過編程對8255的輸出進行控制,使輸出按照相序表給驅(qū)動電路供電,則步進電機的輸入也和相序表一致,這樣步進電機就可以正向轉(zhuǎn)動,反之,則反向轉(zhuǎn)動。1.2實驗所用芯片的介紹及其控制方式 1.2.1 8254的簡介 8254是Intel公司生產(chǎn)的課可編程定時器,8254芯片主要由四部分組成: 1 數(shù)據(jù)總線緩沖器 數(shù)據(jù)總線緩沖器是一個三態(tài)、雙向8位寄存器主要作用是與CPU進行數(shù)據(jù)交換,8位數(shù)據(jù)線D7D0與CPU的系統(tǒng)數(shù)據(jù)

9、總線連接,構(gòu)成CPU和8254之間信息傳送的通道,CPU通過數(shù)據(jù)總線緩沖器向8254寫入控制命令、計數(shù)初始值或讀取計數(shù)值。 2 讀寫邏輯 讀寫邏輯是芯片的控制部分,編程人員通過控制信號的選擇來選擇芯片的工作方式。讀/寫控制邏輯用來接收CPU系統(tǒng)總線的讀、寫控制信號和端口選擇信號,用于控制8254內(nèi)部寄存器的讀/寫操作。 3 控制字寄存器 控制寄存器是一個只能寫不能讀的8位寄存器,系統(tǒng)通過指令將控制字寫入控制寄存器,設定8254的不同工作方式。 4 計數(shù)器 8254內(nèi)部有三個結(jié)構(gòu)完全相同而又相互獨立的16位減“1”計數(shù)器,每個計數(shù)器有六種工作方式,各自可按照編程設定的方式工作。1).有3個獨立的

10、16位計數(shù)器2).每個計數(shù)器可按十進制或二進制計數(shù)3).8254每個計數(shù)器允許最高計數(shù)為10MHZ4).8254 有讀回指令,還可以讀出狀態(tài)寄存器的內(nèi)容5).每個計數(shù)器可編程工作于6中不同的方式6)計數(shù)脈沖可以是有規(guī)律的時鐘信號,也可以是隨機信號,計數(shù)初值公式為n=fclki/fouti(fclki是輸入時鐘脈沖的頻率,fouti是輸出波形的頻率)工作方式的分類:1) 方式0:計數(shù)到0結(jié)束輸出正跳躍信號方式2)方式1:硬件可重觸發(fā)單穩(wěn)方式3)方式2:頻率發(fā)生器4)方式3:方波發(fā)生器5)方式4:軟件觸發(fā)選通方式6)方式5:硬件觸發(fā)選通方式8254的控制字有兩個:一個用來設置計數(shù)工作方式稱為方式控

11、制字。另一個用來設置讀回命令,稱為讀回控制字。如下表3是控制方式表格表3 8254的方式控制字格式D7D6D5D4D3D2D1D0計數(shù)器選擇讀/寫工作方式選擇計數(shù)碼制選擇00-計數(shù)器000-鎖存計數(shù)值000-方式00-二進制數(shù)01-計數(shù)器101-讀/寫低8位001-方式11-十進制數(shù)10-計數(shù)器210-讀/寫高8位010-方式211-讀出控制字標志11-先讀/寫低8位再讀/寫高8位011-方式3100-方式4101-方式58255的簡介及其控制8255是Intel公司生產(chǎn)的可編程并行I/O接口芯片,有3個8位并行I/O口。具有3個通道3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可

12、由軟件選擇,使用靈活,通用性強。8255可作為單片機與多種外設連接時的中間接口電路。 8255作為主機與外設的連接芯片,必須提供與主機相連的3個總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時必須具有與外設連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個部分:與CPU連接部分、與外設連接部分、控制部分。8255可編程外圍接口芯片是通用并行口芯片,具有A、B、C三個并行接口,有三種工方式。方式0基本的輸入輸出。方式1選通輸入輸出。方式2雙選通工作方式表格2為控制字格式,如下圖4 、圖5分別為8255工作方式控制字格式和8255 C口按位置位/復位控制

13、字格式。圖4、 8255工作方式控制字格式圖5 8255 C口按位置位/復位控制字格式8259的簡介及其控制方式8259A是專門為了對8085A和8086/8088進行中斷控制而設計的芯片,它是可以用程序控制的中斷控制器。單個的8259A能管理8級向量優(yōu)先級中斷。在不增加其他電路的情況下,最多可以級聯(lián)成64級的向量優(yōu)級中斷系統(tǒng)。8259A有多種工作方式,能用于各種系統(tǒng)。各種工作方式的設定是在初始化時通過軟件進行的。 在總線控制器的控制下,8259A芯片可以處于編程狀態(tài)和操作狀態(tài),編程狀態(tài)是CPU使用IN或OUT指令對8259A芯片進行初始化編程的狀態(tài)。功能:就是在有多個中斷源的系統(tǒng)中,接受外部

14、的中斷請求,并進行判斷,選中當前優(yōu)先級最高的中斷請求,再將此請求送到CPU的INTR端;當CPU響應中斷并進入中斷子程序的處理過程后,中斷控制器仍負責對外部中斷請求的管理。二 系統(tǒng)硬件調(diào)試中出現(xiàn)的問題及解決措施問題一 步進電機運轉(zhuǎn)不流暢原因:分析后發(fā)現(xiàn),程序執(zhí)行中的中斷無法連續(xù)執(zhí)行,因為8254采用方式3發(fā)出的中斷信號,脈沖時間太短,解決方法:在調(diào)整8254的計數(shù)器采用方式1后,一旦檢測信號,重新將計數(shù)器裝入初值問題二 數(shù)碼管顯示亂碼原因:查看顯示數(shù)據(jù)發(fā)現(xiàn),當8255輸出一個段碼后,下一次出現(xiàn)的是上一次輸出的值解決方法:在以后每次輸出之后,都輸出一個00A,以清除8255寄存器中的值,以達到清

15、除亂碼的效果問題三 程序執(zhí)行中有計數(shù)器賦初值,所以每次計數(shù)器都不能執(zhí)行完發(fā)出中斷原因:賦初值在循環(huán)當中解決方法:將計數(shù)器賦初值放到循環(huán)外面,引用FLAG來判斷是否進入中斷,如果進入,則重新將計數(shù)器賦初值問題四:讀取按鍵混亂原因:用PC7-PC4來讀取按鍵。讀出的按鍵數(shù)值在高四位,于我們用低四位處理相沖突解決方法:將讀出的數(shù)值右移四位三 系統(tǒng)軟件3.1 軟件設計3.1.1 8255控制模塊如圖6所示,8255主要負責不停的讀取按鍵狀態(tài)檢測速度的大小PC6為00(關(guān))初始化8259、82558255PC4口檢測開關(guān)按鍵8255PC5口檢測正反轉(zhuǎn)按鍵1(開)8255PC6口檢測速度8255PC7口檢

16、測速度8255PC7口檢測速度PC6為1PC7為0PC7為1PC7為0???1(反轉(zhuǎn))口20(正轉(zhuǎn))PC7為1 如圖6 8255流程圖3.1.2 8254延時模塊設置8254的控制字,通過8254設置延時,產(chǎn)生延時頻率,最后再接入到8255控制步進電機的運轉(zhuǎn)與停止,速度大小主要通過對8254裝入初值的不同來控制,流程如下圖7,與上圖6銜接(圖7分別于圖6最后連接)否否是是8254裝入初值8255PA.PB口輸出LED顯示速度判斷是否運轉(zhuǎn)八拍是否進入中斷PC低四位控制步進電機進入圖6的口1進入圖6的口2 圖7 8254模塊流程3.1.3 LED顯示模塊LED模塊的主要功能是前四位顯示步進電機的轉(zhuǎn)

17、速(r/min)度的值。此模塊用8255A、B口的控制LED數(shù)碼管的位碼,采用動態(tài)掃描方式讓數(shù)碼管顯示出速度值。利用8255的端口A、B口各八位,共十六位控制數(shù)碼管的顯示,其中A口為位選控制,B口為段選控制,直接顯示步進電機的轉(zhuǎn)速。數(shù)碼管的顯示控制對應于下圖8 圖8 數(shù)碼管對應圖來自8254的信號3.1.4 8259中斷模塊8259中斷模塊的8259主要負責接收來自8254的信號產(chǎn)生中斷,給80x86,控制一個脈沖產(chǎn)生一個中斷步進電機,如圖9步進電機轉(zhuǎn)動一拍80x86 圖9 3.2軟件調(diào)試中出現(xiàn)的問題及解決措施問題一 程序運行中反復執(zhí)行MOV BX,OFFSET TTABLEL.原因:放在最高

18、的級別的大循環(huán)當中,所以會反復執(zhí)行。解決方法:引用CX計數(shù),當CX由08H變成00H時,才返回執(zhí)行MOV BX,OFFSET TTABLEL問題二 跳轉(zhuǎn)指令無法達到期望位置,提示錯誤。原因:JZ,JNZ指令只能跳轉(zhuǎn)255,而我們程序跳轉(zhuǎn)跳遠,超出范圍。解決方法:使用JMP語句,在中間插入,多次跳轉(zhuǎn),以達到跳轉(zhuǎn)位置附錄(源程序)IOY1 EQU 3040H ;片選IOY0對應的端口始地址MY8255_A EQU IOY1+00H*4 ;8255的A口地址MY8255_B EQU IOY1+01H*4 ;8255的B口地址MY8255_C EQU IOY1+02H*4 ;8255的C口地址MY82

19、55_MODE EQU IOY1+03H*4 ;8255的控制寄存器地址IOY2 EQU 3080H ;片選IOY1對應的端口始地址MY8254_COUNT0 EQU IOY2+00H*4 ;8254計數(shù)器0端口地址MY8254_COUNT1 EQU IOY2+01H*4 ;8254計數(shù)器1端口地址MY8254_COUNT2 EQU IOY2+02H*4 ;8254計數(shù)器2端口地址MY8254_MODE EQU IOY2+03H*4 ;8254控制寄存器端口地址INTR_IVADD EQU 01C8H ;INTR對應的中斷矢量地址INTR_OCW1 EQU 0A1H ;INTR對應PC機內(nèi)部8

20、259的OCW1地址INTR_OCW2 EQU 0A0H ;INTR對應PC機內(nèi)部8259的OCW2地址INTR_IM EQU 0FBH ;INTR對應的中斷屏蔽字IOY0 EQU 3000H ;片選IOY0對應的端口始地址MY8259_ICW1 EQU IOY0+00H ;實驗系統(tǒng)中8259的ICW1端口地址MY8259_ICW2 EQU IOY0+04H ;實驗系統(tǒng)中8259的ICW2端口地址MY8259_ICW3 EQU IOY0+04H ;實驗系統(tǒng)中8259的ICW3端口地址MY8259_ICW4 EQU IOY0+04H ;實驗系統(tǒng)中8259的ICW4端口地址MY8259_OCW1

21、EQU IOY0+04H ;實驗系統(tǒng)中8259的OCW1端口地址MY8259_OCW2 EQU IOY0+00H ;實驗系統(tǒng)中8259的OCW2端口地址MY8259_OCW3 EQU IOY0+00H ;實驗系統(tǒng)中8259的OCW3端口地址STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENT MES DB Press any key to exit!,0AH,0DH,0AH,0DH,$CS_BAK DW ? ;保存INTR原中斷處理程序入口段地址的變量IP_BAK DW ? ;保存INTR原中斷處理程序入口偏移地址的變量IM_BAK

22、 DB ? ;保存INTR原中斷屏蔽字的變量TTABLE1 DB 01H,03H,02H,06H,04H,0CH,08H,09H ;正轉(zhuǎn)編碼 TTABLE2 DB 09H,08H,0CH,04H,06H,02H,03H,01H ;反轉(zhuǎn)編碼FLAG DB 00H ;標志位DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MES ;顯示退出提示 MOV AH,09H INT 21H CLI MOV AX,0000H ;替換INTR的中斷矢量 MOV ES,AX MOV DI

23、,INTR_IVADD MOV AX,ES:DI MOV IP_BAK,AX ;保存INTR原中斷處理程序入口偏移地址 MOV AX,OFFSET MYISR MOV ES:DI,AX ;設置當前中斷處理程序入口偏移地址 ADD DI,2 MOV AX,ES:DI MOV CS_BAK,AX ;保存INTR原中斷處理程序入口段地址 MOV AX,SEG MYISR MOV ES:DI,AX ;設置當前中斷處理程序入口段地址 MOV DX,INTR_OCW1 ;設置中斷屏蔽寄存器,打開INTR的屏蔽位 IN AL,DX MOV IM_BAK,AL ;保存INTR原中斷屏蔽字 AND AL,INT

24、R_IM OUT DX,AL MOV DX,MY8259_ICW1 ;初始化實驗系統(tǒng)中8259的ICW1 MOV AL,13H ;邊沿觸發(fā)、單片8259、需要ICW4 OUT DX,AL MOV DX,MY8259_ICW2 ;初始化實驗系統(tǒng)中8259的ICW MOV AL,08H OUT DX,AL MOV DX,MY8259_ICW4 ;初始化實驗系統(tǒng)中8259的ICW4 MOV AL,01H ;非自動結(jié)束EOI OUT DX,AL MOV DX,MY8259_OCW3 ;向8259的OCW3發(fā)送讀取IRR命令 MOV AL,0AH OUT DX,AL MOV DX,MY8259_OCW1

25、 ;初始化實驗系統(tǒng)中8259的OCW1 MOV AL,0FEH ;打開IR0的屏蔽位 OUT DX,AL STI MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL,88H ;工作方式0,A口輸出,B口輸出,C高四位輸入,低四位輸出 OUT DX,AL A: MOV AH,1 ;判斷是否有按鍵按下 INT 16H JNZ WAIT1 ;無按鍵則跳回繼續(xù)執(zhí)行,有則退出 MOV CX,08H ;計數(shù)初值 MOV DX,MY8255_C IN AL,DX ;讀C口高4位的數(shù)據(jù) SHR AL,1 ;轉(zhuǎn)向C口的低4位 SHR AL,1 SHR AL,1 SHR AL,1 PUS

26、H BX MOV BL,AL ;BL保存AL中的數(shù)據(jù) MOV BH,BL ;BH中保存AL的數(shù)據(jù) AND BL,01H ;取開關(guān)狀態(tài) CMP BL,00H JZ A ;如果是0,則跳轉(zhuǎn)到A AND BH,02H ;取正反轉(zhuǎn)狀態(tài) CMP BH,00H JZ FORWARD ;如果是0,跳正轉(zhuǎn) JNZ BACKWARD ;如果是1,跳反轉(zhuǎn) POP BX FORWARD: MOV BX,OFFSET TTABLE1 ;將的TTABLE1首地址賦給BX JMP B ;跳轉(zhuǎn)到B取速度 BACKWARD: MOV BX,OFFSET TTABLE2 ;將的TTABLE2首地址賦給BX JMP B ;跳轉(zhuǎn)到

27、B取速度 B: MOV CX,08H ;計數(shù)初值 MOV FLAG,00H ;中斷結(jié)束后給FLAG賦值00H MOV DX,MY8255_C IN AL,DX ;讀C口數(shù)據(jù) SHR AL,04H ;將數(shù)據(jù)左移四位 AND AL,0CH ;取高兩位 MOV AH,AL ;保存AL中的數(shù)據(jù) AND AL,08H ;取最高位 CMP AL,00H ;與00比較 JZ CAMP1 JNZ CAMP2CAMP1: AND AH,04H ;取第二位 CMP AH,00H JZ SPEED1C ;00速度1, 跳SPEED1C JNZ SPEED2C ;01速度2,跳SPEED2CCAMP2: AND AH

28、,04H ;取第二位 CMP AH,00H JZ SPEED3C ;10速度3,跳SPEED1C JNZ SPEED4C1 ;11速度4,跳SPEED1CSPEED1C: MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,0B6H ;計數(shù)器2,方式3 OUT DX,AL MOV DX,MY8254_COUNT2 ;裝入計數(shù)初值 MOV AL,24H ;36分頻 OUT DX,AL MOV AL,00H OUT DX,AL MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,30H ;計數(shù)器0,方式1 OUT DX,AL MOV DX,MY8

29、254_COUNT0 ;裝入計數(shù)初值 MOV AL,0FFH ;255 OUT DX,AL MOV AL,00H OUT DX,AL JMP SPEED1SPEED2C: MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,0B6H ;計數(shù)器2,方式3 OUT DX,AL MOV DX,MY8254_COUNT2 ;裝入計數(shù)初值 MOV AL,48H ;72分頻 OUT DX,AL MOV AL,00H OUT DX,AL MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,36H ;計數(shù)器0,方式1 OUT DX,AL MOV DX,MY8

30、254_COUNT0 ;裝入計數(shù)初值 MOV AL,0FFH ;255 OUT DX,AL MOV AL,00H OUT DX,AL JMP SPEED2A1: JMP A SPEED4C1:JMP SPEED4 SPEED3C: MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,0B6H ;計數(shù)器2,方式3 OUT DX,AL MOV DX,MY8254_COUNT2 ;裝入計數(shù)初值 MOV AL,90H ;144分頻 OUT DX,AL MOV AL,00H OUT DX,AL MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,36H

31、 ;計數(shù)器0,方式1 OUT DX,AL MOV DX,MY8254_COUNT0 ;裝入計數(shù)初值 MOV AL,0FFH ;255 OUT DX,AL MOV AL,00H OUT DX,AL JMP SPEED3 SPEED4C: MOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,0B6H ;計數(shù)器2,方式3 OUT DX,AL MOV DX,MY8254_COUNT2 ;裝入計數(shù)初值 MOV AL,0FFH ;288分頻 OUT DX,AL MOV AL,01H OUT DX,ALMOV DX,MY8254_MODE ;初始化8254工作方式 MOV AL,3

32、6H ;計數(shù)器0,方式1 OUT DX,AL MOV DX,MY8254_COUNT0 ;裝入計數(shù)初值 MOV AL,0FFH ;255 OUT DX,AL MOV AL,00H OUT DX,AL JMP SPEED4 A2: JMP A1SPEED1: MOV AL,BX MOV DX,MY8255_C ;給步進電機輸入信號 OUT DX,AL DEC CX ;每輸入一次信號CX減1 CMP CX,00H ;將CX的值與00H比較,如果跳轉(zhuǎn)8次,跳轉(zhuǎn)到A,重新開始掃描按鍵 JZ A CMP FLAG,OOH ;判斷是不是已經(jīng)進入中斷,如果進入,跳轉(zhuǎn)到B,如果沒有,繼續(xù)執(zhí)行LED的顯示 JN

33、Z B MOV DX,MY8255_A MOV AL,0EFH ;段選3號位 OUT DX,AL MOV DX,MY8255_B MOV AL,06H ;顯示數(shù)字1 OUT DX,AL MOV AL,00H ;消除鎖存值 OUT DX,AL MOV DX,MY8255_A MOV AL,0F7H ;段選2號位 OUT DX,AL MOV DX,MY8255_B MOV AL,5BH ;顯示數(shù)字2 OUT DX,AL MOV AL,00H ;消除鎖存值 OUT DX,AL MOV DX,MY8255_A MOV AL,0FBH ;段選1號位 OUT DX,AL MOV DX,MY8255_B M

34、OV AL,3FH ;顯示數(shù)字0 OUT DX,AL MOV AL,00H ;消除鎖存值 OUT DX,AL JMP A1A3: JMP A2 SPEED2: MOV AL,BX MOV DX,MY8255_C ;給步進電機輸入信號 OUT DX,AL DEC CX ;每輸入一次信號CX減1 CMP CX,00H ;將CX的值與00H比較,如果跳轉(zhuǎn)8次,跳轉(zhuǎn)到A,重新開始掃描按鍵 JZ A CMP FLAG,OOH ;判斷是不是已經(jīng)進入中斷,如果進入,跳轉(zhuǎn)到B,如果沒有,繼續(xù)執(zhí)行LED的顯示 JNZ B MOV DX,MY8255_A MOV AL,0F7H ;段選2號位 OUT DX,AL

35、MOV DX,MY8255_B MOV AL,7DH ;顯示數(shù)字6 OUT DX,AL MOV AL,00H ;消除鎖存值 OUT DX,AL MOV DX,MY8255_A MOV AL,0FBH ;段選1號位 OUT DX,AL MOV DX,MY8255_B MOV AL,3FH ;顯示數(shù)字0 OUT DX,AL MOV AL,00H ;消除鎖存值 OUT DX,AL JMP A2 SPEED3: MOV AL,BX MOV DX,MY8255_C ;給步進電機輸入信號 OUT DX,AL DEC CX ;每輸入一次信號CX減1 CMP CX,00H ;將CX的值與00H比較,如果跳轉(zhuǎn)8

36、次,跳轉(zhuǎn)到A,重新開始掃描按鍵 JZ A CMP FLAG,OOH ;判斷是不是已經(jīng)進入中斷,如果進入,跳轉(zhuǎn)到B,如果沒有,繼續(xù)執(zhí)行LED的顯示 JNZ B MOV DX,MY8255_A MOV AL,0F7H ;段選2號位 OUT DX,AL MOV DX,MY8255_B MOV AL,4FH ;顯示數(shù)字3 OUT DX,AL MOV AL,00H ;消除鎖存值 OUT DX,AL MOV DX,MY8255_A MOV AL,0FBH ;段選1號位 OUT DX,AL MOV DX,MY8255_B MOV AL,3FH ;顯示數(shù)字0 OUT DX,AL MOV AL,00H OUT

37、DX,AL JMP A3A4: JMP A3 SPEED4: MOV AL,BX MOV DX,MY8255_C OUT DX,AL DEC CX ;每輸入一次信號CX減1 CMP CX,00H ;將CX的值與C00H比較,如果跳轉(zhuǎn)8次,跳轉(zhuǎn)到A,重新開始掃描按鍵 JZ A CMP FLAG,OOH ;判斷是不是已經(jīng)進入中斷,如果進入,跳轉(zhuǎn)到B,如果沒有,繼續(xù)執(zhí)行LED的顯示 JNZ B MOV DX,MY8255_A MOV AL,0F7H ;段選2號位 OUT DX,AL MOV DX,MY8255_B MOV AL,06H ;顯示數(shù)字5 OUT DX,AL MOV AL,00H ;消除鎖

38、存值 OUT DX,AL MOV DX,MY8255_A MOV AL,0FBH ;段選1號位 OUT DX,AL MOV DX,MY8255_B MOV AL,6DH OUT DX,AL ;顯示數(shù)字1 MOV AL,00H OUT DX,AL ;消除鎖存值 JMP A4 QUIT: CLI MOV AX,0000H ;恢復INTR原中斷矢量 MOV ES,AX MOV DI,INTR_IVADD MOV AX,IP_BAK ;恢復INTR原中斷處理程序入口偏移地址 MOV ES:DI,AX ADD DI,2 MOV AX,CS_BAK ;恢復INTR原中斷處理程序入口段地址 MOV ES:D

39、I,AX MOV DX,INTR_OCW1 ;恢復INTR原中斷屏蔽寄存器的屏蔽字 MOV AL,IM_BAK OUT DX,AL STI MOV AX,4C00H ;返回到DOS INT 21HMYISR PROC NEAR ;中斷處理程序MYISR PUSH AXIR0ISR:MOV AL,30H ;IR0處理,顯示字符串STR0 MOV AH,0EH INT 10H MOV AL,20H INT 10H INC BX ;列表向后移一格 MOV FLAG,01H JMP OVEROVER: MOV DX,INTR_OCW2 ;向試驗箱上8259發(fā)送中斷結(jié)束命令 MOV AL,20H OUT DX,AL MOV AL,20H ;向PC機內(nèi)部8259發(fā)送中斷結(jié)束命令 OUT 20H,AL POP AX IRET MYISR ENDP CODE ENDS END START

展開閱讀全文
溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!