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

📄 iic1111111111111.c

📁 文字显示主要是显示文字和移动文字的 文字显示主要是显示文字和移动文字的 文字显示主要是显示文字和移动文字的 文字显示主要是显示文字和移动文字的
💻 C
📖 第 1 页 / 共 2 页
字号:
	SSPSTAT=0XC0;
	TRISC=0X00;
}
//---------------------------------------
//名称: 使用SPI接口写数据到LCD
//参数:dt:写入的数据 command: 1-数据/0-命令
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081216
//----------------------------------------- 
void LCD_write_byte(unsigned char dt, unsigned char command)
{
	unsigned char i; 
	sce=0;	
	dc=command;	
	SSPBUF=dt;
	do
	{
		;
	}while(SSPIF==0);
	SSPIF=0;	
	dc=1;	
	sce=1;	
	sdin=1;
}
//---------------------------------------
//名称: 5110LCD初始化函数
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081216
//----------------------------------------- 
void LCD_init(void)
{
	sce=1;
	res=1;
	sdin=1;
	dc=1;
	sclk=1;
	delay_1ms();
	res=0;  	
  	delay_1ms();
  	res=1;  
	LCD_write_byte(0x21,0);//LCD功能设置:芯片活动,水平寻址,使用扩展指令
	LCD_write_byte(0xd0,0);//设置VOP值,室温下的编程范围为3.00-10.68
	//Vlcd=3.06+(VOP)*0.06,本例VOP为0B0101 0000为十进制的80,Vlcd=7.86V
	LCD_write_byte(0x20,0);//LCD功能设置:芯片活动,水平寻址,使用基本指令
	LCD_write_byte(0x0C,0);//设定显示配置:普通模式
}
//---------------------------------------
//名称: 设置坐标函数
//参数:X:0-83 Y:0-5
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081216
//-----------------------------------------  
void LCD_set_XY(unsigned char X, unsigned char Y)
{
	LCD_write_byte(0x40 | Y, 0);// column
	LCD_write_byte(0x80 | X, 0);// row
} 
//---------------------------------------
//名称: LCD清屏函数
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081216 
//----------------------------------------- 
void LCD_clear(void)
{
	unsigned char t;
	unsigned char k;
	LCD_set_XY(0,0);
	for(t=0;t<6;t++)
	{ 
		for(k=0;k<84;k++)
		{ 
			LCD_write_byte(0x00,1);
			asm("CLRWDT");			
		} 
	}
}
//---------------------------------------
//名称: 写一个字符到LCD函数
//参数:row,page:写入汉字的地址 c: 写入字符在shuzi表格中的位置
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081216 
//----------------------------------------- 	
void LCD_write_shu(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符
{
	unsigned char i;  	
	asm("CLRWDT");
	LCD_set_XY(row*8, page);// 列,页 
	for(i=0; i<16;i++) 
	{
		LCD_write_byte(shuzi[c*32+i],1); 
	}
	asm("CLRWDT");
    LCD_set_XY(row*8, page+1);// 列,页 
	for(i=16; i<32;i++) 
	{
		LCD_write_byte(shuzi[c*32+i],1);
	}	 	
}
//---------------------------------------
//名称: 写一个汉字到LCD函数
//参数:row,page:写入汉字的地址 c: 写入汉字在han表格中的位置
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081216
//----------------------------------------- 	
void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符
{
	unsigned char i;  	
	asm("CLRWDT");
	LCD_set_XY(row*8, page);// 列,页 
	for(i=0; i<16;i++) 
	{
		LCD_write_byte(hanzi[c*32+i],1); 
	}
	asm("CLRWDT");
    LCD_set_XY(row*8, page+1);// 列,页 
	for(i=16; i<32;i++) 
	{
		LCD_write_byte(hanzi[c*32+i],1);
	}	
}
//---------------------------------------
//名称: 延时函数	
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081111  
//----------------------------------------- 
void delay(void)
{
	unsigned char k;
	for(k=0;k<180;k++)
		asm("CLRWDT");	
}
//---------------------------------------
//名称: 启动I2C总线函数	
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081111  
//----------------------------------------- 
void i2cstart(void)
{  	
  	TRISB3=0;
  	TRISB4=0;
  	scl=1;
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	sda=1;
  	delay();
  	sda=0;
  	delay();
  	scl=0;
  	delay();
}
//---------------------------------------
//名称: 终止I2C总线函数	
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081111  
//----------------------------------------- 
void i2cstop(void)
{
  	sda=0;
  	TRISB3=0;
  	TRISB4=0;
  	sda=0;  
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");	
  	scl=1;
  	delay();
  	sda=1;
  	delay();
  	scl=0;
  	delay();
}
//---------------------------------------
//名称: 从I2C总线读入一位数据函数	
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081111  
//-----------------------------------------
void bitin(void)
{
  	eepromdi=1;
  	TRISB4=0;
  	TRISB3=1;
  	scl=1;
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	eepromdi=sda;
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	scl=0;
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
}
//---------------------------------------
//名称: 向I2C总线写入一位数据函数	
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081111  
//-----------------------------------------
void bitout(void)
{
  	TRISB3=0;
  	TRISB4=0;
  	sda=eepromdo;
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	scl=1;
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	scl=0;
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
  	asm("NOP");
}
//---------------------------------------
//名称: 向I2C总线写入一字节函数	
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081111  
//-----------------------------------------
void i2cwrite(unsigned char sedata)
{
  	unsigned char k;
  	for(k=0;k<8;k++)
  	{
    	if(sedata&0x80)
    	{
      		eepromdo=1;
    	}
    	else
    	{
      		eepromdo=0;
    	}
    	sedata=sedata<<1;
    	bitout();
  	}
  	bitin();
}
//---------------------------------------
//名称: 从I2C总线读出一字节函数	
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081111  
//-----------------------------------------
unsigned char i2cread(void)
{
  	unsigned char redata;
  	unsigned char m;
  	for(m=0;m<8;m++)
  	{
    	redata=redata<<1;
    	bitin();
    	if(eepromdi==1)
    	{
      		redata|=0x01;
    	}
    	else
    	{
      		redata&=0xfe;
    	}
    	asm("NOP");
  	}
  	eepromdo=1;
  	bitout();
  	return redata;
}
//---------------------------------------
//名称: 从AT24C02指定地址上读出1字节数据函数	
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081111  
//-----------------------------------------
unsigned char read(unsigned char address)
{
	unsigned char eebuf3;
  	i2cstart();
  	i2cwrite(0xa0);
  	i2cwrite(address);
  	i2cstart();
  	i2cwrite(0xa1);
  	eebuf3=i2cread();
  	i2cstop();
  	return eebuf3;
}
//---------------------------------------
//名称: 向AT24C02指定地址上写入1字节数据函数	
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081111  
//-----------------------------------------
void write(unsigned char address1,unsigned char byte)
{
  	i2cstart();
  	i2cwrite(0xa0);
  	i2cwrite(address1);
  	i2cwrite(byte);
  	i2cstop();
}
//---------------------------------------
//名称: 主函数		 
//作者:cby
//网站:宁波单片机开发网
//网址:www.nbdpj.com
//邮箱:nbdpj@nbdpj.com
//日期:20081216
//-----------------------------------------
void main(void)
{	
  	init();  
  	SPIINT();  	  	
  	LCD_init();  //初始化LCD模块 
	LCD_clear(); //清屏幕
	back_led=0;	
	/*write(0x18,0xaa);
	databuf=read(0x18);*/
	LCD_write_hanzi(0,2,0);  //地	
	LCD_write_hanzi(2,2,1);  //址				
	/*LCD_write_shu(4,1,47); */  //:	
	/*LCD_write_shu(5,1,0); 	 //0
	LCD_write_shu(6,1,33); 	 //x
	LCD_write_shu(7,1,1); 	 //1
	LCD_write_shu(8,1,8);*/ 	 //8
	
	LCD_write_hanzi(4,2,2);  //数	
	LCD_write_hanzi(6,2,3);  //据	
	LCD_write_hanzi(8,2,4);  //据
	LCD_write_hanzi(0,4,5);  //数	
	LCD_write_hanzi(2,4,6);  //据
	LCD_write_hanzi(4,4,7);  //据
	LCD_write_hanzi(6,4,8);  //据
	LCD_write_hanzi(8,4,9);  //据
	
				
	/*LCD_write_shu(4,3,47);   //:	
	LCD_write_shu(5,3,0); 	 //0
	LCD_write_shu(6,3,33); 	 //x*/
	/*LCD_write_shu(7,3,(databuf>>4)&0x0f); */	 //*
	/*LCD_write_shu(8,3,databuf&0x0f); */	 //*
  	while(1)
  	{
    	asm("CLRWDT");  
  	}
}

⌨️ 快捷键说明

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