注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

LCD1602驱动代码及测试  

2016-08-23 16:13:12|  分类: 数字电路 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
废话少说,上代码和图片:
#include <reg52.h>
#include <intrins.h>

/*根据实际电路配置*/
#define DataPort P0
#define BF ((DataPort&0x80)>>7)
sbit   LCD_RS=P2^0;
sbit   LCD_RW=P2^1;
sbit   LCD_EN=P2^2;

//延时函数
void delay(unsigned char z)
{
    unsigned char x,y;
    for(x=z;x>0;x--)
        for(y=110;y>0;y--)
            ;       
}

/*检验LCD1602是否准备就绪*/
/*仿真似乎有问题*/
void CheckBusy()
{
    DataPort=0xff;
    LCD_RS=0;
    LCD_RW=1;
    LCD_EN=1;
    _nop_();
    while(BF);
    LCD_EN=0;
}

/*写入指令*/
void WriteCommand(unsigned char cmd)
{
    //CheckBusy();
    LCD_RS=0;
    LCD_RW=0;
    DataPort=cmd;
    delay(5);
    LCD_EN=1;
    delay(5);
    LCD_EN=0;
}

/*写入数据*/
void WriteData(unsigned char dat)
{
    //CheckBusy();
    LCD_RS=1;
    LCD_RW=0;
    DataPort=dat;
    delay(5);
    LCD_EN=1;
    delay(5);
    LCD_EN=0;
}

void WriteChar(unsigned char x,unsigned char y,unsigned char dat)
{
    unsigned char line;
    if(x==0)
        line=0x80;
    else
        line=0xc0;
    WriteCommand(line+y);
    WriteData(dat);
}

void WriteString(unsigned char* str)
{
    char* p=str;
    while(*p!='\0')
        WriteData(*p++);
}

void ClearLCD1602()
{
    WriteCommand(0x01);
}

void InitLCD1602()
{
    LCD_EN=0;
    WriteCommand(0x83);
    /*显示模式设置 00111000
    设置16*2显示
    5*7点阵
    8位数据接口*/
    WriteCommand(0x0c);
    /*显示开关及光标设置   00001DCB
    D=1,开显示  D=0, 关显示
    C=1,显示光标   C=0,不显示光标
    B=1,光标闪烁   B=0,光标不闪烁*/
    WriteCommand(0x06);/*地址指针自动+1且光标+1,写字符屏幕不会移动*/
    
    WriteCommand(0x3f);/*8位数据接口,双行显示*/
    WriteCommand(0x01);/*清屏*/
}

void main()
{
    InitLCD1602();
    WriteString("Hello, world!");
    while(1);
}
电路原理图:
LCD1602驱动代码及测试 - Lemniscate - 信息 灵感 创新
 以及仿真结果:
LCD1602驱动代码及测试 - Lemniscate - 信息 灵感 创新
 
  评论这张
 
阅读(130)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016