微机原理及应用实验指导书j 2.docx
《微机原理及应用实验指导书j 2.docx》由会员分享,可在线阅读,更多相关《微机原理及应用实验指导书j 2.docx(20页珍藏版)》请在冰点文库上搜索。
微机原理及应用实验指导书j2
实验二存贮器读写实验
一.实验目的:
1.熟悉静态RAM的使用方法,掌握8088微机系统扩展RAM的方法。
2.熟悉静态RAM读写数据编程方法。
二.实验内容
对指定地址区间的RAM(2000H~23FFH)先进行写数据55AAH,然后将其内容读出再写到3000H~33FFH中。
三.硬件电路(系统中已连接好)
四.实验程序清单
CODESEGMENT
ASSUMECS:
CODE
ORG1700h;定义起始地址
START:
MOVAX,0H;定义数据段寄存器DS
MOVDS,AX
MOVBX,2000H;定义数据地址BX
MOVAX,55AAH;置常数为55AA
MOVCX,03FFH;置字节数CX
RAMW1:
MOVDS:
[BX],AX;常数55AA写入DS:
[BX]中
ADDBX,0002H;地址增量
LOOPRAMW1;一直写到字节数为0为止
MOVAX,2000H
MOVSI,AX;置源数据区地址DI
MOVAX,3000H
MOVDI,AX;置目的数据区地址SI
MOVCX,03FFH;置字节数CX
CLD;确定地址变化方向
REPMOVSB;写数据到目的数据区
JMP$;结束
CODEENDS
ENDSTART
五.实验步骤
1.运行实验程序
(1)联机时,实验程序文件名为\DVCC\H8EXE\H812S.EXE。
(2)单机时,实验程序起始地址为F000:
9700。
在系统显示监控提示符“P.”时:
输入F000按F1键
输入9700按EXEC键
稍后按RESET键退出,用存储器读写方法检查2000H~3000H中的内容应都是55AA。
实验三8253A定时/计数器实验
一.实验目的
学习8253A可编程定时/计数器与8088CPU的接口方法;了解8253A的工作方式;掌握8253A在各种方式下的编程方法。
二.预备知识
1.8253A内部结构
8253A定时/计数器具有定时、计数双功能。
它具有三个相同且相互独立的16位减法计数器,分别称为计数器0、计数器1、计数器2。
每个计数器计数频率为0~2MHZ,其内部结构如图3—1所示。
由于其内部数据总线缓冲器为双向三态,故可直接接在系数数据总线上,通过CPU写入计数初值,也可由CPU读出计数当前值;其工作方式通过控制字确定;图中的读写控制逻辑,当选中该芯片时,根据读写命令及送来的地址信息控制整个芯片工作;图中的控制字寄存器用于接收数据总线缓冲器的信息;当写入控制字时,控制计数器的工作方式,当写入数据时则装入计数初值,控制寄存器为8位,只写不能读。
0
0
0
15
15
15
CLK0
D0~D7
数据
锁存器
MSB
LSB
MSB
LSB
MSB
LSB
OUT0
GATE0
计数器0
总线
缓冲器
0
0
0
15
15
15
计数器
MSB
LSB
MSB
LSB
MSB
LSB
CLK1
读/写
-WR
-RD
OUT1
GATE1
计数器1
逻辑
A0
A1
OUT0
CLK0
-CS
GATE0
GATE2
CLK2
计数器2
控制字
CLK1
OUT2
寄存器
OUT1
GATE1
OUT2
CLK2
GATE2
图3—18253A内部结构图3—2计数器内部结构图
2.计数器内部结构
如图3—2所示,每个计数器由一个16位可预置的减1计数器组成,计数初值可保存在16位的锁存器中,该锁存器只写不能读。
在计数器工作时,初值不受影响,以便进行重复计数。
图中每个计数器有一个时钟输入端CLK作为计数脉冲源,计数方式可以是二进制,计数范围1~10000H,也可以是十进制,计数范围1~65536。
门控端GATE用于控制计数开始和停止。
输出OUT端当计数器计数值减到零时,该端输出标志信号。
3.8253A端口地址选择见表3—1
表3—1
/CS
/RD
/WR
A1
A2
寄存器选择和操作
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
写入计数器#0
写入计数器#1
写入计数器#2
写入控制寄存器
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
读计数器#0
读计数器#1
读计数器#2
0
1
0
0
×
1
1
×
1
1
×
×
1
×
×
无操作(三态)
禁止(三态)
无操作(三态)
4.8253A功能
8253A既可作定时器又可作计数器
(1)计数:
计数器装入初值后,当GATE为高电平时,可用外部事件作为CLK脉冲对计数值进行减1计数,每来一个脉冲减1,当计数值减至0时,由OUT端输出一个标志信号。
(2)定时:
计数器装入初值后,当GATE为高电平时,由CLK脉冲触发开始自动计数,当计数到零时,发计数结束定时信号。
除上述典型应用外,8253A还可作频率发生器、分频器、实时钟、单脉冲发生器等。
5.8253A控制字
7
6
5
4
3
2
1
0
说明:
(1)8253A每个通道对输入CLK按二进制或十进制从预置值开始减1计数,减到0时从OUT输出一个信号。
(2)8253A编程时先写控制字,再写时间常数。
6.8253A工作方式
(1)方式0:
计数结束产生中断方式
当写入控制字后,OUT变为低电平,当写入初值后立即开始计数,当计数结束时,变成高电平。
(2)方式1:
可编程单次脉冲方式
当初值装入后且GATE由低变高时,OUT变为低电平,计数结束变为高电平。
(3)方式2:
频率发生器方式
当初值装入时,OUT变为高;计数结束,OUT变为低。
该方式下如果计数未结束,但GATE为低时,立即停止计数,强逼OUT变高,当GATE再变高时,便启动一次新的计数周期。
(4)方式3:
方波发生器
当装入初值后,在GATE上升沿启动计数,OUT输出高电平;当计数完成一半时,OUT输出低电平。
(5)方式4:
软件触发选通
当写入控制字后,OUT输出为高;装入初值且GATE为高时开始计数,当计数结束,OUT端输出一个宽度等于一个时钟周期的负脉冲。
(6)方式5:
硬件出发选通
在GATE上升沿启动计数器,OUT一直保持高电平;计数结束,OUT端输出一个宽度等于一个时钟周期的负脉冲。
三.实验内容
本实验原理图如图3-3所示,8253A的A0、A1接系统地址总线A0、A1,故8253A有四个端口地址,端口地址如表3-1所示。
8253A的片选地址为40H~4FH。
因此,本实验仪中的8253A四个端口地址为40H、41H、42H、43H,分别对应通道0、通道1、通道2和控制字。
采用8253A通道0,工作在方式3(方波发生器方式),输入时钟CLK0为1MHZ,输出OUTO要求为1KHZ的方波,并要求用接在GATE0引脚上的导线是接地(“0”电平)或甩空(“1”电平)来观察GATE对计数器的控制作用,用示波器观察输出波形。
图3—3
四.实验线路连接
(1)8253的GATE0接+5V。
(2)8253的CLK0插孔接分频器74LS393(左上方)的T4插孔,分频器的频率源为4MHZ。
五.实验软件框图
开始
六.实验程序清单
CODESEGMENT
ASSUMECS:
CODE
ORG1180H
START:
JMPTCONT;定义起始地址
TCONTROEQU0043H;定义8253控制口和0通道地址
TCON0EQU0040H
TCONT:
MOVDX,TCONTRO;写控制字,0通道输出方波
MOVAL,36H
OUTDX,AL
MOVDX,TCON0;计数初值送0通道寄存器
MOVAL,00H
OUTDX,AL
MOVAL,04H
OUTDX,AL
JMP$;结束
CODEENDS
ENDSTART
七.实验步骤
1.按图3-3连好实验线路
2.运行实验程序
(1)联机时,实验程序文件名为\DVCC\H8EXE\H85S.EXE。
(2)单机时,实验程序起始地址为F000:
9180。
在系统显示监控提示符“P.”时:
输入F000按F1键
输入9180按EXEC键
3.用示波器测量8253左侧OUT0插孔,应有方波输出。
实验四并行口8255A应用
一.实验目的
进一步掌握8255A可编程并行口使用方法。
二.预备知识
1.8255A结构
8255A是可编程并行接口芯片,双列直插式封装,用+5V单电源供电,如图4—1是8255A的逻辑框图,内部有3个8位I/O端口:
A口、B口、C口;也可以分为各有12位的两组:
A和B组,A组包含A口8位和C口的高四位,B组包含B口8位和C口的低4位;A组控制和B组控制用于实现方式选择操作;读写控制逻辑用于控制芯片内寄存器的数据和控制字经数据总线缓冲器送入各组接口寄存器中。
由于8255A数据总线缓冲器是双向三态8位驱动器,因此可以直接和8088系统数据总线相连。
2.8255A端口地址见表4—1
表4—1
A1
A0
/RD
/WR
/CS
操作类型
操作方向
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
PA→数据总线
PB→数据总线
PC→数据总线
输入
(读)
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
数据总线→PA
数据总线→PB
数据总线→PC
数据总线→控制字
输出
(写)
×
1
×
×
1
×
×
0
1
×
1
1
1
0
0
数据总线三态
非法状态
数据总线三态
断开
8位内部数据总线
图4—1
3.8255A工作方式
8255A芯片有三种工作方式:
方式0、方式1、方式2。
它通过对控制寄存器写入不同的控制字来决定其三种不同的工作方式。
8
方式0:
基本输入/输出
I/O
PA7~0
I/O
4
PC7~4
8
I/O
4
PC3~0
I/O
PB7~0
图4—2(a)方式0引脚功能
如图4—2(a)所示。
该方式下的A口8位和B口8位可以由输入的控制字决定为输入或输出,C口分成高4位(PC7~PC4)和低4位(PC3~PC0)两组,也有控制字决定其输入或输出。
需注意的是:
该方式下,只能将C口其中一组的四位全部置为输入或输出。
方式1:
选通输入/输出
WR
图4—2(b)方式1输入图4—2(c)方式1输出
如图4—2(b)、(c)所示。
该方式又叫单向输入输出方式,它分为A、B两组,A组由数据接口A和控制口C的高4位组成,B组由数据口B和控制口C的低4位组成。
数据口的输入/输出都是锁存的,与方式0不同,由控制字来决定它作输入还是输出。
C口的相应位用于寄存数据传送中所需的状态信号和控制信息。
8255
方式2:
双向输入输出
图4—2(d)方式2双向输入输出
如图4—2(d)所示。
本方式只有A组可以使用,此时A口为输入输出双向口,C口中的5位(PC3~PC7)作为A口的控制位。
4.8255A控制字
7
6
5
4
3
2
1
0
PC3~0:
1=输入,0=输出
PB口:
1=输入,0=输出B组
方式选择:
0=方式0,1=方式1
PC7~4:
1=输入,0=输出
PA口:
1=输入,0=输出
方式选择:
00=方式0A组
01=方式1
1×=方式2
方式标志:
1=有效
(1)方式选择控制字
(2)PC口按位置/复位控制字
7
6
5
4
3
2
1
0
三.实验内容
1.实验原理
实验原理图如图4-3所示,PB4~PB7和PC0~PC7分别与发光二极管电路L1~L12相连,本实验为模拟交通灯实验。
交通灯的亮灭规律如下:
设有一个十字路口,1、3为南北方向,2、4为东西方向,初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车;延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复上述过程。
图4—3
8255A的PB4~PB7对应黄灯,PC0~PC3对应红灯,PC4~PC7对应绿灯。
8255A工作于模式0,并置为输出。
由于各发光二极管为反向驱动,使其点亮应使8255A相应端口置1。
2.实验线路连接
(1)L1—PC0L4—PC1L7—PC2L10—PC3
L2—PB4L5—PB5L8—PB6L11—PB7
L3—PC4L6—PC5L9—PC6L12—PC7
四.
实验软件框图
五.实验软件清单
CODESEGMENT
ASSUMECS:
CODE
IOCONPTEQU0FF2BH;定义8255各寄存器地址
IOAPTEQU0FF28H
IOBPTEQU0FF29H
IOCPTEQU0FF2AH
ORG10e0H
START:
MOVDX,IOCONPT;写8255控制字,三个口均为方式0输出
MOVAL,80H;定义A口未输入,B口为输出
OUTDX,AL
MOVDX,IOBPT;灭绿灯,灭黄灯
MOVAL,00H
OUTDX,AL
MOVDX,IOCPT;亮4个红灯
MOVAL,0FH
OUTDX,AL
CALLDELAY1;调延时
IOLED0:
MOVAL,01011010B;1、3路口绿灯亮,同时2、4路口红灯亮
MOVDX,IOCPT
OUTDX,AL
CALLDELAY1;延时
CALLDELAY1
MOVAL,00001010B;灭1、3路口绿灯
OUTDX,AL
MOVCX,8H;置计数值为8
IOLED1:
MOVDX,IOBPT
MOVAL,50H;点亮1、3路口黄灯
OUTDX,AL
CALLDELAY2;延时较短时间
MOVAL,00H;1、3路口黄灯
OUTDX,AL
CALLDELAY2;延时较短时间
LOOPIOLED1;黄灯闪烁8次
MOVDX,IOCPT
MOVAL,10100101B;点亮2、4路口绿灯,同时1、3路口红灯亮
OUTDX,AL
CALLDELAY1;延时
CALLDELAY1
MOVAL,00000101B;灭2、4路口绿灯
OUTDX,AL
MOVCX,8H;置计数初值
IOLED2:
MOVDX,IOBPT
MOVAL,0A0H;点亮2、4路口黄灯
OUTDX,AL
CALLDELAY2;延时
MOVAL,00H;灭2、4路口黄灯
OUTDX,AL
CALLDELAY2;延时
LOOPIOLED2;黄灯闪烁8次
MOVDX,IOCPT
MOVAL,0FH;点亮4个红灯,灭4个绿灯
OUTDX,AL
CALLDELAY2;延时
JMPIOLED0;循环
DELAY1:
PUSHAX;延时子程序
PUSHCX
MOVCX,0030H
DELY2:
CALLDELAY2
LOOPDELY2
POPCX
POPAX
RET
DELAY2:
PUSHCX
MOVCX,8000H
DELA1:
LOOPDELA1
POPCX
RET
CODEENDS
ENDSTART
六.实验步骤
1.按图4-3连好实验线路
2.运行实验程序
(1)联机时,实验程序文件名为\DVCC\H8EXE\H84S.EXE。
(2)单机时,实验程序起始地址为F000:
90E0。
在系统显示监控提示符“P.”时:
输入F000按F1键
输入90E0按EXEC键
在系统上显示执行符“『”,同时L1~L12发光二极管模拟交通灯显示。