基于8086波形发生器设计说明.docx
《基于8086波形发生器设计说明.docx》由会员分享,可在线阅读,更多相关《基于8086波形发生器设计说明.docx(62页珍藏版)》请在冰点文库上搜索。
基于8086波形发生器设计说明
信息工程学院
课程设计报告
设计题目:
波形发生器的设计
名
称:
微机原理与接口课程设计
班
级:
1002
姓
名:
学
号:
设计时间:
至
指导教师:
评语:
评阅成绩:
评阅教师:
......
一.前言3
二.设计目的4
三.原理说明4
四.硬件设计7
五.设计原理10
六.程序编译12
1.输出方波的子程序12
2.输出三角波子程序13
3.输出锯齿波子程序15
4.输出正弦波子程序16
5.输出梯形波子程序18
七.调试方法与结果20
八.心得领会23
.专业.专注.
......
一.前言
波形发生器是一种常用的信号源,宽泛的应用于电子电路、自动控制系统
和教课实验等领域,是现代测试领域内应用最为宽泛的通用仪器之一。
在研
制、生产、测试和维修各种电子元件、零件以及整机设施时,都需要有信号
源。
由它产生不一样频次不一样波形的电压、电流信号并加到被测器件或设施上,
用其余仪器察看。
丈量被测仪器的输出响应,以剖析确立它们的性能参数。
信
号发生器是电子丈量领域中最根本、应用最为宽泛的一类电子仪器。
它能够产
生多种波形信号,如锯齿波、三角波、梯形波等,因此宽泛应用于通信、雷
达、导航、宇航等领域。
本次课程设计使用的8086和DAC0832构成的发生器可产生三角波,波形
的周期可用程序改变,并可依据需要选择单极性输出或双极性输出,拥有线路
简单、构造紧凑、性能优胜等特色。
此设计给出了源代码,经过仿真测试,其
性能指标抵达了设计要求。
.专业.专注.
......
二.设计目的
1、掌握DAC0832与PC机的接口方法。
2、掌握D/A变换应用程序设计方法。
三.原理说明
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、/XFER端。
·有两级锁存控制功能,能够实现多通道D/A的同步变换输出。
·DAC0832内部无参照电压源;须外接参照电压源。
·DAC0832为电流输入型D/A变换器,要获取模拟电压输出时,需要外加变换电路。
DAC0832的引脚图及逻辑构造以以下图:
DAC0832构造框图及引脚摆列
.专业.专注.
......
4.各引脚功能说明:
D0~D7:
8位数据输入线,TTL电平,有效时间应大于90ns(否那么锁存器的
数据会犯错);
ILE:
数据锁存同意控制信号输入线,高电平有效;
CS:
片选信号输入线〔选通数据锁存器〕,低电平有效;
WR1:
数据锁存器写选通输入线,负脉冲〔脉宽应大于500ns〕有效。
由
ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平常,数据锁存器状态随输
入数据线变换,LE1的负跳变时将输入数据锁存;
XFER:
数据传输控制信号输入线,低电平有效,负脉冲〔脉宽应大于
500ns〕有效;
WR2:
DAC寄存器选通输入线,负脉冲〔脉宽应大于500ns〕有效。
由
WR2、XFER的逻辑组合产生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
在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:
MOVDX,213H;8255A控制口地点
MOVAL,82H
OUTDX,AL
MOVDX,200H;DAC0832的地点
AGAIN:
MOVAL,00H
OUTDX,AL;输出方波为“0〞
CALLDELAY;f方波宽度
MOVAL,0FFH
OUTDX,AL;输出方波为“1〞
CALLDELAY;方波宽度
JMPAGAIN
DELAY:
MOVCX,0ffffH;
LOOP$
RET
ENDstart
2.输出三角波子程序
〔一〕编程思路:
a.设置8255A的工作方式
b.启动DAC0832变换器
c.写初值,延时
d.初值加1,返回
.专业.专注.
......
e.取反,延时
f.取反值减1,返回
g.循环
〔二〕编译子程序:
MODELSMALL
STACK200H
CODE
START:
MOVDX,213H;8255A控制口地点
MOVAL,82H
OUTDX,AL
L:
MOVDX,200H;DAC0832的地点
MOVAL,00H;正向初值
M:
OUTDX,AL
CALLdelay
INCAL
JNZM
MOVAL,0FFH;负向初值
N:
OUTDX,AL
CALLdelay
DECAL
JNZN
JMPL
.专业.专注.
......
DELAY:
MOVCX,0FFFH
DAY1:
LOOPDAY1
RET
INT21H
ENDSTART
3.输出锯齿波子程序
〔一〕编程思路:
a.设置8255A的工作方式
b.启动DAC0832变换器
c.写初值
d.初值加1,延时
e.返回
g.循环
〔二〕编译子程序:
MODELSMALL
STACK200H
CODE
START:
MOVDX,213H;设置8255A控制口地点
MOVAL,82H
OUTDX,AL;设置8255A口A为方式0输出
.专业.专注.
......
MOVDX,200H;DAC0832的地点
MOVAL,00H;输出数据初值
J:
OUTDX,AL;锯齿波输出
INCAL
CALLDELAY
JMPJ
DELAY:
MOVCX,0FFFH
DAY1:
LOOPDAY1
RET
INT21H;
ENDSTART
4.输出正弦波子程序
〔一〕编程思路:
a.写正弦波储存数地点
b.写初值
c.地点加1,取值加1
d.启动DAC0832变换器,输出值
e.延时
f.设置8255A,返回
g.循环
〔二〕编译子程序:
MODELSMALL
.专业.专注.
......
STACK200H
CODE
START:
ZXBB:
LEABX,TAB
MOVCX,0001H
ZX2:
MOVAL,[BX];将TAB中的数字一次赋给AL再输出
正弦波
INCBX
INCCX
MOVDX,200H
OUTDX,AL
CALLDELAY
PUSHAX
BG2:
MOVDX,211H;再次读入开关信号,进行比较
INAL,DX
CMPAL,04H
JNZBG2
POPAX
CMPCX,256
JNEZX2
JMPZXBB
DELAY:
.专业.专注.
......
MOVCX,0FFFH
DAY1:
LOOPDAY1
RET
INT21H
ENDSTART
5.输出梯形波子程序
〔一〕编程思路:
a.启动DAC0832变换器
b.写低电平段,延时,返回
c.写上涨段,延时,返回
d.写高电平段,延时,返回
e.写降落段,延时,返回
f.设置8255A,返回
g.循环
〔二〕编译子程序:
MODELSMALL
STACK200H
CODE
START:
TXBB:
MOVCX,0100H;梯形波
MOVAL,00H
LL0:
MOVDX,200H;低电平段
OUTDX,AL
.专业.专注.
......
CALLDELAY
DECCX
JNZLL0
LL1:
INCAL;上涨段
MOVDX,200H
OUTDX,AL
CALLDELAY
CMPAL,6FH
JNELL1
MOVCX,0100H
LL2:
MOVDX,200H
OUTDX,AL;高电平段
CALLDELAY
DECCX
JNZLL2
LL3:
DECAL;降落段
MOVDX,200H
OUTDX,AL
CALLDELAY
CMPAL,00H
JNZLL3
.专业.专注.
......
MOVDX,211H;再次读入开
关信号,进
行比较
INAL,DX
CMPAL,06H
JNZBG3
JMPTXBB
DELAY:
MOVCX,0FFFH
DAY1:
LOOPDAY1
RET
INT21H
ENDSTART
七.调试方法与结果
a.实验箱接法:
变换器的CS0832接译码器的200h—233h端口,变换器的VOUT端口接
信号灯,8255A的8255端口接230h-233h端口,8255A的PB1,PB2,PB3接
.专业.专注.
......
信号灯
实验结果:
1.方波:
信号灯一明一暗
2.三角波:
信号灯慢慢亮再慢慢暗再慢慢亮
3.锯齿波:
信号灯慢慢亮再暗再慢慢亮
4.正弦波:
信号灯慢慢亮再慢慢暗再慢慢亮
5.梯形波:
信号灯先暗再慢慢亮,连续,在慢慢暗
b.实验结果图:
.专业.专注.
......
.专业.专注.
......
八、心得领会
开始的时候因为没有经验,不知怎样下手,所以就上网搜了好多对于函数发生器的资料,并翻阅了一些有关书本。
我们小组经过此课程设计我们累积了一点设计经验,最后成功运转出结果的时候也有些小小的成就感。
在本次课程设计中,不论是在程序设计方面仍是实践着手能力都获取了一个特别大的锻
炼,并对硬件知识的认识以及安装调试能力也获取了一个很大的提高。
经过此次课程设计,也特别的清楚的认识了这门课程的重要性,也意识到了
.专业.专注.
......
自己在程序设计方面的单薄性。
希望在此后的学习和工作中能进一部的增强自己专业素质和实践着手能力
.专业.专注.