标题:
关于单片机矩阵键盘改写C语言数组存储LCD显示的问题
[打印本页]
作者:
氢飘飘
时间:
2022-11-12 19:53
标题:
关于单片机矩阵键盘改写C语言数组存储LCD显示的问题
想在LCD上通过矩阵键盘给数组重新赋值不知道为什么LCD显示全是空格,大佬求解。
单片机源程序如下:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table1[]="Hello, World! ";
uchar code table2[]="What should to do";
uchar code table3[]="21120115 ";
uchar code table4[]="51102112 ";
uchar cache[]=" ";
uchar var,K_count;
sbit RS=P2^0;
sbit EN=P2^2;
sbit RW=P2^1;
void delay(uint sc);
void intion();
void Write_con(uchar con);
void Write_dat(uchar dat);
void Dis_Lcd(uchar str[],uchar str1[]);
void Key_scanf();
void main()
{
intion();
while(1)
{
uchar i;
Key_scanf();
Write_con(0x80);
for(i=0;i<16;i++)
{
Write_dat(cache[i]);
delay(3);
}
}
}
void delay(uint sc)
{
uint i,j;
for(i=sc;i>0;i--)
for(j=110;j>0;j--)
{
;
}
}
void intion()
{
EN=0;
RW=0;
Write_con(0x38);
Write_con(0x0c);
Write_con(0x06);
Write_con(0x01);
Dis_Lcd(table1,table2);
}
void Write_con(uchar con)
{
EN=0;
RS=0;
P0=con;
delay(5);
EN=1;
delay(5);
EN=0;
}
void Write_dat(uchar dat)
{
EN=0;
RS=1;
P0=dat;
delay(5);
EN=1;
delay(5);
EN=0;
}
void Dis_Lcd(uchar str[],uchar str1[])
{
uint i;
Write_con(0x80);
for(i=0;i<16;i++)
{
Write_dat(str[i]);
delay(5);
}
Write_con(0x80+0x40);
for(i=0;i<16;i++)
{
Write_dat(str1[i]);
delay(5);
}
}
void Key_scanf()
{
uchar temp;
P3=0x0f;/*截取高四位IO端口数据,即列判断*/
temp=P3&0x0f;
if(temp!=0x0f)
{
delay(10);
K_count++;
switch(temp)
{
case 0x0e:var=0*4;break;
case 0x0d:var=1*4;break;
case 0x0b:var=2*4;break;
case 0x07:var=3*4;break;
}
P3=0xf0;/*行列电位翻转 */
temp=P3&0xf0;
if(temp!=0xf0)
{
switch(temp)
{
case 0xe0:var+=0;break;
case 0xd0:var+=1;break;
case 0xb0:var+=2;break;
case 0x70:var+=3;break;
}
}
switch(K_count)
{
case 1:cache[0]=var;break;
case 2:cache[1]=var;break;
case 3:cache[2]=var;break;
case 4:cache[3]=var;break;
case 5:cache[4]=var;break;
case 6:cache[5]=var;break;
case 7:cache[6]=var;break;
case 8:cache[7]=var;break;
}
while(P3!=0xf0)
{
;
}
}
}
复制代码
作者:
人中狼
时间:
2022-11-12 22:11
K_count没有赋初值,也没判断是否超出数组
作者:
yzwzfyz
时间:
2022-11-14 15:56
这个问题简单,
自己走单步调试一下。
作者:
lkc8210
时间:
2022-11-14 17:58
Honeycam 2022-11-14 17-57-41.gif
(16.9 KB, 下载次数: 15)
下载附件
2022-11-14 17:58 上传
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1