数码管按键加减一

发布时间: 2024-08-15
来源: 电子工程世界

//按键加一或减一

#include

#include

int duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共阴数码管0到9数字的十六进制

sbit K1 = P1^0;

sbit K2 = P1^7;

char num =  0;

//含参数延时函数

void delay(unsigned int i){

    while(i--);

    }

    //主函数

void main(void)

 { 

    while(1){

        if(K1 == 0){

         delay(5000);//按键的延时

        if(K1 == 0){

            num ++;

            }

        }

        

    if(K2 == 0){

         delay(5000);

        if(K2 == 0){

            num --;

            }

        }

        

        

        //循环

    if(num > 99){

        num = 0;

        }

    if(num < 0){

        num = 99;

        }

        

    //知识点:任何一个两位数取余10得个位数    ,除以10的十位数    

        P3=0x08;            //个位显示

        P0 = ~duan[num%10]; //只有十的倍数取余10才等于0,所以其他非十的倍数等于本身过其个位数

        delay(5000);

        P3=0x04;            //十位显示

        P0= ~duan[num/10%10];   //单片机里任何一个数除以10等于其十位数

        delay(6000);

        

        

    }

 }

a2f039a563fc33e8eeaa5a602aa78d2d_1047760-20170516160256682-417201096.png


文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。