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

📄 lcd12864_8.c

📁 FLASH读写
💻 C
字号:
#include <common.h> 
#include<C8051F000.h>
sbit LCD_CS = P3^0;
sbit LCD_RES = P3^1;
sbit LCD_A0 = P3^2;
sbit LCD_SCK = P3^3;
sbit LCD_DA = P3^4;
void mydelay(unsigned int i)
{
	unsigned int j;
	for(j=0;j<i;j++);
}
void lcd_senddata(unsigned char da)
{
	unsigned char i;
	LCD_CS = 0;
	LCD_A0 = 1;  //数据通道
	LCD_SCK = 1;
	for(i = 0; i < 8; i++)
	{
		da <<= 1;
		LCD_DA = CY;
		LCD_SCK = 0;
		mydelay(20);
		LCD_SCK = 1;
		mydelay(10);
	}
   	LCD_CS = 1;
	mydelay(20);
}
void lcd_sendcmd(unsigned char da)
{
	unsigned char i;
	LCD_CS = 0;
	LCD_A0 = 0;  //指令通道
	LCD_SCK = 1;
	for(i = 0; i < 8; i++)
	{
		da <<= 1;
		LCD_DA = CY;
		LCD_SCK = 0;
		mydelay(10);
		LCD_SCK = 1;
		mydelay(10);
	}
   	LCD_CS = 1;
	mydelay(20);
}
void lcd_init(void)
{
	LCD_RES = 1;
	mydelay(32767);
	lcd_sendcmd(0xE2); //internal reset
	lcd_sendcmd(0xA2); //d0:Set LCD drive voltage bias ratio 0=1/9bias 1=1/7bias
	lcd_sendcmd(0xC8); //d3:select COM output direction 0=normal 1=reverse
	lcd_sendcmd(0xA0); //d0:select SEG output direction 0=normal 1=reverse
	lcd_sendcmd(0xA6); //d0=0display normal;=1reverse
	lcd_sendcmd(0xf8); //select booster ratio
	lcd_sendcmd(0x00); //d0\d1=00:4x
	lcd_sendcmd(0x2C); //d2:1=select internal power supply operating mode
	lcd_sendcmd(0x2E); //
	lcd_sendcmd(0x2F);
	// lcd_sendcmd(0x25); //select internal resistor ratio(RB/RA)mode
	lcd_sendcmd(0x81); //select the VO output voltage electronic volume register
	lcd_sendcmd(0x14); //select the VO output voltage electronic volume register
	lcd_sendcmd(0x0e); //select the VO output voltage electronic volume register
	lcd_sendcmd(0xAF); //d0:LCD display ON=1/OFF=0
	lcd_sendcmd(0xE0);
	lcd_sendcmd(0x40); //Set the display RAM start line address
}
void Set_Page_Address(unsigned char dat)
{
	lcd_sendcmd(0xb0|dat);
}
void Set_Colume_Address(unsigned char dat)
{
	unsigned char tmp;
	tmp=dat>>4;
	lcd_sendcmd(0x10|tmp); //送列地址高三位
	tmp=0x0f&dat;
	lcd_sendcmd(tmp); //送列地址低四位
}
void lcd_clr(void)
{
unsigned char i,j;
for(i = 0; i < 8; i++)
{
	Set_Page_Address(i);
	Set_Colume_Address(0);
	
	for(j = 0; j < 128; j++)
	{
		lcd_senddata(0x00);
	
	}
}
}
void lcd_drawpot(unsigned char x/*0-127*/, unsigned char y/*0-63*/)
{
	unsigned char temp;
	Set_Colume_Address(x);
	Set_Page_Address(y>>3);
	y &= 0x07;
    temp = 1<<y;
	lcd_senddata(temp);
}
//x每写一个字+16,y换行+1
void lcd_drawhanzimo(unsigned char x/*0-127*/,unsigned char y/*0-7*/,unsigned char* ptr)
{
	unsigned int i;
	
	Set_Page_Address(y);
	Set_Colume_Address(x);
	for(i = 0; i<16; i ++)
	lcd_senddata(*(ptr+i));
	
	Set_Page_Address(y+1);
	Set_Colume_Address(x);
	for(i = 0; i<16; i++)
	lcd_senddata(*(ptr+i+16));
}

⌨️ 快捷键说明

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