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

2018-11-09 02:49
山西电子技术 2018年5期
关键词:正弦波方波按键

张 婷

(山西大学商务学院,山西 太原 030031)

0 引言

信号发生器是一种常见的信号源,在电子设计应用和教学环境中经常会用到。信号产生方法有很多种,如基于DDS设计的信号发生器,模拟电路中可以利用集成运算放大器来生产正弦波,方波,三角波等。波形较为稳定但是波形频率幅度值得改变需要外接电路元器件的改变,其电路较为复杂且成本较高。本文设计了一种低频段的简单信号源可供一般的测试和教学环境使用。鉴于本设计应用为基本简单环境,所以选择了8位51单片机来实现,通过编程及简单的外围电路实现,成本低,设计简单[1]。方便学生设计学习。最后可以通过proteus仿真来验证可行性,也可以连接实物用示波器进行测试。

1 信号发生器总体模块分析

信号发生器的总体结构框图如图1所示,该信号发生器由单片机控制模块,按键电路模块,LCD显示模块,DA模块,放大电路组成。

单片机控制电路也就是单片机的最小系统,是控制信号发生器工作的核心控制部分。波形信号通过单片机输出为数字信号,需要进行模拟数字转换以后才能输出波形。模数转换后对信号进行简单放大。单片机控制LCD显示电路可以显示波形相关信息。按键电路可以对波形种类,频率大小和占空比进行调节。这样就形成了信号发生器,可以产生不同的波形信号供使用。

图1 计步器结构框图

2 信号发生器硬件设计

2.1 单片机模块

本文采用8位单片机AT89C51,32个I/O口,2个定时计数器,2个中断源足够完成该信号发生器的设计[2]。

由AT89C51芯片构成的最小系统、辅助11.059 2 MHz晶振电路、复位电路构成了最小系统。采用外部时钟电路,接单片机的XXTAL1和XTAL2再加两个辅助电容构成时钟电路,复位电路为手动按键复位,为典型的RC电路,接法简单。

2.2 按键调节模块

按键电路与单片机的P1口连接。共5个按键,一端接到单片机的P1.0,P1.1,P1.2,P1.3,P1.4和P1.5。另一端接地。开关处于闭合还是打开状态可通过I/O口的高低电平来决定。

P1.0所接按键的作用是控制信号发生器的各个波形间的切换。该信号发生器可以产生4种波形,正弦波,三角波,方波和锯齿波。每次按下按键信号就在4种波形中依次循环切换。

P1.1所接按键的作用是每次按下后信号的频率提高1 Hz,当然每次提高的步长可以通过程序设置。P1.2所接按键的作用是每次按下后减低信号的频率,每次降低1 Hz,当然步长可以通过程序设置。P1.3所接的按键是为了控制信号的占空比,如果信号为方波信号,每次按下提高信号的占空比。P1.4所接按键可以降低信号的占空比。

按键电路虽然设计简单,但却是数字信号发生器实现多功能的关键电路。

图2 按键电路

2.3 显示模块

本文采用比较常用的1602作为显示模块。LCD具有省电、体积小以及抗干扰能力强等优点,分为字段型、字符型和点阵图形。单片机控制模块中常采用点阵字符型。LCD的工作原理其实很简单就是通过电流诱发内部液晶分子点亮背部的小灯管,这样就成了我们看见的LCD显示屏。单片机只要向LCD显示模块写入相应的命令和数据就可以显示需要的内容。

LCD显示器,用于显示信号的频率和种类。如果要封装起来用于实际开发可以选择型号更加小巧的显示器。

2.4 DA模块

在单片机测控中,单片机只能输出数字量,但是要想形成波形信号,需要输出模拟量。就需要单片机自带DA功能或者外接DA模块。由于AT89C51不带DA功能,所以需要设计外接DAC模块。集成化的DAC芯片种类很多,本设计选用DAC0832具有两级输入数据寄存器是8位的DACA。DA位数越大转换精度越大,对于本设计来说8位够用。电流输出建立时间为1us速度较快,可以实现双缓冲输入,单缓冲输入或者直通输入。单一电源供电,低功耗[3]。

AT89C51单片机控制DAC0832可实现数字调压,单片机只要送给DAC0832不同的数字量,即可实现不同的模拟电压输出。8位数字信号输入端接单片机的P2口。CS接单片机的P3.7口。

DAC0832的输出电压VO与输入数字量B的关系为:VO=-(B*VREF)/256。可见,输出的模拟电压VO和输入的B以及基准电压VREF成正比,且B为0时,VO也为0,B为255时,VO为最大的输出。

连接电路如图3所示。输出端OUT2和OUT1接集成运放,即为信号发生器输出。本设计为单级运算放大,如果在输入信号较为小或者要求输出较大的场合还可以通过两级放大,实现信号的放大。后续电路中也可以加入滤波电路使输出波形性能进行改善。

图3 DAC0832电路

3 信号发生器软件设计

3.1 系统软件流程

该信号发生器的总体工作流程如图4所示。设计开始,先对定时计数器,中断,LCD和参数值进行初始化。单片机默认输出频率为50 Hz的正弦波信号。接下来等待按键是否按下,如果波形种类选择按钮按下则波形依次在正弦波,方波,三角波和锯齿波四种波形中进行切换,并LCD显示输出到DA。如果频率调节波形按键按下则频率随着按键按下而进行调节,如果是调高则每次频率增加1 Hz,如果频率超过1 kHz,则每次增加100 Hz。如果是调低,则依次降低。每次调节步长可以通过程序设置。如果是方波信号还可以通过按键对占空比进行调节。

波形实现中,正弦波通过查表法实现,由于单片机位数有限,正弦表最多采样255点,适用于普通场合。如果对波形要求较为严格的场合需要增加采样点数。三角波的生成通过单片机程序直接控制,生成原理,设置一个变量让它自增到255然后再自减到0,如此循环这个过程就形成三角波。锯齿波生成原理和三角波类似,设置变量让其自加就形成了斜坡,增加到255后降为0就形成了锯齿波。方波延时一定时间的255再延时一定时间的0值即可生成,通过控制高电平和低电平的延时时间即可控制占空比实现占空比可调。通过控制定时计数器时间即可实现频率调节。

通过程序设计要比模拟电路调节元器件参数生成波形结构简单、实现容易且扩展性较强。核心问题是8位255的分表率较低,可通过增加CPU位数来实现。

图4 系统软件流程图

4 结论

本文设计的信号发生器可以实现三角波,正弦波,方波和锯齿波4种波形的生成。经过protues软件仿真[4]发现波形清晰干扰小。Protues软件是一种混合电路仿真软件,包括模电、数电和单片机及其外围电路的仿真等。根据该系统设计的电路在ptotues中画出仿真电路图,并将Keil编程生成的HEX文件下载到仿真图的单片机里面,实现整个系统的仿真。并用虚拟示波器观察各种波形输出,测试频率。最终发现,设计基本符合要求。测试时LCD显示正常,可以显示频率和波形种类。但是该设计仍然存在一些问题,如频率范围较小等缺点,希望后期可以采用位数较高的单片机实现频率范围较广和精度更高的信号发生器。该设计生成电路简单,设计灵活可扩展性强,成本低,在较多场合具有一定的实用价值。

猜你喜欢
正弦波方波按键
便携式多功能频率计的设计与实现
单相正弦波变频电源设计与实现
基于有限状态机的按键检测程序设计
测绘技术在土地资源管理中的应用
一种基于555定时器的方波产生电路设计
采用BC5016S的纯正弦波逆变器设计及制作
按键消抖在单片机和FPGA实验教学中的应用
碳纳米管方波电沉积铂催化剂的制备及其催化性能研究
基于STM32的风力摆控制系统的设计
一种多方向导光按键结构设计