微機原理課程設(shè)計總結(jié)_第1頁
微機原理課程設(shè)計總結(jié)_第2頁
微機原理課程設(shè)計總結(jié)_第3頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微機原理課程設(shè)計數(shù)據(jù)采集系統(tǒng)(中斷法)一、課設(shè)目的:進一步掌握微機原理知識,了解微機在實時采集數(shù)據(jù)的應用,學習掌握編程和程序調(diào)試的方法。二、課設(shè)內(nèi)容和要求:用中斷法將ADC08091道0外接0 5V電壓, 轉(zhuǎn)換成數(shù)字量后,在七段數(shù)碼管 LED上顯示。以小數(shù)點后兩位 表示精度,顯示模擬電壓的十進制;0809通道0的數(shù)字量以線 性控制方式DAC0832輸出,當通道0的電壓為5V時,0832的OUT為0V當通道0的電壓為0時,0832的OUT為2.5V;此模擬電壓再送到ADC08091道1,轉(zhuǎn)換后的數(shù)字量在 CRT上以十六進制顯示。ADC0809的采樣脈沖CLK由定時器8254的OUT0提供;ADC

2、080啲EOC信號用作8259中斷請求信號。三、總體設(shè)計:1)、ADC080啲IN0采集電位器05V電壓,IN1采集0832輸出的模擬量。2)、DAC0832各ADC080啲IN0數(shù)字量重新轉(zhuǎn)換成模擬量輸出3)、8259用于檢測ADC0809專換是否結(jié)束和向CPU發(fā)送INTR信號4)8255為七段LED數(shù)碼管顯示提供驅(qū)動信息5)、七段LED數(shù)碼管顯示ADC0809的 IN0的值6)8254提供ADC0809的采樣時鐘脈沖。四、硬件設(shè)計:因采用PC機和微機實驗箱,硬件電路設(shè)計相對比較簡單,主要利用微機實驗箱上的 8255并行口,ADC0809 DAC0832七段數(shù)碼管LED 8254定時/計數(shù)器

3、,74LS574輸出接口,電位器等RFE21TLOIOUT23GATEO +5vCLAO 1.8432MHZOLTOXD0-XD7 D0-D7 XIOW WRXIOW RDCLKSC0Y/XD0-XD7 D0-D7XIOW WRXIOR RDINTR INTR/Y7 CS0809A XA2_B XA3_C XA4IN0IN110k5VEOCIR08259A0 A2單元1(圖1:數(shù)據(jù)采集系統(tǒng)硬件連接示意圖)六、軟件設(shè)計:本設(shè)計通過軟件編程,實現(xiàn)模/數(shù)轉(zhuǎn)換,0809分別對IN0 0 5V直流電壓的采樣和經(jīng)線性控制后輸出電壓IN1采樣,IN0 的值轉(zhuǎn)換成十進制后,在七段數(shù)碼管 LED上顯示IN1的值

4、。CPU艮據(jù) INO的值,使八位二極管根據(jù)課設(shè)要求指示相應的范圍。1、設(shè)計思想:數(shù)據(jù)采集系統(tǒng)分成四個功能模塊分別是主程序模塊、 量綱轉(zhuǎn)換模塊、數(shù)碼管顯示模塊、中斷服務子程序模塊。(1) 主程序模塊:根據(jù)課設(shè)要求采用中斷方式采集數(shù)據(jù),因此可把讀取IN0的值保存和數(shù)字量經(jīng)線性控制后送給0832輸出,作為0809IN1的模擬電壓和IN1的啟動,讀取以及IN0的BCD碼轉(zhuǎn)換,放 在中斷服務子程序模塊中完成。在主程序模塊上主要實現(xiàn)啟動0809的IN0、顯示模塊的調(diào)用、和中斷結(jié)束部分程序。(2) 量綱轉(zhuǎn)換模塊:量綱轉(zhuǎn)換模塊在中斷服務子程序內(nèi)完成,只有將IN0的數(shù)字量分別除以51,商存在顯示IN0的個位存儲

5、單元;余 數(shù)乘以十,再除以51,商存入十分位存儲單元;余數(shù)再乘以十,除 以51,若余數(shù)大于25則商加一,小于25則舍去。這樣就實現(xiàn)了四 舍五入的精度,再把商存入百分位存儲單元;以供七段數(shù)碼管顯示調(diào) 用。(3) 數(shù)碼管顯示模塊:數(shù)碼管顯示模塊相對簡單,主要在顯示個 位是加上小數(shù)點的顯示,可以通過查表獲取個位斷碼后再加上 80H來 實現(xiàn)(4) 中斷服務子程序:考慮到0832的輸出時0809IN1的輸入,因此,為防止在執(zhí)行中斷服務子程序時二次進入中斷服務子程序中,故在進入中斷服務子程序后關(guān)中斷,而在退出中斷服務子程序前開中斷 以便下次進入中斷服務子程序。中斷服務子程序模塊主要完成對IN0數(shù)據(jù)的讀取和

6、保存,對IN1的啟動和讀取,對INO數(shù)據(jù)的BCD專換等任務。2、參考流程:中斷子程序和主程序流程圖圖2:中斷服務子程序流程圖初始化N恢復原中斷屏蔽寄 存器值圖3數(shù)據(jù)采集系統(tǒng)主程序流程圖顯示提示信息1關(guān)中 保存原中斷向: 設(shè)置中斷向 保存中斷屏 允許TR 8254 初 開中斷-量內(nèi)容 量表 蔽值Q2中斷 丁始化 斷;微機原理課設(shè)CRLF MACRO;定義回車,換行宏MOV DL,0DHMOV AH,02HINT 21HMOV DL,0AHINT 21HENDMY0 EQU3000HY1 EQU3020HY2 EQU3040HY3 EQU3060HY7 EQU30E0HPA55EQUY1+00H*

7、4;8255A口地址PB55EQUY1+01H*4;8255B口地址PCTLEQUY1+03H*4;8255控制寄存器地址AD0EQUY0;ADC0809端口 IN0地址AD1EQUY0+10H;ADC0809端口 IN1地址INTR_IVADDEQU 01C8H;INTR對應的中斷矢量地址INTR_OCW1EQU 0A1H;INTR對應PC機內(nèi)部8259的OCW地址統(tǒng)中8259的ICW3端口地址MY8259_ICW4 EQU Y7+04H;實驗系統(tǒng)中8259的ICW4端口地址MY8259_OCW1 EQU Y7+04H;實驗系統(tǒng)中8259的OCW端口地址MY8259_OCW2 EQU Y7+

8、00H;實驗系統(tǒng)中8259的OCW端口地址MY8259_OCW3 EQU Y7+00H;實驗系統(tǒng)中8259的OCW端口地址TIMER0 EQU 3060H;Y3+00H*48254計數(shù)器0端口地址TCTL EQU 306CH;Y3+03H*48254控制字端口地址DATA SEGMENTMES0 DB'SIGNALGATHERING PR0RGRAM',0DH,0AH,0DH,0AH DB'#',0DH,0AH,0DH,0AHDB ' PRESS 1 TOSTART GATHERING !',0DH,0AH,0DH,0AHDB ' PRE

9、SS 2 TOEXIT TO DOS !',0DH,0AH,0DH,0AHDB'# #',0DH,0AH,0DH,0AH,'$'MES1 DB 'The value of IN1 is: $' CS_BAK DW ?INTR_OCW2 EQU 0A0H ;INTR 對應PC機內(nèi)部8259的OCW地址 INTR_IM EQU 0FEH ;INTR 對應的中斷屏蔽字MY8259_ICW1 EQU Y7+00H;實驗系統(tǒng)中8259的ICW1端口地址MY8259_ICW2 EQU Y7+04H;實驗系統(tǒng)中8259的ICW2端口地址IM_BAK D

10、B ?FLAG DB ?GW DB ?;保存?zhèn)€位SF DB ?;保存十分位BF DB ?;保存百分位IN0DB?IN1 DB ?DCTBL DBIP_BAK DWMY8259_ICW3 EQU Y7+04H實驗系 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDB保存INTR原中斷處理程序入口段地址MOVCS_BAK,AX77H,7CH,39H,5EH,79H,71HMOVAX, SEGMYISR;設(shè)置當前中斷處理程序入口段地址MOVES:DI,AXDATA ENDSMOVDX, INTR_OCW1;設(shè)置中斷屏敝奇存器,打開INTR的屏敝位STAC SEGMEN

11、T PARA STACKINAL, DX;DW 256 DUP(O)保存INTR原中斷屏蔽字STAC ENDSMOVIM_BAK,ALCODE SEGMENTANDAL,0FBHASSUME CS:CODE,SS:STAC,DS:DATAOUTDX,ALSTART: MOV AX,DATAMOVDX,MY8259_ICW1MOV DS,AXMOVAL,13HLEA DX,MES0OUTDX,ALMOV AH,9MOVDX,MY8259_ICW2INT 21HMOVAL,08HLOP1: MOV DL,0FFH;測試OUTDX,AL鍵盤輸入MOVDX,MY8259_ICW4MOV AH,6MOV

12、AL,01HINT 21HOUTDX,ALJZ LOP1MOVDX,MY8259_OCW3CMP AL,'1'MOVAL,0AHJZMAINOUTDX,ALCMP AL,2MOVDX,MY8259_OCW1JZEXIT0MOVAL,0FEH;JMP START打開IR0屏敝位EXIT0: JMP EXITOUTDX,AL;主程序模塊MAIN: CLI;關(guān);8254初始化中斷MOV AX, 0000HMOVDX,TCTLMOV ES, AX;替MOVAL,16H;計數(shù)換INTR的中斷矢量器0方式3讀低8位二進制計數(shù),若為方MOV DI, INTR_IVADD ;保式2亦可,&qu

13、ot;MOV AL,14H"存INTR原中斷處理程序入口偏移地址OUTDX,ALMOV AX, ES:DIMOVDX,TIMER0MOV IP_BAK,AXMOVAL,4MOV AX, OFFSETMYISR;設(shè)OUTDX,AL置當前中斷處理程序入口偏移地址MOV ES:DI,AX;8255初始化ADD DI, 2MOVAL,80H;A輸MOV AX, ES:DI;出、B輸出,方式0MOVDX,PCTL;8255鍵繼續(xù)循環(huán),有則退出控制字OUTDX,AL;退出模塊EXIT: CLI5關(guān)中STI5開中斷斷MOVAX,0000H;啟動 0809 IN0MOVES,AXMOVDI,INTR

14、_IVADD;恢LOP2: MOV DX,AD0;啟動復INTR原中斷處理程序入口偏移地址0809IN0MOVAX,IP_BAKOUTDX,ALMOVES:DI,AXCALLDELAYADDDI,2MOVAX,CS_BAK;恢MOVAX,0FFH復INTR原中斷處理程序入口段地址MOVFLAG,AL;設(shè)標MOVES:DI,AX志符MOVDX,INTR_OCW1CALLCHANGE;調(diào)用MOVAL,IM_BAK;恢量綱轉(zhuǎn)換模塊復INTR原中斷屏敝奇存器的屏敝字LEADX,MES1OUTDX,ALMOVAH,9STI5開中INT21H斷MOVDX,AD1;讀IN1的值MOVAX,4C00H;退出I

15、N .AL,DX系統(tǒng)NEGAL;線性INT 21H變換SHRAL,1;量綱轉(zhuǎn)換模塊MOVBL,ALANDAL,0F0H;顯示CHANGE PROC高位MOVCL,4MOVAL,IN0RORAL,CLXOR AH,AHCALLCRT1MOVDL,51MOVAL,BL;顯示MOVDH,10低位DIVDLANDAL,0FHMOV GW,AL ;存?zhèn)€位CALLCRT1MOVAL,AHCRLFXORAH,AHINT21HMULDHMOVAH,1;判斷DIV DL是否有按鍵按下MOVSF,AL ;存十分位INT16HMOVAL,AHJZLOP2;無按XORAH,AHMUL DHMOV AL,04HDIV

16、DLOUT DX,ALCMP AH,25CALL DELAYJB L0P3RETADD AL,1DISP ENDPL0P3:MOV BF,AL ;存百分位;中斷服務子程序CALL DISP;調(diào)用數(shù)碼顯示模塊MYISR PROC NEARRETPUSH AX;保護現(xiàn)場CHANGE ENDPPUSH BXPUSH CX;數(shù)碼顯示模塊PUSH DXDISP PROCCLI;關(guān)MOV AL,GW中斷XOR AH,AHCMP FLAG,0FFHMOV SI,AXJZ FLAG0LEA BXQCTBLMOV AL,BX+SIFLAG1: MOV DX,AD1;讀ADD AL,80HIN1的值MOV DX,

17、3024HIN AL,DXOUT DX,ALMOV IN1,ALMOV DX,3020HJMP INTEXITMOV AL,01HFLAG0:OUT DX,ALMOV DX,AD0CALL DELAYIN AL,DXMOV IN0,ALMOV AL,SFMOV DX,AD1MOV SI,AXOUT DX,ALMOV AL,BX+SICALL DELAYMOV DX,3024HOUT DX,ALMOV AX,0MOV DX,3020HMOV FLAG,ALMOV AL,02HOUT DX,ALINTEXIT:MOV DX,INTR_OCW2;發(fā)中CALL DELAY斷結(jié)束命令MOV AL,20H

18、MOV AL,BFOUT DX,ALMOV SI,AXMOV AL,20HMOV AL,BX+SIOUT 20H,ALMOV DX,PB55OUT DX,ALPOP DX;恢復MOV DX,PA55現(xiàn)場POPCXMOV AH,2POPBXINT 21HPOPAXRETSTI5開中CRT1 ENDP斷IRET5返回DELAY PROC NEAR;延主程序時MYISR ENDPPUSH CXMOV CX,0FFFFHLOOP $POP CXCRT1 PROC;在屏RET幕上顯示位16進制字符DELAY ENDPADDAL,30HCMPAL,39HJBED0CODE ENDSADDAL,7END S

19、TART;全D0: MOV DL,AL程序終*課程硬件結(jié)束與軟件編程源程序結(jié)束課設(shè)答辯: 提出的要求:1.斷開0832數(shù)據(jù)端,CS端,out端,IN1為什么有輸出?給出的答案修改程序:主程序:LEA DX,MES1高位MOVAH,9MOVCL,4INT21HRORAL,CLMOVAL,IN1;讀 IN1CALLCRT1的值MOVAL,BLMOVBL,AL低位ANDAL,0F0H;顯示ANDAL,0FH顯示CALLCRT1高位CRLFMOVCL,4LEADX,MES2RORAL,CLMOVAH,9CALLCRT1INT21HMOVAL,BLMOVAL,IN0;讀IN0低位的值A(chǔ)NDAL,0FHMOVBL,ALCALLCRT1ANDAL,0F0H;顯示CRLF中斷程序:顯示MOV DX,AD

溫馨提示

  • 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

提交評論