接口实验报告.docx
《接口实验报告.docx》由会员分享,可在线阅读,更多相关《接口实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
接口实验报告
计算机接口技术
实验报告
学号:
姓名:
提交日期:
成绩:
东北大学秦皇岛分校
实验一:
可编程计数器/定时器(8253)
1、计数器
一、实验目的
掌握8253的基本工作原理和编程方法。
二、实验内容
按图16虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
三、编程提示
8253控制寄存器地址283H
计数器0地址280H
计数器1地址281H
CLK0连接时钟1MHZ
四、实验原理图
五、源程序代码
ioportequ0d400h-0280h
io8253aequioport+283h
io8253bequioport+280h
codesegment
assumecs:
code
start:
moval,14h;设置8253通道0为工作方式2,二进制计数
movdx,io8253a
outdx,al
movdx,io8253b;送计数初值为0FH
moval,0fh
outdx,al
lll:
inal,dx;读计数初值
calldisp;调显示子程序
pushdx
movah,06h
movdl,0ffh
int21h
popdx
jzlll
movah,4ch;退出
int21h
dispprocnear;显示子程序
pushdx
andal,0fh;首先取低四位
movdl,al
cmpdl,9;判断是否<=9
jlenum;若是则为'0'-'9',ASCII码加30H
adddl,7;否则为'A'-'F',ASCII码加37H
num:
adddl,30h
movah,02h;显示
int21h
movdl,0dh;加回车符
int21h
movdl,0ah;加换行符
int21h
popdx
ret;子程序返回
dispendp
codeends
endstart
六、实验运行结果
2、定时器
一、实验目的
掌握8253的基本工作原理和编程方法。
二、实验内容
按图17连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)
三、编程提示
8253控制寄存器地址283H
计数器0地址280H
计数器1地址281H
CLK0连接时钟1MHZ
四、实验原理图
五、实验运行结果
实验二:
七段数码管
1、静态显示
一、实验目的
掌握数码管显示数字的原理
二、实验内容
静态显示:
按图22连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。
编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。
三、编程提示
实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。
四、实验原理图
五、源程序代码
atasegment
ioportequ0d400h-0280h
io8255aequioport+288h
io8255bequioport+28bh
leddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
mesg1db0dh,0ah,'Inputanum(0--9h):
',0dh,0ah,'$'
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movdx,io8255b;使8255的A口为输出方式
movax,80h
outdx,al
sss:
movdx,offsetmesg1;显示提示信息
movah,09h
int21h
movah,01;从键盘接收字符
int21h
cmpal,'0';是否小于0
jlexit;若是则退出
cmpal,'9';是否大于9
jgexit;若是则退出
subal,30h;将所得字符的ASCII码减30H
movbx,offsetled;bx为数码表的起始地址
xlat;求出相应的段码
movdx,io8255a;从8255的A口输出
outdx,al
jmpsss;转SSS
exit:
movah,4ch;返回DOS
int21h
codeends
六、实验运行结果
2、动态显示
一、实验目的
掌握数码管显示数字的原理
二、实验内容
动态显示:
按图23连接好电路,七段数码管段码连接不变,位码驱动输入端S1,S0接8255C口的PC1,PC0。
编程在两个数码管上显示“56”
三、编程提示
实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。
四、实验原理图
五、实验运行结果
实验三:
模/数转换器
1、电压转十六进制数据
一、实验目的
了解模/数转换的基本原理,掌握ADC0809的使用方法。
二、实验内容
1、实验电路原理图如图38。
通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。
启动IN0开始转换:
Out02980
读取转换结果:
In0298
2、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。
三、实验提示
1、ADC0809的IN0口地址为298H,IN1口地址为299H。
2、IN0单极性输入电压与转换后数字的关系为:
N=Ui/(Uref/256)
其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。
3、一次A/D转换的程序可以为
MOVDX,口地址
OUTDX,AL;启动转换
;延时
INAL,DX;读取转换结果放在AL中
四、实验原理图
五、源程序代码
ioportequ0d400h-0280h
io0809aequioport+298h
codesegment
assumecs:
code
start:
movdx,io0809a;启动A/D转换器
outdx,al
movcx,0ffh;延时
delay:
loopdelay
inal,dx;从A/D转换器输入数据
movbl,al;将AL保存到BL
movcl,4
shral,cl;将AL右移四位
calldisp;调显示子程序显示其高四位
moval,bl
andal,0fh
calldisp;调显示子程序显示其低四位
movah,02
movdl,20h;加回车符
int21h
movdl,20h
int21h
pushdx
movah,06h;判断是否有键按下
movdl,0ffh
int21h
popdx
jestart;若没有转START
movah,4ch;退出
int21h
dispprocnear;显示子程序
movdl,al
cmpdl,9;比较DL是否>9
jleddd;若不大于则为'0'-'9',加30h为其ASCII码
adddl,7;否则为'A'-'F',再加7
ddd:
adddl,30h;显示
movah,02
int21h
ret
dispendp
codeends
endstart
六、实验运行结果
2、波形显示
一、实验目的
了解模/数转换的基本原理,掌握ADC0809的使用方法。
二、实验内容
将JP3的1、2短接,使IN2处于双极性工作方式,并给IN1输入一个低频交流信号(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。
三、实验提示
1、ADC0809的IN0口地址为298H,IN1口地址为299H。
2、IN0单极性输入电压与转换后数字的关系为:
N=Ui/(Uref/256)
其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。
3、一次A/D转换的程序可以为
MOVDX,口地址
OUTDX,AL;启动转换
;延时
INAL,DX;读取转换结果放在AL中
四、实验原理图
五、实验运行结果
实验四:
交通灯控制实验
一、实验目的
通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
二、实验内容
如图-29,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律亮灭。
三.编程提示:
十字路口交通灯的变化规律要求:
(1)南北路口的绿灯、东西路口的红灯同时亮30秒左右。
(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3)南北路口的红灯、东西路口的绿灯同时亮30秒左右。
(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5)转
(1)重复。
四、实验原理图
五、源程序代码
datasegment
ioportequ0d400h-0280h
io8255aequioport+28ah
io8255bequioport+28bh
portc1db24h,44h,04h,44h,04h,44h,04h;六个灯可能
db81h,82h,80h,82h,80h,82h,80h;的状态数据
db0ffh;结束标志
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movdx,io8255b
moval,90h
outdx,al;设置8255为C口输出
movdx,io8255a
re_on:
movbx,0
on:
moval,portc1[bx]
cmpal,0ffh
jzre_on
outdx,al;点亮相应的灯
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
int21h
popdx
jzon;没有,转到on
exit:
movah,4ch;返回
int21h
codeends
endstart
六、实验运行结果(包括修改程序后的实验运行结果)