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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2058|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久91精品国产一区二区三区 | 久久免费精彩视频 | 国产高清精品在线 | 精品国产视频 | 国产99精品 | 99re视频| 黄色一级视频 | 一级免费黄色 | 伊人一区 | 一区精品国产欧美在线 | 午夜激情在线视频 | 亚洲精品国产第一综合99久久 | 国产电影一区二区在线观看 | 亚洲一区二区三区国产 | 国产精品一区二区三区久久 | 欧美精品一区二区三区在线 | 欧美区在线 | 国产成人精品一区二区 | 日本 欧美 三级 高清 视频 | 日韩高清国产一区在线 | 日本精品一区二区三区在线观看视频 | 国产区精品 | 91久久久久久 | 国产精品久久久久aaaa | 欧美日韩国产在线观看 | 九九热在线视频观看这里只有精品 | 亚洲精品一区二区 | 欧美99 | 青青草华人在线视频 | 久久精品无码一区二区三区 | 久久88 | 久久久久亚洲 | 小h片免费观看久久久久 | 久久午夜国产精品www忘忧草 | 99在线观看 | 人人精品 | 欧美精品1区2区 | 亚洲高清av | 成人福利电影 | 国产精品大片 | 91免费视频|