dac0832函数信号发生器.docx
- 文档编号:14553688
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:19
- 大小:716.71KB
dac0832函数信号发生器.docx
《dac0832函数信号发生器.docx》由会员分享,可在线阅读,更多相关《dac0832函数信号发生器.docx(19页珍藏版)》请在冰点文库上搜索。
dac0832函数信号发生器
智能仪器课程设计
设计题目
:
函数信号发生器设计
学生姓名
:
赵鑫、罗承波、江再农
学院名称
:
机械工程学院
班级
:
测控技术与仪器062班
学号
:
200646000227、20064600222、20064600215
指导教师
:
袁锋伟、王玉林、蒋彦
2009年6月
设计任务:
设计一个函数信号发生器,具体指标如下:
1采用AT89S51及DAC0832设计函数信号发生器;
2输出函数信号为正弦波或三角波或阶梯波;
3输出信号频率为100Hz,幅度0-10V可调;
4必须具有信号输出及外接电源、公共地线接口
低频函数信号发生器的设计
摘要:
信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
目前使用的信号发生器大部分是利用分立元件组成的体积大,可靠性差,准确度低。
课程设计需要各个波形的基本输出,这些波形的实现的具体步骤:
正弦波的实现是非常麻烦的。
它的实现过程是通过定义一些数据,然后执行时直接输出定义的数据就可以了。
而三角波,则每次累加1,当达到初值时,每次累减1,算出延时时间,也就达到要求了,阶梯波和三角波类似!
该设计使用的是AT89S51单片机构成的发生器,可产生三角波、方波、正弦波等多种波形,波形的频率可用程序控制改变。
在单片机上加外围器件独立式开关,通过开关控制波形的选择。
在单片机的输出端口接DAC0832进行DA转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。
关键词:
信号发生器;单片机;波形调整
Thedesignoflow-frequencyfunctionsignal-generator
Abstract:
Signalgeneratorisacommonsignalsource,widelyusedinelectroniccircuits,automaticcontrolsystemsandexperimentsinareassuchasteaching.Currentlyusedbymostofthesignalgeneratoriscomposedofdiscretecomponentsusebulky,poorreliability,lowaccuracy.Curriculumdesignofthebasicneedsofalltheoutputwaveform,thewaveformofthespecificstepstoachieve:
therealizationofsinewaveisverytroublesome.Itisthroughtheimplementationofthedefinitionofsomedata,andthendirecttheoutputwhenthedefinitionoftheimplementationofthedataonit.Thetrianglewave,thenadd1eachtime,whentheinitialvaluetoreacheverytiredby1,calculatethedelaytime,theymeettherequirement,theladder-waveandtriangularwavesimilar!
Thedesigniscomposedofsingle-chipAT89S51generatorcanproducethetriangularwave,squarewave,sinewave,etc.,waveformcontrolcanbeusedtochangethefrequency.Increaseinsingle-chipperipheraldevicesonstand-aloneswitch,switchcontrolthroughthechoiceofwaveform.OutputportsintheMCUaccesstoDAconverterDAC0832,andthenthroughtheoperationalamplifiertoadjustthewaveform,thenthefinaloutputwaveformintheoscilloscopedisplay.
Keywords:
signalgenerator;single-chipmicrocomputer;wave-formadjustment
目录
1、设计概述
1.1、设计任务-----------------------------------1
1.2、设计思想-----------------------------------1
2、硬件资料
2.1、芯片资料----------------------------------2
3、软件系统设计
3.1、正弦波设计流程图---------------------------4
3.2、三角波设计流程图---------------------------5
3.3、阶梯波设计流程图--------------------------7
4、系统的组装与调试
4.1、protel原理图-------------------------------8
4.2、protues原理图------------------------------8
5、函数发生器程序-------------------------------9
6、操作说明--------------------------------------11
7、总结及心得体会-------------------------------12
8、问题解答-------------------------------------12
参考文献---------------------------------------12
函数信号发生器设计
1、设计概述
1.1、设计任务:
设计一个函数信号发生器,具体指标如下:
1采用AT89S51及DAC0832设计函数信号发生器;
2输出函数信号为正弦波或三角波或阶梯波;
3输出信号频率为100Hz,幅度0-10V可调;
4必须具有信号输出及外接电源、公共地线接口
1.2、主要设计思想
从此题的要求我的设计思路分以下几步:
(一)、课设需要各个波形的基本输出。
如输出三角波、梯形波、正弦波。
这些波形的实现的具体步骤:
正弦波的实现是非常麻烦的。
它的实现过程是通过定义一些数据,然后执行时直接输出定义的数据就可以了。
然而为了实现100HZ的频率,终于发现,将总时间除了总步数,根据每步执行时间,算出延时时间,最终达到要求,然后建一个表通过查表来进行输出,这样主要工作任务就落到了建表的过程中。
这样做的好处在于,查表所耗费的时钟周期相同,这样输出的点与点之间的距离就相等了,输出的波形行将更趋于完美,当然更让我们感到的高兴的是它输出波形的频率将近达到了100赫兹,能够满足我们设计的扩展要求了。
而三角波,则每次累加1,当达到初值时,每次累减1,算出延时时间,也就达到要求了,阶梯波和三角波类似。
(二)、这次做的三种波形可以相互转换,这个实现起来找了很多人最终发现,在每次循环之初进行扫描,而在每个中断入口处,对中断优先级进行设定,最终达到设计目的。
如下图所示
图1.1
2、硬件资料
2.1、芯片功能介绍
(1)、DAC0832芯片介绍:
DAC0832为一个8位D/A转换器,单电源供电,在+5~+15V范围内均可正常工作。
基准电压的范围为±10V,电流建立时间为1μs,CMOS工艺,低功耗20mW。
DAC0832的内部结构框图如下图所示。
<图2.1>
DAC0832的外部引脚及功能介绍图如下:
<图2.2>
(2)、DAC0832的应用:
DAC0832一是用作单极性电压输出,二是用作双极性电压输出,最后是用作程控放大器。
(3)、DAC0832与8031的连接方式:
DAC0832的与单片机的连接方式有三种方式:
一、单缓冲
二、双缓冲、三是直通方式。
本程序采用的是方式一即单缓冲方式,ILE为高电平,CS、WR1、WR2、XFER为低电平。
<图2.3>.
I/O口引脚:
P0、P1、P2、P3为4个8位I/O口的外部引脚.
RST/VPD(9脚)
RST:
单片刚接上电源时,其内部各寄存器处于随机状态,在此脚输入24个时钟周期宽度以上的高电平将使单片机复位。
单片机正常工作时,此脚应为≤0.5V低电平。
VPD:
备用电源输入端。
当Vcc下降到低于规定的值,而VPD在其规定的电压范围内(5±0.5V)时,VPD就向内部RAM提供备用电源以保持内部RAM的数据。
ALE/PROG(30引脚)
ALE引脚输出为地址锁存允许信号,当单片机上电工作后,ALE引脚不断输出正脉冲信号.当访问片外存储器时,ALE(地址锁存允许信号)输出脉冲的负跳沿用于16位地址的低8位锁存信号。
不访问片外存储器,ALE端以时钟振荡器频率的1/6固定输出正脉冲。
在访问外部数据存储器时(执行MOVX指令),ALE会丢失一个ALE脉冲。
MCS-51单片机的片外总线结构
<图2.4>
MCS-51系列单片机片外引脚可以构成如上图所示的三总线结构:
地址总线(AB)数据总线(DB)控制总线(CB)
8031各个口的功能定义
3、软件系统设计
3.1、正弦波设计流程图及思想
正弦波的实现则相对比较复杂,因为正弦波的实现是输出各个点的值就行了,可是各个点值则要通过正弦函数来求出,不过这些值直接去网上下载下来使用就可以了。
输出的数据刚好是256个数据,这样则可以直接相加就行了。
<图3.1>
3.2、三角波的实现过程
三角波的实现是设置一个初值,然后进行加数,同样是加到某个数之后再进行减数,减到初值之后就再返回到先前的操作,这个操作跟锯齿波的实现是相似的。
此程序输入的VREF的电压是+5V,因此该波形输出的最大频率是初值为00H和最终值为0FFH,且步数为1,这样输出的波形是最大的。
题目要求输出频率100HZ,算出程序每步应该延续多少微秒,5ms/256即为循环一次所需时间
3.3、阶梯波的实现过程及实验仿真波形图
阶梯波的实现是设置一个初值00H,然后进行加数16,同样是加到某个数之后再进行减数,减到初值之后就再返回到先前的操作,在每个加数与减数时延时,达到频率100HZ的要求。
这个操作跟三角波的实现是相似的。
为了实现阶梯波,编程的时间最多,每次总是出现锯齿状的阶梯波,其中还曾经用过定时控制,可是只能实现一个延时,其余的都没戏,最终发现只有设初值为0时,每次累加32,当达到初值时递减,其仿真图形如下
3.4、三角波仿真波形图如下:
3.5、正弦波仿真波形图如下:
4、系统的组装与调试
4.1、实验protues仿真图
<图4.1>
中断0为阶梯波,中断1为三角波,默认状态为正弦波!
即当两个开关都断开时为正弦波,P3.2开关闭合时为阶梯波,P3.3口开关闭合时为三角波,但当P3.2和P3.3都闭合时,则按照中断优先级确定。
4.2、函数信号发生器ptotel电路图
<图4.2>
5、函数发生器程序
ORG0000H
AJMPMAIN
ORG0003H
AJMPJIETI
ORG0013H
AJMPSANJIAO
ORG0030H
MAIN:
SETBEX0
SETBEX1
CLRIT0
CLRIT1
SETBEA
LCALLZHENGXUAN
SJMPMAIN
;三角波
SANJIAO:
MOVDPTR,#2FFFH;选中DA0832
MOVA,#00H
JNBP3.2,JIETI
UP1:
MOVX@DPTR,A;向0832输出数据
INCA
LCALLDELAY3
JNZUP1
DOWN1:
DECA;A=!
0跳转反之顺序执
MOVX@DPTR,A
LCALLDELAY3
NOP
JNZDOWN1
RETI
JIETI:
MOVA,#00H
MOVIP,#04H
MOVDPTR,#2FFFH
LOOP6:
JBP3.2,ZHENGXUAN
MOVX@DPTR,A
LCALLDELAY
CLRC
ADDA,#32
JNZLOOP6
DOWN4:
NOP
NOP
CLRC
SUBBA,#32
MOVX@DPTR,A
LCALLDELAY
JNZDOWN4
AJMPLOOP6
RETI
;正弦波
ZHENGXUAN:
MOVR3,#00H;取表格初值
LOOP1:
;在表格里取数送到指定地址
MOVA,R3
MOVDPTR,#SETTAB
MOVCA,@A+DPTR
JNBP3.2,JIETI
JNBP3.3,SANJIAO
MOVX@DPTR,A
INCR3
LCALLDELAY1;表格加一
AJMPLOOP1;循环
SETTAB:
;正弦表格
DB80H,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
RET
DELAY1:
MOVR5,#11
DJNZR5,$
RET
DELAY:
MOVR7,#50
MOVR6,#02
DS2:
DJNZR7,DS2
DJNZR6,DS2
RET
DELAY3:
MOVR4,#04H
DJNZR4,$
NOP
RET
END
6、操作说明
6.1接线:
从左至右(从靠边开始)依次接线(+5V、OUT、-12V、+12V、GND)
6.2选择波形:
当两个开关皆靠近单片机这边时,为正弦波,同样的视角,靠上的开关选通中断1,为三角波,靠下的开关为中断0为阶梯波(注意:
由于开关元器件缺失,在每次选通一种波形后,换另一种波形需先将原先的开关位置拨至0位。
7、课程设计体会
两个星期的课程设计很快就这样过去了,两周时间我们熟悉了从设计到制版到软件编程的全过程,也明白了细节决定成败的问题,在两周时间里,我们不断的碰到问题,比如说阶梯波总是像锯齿波,布线的宽度,焊点的大小,以及许许多多的问题,在不断解决问题的同时我们增长了知识,每一个细节都能可能会导致电路板的失败,在这几周里我们小组成员不断地深化改革,分工合作取得了不朽的成果,大家集思广义,最终确定了我们小组的设计方案,以及针对100Hz的实现方法。
后来还有一个问题就是调频调幅的问题,由于我开始在程序当中设置的值过小导致后来我在示波器上看到的波形调频后效果不是非常的明显,后来我检查完了之后我又自己在电脑上进行修改程序调试终于把这个问题解决了。
最后,我觉得两个星期的时间虽然过的很快但是非常的充实。
在这里再一次感谢各位老师的指导和同学的帮助。
8、问题解答
1、正弦波表格如何得来?
根据两个点(0,80H)、(π/2,0FFH),在0至π/2范围内有64个点,可以求得正弦波的函数方程为Y=127sin(90n/64)+128,(n=1,2,3,….256)
如当n=1时,求得Y=83H。
2、如何实现从-5V到+5V的变化范围?
DAC0832具有单极性和双极性两种情况,本次采样的是单极性电压输出,故输出为0V到10V,如果才用双极性电压输出即可达到要求。
参考文献
1、主编:
周航慈.《单片机应用程序设计技术》北京航空航天大学出版社,2005。
2、主编:
张伟.《Protel99SE实用教程》,人民邮电出版社,2008。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- dac0832 函数 信号发生器