微机原理实验指导书5Word文档下载推荐.docx
- 文档编号:17822665
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:24
- 大小:665.81KB
微机原理实验指导书5Word文档下载推荐.docx
《微机原理实验指导书5Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理实验指导书5Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
(1)方式0:
计数到0结束输出正跃变信号方式。
(2)方式1:
硬件可重触发单稳方式。
(3)方式2:
频率发生器方式。
(4)方式3:
方波发生器。
(5)方式4:
软件触发选通方式。
(6)方式5:
硬件触发选通方式。
图5-1-18254的内部接口和引脚
8254的控制字有两个:
一个用来设置计数器的工作方式,称为方式控制字;
另一个用来设置读回命令,称为读回控制字。
这两个控制字共用一个地址,由标识位来区分。
控制字格式如表5-1-1所示。
读回控制字格式如表5-1-2所示。
当读回控制字的D4位为0时,由该读回控制字D1~D2位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。
状态字格式如表5-1-3所示。
表5-1-18254的方式控制字格式
表5-1-28254读出控制字格式
表5-1-38254状态字格式
5.实验说明及步骤
(1)定时应用实验
编写程序,将8254的计数器2设置为方式3,用1.8432MHz作为CLK2时钟,计数值为64H,OUT2输出为18.432KHz的时钟。
将OUT2连接到计数器0的CLK0,设置计数器0也工作在方式3,计数值为18432,相当于18432分频,则在OUT0得到1Hz的输出。
参考程序流程如图5-1-2所示。
图5-1-28254定时应用实验接线图
实验步骤如下。
a)确认从PC机引出的两根扁平电缆已经连接在实验平台上。
b)首先运行CHECK程序,查看I/O空间始地址。
c)利用查出的地址编写程序,然后编译链接。
d)参考图5-1-2所示连接实验线路。
e)运行程序,看数据灯显示是否正确。
8254定时应用实验代码输出1Hz
;
************根据查看端口资源修改下列符号值*******************
IOY0EQU9C00H
**************************************************************
MY8254_COUNT0EQUIOY0+00H*4;
8254计数器0端口地址
MY8254_COUNT1EQUIOY0+01H*4;
8254计数器1端口地址
MY8254_COUNT2EQUIOY0+02H*4;
8254计数器2端口地址
MY8254_MODEEQUIOY0+03H*4;
8254控制寄存器端口地址
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,MY8254_MODE;
初始化8254工作方式
MOVAL,0B6H;
计数器2,方式3
OUTDX,AL
MOVDX,MY8254_COUNT2;
装入计数初值
MOVAL,64H;
100分频
MOVAL,00H
MOVAL,36H;
计数器0,方式3
MOVDX,MY8254_COUNT0;
MOVAL,00H;
18432分频
OUTDX,AL
MOVAL,48H
QUIT:
MOVAX,4C00H;
结束程序退出
INT21H
CODEENDS
ENDSTART
(2)计数应用实验
编写程序,将8254的计数器0设置为方式3,计数值为十进制5,用微动开关KK1-作为CLK0时钟,OUT0连接INTR,每当KK1-按动5次后产生中断请求,在屏幕上显示字符“5”。
参考程序流程如图5-1-3所示。
单元中GATE0已经连接了一个上拉电阻,所以GATE0不用连接。
图5-1-38254计数应用实验参考程序流程图
d)参考图5-1-4所示连接实验线路。
e)运行程序,按动KK1-微动开关,观察是否5次后屏幕显示字符“5”。
f)可以改变计数初值,从而实现不同要求的计数。
图5-1-48254计数应用实验参考接线图
8254计数应用实验代码
************根据CHECK配置信息修改下列符号值******************
INTR_IVADDEQU01CCH;
INTR对应的中断矢量地址
INTR_OCW1EQU0A1H;
INTR对应PC机内部8259的OCW1地址
INTR_OCW2EQU0A0H;
INTR对应PC机内部8259的OCW2地址
INTR_IMEQU0F7H;
INTR对应的中断屏蔽字
PCI_INTCSREQU9438H;
PCI卡中断控制寄存器地址
**************************************************************
DATASEGMENT
CS_BAKDW?
;
保存INTR原中断处理程序入口段地址的变量
IP_BAKDW?
保存INTR原中断处理程序入口偏移地址的变量
IM_BAKDB?
保存INTR原中断屏蔽字的变量
STR1DB'
COUNT:
$'
显示的字符串
DATAENDS
CODE,DS:
DATA
MOVAX,DATA
MOVDS,AX
CLI
MOVDX,PCI_INTCSR
SUBDX,19H
INAL,DX
MOVDX,PCI_INTCSR;
初始化PCI卡中断控制寄存器
MOVAX,1F00H;
向PCI_INTCSR中写入003F1F00H
OUTDX,AX
ADDDX,2
MOVAX,003FH
MOVAX,0000H;
替换INTR的中断矢量
MOVES,AX
MOVDI,INTR_IVADD
MOVAX,ES:
[DI]
MOVIP_BAK,AX;
保存INTR原中断处理程序入口偏移地址
MOVAX,OFFSETMYISR
MOVES:
[DI],AX;
设置当前中断处理程序入口偏移地址
ADDDI,2
MOVCS_BAK,AX;
保存INTR原中断处理程序入口段地址
MOVAX,SEGMYISR
设置当前中断处理程序入口段地址
MOVDX,INTR_OCW1;
设置中断屏蔽寄存器,打开INTR的屏蔽位
INAL,DX
MOVIM_BAK,AL;
保存INTR原中断屏蔽字
ANDAL,INTR_IM
OUTDX,AL
STI
MOVDX,OFFSETSTR1;
显示字符串
MOVAH,9
MOVAL,10H;
计数器0,方式0
MOVAL,4
WAIT1:
MOVAH,1;
判断是否有按键按下
INT16H
JZWAIT1;
无按键则跳回继续等待,有则退出
MOVDX,PCI_INTCSR;
恢复PCI卡中断控制寄存器
MOVAX,0000H
MOVAX,0000H;
恢复INTR原中断矢量
MOVAX,IP_BAK;
恢复INTR原中断处理程序入口偏移地址
[DI],AX
ADDDI,2
MOVAX,CS_BAK;
恢复INTR原中断处理程序入口段地址
MOVDX,INTR_OCW1;
恢复INTR原中断屏蔽寄存器的屏蔽字
MOVAL,IM_BAK
返回到DOS
MYISRPROCNEAR;
中断处理程序MYISR
MOVAL,35H
MOVAH,0EH
INT10H
MOVAL,20H
重装计数初值
OVER:
清PCI卡中断控制寄存器标志位
MOVDX,INTR_OCW2;
向PC机内部8259发送中断结束命令
OUT20H,AL
IRET
MYISRENDP
实验5-216550串口控制器应用实验
掌握16550的工作方式及应用。
PC微机一台、TD-PIT+实验系统一至两套、示波器一台。
串行通讯基础实验。
编写程序,向串口连续发送一个数据(55H)。
将串口输出连接到示波器上,用示波器观察数据输出产生的波形,分析串行数据格式。
16550是一种连接任何类型虚拟串行接口的可编程通信接口,与Intel微处理器完全兼容的使用非常广泛的异步接收器/发送器(UART)。
它内置了16字节的FIFO缓冲,最大通讯速率可达115Kb/s,是现代基于微处理器设备包括PC机和许多调制解调器的最普遍的通信接口。
16550的引脚如图5-2-1所示,其内部结构如图5-2-2所示。
图5-2-116550引脚图
图5-2-216550的内部结构图
(1)端口地址的使用
16550内部有11个寄存器,在芯片选择有效的前提下,由芯片的寄存器选择输入线A2,A1和A0来确定访问的寄存器,芯片中采用两条措施来解决端口地址少的问题(只有8个地址)。
●保持寄存器和接收数据寄存器共用一个地址,以“写入”访问前者、“读出”访问后者加以区分。
●除数寄存器的高字节与中断允许寄存器使用相同地址,高字节和接收数据寄存器、发送保持寄存器使用相同的地址,为了区分,借用线路控制寄存器的最高位DLAB位来区分。
访问除数寄存器时,令DLAB位为“1”;
访问接收数据寄存器、发送保持寄存器和中断允许寄存器时,则将DLAB位置“0”。
具体说明如表5-2-1所示。
表5-2-116550内部寄存器地址及其选择方法
(2)寄存器控制字说明
线路控制寄存器(LCR),主要用于指定异步串行通信的数据格式。
见表5-2-2。
表5-2-2LCR格式
线路状态寄存器(LSR),主要是向处理器提供有关数据传输的状态。
见表5-2-3。
表5-2-3LSR格式
波特率除数寄存器,用该寄存器设置串行数据的传送波特率。
除数寄存器值=基准时钟频率÷
(16×
波特率)
16550芯片输入的基准时钟频率为1.8432MHz,若波特率为9600b/s,则除数寄存器值为000CH,DLH中应填00H,DLL中应填0CH。
16550常用波特率参数见表5-2-4。
表5-2-4常用的波特率参数表
FIFO控制寄存器(FCR),16550增加了一个FIFO缓冲器,用于缓冲正在发出或接收的数据,这是早期的UART器件所没有的。
FCR各位意义见表5-2-5。
表5-2-5FCR格式
串行通讯基础实验
对16550进行编程,不断向发送寄存器写数,用示波器观察TXD信号脉冲变化,仔细分析波形,理解波形原理。
串行传输的数据格式可设定如下:
传输波特率为9600baut,每个字节有一个逻辑“0”的起始位,8位数据位,1位逻辑“1”的停止位,如图5-2-3所示。
图5-2-316550串口应用实验参考程序流程图
(1)确认从PC机引出的两根扁平电缆已经连接在实验平台上。
(2)首先运行CHECK程序,查看I/O空间始地址。
(3)利用查出的地址编写程序,连续向发送寄存器写55H,然后编译链接。
(4)参考图5-2-5所示连接实验线路。
并将TXD与实验装置GND同示波器相连接。
(5)运行程序,在示波器上观察波形。
(6)可以改变发送的数据,再仔细观察波形。
图5-2-4串行传输的数据格式
图5-2-516550串口应用实验参考接线图
16550串行通讯基础实验
************根据查看端口资源修改下列符号值********************
IOY0EQU9C00H;
片选IOY0对应的端口始地址
MY16550_0EQUIOY0+00H*4;
16550数据缓冲寄存器端口地址
MY16550_1EQUIOY0+01H*4;
16550中断允许寄存器端口地址
MY16550_3EQUIOY0+03H*4;
16550线路控制寄存器端口地址
MOVDX,MY16550_3;
设置16550线路控制寄存器
MOVAL,80H;
准备设置波特率除数寄存器
MOVDX,MY16550_0;
设置除数寄存器低字节0CH
MOVAL,0CH;
000C对应9600bit/s
MOVDX,MY16550_1;
设置除数寄存器高字节00H
设置线路控制寄存器,初始化数据格式
MOVAL,1BH;
偶校验,1位停止位,字符宽度为8
设置中断允许寄存器
中断不打开
SEND:
向发送缓冲寄存器写数
MOVAL,55H
CALLDALLY
JZSEND;
DALLYPROCNEAR;
软件延时子程序
PUSHCX
PUSHAX
MOVCX,0100H
D1:
MOVAX,1000H
D2:
DECAX
JNZD2
LOOPD1
POPAX
POPCX
RET
DALLYENDP
实验5-38259中断控制器应用实验
(1)学习中断控制器8259的工作原理。
(2)掌握可编程控制器8259的应用编程方法。
(1)利用PC机给实验系统分配的中断线,设计一个单中断应用。
使用单次脉冲模拟中断产生。
编写中断处理程序,在显示器屏幕上显示一个字符。
(2)利用实验平台上8259控制器对扩展系统总线上的中断线INTR进行扩展。
编写程序对8259控制器的IR0和IR1中断请求进行处理。
(1)8259控制器的介绍
中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。
它的管理功能包括:
a)记录各级中断源请求;
b)判别优先级,确定是否响应和响应哪一级中断;
c)响应中断时,向CPU传送中断类型号。
8259A的内部结构和引脚如图5-3-1所示。
8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。
8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。
ICW1-ICW4各命令字格式如图5-3-2所示,OCW1-OCW3各命令字格式如图5-3-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。
图5-3-18259内部结构和引脚图
图5-3-2(a)ICW1格式
图5-3-2(b)ICW2格式
图5-3-2(c)ICW3格式
图5-3-2(d)ICW4格式
图5-3-3OCW命令字格式
(2)8259寄存器及命令的控制访问
在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。
对寄存器和命令的访问控制如表5-3-1所示。
表5-3-18259寄存器及命令的控制访问
(3)PC微机系统中的8259
在80x86系列PC微机系统中,系统中包含了两片8259A中断控制器,经级连可以管理15级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表5-3-2示。
两片8259A的端口地址为:
主片8259使用020H和021H两个端口;
从片使用0A0H和0A1H两个端口。
系统初始化两片8259的中断请求信号均采用上升沿触发,采用全嵌套方式,优先级的排列次序为0级最高,依次为1级、8级~15级,然后是3级~7级。
在扩展系统总线上的INTR对应的中断线就是PC机保留中断其中的一个。
对INTR中断的初始化PC机已经完成,在使用时主要是将其中断屏蔽打开,修改中断向量。
表5-3-2PC微机系统中的硬件中断
(1)中断查询方式应用实验
8259支持查询方式检测中断请求,具体过程为:
设置8259OCW3中的P位为1即可执行查询命令,8259将下一个I/O读命令视作一次中断响应。
如果有中断请求,则置ISR中的相应位并读优先级。
从OCW3写操作到I/O读操作期间禁止中断,读出字节的最高位为1表示有中断,最低3位(D0-D2)为最高优先级中断请求源的编码。
查询字格式如图5-3-4所示。
图5-3-48259OCW3查询字格式
本实验要求使用这种方法编写程序处理实验单元8259IR0和IR1请求的中断,IR0请求在屏幕上显示字符“0”,IR0请求则在屏幕上显示字符“1”以示中断到来。
IR0和IR1分别用一个单次脉冲的上升沿模拟中断产生。
参考流程如图5-3-5所示,参考实验接线图如图5-3-6所示。
图5-3-5实验参考流程图
图5-3-6参考实验接线图
实验步骤如下:
b)运行Tdpit集成操作软件,查看系统资源分配情况,记录与所用片选信号对应的I/O端口始地址。
c)参考实验流程图编写程序,注意使用正确的端口地址,然后编译链接。
d)参考实验接线图连接实验线路。
e)运行程序,按动KK1+、KK1+按键,观察中断响应是否正常。
8259中断查询方式应用实验代码
***********根据查看端口资源修改下列符号值*******************
********************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)