简易低频信号发生器设计Word文档下载推荐.docx
《简易低频信号发生器设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《简易低频信号发生器设计Word文档下载推荐.docx(16页珍藏版)》请在冰点文库上搜索。
![简易低频信号发生器设计Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/4ff455cc-15e3-4093-9fd8-d0c6c90cdf8d/4ff455cc-15e3-4093-9fd8-d0c6c90cdf8d1.gif)
通过在单块芯片上组合通用的CPL1和闪速存储器,ATMELAT89C2051是一强劲的微型计算机,它对许多嵌入式控制应用提供一高度灵活和成本低的解决办法。
(3).引脚说明
AT89C2051是一个有20个引脚的芯片,引脚如图所示,与8051内部结构进行对比可发现,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚,因而芯片尺寸有所减少。
AT89C2051芯片的20个引脚功能为:
Vcc:
电源电压。
GND:
地。
P1口:
P1口是一8位双向I/O口。
口引脚P1.2~P1.7提供内部上拉电阻。
P1.0和P1.1要求外部上拉电阻。
P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(AIN0)和反相输入(AIN1)。
P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。
当P1口引脚写入“1”时,其可用作输入端。
当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流(IIL)。
P1口还在闪速编程和程序校验期间接收代码数据。
P3口:
P3口的P3.0~P3.5、P3.7是带有内部上拉电阻的七个双向I/0引脚。
P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。
P3口缓冲器可吸收20mA电流。
当P3口引脚写入“1”时,它们被内部上拉电阻拉高并可用作输入端。
用作输入时,被外部拉低的P3口引脚将用上拉电阻而流出电流(IIL).P3口还用于实现AT89C2051的各种功能,如下表10-1所示。
P3口还接收一些用于闪速存储器编程和程序校验的控制信号。
RST:
复位输入。
RST一旦变成高电平,所有的I/O引脚就复位到“1”。
当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。
每一个机器周期需12个振荡器或时钟周期。
XTAL1:
作为振荡器反相放大器的输入和内部时钟发生器的输入。
XTAL2:
作为振荡器反相放大器的输出。
P3口的功能
P3口引脚
功能
P3.0
RXD(串行输入端口)
P3.1
TXD(串行输出端口)
P3.2
INT0(外中断0)
P3.3
INT1(外中断1)
P3.4
TO(定时器0外部输入)
P3.5
T1(定时器1外部输入)
4.数/模转换部分
DAC0832是CMOS工艺制造的8位数/模(D/A)转换器,属于8位电流输出型D/A转换器,转换时间为1ms,片内带输入数字锁存器,其引脚排列和内部组成原理图如下所示,DAC0832与单片机接成数据直接写入方式,当单片机把一个数据直接写入DAC寄存器时,DAC0832的输出模拟电压信号随之对应变化。
利用D/A转换器可以产生各种波形,如方波,三角波,锯齿波等以及它们组合产生的复合波形和不规则波形。
这些复合波形利用标准的测试设备是很难产生的。
5.DAC0832的主要分析
(1)D/A转换器DAC0832
DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。
如图所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。
运算放大器输出的模拟量V0为:
由上式可见,输出的模拟量与输入的数字量(
)成正比,这就实现了从数字量到模拟量的转换。
一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。
输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。
是DAC0832的逻辑框图和引脚排列
(2)引脚功能
D0~D7:
数字信号输入端。
ILE:
输入寄存器允许,高电平有效。
CS:
片选信号,低电平有效。
WR1:
写信号1,低电平有效。
XFER:
传送控制信号,低电平有效。
WR2:
写信号2,低电平有效。
IOUT1、IOUT2:
DAC电流输出端。
Rfb:
是集成在片内的外接运放的反馈电阻。
Vref:
基准电压(-10~10V)。
Vcc:
是源电压(+5~+15V)。
AGND:
模拟地NGND:
数字地,可与AGND接在一起使用。
DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。
实验线路如上图所示。
A1、A2、A0:
地址输入端。
ALE地址锁存允许输入信号,在此脚施加正脉冲,上升沿有效,此时锁存地址码,从而选通相应的模拟信号通道,以便进行A/D转换。
START:
启动信号输入端,应在此脚施加正脉冲,当上升沿到达时,内部逐次逼近寄存器复位,在下降沿到达后,开始A/D转换过程。
EOC:
转换结束输出信号(转换接受标志),高电平有效。
OE:
输入允许信号,高电平有效。
CLOCK(CP):
时钟信号输入端,外接时钟频率一般为640kHz。
+5V单电源供电。
、
Vref(+),Vref(-):
基准电压的正极、负极。
一般Vref(+)接+5V电源,Vref(-)接地。
D7~D0:
数字信号输出端。
由A2、A1、A0三地址输入端选通8路模拟信号中的任何一路进行A/D转换。
(3).DAC0832工作方式
DAC0832有双缓冲,单缓冲和直通3种方式
双缓冲工作方式:
进行两级缓冲
单缓冲工作方式:
只进行一级缓冲
直通工作方式:
不进行缓冲,适用于比较简单的场合
三.软件电路设计
1.初始化子程序
初始化子程序的主要工作是设置定时器的工作模式、初值预置、开中断和打开定时器等。
在这里,定时器T1工作16定时模式,单片机按定时时间重复地把波形数据送到DAC0823的寄存器。
初始化子程序流程图如图所示。
初始化子程序流程图
2.键扫描子程序
键扫描子程序和任务是检查3个按键是否有键按下,若有键按下,则执行相应的功能。
在这里,3个按键分别用于频率增加、频率减小和正弦波与三角波的选择功能。
键扫描子程序流程图如图所示。
3.波形数据产生子程序
波形数据产生子程序是定时器T1的中断程序。
当定时器计数溢出时,发生一次中断。
当发生中断时,单片机将按次序将波形数据表中波形数据一一送入DAC0832,DAC0832再根据输入的数据大小输出对应的电压。
波形数据产生子程序如图所示。
波形数据产生子程序流程图:
4.主程序
主程序的任务是进行是电初始化,并在程序运行中不断查询按键情况,执行相应的功能。
四.调试及性能分析
硬件电路的调试较简单,只要元器件安装无误,一般能一次成功。
软件的调试主要是各子程序的调试。
对于中频率的增减按键同于计数器为16位定时器,最大值为65535所以在加减时用255作为加减数。
这样频率的调整变化较快些,但在接近最高频率时变化太快。
如果加减时用1作为加减数,那么在频率的高端变化平稳,而在频率的低端由变化太慢。
调试时可根据应用特点选择加减数的大小。
简易低频信号源输出频率指标实际测试如下:
●正弦波(三角波)输出频率为0.01~83Hz,幅值为1.0~1.5V。
●方波输出频率为1.3~10.6kHz,幅值为5V。
简易低频信号源输出的频率不是很高,在设计时每周期波形用了256个采样点合成,波形不是很光滑。
如果增加采样点,则输出的频率会更低。
在设计中应根据应用特点选择合理的采样点数。
用单片机产生低频率信号的最大优点是可以输出复杂的不规则波形,这是一般的通用信号源无法做到的。
五.控制源程序清单
;
正弦波发生器,P3.0口按键减小输出频率,P3.1口按键增加输出频率
P1口输出正弦波,使用定时器T0,16位定时模式
R6,R7作为10MS延时寄存器,P3.7输出方波
SINPDATA30H;
正弦波查表指针
COSPDATA31H;
余弦波查表指针
THODDATA32H;
定时器初值存放(高8位)
TLODDATA33H;
定时器初值存放(低8位)
ORG0000H
LJMPSTART
ORG000BH
LJMPINTTO
ORG0060H
START:
MOVSP,#70H
MOVSINP,#00H
MOVCOSP,#40H
MOVTMOD,#11H
MOVTHOD,#OFFH;
初值,决定波形频率
MOVTLOD,#00H
MOVTH0,THOD
MOVTL0,TLOD
MOVDPTR,#LIST
SETBET0
SETBEA
SETBTR0
MAIN:
JNBP3.0,INCKEY
JNBP3.1,DECKEY
ORLPCON,#01H
LJMPMAIN
按键功能,输出频率减小
INCKEY:
LCALLDL10MS
JBP3.0,MAIN
MOVA,TLOD
CJNEA,#0FFH,INC1
INC1:
INCTLOD
LJMPMAIN
按键功能,输出频率增大
DECKEY:
JBP3.1,MAIN
CJNEA,#00H,DEC1
DEC1:
DECTLOD
定时器T0中断程序
INTTO:
PUSHACC
CPLP3.7;
方波输出,作辅助功能用
MOVA,SINP
MOVCA,@A+DPTR
MOVP1,A;
正弦波从P1口输出
MOVA,COSP
MOVCA,@A+DPTR
MOVP2,A;
余弦波从P2口输出
INCSINP
INCCOSP
POPACC
RET1
10MS延时程序
DL512:
MOVR7,#0FFH
LOOP:
DJNZR7,LOOP
RET
DL10MS:
MOVR6,#14H
LOOP1:
LCALLDL512
DJNZR6,LOOP1
正弦函数表(共256个点,每点1.40625)
LIST:
DB80H,83H,85H,88H,8AH,8DH,8FH,92H
DB94H,97H,99H,9BH,9EH,0A0H,0A3H,0A5H
DB0A7H,0AAH,0ACH,0AEH,0B1H,0B3H,0B5H,0B7H
DB0B9H,0BBH,0BDH,0BFH,0C1H,0C3H,0C5H,0C7H
DB0C9H,0CBH,0CCH,0CEH,0D0H,0D1H,0D3H,0D4H
DB0D6H,0D7H,0D8H,0DAH,0DBH,0DCH,0DDH,0DEH
DB0DFH,0E0H,0E1H,0E2H,0E3H,0E3H,0E4H,0E4H
DB0E5H,0E5H,0E6H,0E6H,0E7H,0E7H,0E7H,0E7H
DB0E7H,0E7H,0E7H,0E7H,0E6H,0E6H,0E5H,0E5H
DB0E4H,0E4H,0E3H,0E3H,0E2H,0E1H,0E0H,0DFH
DB0DEH,0DDH,0DCH,0DBH,0DAH,0D8H,0D7H,0D6H
DB0D4H,0D3H,0D1H,0D0H,0CEH,0CCH,0CBH,0C9H
DB0C7H,0C5H,0C3H,0C1H,0BFH,0BDH,0BBH,0B9H
DB0B7H,0B5H,0B3H,0B1H,0AEH,0ACH,0AAH,0A7H
DB0A5H,0A3H,0A0H,9EH,9EH,99H,97H,94H
DB92H,8FH,8DH,8AH,88H,85H,83H,80H
DB7DH,7BH,78H,76H,73H,71H,6EH,6CH
DB69H,67H,65H,62H,60H,5DH,5BH,59H
DB56H,54H,52H,4FH,4DH,4BH,49H,47H
DB45H,43H,41H,3FH,3DH,3BH,39H,37H
DB35H,34H,32H,30H,2FH,2DH,2CH,2AH
DB29H,28H,26H,25H,24H,23H,22H,21H
DB20H,1FH,1EH,1DH,1DH,1CH,1CH,1BH
DB1BH,1AH,1AH,1AH,19H,19H,19H,19H
DB19H,19H,19H,19H,1AH,1AH,1AH,1BH
DB1BH,1CH,1CH,1DH,1DH,1EH,1FH,20H
DB21H,22H,23H,24H,25H,26H,28H,29H
DB2AH,2CH,2DH,2FH,30H,32H,34H,35H
DB37H,39H,3BH,3DH,3FH,41H,43H,45H
DB47H,49H,4BH,4DH,4FH,52H,54H,56H
DB59H,5BH,5DH,60H,62H,65H,67H,69H
DB6CH,6EH,71H,73H,76H,78H,7BH,7DH
三角波函数表
LIST1:
DB80H,81H,82H,83H,84H,85H,86H,87H
DB88H,89H,8AH,8BH,8CH,8DH,8EH,8FH
DB90H,91H,92H,93H,94H,95H,96H,97H
DB98H,99H,9AH,9BH,9CH,9DH,9EH,9FH
DB0A0H,0A1H,0A2H,0A3H,0A4H,0A5H,0A6H,0A7H
DB0A8H,0A9H,0AAH,0ABH,0ACH,0ADH,0AEH,0AFH
DB0B0H,0B2H,0B2H,0B3H,0B4H,0B5H,0B6H,0B7H
DB0B8H,0B9H,0BAH,0BBH,0BCH,0BDH,0BEH,0BFH
DB0BFH,0BEH,0BDH,0BCH,0BBH,0BAH,0B9H,0B8H
DB0B7H,0B6H,0B5H,0B4H,0B3H,0B2H,0B1H,0B0H
DB0AFH,0AEH,0ADH,0ACH,0ABH,0AAH,0A9H,0A8H
DB0A7H,0A6H,0A5H,0A4H,0A3H,0A2H,0A1H,0A0H
DB9FH,9EH,9DH,9CH,9BH,9AH,99H,98H
DB97H,96H,95H,94H,93H,92H,91H,90H
DB8FH,8EH,8DH,8CH,8BH,8AH,89H,88H
DB87H,86H,85H,84H,83H,82H,81H,80H
DB7FH,7EH,7DH,7CH,7BH,7AH,79H,78H
DB77H,76H,75H,74H,73H,72H,71H,70H
DB6FH,6EH,6DH,6CH,6BH,6AH,69H,68H
DB66H,66H,65H,64H,63H,62H,61H,60H
DB5FH,5EH,5DH,5CH,5BH,5AH,59H,58H
DB55H,55H,55H,54H,53H,52H,51H,50H
DB4FH,4EH,4DH,4CH,4BH,4AH,49H,48H
DB44H,44H,45H,44H,43H,42H,41H,40H
DB40H,41H,42H,43H,44H,45H,46H,47H
DB48H,49H,4AH,4BH,4CH,4DH,4EH,4FH
DB50H,51H,52H,53H,55H,55H,56H,57H
DB58H,59H,5AH,5BH,5CH,5DH,5EH,5FH
DB60H,61H,62H,63H,66H,65H,66H,67H
DB68H,69H,6AH,6BH,6CH,6DH,6EH,6FH
DB70H,71H,72H,73H,77H,75H,76H,77H
DB78H,79H,7AH,7BH,7CH,7DH,7EH,7FH
END
六.心得体会