当前位置:首页 > 单片机 > 单片机
[导读]摘要 该信号发生器以单片机AT89C52和D/A转换器DAC0832芯片为核心进行设计。通过AT89S52控制DAC0832产生所需电流,然后使用运算放大器LF393将其电流输出线性地转换成0~5 V电压输出。通过程序控制,可以产生一系列有

摘要 该信号发生器以单片机AT89C52和D/A转换器DAC0832芯片为核心进行设计。通过AT89S52控制DAC0832产生所需电流,然后使用运算放大器LF393将其电流输出线性地转换成0~5 V电压输出。通过程序控制,可以产生一系列有规律的波形j该系统具有精度高、抗干扰性强、性能稳定、升级方便等特点,具有较高的应用价值。
关键词 AT89S52;DAC0832;信号发生器;D/A转换

    信号发生器是一种常用的信号源,广泛应用于电子电路、自动控制系统和教学实验等领域。信号的产生有模拟电路、专用硬件和软件产生等方法。采用模拟电路搭建函数信号发生器,可同时产生方波、三角波、正弦波,但不能产生任意波形,存在波形质量差、控制难、可调范围小,电路复杂和体积大等缺点,且频率调节不方便。专用硬件方法产生的信号频率分辨率高、稳定性好、在线调整方便,如目前在通讯系统中应用广泛的直接数字频率合成(DDS)技术,例如AD9854是一种典型的信号产生方法,但是价格昂贵。
    利用单片机通过程序设计方法产生低频信号,其频率底线较低,具有线路简单、结构紧凑、体积小、价格低廉、频率稳定度高、抗干扰能力强、用途广泛等优点,且如需要产生新的波形时,只需对程序进行修改即可。文中利用单片机AT89S52和D/A转换器DAC0832转换数字信号为0~5 V模拟电压信号,并在LCD1602显示。

1 系统硬件设计
    系统硬件采用模块化设计,以单片机控制器为核心,与D/A转换电路、按键电路、LCD显示电路等组成信号发生器控制系统。字符型液晶显示模块是一种专用于显示字母、数字、符号等点阵式LCD,目前常用的有16×1、16×2、20×2和40×2行等模块。系统选用1602字符型LCD模块,其控制器为日立公司生产的HD44780,可用来显示数字、字符等。按键输入使用独立式按键K1、K2,主要实现数字信号DAC值的加减。
    系统硬件组成框图如图1所示。


1.1 主控芯片电路
    在大部分的工控或测控设备中,8位的MCS-51系列单片机能满足大部分的控制要求,加之MCS-51系列单片机的价格优势,使MCS-51系列单片机成为单片机应用主流。AT89S52是MCS-51系列兼容单片机中的代表产品。鉴于此,本系统选用AT89S52单片机作为主控制器。
1.2 D/A转换电路
    D/A模块由D/A芯片和放大电路组成,系统D/A芯片选用DAC0832芯片来完成数/模转换过程。数字信号的输入从“D0~D7”端口输入,通过按键K1、K2实现DAC值的加减,其值在0~255之间,并在LCD1602上显示。控制DAC0832工作的控制信号南“WR-CS”端口输入。DAC 0832是电流输出型D/A转换芯片,通过集成运放LF393完成电流到电压的转换,由于LF393工作在双电源条件下,因此要给LF393加入±12 V电压。DAC转换的模拟电压值从“D/A输出”口输出。
    系统硬件电路原理图如图2所示。



2 系统软件设计
    系统的软件设计使用C51编程,采用模块化设计方法,主要由主函数、定时器T0中断服务函数、D/A转换函数、计算D/A转换值函数、按键扫描函数、LCD显示函数、LCD显示A/D转换值函数等模块组成。根据D/A转换芯片DAC0832的工作时序,20 ms进行一次D/A转换,可以利用单片机AT89S52的定时器T0定时,20 ms定时到时,产生定时器T0中断,在定时器T0中断服务函数巾调用DAC0832采样转换函数进行D/A采样转换,然后调用计算D/A转换值函数把D/A转换值转换成相应的ASCⅡ码,最后通过LCD显示D/A转换值函数把DAC转换的模拟电压值(0~5 V)显示在液晶LCD1602上,并从“D/A输出”端子输出DAC转换的0~5 V模拟电压。系统软件结构框图如图3所示。


    主函数是完成硬件初始化、数据初始化、函数调用等功能,等待中断到来。计算D/A转换值ASCII码函数实现把D/A转换值dabl转换为相应的ASCII码,以便在LCD上显示。按键扫描函数实现了通过系统程序改变数字量初始值,按键K1实现数字量加1,按键K2实现数字量减1,使数字量在0~255的范围内变化,从而模拟数字信号的输入。LCD显示函数包括LCD初始化函数、写入指令数据到LCD函数、写入显示数据到LCD函数、LCD显示D/A转换值函数、延时函数等模块。软件程序的核心由定时器T0中断服务程序、DAC0832采样转换程序构成。
2.1 定时器T0中断服务函数设计
    当定时器T0定时20 ms后,进入定时器T0中断服务函数。首先重装定时器T0初值,设置按键输入口P1口的值为0xdf,调用按键扫描函数。接着调用D/A转换函数进行D/A转换,得到D/A转换值dabl,然后调用计算D/A转换值函数计算dabl相应的ASCII码,再调用LCD显示D/A转换值函数把数字量输入值D/A进行转换后的模拟量显示在液晶LCD1602上。最后T0中断函数返回主程序等待下一次D/A转换。定时器T0中断服务函数设计流程图如图4所示。


2.2 DAC0832采样转换函数设计
    根据D/A转换芯片DAC0832的工作时序,片选信号低电平有效。把芯片DAC0832的片选信号置低电平,选中该芯片。把数字量D/A转换值dabl送给P0口,准备送入芯片DAC0832进行D/A转换处理。芯片DAC0832写信号置低电平后再过两个时钟周期至高电平,产生一个上升沿信号,进行数据D/A转换处理。模拟量dabl从Iout1、Iout2引脚输出送到运算放大器LF393进行处理,最后从“D/A输出”端子输出,可用万用表测量到输出电压。数据转换完毕,把芯片DAC0832片选信号置高电平,最后函数返回。D/A转换函数设计流程图如图5所示。



3 实验测试分析
    根据输入单片机的数字信号,用万用表测量从“D/A输出”端子测试输出模拟电压信号,如表1所示。从表1可知,该信号发生器的电压输出误差小、精度高。



4 结束语
    系统按照简单化、便捷化原则设计,介绍了系统的总体结构、硬件设计和软件设计。侧重阐述了采用AT89S52单片机与D/A转换器DAC08 32对输入数字信号进行处理,最后驱动输出显示装置LCD1602显示D/A转换的0~5 V模拟电压信号。实验调试表明该信号发生器在技术指标上达到了设计要求,具有精度高、抗干扰性强、性能稳定、升级方便等特点,有较高的应用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭