找回密码
 立即注册

QQ登录

只需一步,快速开始

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

C语言在Dis_str(i,0,*p)处报错指针转换错误 怎么改

[复制链接]
跳转到指定楼层
楼主
ID:377512 发表于 2018-12-17 20:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>
#include<intrins.h>

typedef unsigned char uchar;
typedef unsigned int uint;

sbit RS = P3^5;
sbit RW = P3^6;
sbit EN = P3^4;

#define LCD1602_A P0

void delay_ms(uint n)
{
uint i,y;
for(i=n;i>0;i--)
        {
  for(y=114;y>0;y--);
        }               
}


void Read_busy()
{
   uchar busy;
         LCD1602_A = 0xff;
         RS = 0;
         RW = 1;
        do{
           EN = 1;
                 busy = LCD1602_A;
                 EN = 0;
        }while(busy & 0x80);
}


void Write_cmd(uchar cmd)
  {
    Read_busy();
          RS = 0;
                RW = 0;
                LCD1602_A = cmd;
                EN = 1;
                EN = 0;
}


void Write_dat(uchar dat)
{
  Read_busy();
        RS = 1;
        RW = 0;
        LCD1602_A = dat;
        EN = 1;
        EN = 0;
}


void Dis_onechar(uchar x, uchar y, uchar dat)
{
   if(y) x |= 0x40;
           x |= 0x80;
        Write_cmd(x);
        Write_dat(dat);
}


void Dis_str(uchar x, uchar y, uchar *str)
{
   if(y) x |= 0x40;
            x |= 0x80;
         Write_cmd(x);
         while(*str != '\0')
         {
            Write_dat(*str++);
         }
}

void Init_LCD1602()
{
   Write_cmd(0x38);
         Write_cmd(0x0c);
         Write_cmd(0x06);
         Write_cmd(0x01);
}
void main()
{
        while(1)
        {
        uchar i = 1;
        uchar str[20]={"Just do it ! "} ;
        uchar *p;
        p = str;
        Init_LCD1602();
        while(1)
{
  Dis_str(i,0,*p);
        i++;
        P++;
        delay_ms(1000);
        }
        delay_ms(1000);
  }
}

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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