1.任务描述
所谓多功能波形发生器,是指利用单片机系统中的D/A转换功能,实现要求的输出波形。本项目是用单片机设计一个多功能波形发生器。要求如下:
(1)波形的频率可调,具有产生方波、三角波、锯齿波、阶梯波、正弦波五种周期性波形的功能。
(2)输出波形的频率范围为100Hz~_20kHz,频率步进间隔≤100Hz。
(3)输出波形幅度范围为0~5V(峰-峰值),可按步进0.1V(峰-峰值)调整。
(4)具有显示输出波形的类型、重复频率(周期)和幅度的功能。
2.任务分析
按照要求完成多功能波形发生器设计任务,需要解决以下几个问题:①单片机的选型;②若单片机内部没有D/A转换电路,需要构建单片机与D/A转换接口电路;③单片机与D/A转换接口电路软件设计方法。
单片机的选型同前面项目。在单片机与D/A转换接口电路的设计中,本项目采用了并行D/A转换芯片DAC0832实现。而在实际应用中,经常会根据实际需要,为减少线路板的面积而采用串行D/A转换芯片。
单片机多功能波形发生器设计是单片机D/A转换接口最常用的一个非常典型的综合应用案例,它综合了D/A转换接口设计基础和人机界面接口设计基础。本项目通过多功能波形发生器任务的完成,重点了解D/A转换芯片DAC0832的工作原理、DAC0832工作方式及应用。
3.任务实施
(1)总体设计。根据任务分析,多功能波形发生器设计可采用AT89S51单片机控制,在设计中需要引入一个8位的D/A转换电路,需要若干个I/O口作为按键电路。系统结构图如图11-6所示。
图11-6 多功能波形发生器的系统结构图
该系统采用以单片机为核心的模块化结构,主要包含的硬件模块有:最小电路模块、D/A转换模块、电流转换电压电路模块及波性选择按键电路模块等几个部分。
整个系统工作时,单片机是整个波形发生器的核心部分,它从程序存储器读取程序,从按键电路接收数据,并产生相应的数字信号送到数模转换器,转换成模拟电流信号,再由电流转换电压电路转换成模拟电压输出,即为所需要的波形输出。波性选择按键电路采用独立按键实现,接单片机的P1口。D/A转换电路实现数字量向模拟量的转换,采用单缓冲工作方式。电流转换电压电路由集成运算放大器实现,并采用单极性输出,电压输出范围为0~5V。
(2)硬件设计。
本任务采用AT89S51单片机作为主控制器。它的主要任务是读取用于波形选择的各独立按键的状态,根据按键的状态产生相应的波形数据(数字量)。DAC0832芯片将单片机产生的波形数据进行数模转换,输出模拟电流,μA741将DAC0832转换后的输出电流转变成模拟电压输出,即产生的波形为模拟电压输出。
实现该任务的硬件电路中包含的主要元器件为:AT89S51 1片、DAC0832 1片、集成运放μA741 1个、按键7个、电阻和电容等若干。
多功能波形发生器的原理图如图11-7所示。
(www.xing528.com)
图11-7 多功能波形发生器的硬件电路原理图
(3)软件设计。
①软件流程设计。
软件采用模块化设计方法,模块说明如下:变量缓冲区定义模块、主程序模块、波形任务处理模块、缓冲区设置模块、软件延时模块。多功能波形发生器控制电路软件参考流程图如图11-8所示。
图11-8 多功能波形发生器的软件流程图
②源程序如下:
(4)虚拟仿真。
多功能波形发生器Proteus仿真硬件电路如图11-9所示,多功能波形发生器Proteus仿真硬件电路仿真调试图如图11-10所示。通过示波器观察电路输出的波形。正常的运行结果是:按下K1~K5键,该系统分别产生方波、锯齿波、三角波、阶梯波和正弦波等不同的波形,波形幅值为0~5V,各波形的频率均可由K6和K7进行调整,K6可递增调节频率,K7则可对频率进行递减调节,频率调节范围为100Hz~20kHz。调试结果若不符合设计要求,对硬件电路和软件进行检查、重复调试。
图11-9 多功能波形发生器Proteus仿真硬件电路图
图11-10 多功能波形发生器Proteus仿真硬件电路仿真调试图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。