基于单片机正弦波波发生器仿真设计

【资源下载】下载地址如下1544:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

#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;	    //波形标志位
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 waveTH[]={
    0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
	0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
	0xec,0xf6,0xf9,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe};
uchar code waveTL[]={ 
    0x06,0x8a,0x10,0x4e,0x78,0x93,0xa8,0xb3,0xbe,0xc6, //频率调整中间值
	0xac,0xde,0x48,0x7a,0x99,0xaf,0xbb,0xc8,0xd0,0xde,	//频率调整中间值
	0x88,0x50,0x90,0x32,0x34,0xbe,0x4a,0xa3,0xe5,0x2c}; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值