这51单片机程序错哪了?为什么液晶显示屏上显示的是8?新手求教,谢谢啦。

这51单片机程序错哪了?为什么液晶显示屏上显示的是8?新手求教,谢谢啦。要求:利用四个按键,给变量num(初始为零)输入2位数初值a)按下K1时,系统进入输入状态,数码管... 这51单片机程序错哪了?为什么液晶显示屏上显示的是8?新手求教,谢谢啦。要求:利用四个按键,给变量num(初始为零)输入2位数初值
a) 按下K1时,系统进入输入状态,数码管显示0;
b) 按K2,个位+1,按K3,个位-1
c) 按K4后,输入各位x10,并显示十位、个位
d) 重复步骤b,输入个位
e) 再次按K1时结束输入,并保存输入到num中 f) 在非输入状态,显示num值
#include<reg51.h>
sbit S4=P1^6; unsigned char LED[]={0xf9,0xa4,0xb0,0x99};
//1~4的段码值
unsigned int numA;
sbit K1=P3^2;
sbit K2=P3^3;
sbit K3=P3^4;
sbit K4=P3^5;
void delay_ms(unsigned char n) //毫秒延时函数
{ unsigned char i,j;
for(i=n;i>0;i--)
for(j=114;j>0;j--);
}
void main()
{ S4=0;
while(1)
{ if(P3!=0xff)
{ delay_ms(300);
if(P3!=0xff)
{ if(K1==0)
{ P0=LED[99];
}
if(K2==0)
{ numA++;
P0=LED[numA];
}
if(K3==0)
{ numA--;
P0=LED[numA];
}
if(K4==0)
{ P0=LED[numA];
} } } } }
展开
 我来答
tony_sgt
2017-12-13 · TA获得超过8423个赞
知道大有可为答主
回答量:5330
采纳率:66%
帮助的人:1204万
展开全部
P0=LED[99]; 声明的数组没有这么大,
unsigned char LED[]={0xf9,0xa4,0xb0,0x99}; 数组就这么大没有99个数
丁丁舞台
2024-12-13 广告
广州丁丁舞台技术有限公司旗下舞台维保网/酒吧维保网,是由舞台演出行业的多家声学装修企业、舞台灯光企业、音响企业、舞台机械企业、场馆座椅、大屏制造安装企业、荧幕制造企业、演出公司、舞台技术培训机构、以及设计、工程类公司联合打造而成的大型一站式... 点击进入详情页
本回答由丁丁舞台提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式