接口与通信实验报告有注释.docx

上传人:b****5 文档编号:12033831 上传时间:2023-04-16 格式:DOCX 页数:28 大小:464.43KB
下载 相关 举报
接口与通信实验报告有注释.docx_第1页
第1页 / 共28页
接口与通信实验报告有注释.docx_第2页
第2页 / 共28页
接口与通信实验报告有注释.docx_第3页
第3页 / 共28页
接口与通信实验报告有注释.docx_第4页
第4页 / 共28页
接口与通信实验报告有注释.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

接口与通信实验报告有注释.docx

《接口与通信实验报告有注释.docx》由会员分享,可在线阅读,更多相关《接口与通信实验报告有注释.docx(28页珍藏版)》请在冰豆网上搜索。

接口与通信实验报告有注释.docx

接口与通信实验报告有注释

接口与通讯实验报告

1、8253定时/计数器实验

2、8255并行接口实验

3、数字式时钟(电子钟)

4、D/A(数/模)转换实验

5、A/D(模/数)转换实验

 

一.实验目的与要求

1.学会8253芯片和微机接口原理和方法。

2.掌握8253定时器/计数器的工作方式和编程原理。

二.实验内容

1.实验原理

本实验原理图如图5-12所示,8253A的A0、A1接系统地址总线A0、A1,故8253A有四个端口地址,如端口地址表5-2所示。

8253A的片选地址为48H~4FH。

因此,本实验仪中的8253A四个端口地址为48H、49H、4AH、4BH,分别对应通道0、通道1、通道2和控制字。

采用8253A通道0,工作在方式3(方波发生器方式),输入时钟CLK0为1MHZ,输出OUTO要求为1KHZ的方波,并要求用接在GATE0引脚上的导线是接地("0"电平)或甩空("1"电平)来观察GATE对计数器的控制作用,用示波器观察输出波形。

2、实验线路连接

(1)8253A芯片的CLK0引出插孔连分频输出插孔1MHZ。

(2)8253A的GATE0接+5V。

3、实验步骤

(1)按图5-12连好实验线路

(2)运行实验程序

在系统显示"DVCC-86H"状态下,按任意键,系统显示命令提示符"-"。

按GO键,系统显示"1000XX"

输入F000:

B290

再按EXEC键,显示"8253-1"

用示波器测量8253A的OUT0输出插孔,应有频率为1KHZ的方波输出。

幅值0~5V。

三、实验程序,要求写注释。

CODESEGMENT

ASSUMECS:

CODE

TCONTROEQU004BH;控制口地址

TCON2EQU004AH;计数器地址

CONTPORTEQU00DFH

DATAPORTEQU00DEH

DATA1EQU0500H

START:

JMPTCONT

TCONT:

CALLFORMAT;将要显示的“8253--1”写入内存

CALLLEDDISP;调用数码管扫描程序将”8253—-1显示出来

MOVDX,TCONTRO;控制口地址送入DX中

MOVAL,0B4H;置8253工作方式2的控制字

OUTDX,AL;置入控制字

MOVDX,TCON2;使用通道2

MOVAL,00

OUTDX,AL;写时间常数低8位

MOVAL,20H;改变时间常数为2000H

OUTDX,AL;写时间常数高8位

HLT

LEDDISP:

MOVAL,90H;显示数据方式命令字送8279控制

MOVDX,CONTPORT

OUTDX,AL

MOVBYTEPTRDS:

[0600H],00;置显示位数初值为0

LED1:

CMPBYTEPTRDS:

[0600H],07H;判断显示位数满8位否

JALED2;满8位转子程序返回

MOVBL,DS:

[0600H];未满8位从数据区取数

MOVBH,0H

MOVAL,CS:

[BX+DATA1]

MOVDX,DATAPORT;8279数据口

OUTDX,AL

ADDBYTEPTRDS:

[0600H],01H;显示位数加1

JNZLED1

LED2:

RET

FORMAT:

MOVBX,0;初始化子程序

MOVWORDPTRDS:

[BX+0500H],4006H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],4040H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],6D4FH

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],7F5BH

RET

CODEENDS

ENDSTART

_

一、实验目的与要求

1.掌握8255A和微机接口方法。

2.掌握8255A的工作方式和编程原理。

二、实验内容

1、实验原理

如实验原理图5-8所示,PC口8位接8个开关K1~K8,PB口8位接8个发光二极管,从PC口读入8位开关量送PB口显示。

拨动K1~K8,PB口上接的8个发光二极管L1~L8对应显示K1~K8的状态。

(a)工作方式控制字(b)C口按位置位/复位控制字

2、实验线路连接

(1)8255A芯片PC0~PC7插孔依次接K1~K8。

(2)8255A芯片PB0~PB7插孔依次接L1~L8。

(3)8255A的CS插孔接译码输出070H-07FH插孔。

3、实验步骤

(1)按图5-8连好线路。

(2)运行实验程序。

在系统显示"DVCC-86H"状态下,按任意键,显示器显示"-"。

按GO键,显示"1000XX"输入F000:

B160再按EXEC键,在DVCC-8086H显示上显示器"8255-1",同时拨动K1~K8,L1~L8会跟着亮灭。

三、实验程序,要求写注释。

CODESEGMENT

ASSUMECS:

CODE

IOCONPTEQU0073H;8255控制端口地址

IOCPTEQU0072H;C口端口地址

IOBPTEQU0071H;B口端口地址

CONTPORTEQU00DFH

DATAPORTEQU00DEH;命令控制端口地址

DATA1EQU0500H;数据端口地址

START:

JMPIOLED

IOLED:

CALLFORMAT;调用初始化程序子程序

CALLLEDDISP;调用显示“8255-1”子程序

MOVAL,82H;设置8255控制字,B,C口的输入输出方式对调了

MOVDX,IOCONPT

OUTDX,AL;写进控制字

NOP;不操作,延时作用

NOP

NOP

IOLED1:

MOVDX,IOBPT;读取PB口的值

INAL,DX

MOVDX,IOCPT;将PB口的值送PC口显示

OUTDX,AL

MOVCX,0FFFFH

DELAY:

LOOPDELAY;程序延迟循环模块

JMPIOLED1

LEDDISP:

MOVAL,90H;显示“8255-1”子程序

MOVDX,CONTPORT

OUTDX,AL

MOVBYTEPTRDS:

[0600H],00

LED1:

CMPBYTEPTRDS:

[0600H],07H;判断显示为数是否满8位

JALED2;是跳到LED2

MOVBL,DS:

[0600H];/否,取高一位数据

MOVBH,0H

MOVAL,CS:

[BX+DATA1]

MOVDX,DATAPORT

OUTDX,AL;显示数据

ADDBYTEPTRDS:

[0600H],01H

JNZLED1

LED2:

RET;子程序返回

FORMAT:

MOVBX,0;初始化程序子程序

MOVWORDPTRDS:

[BX+0500H],4006H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],4040H

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],6D6DH

ADDBX,2

MOVWORDPTRDS:

[BX+0500H],7F5BH

RET

CODEENDS

ENDSTART

 

一.实验目的与要求

1.学习8253编程定时/计数器的工作方式

2.掌握中断控制器8259A与微处理机接口的原理和方法

3.掌握中断控制器8259A的综合应用编程

二.实验内容

1.实验原理

用8253和8259现实数码管显示时钟。

利用8253的定时器功能。

8253有三个端口地址为48H,49H,4AH本实验采用8253的通道2,工作方式3(方波发生器方式)输入CLK2为1MHZ。

先给8253的初值0C350H,循环记数。

即一次记数完毕后,自动装入初值。

输出OUT2作为8259的输入脉冲。

8259有两个口地址,本实验为20H和21H,其中20H用来写ICW1,21H用来写ICW2、ICW4,本实验中8259为单片,边沿触发,采用3号中断源,即IR3和8259输出口OUT2相连,每过1/20秒接收到一个中断,向8259发出中断请求信号,如果电平信号不符合要求,则自动转到7号中断,显示“ERR”,CPU响应后,在中断处理程序中,对中断次数进行记数,记满20次,把时间缓冲区的时间加1,并将其输入到显示缓冲区,以便显示器显示更新后的时间。

计数初值的计算:

1/1000000*X=1/20,X=50000D=0C350H(用1MHZ信号产生1/20秒方波)。

2.实验线路连接

(1)8253A芯片的CLK2引出插孔连分频输出插孔1MHZ。

(2)8253A的GATE2接+5V。

(3)8259A的IR3插孔和8253的OUT2插孔相连。

3.程序流程框图

 

主程序中断子程序

4.实验主要仪器设备和材料

PC机、DVCC-8086JH实验系统及连接导线。

5.实验方法、步骤及结果测试

(1)按图3—24连好线路。

(2)打开DVCC86H目录下的CLOCK子目录中的Eclock.asm。

(3)运行实验程序:

①按“调试”按钮(它包括‘编译’、‘联接’、‘传送’功能)。

②按“运行”按钮。

在DVCC-8086H显示上显示器"00—00—00",然后开始计时。

三、实验程序,要求写注释。

CODESEGMENT

ASSUMECS:

CODE

INTPORT1EQU0020H;8259口地址1,用来写ICW1

INTPORT2EQU0021H;8259口地址2,用来写ICW2、ICW4

INTQ3EQUINTERUPT3

INTQ7EQUINTERUPT7

CONTPORTEQU00DDH;8279命令状态口地址

DATAPORTEQU00DEH;8279键盘显示数据口地址

DATA1EQU0500H;错误信息显示缓冲区起始地址(0500H-0507H)

DATA2EQU0508H;显示译码表起始地址(0508H-0517H)

DATA3EQU0518H;初始状态显示缓冲区(0518H-051FH)

DATA4EQU0520H;时间显示缓冲区起始地址(0520H-0527H)

DATA5EQU0528H;存放已重新刷新数码管个数

DATA6EQU0529H;存放1/20秒定时中断次数

DATA7EQU052AH;存放时间的小时值

DATA8EQU052BH;存放时间的分值

DATA9EQU052CH;存放时间的秒值

DATA10EQU052EH;待更新的显示区内的地址

ORG1800H

START:

JMPTINT1

TINT1:

CALLFORMAT

CLD

MOVDX,004BH

MOVAL,0B6H

OUTDX,AL;写8253控制字,通道2,方式3

MOVDX,004AH

MOVAL,50H

OUTDX,AL;计数初值低8位

MOVAL,0C3H

OUTDX,AL;计数初值高8位

MOVSI,DATA3

CALLLEDDISP

MOVAX,0H

MOVDS,AX

CALLWRINTVER

MOVAL,13H

MOVDX,INTPORT1

OUTDX,AL

MOVAL,08H

MOVDX,INTPORT2

OUTDX,AL

MOVAL,0BH

OUTDX,AL;写中断控制字

MOVAL,0F7H

OUTDX,AL;用IR2请求中断

WAITING:

STI

JMPWAITING

WRINTVER:

MOVAX,0H

MOVES,AX

MOVDI,002CH;中断矢量地址(IR3)

LEAAX,INTQ3

STOSW

MOVAX,CS

STOSW

MOVDI,003CH;中断矢量地址(IR7)

LEAAX,INTQ7

STOSW

MOVAX,CS

STOSW

RET

INTERUPT3:

CLI;中断3服务程序

MOVAL,DS:

[DATA6];DATA6存放1/20秒定时中断次数

INCAL

MOVDS:

[DATA6],AL

CMPAL,14H;判断是否满20次中断

JCPLAY

MOVBYTEPTRDS:

[DATA6],00H;否,清零中断次数

MOVSI,DATA4;指向时间显示缓冲区首地址

CALLLEDDISP;数码管显示子程序

CALLNEWTIME;本子程序段按十进制完成时、分、

CALLCONVERSALL;本程序段将秒、分、时值进行显示译码

PLAY:

MOVAL,20H

MOVDX,INTPORT1

OUTDX,AL

STI

IRET

INTERUPT7:

CLI

MOVSI,DATA1

CALLLEDDISP

MOVAL,20H

MOVDX,INTPORT1

OUTDX,AL

IRET

LEDDISP:

MOVAL,90H;数码管显示子程序

MOVDX,CONTPORT

OUTDX,AL

MOVBYTEPTRDS:

[DATA5],00H;存放已重新刷新数码管个

LED1:

CMPBYTEPTRDS:

[DATA5],07H;判断是否已刷新8个数码

JALED2;是,退出本数码管

MOVBL,DS:

[DATA5];否,刷新本数码管

MOVBH,0H

MOVAL,CS:

[BX+SI];未满8位从数据区取数送

MOVDX,DATAPORT

OUTDX,AL

ADDBYTEPTRDS:

[DATA5],01H;显示位数加1

JNZLED1

LED2:

RET

FORMAT:

MOVBX,0

MOVWORDPTRDS:

[BX+DATA1],5050H;显示错误“rr”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],0079H;显示错误“E”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],0000H

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],0000H

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],063FH;显示“10”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],4F5BH;显示“32”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],6D66H;显示“54”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],077DH;显示“76”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],6F7FH;显示“98”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],7C77H;显示“BA”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],5E39H;显示“DC”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],7179H;显示“FE”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],3F3FH;显示“00”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],3F40H;显示“0—”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],403FH;显示“—0”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],3F3FH;显示“00”

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],3F3FH

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],3F40H

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],403FH

ADDBX,2

MOVWORDPTRDS:

[BX+DATA1],3F3FH

MOVBYTEPTRDS:

[DATA6],00D

MOVBYTEPTRDS:

[DATA7],00D

MOVBYTEPTRDS:

[DATA8],00D

MOVBYTEPTRDS:

[DATA9],00D

MOVWORDPTRDS:

[DATA10],DATA4

RET

CONVERS1:

MOVBH,0H

ANDAL,0FH

MOVBL,AL

MOVAL,CS:

[BX+DATA2]

RET

CONVERS2:

PUSHAX

CALLCONVERS1

MOVBX,WORDPTRDS:

[DATA10]

MOVDS:

[BX],AL

ADDWORDPTRDS:

[DATA10],01H

POPAX

PUSHCX

MOVCL,4H

SHRAL,CL

POPCX

CALLCONVERS1

MOVBX,WORDPTRDS:

[DATA10]

MOVDS:

[BX],AL

RET

CONVERSALL:

MOVAL,BYTEPTRDS:

[DATA9]

CALLCONVERS2

ADDWORDPTRDS:

[DATA10],02H

MOVAL,BYTEPTRDS:

[DATA8]

CALLCONVERS2

ADDWORDPTRDS:

[DATA10],02H

MOVAL,BYTEPTRDS:

[DATA7]

CALLCONVERS2

MOVWORDPTRDS:

[DATA10],DATA4

RET

NEWTIME:

CMPBYTEPTRDS:

[DATA9],59H

JCADD1

MOVBYTEPTRDS:

[DATA9],0D

CMPBYTEPTRDS:

[DATA8],59H

JCADD2

MOVBYTEPTRDS:

[DATA8],0D

CMPBYTEPTRDS:

[DATA7],23H

JCADD3

MOVBYTEPTRDS:

[DATA7],0D

JMPOK

ADD1:

MOVAL,BYTEPTRDS:

[DATA9]

ADDAL,1D

DAA

MOVBYTEPTRDS:

[DATA9],AL

JMPOK

ADD2:

MOVAL,BYTEPTRDS:

[DATA8]

ADDAL,1D

DAA

MOVBYTEPTRDS:

[DATA8],AL

JMPOK

ADD3:

MOVAL,BYTEPTRDS:

[DATA7]

ADDAL,1D

DAA

MOVBYTEPTRDS:

[DATA7],AL

OK:

RET

CODEENDS

ENDSTART

四.实验体会

本实验使自己对中断的概念认识更深了,首先这次实验程序实现先保存好环境,设置中断开中断,进入中断处理程序,关中断,恢复现场等。

实验中使用的8259为单片,边沿触发,采用3号中断源,即IR3和8259输出口OUT2相连,每过1/20秒接收到一个中断,向8259发出中断请求信号,如果电平信号不符合要求,则自动转到7号中断,显示“ERR”,CPU响应后,在中断处理程序中,对中断次数进行记数,记满20次,把时间缓冲区的时间加1,并将其输入到显示缓冲区,以便显示器显示更新后的时间。

总的来说,这次实验让自己体会了,硬件在实现需求功能上和软件很不一样,软件重视的处理数据的算法而硬件则更强调命令和硬件特性的逻辑性。

一、实验目的与要求

进一步掌握数/模转换的基本原理。

二、实验内容

1.实验原理

实验原理如图5-5所示,由于DAC0832有数据锁存器、选片、读、写控制信号线,故可与8088CPU总线直接接口。

图中是只有一路模拟量输出,且为单极型电压输出。

DAC0832工作于单缓冲方式,它的ILE接+5V,/CS和/XFER相接后作为0832芯片的片选0832CS。

这样,对DAC0832执行一次写操作就把一个数据直接写入DAC寄存器、模拟量输出随之而变化。

2.实验线路的连接

将D/A片选信号DACS插孔和译码输出070H-07FH插孔相连。

3.实验要求

(1)本实验要求在Aout端输出方波信号。

根据Vout=—(VREF(输入数字量的十进制数))/256,即可知道,只要将数字量0-256(00H-FFH)从0开始逐渐加1递增至256为止,不断循环,在AOUT端就会输出连续不断的锯齿波。

(2)、根据要求改写锯齿波程序

将锯齿波变成三角波。

4.实验软件框图:

5.实验主要仪器设备和材料

PC机、DVCC-8086JH实验系统及连接导线。

6.实验方法、步骤及结果测试

(1)根据实验原理图正确连接好实验线路

(2)正确理解实验原理

(3)实验步骤:

a:

按“调试”按钮(它包括‘编译’、‘联接’、‘传送’功能)。

b:

选“窗口”下拉菜单里的“进入示波器窗口”(这是模拟示波器)然后将其最小化。

c:

按“运行”按钮。

d:

将模拟示波器窗口打开,选择“串行口2”,再按“Ctrl+F2开关”即可看到波形。

在DVCC-8086JH数码管上显示“0832-2”,用真示波器测量DAC0832下AOUT插孔,应有锯齿波输出。

e:

根据要求改写锯齿波程序

将锯齿波变成三角波

三.实验程序,要求写注释。

(以下是以最高点0FFH,最低点00H,的三角波程序)

CODESEGMENT

ASSUMECS:

CODE//初始化一些常量值

DAPORTEQU0070H//0832数据口地址

CONTPORTEQU00DFH//8279命令控制口地址

DATAPORTEQU00DEH//8279数据口地址

DATAEQU0500H

//----------------------------------------------------------------------

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1