接口与通信实验报告

接口与通信实验报告

2023年7月14日发(作者:)

华北电力大学科技学院

实 验 报 告

实验名称

课程名称

接口与通信

专业班级: 学生姓名:

学 号: 成 绩:

指导教师: 实验日期:

|

|

|

|

华 北 电 力 大 学 科 技 学 院 实 验 报 告

开发器使用与程序设计

一、实验目的

1、了解伟福仿真软件的使用及汇编程序的调试方法;

2、掌握简单程序编写的方法;

3、通过对两个验证性实验的阅读、调试,掌握不同进制数及编码相互转换的程序设计方法。

4、完成程序设计题,加深对数码转换的理解,了解简单程序的设计方法。

二、实验仪器和设备

PC机、WAVE软件。

三、实验内容及说明

内容1:十六进制转换为ASCII码。

内容2:接受小写字母转换成大写字母并显示。

四、实验步骤

1、启动计算机,打开伟福仿真软件,进入仿真环境。首先进行仿真器的设置,点击主菜单的仿真器选项,选择仿真器设置,或者直接点击仿真器设置快捷按钮,打开仿真器设置窗口,在仿真器标签里选择使用伟福软件模拟器。

2、在编辑窗口输入第一个实验内容的源程序,保存,文件名为,

3、对源程序进行编译。点击项目菜单,选择全部编译。编译无误后,打开数据窗口,选择外部数据存储器窗口XDATA,拖动XDATA窗口的滚动条,使地址3500H出现在窗口上,改变3500H起始的8个字节单元(四个字)的内容。执行程序,点击全速执行快捷按钮,点击暂停按钮,观察以地址350AH开始的四个存储单元数据变化情况。

4、关闭此项目,新建文件,输入第二个实验的源程序,保存为,新建项目→添加文件(选择YXG-1-2),输入项目名YXG-1-2,编译,执行,成功之后在相应目录下找到对应的EXE执行文件,双击打开,在窗口输入小写字母,回车键后窗口显示对应的大写字母。

5、选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。

第 页 共 页 华 北 电 力 大 学 科 技 学 院 实 验 报 告

五、 实验结果与数据处理

实验内容1源程序:

DATA SEGMENT

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,0000H

MOV DS,AX

MOV CX,0004H

MOV DI,0000H

MOV DX,[DI]

A1: MOV AX,DX

AND AX,000FH

CMP AL,0AH

JB A2

ADD AL,07H

A2: ADD AL,30H

MOV [DI+0Ah],AL

INC DI

PUSH CX

MOV CL,04H

SHR DX,CL

POP CX

LOOP A1

MOV AH,4CH

INT 21H

CODE ENDS

END START

实验内容2源代码:

DATA SEGMENT

BUF DB 200 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET BUF

MOV CL,00H

A1:

MOV AH,01H

INT 21H

CMP AL,0DH

JZ A2

SUB AL,20H

MOV [SI],AL

INC SI

INC CL

JMP A1

A2: MOV DL,0AH

MOV AH,02H

INT 21H

MOV DL,0DH

INT 21H

MOV SI,OFFSET BUF

CX←代码长度

DI←起始长度

DX←16进制数

AX←DX

取低四位

0~9?

是AH~FH,再加7H

转换为ASCII存结果

修改指针

DX内容右移四CX-1=0?

结束

第 页 共 页 华 北 电 力 大 学 科 技 学 院 实 验 报 告

MOV CH,00H

A3: MOV DL,[SI]

MOV AH,02H

INT 21H

INC SI

LOOP A3

PUSH BX;延时程序

PUSH CX

MOV BX,0FFFH

DELAY:

MOV CX,0FFFH

DELAY1:

DEC CX

JNZ DELAY1

DEC BX

JNZ DELAY

POP CX

POP BX

MOV AH,4CH

INT 21H

CODE ENDS

END START

开始

接受键入的字符→AL

小写转换为大写

显示转换后的字符

存入缓冲区

缓冲区指向下一单元

结束

五、实验总结与思考

本次试验达到预期结果,完成了对两个验证实验的验证。

在实验过程中,通过对程序的单步执行,观察各个寄存器和内存单元数据的变化,对于程序的调试很有帮助,为后续实验打好了基础。

在第二个实验内容的验证过程,开始由于没有延时,运行时看不清实验结果,后来通过加入一定延时解决了问题,还参考了其他的同学的解决办法,例如通过DOS的2号功能调用,开阔了思路,使我收获很大。

第 页 共 页 华 北 电 力 大 学 科 技 学 院 实 验 报 告

中断8259应用 定时/计数器8253应用

一、实验目的

(1)通过阅读并调试示例程序,学习8088/86与8259A的连接与控制方法,掌握8259A中断控制器的工作原理。

(2)完成程序设计题,学会编写中断服务程序

二、实验内容

1. 实验原理

8259A是一种可编程序中断控制器,与8088/86微机兼容,能处理8级优先权中断,亦可以通过级联构成64级向量优先权中断系统。具有可编程控制中断方式,并能分别屏蔽各个中断请求。通过4个初始化命令字(ICW1~ICW4)及3个操作命令字(OCW1~OCW3)使用8259A可编程中断控制器。

(1) 初始化命令字

1) ICW1写入双数地址。

2) ICW2写入单数地址

3) ICW3写入单数地址

4) ICW4写入单数地址

(2) 操作命令字

1) OCW1写入单数地址

2) OCW2写入双数地址

3) OCW3写入双数地址

2. 实验内容

用8088/86控制8259可编程中断控制器,实现对外部中断的响应和处理。要求程序中对每次中断进行计数,并将计数结果用8255A的PA端口输出到LED显示。

3. 实验电路

实验电路参考实验指导书。

4. 参考程序

参考实验指导书

5. 程序设计

修改上述程序,使每中断10次计数器加1,并将计数结果从8255的PB口输出到LED显示。完成电路设计及程序的编制,进行调试并验证结果。

程序如下:

mode equ 80h

pa8255 equ 8000h

pb8255 equ 8001h

ctl8255 equ 8003h

icw1 equ 00010011b

icw2 equ 00100000b

icw4 equ 01h

ocw1 equ 11111110b

cs8259a equ 09000h

cs8259b equ 09001h

data segment

cnt db 0

cn db 0

data ends

code segment

assume cs:code,ds:data

ienter proc near

push ax

push dx

mov dx,pb8255

inc cnt

cmp cnt,0ah

第 页 共 页 华 北 电 力 大 学 科 技 学 院 实 验 报 告

jnz P1

mov cnt,0

inc cn

mov al,cn

out dx,al

P1:mov dx,cs8259a

mov al,20h

out dx,al

pop dx

pop ax

iret

ienter endp

init proc near

mov dx,cs8259a

mov al,icw1

out dx,al

mov dx,cs8259b

mov al,icw2

out dx,al

mov al,icw4

out dx,al

mov al,ocw1

out dx,al

ret

init endp

start proc near

mov dx,ctl8255

mov al,mode

out dx,al

cli

mov ax,0

mov ds,ax

mov bx,4*icw2

mov ax,offset ienter

mov [bx],ax

mov ax,code

inc bx

inc bx

mov [bx],ax

call init

mov ax,data

mov ds,ax

mov cn,0

mov al,cn

mov dx,pb8255

out dx,al

sti

lp:

nop

jmp lp

start endp

code ends

end start

三、实验结果

成功实现10次中断计数器加1的功能,成功完成题目的内容。

四、实验心得

对于中断的使用有很大的提高,能够熟悉控制中断,同时与如何使用计数器和寄存器有了一定的提高,同时了解和熟悉了中断程序的编写。

第 页 共 页 华 北 电 力 大 学 科 技 学 院 实 验 报 告

定时/计数器8253应用

一、实验目的

通过阅读并调试示例程序,完成程序设计题,掌握8253的基本工作原理和编程方法,熟悉8253在系统中的典型接法。

二、实验内容

1. 实验原理

8253(或8254)可编程定时/计数器是Intel公司产生的通用外围接口芯片,它有3个独立的16位计数器,计数范围0~2MHz,而8253—2和8254的最高技术频率为5MHz。它所有的计数方式和操作方式都通过编程控制。

2.程序设计

按图接线,通过编程实现LED指示灯以1s的时间间隔闪烁。并通过在硬件上接线,实现在7段数码管上刷新显示。

程序如下:

CONTROL EQU 08003H

COUNT0 EQU 08000H

COUNT1 EQU 08001H

COUNT2 EQU 08002H

CODE SEGMENT

ASSUME CS:CODE

START PROC NEAR

MOV AL,30H

MOV DX,CONTROL

OUT DX,AL

MOV AL,5

MOV DX,COUNT0

OUT DX,AL

MOV AL,0

OUT DX,AL

AGAIN:

MOV AL,00000000B

MOV DX,CONTROL

OUT DX,AL

MOV DX,COUNT0

IN AL,DX

MOV BL,AL

IN AL,DX

MOV AH,AL

MOV AL,BL

JMP AGAIN

START ENDP

CODE ENDS

END START

三、 实验结果

成功实现LED灯每隔一秒计数闪烁一次,亦即是只能够实现频闪,但是并不能同时做到七段数码器计数,不停刷新数字计数。最多也只能只能做到让其七段数码管在信号输入的时候不停的往前刷新,但只限于0-9里面刷新计数。

四、实验心得

这个实验处理计数这个功能实现以外,还综合了七段数码管的刷新实现功能,对于后面的七段数码管的操作实验有着不可估计的好处,可以提前熟悉了七段数码管是如何实现功能的过程。

并行接口8255应用(跑马灯)

第 页 共 页 华 北 电 力 大 学 科 技 学 院 实 验 报 告

一、实验目的

(1) 通过阅读并调试示例程序,掌握8255A可编程并行接口的工作原理。

(2) 完成程序设计题。学会并行接口电路的设计。及编写输入输出控制程序。

二、实验内容

1. 实验原理

8255A是可编程的通用并行输入/输出接口芯片,因通用性强,使用灵活,可直接与CPU总线相连,应用非常广泛。

8255A芯片内部有3个8为的输入/输出端口,即A口,B口和C口。从内部控制的角度来讲,可分为两组:A组合B组。A组控制模块管理A口和C口德高四位(PC7~PC4),B组控制模块管理B口和C口的低四位(PC3~PC0)。

面向I/O设备的信号线:

(1) PA7~PA0:A口I/O信号线

(2) PB7~PB0:B口I/O信号线

(3) PAC~PC0:C口I/O信号线

面向系统的信号线:

(1) D7~D0:双向数据线,可与系统数据总线相连;

(2) /CS:片选信号,当/CS=0时,选中8255A;

(3) A1、A0:端口选择信号,当/CD有效时,再由A1、A0的组合确定选择A口】B口、C口或控制寄存器口;

(4) /RD:芯片读信号,当/RD=0是。CPU从8255A的指定端口读取数据或状态;

(5) /WR:芯片写信号,当/WR=0时,CPU想向8255A的制定端口写入数据或控制字;

(6) RESET:复位信号,当RESET=1时,所以内部寄存器都被清零,3个端口被自动设为入端口。

8255A的三种工作方式:

(1) 方式0:基本输入/输出方式;

(2) 方式1:选通型输入/输出方式

(3) 方式2:双向数据传送方式

8255A的控制字:

(1) 工作方式选择控制字,D7~D0控制位的含义见表。

(2) C口按位置位/复位控制字。

2、实验内容

跑马灯程序设计,要求K0=0时,从左向右跑马灯;K1=0时,从右向左跑马灯;K2=0时,从左从右向中间跑马灯,LED从PC口输出。完成得安路设计及程序的编译,进行调试并验证结果。

程序如下:

DATA SEGMENT

MODE EQU 082H

PORTA EQU 8000H

PORTB EQU 8001H

PORTC EQU 8002H

CADDR EQU 8003H

POS DB 0FFH

NOWDATA DB 0FFH

LEFT DB 0FFH

RIGHT DB 0FFH

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV AL,MODE

MOV DX,CADDR

OUT DX,AL

第 页 共 页 华 北 电 力 大 学 科 技 学 院 实 验 报 告

INPUT:

MOV DX,PORTB

IN AL,DX

CMP AL,NOWDATA

JNZ INITIAL

CMP AL,0FEH

JZ K0

CMP AL,0FDH

JZ K1

CMP AL,0FBH

JZ K2

CMP AL,0F7H

JZ K3

JMP INPUT

INITIAL:

MOV NOWDATA,AL

CMP AL,0FEH

JZ INTIK0

CMP AL,0FDH

JZ INTIK1

CMP AL,0FBH

JZ INTIK2

CMP AL,0F7H

JZ INTIK3

INTIK0:

MOV POS,10000000B

JMP OUTPUT

INTIK1:

MOV POS,00000001B

JMP OUTPUT

INTIK2:

MOV LEFT,10000000B

MOV RIGHT,00000001B

MOV AL,LEFT

OR AL,RIGHT

MOV POS,AL

JMP OUTPUT

INTIK3:

MOV LEFT,00010000B

MOV RIGHT,00001000B

MOV AL,LEFT

OR AL,RIGHT

MOV POS,AL

JMP OUTPUT

K0:

ROR POS,1

JMP OUTPUT

K1:

ROL POS,1

JMP OUTPUT

K2:

ROR LEFT,1

ROL RIGHT,1

MOV AL,LEFT

OR AL,RIGHT

MOV POS,AL

K3:

ROR LEFT,1

第 页 共 页 华 北 电 力 大 学 科 技 学 院 实 验 报 告

ROL RIGHT,1

MOV AL,LEFT

OR AL,RIGHT

MOV POS,AL

OUTPUT:

MOV AL,POS

MOV DX,PORTA

OUT DX,AL

MOV CX,5000H

LOOP $

JMP INPUT

CODE ENDS

END START

三、实验心得

通过设计跑马灯电路,对于硬件的连接有了更深一层的认识,同时对于编程的熟练有了一定的提高,同时认识到控制信号的使用。

第 页 共 页 华 北 电 力 大 学 科 技 学 院 实 验 报 告

存储器扩展及读写实验

一、实验目的

(1) 通过阅读并测试示例程序,完成程序设计题,熟悉静态RAM的扩展方法。

(2) 了解8086/8088与存储器的连接,掌握扩展存储器的读写方法。

二、实验内容

1.实验原理(62256RAM介绍)

62256是32*8的静态存储器,管脚如图所示。其中:A0~A14为地址线,DB0~DB7为数据线,/cs为存储器的片选,/OE为存储器数据输出选通信号,/WE为数据写入存储器信号。62256工作方式如下图。

/CS /WE /OE 方式 DB-~DB7

H X X 未选中 高阻

L H H 读写禁止 高阻

L L H 写 IN

L H L 读 OUT

2.实验内容

设计扩展存储电器的硬件连接图并编制程序,讲字符A~Z循环存入62256扩展RAM中,让后再检查扩展存储器中的内容。

三、程序设计

编写升序,将4KB扩展存储器交替写入55H和0AAH。

程序如下:

RAMADDR EQU 0000H

RAMOFF EQU 9000H

COUNT EQU 800H

CODE SEGMENT

ASSUME CS:CODE

START: PROC NEAR

MOV AX,RAMADDR

MOV DS,AX

MOV BX,RAMOFF

MOV CX,COUNT

REP1: MOV DL,55H

MOV [BX],DL

INC BX

MOV DL,0AAH

MOV [BX],DL

INC BX

LOOP REP1

JMP $

MOV AH,04H

INT 21H

CODE ENDS

四、实验结果

通过在软件上调试,运行时能够看到内存地址的改变,证明此扩展的程序成功实现了。

五、实验心得

了解了内存如何扩展的过程,对于理论知识的了解有了进一步的加深,同时对于内存控制有了加深了解。而通过实际操作,扩展存储器的读写方法已经了解了。

第 页 共 页 华 北 电 力 大 学 科 技 学 院 实 验 报 告

模/数(A/D)转换结果送数码管显示(综合实验)

一、实验目的

(1) 通过阅读并调试示例程序,了解A/D转换的基本原理。

(2) 完成程序设计题,掌握ADC08009的使用方法。

(3) 了解用总线控制数码管显示

二、实验内容

1. 实验原理

ADC0809是8位8通道A/D转换器,芯片内包括一个8位的逐次逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑。用该电路可直接采样8个单端的模拟信号,分时进行A./D转换,在多点巡回检测,过程控制等应用领域使用非常广泛。ADC0809的主要技术指标为:

(1) 分辨率:8位;

(2) 单电源:+5V;

(3) 总的不可调误差:正负1LSB

(4) 转换时间:取决于时钟频率,在1000KHZ时,一次模拟量转换时间为100us;

(5) 模拟量输入范围:单极性0~5V;

(6) 时钟频率范围:10~1280KHZ;

(7) 参考电压VREF(+)、VREF(-):+5V;

(8) 8通道模拟转换信号ADD_C、ADD_B、ADD_A;

(9) A/D转换方法;

1) IN0单极性输入电压与转换后数字的关系为N=Ui/(Uref/256) ,其中Ui为输入电压,Uref为参考电压,这里参考电压为+5V电源。

2) 一次A/D转换的程序可以为

MOV DX,口地址

OUT DX,AL ;启动转换

延时

IN AL,DX ;读取转换结果放在AL中

2. 实验内容

通过电位器输出0~5V直流电压送入ADC0809通道0(IN0),利用输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。

编程采集IN0输入的电压,通过8255PA连接发光二极管显示转换后的数据(16进制数)。

3. 实验电路

电路图如实验指导书上所述。

三、 程序设计

代码如下:

CS0809 EQU 09000H

OUTBIT EQU 08002H

OUTSEG EQU 08004H

DATA SEGMENT

LEDBUF DB 2 DUP (?)

NUM DB 1 DUP (?)

DELAYT DB 1 DUP (?)

LEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

DELAY PROC NEAR

PUSH AX

PUSH CX

MOV AL,0H

MOV CX,AX

LOOP $

POP CX

第 页 共 页 华 北 电 力 大 学 科 技 学 院 实 验 报 告

POP AX

RET

DELAY ENDP

DISPLAYLED PROC NEAR

MOV BX,OFFSET LEDBUF

MOV CL,2

MOV AH,00100000B

DLOOP:

MOV DX,OUTBIT

MOV AL,0

OUT DX,AL

MOV AL,[BX]

MOV DX,OUTSEG

OUT DX,AL

MOV DX,OUTBIT

MOV AL,AH

OUT DX,AL

PUSH AX

MOV AH,1

CALL DELAY

POP AX

SHR AH,1

INC BX

DEC CL

JNZ DLOOP

MOV DX,OUTBIT

MOV AL,0

OUT DX,AL

RET

DISPLAYLED ENDP

START PROC NEAR

MOV AX,DATA

MOV DS,AX

AGAIN:

MOV AL,0

MOV DX,CS0809

OUT DX,AL

MOV CX,40H

LOOP $

IN AL,DX

MOV NUM,AL

MLOOP:

MOV CH,NUM

MOV AH,0

MOV BX,OFFSET LEDBUF

FILLBUF:

MOV SI,OFFSET LEDMAP

MOV AL,CH

AND AL,0F0H

MOV CL,4

SHR AL,CL

ADD AX,SI

MOV SI,AX

MOV AL,[SI]

MOV [BX],AL

INC BX

DEC CL

MOV AL,CH

第 页 共 页 华 北 电 力 大 学 科 技 学 院 实 验 报 告

AND AL,0FH

MOV SI,OFFSET LEDMAP

ADD AX,SI

MOV SI,AX

MOV AL,[SI]

MOV [BX],AL

MOV DELAYT,20

DISPAGAIN:

CALL DISPLAYLED

DEC DELAYT

JNZ DISPAGAIN

JMP START

START ENDP

CODE ENDS

END START

四、实验总结

通过这几周的五个实验,让我对接口与通信技术这们课程有一个深刻

的认识,更培养了自己的动手能力,让理论知识与实践得到很好的结合

第 页 共 页

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689331713a231128.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信