在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC18F452單片機(jī) 矩陣鍵盤

            PIC18F452單片機(jī) 矩陣鍵盤

            作者: 時(shí)間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
            #include //調(diào)用頭文件,可以去PICC18軟件下去查找PIC18FXX2.H
            __CONFIG(1,XT) ; //晶振為外部4M
            __CONFIG(2,WDTDIS) ; //看門狗關(guān)閉
            __CONFIG(4,LVPDIS) ; //禁止低電壓編程
            #define B7 RB7
            #define B6 RB6
            #define B5 RB5
            #define B4 RB4
            #define B3 RB3
            #define B2 RB2
            #define B1 RB1
            #define B0 RB0
            #define B PORTB
            #define D PORTD
            #define E2 RE2
            #define E1 RE1
            #define E0 RE0
            #define C7 RC7
            char shuma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
            void delayms(int x)
            {
            int i,j;
            for(i=0;i<=30;i++)
            for(j=0;j<=x;j++);
            }
            int keyscan()
            {
            B=0x7f;
            if(B3==0)
            {
            delayms(5);
            return 16;
            }
            if(B2==0)
            {
            delayms(5);
            return 12;
            }
            if(B1==0)
            {
            delayms(5);
            return 8;
            }
            if(B0==0)
            {
            delayms(5);
            return 4;
            }
            delayms(5);
            B=0xbf;
            if(B3==0)
            {
            delayms(5);
            return 15;
            }
            if(B2==0)
            {
            delayms(5);
            return 11;
            }
            if(B1==0)
            {
            delayms(5);
            return 7;
            }
            if(B0==0)
            {
            delayms(5);
            return 3;
            }
            delayms(5);
            B=0xdf;
            if(B3==0)
            {
            delayms(5);
            return 14;
            }
            if(B2==0)
            {
            delayms(5);
            return 10;
            }
            if(B1==0)
            {
            delayms(5);
            return 6;
            }
            if(B0==0)
            {
            delayms(5);
            return 2;
            }
            delayms(5);
            B=0xef;
            if(B3==0)
            {
            delayms(5);
            return 13;
            }
            if(B2==0)
            {
            delayms(5);
            return 9;
            }
            if(B1==0)
            {
            delayms(5);
            return 5;
            }
            if(B0==0)
            {
            delayms(5);
            return 1;
            }
            delayms(5);
            }
            void display(int num)
            {
            int ge,shi;
            ge=num;
            shi=num/10;
            E2=0;
            E1=1;E0=1;
            if(shi==0&&ge==0)
            D=0x00;
            else D=shuma[ge];
            delayms(2);
            E1=1;E0=0;
            if(shi==0)
            D=0x00;
            else D=shuma[shi];
            delayms(2);
            D=0x00;
            delayms(2);
            }
            void main(void)
            {
            int temp,num=0;
            ADCON1=0X06; //所有IO均為數(shù)字口,模擬量輸入禁止
            TRISB=0X0f;
            TRISD=0x00;
            TRISE=0x00;
            TRISC=0x00;
            while(1)
            {
            temp=keyscan();
            switch(temp)
            {
            case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:num=temp;C7=1;break;
            default:C7=0;break;
            }
            display(num);
            }
            }
            利用一個(gè)I/O口的輸入輸出變化,有點(diǎn)類似動(dòng)態(tài)掃描,輪流檢測(cè)每一行是否有按鍵按下
            效果:按下一個(gè)鍵,在數(shù)碼管上顯示該鍵的數(shù)字


            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉