DAC0832波形发生器课程设计实验报告1.docx
- 文档编号:10813722
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:23
- 大小:127.80KB
DAC0832波形发生器课程设计实验报告1.docx
《DAC0832波形发生器课程设计实验报告1.docx》由会员分享,可在线阅读,更多相关《DAC0832波形发生器课程设计实验报告1.docx(23页珍藏版)》请在冰豆网上搜索。
DAC0832波形发生器课程设计实验报告1
微机原理与接口技术
课程设计报告书
DAC0832波形发生器
目录
一、引言………………………………………………………...…......1
二、设计目的……………………………………………………………….2
三、原理说明………………………………………………………………..2
四、硬件设计.........................................................................................4
五、设计原理………………………………………………………………...6
六、程序编译.........................................................................................7
1、输出方波子程序…………………………………………………….7
2、输出三角波子程序………………………………………………….8
3、输出锯齿波子程序………………………………………………….8
4、输出正弦波子程序………………………………………………….9
5、输出梯形波的子程序………………………………………………10
6、主程序……………………………………………………………….11
七、调试方法与结果………………………………………………………...15
八、心得体会………………………………………………………………...16
一.引言
波形发生器是一种常用的信号源,广泛的应用于电子电路、自动控制系统和教学实验等领域,是现代测试领域内应用最为广泛的通用仪器之一。
在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源。
由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察。
测量被测仪器的输出响应,以分析确定它们的性能参数。
信号发生器是电子测量领域中最基本、应用最为广泛的一类电子仪器。
它可以产生多种波形信号,如锯齿波、三角波、梯形波等,因而广泛应用于通信、雷达、导航、宇航等领域。
本次课程设计使用的AT89C51单片机构成的发生器可产生三角波,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。
此设计给出了源代码,通过仿真测试,其性能指标达到了设计要求。
二、设计目的
1、掌握DAC0832与PC机的接口方法。
2、掌握D/A转换应用程序设计方法。
三、原理说明
◆知识简介:
DAC0832当今世界在以电子信是8位分辨率的D/A转换集成芯片,与微处理器完全兼容,这个系列的芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用。
这类D/A转换器由8位输入锁存器,8位DAC寄存器,8位DA转换电路及转换控制电路构成。
◆原理框图:
◆硬件设计
1、DAC0832的引脚及功能:
DAC0832是8分辨率的D/A转换集成芯片。
与微处理器兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
◆应用特性:
·DAC0832是微处理器兼容型D/A转换器,可以充分利用微处理器的控制能力实现对D/A转换的控制。
这种芯片有许多控制引脚,可以和微处理器控制线相连,接受微处理器的控制,如ILE、/CS、/WR1、/WR2、/XFER端。
·有两级锁存控制功能,能够实现多通道D/A的同步转换输出。
·DAC0832内部无参考电压源;须外接参考电压源。
·DAC0832为电流输入型D/A转换器,要获得模拟电压输出时,需要外加转换电路。
DAC0832的引脚图及逻辑结构如下图:
DAC0832结构框图及引脚排列
◆各引脚功能说明:
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:
数字信号地
◆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):
五、设计原理
D/A转换器产生各种波形的原理:
利用D/A转换器输出的模拟量与输入数字量成正比关系这一特点,将D/A转换器作为微机输出接口,CPU通过程序向D/A转换器输出随时间呈现不同变化规律的数字量,则D/A转换器就可输出各种各样的模拟量,如方波、三角波、锯齿波、正弦波等。
8255A实现波形切换的原理:
从8255A的B口读入外接开关的信号,CPU读入不同信号值,从而执行不同的代码,向D/A转换器传送不同的数据,控制D/A转换器输出锯齿波、三角波、方波、正弦波和梯形波。
六、程序编译
1、输出方波的子程序
(一)编程思路:
a.设置8255A的工作方式
b.启动DAC08323转换器
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
6,输出总程序
程序编译:
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE,SS:
CODE,ES:
CODE
CT8255EQU2138255的控制寄存器地址
B8255EQU211H;8255的B口地址
DA0832EQU200H
ORG1200H
START:
MOVAL,82H;初始化8255,B口输入,工作在方式0
MOVDX,CT8255
OUTDX,AL
BG:
MOVDX,B8255
INAL,DX
ANDAL,07H
CMPAL,01H;显示锯齿波
JZJCBB
CMPAL,02H;显示三角波
JZSJBB
CMPAL,03H;显示方波
JZFBB
CMPAL,04H;显示正弦波
JZZXBB
CMPAL,05H;显示梯形波
JZTXB
JMPBG
TXB:
JMPTXBB
JCBB:
MOVAL,00H;锯齿波
AGAIN1:
INCAL
MOVDX,DA0832
OUTDX,AL
CALLDELAY
PUSHAX
MOVDX,B8255
INAL,DX;再次读入开关信号,进行比较
CMPAL,01H
JNZBG
POPAX
JMPAGAIN1
SJBB:
MOVAL,00H;三角波
UP:
MOVDX,DA0832;启动D/A转换上升
OUTDX,AL
CALLDELAY
INCAL
CMPAL,0FFH
JNZUP
DECAL
DOWN:
MOVDX,DA0832;启动D/A转换下降
OUTDX,AL
CALLDELAY
DECAL
CMPAL,00H
JNZDOWN
MOVDX,B8255;再次读入开关信号,进行比较
INAL,DX
CMPAL,02H
JNZBG
JMPSJBB
FBB:
MOVAL,00H;方波
FB1:
MOVDX,DA0832;写00H,输出低电平
OUTDX,AL
PUSHCX
MOVCX,00FFH;低电平延迟
L:
CALLDELAY
LOOPL
POPCX
PUSHCX
MOVCX,00FFH
MOVAL,0FFH
MOVDX,DA0832
OUTDX,AL
L1:
CALLDELAY;高电平延迟
LOOPL1
POPCX
MOVDX,B8255;再次读入开关信号,进行比较
INAL,DX
CMPAL,03H
JNZBG1
JMPFBB
BG1:
JMPBG
ZXBB:
LEABX,TAB
MOVCX,0001H
ZX2:
MOVAL,[BX];将TAB中的数字一次赋给AL,再输出正弦波
INCBX
INCCX
MOVDX,DA0832
OUTDX,AL
CALLDELAY1
PUSHAX
MOVDX,B8255;再次读入开关信号,进行比较
INAL,DX
CMPAL,04H
JNZBG2
POPAX
CMPCX,256
JNEZX2
JMPZXBB
BG2:
JMPBG
TXBB:
MOVCX,0100H;梯形波
MOVAL,00H
LL0:
MOVDX,DA0832;低电平段
OUTDX,AL
CALLDELAY1
DECCX
JNZLL0
LL1:
INCAL;上升段
MOVDX,DA0832
OUTDX,AL
CALLDELAY1
CMPAL,0FFH
JNELL1
MOVCX,0100H
LL2:
MOVDX,DA0832
OUTDX,AL;高电平段
CALLDELAY1
DECCX
JNZLL2
LL3:
DECAL;下降段
MOVDX,DA0832
OUTDX,AL
CALLDELAY1
CMPAL,00H
JNZLL3
MOVDX,B8255;再次读入开关信号,进行比较
INAL,DX
CMPAL,05H
JNZBG3
JMPTXBB
BG3:
JMPBG
DELAY:
CMPAL,0D0H
JNBW_END
CMPAL,7AH
JBW_END
MOVCX,180
LOOP$
W_END:
RET
DELAY1:
PUSHCX
MOVCX,0090H
DEL1:
PUSHAX
POPAX
LOOPDEL1
POPCX
RET
INT21h
ORG5000H
TABDB80H,83H,86H,89H,8DH,90H,93H,96H
DB99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH
DB0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H
DB0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8H
DB0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H
DB0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H
DB0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH
DB0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH
DB0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H
DB0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH
DB0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAH
DB0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7H
DB0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1H
DB0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H
DB96H,93H,90H,8DH,89H,86H,83H,80H
DB80H,7CH,79H,78H,72H,6FH,6CH,69H
DB66H,63H,60H,5DH,5AH,57H,55H,51H
DB4EH,4CH,48H,45H,43H,40H,3DH,3AH
DB38H,35H,33H,30H,2EH,2BH,29H,27H
DB25H,22H,20H,1EH,1CH,1AH,18H,16H
DB15H,13H,11H,10H,0EH,0DH,0BH,0AH
DB09H,08H,07H,06H,05H,04H,03H,02H
DB02H,01H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,01H,02H
DB02H,03H,04H,05H,06H,07H,08H,09H
DB0AH,0BH,0DH,0EH,10H,11H,13H,15H
DB16H,18H,1AH,1CH,1EH,20H,22H,25H
DB27H,29H,2BH,2EH,30H,33H,35H,38H
DB3AH,3DH,40H,43H,45H,48H,4CH,4EH
DB51H,55H,57H,5AH,5DH,60H,63H,66H
DB69H,6CH,6FH,72H,76H,79H,7CH,80H
DB256DUP(?
)
CODEENDS
ENDSTART
七、调试方法与结果
实验箱接法:
转换器的CS0832接译码器的200h—233h端口,转换器的VOUT端口接信号灯,8255A的8255端口接230h-233h端口,8255A的PB1,PB2,PB3接信号灯
实验结果:
1.方波:
信号灯一明一暗
2.三角波:
信号灯慢慢亮再慢慢暗再慢慢亮
3.锯齿波:
信号灯慢慢亮再暗再慢慢亮
4.正弦波:
信号灯慢慢亮再慢慢暗再慢慢亮
5.梯形波:
信号灯先暗再慢慢亮,持续,在慢慢暗
八、心得体会
开始的时候由于没有经验,不知如何下手,所以就上网搜了很多关于函数发生器的资料,并翻阅了一些相关书籍。
我们小组经过此课程设计我们积累了一点设计经验,最后成功运行出结果的时候也有些小小的成就感。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DAC0832 波形 发生器 课程设计 实验 报告