Proteus仿真LCD 出不来效果啊!急死了 帮帮忙各位!

2019-07-18 13:58发布

下面是我的程序 原理图在附件里 麻烦各位帮我看一下 为什么就仿不出效果啊 !!急死了。帮我看下是程序错误还是原理图出错了!!!
/********************
  1602液晶显示程序
  date:11月1号
*********************/

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

uchar cmde,datas;

sbit RS=P2^4; //定义控制端
sbit RW=P2^5;//定义控制端
sbit EN=P2^6;//定义控制端
sbit busy=P0^7;
void wr_cmd(uchar cmd);
void wr_datas(uchar datas);
void wait_b();
void LCD_ints();


void main()
{
        LCD_ints();
        wr_datas('A');
        wr_cmd(0x80);
        while(1);
}

/********************
    1602初始化
********************/
void LCD_ints()
{
        wr_cmd(0x38);//设置显示模式        16*2显示,5*7点阵,8位数据接口
//        delay(1);
        wr_cmd(0x0C);//显示器开、光标开、光标允许闪烁
//        delay(1);
        wr_cmd(0x06);//文字不动,光标自动右移
//        delay(1);
        wr_cmd(0x01);//清屏
}
/*******************
        1602写命令操作
*******************/
void wr_cmd(uchar cmd)
{
        wait_b();
//        delay(1);
        EN=0;
//        delay(1);
        RS=0;
//        delay(1);
        RW=0;
//        delay(1);
        P0=cmd;
//        delay(1);
        EN=1;
//        delay(1);
        EN=0;       
}
/*******************
        1602写数据操作
*******************/
void wr_datas(uchar datas)
{
        wait_b();
//        delay(1);
        RS=1;
//        delay(1);
        RW=0;
//        delay(1);
        EN=0;
//        delay(1);
        P0=datas;
//        delay(1);
        EN=1;
//        delay(1);
        EN=0;
}

/*******************
        1602判忙操作
*******************/
void wait_b()
{
        do
        {
                RS=0;
        //        delay(1);
                RW=1;
                delay(1);
                EN=1;
        //        delay(1);
                EN=0;
        }
        while(busy==1);
                EN=0;
}




捕获.JPG
LCD1602.rar 下载积分: 积分 -1 分
13.48 KB, 下载次数: 4, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
lovezjf234
1楼-- · 2019-07-18 15:21
去论坛找找看看,很多例子
郑团伟
2楼-- · 2019-07-18 19:28
有可能是  电路图问题

一周热门 更多>