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

📄 dual_ram.c

📁 基于51单片机的双口RAMIDT7131的驱动程序
💻 C
📖 第 1 页 / 共 2 页
字号:
0X2c,0X2b,0X2b,0X2b,0X2b,0X2a,0X2a,0X2a,0X2a,0X29,0X29,0X29,0X29,0X28,0X28,0X28,
0X28,0X27,0X27,0X27,0X27,0X26,0X26,0X26,0X26,0X25,0X25,0X25,0X25,0X24,0X24,0X24,
0X24,0X23,0X23,0X23,0X23,0X22,0X22,0X22,0X22,0X21,0X21,0X21,0X21,0X20,0X20,0X20,
0X20,0X1f,0X1f,0X1f,0X1f,0X1e,0X1e,0X1e,0X1e,0X1d,0X1d,0X1d,0X1d,0X1c,0X1c,0X1c,
0X1c,0X1b,0X1b,0X1b,0X1b,0X1a,0X1a,0X1a,0X1a,0X19,0X19,0X19,0X19,0X19,0X18,0X18,
0X18,0X17,0X17,0X17,0X17,0X16,0X16,0X16,0X16,0X15,0X15,0X15,0X15,0X14,0X14,0X14,
0X14,0X14,0X13,0X13,0X13,0X13,0X12,0X12,0X12,0X11,0X11,0X11,0X11,0X10,0X10,0X10,
0X10,0X10,0X0f,0X0f,0X0f,0X0f,0X0e,0X0e,0X0e,0X0e,0X0d,0X0d,0X0d,0X0d,0X0c,0X0c,
0X0c,0X0b,0X0b,0X0b,0X0b,0X0b,0X0a,0X0a,0X0a,0X0a,0X09,0X09,0X09,0X09,0X08,0X08,
0X08,0X08,0X07,0X07,0X07,0X06,0X06,0X06,0X06,0X06,0X05,0X05,0X05,0X05,0X04,0X04,
0X04,0X04,0X03,0X03,0X03,0X03,0X02,0X02,0X02,0X01,0X01,0X01,0X01,0X01,0X01,0X01,
0X01,0X01,0X01,0X01,0X01,0X01,0X01,0X02,0X02,0X02,0X03,0X03,0X03,0X03,0X04,0X04,
0X04,0X04,0X05,0X05,0X05,0X05,0X06,0X06,0X06,0X06,0X07,0X07,0X07,0X07,0X08,0X08,
0X08,0X08,0X09,0X09,0X09,0X09,0X0a,0X0a,0X0a,0X0a,0X0b,0X0b,0X0b,0X0b,0X0c,0X0c,
0X0c,0X0c,0X0d,0X0d,0X0d,0X0d,0X0e,0X0e,0X0e,0X0e,0X0f,0X0f,0X0f,0X0f,0X10,0X10,
0X10,0X10,0X11,0X11,0X11,0X11,0X12,0X12,0X12,0X12,0X13,0X13,0X13,0X13,0X14,0X14,
0X14,0X14,0X15,0X15,0X15,0X15,0X16,0X16,0X16,0X16,0X17,0X17,0X17,0X17,0X18,0X18,
0X18,0X18,0X19,0X19,0X19,0X19,0X1a,0X1a,0X1a,0X1a,0X1b,0X1b,0X1b,0X1b,0X1c,0X1c,
0X1c,0X1c,0X1d,0X1d,0X1d,0X1d,0X1e,0X1e,0X1e,0X1e,0X1f,0X1f,0X1f,0X1f,0X20,0X20,
0X20,0X20,0X21,0X21,0X21,0X21,0X22,0X22,0X22,0X22,0X23,0X23,0X23,0X23,0X24,0X24,
0X24,0X24,0X25,0X25,0X25,0X25,0X26,0X26,0X26,0X26,0X27,0X27,0X27,0X27,0X28,0X28,
0X28,0X28,0X29,0X29,0X29,0X29,0X2a,0X2a,0X2a,0X2a,0X2b,0X2b,0X2b,0X2b,0X2c,0X2c,
0X2c,0X2c,0X2d,0X2d,0X2d,0X2d,0X2e,0X2e,0X2e,0X2e,0X2f,0X2f,0X2f,0X2f,0X2f,0X30,
0X30,0X30,0X31,0X31,0X31,0X31,0X32,0X32,0X32,0X32,0X32,0X33,0X33,0X33,0X33,0X34,
0X34,0X34,0X34,0X35,0X35,0X35,0X35,0X36,0X36,0X36,0X36,0X37,0X37,0X37,0X37,0X38,
0X38,0X38,0X38,0X39,0X39,0X39,0X39,0X3a,0X3a,0X3a,0X3a,0X3b,0X3b,0X3b,0X3b,0X3c,
0X3c,0X3c,0X3c,0X3d,0X3d,0X3d,0X3d,0X3e,0X3e,0X3e,0X3e,0X3f,0X3f,0X3f,0X3f,0X40,
0X40,0X40,0X40,0X41,0X41,0X41,0X41,0X42,0X42,0X42,0X42,0X43,0X43,0X43,0X43,0X44,
0X44,0X44,0X44,0X45,0X45,0X45,0X45,0X46,0X46,0X46,0X46,0X47,0X47,0X47,0X47,0X48,
0X48,0X48,0X48,0X49,0X49,0X49,0X49,0X4a,0X4a,0X4a,0X4a,0X4b,0X4b,0X4b,0X4b,0X4c,
0X4c,0X4c,0X4c,0X4d,0X4d,0X4d,0X4d,0X4e,0X4e,0X4e,0X4e,0X4f,0X4f,0X4f,0X4f,0X50,
0X50,0X50,0X50,0X51,0X51,0X51,0X51,0X52,0X52,0X52,0X52,0X53,0X53,0X53,0X53,0X54,
0X54,0X54,0X54,0X55,0X55,0X55,0X55,0X56,0X56,0X56,0X56,0X57,0X57,0X57,0X57,0X58,
0X58,0X58,0X58,0X59,0X59,0X59,0X59,0X5a,0X5a,0X5a,0X5a,0X5b,0X5b,0X5b,0X5b,0X5c,
0X5c,0X5c,0X5c,0X5d,0X5d,0X5d,0X5d,0X5e,0X5e,0X5e,0X5e,0X5f,0X5f,0X5f,0X5f,0X60,
0X60,0X60,0X60,0X61,0X61,0X61,0X61,0X62,0X62,0X62,0X62,0X63,0X63,0X63,0X63,0X64,
0X64,0X64,0X64,0X65,0X65,0X65,0X65,0X66,0X66,0X66,0X66,0X67,0X67,0X67,0X67,0X68,
0X68,0X68,0X68,0X69,0X69,0X69,0X69,0X6a,0X6a,0X6a,0X6a,0X6b,0X6b,0X6b,0X6b,0X6c,
0X6c,0X6c,0X6c,0X6d,0X6d,0X6d,0X6d,0X6e,0X6e,0X6e,0X6e,0X6f,0X6f,0X6f,0X6f,0X70,
0X70,0X70,0X70,0X71,0X71,0X71,0X71,0X72,0X72,0X72,0X72,0X73,0X73,0X73,0X73,0X74,
0X74,0X74,0X74,0X75,0X75,0X75,0X75,0X76,0X76,0X76,0X76,0X77,0X77,0X77,0X77,0X78,
0X78,0X78,0X78,0X79,0X79,0X79,0X79,0X7a,0X7a,0X7a,0X7a,0X7b,0X7b,0X7b,0X7b,0X7b,
0X7c,0X7c,0X7c,0X7c,0X7d,0X7d,0X7d,0X7d,0X7e,0X7e,0X7e,0X7e,0X7f,0X7f,0X7f,0X7f,
};

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


/**********判断忙标志,返回的是一个位BF**********/
bit lcd_busy(void)
{
        uchar bflag;     
        rs=0;
        rw=1;
        _nop_();
        e=1;
	    _nop_();
        lcd_bus=0xff;
        bflag=lcd_bus;
        e=0;
        return(bit)(bflag&0x80);    //BF=1 busy   
}



/*********写命令,有两个参数,第一个是要写的命令控制字,

       第二个是用来控制是否进行忙标志的判断。

  busyflag=1:判断;为 0:不判断****************/
void lcd_wrcmd(uchar cmd)
{
        while(lcd_busy());
        lcd_bus=cmd;
        rs=0;
        rw=0;
        _nop_();
        e=1;
        _nop_();
        _nop_();
        e=0; 
}




/************向液晶片写数据***************/
void lcd_wrdata( uchar lcddata)
{

        while(lcd_busy());
        lcd_bus=lcddata;
        rs=1;
        rw=0;
        _nop_();
        e=1;
        _nop_();
        _nop_();
        e=0;
}


void lcd_ini(void)
{

        lcd_wrcmd(0x38); 
        delay(100);
        lcd_wrcmd(0x0c);
		delay(100);
        lcd_wrcmd(0x06);
		delay(100);
        lcd_wrcmd(0x01);
		delay(100);
}

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 display(uchar cmd,uchar code *str)
{
        uchar i=0;
		lcd_wrcmd(cmd);
		while(str[i]!='\0')
		{
		    lcd_wrdata(str[i]);
			i++;		    		    
		}
}
main()
{
   	uint i;
	uchar tt;
    uchar code str[]="IDT7132 CE=1";
	en=0;ce=0;
	for(i=0;i<2048;i++) sin1[i]=Rom[i];
    ce=1;
	lcd_ini();
    temp = sin1[1];
	lcd_wrcmd(0xc0);
	lcd_wrdata(0x30+temp/100);
    lcd_wrdata(0x30+temp/10%10);
	lcd_wrdata(0x30+temp%10);

	temp=sin1[44];
	lcd_wrcmd(0xc4);
	lcd_wrdata(0x30+temp/100);
    lcd_wrdata(0x30+temp/10%10);
	lcd_wrdata(0x30+temp%10);

	display(0x80,str);
	en=1;	
	while(1)
	{
	    tt=key();
		if(tt==0)
		{

		    en=0;ce=0;
	        for(i=0;i<2048;i++) sin1[i]=Rom1[i];
            ce=1;en=1;
		}
		else if(tt==1)
		{  
		   en=0;ce=0;
	       for(i=0;i<2048;i++) sin1[i]=Rom[i];
           ce=1; en=1;
		}
		else if(tt==2)
		{  
		   en=0;ce=0;
	       for(i=0;i<2048;i++) sin1[i]=(Rom[i]/2+Rom1[i]/2);
           ce=1; en=1;
		}
		else if(tt==3)
		{  
		   en=0;ce=0;
	       for(i=0;i<2048;i++) sin1[i]=Rom[i]*Rom1[i];
           ce=1; en=1;
		}
		else if(tt==4)
		{  
		   en=0;ce=0;
	       for(i=0;i<2048;i++) sin1[i]=Rom[i]-Rom1[i];
           ce=1; en=1;
		}

	}
}

⌨️ 快捷键说明

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