这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];
} } } } } 展开
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];
} } } } } 展开
1个回答
丁丁舞台
2024-12-13 广告
2024-12-13 广告
广州丁丁舞台技术有限公司旗下舞台维保网/酒吧维保网,是由舞台演出行业的多家声学装修企业、舞台灯光企业、音响企业、舞台机械企业、场馆座椅、大屏制造安装企业、荧幕制造企业、演出公司、舞台技术培训机构、以及设计、工程类公司联合打造而成的大型一站式...
点击进入详情页
本回答由丁丁舞台提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询