版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口技术实验报告学院:计算机与通信工程学院专业:计算机科学与技术班级:学号:姓名:实验一8259中断控制器应用实验一、实验目1.掌握PC机中断解决系统基本原理。2.掌握可编程中断控制器8259应用编程办法。二、实验内容1.PC机内中断实验。使用单次脉冲模仿中断产生。验证中断解决程序,在显示屏屏幕上显示一行预设定字符串。2.PC机内中断嵌套实验。使用单次脉冲模仿两个中断源中断产生,填写中断解决程序,体会中断嵌套过程。3.扩展多中断源查询方式应用实验。运用实验平台上8259控制器作为中断扩展源,编写程序对8259控制器中断祈求进行解决。三、实验环节1.实验1-1:PC机内中断应用实验(1)按接线图连好接线,调用程序源代码8259-1.asm,观测实验现象,屏幕显示成果截图如下:自设计实验。变化接线方式,将单次脉冲连到USB核心板上IRQ10插孔上,参照本实验代码,编程实现IRQ10中断。(注意:考虑PC机内中断级联方式,参看前面原理阐明),代码如下:DATASEGMENTMESSDB'IRQ10',0DH,0AH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,CS MOVDS,AXMOVDX,OFFSETINT10MOVAX,2572H;设立IRQ10相应中断向量INT21HINAL,21H ;读取中断屏蔽寄存器ANDAL,0F3H;开放IRQ3中断和从片OUT21H,ALINAL,0A1H ;从片中断屏蔽寄存器ANDAL,0FBH;开放IRQ10中断OUT0A1H,ALMOVCX,10STIWAIT:JMPWAITINT10:MOVAX,DATA;中断服务程序 MOVDS,AX MOVDX,OFFSETMESS MOVAH,09 ;在屏幕上显示每次中断提示信息 INT21H MOVAL,20H;发出EOI结束中断到PC内主片地址20H OUT20H,AL LOOPNEXT INAL,21H;读中断屏蔽寄存器,获取中断屏蔽字 ORAL,08H ;关闭IRQ3中断 OUT21H,AL;将中断屏蔽字送到中断屏蔽寄存器 STI;置中断标志位 MOVAH,4CH;返回DOS INT21HNEXT:IRET;中断返回CODEENDS ENDSTART调用程序代码,观测实验现象,屏幕显示截图如下:2.实验1-2:PC机内中断嵌套实验实验规定:(1)按接线图连好接线,调用程序源代码8259-2.asm,做如下操作,观测屏幕显示成果并分析产生该现象因素:A.按下连接IRQ单次脉冲按键,屏幕上会显示10个3,在屏幕上10次显示未结束之前,按下连接IRQ10单次脉冲按键,观测现象;按下IRQ时屏幕上会显示10个3,此时按下IRQ10,会直接在屏幕上显示10个10,然后结束后再显示剩余3B.按下连接IRQ10单次脉冲按键,屏幕上会显示10个10,在屏幕上10次显示未结束之前,按下连接IRQ3单次脉冲按键,观测现象。在屏幕上显示10个10过程中按下IRQ无反映,等到10个10所有显示完毕后才再显示10个3浮现这种现象因素是IRQ10中断优先级高于IRQ3屏幕截图:程序所有代码及注释:DATASEGMENTDATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATASTART:.386CLIMOVAX,CSMOVDS,AX MOVDX,OFFSETINT10;采用间接修改法,设立中断向量MOVAX,2572H ;设立IRQ10相应中断向量INT21H MOVDX,OFFSETINT3;采用间接修改法,设立中断向量MOVAX,250BH ;设立IRQ3相应中断向量INT21HINAL,21H ;读中断屏蔽寄存器,21H是该寄存器端标语ANDAL,0F3H;开放中断,容许从片和IRQ3OUT21H,ALINAL,0A1H ;读中断屏蔽寄存器,0A1H是该寄存器端口ANDAL,0FBH;开放中断IRQ10OUT0A1H,ALMOVCX,10 ;记中断循环次数为10次STIWAIT:JMPWAITINT10:CLI ;中断服务程序PUSHADPUSHFDMOVCX,10 ;记中断循环次数为10次NEXT10_1:MOVDX,31HMOVAH,02H;输出DLINT21HMOVDX,30HMOVAH,02H;输出DLINT21HMOVDX,20H ;发出EOI结束中断到PC内主片地址20HMOVAH,02H;输出DL,3INT21H CALLDELAY1 ;等待LOOPNEXT10_1 MOVDX,0DHMOVAH,02H;输出DL,‘’INT21HMOVDX,0AH ;发出EOI结束中断到PC内从片占用是0A0H端口MOVAH,02H;输出DL,发生中断后输出10INT21HMOVAL,20H ;将中断屏蔽字送到中断屏蔽寄存器OUT0A0H,AL ;从片OUT20H,AL ;主片POPFD ;关中断,出栈,返回POPADSTIIRETINT3:CLI ;中断服务程序PUSHADPUSHFDMOVCX,10 ;记中断循环次数为10次NEXT3_1:MOVDX,33HMOVAH,02H;输出DLINT21HMOVDX,20H ;发出EOI结束中断到PC内主片地址20HMOVAH,02H;输出DL,3INT21HCALLDELAY1 ;等待LOOPNEXT3_1 MOVDX,0DH MOVAH,02H;输出DL,‘’INT21HMOVDX,0AH ;发出EOI结束中断到PC内从片占用是0A0H端口MOVAH,02H;发生中断输出DL,10INT21HMOVAL,20HOUT20H,AL ;将中断屏蔽字送到中断屏蔽寄存器OUT0A0H,ALPOPFD ;出栈,关中断,返回POPADSTIIRETDELAY1PROC ;控制等待某些PUSHADPUSHFDMOVCX,0FHDELAY_LOOP1:MOVBX,0FFFFHDELAY_LOOP2:DECBXNOPJNZDELAY_LOOP2LOOPDELAY_LOOP1POPFDPOPADRETDELAY1ENDPCODEENDSENDSTART3.实验1-3:扩展多中断应用实验调用程序源码文献8259-3.asm,在程序源代码中划横线位置,请按照所学8259工作原理填写并验证,然后将所填内容写在实验报告中,并分析所填数据形成原理。屏幕截图:程序代码及与案例阐明:;*****************************************************************;8259中断查询方式应用实验;请依照所学原理推断横线处需填写源代码;*****************************************************************I8259_1EQU2B0H;8259ICW1端口地址I8259_2EQU2B1H;8259ICW2端口地址I8259_3EQU2B1H;8259ICW3端口地址,ICW3,ICW4,OCW1都写入奇地址中I8259_4EQU2B1H;8259ICW4端口地址O8259_1EQU2B1H;8259OCW1端口地址O8259_2EQU2B0H;8259OCW2端口地址,OCW2,OCW3写入偶地址O8259_3EQU2B0H;8259OCW3端口地址DATASEGMENT MES1DB'YOUCANPLAYAKEYONTHEKEYBOARD!',0DH,0AH,24HMES2DDMES1 MESS1DB'HELLO!THISISINTERRUPT*0*!',0DH,0AH,'$'MESS2DB'HELLO!THISISINTERRUPT*1*!',0DH,0AH,'$'MESS3DB'HELLO!THISISINTERRUPT*2*!',0DH,0AH,'$'MESS4DB'HELLO!THISISINTERRUPT*3*!',0DH,0AH,'$'MESS5DB'HELLO!THISISINTERRUPT*4*!',0DH,0AH,'$'MESS6DB'HELLO!THISISINTERRUPT*5*!',0DH,0AH,'$'MESS7DB'HELLO!THISISINTERRUPT*6*!',0DH,0AH,'$'MESS8DB'HELLO!THISISINTERRUPT*7*!',0DH,0AH,'$'DATAENDSSTACKSSEGMENT DB100DUP(?)STACKSENDSSTACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKS,ES:DATA.386START:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKSMOVSS,AXMOVDX,I8259_1;初始化8259ICW1MOVAL,13H;边沿触发、单片8259、需要ICW4,查表得到控制字OUTDX,ALMOVDX,I8259_2;初始化8259ICW2MOVAL,0B0HOUTDX,ALMOVAL,03HOUTDX,ALMOVDX,O8259_1;初始化8259中断屏蔽操作命令字MOVAL,000H;打开屏蔽位,将所有屏蔽位打开OUTDX,ALQUERY:MOVAH,1;判断与否有按键按下INT16HJNZQUIT;有按键则退出MOVDX,O8259_3;向8259发送查询命令MOVAL,6CH;01101100OUTDX,ALINAL,DX;读出查询字TESTAL,80H;判断中断与否已响应,响应后相应位置0JZQUERY;没有响应则继续查询ANDAL,07HCMPAL,00HJEIR0ISR;若为IR0祈求,跳到IR0解决程序CMPAL,01HJEIR1ISR;若为IR1祈求,跳到IR1解决程序CMPAL,02HJEIR2ISR;若为IR2祈求,跳到IR2解决程序CMPAL,03HJEIR3ISR;若为IR3祈求,跳到IR3解决程序CMPAL,04HJEIR4ISR;若为IR4祈求,跳到IR4解决程序CMPAL,05HJEIR5ISR;若为IR5祈求,跳到IR5解决程序CMPAL,06HJEIR6ISR;若为IR6祈求,跳到IR6解决程序CMPAL,07HJEIR7ISR;若为IR7祈求,跳到IR7解决程序JMPQUERYIR0ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS1;显示提示信息MOVAH,09INT21HJMPEOIIR1ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS2;显示提示信息MOVAH,09INT21HJMPEOIIR2ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS3;显示提示信息MOVAH,09INT21HJMPEOIIR3ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS4;显示提示信息MOVAH,09INT21HJMPEOIIR4ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS5;显示提示信息MOVAH,09INT21HJMPEOIIR5ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS6;显示提示信息MOVAH,09INT21HJMPEOIIR6ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS7;显示提示信息MOVAH,09INT21HJMPEOIIR7ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS8;显示提示信息MOVAH,09INT21HEOI:MOVDX,O8259_2;向8259发送中断结束命令MOVAL,20H;00100000OUTDX,ALJMPQUERYQUIT:MOVAX,4C00H;结束程序退出INT21HCODEENDSENDSTART实验二8254定期/计数器应用实验一、实验目1.掌握8254工作方式及应用编程。2.掌握8254典型应用电路接法。二、实验内容1.计数应用实验。应用8254计数功能,用开关模仿计数,使每当按照计数初值次数按动单次脉冲后,观测LED变化。2.自设计实验。参照实验一程序,编写程序,以1MHz为时钟源,应用8254定期功能,将其分频为1Hz。以LED灯作为输出显示。三、实验环节1.实验2-1:计数器应用实验程序代码弥补:IO8254_MODE EQU283H;8254控制寄存器端口地址IO8254_COUNT0 EQU280H;8254计数器0端口地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,IO8254_MODE;初始化8254工作方式MOVAL,16H;计数器0,方式3,填入控制字:00010110OUTDX,ALMOVDX,IO8254_COUNT0;装入计数初值MOVAL,04H;初值为4,04HOUTDX,ALMOVAX,4C00H;返回到DOSINT21HCODEENDSENDSTART此时按两次后灯亮,再按两次后灯灭。如果令计数器0工作在方式0,其实验现象为:按五次后灯变亮,之后不在熄灭。2.实验2-2:自设计实验实验规定:参照实验一程序和接线,自行设计接线图以及程序代码,实现,以1MHz为时钟源,应用8254定期功能,将其分频为1Hz。以LED灯作为输出显示。使用计数器0和计数器1两个计数器,设立其均工作于方式3,计数初值为1000,通过两个计数器级联,1000*1000=10^6达到分频目。程序代码如下:IO8254_MODE EQU283H;8254控制寄存器端口地址IO8254_COUNT0 EQU280H;8254计数器0端口地址IO8254_COUNT1 EQU281H;8254计数器1端口地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,IO8254_MODE;初始化8254工作方式MOVAL,37H;计数器0,方式300110111MOVDX,IO8254_COUNT0;装入计数初值 MOVAX,03E8H ;1000D=0000001111101000B=03E8H MOVAL,03H OUTDX,AL MOVAL,AH OUTDX,AL MOVDX,IO8254_MODE;初始化8254工作方式 MOVAL,76H;计数器1,方式301110110 OUTDX,AL MOVDX,IO8254_COUNT1;装入计数初值 MOVAX,03E8H ;1000D=0000001111101000B=03E8H MOVAL,03H OUTDX,AL MOVAL,AH OUTDX,AL MOVAX,4C00H;返回到DOS INT21HCODEENDSENDSTART接线图如下:实验三8255并口控制器应用实验一、实验目1.掌握8255工作方式及应用编程。2.掌握8255典型应用电路接法。二、实验内容1.基本输入输出实验。编写程序,自行设定A、B、C三个口中某一种口为输入,某一种为输出,完毕拨动开关到数据灯数据传播。规定只要开关拨动,数据灯显示就变化。2.自设计实验。自行设计能实现A口工作在方式一输入,B口工作在方式一输出电路并完毕程序编制和在实验箱上验证,规定,运用控制信号控制数据输入。三、实验环节1.实验3-1:可编程并行接口8255方式0应用实验编写程序,自行设定A、B、C三个口中某一种口为输入,某一种为输出,完毕拨动开关到数据灯数据传播。规定只要开关拨动,数据灯显示就变化。依照原理补全代码中缺失某些,依照自己设计,补全接线图,并将代码和相应接线图写在实验报告中。阐明:运营源程序8255.asm,按接线图接线,实现并行数据传播功能。设定B口为输入,接到开关上,A口为输出接到LED灯上。程序源代码:IO8255_MODEEQU28BHIO8255_AEQU288HIO8255_BEQU289HIO8255_CEQU28AHCODESEGMENT ASSUMECS:CODESTART:MOVDX,IO8255_MODE ;8255初始化 MOVAL,90H ;B口输入,A口输出10010000 OUTDX,ALINOUT:MOVDX,IO8255_B;读入数据 INAL,DX MOVDX,IO8255_A;输出数据OUTDX,AL MOVDL,0FFH;判断与否有按键 MOVAH,06H INT21H JZINOUT ;若无,则继续 MOVAH,4CH;否则返回 INT21HCODEENDS ENDSTART接线图如下:2.实验3-2:自设计实验自行设计完毕本实验,规定,8255A口工作在方式一输入,B口工作在方式一输出,运用方式一控制信号,使数据从输入到输出人为可控。在实验报告中画出接线图,并阐明设计原理,给出相应程序代码。实现方案:方式一控制信号即为PC2和PC4,将PC2和PC4分别接到高低电平,控制A输入,观测B输出变化。程序源代码:IO8255_MODEEQU28
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家长如何用报告指导孩子成长
- 2025年度马铃薯种薯产业人才培养与引进合同4篇
- 2025年度新型LED楼顶广告字定制与安装一体化服务合同4篇
- 2025版国际合作合同中的文化差异处理与国际法律适用4篇
- 二零二五年度医药健康产业高级管理人员聘用及研发创新协议3篇
- 2025年度领养儿童成长保障与服务协议4篇
- 2025-2030年中国鸡骨素行业十三五规划及投资风险评估报告
- 2025-2030年中国香料香精市场发展趋势及投资风险评估报告
- 2025-2030年中国防火板市场竞争格局展望及投资策略分析报告
- 2025-2030年中国轮圈行业市场业发展现状及前景趋势分析报告
- 大型活动联合承办协议
- 工程项目采购与供应链管理研究
- 2024年吉林高考语文试题及答案 (2) - 副本
- 拆除电缆线施工方案
- 搭竹架合同范本
- Neo4j介绍及实现原理
- 焊接材料-DIN-8555-标准
- 工程索赔真实案例范本
- 重症医学科运用PDCA循环降低ICU失禁性皮炎发生率品管圈QCC持续质量改进成果汇报
- 个人股权证明书
- 医院运送工作介绍
评论
0/150
提交评论