微机原理与接口技术-实验报告.docx

上传人:小飞机 文档编号:5285975 上传时间:2023-06-22 格式:DOCX 页数:21 大小:523.76KB
返回 下载 相关 举报
微机原理与接口技术-实验报告.docx_第1页
第1页 / 共21页
微机原理与接口技术-实验报告.docx_第2页
第2页 / 共21页
微机原理与接口技术-实验报告.docx_第3页
第3页 / 共21页
微机原理与接口技术-实验报告.docx_第4页
第4页 / 共21页
微机原理与接口技术-实验报告.docx_第5页
第5页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《微机原理与接口技术-实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术-实验报告.docx(21页珍藏版)》请在三一办公上搜索。

1、微机原理与接口技术实验报告学院:计算机与通信工程学院专业:计算机科学与技术班级:学号:姓名:实验一 8259中断控制器应用实验一、实验目的1. 掌握pc机中断处理系统的基本原理。2. 掌握可编程中断控制器8259的应用编程方法。二、实验内容1. PC机内中断实验。使用单次脉冲模拟中断产生。验证中断处理程序,在显示器屏幕上 显示一行预设定的字符串。2. PC机内中断嵌套实验。使用单次脉冲模拟两个中断源的中断产生,填写中断处理程序, 体会中断嵌套的过程。3. 扩展多中断源查询方式应用实验。利用实验平台上8259控制器作为中断扩展源,编写 程序对8259控制器的中断请求进行处理。三、实验步骤1. 实

2、验1-1: PC机内中断应用实验(1)按接线图连好接线,调用程序源代码8259-1.asm,观察实验现象,屏幕显示结果截图 如下:(2)自设计实验。改变接线方式,将单次脉冲连到USB核心板上的IRQ10插孔上,参考 本实验代码,编程实现IRQ10中断。(注意:考虑PC机内中断级联的方式,参看前面的原理说 明),代码如下:DATA SEGMENTMESS DB IRQ10 ,0DH,0AH, $DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, CSMOV DS, AXMOV DX,OFFSET INT10MOV AX,2572H

3、INT 21HIN AL,21HAND AL,0F3HOUT 21H,ALIN AL,0A1HAND AL,0FBHOUT 0A1H,ALMOV CX,10;设置IRQ10对应的中断向量;读取中断屏蔽寄存器开放IRQ3中断和从片;从片的中断屏蔽寄存器;开放IRQ10中断WAIT:JMP WAITINT10:MOV AX, DATAMOV DS, AXMOV DX, OFFSET MESSMOV AH, 09INT 21HMOV AL, 20HOUT 20H, ALLOOPNEXTIN AL, 21HOR AL, 08HOUT 21H, ALSTI;中断服务程序;在屏幕上显示每次中断的提示信息;

4、发出EOI结束中断到PC内主片的地址20H;读中断屏蔽寄存器,获取中断屏蔽字 关闭IRQ3中断;将中断屏蔽字送到中断屏蔽寄存器;置中断标志位STIMOV AH, 4CH;返回 DOSINT 21HNEXT: IRET;中断返回CODE ENDSEND START调用程序代码,观察实验现象,屏幕显示截图如下:2. 实验1-2: PC机内中断嵌套实验实验要求:(1)按接线图连好接线,调用程序源代码8259-2.asm,做如下操作,观察屏幕显示结果并分析 产生该现象的原因:A.按下连接IRQ的单次脉冲按键,屏幕上会显示10个3,在屏幕上10次显示未结束之前, 按下连接IRQ10的单次脉冲按键,观察现

5、象;按下IRQ时屏幕上会显示10个3,此时按下IRQ10,会直接在屏幕上显示10个10,然后结束 后再显示剩余的3B.按下连接IRQ10的单次脉冲按键,屏幕上会显示10个10,在屏幕上10 次显示未结束之前,按下连接IRQ3的单次脉冲按键,观察现象。在屏幕上显示10个10的过程中按下IRQ无反应,等到10个10全部显示完毕后才再显示10个3出现这种现象的原因是IRQ10的中断优先级高于IRQ3屏幕截图:USERxdastasnib i n皆 Bchs for Window - DisplayohtaU slaue : Generic 1ZJ4 ATR-Z Hard-Bisk NBytesJ网

6、nt img from Hard 1) isk . ptartins MS-DOS.h): SKrl rl : nxi-ir.I): EXECdcl tree fY . belet ing .8Z53-Z.exe.Ti: FXEC . .a 1 I . rom loadirff file . 3259-Z.EXE I LPrtd * 3 3 3 3 3 3 3 n 3 3 3 n 3 3 10 10 10 1G iy it) it) it) 3 3 3 3 3 3(2)程序所有代码及注释:DATA SEGMENTDATA ENDSCODE SEGMENTASSUME CS:CODE ,DS:D

7、ATASTART:.386CLIMOV AX,CSMOV DS,AXMOV DX,OFFSET INT10MOV AX,2572HINT 21HMOV DX,OFFSET INT3MOV AX,250BHINT 21HIN AL,21HAND AL,0F3HOUT 21H,AL;采用间接修改法,设置中断向量;设置IRQ10对应的中断向量;采用间接修改法,设置中断向量;设置IRQ3对应的中断向量;读中断屏蔽寄存器,21H是该寄存器的端口号;开放中断,允许从片和IRQ3IN AL,0A1HAND AL,0FBHOUT 0A1H,AL MOV CX,10 STI;读中断屏蔽寄存器,0A1H是该寄存器

8、的端口;开放中断IRQ10;记中断循环次数为10次WAIT: JMP WAITINT10: CLI;中断服务程序PUSHADPUSHFDMOV CX,10;记中断循环次数为10次NEXT10_1:MOV DX,31HMOV AH,02H;输出DLINT 21HMOV DX,30HMOV AH,02H;输出DLINT 21HMOV DX,20H;发出EOI结束中断到PC内主片的地址20HMOV AH,02H输出DL,3INT 21HCALL DELAY1等待LOOP NEXT10_1MOV DX,0DHMOV AH,02H输出DL, INT 21HMOV DX,0AH发出EOI结束中断到PC内从

9、片占用的是0A0H端口MOV AH,02H;输出DL,发生中断后输出10INT 21HMOV AL,20H;将中断屏蔽字送到中断屏蔽寄存器OUT 0A0H,AL;从片OUT 20H,AL;主片POPFD;关中断,出栈,返回POPADSTIIRETINT3: CLI;中断服务程序PUSHADPUSHFDMOV CX,10NEXT3_1:MOV DX,33HMOV AH,02HINT 21HMOV DX,20HMOV AH,02HINT 21HMOV DX,0DHMOV AH,02HINT 21HMOV DX,0AHMOV AH,02HINT 21H;记中断循环次数为10次;输出DL;发出EOI结

10、束中断到PC内主片的地址20H 输出DL,3CALL DELAY1;等待LOOP NEXT3_1输出DL, 发出EOI结束中断到PC内从片占用的是0A0H端口;发生中断输出DL,10MOV AL,20HOUT 20H,ALOUT 0A0H,ALPOPFDPOPADSTIIRETDELAY1 PROCPUSHADPUSHFDMOV CX,0FHDELAY_LOOP1:MOV BX,0FFFFHDELAY_LOOP2:DEC BXNOPJNZ DELAY_LOOP2LOOP DELAY_LOOP1 POPFD POPAD;将中断屏蔽字送到中断屏蔽寄存器;出栈,关中断,返回;控制等待部分RETDEL

11、AY1 ENDPCODE ENDSEND START3. 实验1-3:扩展多中断应用实验调用程序源码文件8259-3.asm,在程序源代码中划横线的位置,请按照所学8259工作原理填写 并验证,然后将所填内容写在实验报告中,并分析所填数据的形成原理。屏幕截图:程序代码及与案例说明:;*;8259中断查询方式应用实验;请根据所学原理推断横线处需填写的源代码I8259_1EQU2B0H;8259的ICW1端口地址I8259_2EQU2B1H;8259的ICW2端口地址I8259_3EQU2B1H;8259的ICW3端口地址,ICW3, ICW4, OCW1都写入奇地址中I8259_4EQU2B1H

12、;8259的ICW4端口地址O8259_1EQU2B1H;8259的OCW1端口地址O8259_2EQU2B0H;8259的OCW2端口地址,OCW2, OCW3写入偶地址O8259_3EQU2B0H;8259的OCW3端口地址DATA SEGMENTMES1 DB YOU CAN PLAY A KEY ON THE KEYBOARD!,0DH, 0AH, 24HMES2 DD MES1MESS1 DB HELLO! THIS IS INTERRUPT*0 *!,0DH,0AH,$MESS2 DB HELLO! THIS IS INTERRUPT *1*!,0DH,0AH,$MESS3 DB

13、HELLO! THIS IS INTERRUPT *2*!,0DH,0AH,$MESS4 DB HELLO! THIS IS INTERRUPT *3*!,0DH,0AH,$MESS5 DB HELLO! THIS IS INTERRUPT *4*!,0DH,0AH,$MESS6 DB HELLO! THIS IS INTERRUPT *5*!,0DH,0AH,$MESS7 DB HELLO! THIS IS INTERRUPT *6*!,0DH,0AH,$MESS8 DB HELLO! THIS IS INTERRUPT *7*!,0DH,0AH,$DATA ENDSSTACKS SEGME

14、NTDB 100 DUP(?)STACKS ENDSSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKS, ES:DATA .386START: MOV AX,DATAMOV DS, AXMOV ES, AXMOV AX, STACKS;初始化8259的ICW1;边沿触发、单片8259、需要ICW4,查表得到控制字MOV SS, AXMOV DX, I8259_1MOV AL, 13H OUT DX,AL;初始化8259的中断屏蔽操作命令字;打开屏蔽位,将全部屏蔽位打

15、开MOV DX,I8259_2MOV AL,0B0HOUT DX,ALMOV AL,03HOUT DX,ALMOV DX, O8259_1MOV AL, 000H OUT DX,AL;初始化8259的ICW2INT 16HJNZ QUIT;有按键则退出MOV DX,O8259_3;向8259发送查询命令MOV AL,6CHOUT DX,AL;01101100IN AL,DX;读出查询字TEST AL,80H;判断中断是否已响应,响应后对应位置0JZ QUERYAND AL,07HCMP AL,00H;没有响应则继续查询JE IR0ISRCMP AL,01H;若为IR0请求,跳到IR0处理程序J

16、E IR1ISRCMP AL,02H;若为IR1请求,跳到IR1处理程序JE IR2ISRCMP AL,03H;若为IR2请求,跳到IR2处理程序JE IR3ISRCMP AL,04H;若为IR3请求,跳到IR3处理程序JE IR4ISRCMP AL,05H;若为IR4请求,跳到IR4处理程序JE IR5ISRCMP AL,06H;若为IR5请求,跳到IR5处理程序JE IR6ISRCMP AL,07H;若为IR6请求,跳到IR6处理程序JE IR7ISRJMP QUERYMOV AX,DATAMOV DS,AX;若为IR7请求,跳到IR7处理程序MOV DX,OFFSET MESS1MOV

17、AH,09INT 21HJMP EOIMOV AX,DATAMOV DS,AX;显示提示信息MOV DX,OFFSET MESS2MOV AH,09INT 21H*;显示提示信息IR0ISR:IR1ISR:MOV AH,1;判断是否有按键按下QUERY:IR2ISR:JMP EOIMOV AX,DATA;显示提示信息;显示提示信息;显示提示信息;显示提示信息;显示提示信息;显示提示信息;向8259发送中断结束命令 ;00100000;结束程序退出MOV DS,AXMOV DX,OFFSET MESS3MOV AH,09INT 21HJMP EOIIR3ISR: MOV AX,DATAMOV D

18、S,AXMOV DX,OFFSET MESS4MOV AH,09INT 21HJMP EOIIR4ISR: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESS5MOV AH,09INT 21HJMP EOIIR5ISR: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESS6MOV AH,09INT 21HJMP EOIIR6ISR: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESS7MOV AH,09INT 21HJMP EOIIR7ISR: MOV AX,DATAMOV DS,AXMOV DX,OFFSET ME

19、SS8MOV AH,09INT 21HEOI:MOV DX,O8259_2MOV AL, 20HOUT DX, ALJMP QUERYQUIT:MOV AX,4C00HINT 21HCODE ENDSEND START实验二8254定时/计数器应用实验一、实验目的1. 掌握8254的工作方式及应用编程。2. 掌握8254典型应用电路的接法。二、实验内容1. 计数应用实验。应用8254的计数功能,用开关模拟计数,使每当按照计数初值的次数 按动单次脉冲后,观察LED的变化。2. 自设计实验。参考实验一的程序,编写程序,以1 MHz为时钟源,应用8254的定时功 能,将其分频为1Hz。以LED灯作为

20、输出显示。三、实验步骤1. 实验2-1:计数器应用实验程序代码填补:;8254控制寄存器端口地址;8254计数器0端口地址IO8254_MODE EQU283HIO8254_COUNT0 EQU280HSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODE;初始化8254工作方式;计数器0,方式3,填入控制字:00010110;装入计数初值;初值为4,04H;返回到DOSSTART: MOV DX, IO8254_MODEMOV AL,16HOUT DX, ALMOV DX, IO8254_COUNT0MOV

21、 AL,04HOUT DX,ALMOV AX,4C00HINT 21HCODE ENDSEND START此时按两次后灯亮,再按两次后灯灭。如果令计数器0工作在方式0,其实验现象为:按五次后灯变亮,之后不在熄灭。2.实验2-2 :自设计实验实验要求:参考实验一的程序和接线,自行设计接线图以及程序代码,实现,以1MHz为时钟源,应用8254 的定时功能,将其分频为1Hz。以LED灯作为输出显示。使用计数器0和计数器1两个计数器,设置其均工作于方式3,计数初值为1000,通过两个计 数器级联,1000*1000=10八6达到分频的目的。程序代码如下:;8254控制寄存器端口地址;8254计数器0端

22、口地址;8254计数器1端口地址IO8254_MODE EQU 283HIO8254_COUNT0 EQU 280HIO8254_COUNT1 EQU 281HSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX, IO8254_MODE;初始化 8254 工作方式MOV AL,37H;计数器 0,方式 300110111MOV DX,IO8254_COUNT0;装入计数初值MOV AX,03E8H ;1000D=0000 0011 1110 1000B=03E8HMOV AL,0

23、3HOUT DX,ALMOV AL,AHOUT DX,ALMOV DX, IO8254_MODE;初始化 8254 工作方式MOV AL,76H;计数器 1,方式 301110110OUT DX, ALMOV DX,IO8254_COUNT1;装入计数初值MOV AX,03E8H ;1000D=0000 0011 1110 1000B=03E8HMOV AL,03HOUT DX,ALMOV AL,AHOUT DX,ALMOV AX,4C00H;返回到 DOSINT 21HCODE ENDSEND START接线图如下:GATE】GATEDCLKOOUTO系统总线单元实验三8255并口控制器应用

24、实验一、实验目的1. 掌握8255的工作方式及应用编程。2. 掌握8255典型应用电路的接法。二、实验内容1. 基本输入输出实验。编写程序,自行设定A、B、C三个口中某一个口为输入,某一个为 输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。2. 自设计实验。自行设计能实现A 口工作在方式一输入,8口工作在方式一输出的电路并 完成程序的编制和在实验箱上的验证,要求,利用控制信号控制数据的输入。三、实验步骤1. 实验3-1:可编程并行接口 8255方式0应用实验编写程序,自行设定A、B、C三个口中某一个口为输入,某一个为输出,完成拨动开关到数据 灯的数据传输。要求只要开

25、关拨动,数据灯的显示就改变。根据原理补全代码中缺失的部分, 根据自己的设计,补全接线图,并将代码和对应的接线图写在实验报告中。说明:运行源程序8255.asm,按接线图接线,实现并行数据传输功能。设定B 口为输入,接到开关上,A 口为输出接到LED灯上。程序源代码:IO8255_MODE EQU 28BHIO8255_AEQU 288HIO8255_BEQU 289HIO8255_CEQU 28AHCODE SEGMENTASSUME CS: CODESTART: MOV DX, IO8255_MODEMOV AL, 90HOUT DX, ALINOUT: MOV DX, IO8255_BIN

26、 AL,DXMOV DX,IO8255_AOUT DX,ALMOV DL,0FFHMOV AH, 06HINT 21HJZ INOUTMOV AH,4CHINT 21H;8255初始化;B 口输入,A 口输出 10010000;读入数据;输出数据;判断是否有按键;若无,则继续;否则返回CODE ENDSEND START接线图如下:系统总线单元2. 实验3-2:自设计试验自行设计完成本实验,要求,8255A 口工作在方式一输入,B 口工作在方式一输出,利用方式 一的控制信号,使数据从输入到输出人为可控。在实验报告中画出接线图,并说明设计的原理,给出对应的程序代码。实现方案:方式一的控制信号即为

27、PC2和PC4,将PC2和PC4分别接到高低电平,控制A输入 观察B输出的改变。CODE SEGMENTASSUME CS: CODESTART: MOV DX, IO8255_MODEMOV AL, 0B4HOUT DX, ALINOUT: MOV DX, IO8255_AIN AL,DXMOV DX,IO8255_BOUT DX,ALMOV DL,0FFHMOV AH, 06HINT 21HJZ INOUTMOV AH,4CHINT 21H;8255初始化;A 口方式一输入,B 口方式一输出,10110100;读入数据;输出数据;判断是否有按键;若无,则继续;否则返回程序源代码:IO825

28、5_MODEEQU28BHIO8255_AEQU288HIO8255_BEQU289HIO8255_CEQU28AHCODE ENDSEND START实验结果:只WPC4和PC2均为低电平时,改变A的输入B才会有变化。系统总线单元实验四8251串口控制器应用实验一、实验目的掌握8251的工作方式及应用。(2)学习PC机串口的操作方法。二、实验内容与PC串口通讯应用实验。编写程序完成PC机串口与实验装置串口的通讯,由PC机串口1发 数,实验装置串口接收。三、实验步骤从键盘输入一个字符,将其ASCI I码加1后发送出去,再接收回来在屏幕上显示,实现自发自收。 说明:1)运行源程序8251.asm

29、,按接线图接线,实现串行数据传输功能。2)图示电路8251的控制口地址为2B9H,数据口地址为2B8H。3)8254计数器的计数初值二时钟频率/(波特率X波特率因子),这里的时钟频率接1MHz,波特率 若选1200,波特率因子若选16,则计数器初值为52。4)收发采用查询方式。屏幕显示结果截图:实验六键盘扫描及显示实验(综合)一、实验目的1. 学习按键扫描的原理及电路接法。2. 掌握利用8255完成按键扫描及显示。二、实验内容1.连接8255与键盘扫描单元,验证按键扫描功能,使得从痰4键盘上按下的键能够在数码 管上一一对应显示。三、实验步骤验证程序,使得在小键盘上每按一个健,4位数码管上显示出相应字符,它们的对应关系如下:小键盘一显示0 -0C 一C11DD22E E33FF4 一455667 78899A一AB -B说明:打开源程序keyscreen.asm,按接线图接线,运行源程序,实现键盘显示功能。输入:A695FBB7DC8截图如下:当输入口时运行结束,截图如下:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号