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

📄 lcd.c

📁 液晶显示例子,晶振频率Fosc=8MHz,内有仿真文件
💻 C
字号:
#include <pic.h>
/*LCD取模:xDCEGFBA*/
								/*   0    1    2    3    4    5    6    7    8    9*/
const unsigned char LCD_MODEL[11]={0x77,0x22,0x5b,0x6b,0x2e,0x6d,0x7d,0x23,0x7f,0x6f,0x00}; 
/*LCD初始化函数*/
void Init_LCD(void)
{
	/*COM0*/
	LCDDATA0=0x00;
	LCDDATA1=0x00;
	/*COM1*/
	LCDDATA3=0x00;
	LCDDATA4=0x00;
	/*COM2*/
	LCDDATA6=0x00;
	LCDDATA7=0x00;
	/*COM3*/
	LCDDATA9=0x00;
	LCDDATA10=0x00;
	/*SEG0-SEG9使能*/
	LCDSE0=0xff;
	LCDSE1=0x03;
	/*使能LCD驱动模块,休眠模式下禁止LCD驱动模块,无LCD写错误,使能VLCD引脚*/
	/*时钟选择FOSC/8192,公共端选择1/4(COM<3:0>)*/
	LCDCON=0xd3;
	/*B型波形,1/3偏置模式,使能LCD驱动模块,允许写入LCDDATAx寄存器*/
	/*LCD预分频比选择位:LP<3:0>=0010=1:3,LCD帧频率=64Hz*/
	LCDPS=0xb3;	
}
/*LCD显示函数,显示范围-1999~1999*/
void LCDNUMI(int num)
{
			  /*个位,十位,百位*/
	unsigned char g=0,s=0,b=0;
	if(num<0)
	{
		SEG0COM2=1;/*显示负号*/
		/*再存储器中,负数用补码表示,应此只要对补码取反+1即可获得对应的正数*/
		num=~num;/*负数取绝对值*/
		num++;
	}
	else
	{
		SEG0COM2=0;/*清除负号*/
	}
	if(num>999)
	{
		SEG1COM2=1;/*千位显示1*/
		num-=1000;
	}
	else
	{
		SEG1COM2=0;/*清除千位*/	
	}
	b=num/100;/*取百位的值*/
	num%=100;/*对一百取余*/
	s=num/10;/*取十位的值*/
	g=num%10;/*取个百位的值*/
	if(SEG1COM2==0&&b==0)/*当千位,百位都为零时百位不显示*/
	{
		if(s==0)/*当千位,百位,十位都为零时百十位不显示*/
		{
			s=10;
		}
		b=10;
	}
	LCDDATA0=(LCDDATA0&0x03)|((LCD_MODEL[g]<<6)&0xc0)|((LCD_MODEL[s]<<4)&0x30)|((LCD_MODEL[b]<<2)&0x0c);
	LCDDATA3=(LCDDATA3&0x03)|((LCD_MODEL[g]<<4)&0xc0)|((LCD_MODEL[s]<<2)&0x30)|((LCD_MODEL[b])&0x0c);
	LCDDATA6=(LCDDATA6&0x03)|((LCD_MODEL[g]<<2)&0xc0)|((LCD_MODEL[s])&0x30)|((LCD_MODEL[b]>>2)&0x0c);
	LCDDATA9=(LCDDATA9&0xab)|((LCD_MODEL[g])&0xc0)|((LCD_MODEL[s]>>2)&0x30)|((LCD_MODEL[b]>>4)&0x0c);
}

⌨️ 快捷键说明

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