stm32用一个按键控制两位数码管从00-99,代码怎么写

如题所述

/按键控制加、减显示00-99(P1接8个独立按键,P10按下为加,P11按下为减,P2

接LED数码管的A- -H并加一个560欧的上拉排阻,P0接数码管DS1- -DS8位选)

**************************************************************//

按键控制加、减显示00-99(P1接8个独立按键,P10按下为加,P11按下为减,P2

接LED数码管的A- -H并加一个560欧的上拉排阻,P0接数码管DS1- -DS8位选)//

#include<reg52.h>

sbit P0_0=P0^0; //个位数字

sbit P0_1=P0^1; //十位数字

void delay(int k); //Tab为数码管显示值,存入一个数组内

void key_ccan(void); //声明按键扫描函数

unsigned char code Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}unsigned char i,shi,ge,num,count=10; //num为被显示的数字

void main()

{

P2=Tab[0];P0_0=0;P0_1=0;//显示00

num=0; //被显示的数置0

while(1)

{

key_ccan(); //调用按键扫描程序

for(i=0;i<count;i++) //显示个位、十位count次后显示的数加1

shi=num/10; //取出十位数

ge=num%10; //取出个位数

P0_0=1;P0_1=1; //关闭显示

P2=Tab[shi]; //P2口送出十位数据显示代码

P0_0=0; //打开十位显示

delay(10); //延时

P0_0=1; //关闭显示

P2=Tab[ge]; //P2口送出个位数据显示代码

P0_1=0; //打开个位显示

delay(10); //延时

P0_1=1; //关闭个位显示

}

}

void key_ccan(void)

{

unsigned char ii;

P1=0xff;

ii=P1;

if(ii!=0xff)

{

P1=0xff;

delay(50);

ii=P1;

if(ii!=0xff)

{

switch(ii)

{

case 0xfe: num++;if(num==100) num=0; break;

case 0xfd: if(num==0) num=99;else num--;break;

default: break;

}

}

}

}

void delay(int k) //最简单的C延时程序

{ unsigned char i;

while(k--) //直至K减为0则跳出

{for(i=100;i>0;i--);}

}


5.9
百度文库VIP限时优惠现在开通,立享6亿+VIP内容
立即获取
单片机_两个数码管显示00~99
/按键控制加、减显示00-99(P1接8个独立按键,P10按下为加,P11按下为减,P2

接LED数码管的A- -H并加一个560欧的上拉排阻,P0接数码管DS1- -DS8位选)

**************************************************************//

按键控制加、减显示00-99(P1接8个独立按键,P10按下为加,P11按下为减,P2

接LED数码管的A- -H并加一个560欧的上拉排阻,P0接数码管DS1- -DS8位选)//

#include<reg52.h>

sbit P0_0=P0^0; //个位数字
温馨提示:答案为网友推荐,仅供参考
相似回答