微机原理实验Word格式文档下载.docx
《微机原理实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理实验Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
MOVDX,2A8H
Y5输出一个负脉冲。
利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。
实验二可编程并行接口
(一)
(8255方式0)
1.掌握8255方式0的工作原理及使用方法。
二、实验内容
1.实验电路如图,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
2.编程从8255C口输入数据,再从A口输出。
三、编程提示
1、8255控制寄存器端口地址28BH
A口的地址288H
C口的地址28AH
2、参考流程图
实验三七段数码管
掌握数码管显示数字的原理
1.静态显示:
按图1连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。
编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。
图1图2
2.动态显示:
按图2连接好电路,七段数码管段码连接不变,位码驱动输入端S1,S0接8255C口的PC1,PC0。
编程在两个数码管上显示56。
3.动态显示:
(选作)按图13连接好电路,编程在两个数码管上循环显示00~99
1、实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。
2、段数码管的字型代码表如下表:
3、参考流程图(见图3)
实验四竞赛抢答器
1、了解微机化竞赛抢答器的基本原理。
2、进一步学习使用并行接口。
图27为竞赛抢答器(模拟)的原理图,逻辑开关K0~K7代表竞赛抢答按钮0~7号,当某
个逻辑电平开关置“1”时,相当某组抢答按钮按下。
在七段数码管上将其组号(0~7)显
示出来,并使微机扬声器响一下。
设置8255为C口输入、A口输出,读取C口数据,若为0表示无人抢答,若不为0则有人抢答。
根据读取数据可判断其组号。
从键盘上按空格键开始下一轮抢答,按其它键程序退出。
四、参考流程图
五、参考程序:
QDQ.ASM
datasegment
ioportequ0d400h-0280h
io8255aequioport+28ah
io8255bequioport+28bh
io8255cequioport+288h
leddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h;
数码表
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movdx,io8255b;
设8255为A口输出,C口输入
movax,89h
outdx,al
movbx,offsetled;
使BX指向段码管首址
sss:
movdx,io8255a
inal,dx;
从8255的C口输入数据
oral,al;
比较是否为0
jesss;
若为0,则表明无键按下,转sss
movcl,0ffh;
cl作计数器,初值为-1
rr:
shral,1
inccl
jncrr
moval,cl
xlat
movdx,io8255c
movdl,7;
响铃ASCII码为07
movah,2
int21h
wai:
movah,1
cmpal,20h;
是否为空格
jneeee;
不是,转eee
moval,0;
是,关灭灯
jmpsss
eee:
movah,4ch;
返回
codeends
endstart
实验五交通灯控制实验
一.实验目的
通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
二.实验内容
如图-29,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东
西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律亮灭。
三.编程提示:
十字路口交通灯的变化规律要求:
(1)南北路口的绿灯、东西路口的红灯同时亮30秒左右。
(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3)南北路口的红灯、东西路口的绿灯同时亮30秒左右。
(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5)转
(1)重复。
五、参考程序:
JTD.ASM
;
***********************************;
*十字路口红绿灯模拟演示程序*;
*端口各灯的设置:
*;
*1红1黄1绿002红2黄2绿*;
portc1db24h,44h,04h,44h,04h,44h,04h;
六个灯可能
db81h,82h,80h,82h,80h,82h,80h;
的状态数据
db0ffh;
结束标志
dataends
movax,data
movdx,io8255b
moval,90h
outdx,al;
设置8255为C口输出
movdx,io8255a
re_on:
movbx,0
on:
moval,portc1[bx]
cmpal,0ffh
jzre_on
点亮相应的灯
incbx
movcx,20;
参数赋初值
testal,21h;
是否有绿灯亮
jzde1;
没有,短延时
movcx,2000;
有,长延时
de1:
movdi,9000;
di赋初值5000
de0:
decdi;
减1计数
jnzde0;
di不为0
loopde1
pushdx
movah,06h
movdl,0ffh
popdx
jzon;
没有,转到on
exit:
74LS76:
双J-K触发器(边沿)5-VCC;
13-GND
74LS74:
双D触发器(上升沿)14-VCC;
7-GND