微型计算机接口技术实验报告.pdf
《微型计算机接口技术实验报告.pdf》由会员分享,可在线阅读,更多相关《微型计算机接口技术实验报告.pdf(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微型计算机接口技术实验报告实验室:S318 学院:计算机科学与技术专业:计算机科学与技术姓名:实验时间:第 7 周星期一 7-8节第 9 周星期五 7-8节第 11 周星期四 1-2节第 13 周星期四 9-10 节实验时间(第x 周第 XX 节)、地点、学生姓名、学生学号、班级、指导教师(比如:循环程序设计)实验内容(具体实验题目)实验程序清单运行结果实验中遇到的问题及解决方案实验心得体会实验一、PCI 总线中断应用一、实验题目PCI 总线中断应用二、实验内容1【示例】编写一实验程序,利用实验装置提供的中断源,完成每按动一次脉冲开关,产生一次中断,向显示器输出字符“7”。2修改示例程序,控制
2、中断响应次数为10 次,即当第11 次以后按动脉冲开关,屏幕上不再显示“7”。三、程序清单;先执行PCI_BIOS.EXE,获得 PCI 板卡申请的第一个I/O 空间的首地址及;中断号,修改下面CPU访问 PCI 操作寄存器的端口地址。;由中断号确定相应中断向量及OCW1、OCW2 命令字。INTCSR_BYTE0 EQU 9438H ;修改 PCI 操作寄存器的端口地址INTCSR_BYTE1 EQU 9439H INTCSR_BYTE2 EQU 943AH INTCSR_BYTE3 EQU 943BH IMB4_BYTE3 EQU 941FH DATA SEGMENT CSBAK DW?I
3、PBAK DW?MKBAK DB?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:CLI MOV AX,DATA MOV DS,AX;初始化PCI 寄存器 MOV DX,INTCSR_BYTE0 MOV AL,00H OUT DX,AL MOV DX,INTCSR_BYTE1 MOV AL,1FH OUT DX,AL MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL MOV DX,INTCSR_BYTE3 MOV AL,00H OUT DX,AL;保存和替换中断入口地址 MOV AX,0000H MOV E
4、S,AX MOV DI,01CCH ;INT 73H,01CCH=73H*4,根据中断号修改 MOV AX,ES:DI MOV IPBAK,AX ;IP MOV AX,OFFSET MYINT CLD STOSW MOV AX,ES:DI ;CS MOV CSBAK,AX MOV AX,SEG MYINT STOSW;保存中断屏蔽字寄存器内容 IN AL,0A1H MOV MKBAK,AL AND AL,0F7H ;打开中断屏蔽位,根据中断号修改 OUT 0A1H,AL STI;等待A1:NOP CALL BREAK JMP A1;=中断服务程序=MYINT:PUSH DS PUSH AX P
5、USH DX;清 PCI 板中断标志 MOV DX,IMB4_BYTE3 IN AL,DX MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL;清 8259 中断标志 MOV AL,63H ;根据中断号修改 OUT 0A0H,AL MOV AL,62H OUT 20H,AL;显示字符 7 MOV AH,0EH MOV AL,37H INT 10H POP DX POP AX POP DS IRET;检测是否有键按下程序BREAK PROC NEAR PUSH DS MOV AH,06H MOV DL,0FFH INT 21H JE RETURN POP DS CL
6、I;恢复中断屏蔽命令字 MOV AL,MKBAK OUT 0A1H,AL;恢复中断入口地址 MOV AX,0000H MOV ES,AX MOV DI,01CCH ;INT 73H,01CCH=73H*4,根据中断号修改 MOV AX,IPBAK CLD STOSW MOV AX,CSBAK STOSW MOV DX,INTCSR_BYTE1 MOV AL,00H OUT DX,AL STI MOV AX,4C00H INT 21H RETURN:POP DS RET BREAK ENDP CODE ENDS END START 四、运行结果(1)每按动一次脉冲开关,产生一次中断,向显示器输出
7、字符“7”(2)每按动一次脉冲开关,产生一次中断,向显示器输出字符“7”,控制中断响应次数为10 次,即当第11 次以后按动脉冲开关,屏幕上不再显示“7”。五、遇到的问题及解决方案对于 DOS 环境下编译、连接、下载程序的操作不是很熟悉,还好有实验操作步骤,但是还是导致了多次重启计算机。六、心得体会掌握了使用PCI 中断的方法,进一步了解了操作PCI 设备 I/O 端口的方法。掌握了8259 中断控制器的工作原理、编程方法以及PC 机如何通过8259A 实现对外部可屏蔽硬件中断源的管理,掌握了一般中断服务程序的设计方法。实验二、8254 定时/计数器应用一、实验题目8254 定时/计数器应用二
8、、实验内容1.计数应用实验:编写程序,应用8254 的计数功能,用开关模拟计数。使每当按动开关KK1 五次后,产生中断,并在屏幕上显示一个字符“M”。2.定时应用:自己编写程序,应用8254 的定时功能,将屏幕设计为一个秒表。3.电子发声:自己编写程序让实验装置上的扬声器和PC 机上的扬声器唱歌。三、程序清单1.MY8254_COUNT0 EQU 9C40H;修改端口地址MY8254_COUNT1 EQU 9C41H MY8254_COUNT2 EQU 9C42H MY8254_MODE EQU 9C43H INTCSR_BYTE0 EQU 9438H INTCSR_BYTE1 EQU 943
9、9H INTCSR_BYTE2 EQU 943AH INTCSR_BYTE3 EQU 943BH IMB4_BYTE3 EQU 941FH DATA SEGMENT CSBAK DW?IPBAK DW?MKBAK DB?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:CLI MOV AX,DATA MOV DS,AX MOV DX,INTCSR_BYTE0 MOV AL,00H OUT DX,AL MOV DX,INTCSR_BYTE1 MOV AL,1FH OUT DX,AL MOV DX,INTCSR_BYTE2 MOV AL,3FH
10、 OUT DX,AL MOV DX,INTCSR_BYTE3 MOV AL,00H OUT DX,AL MOV AX,0000H MOV ES,AX MOV DI,01CCH;INT 73H,01CCH=73H*4,根据中断号修改MOV AX,ES:DI MOV IPBAK,AX;IP MOV AX,OFFSET MYINT CLD STOSW MOV AX,ES:DI;CS MOV CSBAK,AX MOV AX,SEG MYINT STOSW IN AL,0A1H MOV MKBAK,AL AND AL,0F7H;打开中断屏蔽位,根据中断号修改OUT 0A1H,AL STI MOV DX,
11、MY8254_MODE;CLK=KK1 MOV AL,17H OUT DX,AL MOV DX,MY8254_COUNT0 MOV AL,5 OUT DX,AL A1:NOP CALL BREAK JMP A1 MYINT:PUSH DS PUSH AX PUSH DX MOV DX,IMB4_BYTE3 IN AL,DX MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL MOV AL,63H;根据中断号修改OUT 0A0H,AL MOV AL,62H OUT 20H,AL MOV AX,0E4DH INT 10H MOV AX,0E20H INT 10H PO
12、P DX POP AX POP DS IRET BREAK PROC NEAR PUSH DS MOV AH,06H MOV DL,0FFH INT 21H JE RETURN POP DS CLI MOV AL,MKBAK OUT 0A1H,AL MOV AX,0000H MOV ES,AX MOV DI,01CCH;INT 73H,01CCH=73H*4,根据中断号修改MOV AX,IPBAK CLD STOSW MOV AX,CSBAK STOSW MOV DX,INTCSR_BYTE1 MOV AL,00H OUT DX,AL STI MOV AX,4C00H INT 21H RETU
13、RN:POP DS RET BREAK ENDP CODE ENDS END START 2.PC8254_COUNT0 EQU 40H PC8254_COUNT1 EQU 41H PC8254_COUNT2 EQU 42H PC8254_MODE EQU 43H DATA SEGMENT BAK DB?DTABLE DB 33H,33H,3DH,33H,26H,26H,26H,26H,2DH,2DH,26H,2DH,33H DB 33H,33H,33H,33H,33H,4DH,45H,3DH,3DH,3DH,45H,4DH,45H DB 45H,45H,45H,45H,45H,45H,45H
14、,33H,33H,3DH,33H,26H,26H DB 26H,28H,2DH,2DH,26H,26H,33H,33H,33H,33H,45H,3DH,39H DB 39H,39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,2DH,2DH DB 26H,26H,26H,26H,26H,26H,28H,28H,2DH,28H,26H,26H,26H DB 26H,2DH,28H,26H,2DH,2DH,33H,3DH,4DH,45H,45H,45H,45H DB 45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H,26H,28H,2DH
15、DB 2DH,26H,2DH,33H,33H,33H,33H,33H,33H,45H,3DH,39H,39H DB 39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,00H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:IN AL,61H MOV BAK,AL MOV AX,DATA MOV DS,AX MOV BX,OFFSET DTABLE MOV AL,BX MOV AH,00H A1:MOV DL,20H MUL DL PUSH AX MOV DX,PC8254_MODE MOV AL,0B6H O
16、UT DX,AL POP AX MOV DX,PC8254_COUNT2 OUT DX,AL MOV AL,AH OUT DX,AL MOV AL,BAK OR AL,03H OUT 61H,AL INC BX MOV AH,00H MOV AL,BX TEST AL,0FFH JZ A2 PUSH AX CALL DALLY CALL BREAK POP AX JMP A1 A2:MOV BX,OFFSET DTABLE MOV AL,BX MOV AH,00H JMP A1 DALLY:MOV CX,77FFH D1:MOV AX,0B00H D2:DEC AX JNZ D2 LOOP D
17、1 BREAK PROC NEAR MOV AH,06H MOV DL,0FFH INT 21H JE RETURN AND AL,0FDH OUT 61H,AL MOV AL,AH MOV AL,BAK OUT 61H,AL MOV AX,4C00H INT 21H RETURN:RET BREAK ENDP CODE ENDS END START 3.MY8254_COUNT0 EQU 9C40H MY8254_COUNT1 EQU 9C41H MY8254_COUNT2 EQU 9C42H MY8254_MODE EQU 9C43H DATA SEGMENT DTABLE DB 33H,
18、33H,3DH,33H,26H,26H,26H,26H,2DH,2DH,26H,2DH,33H DB 33H,33H,33H,33H,33H,4DH,45H,3DH,3DH,3DH,45H,4DH,45H DB 45H,45H,45H,45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H DB 26H,28H,2DH,2DH,26H,26H,33H,33H,33H,33H,45H,3DH,39H DB 39H,39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,2DH,2DH DB 26H,26H,26H,26H,26H,26H,28H,2
19、8H,2DH,28H,26H,26H,26H DB 26H,2DH,28H,26H,2DH,2DH,33H,3DH,4DH,45H,45H,45H,45H DB 45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H,26H,28H,2DH DB 2DH,26H,2DH,33H,33H,33H,33H,33H,33H,45H,3DH,39H,39H DB 39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,00H DATA ENDS CODE SEGMENT ASSUME CS:CODE START:MOV AX,DATA MOV DS,AX
20、 MOV BX,OFFSET DTABLE MOV AL,BX MOV AH,00H A1:MOV DL,0AH;CLK=1MHz MUL DL PUSH AX MOV DX,MY8254_MODE MOV AL,36H OUT DX,AL POP AX MOV DX,MY8254_COUNT0 OUT DX,AL MOV AL,AH OUT DX,AL INC BX MOV AH,00H MOV AL,BX TEST AL,0FFH JZ A2 PUSH AX CALL DALLY CALL BREAK POP AX JMP A1 A2:MOV BX,OFFSET DTABLE MOV AL
21、,BX MOV AH,00H JMP A1 DALLY:MOV CX,77FFH D1:MOV AX,0C00H D2:DEC AX JNZ D2 LOOP D1 BREAK PROC NEAR MOV AH,06H MOV DL,0FFH INT 21H JE RETURN MOV AX,4C00H INT 21H RETURN:RET BREAK ENDP CODE ENDS END START 四、运行结果(1)使每当按动开关KK1 五次后,产生中断,并在屏幕上显示一个字符“M”。(2)将屏幕为一个秒表,运行时开始计时。(3)实验装置上的扬声器和PC 机上的扬声器唱歌五、遇到的问题及解决
22、方案在实验的过程中,由于在插线时不细心,导致实验总是得不到预期的实验结果,最后把电路图检查了一遍才发现,原来是把线插错了。六、心得体会通过本次实验掌握了8254 的工作方式及应用编程,掌握了8254 的典型应用电路即输入输出的的接法。学习了 8254 在 PC 系统中的典型应用方法。实验三、8255 并行接口应用一、实验题目8255 并行接口应用二、实验内容1【示例】基本输入/输出实验:本实验希望实现将一组开关信号通过8255 芯片传送到发光二极管上显示。2流水灯显示实验:编写程序,使8255 的 A 口、B 口均为输出,实现16 位数据灯的相对循环显示。3修改第一个实验,选择8255 的 A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 接口 技术 实验 报告
限制150内