微机与接口实验5模数数模实验.docx

上传人:b****7 文档编号:23617412 上传时间:2023-05-19 格式:DOCX 页数:14 大小:345.35KB
下载 相关 举报
微机与接口实验5模数数模实验.docx_第1页
第1页 / 共14页
微机与接口实验5模数数模实验.docx_第2页
第2页 / 共14页
微机与接口实验5模数数模实验.docx_第3页
第3页 / 共14页
微机与接口实验5模数数模实验.docx_第4页
第4页 / 共14页
微机与接口实验5模数数模实验.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

微机与接口实验5模数数模实验.docx

《微机与接口实验5模数数模实验.docx》由会员分享,可在线阅读,更多相关《微机与接口实验5模数数模实验.docx(14页珍藏版)》请在冰豆网上搜索。

微机与接口实验5模数数模实验.docx

微机与接口实验5模数数模实验

微机与接口技术实验5

实验设备:

LAB6000通用微控制器实验系统

实验用时4小时

实验内容:

模数、数模实验

1.采用查表法,用DAC0809产生100Hz正弦输出模拟信号,用示波器检查波形。

(8253T0产生定时脉冲,8259INT0向CPU中断)。

2.设计ADC0832模数采样程序,对电位器输出电压采样,并用发光二极管显示采样值。

要求每秒采样并输出显示一次。

(8253T0产生定时脉冲,8259INT0向CPU中断)。

3.在原理图上增加0809,0832芯片,地址分别为10050H和100601H起(占16地址)

实验报告:

程序清单,说明;电路原理图。

程序代码

1.

CONTROLequ0c003h

COUNT0equ0c000h

COUNT1equ0c001h

COUNT2equ0c002h

CS0832equ0a000h

 

ICW1equ00010011b;单片8259,上升沿中断,要写ICW4

ICW2equ00100000b;中断号为20H

ICW4equ00000001b;工作在8086/88方式

OCW1equ11111110b;只响应INT0中断,也响应INT1中断

CS8259Aequ09000h;8259地址

CS8259Bequ09001h

 

datasegment

xdb128,203,249,249,203,128,53,7,7,53

CNTdw0

CNNTdw0

dataends

codesegment

assumecs:

code,ds:

data

 

IEnterprocnear;中断程序

pushax

pushdx

 

moval,[x+bx]

movdx,CS0832

outdx,al

incbx

cmpbx,10

jboutput

movbx,0

output:

movdx,CS8259A

moval,20h;中断服务程序结束指令

outdx,al

popdx

popax

iret

IEnterendp

IInitproc;初始化中断程序

movdx,CS8259A

moval,ICW1

outdx,al

movdx,CS8259B

moval,ICW2

outdx,al

moval,ICW4

outdx,al

moval,OCW1

outdx,al

ret

IInitendp

startprocnear

moval,0

movdx,CS0832

outdx,al

moval,80h

outdx,al

moval,0ffh

outdx,al

;新加的

;初始化计时器

movax,data

movds,ax

moval,00110100B;计数器0,16位,方式2,二进制

movdx,CONTROL

outdx,al

movax,4000;产生100Hz时钟信号

movdx,COUNT0

outdx,al;计数器低字节

moval,ah

outdx,al;计数器高字节

;中断程序存储

movax,0

movds,ax

movbx,4*ICW2;中断号

movax,code

shlax,4;x16

addax,offsetIEnter;中断入口地址(段地址为0)

mov[bx],ax

movax,0

incbx

incbx

mov[bx],ax;代码段地址为0

callIInit

;中断程序初始化结束

movax,data

movds,ax

sti

movbx,0

LP:

;等待中断,并计数。

nop

jmpLP

jmp$

startendp

codeends

endstart

产生的波形图:

2.

modeequ082h

PAequ09000h

CTLequ09003h

CS0809equ08000h

CONTROLequ0c003h

COUNT0equ0c000h

COUNT1equ0c001h

COUNT2equ0c002h

CS0832equ0a000h

ICW1equ00010011b;单片8259,上升沿中断,要写ICW4

ICW2equ00100000b;中断号为20H

ICW4equ00000001b;工作在8086/88方式

OCW1equ11111110b;只响应INT0中断,也响应INT1中断

CS8259Aequ0b000h;8259地址

CS8259Bequ0b001h

datasegment

dataends

codesegment

assumecs:

code,ds:

data

IEnterprocnear;中断程序

pushax

pushdx

moval,0

movdx,CS0809

outdx,al;起动A/D

movcx,40h

loop$;延时>100us

inal,dx;读入结果

movdx,PA

outdx,al

output:

movdx,CS8259A

moval,20h;中断服务程序结束指令

outdx,al

popdx

popax

iret

IEnterendp

IInitproc;初始化中断程序

movdx,CS8259A

moval,ICW1

outdx,al

movdx,CS8259B

moval,ICW2

outdx,al

moval,ICW4

outdx,al

moval,OCW1

outdx,al

ret

IInitendp

startprocnear

;初始化计时器

movax,data

movds,ax

moval,00110100B;计数器0,16位,方式2,二进制

movdx,CONTROL

outdx,al

moval,01110100B;计数器1,16位,方式2,二进制

outdx,al

movax,4000;产生100Hz时钟信号

movdx,COUNT0

outdx,al;计数器低字节

moval,ah

outdx,al;计数器高字节

movax,1000;产生100Hz时钟信号

movdx,COUNT1

outdx,al;计数器低字节

moval,ah

outdx,al;计数器高字节

;中断程序存储

movax,0

movds,ax

movbx,4*ICW2;中断号

movax,code

shlax,4;x16

addax,offsetIEnter;中断入口地址(段地址为0)

mov[bx],ax

movax,0

incbx

incbx

mov[bx],ax;代码段地址为0

callIInit

;中断程序初始化结束

movax,data

movds,ax

sti

;原来有的

movbx,0f123h

movax,5678h

mov[bx],ax

movax,[bx]

movax,1234h

movbx,5678h

addax,bx

movbx,400h

mov[bx],ax

moval,mode

movdx,CTL

outdx,al

again:

jmpagain

codeends

endstart

程序运行结果:

图中可见,当指示灯显示为11111111b时,电压表读得的数据是4.29V,那么按照理论结果,指示灯显示的数值与电压应该是线性关系。

显示数值

0

162

194

210

理论电压(V)

0

2.73

3.26

3.53

实测电压(V)

0

2.77

3.31

3.53

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

当前位置:首页 > 解决方案 > 营销活动策划

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

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