华北电力大学接口实验参考程序_第1页
华北电力大学接口实验参考程序_第2页
华北电力大学接口实验参考程序_第3页
华北电力大学接口实验参考程序_第4页
华北电力大学接口实验参考程序_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4.38259A中断控制实验表1中断类型码及中断向量地址主片中断类型码和中断向量地址IR6IR7中断序号中断类型码矢量地址说明IR0IR1IR2IR3IR4IR5(MIR6)(MIR7)08H09H0AH0BH0CH0DH0EH0FH0020H~0024H~0028H~002CH~0030H~0034H~0038H~003CH~0023H0027H002BH002FH0033H0037H003BH003FH未开放未开放未开放未开放串口未开放可用可用从片中断类型码和中断向量地址IR1中断序号中断类型码矢量地址说明IR0IR2IR3IR4IR5IR6IR7(SIR1)30H31H32H33H34H35H36H37H00C0H~00C4H~00C8H~00CCH~00C0H~00C4H~00C8H~00CCH~00C3H00C7H00CBH00CFH00C3H00C7H00CBH00CFH开放4.3.31.8259单次实验(1)实验步骤:单次脉冲单元系统总线1)按图4-17所示连接实验线路2)编写实验程序,经编译、链接无误后装入系统。MIR7KK1+主82593)运行程序,重复按单次脉冲开关KK1+,记录实验结果或看到的现象。(2)实验参考程序清单:SSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODESTART:CLIPUSHDSMOVAX,0000HMOVDS,AXMOVAX,OFFSETMIR7MOVSI,003CH;取中断入口地址;中断矢量地址MOV[SI],AX;填IRQ7的偏移矢量;段地址MOVAX,SEGMIR7MOVSI,003EHPOPDS;初始化主片8259MOVAL,11HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,04H;ICW1;ICW2OUT21H,ALMOVAL,01HOUT21H,AL;ICW3;ICW4MOVAL,7FHOUT21H,ALSTI;主8259OCW1AA1:NOPJMPAA1MIR7:CALLDELAYMOVAX,0137HINT10H;显示字符7MOVAX,0120HINT10HMOVAL,20HOUT20H,ALIRET;中断结束命令DELAY:PUSHCXMOVCX,0F00HAA0:CODEPUSHAXPOPAXLOOPAA0POPCXRETENDSENDSTART4)改变接线方式,将KK1+接入MIR6,修改程序,重复按单次脉冲开关KK1+,使显示屏显示字符”6”。记录实验结果或看到的现象。SSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODESTART:CLIPUSHDSMOVAX,0000HMOVDS,AXMOVAX,OFFSETMIR6;取中断入口地址MOVSI,0038HMOV[SI],AXMOVAX,SEGMIR6MOVSI,003AHPOPDS;中断矢量地址;填IRQ7的偏移矢量;段地址;初始化主片8259MOVAL,11HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,04HOUT21H,ALMOVAL,01HOUT21H,AL;ICW1;ICW2;ICW3;ICW4MOVAL,0BFHOUT21H,ALSTI;主8259OCW1AA1:NOPJMPAA1MIR6:CALLDELAYMOVAX,0136HINT10H;显示字符7MOVAX,0120HINT10HMOVAL,20HOUT20H,AL;中断结束命令

IRETDELAY:PUSHCXMOVCX,0F00HPUSHAXAA0:POPAXLOOPAA0POPCXRETCODEENDSENDSTART思考题:分析中断响应过程,主程序如何调用中断服务程序的2.8259级联实验1)按图4-17所示连接实验线路2)编写实验程序,经编译3)运行程序,单次脉冲开关KK1+,记录实验结果或看到的现象。、链接无误后装入系统。单次脉冲单元系统总线MIR7KK1+KK2+重复按主8259SIR1从82594)实验参考程序清单:SSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODESTART:PUSHDSMOVAX,0000HMOVDS,AXMOVAX,OFFSETMIR7;取中断入口地址MOVSI,003CHMOV[SI],AXMOVAX,SEGMIR7MOVSI,003EH;中断矢量地址;填IRQ7的偏移矢量;段地址MOV[SI],AXMOVAX,OFFSETSIR1MOVSI,00C4HMOV[SI],AXMOVAX,SEGSIR1MOVSI,00C6HMOV[SI],AXCLI;填IRQ7的段地址矢量POPDS;初始化主片8259MOVAL,11HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,04HOUT21H,ALMOVAL,01HOUT21H,AL;ICW1;ICW2;ICW3;ICW4;初始化从片8259MOVAL,11HOUT0A0H,ALMOVAL,30HOUT0A1H,ALMOVAL,02HOUT0A1H,ALMOVAL,01HOUT0A1H,ALMOVAL,0FDHOUT0A1H,ALMOVAL,6BH;ICW1;ICW2;ICW3;ICW4;OCW1=11111101OUT21H,AL;主8259OCW1STIAA1:NOPJMPAA1MIR7:CALLDELAYMOVAX,014DHINT10H;MMOVAX,0137HINT10H;显示字符7MOVAX,0120HINT10HMOVAL,20HOUT20H,ALIRET;中断结束命令SIR1:CALLDELAYMOVAX,0153HINT10H;SMOVAX,0131HINT10HMOVAX,0120HINT10H;显示字符1MOVAL,20HOUT0A0H,ALOUT20H,ALIRETDELAY:PUSHCXMOVCX,0F00HAA0:PUSHAXPOPAXLOOPAA0POPCXRETCODEENDSENDSTART实验现象分析:M7S1:MIR7中断请求先到S1M7:SIR1中断请求先送到或MIR7与SIR1中断请求信号同时到,但SIR1优先级高,先响应SIR1中断请求MS17:M7S1:MIR7中断请求先到,但未执行完时,SIR1中断请求送到,其优先级高,打断MIR7中断服务程序3.8259综合实验SSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODESTART:CLIPUSHDSMOVAX,0000HMOVDS,AXMOVAX,OFFSETMIR7;取中断入口地址MOVSI,003CHMOV[SI],AXMOVAX,SEGMIR7MOVSI,003EHPOPDS;中断矢量地址;填IRQ7的偏移矢量;段地址;初始化主片8259MOVAL,11HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,04H;ICW1;ICW2

OUT21H,ALMOVAL,01HOUT21H,AL;ICW3;ICW4MOVAL,7FHOUT21H,ALSTI;主8259OCW1MOVSI,10MOVCX,10;显示字符个数‘0’,填入字符0的编码MOVAH,01H;显示一个字符10送入CXAA1:MOVBL,30H;显示字符A1:MOVAL,BLINT10HINCBL;显示下一个字符PUSHCXMOVCX,0FFFFHA2:LOOPA2;延时POPCXDECCXJNZA1JMPAA1;循环显示0~9MIR7:CALLDELAYMOVAX,014FHINT10H;显示字符OMOVAX,014BHINT10H;显示字符KMOVAL,20HOUT20H,ALDECSI;中断结束命令JNZAA2CLIMOVAL,0FFHOUT21H,ALAA2:IRETDELAY:PUSHCXMOVCX,0F00HAA0:PUSHAXPOPAXLOOPAA0POPCXRETCODEENDSENDSTART

4.48254定时/计数器应用实验1.计数应用实验编写程序,用开关模拟事件,用8254的计数功能进行计数。将8254的计数器0设置为方式0,计数初值为十进制数3,单次脉冲KK1+接入CLK0作为输入,OUT0连接MIR7,每当KK1+按动4次后产生中断请求,在屏幕上显示一个字符“M”。实验步骤:(1)实验接线如图4-21所示;(2)编写实验程序,经编译、链接无误后装入系统;(3)运行程序,按动KK1+产生单次脉冲,观察实验现象;(4)改变计数值,验证8254的计数功能。4.7KXD0D0D7....VCC..GATE0CLK0OUT0XD7KK1+系统总线XA1XA2A0A1单次脉冲单元IOW#IOR#WRRD8254单元IOY3MIR7CS2.修改内容1—计数应用实验程序,完成按动开关3次后产生中断,屏幕显示“M”。3.修改内容1—计数应用实验程序,要求屏幕显示第几次中断中断?参考程序:A8254EQU06C0HB8254EQU06C2HC8254EQU06C4HCON8254EQU06C6HSSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODE,SS:SSTACKSTART:PUSHDSMOVAX,0000HMOVDS,AXMOVAX,OFFSETIRQ7;取中断入口地址MOVSI,003CHMOV[SI],AXMOVAX,CS;中断矢量地址;填IRQ7的偏移矢量;段地址MOVSI,003EHMOV[SI],AXCLI;填IRQ7的段地址矢量POPDS;初始化主片8259MOVAL,11HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,04HOUT21H,ALMOVAL,01HOUT21H,ALMOVAL,6FHOUT21H,AL;8254;ICW1;ICW2;ICW3;ICW4;OCW1MOVDX,CON8254MOVAL,10HOUTDX,ALMOVDX,A8254MOVAL,04HOUTDX,ALSTI;计数器0,方式0AA1:JMPAA1IRQ7:MOVDX,A8254MOVAL,04HOUTDX,ALMOVAX,014DHINT10H;显示字符MMOVAX,0120HINT10HMOVAL,20HOUT20H,ALIRETENDS;中断结束命令CODEENDSTART2定时应用实验1)编写程序,应用8254的定时功能,将8254的计数器0设置为方式3,用信号源1MHz作为CLK0时钟,OUT0输出周期为60ms的方波接到发光二极管上,运行程序,观察发光二极管状态。(时钟源和GATE信号实验箱内部已经接好线)发光二极管点亮实验程序清单A8254EQU06C0HB8254EQU06C2HC8254EQU06C4HCON8254EQU06C6HSSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,CON8254;8254MOVAL,36HOUTDX,AL;计数器0,方式3MOVDX,A8254MOVAL,0E8HOUTDX,ALMOVAL,03HOUTDX,ALAA1:JMPAA1CODEENDS

ENDSTART1)编写程序,应用8254的定时功能,实现一个秒表计时并在屏幕上显示。(时钟源和GATE信号实验箱内部已经接好线)A8254EQU06C0HB8254EQU06C2HC8254EQU06C4HCON8254EQU06C6HSSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODESTART:CLIPUSHDSMOVAX,0000HMOVDS,AXMOVAX,OFFSETMIR7MOVSI,003CHMOV[SI],AXMOVAX,SEGMIR7MOVSI,003EHPOPDS;取中断入口地址;中断矢量地址;填IRQ7的偏移矢量;段地址;初始化主片8259MOVAL,11HOUT20H,ALMOVAL,08HOUT21H,ALMOVAL,04HOUT21H,ALMOVAL,01HOUT21H,AL;ICW1;ICW2;ICW3;ICW4MOVAL,7FHOUT21H,ALSTI;主8259OCW1MOVDX,CON8254;8254MOVAL,36HOUTDX,AL;计数器0,方式3MOVDX,A8254MOVAL,0E8HOUTDX,ALMOVAL,03HOUTDX,ALMOVBL,30HMOVDX,CON8254;8254MOVAL,50HOUTDX,ALMOVDX,B8254MOVAL,9HNOP;计数器1,方式0,01010000AA1:JMPAA1MIR7:MOVDX,B8254MOVAL,9HCALLDELAYINCBLMOVAL,BLMOVAH,01HINT10H;显示字符1MOVAX,0120HINT10HMOVAL,20HOUT20H,ALIRET;中断结束命令

DELAY:PUSHCXMOVCX,0F00HPUSHAXAA0:POPAXLOOPAA0POPCXRETCODEENDSENDSTART1.基本输入输出实验。编写程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。接线图如下:XD0D0D7.....开关及.PA0K0......XD7系统总线PA7K7D0LEDXA1XA2A0A1显示单元PB0......IOW#IOR#WRRDPB7D78255单元IOY1CSSSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,0646HMOVAL,90HOUTDX,ALAA1:MOVDX,0640HINAL,DXCALLDELAYMOVDX,0642HOUTDX,ALJMPAA1DELAY:PUSHCXMOVCX,0F00HPUSHAXAA2:POPAXLOOPAA2POPCXRETCODEENDSENDSTART2.流水灯显示实验。编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论