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

百度网盘下载地址(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,

  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值