接口与通讯实验报告.docx
《接口与通讯实验报告.docx》由会员分享,可在线阅读,更多相关《接口与通讯实验报告.docx(37页珍藏版)》请在冰豆网上搜索。
接口与通讯实验报告
接口与通讯实验报告
1、8253定时/计数器实验
2、8255并行接口实验
3、数字式时钟(电子钟)
4、D/A(数/模)转换实验
5、A/D(模/数)转换实验
学生学院计算机学院
专业班级07网络工程一班
学号3107006963
学生姓名张伟
指导教师区明明
2009年12月8日
计算机学院网络工程专业1班___组、学号3107006963
姓名张伟协作者_________教师评定_________________
实验题目8255A可编程并行实验口、8253A定时/计数器实验
8255A可编程并行实验口
一、实验目的与要求
1、掌握并行接口芯片8255A和微机接口的连接方法。
2、掌握并行接口芯片8255A的工作方式及其编译方法。
二、实验内容
1、实验原理
如实验原理图3-8所示,PC口8位接8个开关K1~K8,PB口8位接8个发光二极管,从PC口读入8位开关量送PB口显示。
拨动K1~K8,PB口上接的8个发光二极管L1~L8对应显示K1~K8的状态。
2、实验线路连接
(1)8255A芯片PC0~PC7插孔依次接K1~K8。
(2)8255A芯片PB0~PB7插孔依次接L1~L8。
(3)8255A的CS插孔接译码输出070H-07FH插孔。
3、实验步骤
(1)按图5-8连好线路。
(2)运行实验程序。
在DVCC-8086H显示上显示器"8255-1",同时拨动K1~K8,L1~L8会跟着亮灭。
三、改写的实验程序
CODESEGMENT
ASSUMECS:
CODE//定义代码段
IOCONPTEQU0073H
IOCPTEQU0072H//C口地址
IOBPTEQU0071H//B口地址
CONTPORTEQU00DFH
DATAPORTEQU00DEH
DATA1EQU0500H//赋初值
START:
JMPIOLED//跳转到IOLED
IOLED:
CALLFORMAT//调用FORMAT
CALLLEDDISP//调用LEDDISP
MOVAL,81H//改为B口输出,C口输入的控制字为81H
MOVDX,IOCONPT
OUTDX,AL//写控制字IOCONPT到82H
NOP
NOP
NOP//延迟
IOLED1:
MOVDX,IOCPT
INAL,DX//改为C口输入
MOVDX,IOBPT
OUTDX,AL//改为B口输出
MOVCX,0FFFFH
DELAY:
LOOPDELAY//循环
JMPIOLED1//跳到IOLED1
LEDDISP:
MOVAL,90H
MOVDX,CONTPORT
OUTDX,AL//送控制字到90H
MOVBYTEPTRDS:
[0600H],00//将00送到段内地址为0600H的地方
LED1:
CMPBYTEPTRDS:
[0600H],07H//比较地址为0600H内的内容与07H的大小
JALED2//大于的话就跳至LED2
MOVBL,DS:
[0600H]//将地址为0600H的内容送到BL中
MOVBH,0H//将0H送到BH中
MOVAL,CS:
[BX+DATA1]//将地址为BX与DATA1地址送到AL中
MOVDX,DATAPORT
OUTDX,AL//将dataport送到地址为bx+data1的地方
ADDBYTEPTRDS:
[0600H],01H//加1
JNZLED1//结果不等于0则跳至LED1
LED2:
RET//结束
FORMAT:
MOVBX,0
MOVWORDPTRDS:
[BX+0500H],4006H//将4006H送到地址为BX+0500h的地方
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],4040H
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],6D6DH
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],7F5BH
RET
CODEENDS
ENDSTART
8253A定时/计数器
一、实验目的
1.学会8253芯片和微机接口原理和方法。
2.掌握8253定时器/计数器的工作方式和编程原理。
二、实验内容
本实验原理图如图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对计数器的控制作用,用示波器观察输出波形。
实验线路连接
(1)8253A芯片的CLK0引出插孔连分频输出插孔1MHZ。
(2)8253A的GATE0接+5V。
实验步骤
(1)按图5-12连好实验线路
(2)运行实验程序
(2)用示波器测量8253A的OUT0输出插孔,应有频率为1KHZ的方波输出。
幅值0~5V。
三、改写实验程序
CODESEGMENT
ASSUMECS:
CODE
TCONTROEQU004BH
TCON2EQU004AH
CONTPORTEQU00DFH
DATAPORTEQU00DEH
DATA1EQU0500H
START:
JMPTCONT//跳转
TCONT:
CALLFORMAT//调用
CALLLEDDISP//调用
MOVDX,TCONTRO
MOVAL,0B6H//将方式2的控制字送到AL
OUTDX,AL//将方式2控制字写到地址口为TCONTRO的地方
MOVDX,TCON2
MOVAL,00
OUTDX,AL//将00写到地址口为TCON2的地方
MOVAL,20H//修改频率
OUTDX,AL
HLT
LEDDISP:
MOVAL,90H
MOVDX,CONTPORT
OUTDX,AL//将90H写到地址为CONTPORT的地方
MOVBYTEPTRDS:
[0600H],00//将00送到地址为0600H的地方
LED1:
CMPBYTEPTRDS:
[0600H],07H//比较大小
JALED2//大于则跳转
MOVBL,DS:
[0600H]
MOVBH,0H
MOVAL,CS:
[BX+DATA1]
MOVDX,DATAPORT
OUTDX,AL//将地址为BX+DATA1的内容送到DATAPORT
ADDBYTEPTRDS:
[0600H],01H//加法运算
JNZLED1//不等于0则跳转
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班___组、学号3107006963
姓名张伟协作者_________教师评定_________________
实验题目8259A单级中断控制、数字式时钟(电子式)
8259单级中断控制:
一、实验目的与要求
1.掌握中断控制器8259A与微机接口的原理和方法
2.掌握中断控制器8259A的应用编程
二、实验内容
1、实验原理
8259A中断控制芯片工作在主片方式下,有8个中断请求输入端IR0-IR7,它们有各自的中断型号和中断矢量地址。
我们可以通过对各个片写初始化命令字,写控制命令字以及查询字等来确定中断请求信号等。
在写这些命令的时候,我们要明确命令字各个位表示什么含义,再根据所需来确定各个位的值。
2、实验线路连接
接线按照图3-14连接,IR3插孔与SP插孔相连,中断方式为边沿触发方式。
3、实验步骤
1.按图接好实验线路。
2.运行实验程序,先按连接,编译调试,后按运行。
在DVCC-8086JH上显示“8259-1”当我们按一次中断,我们可以看到显示器将显示中断次数。
4、程序流程图
主程序
开始
调用显示00-00-00
写8253控制字
填8259中断向量表
8259初始化
开中断
等待中断
中断服务程序
开始
中断次数=20
次数加1
写时间缓冲区
中断返回
调用显示缓冲区
结束
5、改写的8259实验程序,以IR2作为中断源:
CODESEGMENT
ASSUMECS:
CODE//定义代码段
INTPORT1EQU0020H//ICW3的地址
INTPORT2EQU0021H//ICW1的地址
INTQ2EQUINTREEUP2//改为IR2为中断
INTQ7EQUINTREEUP7//中断IR7
CONTPORTEQU00DFH
DATAPORTEQU00DEH
DATA0EQU0580H
DATA1EQU0500H
DATA2EQU0508H
DATA3EQU0518H
DATA4EQU0520H//赋值
ORG1800H
START:
JMPTint1
Tint1:
CALLFORMAT
CLD
MOVDI,DATA0
MOVCX,08H
XORAX,AX//对AX清零
REPSTOSW
MOVSI,DATA3
CALLLEDDISP//显示8259-1
MOVAX,0H
MOVDS,AX
CALLWRINTVER//调用写中断
MOVAL,13H//对ICW3写控制字
MOVDX,INTPORT1
OUTDX,AL
MOVAL,08H//对ICW1写控制字
MOVDX,INTPORT2
OUTDX,AL
MOVAL,09H
OUTDX,AL
MOVAL,0FBH//IR2为中断源的控制字
OUTDX,AL
MOVBYTEPTRDS:
[0601H],01H;TIME=1
STI//开中断
WATING:
JMPWATING//等待
WRINTVER:
MOVAX,0H
MOVES,AX
MOVDI,0028H
LEAAX,INTQ2//中断2
STOSW
MOVAX,CS
STOSW
MOVDI,003CH
LEAAX,INTQ7//中断7
STOSW
MOVAX,CS
STOSW
RET
INTREEUP2:
CLI//关中断
MOVAL,DS:
[0601H]
CALLCONVERS
MOVSI,DATA0
CALLLEDDISPD
MOVAL,20H
MOVDX,INTPORT1
OUTDX,AL
ADDBYTEPTRDS:
[0601H],01H
CMPBYTEPTRDS:
[0601H],06H
JNAINTRE1
MOVSI,DATA4
CALLLEDDISP
INTRE2:
JMPINTRE2
CONVERS:
MOVBH,0H
ANDAL,0FH
MOVBL,AL
MOVAL,CS:
[BX+DATA2]
MOVBX,DATA0
MOVDS:
[BX],AL
RET
INTRE1:
MOVAL,20H
MOVDX,INTPORT1
OUTDX,AL
STI
IRET
INTREEUP7:
CLI
MOVSI,DATA1
CALLLEDDISP
MOVAL,20H
MOVDX,INTPORT1
OUTDX,AL
IRET
LEDDISP:
MOVAL,90H
MOVDX,CONTPORT
OUTDX,AL
MOVBYTEPTRDS:
[0600H],00
LED1:
CMPBYTEPTRDS:
[0600H],07H
JALED2
MOVBL,DS:
[0600H]
MOVBH,0H
MOVAL,CS:
[BX+SI]
MOVDX,DATAPORT
OUTDX,AL
ADDBYTEPTRDS:
[0600H],01H
JNZLED1
LED2:
RET
LEDDISPD:
MOVAL,90H
MOVDX,CONTPORT
OUTDX,AL
MOVBYTEPTRDS:
[0600H],00
LEDD1:
CMPBYTEPTRDS:
[0600H],07H
JALEDD2
MOVBL,DS:
[0600H]
MOVBH,0H
MOVAL,DS:
[BX+SI]
MOVDX,DATAPORT
OUTDX,AL
ADDBYTEPTRDS:
[0600H],01H
JNZLEDD1
LEDD2:
RET
FORMAT:
MOVBX,0
MOVWORDPTRDS:
[BX+0500H],5050H
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],0079H
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],0000H
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],0000H
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],063FH
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],4F5BH
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],6D66H
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],077DH
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],6F7FH
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],7C77H
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],5E39H
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],7179H
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],4006H
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],4040H
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],6D6FH
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],7F5BH
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],3F5EH
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],5C3FH
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],6D6FH
ADDBX,2
MOVWORDPTRDS:
[BX+0500H],7F5BH
RET
CODEENDS
ENDSTART
电子时钟源程序:
CODESEGMENT
ASSUMECS:
CODE
INTPORT1EQU0020H8259口地址1,用来写IWC1.
INTPORT2EQU0021H8259口地址2,用来写IWC2,IWC4.
INTQ3EQUINTERUPT3
INTQ7EQUINTERUPT7
CONTPORTEQU00DDH8279命令状态口地址.
DATAPORTEQU00DEH8279键盘显示数据地址
DATA1EQU0500H错误信息显示缓冲区起始地址(0500H-0507H)
DATA2EQU0508H显示译码表起始地址(0508H-0517H)
DATA3EQU0518H初始状态显示缓冲区(0518H-051F)
DATA4EQU0520H时间显示缓冲区起始地址(0520H-0527H)
DATA5EQU0528H存放已重新刷新数码管个数
DATA6EQU0529H存放1/20秒定时中断个数
DATA7EQU052AH存放时间的小时值
DATA8EQU052BH存放时间的分值
DATA9EQU052CH存放时间的秒值
DATA10EQU052EH待更新的显示区的地址
ORG1800H
START:
JMPTINT1
TINT1:
CALLFORMAT
CLD
MOVDX,004BH
MOVAL,0B6H
OUTDX,AL
MOVDX,004AH
MOVAL,50H
OUTDX,AL
MOVAL,0C3H
OUTDX,AL
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,0FBH
OUTDX,AL
WAITING:
STI
JMPWAITING
WRINTVER:
MOVAX,0H本程序段为写入中断向量子程序
MOVES,AX
MOVDI,0028H中断矢量地址(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本子程序段按十进制完成秒,分
时的加1刷新
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位从数据区取数送8279
MOVDX,DATAPORT
OUTDX,AL
ADDBYTEPTRDS:
[DATA5],01H显示位数加1
JNZLED1
LED2:
RET
FORMAT:
MOVBX,0
MOVWORDPTRDS:
[BX+DATA1],5050H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],0079H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],0000H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],0000H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],063FH
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],4F5BH
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],6D66H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],077DH
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],6F7FH
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],7C77H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],5E39H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],7179H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],3F3FH
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],3F40H
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],403FH
ADDBX,2
MOVWORDPTRDS:
[BX+DATA1],3F3FH
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