51单片机按键对数码管的控制 5
51单片机按键对数码管的控制89c52单片机,按键按下时一个数码管显示数字5,放开仍显示数字5,再次按时数码管显示数8,放开仍显示数字8,以此循环,写出程序。...
51单片机按键对数码管的控制89c52单片机,按键按下时一个数码管显示数字5,放开仍显示数字5,再次按时数码管显示数8,放开仍显示数字8,以此循环,写出程序。
展开
1个回答
展开全部
/*-----------------------------------------------
名称:单个共阳数码管动态显示变化数字
内容:通过循环检测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; //如果都没按下,直接跳出
}
}
}
有问题回复我哦
名称:单个共阳数码管动态显示变化数字
内容:通过循环检测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; //如果都没按下,直接跳出
}
}
}
有问题回复我哦
追问
重点是想问按两次或者两次以上的话,每次都要控制数码管的显示,实现这种用什么语句合适
大神会不会啊,指点一下思路。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询