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

📄 ad9832.c

📁 用51和 FPGA实现的 DDS的程序
💻 C
字号:
#include<reg51.h>
#define uchar unsigned char 
#define uint  unsigned int
#define key_bus P0
sbit sdata=P2^0;
sbit sclk=P2^1;
sbit load=P2^2;
sbit ps=P2^3;
sbit fs0=P2^4;
sbit fs1=P2^5;
sbit loadp=P3^6; 


void delay(uchar d)
{
    while(--d);

}


uchar key()
{
    uchar keycode=0xff,temp,i;
    key_bus=0x0f;
	temp=key_bus&0x0f; 
	if(temp!=0x0f)              //有键按下
	{
	    key_bus=0x7f;
	    for(i=0;i<4;i++)
		{
			temp=key_bus&0x0f;
            if(temp==0x07)
	        {    
			    keycode=i*4;
				break;
			}
	        else if(temp==0x0b)
			{
	            keycode=i*4+1;
				break;
			}
    	    else if(temp==0x0d)
			{
	            keycode=i*4+2;
				break;
			}
    	    else if(temp==0x0e)
			{
	            keycode=i*4+3;
				break;
			}
			key_bus=(key_bus>>1)|0x80;
		}

	     while((key_bus&0x0f)!=0x0f)   //等待释放
		 {
		     key_bus=0x0f; 
		 }								             
	    
	 }
	 return keycode;
}


void send_char(uint x)
{
        uchar i;
		load=0;
		for(i=0;i<16;i++)
		{
		        sclk=1;
				if(x&0x8000)sdata=1;
				else sdata=0;
				sclk=0;
				x=x<<1;
		}
		load=1;
}


main()
{
    uchar ii;
    uchar x[4]={0x0,0x2,0x00,0x00};
	ps=0;
	fs0=0;
	fs1=0;
	send_char(0xf800);
	send_char(0x3000+x[3]);
	send_char(0x2100+x[2]);
	send_char(0x3200+x[1]);
	send_char(0x2300+x[0]);
	send_char(0xc000);
	while(1)
	{
	    ii=key();
		if(ii!=0xff)
		{
		    loadp=0;
			P1=ii<<4+ii;
			loadp=1;
			delay(200);delay(200);delay(200);delay(200);
			delay(200);delay(200);delay(200);
			loadp=0;



		}

	}

}

⌨️ 快捷键说明

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