我这个程序是实现每次按键按一下 数字加一 并在12864上显示 可是每按下一次就会出现加几十减几十的现象 请大神帮我弄解决一下
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit EN=P3^4;
sbit RS=P3^5;
sbit RW=P3^6;
sbit PSB=P3^7;
sbit S=P3^0;
sbit du=P2^6;
sbit we=P2^7;
uchar num=0;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=114;y>0;y--);
}
uchar keyscan()
{
if(S==0)
{
delay(10);
if(S==0)
{
while(!S)
num++;
}
}
return num;
}
void write_com(uchar com)
{
RS=0;
RW=0;
EN=0;
P0=com;
delay(5);
EN=1;
delay(5);
EN=0;
}
void write_date(uchar dat)
{
RS=1;
RW=0;
EN=0;
P0=dat;
delay(5);
EN=1;
delay(5);
EN=0;
}
void init()
{
PSB=1; //并口方式
EN=0;
RW=0;
write_com(0x30);
delay(5);
write_com(0x0c);
delay(5);
write_com(0x01);
delay(5);
}
void main()
{
init();
du=0;
we=0;
delay(10);
while(1)
{
keyscan();
write_com(0x90+3);
write_date(num/100+'0');
write_com(0x90+4);
write_date(num%100/10+'0');
write_com(0x90+5);
write_date(num%10+'0');
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
while后,再加个分号
一周热门 更多>