兰州大学接口及通讯实验报告.docx

上传人:b****1 文档编号:1391402 上传时间:2023-04-30 格式:DOCX 页数:16 大小:734KB
下载 相关 举报
兰州大学接口及通讯实验报告.docx_第1页
第1页 / 共16页
兰州大学接口及通讯实验报告.docx_第2页
第2页 / 共16页
兰州大学接口及通讯实验报告.docx_第3页
第3页 / 共16页
兰州大学接口及通讯实验报告.docx_第4页
第4页 / 共16页
兰州大学接口及通讯实验报告.docx_第5页
第5页 / 共16页
兰州大学接口及通讯实验报告.docx_第6页
第6页 / 共16页
兰州大学接口及通讯实验报告.docx_第7页
第7页 / 共16页
兰州大学接口及通讯实验报告.docx_第8页
第8页 / 共16页
兰州大学接口及通讯实验报告.docx_第9页
第9页 / 共16页
兰州大学接口及通讯实验报告.docx_第10页
第10页 / 共16页
兰州大学接口及通讯实验报告.docx_第11页
第11页 / 共16页
兰州大学接口及通讯实验报告.docx_第12页
第12页 / 共16页
兰州大学接口及通讯实验报告.docx_第13页
第13页 / 共16页
兰州大学接口及通讯实验报告.docx_第14页
第14页 / 共16页
兰州大学接口及通讯实验报告.docx_第15页
第15页 / 共16页
兰州大学接口及通讯实验报告.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

兰州大学接口及通讯实验报告.docx

《兰州大学接口及通讯实验报告.docx》由会员分享,可在线阅读,更多相关《兰州大学接口及通讯实验报告.docx(16页珍藏版)》请在冰点文库上搜索。

兰州大学接口及通讯实验报告.docx

兰州大学接口及通讯实验报告

实验6-68255并行接口(LED)实验

实验说明

8255工作于方式0,此时PA,PB,PC均为可独立输入输出的并行口。

8255的各寄存器对应的端口地址为:

PA口:

288H

PB口:

289H

PC口:

28AH

控制口:

28BH

8255的片选信号为CS连138译码器的288H-28FH。

由于各PC速度不同,为到达较好的实验效果,可以适当调节LED亮灭的延迟时间。

源代码:

datasegment

ioportequ0ff00h-0280h

io8255aequioport+288h;PA口

io8255bequioport+289h;PB口

io8255cequioport+28ah;PC口

io8255dequioport+28bh;控制口

mess1db'左循环按1',0dh,0ah,'$';提示信息

db'右循环按2',0dh,0ah,'$'

db'间隔闪烁按3',0dh,0ah,'$'

db'退出按4',0dh,0ah,'$'

mess2db'按无效键继续选择',0dh,0ah,'$'

mess3db'按任意键退回主菜单',0dh,0ah,'$'

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

int21h

pushax;保存输入的值

leadx,mess3;显示提示信息mess3

movah,09h

int21h

popax;拿出保存的值

movah,al;ah=al

cmpal,'1';输入为1,跳转到zxh

jzzxh

moval,ah;al=ah

cmpal,'2';输入2,跳转到yxh

jzyxh

moval,ah;al=ah

cmpal,'3';输入3,跳转到jgs

jzjgs

moval,ah;al=ah

cmpal,'4';输入4,跳转到wx

jnzwx

jmtqit

wx:

leadx,mess2;显示提示信息mess2

movah,09h

int21h

jmpbg;无条件跳转到bg

zxh:

movdx,io8255c

moval,0feh;al=11111110b

bb:

outdx,al;将al写入PC口

movcx,0ffffh;用于延迟一定的时间

l1:

loopl1

rolal,1;al循环左移一位

pushax;保存ax

pushdx;保存dx

movdl,0ffh;直接控制台IO,输入,输入的值在al中

movah,06h

int21h

jnzbg;flag的ZF标志位不为0跳转至bg

popdx;恢复dx,ax的值

popax

jmpbb;跳转至bb

yxhmovdx,io8255c

moval,0feh;al=11111110b

ee:

outdx,al;将al写入PC口

movcx,0fffh;用于延迟一定的时间

l2:

loopl2

roral,1;al循环右移一位

pushax;保存ax

pushdx;保存dx

movdl,0ffh;直接控制台IO,输入,输入的值在al中

movah,06h

int21h

jnzbg;flag的ZF标志位不为0跳转至bg

popdx;恢复dx,ax的值

popax

jmpee;无条件转移至ee

jgs:

movdx,io8255c

moval,55h;al=01010101b

hh:

outdx,al;将al写入PC口

movcx,0fffh;设置时延

l3:

loopl3

notal;对al按位取反

pushax;保存ax

pushdx;保存dx

movdl,0ffh;直接控制台IO,输入,输入的值在al中

movah,06h

int21h

jnzbg1;flag的ZF标志位不为0跳转至bg1

popdx;恢复dx,ax的值

popax

jmphh;无条件转移至hh

bg1:

jmpbg;无条件转移至bg

qit:

movax,4c00h;交还控制权给DOS

int21h

codeends

endstart

6-78255简单控制交通灯实验

实验电路图

程序流程图

实验代码:

stacksegment

db256dup(?

stackends

datasegment

ioportequ0ff00h-0280h

io8255aequioport+288h;PA口

io8255bequioport+289h;PB口

io8255cequioport+28ah;PC口

io8255dequioport+28bh;控制口

portc1db24h,44h,04h,44h,04h,44h,04h;6个灯可能的

db81h,82h,80h,82h,80h,82h,80h;状态数据

db0ffh;结束标志

dataends

codesegment

assumecs:

code,ds:

data,ss:

stack

start:

movax,data;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:

outdx,al;向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

codeends

endstart

附加实验

datasegment

ioportequ0ff00h-0280h

io8255aequioport+288h;PA口

io8255bequioport+289h;PB口

io8255cequioport+28ah;PC口

io8255dequioport+28bh;控制口

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data;data段装填

movds,ax

movax,stack;stack段装填

movss,ax

movdx,io8255d

moval,10010000b;命令字A,B,C组方式0,A组入,B,C出

outdx,al

wait1:

movdx,io8255a

inal,dx;从A口读入数据

movdx,io8255c

outdx,al;将al中的数据写入C口

movah,06h;直接控制台IO

movdl,0ffh;输入

int21h

jmpwait1;跳转到wait1

movah,4ch;交还控制权

int21h

codeends

endstart

6-15A/D转换实验

实验代码:

datasegment

ioportequ0ff00h-0280h

io0809aequioport+298h

ts1db'a/dstart.',0dh,0ah,'$'

ts2db'a/dend.',0dh,0ah,'$'

bufdw300dup(?

dataends

stacksegment

stadw20dup(?

topequlengthsta

stackends

codesegment

assumecs:

code,ds:

data,ss:

stack

start:

movax,data;data段装填

movds,ax

movax,stack;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;保存cx的值

movcl,4

shral,cl;逻辑右移4位

popcx;恢复cx的值

addal,30h;al=al+30h

cmpal,39h

jbedispl;小于等于39h时跳转到displ

addal,07h;al=al+07h

displ:

movdl,al;dl=al

movah,2;显示输出,要输出的值为dl中的值

int21h

moval,[di];取出buf中的值,赋给al

incdi

andal,0fh;al的值与0fh按位求与

addal,30h;al=al+30h

cmpal,39h

jbedisph;小于等于39h跳转到disph

addal,07h;大于39h时,al=al+07h

disph:

movdl,al;dl=al

movah,2;显示dl中的值

int21h

movdl,20h

movah,2

int21h

int21h;显示两个空格

loopconv;循环至conv

leadx,ts2

movah,9;显示结束信息

int21h

adintprocnear

pushax

pushbx

pushcx

movcx,0ffffh;设置时延

delay:

movbx,2fh

delay1:

decbx

cmpbx,0

jnzdelay1

loopdelay

movdx,io0809a

inal,dx;从io0809a读入一个字节赋给al

movsi,ax;si=ax,用si把读入的数据返回出去

popcx

popbx

popax

ret

adintendp

codeends

endstart

实验数据:

电压/V

0

0.5

1.0

1.5

2.0

2.5

3.0

3.5

4.0

4.5

5.0

输出(十六进制)

0

1AH

35H

4FH

69H

83H

9DH

B8H

D2H

EDH

FFH

输出(十进制)

0

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

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2