1602_lcd.c

来自「汽车防盗报警与定位追踪系统源程序」· C语言 代码 · 共 68 行

C
68
字号
//#define uchar unsigned char
//#define uint  unsigned int
void delayms(uint z);

 sbit rs = P2^6;
 sbit rw = P3^6;
 sbit ep = P2^7;

 uchar dis1[]={"----------------"};
 uchar dis2[16];

lcd_wcmd(unsigned char cmd)
{	// 写入指令数据到LCD
	_nop_();_nop_();_nop_();_nop_();
	rs = 0;
	rw = 0;
	ep = 0;
	_nop_();_nop_();
	P0 = cmd;
    _nop_();_nop_();_nop_();_nop_();
	ep = 1;
	_nop_();_nop_();_nop_();_nop_();
	ep = 0;
}

lcd_pos(unsigned char pos)
{	//设定显示位置
	//pos=0x40;		
	lcd_wcmd(pos|0x80);	 //rch变量的值按位和0x80(对应二进制10000000B)进行或操作

}

lcd_wdat(unsigned char dat)
{	//写入字符显示数据到LCD
	_nop_();_nop_();_nop_();_nop_();
	rs = 1;
	rw = 0;
	ep = 0;
	_nop_();_nop_();
	P0 = dat;
	_nop_();_nop_();_nop_();_nop_();
	ep = 1;
	_nop_();_nop_();_nop_();_nop_();
	ep = 0;

}

lcd_init()
{
   delayms(1);				//LCD初始化设定
           lcd_wcmd(0x38);		//显示模式设置:单行,8字符,5x7点阵
   delayms(1);
	       lcd_wcmd(0x06);		//开显示,关光标,不闪烁
   delayms(1);
	       lcd_wcmd(0x0c);		//设置输入模式:光标增量移动,显示不移位
   delayms(1);
	       lcd_wcmd(0x01);		//清除LCD显示的内容
}

void lcd_disp_str(uchar *m,uchar n)
{ unsigned char i;
  if(n==1)lcd_pos(0x00);                // 设置显示位置为第一行的第1个字符
  if(n==2)lcd_pos(0x40);				// 设置显示位置为第二行的第1个字符
  for(i =0;*m!='\0';i++)lcd_wdat(*m++); // 显示一行字符"    "

}

⌨️ 快捷键说明

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