基于单片机的多种波形发生器设计-毕设课设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,

posted @ 2021-02-27 16:48  roadroad  阅读(290)  评论(0编辑  收藏  举报
电设屋
上千套电子毕设课设方案