老古开发网首页
导航:老古开发网首页文章索引文章分类嵌入式系统→[LCD1602 8线并口通信源程序]
| -文章搜索 - 最新文章 - |

LCD1602 8线并口通信源程序

发布时间:2006年6月23日 点击次数:1126
来源:   作者:
 

LCD 1602采用8线并口通信,连接方式是DB0-DB7接P1.0-P1.7;RS:P2.7;RW:P2.6
EN:P2.5;注意初始化的设置。
在万利MedWin 3.0开发环境上调试通过!
/*******************************************************************                                                                            
/* 模块功能: 显示内容:   SME OF DUT                                                   
/*                         Fenyman                                                                                                                                                                                                  
creat by:    fenyman
Date:    2006-06-21
Corporation: SME of Dalian University of Technology
Version V1.1
Copyright(C)feyman  2006-2016
All rigths reserved                                              
/*******************************************************************/   
#include <reg51.h>

#define  LCDIO        P1
sbit LCD1602_RS=P2^7; 
sbit LCD1602_RW=P2^6;  
sbit LCD1602_EN=P2^5;  

/********************************************************************/
void LCD_delay(void);
void LCD_en_command(unsigned char command);
void LCD_en_dat(unsigned char temp);
void LCD_set_xy( unsigned char x, unsigned char y );
void LCD_write_char( unsigned x,unsigned char y,unsigned char dat);
void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s);
void LCD_init(void);
/********************************************************************/
void delay_nms(unsigned int n);

/********************************************************************/
void main(void)
{
  LCD_init();
  while(TRUE )   
  {
     CLEARSCREEN;
    delay_nms(2);
        LCD_write_string(0,0,"   SME OF DUT  ");
        LCD_write_string(0,1,"   fenyman     ");
       
        delay_nms(200);
        
        CLEARSCREEN;
        delay_nms(2);
        LCD_write_string(0,0,"   thank you!   ");
        LCD_write_string(0,1,"   fenyman      ");
        
        delay_nms(200);                 
  }
}
/********************************************************************/
/******************** LCD PART *************************************/
void LCD_delay(void)  
{
  unsigned char i;
  for(i=40;i>0;i--)
    ;
}
/********************************************************************/ 
void LCD_en_command(unsigned char command)
{
  LCDIO=command;
  LCD1602_RS=0;  
  LCD1602_RW=0;
  LCD1602_EN=0;
  LCD_delay();
 
  LCD1602_EN=1;
}
/********************************************************************/
void LCD_en_dat(unsigned char dat)
{
  LCD1602_RS=1;
  LCD1602_RW=0;
  LCD1602_EN=0;
  LCD_delay();
  LCDIO=dat;
  LCD1602_EN=1;
}
/********************************************************************/
void LCD_set_xy( unsigned char x, unsigned char y )
{
  unsigned char address;
  if (y == 0)
   address = 0x80 + x;
  else
      address = 0xC0 + x;
  LCD_en_command(address);
}
/********************************************************************/
void LCD_write_char( unsigned x,unsigned char y,unsigned char dat)
{
  LCD_set_xy( x, y );
  LCD_en_dat(dat);
}
/********************************************************************/
void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s)
{
    LCD_set_xy( X, Y );    
    while (*s)       
    {
      LCDIO=*s;
      LCD_en_dat(*s);  
   s ++;
    }
}
/********************************************************************/
void LCD_init(void)
{
  LCD_en_command(0x01);
  delay_nms(5);
  LCD_en_command(0x38);
  delay_nms(5);
  LCD_en_command(0x38);
  delay_nms(5);
  LCD_en_command(0x38);
  delay_nms(5);
  LCD_en_command(0xC0);
  delay_nms(5);
  LCD_en_command(0x80);
  delay_nms(5);
  LCD_en_command(0x01);
  delay_nms(5);       
}
/********************************************************************/
void delay_nms(unsigned int n)     
{
    unsigned int i=0,j=0;
    for (i=n;i>0;i--)
     for (j=0;j<1140;j++); 
}
/********************************************************************/


欢迎进入老古论坛进行讨论
[嵌入式系统] 相关文章:
LCD1602模块驱动说明
简介:
LCD1602 模块驱动: 通常不接 LCD 的背光,因为采用背光的话,需要的电流太大,从而会造成稳压管发热特别厉害。 1 )硬件连接电路 LCD1602 单片机 DB0-DB7: P1 RS: P2.7 RW: &n......

支持VRS51L2000系列高速8051MCU的即插即用式开发系统
Linux嵌入式实时操作系统开发与设计(5)
Linux嵌入式实时操作系统开发与设计(2)
Linux嵌入式实时操作系统开发与设计(4)
Linux嵌入式实时操作系统开发与设计(1)
Linux嵌入式实时操作系统开发与设计(6)
Linux嵌入式实时操作系统开发与设计(3)
MCU控制风光互补独立电源系统
基于嵌入式控制器的水质实时远程检测系统
 
下一个:[新闻热点]德州仪器:半导体行业库存处在合理水平
简介:
据国外媒体报道,近来,一些半导体行业分析人士不断表达出一种观点,即半导体行业的库存正在缓慢增加,今年的市场前景令人担忧。针对这种观点,全球芯片巨头德州仪器公司高层表示,目前的库存应该在一个合理的水平上,他还表示看到了“实质性”的芯片市场需求。   德州仪器公司模拟业务的高级副总裁格雷格·劳因日前对媒体表达了上述观点。劳因表示,半导体行业的库存期一般是两个月时间,目前的水平应该说还算是合理的。劳因指出,由于过去几年的高库存其带来的负面影响令人记忆犹新,所以半导体行业对于库存的变化都比较敏感。   劳因说,出于强劲的市场增长,整个半导......
 

上一个:[新闻热点]中兴印度扩张计划遭拒 要求政府做解释

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:10分钟 执行时间:16毫秒