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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2073|回復: 0
打印 上一主題 下一主題
收起左側

試驗板鍵盤問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:47343 發表于 2015-1-23 19:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
首先說下,剛開始學習c51程序,是根據郭天祥的教程寫的
發現實驗板的鍵盤電路圖有問題。
圖上標的是
s6       s7      s8       s9

s10     s11    s12     s13

s14     s14    s16     s17

s18     s19    s20     s21      

實際是

s6    s10     s14    s18

s7    s11     s15    s19

s8    s12    s16     s20

s9    s13   s17      s21      

//鍵盤按列依次被按下,數碼管依次顯示0-F
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar temp,num;
/////////////////延時程序////////////////       
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
        {
                for(y=250;y>0;y--)
                {
                };
        };
}
/////////////////延時程序////////////////
void main()
{       
        dula=1;
        P0=0;
        dula=0;
        wela=1;
        P0=0x00;
        wela=0;
        while(1)
        {
                P3=0xef;
                temp=P3;
                temp=temp&0x0f;
/////////////////消去按鍵時的抖動////////////////
                while(temp!=0x0f)//檢測是否有按鍵被按下
                {
                        delay(5);
                        temp=P3;
                        temp=temp&0x0f;
/////////////////消去按鍵時的抖動////////////////
                        while(temp!=0x0f)//檢測是否真有按鍵被按下
                        {                               
                                temp=P3;
                                switch(temp)
                                {
                                        case 0xee:num=1;       
                                                break;
                                        case 0xed:num=2;
                                                break;
                                        case 0xeb:num=3;
                                                break;
                                        case 0xe7:num=4;
                                                break;
                                };
/////////////////第一列鍵盤掃描的松手檢測////////////////       
                                while(temp!=0x0f)
                                {
                                        temp=P3;
                                        temp=temp&0x0f;

                                }       
/////////////////第一列鍵盤掃描的松手檢測////////////////       
/////////////////數碼管根據按鍵信息顯示////////////////       
                                dula=1;
                                P0=table[num-1];
                                dula=0;       
/////////////////數碼管根據按鍵信息顯示////////////////               
                        };
                };

//第二列鍵盤掃描程序
                P3=0xdf;
                temp=P3;
                temp=temp&0x0f;
                while(temp!=0x0f)
                {
                        delay(5);
                        temp=P3;
                        temp=temp&0x0f;
                        while(temp!=0x0f)
                        {                               
                                temp=P3;
                                switch(temp)
                                {
                                        case 0xde:num=5;       
                                                break;
                                        case 0xdd:num=6;
                                                break;
                                        case 0xdb:num=7;
                                                break;
                                        case 0xd7:num=8;
                                                break;
                                };       
                                while(temp!=0x0f)
                                {
                                        temp=P3;
                                        temp=temp&0x0f;

                                }                                                       
                                dula=1;
                                P0=table[num-1];
                                dula=0;               
                        };

                       
                };
//第三列鍵盤掃描程序
                P3=0xbf;
                temp=P3;
                temp=temp&0x0f;
                while(temp!=0x0f)
                {
                        delay(5);
                        temp=P3;
                        temp=temp&0x0f;
                        while(temp!=0x0f)
                        {                               
                                temp=P3;
                                switch(temp)
                                {
                                        case 0xbe:num=9;       
                                                break;
                                        case 0xbd:num=10;
                                                break;
                                        case 0xbb:num=11;
                                                break;
                                        case 0xb7:num=12;
                                                break;
                                };       
                                while(temp!=0x0f)
                                {
                                        temp=P3;
                                        temp=temp&0x0f;

                                }                                                       
                                dula=1;
                                P0=table[num-1];
                                dula=0;               
                        };

                       
                };
//第四列鍵盤掃描程序
                P3=0x7f;
                temp=P3;
                temp=temp&0x0f;
                while(temp!=0x0f)
                {
                        delay(5);
                        temp=P3;
                        temp=temp&0x0f;
                        while(temp!=0x0f)
                        {                               
                                temp=P3;
                                switch(temp)
                                {
                                        case 0x7e:num=13;       
                                                break;
                                        case 0x7d:num=14;
                                                break;
                                        case 0x7b:num=15;
                                                break;
                                        case 0x77:num=16;
                                                break;
                                };       
                                while(temp!=0x0f)
                                {
                                        temp=P3;
                                        temp=temp&0x0f;

                                }                                                       
                                dula=1;
                                P0=table[num-1];
                                dula=0;               
                        };

                       
                };

        };
               
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人一区在线观看 | av天天看| 久久久久高清 | 99热在线播放| 精品伊人久久 | 国产 日韩 欧美 在线 | 在线午夜 | 日韩精品久久一区 | 亚洲国产精品久久 | 日本精品999| 国产精品精品视频一区二区三区 | 视频一区二区在线观看 | 在线一区二区三区 | 国产精品久久久久久吹潮日韩动画 | 亚洲中午字幕 | 精品国产亚洲一区二区三区大结局 | 999精品在线观看 | 国产精品久久久久aaaa | 欧美日韩一区在线 | 久久久久久久国产 | 激情综合五月 | 成人av在线大片 | 91久久精品日日躁夜夜躁欧美 | 久久久精彩视频 | 91色在线| 久久国产亚洲 | 欧美日韩电影一区二区 | 日韩1区| 日韩视频在线一区二区 | 另类亚洲视频 | 最新毛片网站 | 国产99久久| 免费午夜视频在线观看 | 91精品国产综合久久久久久漫画 | 在线视频 中文字幕 | av大片在线 | 日韩日b视频 | 成人夜晚看av | 99色在线| 中文字幕高清av | 欧美日韩国产在线 |