兰州大学接口与通讯实验报告概览Word格式.docx
- 文档编号:7318659
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:16
- 大小:739.76KB
兰州大学接口与通讯实验报告概览Word格式.docx
《兰州大学接口与通讯实验报告概览Word格式.docx》由会员分享,可在线阅读,更多相关《兰州大学接口与通讯实验报告概览Word格式.docx(16页珍藏版)》请在冰点文库上搜索。
按任意键退回主菜单'
dataends
stacksegment
stadb20dup(?
)
topequlengthsta
stackends
codesegment
assumecs:
code,ds:
data,ss:
stack,es:
data
start:
movax,data;
data段装填
movds,ax
movax,stack;
stack段装填
movss,ax
movsp,top;
设置栈顶
movsp,ax
movdx,io8255d
moval,80h;
命令字10000000b,表示特征位为1,A组为0方式,A端口出,
outdx,al;
PC4-PC7出,B组为0方式,B端口出,PC0-PC3出
bg:
leadx,mess1;
显示提示信息mess1
movah,09h
int21h
movah,08h;
输入字符,结果保存至al
pushax;
保存输入的值
leadx,mess3;
显示提示信息mess3
popax;
拿出保存的值
movah,al;
ah=al
cmpal,'
1'
输入为1,跳转到zxh
jzzxh
moval,ah;
al=ah
2'
输入2,跳转到yxh
jzyxh
3'
输入3,跳转到jgs
jzjgs
4'
输入4,跳转到wx
jnzwx
jmtqit
wx:
leadx,mess2;
显示提示信息mess2
jmpbg;
无条件跳转到bg
zxh:
movdx,io8255c
moval,0feh;
al=11111110b
bb:
将al写入PC口
movcx,0ffffh;
用于延迟一定的时间
l1:
loopl1
rolal,1;
al循环左移一位
pushax;
保存ax
pushdx;
保存dx
movdl,0ffh;
直接控制台IO,输入,输入的值在al中
movah,06h
jnzbg;
flag的ZF标志位不为0跳转至bg
popdx;
恢复dx,ax的值
popax
jmpbb;
跳转至bb
yxhmovdx,io8255c
ee:
movcx,0fffh;
l2:
loopl2
roral,1;
al循环右移一位
jmpee;
无条件转移至ee
jgs:
moval,55h;
al=01010101b
hh:
设置时延
l3:
loopl3
notal;
对al按位取反
jnzbg1;
flag的ZF标志位不为0跳转至bg1
jmphh;
无条件转移至hh
bg1:
jmpbg;
无条件转移至bg
qit:
movax,4c00h;
交还控制权给DOS
codeends
endstart
6-78255简单控制交通灯实验
实验电路图
程序流程图
实验代码:
stacksegment
db256dup(?
stackends
datasegment
portc1db24h,44h,04h,44h,04h,44h,04h;
6个灯可能的
db81h,82h,80h,82h,80h,82h,80h;
状态数据
db0ffh;
结束标志
dataends
codesegment
code,ds:
data,ss:
stack
movax,data;
movds,ax
movdx,io8255d
moval,90h;
命令字10010000B
outdx,al;
表示A组方式0,A端口入,B组方式0,B,C端口出
movcx,3;
整个过程循环3次
p:
leadi,portc1
re_on:
moval,[di];
把portc1中数据逐个赋给al
incdi;
di=di+1
cmpal,0ffh;
如果读取到结束标志,则跳转到s
jzs
movdx,io8255c
on:
向C端口写入数据
callrelay;
调用时延子程序
jmpre_on;
无条件跳转至re_on
s:
deccx;
cx=cx-1
cmpcx,0
jnzp;
cx不等于0,则跳转至p
exit:
movah,4ch;
交还控制权
int21h
relayprocnear
pushcx;
保存cx的值
movcx,3300h
de1:
movbx,0ffffh
de0:
decbx
jnzde0
loopde1
popcx;
恢复cx的值
ret
relayendp
附加实验
movds,ax
movax,stack;
movss,ax
moval,10010000b;
命令字A,B,C组方式0,A组入,B,C出
outdx,al
wait1:
movdx,io8255a
inal,dx;
从A口读入数据
将al中的数据写入C口
movah,06h;
直接控制台IO
movdl,0ffh;
输入
int21h
jmpwait1;
跳转到wait1
int21h
6-15A/D转换实验
ioportequ0ff00h-0280h
io0809aequioport+298h
ts1db'
a/dstart.'
0dh,0ah,'
ts2db'
a/dend.'
bufdw300dup(?
stadw20dup(?
topequlengthsta
movax,data;
movds,ax
movax,stack;
movss,ax
movsp,top;
设置栈顶指针
leadx,ts1
movah,9
int21h;
显示提示信息
movcx,300
conv:
movdx,io0809a
moval,0
outdx,al;
为io0809a设置初值为0
calladint;
调用adint子程序
movax,si;
si中此时为读入数据,ax=si,al就是读入的一个字节
leadi,buf
mov[di],al;
将读入的数据送入buf缓冲区
andal,0f0h;
将al与0f0h求与,并将结果重新赋给al
pushcx;
movcl,4
shral,cl;
逻辑右移4位
popcx;
addal,30h;
al=al+30h
cmpal,39h
jbedispl;
小于等于39h时跳转到displ
addal,07h;
al=al+07h
displ:
movdl,al;
dl=al
movah,2;
显示输出,要输出的值为dl中的值
moval,[di];
取出buf中的值,赋给al
incdi
andal,0fh;
al的值与0fh按位求与
jbedisph;
小于等于39h跳转到disph
addal,07h;
大于39h时,al=al+07h
disph:
显示dl中的值
int21h
movdl,20h
movah,2
显示两个空格
loopconv;
循环至conv
leadx,ts2
movah,9;
显示结束信息
adintprocnear
pushax
pushbx
pushcx
movcx,0ffffh;
delay:
movbx,2fh
delay1:
decbx
cmpbx,0
jnzdelay1
loopdelay
inal,dx;
从io0809a读入一个字节赋给al
movsi,ax;
si=ax,用si把读入的数据返回出去
popcx
popbx
ret
adintendp
实验数据:
电压/V
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
5.0
输出(十六进制)
1AH
35H
4FH
69H
83H
9DH
B8H
D2H
EDH
FFH
输出(十进制)
26
53
79
105
131
157
184
210
237
255
散点图:
误差分析:
利用
作图分析A/D转换的线性度,其中
为转换后的数字量,
为输入的模拟量,
是个无穷小量可以忽略。
,
是待求的量,可以用最小二乘法求得近似值。
公示如下:
计算过程结果如下:
Sxx=27.5
Sxy=1426
a=1.01
b=51.85
直线方程为:
Y=51.85x+1.01
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 兰州大学 接口 通讯 实验 报告 概览
![提示](https://static.bingdoc.com/images/bang_tan.gif)