找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2202|回复: 1
打印 上一主题 下一主题
收起左侧

LCD1602 proteus仿真及代码

[复制链接]
跳转到指定楼层
楼主
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define out P0
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
void lcd_initial();
void check_busy();
void write_command(uchar com);
void write_data(uchar dat);
void string(uchar ad,uchar *s);   
void delay(uint);
void main()
    {
    lcd_initial();        
     while(1)
     {
     string(0x85,"WLECOME");
     string(0xC2,"Harbin CHINA");
     delay(100);
     write_command(0x01);
     delay(100);

     }
    }

void delay(uint j)     
{
    uchar i=250;
    for(;j>0;j--)
    {
        while(--i);
        i=249;
        while(--i);
        i=250;

    }
}

void check_busy()
{
    uchar dt;
    do
    {
        dt=0xff;   
        E=0;         
        RS=0;         
        RW=1;
        E=1;         
        dt=out;   

    }while(dt&0x80);
        E=0;
}
void write_command(uchar com)
{
    check_busy();      
    E=0;
    RS=0;               
    RW=0;
    out=com;         
    E=1;            
    _nop_();   
    E=0;
    delay(1);

}
void write_data(uchar dat)
{
    check_busy();
    E=0;
    RS=1;
    RW=0;
    out=dat;
    E=1;
    _nop_();
    E=0;
    delay(1);

}
void lcd_initial()   
{
    write_command(0x38);
    write_command(0x0C);
    write_command(0x06);  
    write_command(0x01);   
    delay(1);
}
void string(uchar ad,uchar *s)
{
    write_command(ad);
    while(*s>0)
    {
        write_data(*s++);
        delay(100);
    }
}


7.png (71.01 KB, 下载次数: 18)

7.png

LCD.zip

108.97 KB, 下载次数: 50, 下载积分: 黑币 -5

评分

参与人数 1黑币 +9 收起 理由
残...月 + 9 赞一个!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:419166 发表于 2019-10-13 14:54 | 只看该作者
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表