⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 max038扫频.txt

📁 51单片机结合MAX038实现扫频功能
💻 TXT
字号:
#include<reg51.h>
//#define temp -46080
sbit NSYNC=P2^3; //dac7512 使能端
sbit SCLK=P2^4; //dac7512 时钟端
sbit DIN=P2^5;  //dac7512 数据端
#define uchar unsigned char
#define uint unsigned int 
unsigned int Sine_wave[]={23,48,74,100,126,153,180,208,237,267,297,326,359,390,422,452,484,522,556,590};
//unsigned char flag=0,change=0;
uint i=0,j=0;
void DAchange(unsigned int dat);
//uint dat=0x0ffe;
//da驱动程序,入口参数dat,必须小于4096!4096对应5v电压!
void DAchange(unsigned int dat)

{    
    uchar DA,i,j,DAL,DAH;
    if(dat>4095)
    {
        dat=0;
    }
    else
    {
        DAL=dat%256;
        DAH=dat/256;
        NSYNC=0;
        i=0;
        while(i<2)
    	{
            if(i<1)
    		{
                DA=DAH;
    		}
             else
    		{
                DA=DAL;
    		}
            for(j=8;j>0;j--)
         	{
                DIN=(DA&0x80);
                DA=(DA<<1);
                SCLK=1;
                SCLK=0;
        	}
            i=i+1;
    	}
    NSYNC=1;
    }
}
//da驱动到此结束!!
void main()
{
  /* TMOD=0x01;
   TH0=temp/256;
   TL0=temp%256;
   TR0=1;
   EA=1;
   ET0=1;*/
	while(1)
	{
      for(i=0;i<50000;i++);
	   DAchange(Sine_wave[j]);
	   j++;
	   if(j==20)
	      j=0;
	 /*  if(flag==10)
	      {   
		      flag=0;
		      change++;
			  if(change==20)
			     change=0;
		      DAchange(Sine_wave[6]);

 		  }
	}*/
}}
/*void T0_svr(void)interrupt 2 using 1
{
   flag++;
  
   TH0=temp/256;
   TL0=temp%256;
}
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -