1.在LCD1602显示程序中关于主函数for(num=0;num<13;num++),每次扫描程序,num都有要加1,选择数组的位都会变,但是显示都是一样的?为啥什么要取13,别的数可不可以?
2.uchar code table[]="Good morning!";如果字符串不止一个该如何写,那又在选择数组的位是不是相同的方法。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="Good morning!";
sbit LED1602_E=P2^7;
sbit LED1602_RS=P2^6;
sbit LED1602_WR=P2^5;
uchar num;
void Delay(uint z)
{
uint x,y;
for(x=0;x<z;x++)
for(y=0;y<110;y++);
}
void write_com(uchar com)
{
LED1602_E=0;
LED1602_RS=0;
LED1602_WR=0;
P0=com;
Delay(5);
LED1602_E=1;
Delay(5);
LED1602_E=0;
P0=com<<4;
Delay(5);
LED1602_E=1;
Delay(5);
LED1602_E=0;
}
void write_data(uchar date)
{
LED1602_E=0;
LED1602_RS=1;
LED1602_WR=0;
P0=date;
Delay(5);
LED1602_E=1;
Delay(5);
LED1602_E=0;
P0=date<<4;
Delay(5);
LED1602_E=1;
Delay(5);
LED1602_E=0;
}
void Init()
{
LED1602_E=0;
write_com(0x32);
write_com(0x28);
write_com(0x0f);
write_com(0x06);
write_com(0x01);
write_com(0x80+0x02);
}
void main()
{
Init();
for(num=0;num<13;num++)
{
write_data(table[num]);
}
while(1)
{
|