标题:
能帮我看下单片机程序哪错了吗?求帮助
[打印本页]
作者:
15830376694
时间:
2020-12-27 13:28
标题:
能帮我看下单片机程序哪错了吗?求帮助
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar table[] = "Hello everyone!";
uchar table1[] = "Welcome to here!";
uchar num;
void main(void)
{
unsigned char i;
for(i=0;i<16;i++)
{
LcdWriteData(uchar [i]);
}
while(1);
}
void Lcd1602_Delay1ms(uint c)
{
uchar a,b;
for(;c>0;c--)
{
for(b=199;b>0;b--)
{
for(a=1;a>0;a--);
}
}
}
#ifndef LCD1602_4PINS
void LcdWriteCom(uchar com)
{
LCD1602_E=0;
LCD1602_RS=0;
LCD1602_RW=0;
LCD1602_DATAP=com;
Lcd1602_Delay1ms(1);
LCD1602_E=1;
Lcd1602_Delay1ms(10);
LCD1602_E=0;
}
#else
void LcdWriteCom(uchar com)
{
LCD1602_E=0;
LCD1602_RS=0;
LCD1602_RW=0;
LCD1602_DATAPINS=com;
LCD1602_Delay(1);
LCD1602_E=1;
lcd1602_Delay1ms(10);
LCD1602_E=0;
lcd1602_Delay1ms(1);
LCD1602_DATAPINS=com<<4;
Lcd1602_Delay1ms(1);
LCD1602_E=1;
Lcd1602_Delay1ms(10);
LCD1602_E=0;
}
#endif
#ifndef LCD1602_4PINS
void LcdWriteData(uchar dat)
{
LCD1602_E=0;
LCD1602_RS=1;
LCD1602_RW=0;
LCD1602_DATAPINS=dat;
LCD1602_Delay1ms(1);
LCD1602_E=1;
LCD1602_Delay1ms(10);
LCD1602_E=0;
}
#else
void LcdWriteData(uchar dat)
{
LCD1602_E=0;
LCD1602_RS=1;
LCD1602_RW=0;
LCD1602_DATAPINS=dat;
Lcd1602_Delay1ms(1);
LCD1602_E=1;
Lcd1602_Delay1ms(10);
LCD1602_E=0;
LCD1602_DATAPINS=dat<<4;
Lcd1602_Delay1ms(1);
LCD1602_E=1;
Lcd1602_Delay1ms(10);
LCD1602_E=0;
}
#endif
#ifndef LCD1602_4PINS
void LcdInit()
{
LcdWriteCom(0x38);
LcdWriteCom(0x0c);
LcdWriteCom(0x06);
LcdWriteCom(0x01);
LcdWriteCom(0x80);
}
#else
void LcdInit()
{
LcdWriteCom(0x32);
LcdWriteCom(0x28);
LcdWriteCom(0x0c);
LcdWriteCom(0x06);
LcdWriteCom(0x01);
LcdWriteCom(0x80);
}
#endif
#ifndef _LCD_H_
#define _LCD_H_
#define LCD1602_4PINS
#include<reg52.h>
#ifdef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned int
#endif
#define LCD1602_DATAPINS P0
sbit LCD1602_E=P2^2;
sbit LCD1602_RW=P2^1;
sbit LCD1602_RS=P2^0;
void LCD1602_Delay1ms(uint c);
void LcdWriteCom(uchar Com);
void LcdWriteDaTa(uchar dat);
void LcdInit();
#endif
复制代码
作者:
51hei团团
时间:
2020-12-27 15:20
编译器提示的什么错误?
作者:
张天师
时间:
2020-12-27 19:58
1.LcdWriteData(uchar [i]);这条语句不对,应该是LcdWriteData(table [i]);或者LcdWriteData(table1 [i]);
2.另外主程序要先对LCD初始化,再启动显示
3.很多程序放值位置不对,应该函数声明及宏定义在前,函数在后。你基本上全反了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1