单片机小菜鸟,向论坛大神求助,1602问题:最近学习了1602,用PROTUES仿真,自己写出来的程序显示不出来;
这个是别人的程序,可以显示:
#include<reg52.h>
#define uint unsigned int
sbit en=P2^7;
sbit rs=P2^6;
sbit rw=P2^5;
char code table[]={"I LOVE JIAO!"};
char code table1[]={"YI SHENG YI SHI"};
char code table2[]={"MIAO BIAO:"};
char code table3[]={"0123456789"};
uint z,ml,sj,num,shu,shis,shig,fens,feng,miaos,miaog,a;
void init();
void xie_ml(uint ml);
void xie_sj(uint sj);
void miaobiao();
//1MS的定时
void delay(uint z)
{
uint a,b;
for(a=z;a>0;a--)
for(b=110;b>0;b--);
}
void main()
{
init();
xie_ml(0x80+0x10);
for(num=0;num<12;num++)
{
xie_sj(table[num]);
delay(100);
}
xie_ml(0x07);
xie_ml(0x80+0x50);
for(num=0;num<15;num++)
{
xie_sj(table1[num]);
delay(100);
}
delay(3000);
init();
miaobiao();
}
//LCD初始化
void init()
{
rw=0;
rs=0;
en=0;
xie_ml(0x38);
xie_ml(0x0f);
xie_ml(0x06);
// xie_ml(0x80+0);
xie_ml(0x01);
}
//LCD写指令
void xie_ml(uint ml)
{
rs=0;
P0=ml;
delay(3);
en=1;
delay(5);
en=0;
}
//LCD写数据
void xie_sj(uint sj)
{
rs=1;
P0=sj;
delay(3);
en=1;
delay(5);
en=0;
}
//秒表
void miaobiao()
{
a=0;
TMOD=0X10;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
while(1)
{
while(a==125)
{
a=0;
xie_ml(0x80+3);
for(num=0;num<10;num++)
{
xie_sj(table2[num]);
}
miaog++;
if(miaog==10) //个秒
{
miaog=0;
miaos++;
if(miaos==6) //十秒
{
miaos=0;
feng++;
if(feng==10) //个分
{
feng=0;
fens++;
if(fens==6) //十分
{
fens=0;
shig++;
if(shig==10) //个时
{
shig=0;
shis++;
if(shis==10) //十时
shis=0;
}
}
}
}
}
xie_ml(0x80+0x42);
xie_sj(table3[shis]);
xie_ml(0x80+0x43);
xie_sj(table3[shig]);
xie_ml(0x80+0x44);
xie_sj(table2[9]);
xie_ml(0x80+0x45);
xie_sj(table3[fens]);
xie_ml(0x80+0x46);
xie_sj(table3[feng]);
xie_ml(0x80+0x47);
xie_sj(table2[9]);
xie_ml(0x80+0x48);
xie_sj(table3[miaos]);
xie_ml(0x80+0x49);
xie_sj(table3[miaog]);
xie_ml(0x0c);
}
}
}
//50mS的中断
void t0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
}
这个是我根据这个稍微修改的程序,却显示不出来:
#include<reg52.h>
#define uint unsigned int
sbit en=P2^7;
sbit rs=P2^6;
sbit rw=P2^5;
char code table[]={"I LOVE JIAO!"};
char code table1[]={"YI SHENG YI SHI"};
char code table2[]={"MIAO BIAO:"};
char code table3[]={"0123456789"};
uint z,ml,sj,num,shu,shis,shig,fens,feng,miaos,miaog,a;
void init();
void xie_ml(uint ml);
void xie_sj(uint sj);
void miaobiao();//1MS的定时
void delay(uint z)
{
uint a,b;
for(a=z;a>0;a--)
for(b=110;b>0;b--);
}
void main()
{
init();
xie_ml(0x80+0x10);
for(num=0;num<12;num++)
{
xie_sj(table[num]);
delay(100);
}
xie_ml(0x07);
xie_ml(0x80+0x50);
for(num=0;num<15;num++)
{
xie_sj(table1[num]);
delay(100);
}
delay(3000);
init();
miaobiao();
}//LCD初始化
void init()
{
rw=0;
rs=0;
en=0;
xie_ml(0x38);
xie_ml(0x0f);
xie_ml(0x06);
// xie_ml(0x80+0);
xie_ml(0x01);
}
//LCD写指令
void xie_ml(uint ml)
{
rs=0;
P0=ml;
delay(3);
en=1;
delay(5);
en=0;
}
//LCD写数据
void xie_sj(uint sj)
{
rs=1;
P0=sj;
delay(3);
en=1;
delay(5);
en=0;
}
请问前辈们,这两个程序到底有什么不同,为什么我修改的不能显示?恳求前辈批评、指导,感激不尽!!!!