基于8086波形发生器设计文档格式.docx
《基于8086波形发生器设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于8086波形发生器设计文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
1.知识简介:
DAC0832当今世界在以电子信是8位分辨率的D/A转换集成芯片,与微处理器完全兼容,这个系列的芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用。
这类D/A转换器由8位输入锁存器,8位DAC存放器,8位D/A转换电路及转换控制电路构成。
2.DAC0832的引脚及功能:
DAC0832是8分辨率的D/A转换集成芯片。
与微处理器兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点。
D/A转换器由8位输入锁存器、8位DAC存放器、8位D/A转换电路及转换控制电路构成。
3.应用特性:
·
DAC0832是微处理器兼容型D/A转换器,可以充分利用微处理器的控制能力实现对D/A转换的控制。
这种芯片有许多控制引脚,可以和微处理器控制线相连,承受微处理器的控制,如ILE、/CS、/WR1、/WR2、/*FER端。
有两级锁存控制功能,能够实现多通道D/A的同步转换输出。
DAC0832部无参考电压源;
须外接参考电压源。
DAC0832为电流输入型D/A转换器,要获得模拟电压输出时,需要外加转换电路。
DAC0832的引脚图及逻辑构造如下列图:
DAC0832构造框图及引脚排列
4.各引脚功能说明:
D0~D7:
8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);
ILE:
数据锁存允许控制信号输入线,高电平有效;
CS:
片选信号输入线〔选通数据锁存器〕,低电平有效;
WR1:
数据锁存器写选通输入线,负脉冲〔脉宽应大于500ns〕有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;
*FER:
数据传输控制信号输入线,低电平有效,负脉冲〔脉宽应大于500ns〕有效;
WR2:
DAC存放器选通输入线,负脉冲〔脉宽应大于500ns〕有效。
由WR2、*FER的逻辑组合产生LE2,当LE2为高电平时,DAC存放器的输出随存放器的输入而变化,LE2的负跳变时将数据锁存器的容打入DAC存放器并开场D/A转换。
IOUT1:
电流输出端1,其值随DAC存放器的容线性变化;
IOUT2:
电流输出端2,其值与IOUT1值之和为一常数;
Rfb:
反应信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;
Vcc:
电源输入端,Vcc的围为+5V~+15V;
VREF:
基准电压输入线,VREF的围为-10V~+10V;
AGND:
模拟信号地
DGND:
数字信号地
5.DAC0832三种数据输入方式:
〔1〕双缓冲方式:
即数据经过双重缓冲后再送入D/A转换电路,执行两次写操作才能完成一次D/A转换。
这种方式可在D/A转换的同时,进展下一个数据的输入,可提高转换速率。
更为重要的是,这种方式特别适用于要求同时输出多个模拟量的场合。
此时,要用多片DAC0832组成模拟输出系统,每片对应一个模拟量。
〔2〕单缓冲方式:
不需要多个模拟量同时输出时,可采用此种方式。
此时两个存放器之一处于直通状态,输入数据只经过一级缓冲送入D/A转换电路。
这种方式只需执行一次写操作,即可完成D/A转换。
〔3〕直通方式:
此时两个存放器均处于直通状态,因此要将
、
和
端都接数字地,ILE接高电平,使LE1、LE2均为高电平,致使两个锁存存放器同时处于放行直通状态,数据直接送入D/A转换电路进展D/A转换。
这种方式可用于一些不采用微机的控制系统中或其他不须0832缓冲数据的情况。
四.硬件设计
1.8086(8088)CPU
引脚图〔如图1〕:
图1
2.DAC0832〔D/A转换器)
D/A0832是8位并行输出电流型D/A转换器,其主要参数:
转换时间1us,满量程误差土1LSB,参考电压—10V~+10V,供电电压+5V~+15V,输入逻辑电平与TTL兼容。
引脚图〔如图2〕:
图2
3.8255A〔可编程并行接口〕
8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7~PA0、PB7~PB0和PC7~PC0。
其部还有一个控制存放器,即控制口。
通常A口、B口作为输入输出的数据端口。
C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。
它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。
8255可编程并行接口芯片工作方式说明:
方式0:
根本输入/输出方式。
适用于三个端口中的任何一个。
每一个端口都可以用作输入或输出。
输出可被锁存,输入不能锁存。
方式1:
选通输入/输出方式。
这时A口或B口的8位外设线用作输入或输出,C口的4条线中三条用作数据传输的联络信号和中断请求信号。
方式2:
双向总线方式。
只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通讯联络信号和中断请求信号。
引脚图〔如图3〕:
图3
4.8284
在8086CPU部没有有时时钟发生器,当组成微型机系统时,所需的时钟信号由外部时钟发生器提供。
8284是专门为8086设计的时钟发生器/驱动器。
在8284中,不仅有时钟信号发生器,还有复位信号RESET和准备好信号READY产生电路,这些电路分别向8086系统提供时钟信号CLK,复位信号RESET和准备好信号READY,还可向外界提供晶振信号OSC以及外围芯片所需的时钟信号PCLK。
引脚图〔如图4〕:
图4
五.设计原理
D/A转换器产生各种波形的原理:
利用D/A转换器输出的模拟量与输入数字量成正比关系这一特点,将D/A转换器作为微机输出接口,CPU通过程序向D/A转换器输出随时间呈现不同变化规律的数字量,则D/A转换器就可输出各种各样的模拟量,如方波、三角波、锯齿波、正弦波等。
8255A实现波形切换的原理:
从8255A的B口读入外接开关的信号,CPU读入不同信号值,从而执行不同的代码,向D/A转换器传送不同的数据,控制D/A转换器输出锯齿波、三角波、方波、正弦波和梯形波。
DAC0832采用双缓冲数据输入方式。
数据要经过两级锁存后才送入D/A转换器。
数据写入分两次进展,第一次把待转换的数据写入输入存放器,第二次再对DAC存放器进展一次写操作。
延迟作用:
方便观察到输出各种波形上下电平时,信号灯发光和熄灭的情况。
a.实验电路图:
六.程序编译
1.输出方波的子程序
〔一〕编程思路:
a.设置8255A的工作方式
b.启动DAC0832转换器
c.写初值,延时
d.取反,延时
e.返回
〔二〕编译子程序:
modelsmall
stack200h
code
start:
MOVD*,213H;
8255A控制口地址
MOVAL,82H
OUTDX,AL
MOVD*,200H;
DAC0832的地址
AGAIN:
MOVAL,00H
OUTD*,AL;
输出方波为“0”
CALLDELAY;
f方波宽度
MOVAL,0FFH
OUTD*,AL;
输出方波为“1”
CALLDELAY;
方波宽度
JMPAGAIN
DELAY:
MOVC*,0ffffH;
LOOP$
RET
ENDstart
2.输出三角波子程序
d.初值加1,返回
e.取反,延时
f.取反值减1,返回
g.循环
〔二〕编译子程序:
OUTDX,AL
L:
DAC0832的地址
MOVAL,00H;
正向初值
M:
OUTDX,AL
CALLdelay
INCAL
JNZM
MOVAL,0FFH;
负向初值
N:
DECAL
JNZN
JMPL
delay:
movc*,0fffh
day1:
loopday1
ret
int21h
3.输出锯齿波子程序
c.写初值
d.初值加1,延时
设置8255A控制口地址
MOVAL,82H
设置8255A口A为方式0输出
输出数据初值
J:
锯齿波输出
INCAL
JMPJ
int21h;
4.输出正弦波子程序
〔一〕编程思路:
a.写正弦波存储数地址
b.写初值
c.地址加1,取值加1
d.启动DAC0832转换器,输出值
e.延时
f.设置8255A,返回
Z*BB:
LEAB*,TAB
MOVC*,0001H
Z*2:
MOVAL,[B*];
将TAB中的数字一次赋给AL再输出正弦波
INCB*
INCC*
MOVD*,200H
CALLDELAY
PUSHA*
BG2:
MOVD*,211H;
再次读入开关信号,进展比拟
INAL,D*
CMPAL,04H
JNZBG2
POPA*
CMPC*,256
JNEZ*2
JMPZ*BB
int21h
endstart
5.输出梯形波子程序
a.启动DAC0832转换器
b.写低电平段,延时,返回
c.写上升段,延时,返回
d.写高电平段,延时,返回
e.写下降段,延时,返回
T*BB:
MOVC*,0100H;
梯形波
MOVAL,00H
LL0:
低电平段
CALLDELAY
DECC*
JNZLL0
LL1:
INCAL;
上升段
MOVD*,200H
CALLDELAY
CMPAL,6FH
JNELL1
MOVC*,0100H
LL2:
MOVD*,200H
高电平段
DECC*
JNZLL2
LL3:
DECAL;
下降段
CMPAL,00H
JNZLL3
再次读入开关信号,进展比拟
INAL,D*
CMPAL,06H
JNZBG3
JMPT*BB
七.调试方法与结果
a.实验箱接法:
转换器的CS0832接译码器的200h—233h端口,转换器的VOUT端口接信号灯,8255A的8255端口接230h-233h端口,8255A的PB1,PB2,PB3接信号灯
实验结果:
1.方波:
信号灯一明一暗
2.三角波:
信号灯慢慢亮再慢慢暗再慢慢亮
3.锯齿波:
信号灯慢慢亮再暗再慢慢亮
4.正弦波:
5.梯形波:
信号灯先暗再慢慢亮,持续,在慢慢暗
b.实验结果图:
八、心得体会
开场的时候由于没有经历,不知如何下手,所以就上网搜了很多关于函数发生器的资料,并翻阅了一些相关书籍。
我们小组经过此课程设计我们积累了一点设计经历,最后成功运行出结果的时候也有些小小的成就感。
在本次课程设计中,无论是在程序设计方面还是实践动手能力都得到了一个非常大的锻炼,并对硬件知识的了解以及安装调试能力也得到了一个很大的提升。
通过这次课程设计,也非常的清楚的认识了这门课程的重要性,也意识到了自己在程序设计方面的薄弱性。
希望在以后的学习和工作中能进一部的加强自己专业素质和实践动手能力