标题:
小白求教C51单片机1602问题
[打印本页]
作者:
bfdz
时间:
2021-12-6 21:22
标题:
小白求教C51单片机1602问题
根据论坛的程序改编了一下,把子函数放在了前面,编译后就不好用了,出现了3个警告,写入单片机也不显示了,反复检查也看不出啥原因,特来求教老师
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit E=P2^7; //1602使能引脚
sbit RW=P2^6; //1602读写引脚
sbit RS=P2^5; //1602数据/命令选择引脚
uchar tab1[]="
www.51hei.com
"; //要显示什么就在这儿改
uchar tab2[]="LCD1602 test ok!"; //[size=15.5555562973022px]要显示什么就在这儿改
void delay(uint del); //延时1ms
void init(); //初始化
void writecmd(uchar com); //写指令
void writedata(uchar dat); //写数据
void mian()
{
{
uchar j;
init();
writecmd(0x80); //告诉液晶在哪个地方显示 (设置地址指针)//80H+00
for(j=0;j<16;j++) //有16个字符,要循环16次
{
writedata(tab1[j]);
delay(10);
}
writecmd(0x80+0x40); //再设置第二行的起始位置80H+40H
for(j=0;j<16;j++) //有16个字符,要循环16次
{ writedata(tab2[j]);
delay(10);
}
while(1); //让液晶显示就一直停在这里。
}
}
void delay(uint del) //延时1ms
{
uint i,j;
for(i=0;i<del;i++)
for(j=0;j<=168;j++);
}
void writecmd(uchar com) //写指令
{
E=0;
RS=0;
RW=0;
P0=com;
delay(10);
E=1;
delay(10);
E=0;
}
void writedata(uchar dat)//写数据
{
E=0;
RS=1;
RW=0;
P0=dat;
delay(10);
E=1;
delay(10);
E=0;
}
void init() //初始化
{
delay(30);
writecmd(0x38);
delay(10);
writecmd(0x38);
delay(10);
writecmd(0x38);
writecmd(0x38);
writecmd(0x08);
writecmd(0x01);
writecmd(0x06);
writecmd(0x0c);
}
作者:
wulin
时间:
2021-12-7 05:59
void mian()错
void main()
作者:
ByanouQ
时间:
2021-12-7 08:30
3个警告 都是什么
作者:
bfdz
时间:
2021-12-7 09:16
void mian()错
void main()
非常感谢,就是这个原因,改过后就正常了。
是我没经验,也太粗心了
作者:
13205495918
时间:
2021-12-7 09:55
void main看看你的主函数顺序敲错了,我有时候也犯这种错误
作者:
996256177
时间:
2021-12-7 10:16
void main()
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1