數碼管按鍵加減一


//按鍵加一或減一
#include <reg51.h>
#include <stdio.h>
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);
        
        
    }
 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM