首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» 基于DAC0832和AT89S52的信号发生器设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于DAC0832和AT89S52的信号发生器设计
发短消息
加为好友
forsuccess
当前离线
UID
871057
帖子
6281
精华
0
积分
3141
阅读权限
90
在线时间
282 小时
注册时间
2012-2-21
最后登录
2015-6-23
论坛元老
UID
871057
性别
男
1
#
打印
字体大小:
t
T
forsuccess
发表于 2012-8-19 00:55
|
显示全部帖子
基于DAC0832和AT89S52的信号发生器设计
信号发生器
,
电子电路
,
价值
,
教学
摘要 该信号发生器以单片机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模拟电压信号。实验调试表明该信号发生器在技术指标上达到了设计要求,具有精度高、抗干扰性强、性能稳定、升级方便等特点,有较高的应用价值。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议