51单片机按键对数码管的控制 5

51单片机按键对数码管的控制89c52单片机,按键按下时一个数码管显示数字5,放开仍显示数字5,再次按时数码管显示数8,放开仍显示数字8,以此循环,写出程序。... 51单片机按键对数码管的控制89c52单片机,按键按下时一个数码管显示数字5,放开仍显示数字5,再次按时数码管显示数8,放开仍显示数字8,以此循环,写出程序。 展开
 我来答
剑门关不平276
2016-07-24 · TA获得超过7241个赞
知道大有可为答主
回答量:5557
采纳率:86%
帮助的人:1419万
展开全部
/*-----------------------------------------------
名称:单个共阳数码管动态显示变化数字
内容:通过循环检测P1口按键输入值,然后用数码管输出,
没有按键按下时原值不变
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动,
//头文件包含特殊功能寄存器的定义
unsigned char code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,};
// 显示数值表0-9
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
while (1) //主循环
{
switch(P1) //P1口作为独立按键输入端,检测端口电平并做如下判断
{
case 0xfe:P1=table[1];break;//0xfe = 1111 1110,
//说明连接在P1.0端口的按键被按下,显示对应的数字然后跳出循环
case 0xfd:P1=table[2];break;
case 0xfb:P1=table[3];break;
case 0xf7:P1=table[4];break;
case 0xef:P1=table[5];break;
case 0xdf:P1=table[6];break;
case 0xbf:P1=table[7];break;
case 0x7f:P1=table[8];break;
default:break; //如果都没按下,直接跳出
}
}
}
有问题回复我哦
追问
重点是想问按两次或者两次以上的话,每次都要控制数码管的显示,实现这种用什么语句合适
大神会不会啊,指点一下思路。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式