81单片机1602显示
效果左移速度过快,最后delay函数参数修改没用,最后效果如图程序如下:(无error和warning)#include<reg52.h>//#include<intri...
效果左移速度过快,最后delay函数参数修改没用,最后效果如图
程序如下:(无error和warning)
#include<reg52.h>
//#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table1[]={"I LOVE YOU!"};
uchar code table2[]={"AND YOU?"};
sbit rs=P2^6;
sbit rw=P2^5;
sbit e=P2^7;
/*void delay(uint a)
{
uchar i;
while(a--)
{
for(i=0;i<250;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
} */
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void lcd_write(uchar cmd,uchar i)
{
rs=i;
rw=0;
e=0;
// _nop_();
// _nop_();
// _nop_();
delay(20);
P0=cmd;
// _nop_();
// _nop_();
// _nop_();
// _nop_();
delay(20);
e=1;
// _nop_();
// _nop_();
// _nop_();
// _nop_();
delay(20);
e=0;
}
void lcd_init()
{
lcd_write(0x38,0);
delay(20);
lcd_write(0x0f,0);
delay(20);
lcd_write(0x07,0);
delay(20);
lcd_write(0x01,0);
delay(20);
lcd_write(0x80+0x10,0);
delay(20);
}
void main()
{
uchar n;
lcd_init();
for(n=0;n<11;n++)
{
lcd_write(table1[n],1);
// _nop_();
// _nop_();
delay(20);
}
lcd_write(0x80+0x50,0);
for(n=0;n<8;n++)
{
lcd_write(table2[n],1);
// _nop_();
// _nop_();
delay(20);
}
for(n=0;n<10;n++);
{
lcd_write(0x18,0);
delay(1000);
}
while(1);
}
口袋里没多少分了,望大神体谅啊
是51==!最后一个for里n<16 展开
程序如下:(无error和warning)
#include<reg52.h>
//#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table1[]={"I LOVE YOU!"};
uchar code table2[]={"AND YOU?"};
sbit rs=P2^6;
sbit rw=P2^5;
sbit e=P2^7;
/*void delay(uint a)
{
uchar i;
while(a--)
{
for(i=0;i<250;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
} */
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void lcd_write(uchar cmd,uchar i)
{
rs=i;
rw=0;
e=0;
// _nop_();
// _nop_();
// _nop_();
delay(20);
P0=cmd;
// _nop_();
// _nop_();
// _nop_();
// _nop_();
delay(20);
e=1;
// _nop_();
// _nop_();
// _nop_();
// _nop_();
delay(20);
e=0;
}
void lcd_init()
{
lcd_write(0x38,0);
delay(20);
lcd_write(0x0f,0);
delay(20);
lcd_write(0x07,0);
delay(20);
lcd_write(0x01,0);
delay(20);
lcd_write(0x80+0x10,0);
delay(20);
}
void main()
{
uchar n;
lcd_init();
for(n=0;n<11;n++)
{
lcd_write(table1[n],1);
// _nop_();
// _nop_();
delay(20);
}
lcd_write(0x80+0x50,0);
for(n=0;n<8;n++)
{
lcd_write(table2[n],1);
// _nop_();
// _nop_();
delay(20);
}
for(n=0;n<10;n++);
{
lcd_write(0x18,0);
delay(1000);
}
while(1);
}
口袋里没多少分了,望大神体谅啊
是51==!最后一个for里n<16 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询