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

📄 lcd12864.c

📁 基于Mini51板的数字示波器设计
💻 C
字号:
#include "lcd12864.h"

void loop_lcd12864_is_busy(unsigned char right)
{
  unsigned char tmp,counter=0;
  do
  {
  	if(right) tmp = LCD_RCR;
  	else tmp = LCD_LCR;	
	if(counter++>50) break;//超时跳出
  }
  while ((tmp|0x7f)==0xff);	 
}

void lcd_cmd_wr(unsigned char cmdcode,unsigned char right)
{
  loop_lcd12864_is_busy(right);
  if(right) LCD_RCW = cmdcode;
  else LCD_LCW = cmdcode;  
}

void lcd_data_wr(unsigned char ldata,unsigned char right)
{ 
  loop_lcd12864_is_busy(right);
  if(right) LCD_RDW = ldata;
  else LCD_LDW = ldata;
}

void lcd12864_clr(void)
{
	unsigned char i,j;


	for(i=0;i<8;i++)
	{
		lcd_cmd_wr(SETY+i,0);
		lcd_cmd_wr(SETX,0);
		lcd_cmd_wr(SETY+i,1);
		lcd_cmd_wr(SETX,1);	

		for(j=0;j<64;j++)
		{
			lcd_data_wr(0,0);
			lcd_data_wr(0,1);
		}
	}
}

void lcd12864_init(void)
{
  lcd_cmd_wr(DISPON,0);
  lcd_cmd_wr(DISPFIRST,0);
  lcd_cmd_wr(SETY,0);
  lcd_cmd_wr(SETX,0);
  lcd_cmd_wr(DISPON,1);
  lcd_cmd_wr(DISPFIRST,1);
  lcd_cmd_wr(SETY,1);
  lcd_cmd_wr(SETX,1);
  lcd12864_clr();
}

/*图片写入函数*/
void lcd12864_put_xywhb(unsigned char x,y,w,h,unsigned char *bmp)
{
  	unsigned char i,j;
  	h = h/8;
  	for(i=0;i<h;i++)
  	{
	   		lcd_cmd_wr(SETY+y+i,0);
		   	lcd_cmd_wr(SETX+x,0);
		   	for(j=0;j<w-64;j++)
		     	lcd_data_wr(bmp[128*i+j],0);

	   		lcd_cmd_wr(SETY+y+i,1);
		   	lcd_cmd_wr(SETX+x,1);
		   	for(j=64;j<w;j++)
		     	lcd_data_wr(bmp[128*i+j],1);
	  }
}//*

/*8x8点阵asci字符显示*/
void lcd12864_put_xystr(unsigned char x,y,n,unsigned char *str)
{
	unsigned char i;		
	for(i=0;i<n;i++) {
		if((x+i)>63) {
			lcd_cmd_wr(SETY+y,1);
			lcd_cmd_wr(SETX+x+i-64,1);
			lcd_data_wr(str[i],1); 
		}
		else {
			lcd_cmd_wr(SETY+y,0);
			lcd_cmd_wr(SETX+x+i,0);
			lcd_data_wr(str[i],0); 
		}
	}	
}//*/

/*8x8点阵asci字符显示*/
void lcd12864_put_clr(unsigned char x,y,n)
{
	unsigned char i;		
	for(i=0;i<n;i++) {
		if((x+i)>63) {
			lcd_cmd_wr(SETY+y,1);
			lcd_cmd_wr(SETX+x+i-64,1);
			lcd_data_wr(0,1); 
		}
		else {
			lcd_cmd_wr(SETY+y,0);
			lcd_cmd_wr(SETX+x+i,0);
			lcd_data_wr(0,0); 
		}
	}	
}//*/

⌨️ 快捷键说明

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