接口与通信实验报告有注释.docx
- 文档编号:12033831
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:28
- 大小:464.43KB
接口与通信实验报告有注释.docx
《接口与通信实验报告有注释.docx》由会员分享,可在线阅读,更多相关《接口与通信实验报告有注释.docx(28页珍藏版)》请在冰豆网上搜索。
接口与通信实验报告有注释
接口与通讯实验报告
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
//----------------------------------------------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 接口 通信 实验 报告 注释