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

📄 main.c

📁 Freescale控制5110液晶程序
💻 C
📖 第 1 页 / 共 2 页
字号:

/*--  文字:  +  --49*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*--  文字:  -  --50*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x00
};

uchar hanzi[]=
{  //张
	0x02,0xE2,0x22,0x22,0x3E,0x80,0x80,0xFF,0x80,0xA0,0x90,0x88,0x86,0x80,0x80,0x00,
	0x00,0x43,0x82,0x42,0x3E,0x00,0x00,0xFF,0x40,0x21,0x06,0x08,0x10,0x20,0x40,0x00,
//某
	0x04,0x04,0x04,0x04,0xFF,0x24,0x24,0x24,0x24,0x24,0xFF,0x04,0x04,0x04,0x04,0x00,
0x44,0x44,0x24,0x24,0x15,0x0D,0x05,0xFF,0x05,0x0D,0x15,0x24,0x24,0x44,0x44,0x00,
//某
	0x04,0x04,0x04,0x04,0xFF,0x24,0x24,0x24,0x24,0x24,0xFF,0x04,0x04,0x04,0x04,0x00,
0x44,0x44,0x24,0x24,0x15,0x0D,0x05,0xFF,0x05,0x0D,0x15,0x24,0x24,0x44,0x44,0x000,
//您
	0x20,0x10,0x08,0xFC,0x23,0x10,0x88,0x67,0x04,0xF4,0x04,0x24,0x54,0x8C,0x00,0x00,
	0x40,0x30,0x00,0x77,0x80,0x81,0x88,0xB2,0x84,0x83,0x80,0xE0,0x00,0x11,0x60,0x00,
//好
	0x10,0x10,0xF0,0x1F,0x10,0xF0,0x00,0x80,0x82,0x82,0xE2,0x92,0x8A,0x86,0x80,0x00,
	0x40,0x22,0x15,0x08,0x16,0x61,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,

//您
	0x20,0x10,0x08,0xFC,0x23,0x10,0x88,0x67,0x04,0xF4,0x04,0x24,0x54,0x8C,0x00,0x00,
	0x40,0x30,0x00,0x77,0x80,0x81,0x88,0xB2,0x84,0x83,0x80,0xE0,0x00,0x11,0x60,0x00,
//的
	0x00,0xF8,0x0C,0x0B,0x08,0x08,0xF8,0x40,0x30,0x8F,0x08,0x08,0x08,0xF8,0x00,0x00,
	0x00,0x7F,0x21,0x21,0x21,0x21,0x7F,0x00,0x00,0x00,0x43,0x80,0x40,0x3F,0x00,0x00,
//学
	0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,
	0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00,
//号
	0x80,0x80,0x80,0xBE,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xA2,0xBE,0x80,0x80,0x80,0x00,
	0x00,0x00,0x00,0x06,0x05,0x04,0x04,0x04,0x44,0x84,0x44,0x3C,0x00,0x00,0x00,0x00,
//为
	0x00,0x20,0x22,0x2C,0x20,0x20,0xE0,0x3F,0x20,0x20,0x20,0x20,0xE0,0x00,0x00,0x00,
	0x80,0x40,0x20,0x10,0x08,0x06,0x01,0x00,0x01,0x46,0x80,0x40,0x3F,0x00,0x00,0x00,
};

unsigned char xinhao[]={
/*--  信号柱  --*/
/*--  宽度x高度=8x16  --*/
0x0E,0x12,0x22,0xC2,0xC2,0x22,0x12,0x0E,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,
/*-- 信号  --*/
/*--  宽度x高度=8x16  --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x60,0x60,0x78,0x78,0x7E,0x7E,0x7F,0x7F, 
};


//1ms延时函数
void delay_1ms(void)
{   
   int jj;
   //for(ii=0;ii<ms;ii++)
   for(jj=0;jj<4338;jj++);    //40MHz--1ms      
}

/*--------------------------------------------
LCD_write_byte: 使用SPI接口写数据到LCD
输入参数:dt:写入的数据;
command :写数据/命令选择;
编写日期:20080918 
----------------------------------------------*/
void LCD_write_byte(uchar dt, uchar command) {
  
	uchar i; 
  sce=0;	
	dc=command;		  //command=1为写数据,command=0为写指令
	for(i=0;i<8;i++)
	{ 
		if(dt&0x80)
			sdin=1;
		else
			sdin=0;
		dt=dt<<1;		
		sclk=0; 	//sclk上升沿接收一位数据	
		sclk=1; 
	}	
	dc=1;	
	sce=1;	
	sdin=1; 

}
/*---------------------------------------
LCD_init: 3310LCD初始化
编写日期:20080918 
-----------------------------------------  */
void LCD_init(void)
{
	res=0;  			   //复位
  	delay_1ms();
  	res=1;  
	LCD_write_byte(0x21,0);//初始化Lcd,功能设定使用扩充指令
	LCD_write_byte(0xd0,0);//设定液晶偏置电压
	LCD_write_byte(0x20,0);//使用基本指令
	LCD_write_byte(0x0C,0);//设定显示模式,正常显示
}
/*-------------------------------------------
LCD_set_XY: 设置LCD坐标函数
输入参数:X:0-83  Y:0-5
编写日期:20080918 
---------------------------------------------*/
void LCD_set_XY(uchar X, uchar Y)
{
	LCD_write_byte(0x40 | Y, 0);// column  列
	LCD_write_byte(0x80 | X, 0);// row	   行
} 
/*------------------------------------------
LCD_clear: LCD清屏函数
编写日期:20080918 
--------------------------------------------*/
void LCD_clear(void)
{
	uchar t;
	uchar k;
	LCD_set_XY(0,0);
	for(t=0;t<6;t++)
	{ 
		for(k=0;k<84;k++)
		{ 
			LCD_write_byte(0x00,1);
				
		} 
	}
}
/*---------------------------------------------
LCD_write_shu: 显示8(宽)*16(高)点阵列数字字母符号等半角类
输入参数:c:显示的字符;
编写日期:20080918 
-----------------------------------------------*/
void LCD_write_shu(uchar row, uchar page,uchar c) //row:列 page:页 dd:字符
{
	uchar i;  	
	
	LCD_set_XY(row*8, page);// 列,页 row表示第row个8行,page表示第page个8列,坐标位(row,page)
	for(i=0; i<8;i++) 
	{
		LCD_write_byte(shuzi[c*16+i],1); //数字的点阵为16*8,写上shuz9o的上半部分
	}
	
    LCD_set_XY(row*8, page+1);// 列,页 
	for(i=8; i<16;i++) 
	{
		LCD_write_byte(shuzi[c*16+i],1);  //写数字的下半部分
	}	 	
}
/*---------------------------------------------
LCD_write_hanzi: 显示16(宽)*16(高)点阵列汉字等半角类
输入参数:c:显示的字符;
编写日期:20080918 
-----------------------------------------------*/
void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符
{
	uchar i;  	
	
	LCD_set_XY(row*8, page);// 列,页 
	for(i=0; i<16;i++) 
	{
		LCD_write_byte(hanzi[c*32+i],1);  //写汉子的上半部分
	}
	
    LCD_set_XY(row*8, page+1);// 列,页 
	for(i=16; i<32;i++) 
	{
		LCD_write_byte(hanzi[c*32+i],1);  //写汉子的下半部分
	}	
}
void LCD_write_maohao(uchar row, uchar page,uchar c) //row:列 page:页 dd:字符
{
	uchar i;  	
	
	LCD_set_XY(row*8, page);// 列,页 row表示第row个8行,page表示第page个8列,坐标位(row,page)
	for(i=0; i<8;i++) 
	{
		LCD_write_byte(maohao[c*16+i],1); //数字的点阵为16*8,写上shuz9o的上半部分
	}
	
    LCD_set_XY(row*8, page+1);// 列,页 
	for(i=8; i<16;i++) 
	{
		LCD_write_byte(maohao[c*16+i],1);  //写数字的下半部分
	}	 	
}

/*
void aaaaa()
{	
  	uchar k,i,j=11;
	init();
	res=0;
	for(k=0;k<250;k++);
	res=1;	  	
  	LCD_init();  //初始化LCD模块 
	LCD_clear(); //清屏幕
	while(1)
	{
	if(count==20)
	{
		count=0;
		i++;
		if(i>4)j--;
	}	
	LCD_write_hanzi(0,0,0);  //从(0,0)这个坐标开始写第一个汉子:张	
	LCD_write_hanzi(2,0,1);  //从(32,0)这个坐标开始写第二个汉子:某
	LCD_write_hanzi(4,0,2);  //某
	LCD_write_hanzi(6,0,3);  //您
	LCD_write_hanzi(8,0,4);  //好
	switch(i)
	{
		case 4:LCD_write_hanzi(8,2,9);break;  //您
		case 3:LCD_write_hanzi(6,2,8);break;  //的
		case 2:LCD_write_hanzi(4,2,7);break;  //学
		case 1:LCD_write_hanzi(2,2,6);break;  //好
		case 0:LCD_write_hanzi(0,2,5);break;  //为

		case 14:LCD_write_shu(j+8,4,9);    //9  
		case 13:LCD_write_shu(j+7,4,8);    //8 
		case 12:LCD_write_shu(j+6,4,7);    //7
		case 11:LCD_write_shu(j+5,4,6);    //6 
		case 10:LCD_write_shu(j+4,4,5);    //5 
		case 9:LCD_write_shu(j+3,4,4);     //4
		case 8:LCD_write_shu(j+2,4,3);     //3 
		case 7:LCD_write_shu(j+1,4,2);     //2	 
		case 6:LCD_write_shu(j,4,1);       //1
		case 5:LCD_write_maohao(j-1,4,0);  //:
	}
	}
}

*/






void main(void) 
{
  uchar LedCnt=0;
  unsigned long i=0,k,j=11;
  
  SetBusCLK_40M();  // 此处选择待设定的总线频率
  IO_Init(); 
  EnableInterrupts;
  
  res=0;
	for(k=0;k<250;k++);
	res=1;	  	
  	LCD_init();  //初始化LCD模块 
	LCD_clear(); //清屏幕
   LCD_set_XY(0,0);
   for(i=0;i<=7;i++){
    
   LCD_write_byte(xinhao[i], 1);
   }
      LCD_set_XY(0,1);
   for(i=8;i<=15;i++){
    
   LCD_write_byte(xinhao[i], 1);
   }
   
    LCD_set_XY(8,0);
      for(i=16;i<=23;i++){
    
   LCD_write_byte(xinhao[i], 1);
   }
      LCD_set_XY(8,1);
   for(i=24;i<=31;i++){
    
   LCD_write_byte(xinhao[i], 1);
   }
   
   //LCD_write_shu(0,4,9);    //9
   


  for(;;) 
  {   
     /*
  LCD_write_hanzi(0,0,0);  //从(0,0)这个坐标开始写第一个汉子:张	
	LCD_write_hanzi(2,0,1);  //从(32,0)这个坐标开始写第二个汉子:某
	LCD_write_hanzi(4,0,2);  //某
	LCD_write_hanzi(6,0,3);  //您
	LCD_write_hanzi(8,0,4);  //好
   	switch(i)
	 {
		case 4:LCD_write_hanzi(8,2,9);break;  //您
		case 3:LCD_write_hanzi(6,2,8);break;  //的
		case 2:LCD_write_hanzi(4,2,7);break;  //学
		case 1:LCD_write_hanzi(2,2,6);break;  //好
		case 0:LCD_write_hanzi(0,2,5);break;  //为

	//	case 14:LCD_write_shu(j+8,4,9);    //9  
//		case 13:LCD_write_shu(j+7,4,8);    //8 
//		case 12:LCD_write_shu(j+6,4,7);    //7
//		case 11:LCD_write_shu(j+5,4,6);    //6 
//		case 10:LCD_write_shu(j+4,4,5);    //5 
//		case 9:LCD_write_shu(j+3,4,4);     //4
//		case 8:LCD_write_shu(j+2,4,3);     //3 
//		case 7:LCD_write_shu(j+1,4,2);     //2	 
//		case 6:LCD_write_shu(j,4,1);       //1
//		case 5:LCD_write_maohao(j-1,4,0);  //:
   
   }
  i++;if(i>4)j--; */
  }
}

⌨️ 快捷键说明

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