基于单片机的多种波形发生器设计-毕设课设protues仿真

这篇博客详细介绍了如何使用C语言编程,结合DAC0832芯片来实现方波、三角波、正弦波的发生器。代码中包含了频率调节、占空比控制以及振幅调节的功能,通过按键操作选择不同波形和参数。此外,还涉及了频率调整的中间值计算和DAC的控制方法。
部署运行你感兴趣的模型镜像

百度网盘下载地址(990):点击下载

方波、三角波、正弦波发生器,四个按键,波形选择按键对波形选择,
频率增加键,占空比调节只针对方波,当按下占空比按键,则频率调
节按键锁定失效,仅可以对占空比进行调节,当按下波形选择键,频
率按键激活。滑动变阻器对振幅进行调节。

//波形发生器
#include<reg52.h>
#define  uchar unsigned char
#define  uint  unsigned int
//#define  Fosc  24000000/12000000  //12分频后的频率

#define DAdata  P0	//DA数据端口
sbit DA_S1= P2^0;   // 控制DAC0832的8位输入寄存器,仅当都为0时,可以输出数据(处于直通状态),否则,输出将被锁存
sbit DA_S2= P2^1;   // 控制DAC0832的8位DAC寄存器,仅当都为0时,可以输出数据(处于直通状态),否则,输出将被锁存
sbit key=   P3^2;
uchar wavecount;    //'抽点'计数
uchar THtemp,TLtemp;//传递频率的中间变量
//uint T_temp;
uchar judge=1;      //在方波输出函数中用于简单判别作用
uchar waveform;	    //当其为0、1、2时,分别代表三种波
uchar flag=0;

uchar code freq_unit[3]={10,10,10};    //增加或者减少10倍频
uchar idata wavefreq[3]={1,1,1}; 	  //给每种波定义一个数组单元,用于存放单位频率的个数
uchar code  lcd_hang1[]={"Sine Wave       " "Triangle Wave   " "Square Wave     " "Select Wave:    " "press No.1 key! "};
uchar idata lcd_hang2[16]={"f=    Hz        "};

/*uchar code wave_freq_adjust[]={       //频率调整中间值
    0xff,0xb8,0x76,0x56,0x43,0x37,0x2e,0x26,0x20,0x1c,  //正弦波频率调整中间值
	0xff,0x8e,0x5a,0x41,0x32,0x28,0x20,0x1b,0x17,0x0e,	//三角波频率调整中间值
	0xff,0x8e,0x5a,0x41,0x32,0x28,0x20,0x1b,0x17,0x0e}; 
uint code wave_freq_adjust[]={       //频率调整中间值
    380,184,118,86,67,55,46,28,38,32,
	295,142, 90,65,50,40,32,27,23,14,

您可能感兴趣的与本文相关的镜像

Qwen-Image

Qwen-Image

图片生成
Qwen

Qwen-Image是阿里云通义千问团队于2025年8月发布的亿参数图像生成基础模型,其最大亮点是强大的复杂文本渲染和精确图像编辑能力,能够生成包含多行、段落级中英文文本的高保真图像

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值