单片机c语言按键每按一次加一一直到加到100程序怎么写?求高手指点。
展开全部
给你参考
//12M晶振。2位共阳数码管,P0为段码,P2.0、P2.1位控
#include <reg51.h>
#define uchar unsigned char
sbit P20=P2^0;
sbit P21=P2^1;
sbit KEY=P2^2;
uchar ge,shi;
uchar code tab[ ]={0xC0,0xF9,0xA4,0xB0,0x99,
0x92,0x82,0xF8,0x80,0x90,};
void delay_ms(unsigned int ms) //1ms延时
{
uchar a;
while(ms--)
for(a=123;a>0;a--);
}
void display();
void main()
{
while(1)
{
display();
while(!KEY)
{
display();
if(KEY)
ge++;
}
if(ge==10)
{
ge=0;
shi++;
}
if(shi==100)
{
shi=0;
}
}
}
void display( )
{
P20=1;
P0=tab[ge];
delay_ms(5);
P20=0;
P21=1;
P0=tab[shi];
delay_ms(5);
P21=0;
}
//12M晶振。2位共阳数码管,P0为段码,P2.0、P2.1位控
#include <reg51.h>
#define uchar unsigned char
sbit P20=P2^0;
sbit P21=P2^1;
sbit KEY=P2^2;
uchar ge,shi;
uchar code tab[ ]={0xC0,0xF9,0xA4,0xB0,0x99,
0x92,0x82,0xF8,0x80,0x90,};
void delay_ms(unsigned int ms) //1ms延时
{
uchar a;
while(ms--)
for(a=123;a>0;a--);
}
void display();
void main()
{
while(1)
{
display();
while(!KEY)
{
display();
if(KEY)
ge++;
}
if(ge==10)
{
ge=0;
shi++;
}
if(shi==100)
{
shi=0;
}
}
}
void display( )
{
P20=1;
P0=tab[ge];
delay_ms(5);
P20=0;
P21=1;
P0=tab[shi];
delay_ms(5);
P21=0;
}
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机编程是指使用单片机编程语言,如C语言,来编写单片机的程序代码,以控制单片机的行为。这种技术在电子工程、计算机科学和电子通信等领域中被广泛应用。单片机编程的主要任务是设计和实现单片机的程序,包括定义单片机的指令系统、编写程序代码、处理器...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
其中P0口和P2口各接一个共阴数码管,P3.7接个按键
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint ms);
sbit key=P3^7;
void delay(uint ms)
{
uint i,j;
for(i=ms;i>0;i--)
for(j=120;j>0;j--);
}
void main(void)
{
uchar num;
P0=table[num/10];
P2=table[num%10];
while(1)
{
if(key==0)
{
delay(10); //去抖动
if(key==0)
{
num++;
if(num==100)
{
num=0;
}
P0=table[num/10];
P2=table[num%10];
while(key==0); //等待按键释放
}
}
}
}
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint ms);
sbit key=P3^7;
void delay(uint ms)
{
uint i,j;
for(i=ms;i>0;i--)
for(j=120;j>0;j--);
}
void main(void)
{
uchar num;
P0=table[num/10];
P2=table[num%10];
while(1)
{
if(key==0)
{
delay(10); //去抖动
if(key==0)
{
num++;
if(num==100)
{
num=0;
}
P0=table[num/10];
P2=table[num%10];
while(key==0); //等待按键释放
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个直接套程序了呀,你是要把显示的放在数码管上吗?是的话那就直接加上按键扫描然后判断是否被按下是的话就直接调用数码管显示的二进制数就可以了,这样循环.... 程序的话没有你的原理图不好写
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询