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

📄 1602_lcd.c

📁 使用STC89c58RD+系列单片机控制手机收发短信息的原理、硬件电路、PDU数据格式和短信息发送/接收程序
💻 C
字号:
/*******************************************************************************
*  标题:  2007年全国大学生电子设计竞赛                                         *
*  文件:  1602_lcd.C                                                           *
*  日期:  2007-7-22                                                            *
*  版本:  1.0                                                                  *
*  作者:  axin                                                                 *
*  网站:                                                                      *
********************************************************************************
*  功能描述:                                                                   *
*            液晶屏第一行显示                                                  *
*                  第二行显示                                                  *
*                                                                              *
*******************************************************************************/

 sbit rs = P1^4;
 sbit rw = P1^5;
 sbit ep = P1^3;

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

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);
    //lcd_wcmd(pos);

}

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_1ms();				//LCD初始化设定
           lcd_wcmd(0x38);		//显示模式设置:单行,8字符,5x7点阵
   delayms_1ms();
	       lcd_wcmd(0x06);		//开显示,关光标,不闪烁
   delayms_1ms();
	       lcd_wcmd(0x0c);		//设置输入模式:光标增量移动,显示不移位
   delayms_1ms();
	       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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -