基于单片机AT89C52的信号发生器设计

2015-06-03 18:51王泓婷金宝声陈昊
科技创新导报 2015年9期
关键词:单片机

王泓婷 金宝声 陈昊

摘 要:该文利用单片机AT89C52和DAC0832模块设计可以同时产生三角波、方波和正弦波的信号发生器。在单片机的输出端口接DAC0832进行D/A转换,再通过运算放大器进行波形调整,最后输出波形接在波形显示器上显示。

关键词:多路信号发生器 单片机 DAC0832

中图分类号:TN911 文献标识码:A 文章编号:1674-098X(2015)03(c)-0044-01

1 系统总体设计

该文设计的信号发生器将数字信号以波形的形式显示出来,系统主要包括三大模块:AT89C52主控模块、DAC0832数模转换模块和系统显示模块。AT89C52作为系统的控制中枢,依次决定三路波形信号的选通。通过由按键进行波形的选择从而更换频率,DAC0832进行数据锁存,将数字信号转换成模拟信号,然后经由放大电路将波形信号在显示器上显示出来[1]。

2 波形设计

单片机不能产生平滑的正弦波,而是通过对正弦波的上的每个点取样再用数模转换模块(DAC)输出的,所以要输出正弦波,首先要知道它在某个时刻它的值是多少,于是就要有相应的正弦波表[2]。一般的DAC都是0N的输出,所以还要把表中的值映射到0N的整数空间中,用的方法如是(1-1):

Y=sin(x)*N/2+N/2 (1-1)

然后再对Y取整。DAC0832数据端口给出的数据范围是0~255,一共256个。前0~127表示是X轴上方的电压值(也可能是下方),128~255是X轴下方的电压值。因此我们可以得到数据端口的数值的具体量,即式(1-2):

value=128*SIN(360*X/255/360*2*3.14)+128 (1-2)

三角波产生原理:当电压随时间线性增加到一定时间又线性降低时,就形成了三角波。單片机可以输出的数最小为0,最大为255。当输出的值从00000000B线性增加到11111111B,然后从11111111B减小到00000000B时,就可以产生三角波。

方波产生原理:当单片机输出从00000000B直接增加到11111111B时,输出的电压就从低电平变到高电平了。单片机的执行速度很快,于是我们可以将高电平和低电平各保持一段时间,这样就形成了方波。

3 频率设计

设计通过定时器来控制波形的频率,通过输出两点之间的延时功能来实现调频的功能。例如当单片机的晶振频率为24MHZ时,单片机的机器周期为0.5us。对于正弦波,如果需要产生10Hz的正弦波,由于正弦波的取点个数为256个,所以每个点需要的时间为1/10/256秒,选用定时器/计数器T0的方式1来实现,则计数器初值X为:

X=65536(1/10/256*/0.5) (1-3)

4 波形输出

波形要求:正弦波,输出电压值为-5V—+5V,初始频率为10Hz,频率最大值为100Hz,频率调节步进值为10Hz。三角波,输出电压值为-5V—+5V,初始频率为50Hz,频率最大值为500Hz,频率调节步进值为50Hz。方波,输出电压值为-5V—+5V,初始频率为200Hz,频率最大值为2KHZ,频率调节的步进值为200Hz。波形输出时,各种波形的起点,不一定是0,可以是不同值,三个信号的起点也可以分别指定。

图1为基于AT89C52单片机的信号发生器效果图,其中方波频率为200Hz,三角波频率为150Hz,正弦波频率为40Hz。

5 结论

将AT89C52单片机和DAC0832模块结合,设计三角波、方波和正弦波的信号发生器。通过对AT89C52单片机和DAC0832的分析,设计D/A转换电路和按键电路,通过软件设计波形产生程序,最终所设计的信号发生器可以产生三角波、方波和正弦波三种波形。

参考文献

[1] 张占强,孟克其劳.基于Proteus的多波形信号发生器仿真设计[J].电子测量技术,2013,36(3):15-19.

[2] 陈辉,陈梅,杜静,等.基于AT89C51单片机波形发生器的Proteus设计[J].自动化与仪表技术,2012(3):51-53.

猜你喜欢
单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
小议PLC与单片机之间的串行通信及应用
MSP430单片机在仿真中要注意的几点问题
基于单片机的平衡控制系统设计
基于单片机的三维LED点阵设计
Microchip推出两个全新PIC单片机系列
基于Proteus的单片机控制系统的仿真设计