欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4713|回復(fù): 1
收起左側(cè)

分享8*8矩陣鍵盤,數(shù)碼管顯示程序

[復(fù)制鏈接]
ID:99600 發(fā)表于 2015-12-22 00:25 | 顯示全部樓層 |閱讀模式

8*8_64矩陣鍵盤

8*8_64矩陣鍵盤

#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char

sbit D1=P3^6;   //數(shù)碼管十位com1
sbit D2=P3^7;   //數(shù)碼管個位com2
uchar shi,ge,num;
uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

void delay(uint z);//延時函數(shù)
void display();                //顯示函數(shù)
void keyscan();    //8*8_64矩陣鍵盤
/*----------------------------------------------------------------------------------
                                        main()_程序入口
----------------------------------------------------------------------------------*/
void main()
{
        while(1)
        {
                display();
                keyscan();
        }
}
/*----------------------------------------------------------------------------------
                                延時        
----------------------------------------------------------------------------------*/
void delay(uint z)
{
        uint i,j;
        for(i=z;i>0;i--)
        for(j=112;j>0;j--);
}
/*----------------------------------------------------------------------------------
                                顯示        
----------------------------------------------------------------------------------*/
void display()
{
        shi=num/10;
        ge=num%10;

        P2=table[shi];//顯示十位
        D1=0;
        D2=1;
        delay(5);
        D1=1;

        P2=table[ge];//顯示個位
        D2=0;
        delay(5);
        D2=1;
}
/*----------------------------------------------------------------------------------
                                矩陣鍵盤        
----------------------------------------------------------------------------------*/
void keyscan()
{
        uchar temp,n,k;
        n=0x7f;
        for(k=0;k<8;k++)
        {
        P0=n;
        temp=P1&0xff;
        if(temp!=0xff)
        {
                delay(3);
                temp=P1&0xff;
                if(temp!=0xff)
                {
                        temp=P1;
                        if(n==0x7f)
                        {
                        switch(temp)
                        {
                                case 0xfe:num=1;break;
                                case 0xfd:num=9;break;
                                case 0xfb:num=17;break;
                                case 0xf7:num=25;break;
                                case 0xef:num=33;break;
                                case 0xdf:num=41;break;
                                case 0xbf:num=49;break;
                                case 0x7f:num=57;break;
                        }        
                        }
                                
                        if(n==0xbf)
                        {
                        switch(temp)
                        {
                                case 0xfe:num=2;break;
                                case 0xfd:num=10;break;
                                case 0xfb:num=18;break;
                                case 0xf7:num=26;break;
                                case 0xef:num=34;break;
                                case 0xdf:num=42;break;
                                case 0xbf:num=50;break;
                                case 0x7f:num=58;break;
                        }
                        }
                                
                        if(n==0xdf)
                        {
                        switch(temp)
                        {
                                case 0xfe:num=3;break;
                                case 0xfd:num=11;break;
                                case 0xfb:num=19;break;
                                case 0xf7:num=27;break;
                                case 0xef:num=35;break;
                                case 0xdf:num=43;break;
                                case 0xbf:num=51;break;
                                case 0x7f:num=59;break;
                        }
                        }
                                
                        if(n==0xef)
                        {
                        switch(temp)
                        {
                                case 0xfe:num=4;break;
                                case 0xfd:num=12;break;
                                case 0xfb:num=20;break;
                                case 0xf7:num=28;break;
                                case 0xef:num=36;break;
                                case 0xdf:num=44;break;
                                case 0xbf:num=52;break;
                                case 0x7f:num=60;break;
                        }
                        }
                                
                        if(n==0xf7)
                        {
                        switch(temp)
                        {
                                case 0xfe:num=5;break;
                                case 0xfd:num=13;break;
                                case 0xfb:num=21;break;
                                case 0xf7:num=29;break;
                                case 0xef:num=37;break;
                                case 0xdf:num=45;break;
                                case 0xbf:num=53;break;
                                case 0x7f:num=61;break;
                        }
                        }
                                
                        if(n==0xfb)
                        {
                        switch(temp)
                        {
                                case 0xfe:num=6;break;
                                case 0xfd:num=14;break;
                                case 0xfb:num=22;break;
                                case 0xf7:num=30;break;
                                case 0xef:num=38;break;
                                case 0xdf:num=46;break;
                                case 0xbf:num=54;break;
                                case 0x7f:num=62;break;
                        }
                        }

                        if(n==0xfd)
                        {
                                switch(temp)
                        {
                                case 0xfe:num=7;break;
                                case 0xfd:num=15;break;
                                case 0xfb:num=23;break;
                                case 0xf7:num=31;break;
                                case 0xef:num=39;break;
                                case 0xdf:num=47;break;
                                case 0xbf:num=55;break;
                                case 0x7f:num=63;break;
                                }
                                }

                        if(n==0xfe)
                        {
                                switch(temp)
                        {
                                case 0xfe:num=8;break;
                                case 0xfd:num=16;break;
                                case 0xfb:num=24;break;
                                case 0xf7:num=32;break;
                                case 0xef:num=40;break;
                                case 0xdf:num=48;break;
                                case 0xbf:num=56;break;
                                case 0x7f:num=64;break;
                                }
                        }
                        while(temp!=0xff)
                        {
                                temp=P1&0xff;
                        }
                        }
                }
                n=_cror_(n,1);
        }
}




評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的積分獎勵!

查看全部評分

回復(fù)

使用道具 舉報(bào)

無效樓層,該帖已經(jīng)被刪除
ID:795427 發(fā)表于 2021-8-28 22:59 | 顯示全部樓層
按鍵和顯示的數(shù)值對不上,而且顯示的數(shù)值會隨機(jī)改變不固定,判斷語句和分子多沒有注釋,不好調(diào)試,
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表