单片机用一个按键控制数码管显示图

 我来答
思念天涯21
推荐于2017-09-03 · 超过10用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:12.7万
展开全部
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char //宏定义
sbit key1=P0^0; //定义键盘IO口
sbit key2=P0^1; //
sbit beep=P2^3;
sbit key3=P0^2;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90}; //共阳数码管编码号
uchar num;
void keyscan();//键扫描函数
void display();
void delayms(uint);
void main() //主函数
{
while(1) //大循环
{
///display(); //显示函数
keyscan(); //键扫描函数
display(); //显示函数
}
}
void display()//显示函数,使函数调回主函数
{
P1=table[num];//显示数码管编码数
delayms(5);
}
void keyscan() //键扫描函数
{
if(key1==0) //判断键一是否按下
{
if(key1==0)
{
delayms(10);
while(!key1);//未按下,键开路
num++;
beep=~beep;
delayms(50);
beep=~beep;
if(num==10)
{
num=0;
}
while(!key1);
}
}
if(key2==0)
{
if(key2==0)
{
delayms(10);
beep=~beep;
delayms(50);
beep=~beep;
while(!key2);
num--;
if(num==0)
{num=10;}
while(!key2);
}
}
if(key3==0)
{
if(key3==0)
{
delayms(50);
beep=~beep;
num=0;
while(!key3);
}
}

}
void delayms(uint xms) //延时函数
{
int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cateye119
2012-11-20 · 超过30用户采纳过TA的回答
知道答主
回答量:128
采纳率:0%
帮助的人:77.4万
展开全部
说的再具体点,太抽象,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱的呼唤56
2012-11-20 · 超过17用户采纳过TA的回答
知道答主
回答量:118
采纳率:0%
帮助的人:48万
展开全部
最好把电路图拿来看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式