久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 九路搶答實驗課程設計 [打印本頁]

作者: mtl13479920110    時間: 2017-6-8 19:29
標題: 九路搶答實驗課程設計
#include <reg51.h>

/********定義按鍵引腳********/
sbit key_One = P2^3;
sbit key_Two = P2^2;
sbit key_Three = P2^1;
sbit key_Four = P2^0;

unsigned char code num[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //0~9數字的8421編碼
unsigned char code wei[] = {0x7f,0xbf,0xdf,0xef};  //數碼管位選編碼
char number = 0;  //要顯示的數字
unsigned char key_Buff;   //按鍵鍵值緩沖值

/********函數聲明********/
void delay(int z);
void display(int x);
char key_Scan();

void main()
{
    while(1)
    {
        key_Buff = key_Scan();     //將按鍵值存入緩沖區
        switch(key_Buff)   //判斷緩沖區的值
        {
            case 0: break;
            case 1: number++;    //按鍵1按下,number自加一并將按鍵
                    if(number >= 255)
                        number = 255;   //number值大于255不再自加
                    key_Buff = 0;  //按鍵值緩沖區清零,防止下次按鍵未按下還再次進入
                    break;   
            case 2: number--;
                    if(number <= 0)
                        number = 0;
                    key_Buff = 0;
                    break;
            case 3: break;
            case 4: break;
        }
        display(number);  //數碼管顯示
    }
}

/***************************************/
/**函數名: delay(z)
/**函數功能: 粗略延時
/**輸入參數: z表示要延時的毫秒數
/**示例: delay(300) //粗略延時300毫秒
/***************************************/
void delay(int z)
{
    int x,y;

    for(x=z; x>0; x--)
        for(y=110; y>0; y--);
}

/***************************************/
/**函數名: display()
/**函數功能: 數碼管顯示函數
/**輸入參數: x:要顯示的數
/**示例: display(1234); //顯示1234
/***************************************/
void display(int x)
{
    unsigned char ge, shi, bai, qian;

    /*************************/
    /**提取x的個十百千位
    /**‘/’為取模運算
    /**‘%’為求余運算
    /*************************/
    qian = x/1000 %10;  
    bai = x/100 %10;   
    shi = x/10 %10;     
    ge = x/1 %10;     

    P0 = ~num[qian];    //顯示千位
    P2 = wei[0];        //第0個數碼管顯示
    delay(2);           //延時2毫秒
    P0 = ~num[bai];     //顯示百位
    P2 = wei[1];
    delay(2);
    P0 = ~num[shi];     //顯示十位
    P2 = wei[2];
    delay(2);
    P0 = ~num[ge];      //顯示個位
    P2 = wei[3];
    delay(2);
    P0 = 0xff;          //數碼管消隱
}

/***************************************/
/**函數名: key_Scan()
/**函數功能: 按鍵掃描函數
/**輸入參數: 無
/**返回參數: 按鍵的鍵值
/**示例: key_Buff = key_Scan();
/***************************************/
char key_Scan()
{
    char key_Value = 0;  //按鍵鍵值,用于返回鍵值使用

    P2 = 0x0f;    //將按鍵引腳電平拉高

    if(key_One == 0)  //檢測按鍵1是否被按下
    {
        delay(10);    //延時消抖
        while(key_One == 0)   //按鍵1確定被按下
        {
            key_Value = 1;    //按鍵鍵值置1
            display(number);  //調用顯示函數,防止按鍵一直被按下時數碼管不顯示
        }
    }
    if(key_Two == 0)   //按鍵2的檢測
    {
        delay(10);
        while(key_Two == 0)
        {
            key_Value = 2;
            display(number);
        }
    }
    if(key_Three == 0)
    {
        delay(10);
        while(key_Three == 0)
        {
            key_Value = 3;
            display(number);
        }
    }
    if(key_Four == 0)
    {
        delay(10);
        while(key_Four == 0)
        {
            key_Value = 4;
            display(number);
        }
    }
    return key_Value;  //返回鍵值
}







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 在线观看亚洲专区 | 国内自拍真实伦在线观看 | 91免费在线视频 | 亚洲精品欧洲 | 久久久久久久一区 | 亚洲一区二区免费 | 日韩1区| 日韩中文在线视频 | 日日夜夜精品免费视频 | 午夜一区二区三区在线观看 | 免费特级黄毛片 | 国产精品久久久久久久久久了 | 岛国av一区二区三区 | 99久久视频 | 一二三四在线视频观看社区 | 国产精品一区二区不卡 | 国精产品一区一区三区免费完 | 波多野吉衣在线播放 | 日本高清在线一区 | 精品福利在线 | 国产精品久久久久久久免费大片 | 国产精品91视频 | 91精品国产色综合久久 | 综合婷婷 | 日韩欧美精品 | 日韩欧美天堂 | 一区二区三区视频在线观看 | 久久久国产一区二区三区四区小说 | 亚洲成人免费观看 | 精品国产乱码久久久久久牛牛 | 久久久久久综合 | 美女黄网| 精品1区| 日韩中文字幕在线播放 | 99亚洲国产精品 | 欧美大片黄 | 成人影视网址 | 美女一级黄 | 拍真实国产伦偷精品 | 国产精品视频免费 | 午夜免费电影 |