独立按键控制数码管c语言,各位大佬,独立按键控制数码管为什么按下的时候要加一呢?...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include "main.h"

sbit S7=P3^0;//加

sbit S6=P3^1;//减

sbit S5=P3^2;//清0

uchar key_code,key_counts;//按键代码,按键计数

uchar num_buff[3]={0,0,0};//数码管显示内容

uchar dula[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};

void main()

{

allint();

while(1)

{

key_contrul_smg_display();

key_contrul_smg_display_buff();

}

}

void delay(uchar i)

{

while(i--);

}

void allint()

{

P2=0X80;P0=0XFF;P2=0X00;

P2=0XA0;P0=0X00;P2=0X00;

P2=0XC0;P0=0XFF;P2=0X00;

P2=0XE0;P0=0XFF;P2=0X00;

}

void key_contrul_smg_display()

{

uchar i,j=0x80;

num_buff[0]=key_counts/100;

num_buff[1]=key_counts%100/10;

num_buff[2]=key_counts%10;

for(i=0;i<3;i++)

{

j=_crol_(j,1);

P2=0XE0;P0=dula[num_buff[i]];P2=0X00;

P0=0XFF;

P2=0XC0;P0=j;P2=0X00;

P0=0X00;

delay(1000);

}

}

void key_contrul_smg_display_buff()

{

uchar i;

P30=1;P31=1;P32=1;

key_code=P3;

if(key_code!=0xff)

{

for(i=0;i<30;i++)

{

key_contrul_smg_display();

switch(key_code)

{

case 0xfe:if(key_counts<9)key_counts++;break;

case 0xfd:if(key_counts>0)key_counts--;break;

case 0xfb:key_counts=0;break;

}

key_code=0xff;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值