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

📄 text1.c

📁 Nokia 3310 驱动程序 ... KeilC
💻 C
字号:
#include <reg52.h>
#include <intrins.h>
#include <ad.h>
#include <dat.h>
#define uchar unsigned char
#define uint  unsigned int

sbit sclk=P0^7;			  //要有实现滚屏的函数
sbit sdin=P0^6;
sbit dc  =P0^5;
sbit sce =P0^4;
sbit res =P0^0;	

/*往LCD3310写指令,或写数据*/
void lcd3310_wr(uchar com,bit k)
{
	uchar i;
	sce=0;
	dc=k;
	for(i=0;i<7;i++)
	{
		sclk=0;
		if(com&0x80)
			sdin=1;
		else 
			sdin=0;
		com<<=1;
		sclk=1;		
	}
	sclk=0;
	if(com&0x80)
		sdin=1;
	else 
		sdin=0;
	dc=k;
	sclk=1;
	sce=1;		
}

/*LCD3310清屏*/
void lcd_clc()		 
{
	unsigned int i;
    lcd3310_wr(0x40,0);			
    lcd3310_wr(0x80,0);			
    for (i=0; i<504; i++)
    	lcd3310_wr(0,1);	  		//即往ram中每个单位都写入0
}

/*LCD3310初始化*/
void lcd3310_init()
{
//	res=0;
//	_nop_();
	res=1;

	sce=0;

	lcd3310_wr(0x20,0);	 
	lcd3310_wr(0xB7,0);	

	lcd3310_wr(0x20,0);	
	lcd3310_wr(0x0c,0);	

	lcd_clc();	
}

/*设置坐标*/
void setxy(uchar x,uchar y)	  //输入范围:0<=x<=5; 0<=y<=83
{
	lcd3310_wr(0x40|x,0);
	lcd3310_wr(0x80|y,0);	
}
/*写汉字,采用12点阵
ch为字模,x,y屏幕位置*/
void wr_chinese(const uchar *ch,uchar x,uchar y)
{
	uchar i;
	setxy(x,y);
	for(i=0;i<12;i++)
	{
		lcd3310_wr(*ch,1);
		ch++;
	}
	setxy(x+1,y);
	for(i=0;i<12;i++)
	{
		lcd3310_wr(*ch,1);
		ch++;
	}
}
void wr_char (const uchar *ch,uchar x,uchar y)
{
	uchar i;
	setxy(x,y);
	for(i=0;i<6;i++)
	{
		lcd3310_wr(*ch,1);
		ch++ ;
	}
}
void delay(uint n)		//延时n毫秒
{
	uchar m;
	uint i;
	for(i=0;i<n;i++)
		for(m=0;m<200;m++);		
}
/*转轮动画*/
void circle(const uchar *ch,uchar x,uchar y)
{
	uchar i;
	setxy(x,y);
	for(i=0;i<32;i++)
	{
		lcd3310_wr(*ch,1);
		ch++;
	}	
}
void draw_map(uchar x,uchar y,uchar *map,
					uchar kuan,uchar gao)
{
	uchar i,n,row;
	if(gao%8==0)
		 row=gao/8;
	else
		row=gao/8+1;
	for(n=0;n<row;n++)
	{
		setxy(x,y);
		for(i=0;i<kuan;i++)
		{
			lcd3310_wr(*map,1);
			map++;
		}
		x++;
	}	
}
/*滚屏“杭州电子科技大学”
void gunping()
{
	char i,j;
	for(i=0;i<8;i++)
	{								
		for(j=i;j>=0;j--)
		{
			wr_chinese(hanzi[j],1,12*(i-j));
			delay(100);
			if((12*(i-j))==72)
				break;
		}
	} 
	for(i=1;i<7;i++)
	{
		lcd_clc();
		for(j=7;j>=0;j--)
		{
			wr_chinese(hanzi[j],1,12*(i+7-j));
			delay(100);
			if((i+7-j)==6)
				break;
		}
	} 
} */

void main()
{
	lcd3310_init();
	
	draw_map(0,0,nBitmapDot,48,48);
	while(1) ;
}		 

⌨️ 快捷键说明

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