没有合适的资源?快使用搜索试试~ 我知道了~
89C51单片机设计多功能低频函数信号发生器,能产生方波、正弦波、三角波等信号波形
资源推荐
资源详情
资源评论
波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领
域。本次课程设计使用的 AT89S51 单片机构成的发生器可产生锯齿波、三角波、正弦波
等多种波形,波形的周期可以用程序改变,并可根据需要选择单极性输出或双极性输出,
具有线路简单、结构紧凑等优点。在本设计的基础上,加上按钮控制和 LED 显示器,则可
通过按钮设定所需要的波形频率,并在 LED 上显示频率、幅值电压,波形可用示波器显示。
二、系统设计
波形发生器原理方框图如下所示。波形的产生是通过 AT89S51 执行某一波形发生程序,
向 D/A 转换器的输入端按一定的规律发生数据,从而在 D/A 转换电路的输出端得到相应的
电压波形。在 AT89S51 的 P2 口接 5 个按扭,通过软件编程来选择各种波形、幅值电压和频
率,另有 3 个 P2 口管脚接 TEC6122 芯片,以驱动数码管显示电压幅值和频率,每种波形
对应一个按钮。此方案的有点是电路原理比较简单,实现起来比较容易。缺点是,采样频
率由单片机内部产生故使整个系统的频率降低。
1、波形发生器技术指标
1)波形:方波、正弦波、锯齿波;
2)幅值电压:1V、2V、3V、4V、5V;
3)频率:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;
2、操作设计
1)上电后,系统初始化,数码显示 6 个‘-’,等待输入设置命令。
2)按钮分别控制“幅值”、“频率”、“方波”、“正弦波”、“锯齿波”。
3)“幅值“键初始值是 1V,随后再次按下依次增长 1V,到达 5V 后在按就回到 1V。
4)“频率“键初始值是 10HZ,随后在按下依次为
20HZ、50HZ、100HZ、200HZ、500HZ、1000HZ 循环。
三、硬件设计
本系统由单片机、显示接口电路,波形转换(D/A)电路和电源等四部分构成。电路图 2
附在后
1、单片机电路
功能:形成扫描码,键值识别、键处理、参数设置;形成显示段码;产生定时中断;形成
波形的数字编码,并输出到 D/A 接口电路和显示驱动电路。
AT89S51 外接 12M 晶振作为时钟频率。并采用电源复位设计。复位电路采用上电复位,
它的工作原理是,通电时,电容两端相当于短路,于是 RST 引脚上为高电平,然后电源通
过对电容充电。RST 端电压慢慢下降,降到一定程序,即为低电平,单片机开始工作。
AT89S51 的 P2 口作为功能按钮和 TEC6122 的接口。P1 口做为 D/A 转换芯片 0832 的接
口。用定时/计数器作为中断源。不同的频率值对应不同的定时初值,允许定时器溢出中断。
定时器中断的特殊功能寄存器设置如下:
定时控制寄存器 TCON=20H;
工作方式选择寄存器 TMOD=01H;
中断允许控制寄存器 IE=82H。
2、显示电路
功能:驱动 6 位数码管显示,扫描按钮。
由集成驱动芯片 TEC6122、6 位共阴极数码管和 5 个按钮组成。当某一按钮按下时,扫描
程序扫描到之后,通过 P2 口将数字信号发送到 TEC6122 芯片。TEC6122 是一款数字集
成芯片。它的外接电压也是+5V,并且由于数码管的载压较小,为了保护数码管,必须在
两者间接电阻,大约是 560 欧。
扫描利用软件程序实现,当某一按键按下时,扫描程序立即检测到,随后调用子程序,执
行相应的功能。
3、D/A 电路
功能:将波形样值的编码转换成模拟值,完成双极性的波形输出。
由一片 0832 和两块 LM358 运放组成。DAC0832 是一个具有两个输入数据寄存器的 8 位
DAC。目前生产的 DAC 芯片分为两类,一类芯片内部设置有数据寄存器,不需要外加电
路就可以直接与微型计算机接口。另一类芯片内部没有数据寄存器,输出信号随数据输入
线的状态变化而变化,因此不能直接与微型计算机接口,必须通过并行接口与微型计算机
接口。DAC0832 是具有 20 条引线的双列直插式 CMOS 器件,它内部具有两级数据寄存器,
完成 8 位电流 D/A 转换,故不需要外加电路。0832 是电流输出型,示波器上显示波形,通
常需要电压信号,电流信号到电压信号的转换可以由运算放大器 LM358 实现,用两片
LM358 可以实现双极性输出。
单片机向 0832 发送数字编码,产生不同的输出。先利用采样定理对各波形进行抽样,然
后把各采样值进行编码,得到的数字量存入各个波形表,执行程序时通过查表方法依次取
出,经过 D/A 转换后输出就可以得到波形。假如 N 个点构成波形的一个周期,则 0832 输
出 N 个样值点后,样值点形成运动轨迹,即一个周期。重复输出 N 个点,成为第二个周期。
利用单片机的晶振控制输出周期的速度,也就是控制了输出的波形的频率。这样就控制了
输出的波形及其幅值和频率。
四、 软件设计
主程序和子程序都存放在 AT89S51 单片机中。
主程序的功能是:开机以后负责查键,即做键盘扫描及显示工作,然后根据用户所按的键
转到相应的子程序进行处理,主程序框图如图 1 所示。
子程序的功能有:幅值输入处理、频率输入处理、正弦波输出、锯齿波输出、方波输出、
显示等。
下面是程序
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit LCP=P2^2;
sbit SCP=P2^1;
sbit SI=P2^0;
sbit S1=P2^3;
sbit S2=P2^4;
sbit S3=P2^5;
sbit S4=P2^6;
sbit S5=P2^7;
sbit DA0832=P3^3;
sbit DA0832_ON=P3^2;
uchar fun=0,b=0,c=0,d=0,tl,th;
uchar code tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
剩余10页未读,继续阅读
资源评论
gxs542878223
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功