微机原理实验5Word文件下载.docx
- 文档编号:20221939
- 上传时间:2023-01-20
- 格式:DOCX
- 页数:31
- 大小:67.32KB
微机原理实验5Word文件下载.docx
《微机原理实验5Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理实验5Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
从片
自动EOI
正常EOI
0DH
操作命令字OCW1~OCW3可根据需要随时进行设置,其命令字格式如下:
OCW1
置中断屏蔽位,0:
清除中断屏蔽位
OCW2
R
SL
EOI
L2
L1
L0
OCW3
00和01:
无意义
10:
撤销特殊屏蔽
11:
设定特殊屏蔽
P:
查询命令
读IRR
读ISR
其中对于OCW2命令字具体意义如下:
1L2~L0:
对应IRi的编码,取值从000~111
2R、SI、EOI组合编码
001
常规EOI命令
中断结束
011
特殊EOI命令
101
在常规EOI时循环
自动循环
100
在自动EOI时循环(置位)
000
在自动EOI时循环(复位)
111
在特殊EOI时循环
特殊循环
110
置优先权命令
010
无操作
2、系统中的8259A芯片
系统中的8259A芯片工作于单片方式,但可由用户扩展接成级联方式,线路如下所示。
图中的圈点表示此为排针形式引出脚。
8088
XD0
XD1
XD2
XD3
XD4
XD5
XD6
XD7
IOY1
XIOR
XIOW
XA0
INTR
INAQS1
D0IR0
D1IR1
D2IR2
D3IR2
D4IR2
D5IR2
D6IR2
D78259IR7
INT
INTASP/EN
CS
RDCAS0
WRCAS1
A0CAS2
IRQ0
IRQ1
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
CAS0
CAS1
CAS2
INTA
+5V
系统启动时,8259A被初始化,其初始化是通过系统中的初始化程序设置初始化命令字ICW来实现的。
系统初始化时,规定0#和4#中断源分别提供给实时时钟和与PC微机联机的串口通信使用,用户可以使用其余中断源。
在进入监控后,只有4#中断源处于开启状态,其他中断源都被屏蔽了。
中断矢量地址和中断号之间的关系如下表:
中断序号
2
3
4
5
6
7
功能调用
09H
0AH
0BH
0CH
0EH
0FH
矢量地址
-
23H
24H
27H
28H
2BH
2CH
2FH
30H
33H
34H
37H
38H
3BH
3CH
3FH
说明
时钟
可用
串口2
串口1
3、接口实验单元中的R-S触发器电路
7400
kk1+
kk1-
kk1
1k
KK2-
KK2+
KK1-
KK1+
8259A
图R-S触发器图实验
(1)线路
实验内容:
一、8259应用实验
(1)
按上右图所示实验线路编写程序,使每次响应外部中断IRQ7时,显示字符“7”,中断10次后,程序退出。
主程序
修改IRQ7中断矢量
CX=00AH
CX=0?
开中断
屏蔽IRQ7
停机
显示“7”
CX=CX-1
关中断
返回
IRQ7中断服务处理
修正IMR,使IRQ7中断允许
STACKSEGMENTSTACK
DW64DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
STACK
START:
PUSHDS
MOVAX,0000H
MOVDS,AX;
数据段段寄存器清零
MOVAX,OFFSETIRQ7;
取中断服务程序入口地址(相对地址)
ADDAX,2000H;
加装载时IP地址(绝对地址)
MOVSI,003CH;
填8259中断7中断矢量
MOV[SI],AX;
填偏移地址
MOVAX,0000H
MOVSI,003EH
填段地址
CLI;
POPDS
INAL,21H;
读8259中断屏蔽字
ANDAL,7FH;
开8259中断7
OUT21H,AL
MOVCX,000AH;
设置中断次数
A1:
CMPCX,0000H
JNZA2
ORAL,80H;
关8259中断7
STI
HLT
A2:
STI
JMPA1
IRQ7:
MOVAH,01H;
中断服务程序入口
MOVAL,37H
INT10H
MOVAL,20H;
“空格”
DECCX
MOVAL,20H
OUT20H,AL;
结束中断命令
CLI
IRET
CODEENDS
ENDSTART
实验步骤:
(1)按图连接试验线路,检查无误后打开实验箱电源。
(2)输入程序并检查无误,经汇编、连接后通过调试窗口装入系统0000:
2000处。
(3)G=0000:
2000运行程序。
(4)重复按KK2微动开关,观察显示屏上显示结果。
二、8259应用实验
(2)
编写程序实现:
⏹当无中断请求时,执行主程序,延时显示“main”,每显示一个空一格;
⏹若有中断请求,则执行其中断服务程序,显示对应中断号“6”或“7”;
⏹若正在执行较低级的中断服务程序,则允许比它优先级高的中断被相应(IRQ6>
IRQ7)。
实验程序如下:
DATASEGMENT
TABLEDB4DH,41H,49H,4EH,20H,00H
DATAENDS
MOVAX,DATA
MOVDS,AX
PUSHDS
MOVDS,AX
MOVAX,OFFSETIRQ6;
取中断服务程序入口地址
ADDAX,2000H
MOVSI,0038H;
填8259中断6中断矢量
MOV[SI],AX
MOVSI,003AH
MOVSI,003CH;
填8259中断7中断矢量
MOVSI,003EH
MOVAL,13H;
初始化ICW1
OUT20H,AL
MOVAL,08H;
初始化ICW2
OUT21H,AL
MOVAL,09H;
初始化ICW4
MOVAL,3DH;
配置OCW1
MOVCX,0007H
MOVAL,0DH
MOVAH,01H
INT10H;
显示回车
MOVAH,06H
MOVBX,OFFSETTABLE
显示main
CALLDALLY
LOOPA2;
循环显示main
JMPA1
IRQ6:
STI;
开中断
MOVAL,36H
MOVAH,01H
INT10H;
显示6
MOVAL,20H
OUT20H,AL
开中断
MOVAL,37H
显示7
OUT20H,AL
DALLY:
PUSHCX;
出栈CX
PUSHAX
MOVCX,0040H
A3:
MOVAX,056CH
A4:
DECAX
JNEA4
LOOPA3
POPAX
POPCX
RET
CODEENDS
ENDSTART
(1)画出以上程序流程图,并在程序后面填写相应注释。
Begin
把IRQ6的服务程序的地址,填入中断向量表中
把IRQ7的服务程序的地址,填入中断向量表中
初始化8259相关的寄存器(ICW1,ICW2,ICW3,ICW4)
开始程序,显示字符“main“
中断请求
无中断请求
有请求
等待
执行中断服务程序,显示“6“或”7“
执行完成
延时
完成
(2)按图连接实验电路,检查无误后打开实验箱电源。
(3)输入程序并检查无误,经汇编、连接后装入系统。
(4)G=0000:
2000运行实验程序,记录运行结果:
1没有按键时:
延时显示MAIN,每显示一个空一格
2单独按下KK1或KK2时:
按下KK1显示6,接着延时显示MAIN,每显示一个空一格
按下KK2显示7,接着延时显示MAIN,每显示一个空一格
3先按下KK1再按下KK2时:
延时显示6,接着延时显示MAIN,
4先按下KK2再按下KK1时:
延时显示67,接着延时显示MAIN
分析结果:
实验小结:
实验5主要是中断实验,通过这次实验:
1、掌握了8259A的工作原理;
2、掌握了编写中断服务程序的方法;
3、掌握了初始化中断向量的方法。
教师评语:
实验六8253定时/计数器应用实验
1、熟悉定时/计数器在系统中的典型接法。
2、掌握定时/计数器的工作方式及应用编程
一、8253可编程定时/计数器介绍
8253可编程定时/计数器是Intel公司生产的通用外围芯片之一。
它有3个独立的十六位计数器,计数频率范围为0-2MHz,所有计数方式和操作方式都通过编程进行控制。
1、8253的功能
在实际应用当中,8253可以在不同场合实现以下功能:
延时终端、可编程频率发生器、事件计数器、分频器、实时时钟、数字单稳、复杂的电机控制器。
2、8253的工作方式
方式0
计数结束产生中断
方式1
可重触发的单稳触发器
方式2
分频器
方式3
方波频率发生器
方式4
软件触发的选通信号
方式5
硬件触发的选通信号
3、8253的内部结构及引脚
4、8253的控制字格式
5、8253的初始化编程
送控制字到控制端口
(43H)
送计数初值到计数器端口
(40H、41H、42H)
系统总线
IOY2
XA1
8259-IRQ0
OPCLK
8251-TXCLK
1.8432MHz
二、系统中的8253芯片
系统中装有一片8253芯片,线路如上右图所示:
一、计数中断实验
8253的通道2工作于方式0,用于事件计数,当计数5次时,向8259A发出中断请求信号,显示“M”,实验线路如图所示:
KK1
8253
计数/定时器
GATE2
CLK2
OUT2
8259
中断控制器
DW64DUP(?
CODESEGMENT
INAL,21H
ANDAL,7FH;
OCW1,开IRQ7中断
OUT21H,AL
MOVAL,90H
OUT43h,AL;
设置8253控制字
A1:
MOVAL,5H
OUT42h,AL;
设置计数初值
HLT
STI;
开外部中断(cpu)
JMPA1
MOVAX,014DH;
中断服务子程序
INT10H
MOVAX,0120H
MOVAL,20H;
OCW2,常规EOI命令
OUT20H,AL
IRET
(1)关闭电源,按图接线,接通电源。
(2)输入程序并检查无误,经汇编、连接后装入系统。
(3)用U2000命令查看“MOVAX,014DH”指令的偏移地址为2012。
(4)在0000:
003CH单元填入中断矢量,即0000:
003C12200000。
(5)运行程序,并按动KK1键,在按动5次后,屏幕上显示一个“M”,这是因为当计数超过5的时候,就会产生中断,然后运行中断程序:
显示“M“。
二、定时中断实验
利用8253的通道0工作于方式2来产生定时中断(IRQ0),循环显示“0”-“9”十个数,系统默认线路如下。
1.19MHz
GATE0
CLK0
OUT0
DW64DUP(?
PUSHDS
MOVDS,AX
MOVAX,OFFSETIRQ0
ADDAX,2000H
MOVSI,0020H;
填中断矢量表中的IP
MOV[SI],AX
MOVSI,0021H;
填中断矢量表中的CS
POPDS
MOVAL,FEh;
OCW1,开IRQ0中断
MOVAL,1Dh;
OUT43H,AL
MOVAL,0FFH;
设置8253计数初值低8位
OUT40H,AL
MOVDL,30H;
设置起始字符‘0’
JMPA1;
等待中断
IRQ0:
MOVAH,01H;
MOVAL,DL
CMPAL,3AH;
字符9,比较
JNZA2;
未完毕时转A2继续显示
MOVAL,0DH;
显示完毕后换行
MOVAL,30H;
重新设置起始字符
A2:
INT10H
INCAX
MOVDL,AL
CALLDALLY
MOVAL,20H;
MOVCX,0100H;
延时
A3:
MOVBX,0560H
A4:
DECBX
JNZA4
LOOPA3
(1)输入程序并检查无误,经汇编、连接后装入系统。
(2)运行程序,显示屏上出现现象为0123456789。
(3)修改8253的时常数为0FH,再运行程序,显示速度明显变快。
三、电子发声实验
系统的OPCLK(1.1625MHz)作为音乐节拍,从表格TABLE中查出每个音符对应的时常数送给计数器2(工作在方式3:
方波频率发生器),以确定音调,驱动扬声器产生音乐,实验线路图如下:
1.1625MHz
SPKUNIT
SPK
注意:
SPK接线要在装入程序并运行后进行。
DATASEGMENT
TABLEDB33H,33H,3DH,33H,26H,26H,26H,26H,2DH,2DH,26H,2DH,33H
DB33H,33H,33H,33H,33H,4DH,45H,3DH,3DH,3DH,45H,4DH,45H
DB45H,45H,45H,45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H
DB26H,28H,2DH,2DH,26H,26H,33H,33H,33H,33H,45H,3DH,39H
DB39H,39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,2DH,2DH
DB26H,26H,26H,26H,26H,26H,28H,28H,2DH,28H,26H,26H,26H
DB26H,2DH,28H,26H,2DH,2DH,33H,3DH,4DH,45H,45H,45H,45H
DB45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H,26H,28H,2DH
DB2DH,26H,2DH,33H,33H,33H,33H,33H,33H,45H,3DH,39H,39H
DB39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,00H
DATAENDS
STACK,DS:
DATA
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETTABLE
MOVAL,[BX]
MOVAH,00H
MOVDL,25H;
时常数*25H作为计数值保存于AX中
MULDL;
发音频率=1.1625MHz/37=314Hz
PUSHAX
MOVAL,B7;
计数器2,方式3,写16位BCD初值
OUT43H,AL
POPAX
OUT42H,AL;
设置低八位计数初值
MOVAL,AH
设置高八位计数初值
INCBX
MOVAL,[BX];
取下一个时常数
TESTAL,0FFH;
测试是否为最后一个00H
JZA3
MOVCX,77FFH;
延时播放当前音符
PUSHAX
LOOPA2
JMPA1;
转A1播放下一个音符
MOVBX,OFFSETTABLE;
取第一个时常数,重新播放
(1)关闭电源,按图接线,检查无误后打开电源。
(3)运行程序,注意听扬声器发出的音乐声。
思考题:
1、在将计数初值赋给8253后,马上就可以启动并进行定时或计数吗?
答:
不会马上就可以启动并进行定时
2、假设8253的通道1输入时钟频率为2MHz,现在需要使用其作为分频器,输出62.5KHz频率的时钟,则应设置计数初值(分频系数)为多少?
应采用哪种工作方式?
请写出初始化程序。
MOVAL,57H
OUT27H,AL
MOVAL,32H
OUT25H,AL
通过本次实验,熟悉了8253定时器/计数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验