微機實驗報告第二次_第1頁
微機實驗報告第二次_第2頁
微機實驗報告第二次_第3頁
微機實驗報告第二次_第4頁
微機實驗報告第二次_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

微機實驗報告1可編程定時器/計數(shù)器8254實驗1.1實驗目的了解計數(shù)器的硬件連接方法及時序關系,掌握8254的各種模式的編程及其原理,用示波器觀察各信號之間的時序關系。1.2實驗原理圖可編程定時器/計數(shù)器8254原理圖1.3實驗內(nèi)容及說明將32Hz的晶振頻率作為8254的時鐘輸入,利用定時器8254產(chǎn)生1Hz的方波,發(fā)光二極管不停閃爍,用示波器可看到輸出的方波。8254是一種可編程的定時器/計數(shù)器芯片,它具有3個獨立的16位計數(shù)器通道,每個計數(shù)器都可以按照二進制或二-十進制計數(shù),每個計數(shù)器都有6種工作方式,計數(shù)頻率可高達24MHz,芯片所有的輸入輸出都與TTL兼容。計數(shù)器都有6種工作方式:方式0—計數(shù)過程結束時中斷;方式1—可編程的單拍脈沖;方式2—頻率發(fā)生器;方式3—方波發(fā)生器;方式4—軟件觸發(fā);方式5—硬件觸發(fā)。6種工作方式主要有5點不同:一是啟動計數(shù)器的觸發(fā)方式和時刻不同;二是計數(shù)過程中門控信號GATE對計數(shù)操作的影響不同;三是OUT輸出的波形不同;四是在計數(shù)過程中重新寫入計數(shù)初值對計數(shù)過程的影響不同;五是計數(shù)過程結束,減法計數(shù)器是否恢復計數(shù)初值并自動重復計數(shù)過程的不同。1.4實驗步驟(1)實驗連線:信號源模塊短路32.0Hz,CLK連到8254模塊的CLK0。8254模塊選通線CS連到ISA總線接口模塊的0000H。8254模塊GATE0接電源+5V;OUT0接發(fā)光二極管L1。該模塊的WR、RD分別連到ISA總線接口模塊的IOWR、IORD。該模塊的數(shù)據(jù)(AD0~AD7)、地址線(A0~A7)分別連到ISA總線接口模塊的數(shù)據(jù)(LD0~LD7)、地址線(LA0~LA7)。(2)運行程序:8254.ASM。(3)觀察發(fā)光二極管,用示波器可看到輸出的方波。8254定時器/計數(shù)器實驗1.5實驗源代碼MY_STACK SEGMENT PARA'STACK' DB 100DUP(?)MY_STACK ENDSMY_DATA SEGMENT PARA'DATA'IO_9054base_addressDB4DUP(0) ;PCI卡9054芯片I/O基地址暫存空間IO_base_addressDB4DUP(0) ;PCI卡I/O基地址暫存空間pcicardnotfind DB0DH,0AH,'pcicardnotfindoraddress/interrupterror!!!',0DH,0AH,'$'GOOD DB0DH,0AH,'TheProgramisExecuting!',0DH,0AH,'$'P8254_T0 DW 0000H P8254_T1 DW 0001HP8254_T2 DW 0002HP8254_MODE DW 0003HMY_DATA ENDsMY_CODE SEGMENTPARA'CODE'MY_PROC PROC FAR ASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACK MAIN: .386 ;386模式編譯 MOV AX,MY_DATA MOV DS,AX MOV ES,AX MOV AX,MY_STACK MOV SS,AX CALL FINDPCI ;自動查找PCI卡資源及IO口基址 MOV CX,wordptrIO_base_address ; MOV CX,0E800H ;直接加入(E800:本機PCI卡IO口基址) ADD P8254_T0,CX ;PCI卡IO基址+偏移 ADD P8254_T1,CX ADD P8254_T2,CX ADD P8254_MODE,CX MOV DX,P8254_MODE ;寫入方式控制字 MOV AL,37H ;計數(shù)器0,先讀寫低位,后讀寫高位, OUT DX,AL ;方式3,BCD碼計數(shù) MOV DX,P8254_T0 MOV AL,20H ;初值低8位 OUT DX,AL MOV AL,00H ;初值高8位 OUT DX,ALNEXT: CALL BREAK JMP NEXT MY_PROC ENDp ;;*****************************************************************************; /*按任意鍵退出*/;***************************************************************************** ;BREAK PROC NEAR ;按任意鍵退出 PUSHF PUSH AX PUSH DX MOV AH,06H MOV DL,0FFH INT 21H JE RETURNEXEC_EXIT: MOV AX,4C00H INT 21HRETURN: POP DX POP AX POPF RETBREAK ENDP;;*****************************************************************************; /*找卡子程序*/;***************************************************************************** ;;FUNCTIONCODEIO_port_addre EQU0CF8H ;32位配置地址端口IO_port_data EQU 0CFCH ;32位配置數(shù)據(jù)端口IO_PLX_ID EQU 200810B5H ;PCI卡設備及廠商IDBADR0 = 10H ;基地址寄存器0BADR1 = 14H ;基地址寄存器1BADR2 = 18H ;基地址寄存器2BADR3 = 1CH ;基地址寄存器3FINDPCI PROC NEAR ;查找PCI卡資源并顯示 PUSHAD PUSHFD MOV EBX,080000000HFINDPCI_next: ADD EBX,100H CMP EBX,081000000H JNZ findpci_continue MOV DX,offsetpcicardnotfind ;顯示未找到PCI卡提示信息 MOV AH,09H INT 21H MOV AH,4CH INT 21H ;退出findpci_continue: MOV DX,IO_port_addre MOV EAX,EBX OUT DX,EAX ;寫地址口 MOV DX,IO_port_data IN EAX,DX ;讀數(shù)據(jù)口 CMP EAX,IO_PLX_ID JNZ findpci_next ;檢查是否發(fā)現(xiàn)PCI卡 MOV DX,IO_port_addre MOV EAX,EBX ADD EAX,BADR1 OUT DX,EAX ;寫地址口 MOV DX,IO_port_data IN EAX,DX ;讀數(shù)據(jù)口 MOV dwordptrIO_9054base_address,EAX AND EAX,1 JZ findPCI_next ;檢查是否為i/o基址信息 MOV EAX,dwordptrIO_9054base_address AND EAX,0fffffffeh MOV dwordptrIO_9054base_address,EAX ;去除i/o指示位并保存 MOV DX,IO_port_addre MOV EAX,EBX ADD EAX,BADR2 OUT DX,EAX ;寫地址口 MOV DX,IO_port_data IN EAX,DX ;讀數(shù)據(jù)口 MOV dwordptrIO_base_address,EAX AND EAX,1 JZ findPCI_next ;檢查是否為i/o基址信息 MOV EAX,dwordptrIO_base_address AND EAX,0fffffffeh MOV dwordptrIO_base_address,EAX;去除i/o指示位并保存 MOV DX,offsetgood ;顯示開始執(zhí)行程序信息 MOV AH,09H INT 21H POPfd POPad RETfindPCI ENDPMY_CODE ENDS END MAIN 1.6實驗結果實驗觀察得到,發(fā)光二極管閃爍,一分鐘內(nèi)亮滅共97次。2可編程并行接口8255實驗2.1實驗目的了解可編程并行接口芯片8255的內(nèi)部結構、工作方式、初始化編程及應用。2.2實驗說明1、8255A的內(nèi)部結構(1)數(shù)據(jù)總線緩沖器:這是一個雙向三態(tài)的8位數(shù)據(jù)緩沖器,它是8255A與微機系統(tǒng)數(shù)據(jù)總線的接口。輸入輸出的數(shù)據(jù)、CPU輸出的控制字以及CPU輸入的狀態(tài)信息都是通過這個緩沖器傳送的。(2)三個端口A,B和C:A端口包含一個8位數(shù)據(jù)輸出鎖存器和緩沖器,一個8位數(shù)據(jù)輸入鎖存器。B端口包含一個8位數(shù)據(jù)輸入/輸出鎖存器和緩沖器,一個8位數(shù)據(jù)輸入緩沖器。C端口包含一個8位數(shù)據(jù)輸出鎖存器及緩沖器,一個8位數(shù)據(jù)輸入緩沖器(輸入沒有鎖存器)。(3)A組和B組控制電路:這是兩組根據(jù)CPU輸出的控制字控制8255工作方式的電路,它們對于CPU而言,共用一個端口地址相同的控制字寄存器,接收CPU輸出的一字節(jié)方式控制字或?qū)口按位復位字命令。方式控制字的高5位決定A組工作方式,低3位決定B組的工作方式。對C口按位復位命令字可對C口的每一位實現(xiàn)置位或復位。A組控制電路控制A口和C口上半部,B組控制電路控制B口和C口下半部。(4)讀寫控制邏輯:用來控制把CPU輸出的控制字或數(shù)據(jù)送至相應端口,也由它來控制把狀態(tài)信息或輸入數(shù)據(jù)通過相應的端口送到CPU。2、8255A的工作方式方式0—基本輸入輸出方式;方式1—選通輸入輸出方式;方式2—雙向選通輸入輸出方式。3、8255A的狀態(tài)字8255方式1的狀態(tài)字8255方式2的狀態(tài)字4、8255A的控制字8255A方式控制字按位置位/復位控制字2.3實驗原理圖可編程并行接口8255電路2.4實驗內(nèi)容交通燈實驗:利用8255的A口模擬交通信號燈。2.5實驗步驟(1)實驗連線:該模塊的WR、RD分別連到ISA總線接口模塊的IOWR、IORD。該模塊的數(shù)據(jù)(AD0~AD7)、地址線(A0~A7)分別連到ISA總線接口模塊的數(shù)據(jù)(LD0~LD7)、地址線(LA0~LA7)。8255模塊選通線CE連到ISA總線接口模塊的0000H。8255的PA0-L7、PA1-L6、PA2-L5、PA3-L3、PA4-L2、PA5-L1。(2)運行程序:Tracffic.ASM,觀察發(fā)光二極管。交通燈實驗2.6實驗源代碼;FUNCTIONCODEIO_port_addre EQU0CF8H ;32位配置地址端口IO_port_data EQU 0CFCH ;32位配置數(shù)據(jù)端口IO_PLX_ID EQU 200810B5H ;PCI卡設備及廠商IDBADR0 = 10H ;基地址寄存器0BADR1 = 14H ;基地址寄存器1BADR2 = 18H ;基地址寄存器2BADR3 = 1CH ;基地址寄存器3MY_STACK SEGMENT PARA'STACK' DB 100DUP(?)MY_STACK ENDSMY_DATA SEGMENT PARA'DATA'IO_9054base_addressDB4DUP(0) ;PCI卡9054芯片I/O基地址暫存空間IO_base_addressDB4DUP(0) ;PCI卡I/O基地址暫存空間pcicardnotfind DB0DH,0AH,'pcicardnotfindoraddress/interrupterror!!!',0DH,0AH,'$'GOOD DB0DH,0AH,'TheProgramisExecuting!',0DH,0AH,'$'P8255_A DW 0000H P8255_B DW 0001HP8255_C DW 0002HP8255_MODE DW 0003HMES4 DB 10,13,'Thedataerror!Pleaseenteragain!',10,13,'$'MES3 DB 10,13,'Pleaseenter0~9toPlay!',10,13 DB 'ENTERCRTORETURN!',0DH,0AH,'$'MES2 DB' PCICONFIGREADERROR! $'DDATA DB ?MY_DATA ENDsMY_CODE SEGMENTPARA'CODE'MY_PROC PROC FAR ASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACK START: .386 ;386模式編譯 MOV AX,MY_DATA MOV DS,AX MOV ES,AX MOV AX,MY_STACK MOV SS,AXst1: MOV DX,offsetgood ;顯示開始執(zhí)行程序信息 MOV AH,09H INT 21H CALL FINDPCI ;查找PCI卡資源并顯示 MOV CX,wordptrIO_base_address ADD P8255_A,CX ADD P8255_B,CX ADD P8255_C,CX ADD P8255_MODE,CX SSS: MOV DX,P8255_MODE MOV AL,80H ;寫8255控制字A、B輸出,C輸入 OUT DX,AL mov al,0ffhqq: MOV DX,P8255_a OUT DX,AL MOV DX,P8255_b OUT DX,AL MOV DX,P8255_c OUT DX,AL ; in al,dx inc al jmp qq START1: MOV DX,OFFSETMES3 MOV AH,09H INT 21H ERROR: MOV DX,OFFSETMES2 ;顯示讀錯誤信息 MOV AH,09H INT 21HEXIT: MOV AX,4C00H INT 21H MY_PROC ENDp DELAY20 PROC NEAR ;延時程序 PUSHF PUSH AX PUSH DX PUSH CX MOV AH,86H MOV CX,00 MOV DX,20 INT 15H POP CX POP DX POP AX POPF RETDELAY20 ENDpDELAY500 PROC NEAR ;延時程序 PUSHF PUSH AX PUSH DX PUSH CX MOV AH,86H MOV CX,07h MOV DX,0d0H INT 15H POP CX POP DX POP AX POPF RETDELAY500 ENDp FINDPCI PROC NEAR ;查找PCI卡資源并顯示 PUSHAD PUSHFD MOV EBX,080000000HFINDPCI_next: ADD EBX,100H CMP EBX,081000000H JNZ findpci_continue MOV DX,offsetpcicardnotfind ;顯示未找到PCI卡提示信息 MOV AH,09H INT 21H MOV AH,4CH INT 21H ;退出findpci_continue: MOV DX,IO_port_addre MOV EAX,EBX OUT DX,EAX ;寫地址口 MOV DX,IO_port_data IN EAX,DX ;讀數(shù)據(jù)口 CMP EAX,IO_PLX_ID JNZ findpci_next ;檢查是否發(fā)現(xiàn)PCI卡 MOV DX,IO_port_addre MOV EAX,EBX ADD EAX,BADR1

溫馨提示

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

評論

0/150

提交評論