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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

按鍵按下去 有個什么信號 MCU怎么知道的

[復制鏈接]
跳轉到指定樓層
樓主
ID:56266 發表于 2013-10-24 16:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
2013-10-24 14:41 上傳
下載附件 (94.58 KB)




可切換1X4按鍵和4X4按鍵在AT89S52上的原理圖


//1X4按鍵程序

#include "reg51.h"
#include <intrins.h>
#include <absacc.h>
#define uchar unsigned char      //定義unsigned char 為 uchar
#define uint  unsigned int

#define keyport  P3                              //lcd忙檢測標志
#define disport  P0
uchar key,temp;
uchar code dis[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7C,0x39,0x5E,0x79,0x71};
sbit f1=P3^0;
sbit f2=P3^1;
sbit f3=P3^2;
sbit f4=P3^3;

/***************一微秒延時子程序******************/
void delayus(uint delay){
while(delay--);
}
/***************一毫秒延時子程序******************/
void delayms(uint delay){
while(delay--)
  delayus(149);
}

void main()
{
P2=0x04;
if(!f1)
disport=dis[1];
if(!f2)
disport=dis[2];
if(!f3)
disport=dis[3];
if(!f4)
disport=dis[4];

}

//4X4按鍵程序


#include "reg51.h"
#include <intrins.h>
#include <absacc.h>
#define uchar unsigned char      //定義unsigned char 為 uchar
#define uint  unsigned int

#define keyport  P3                              //lcd忙檢測標志
#define disport  P0
uchar key,temp;
uchar code dis[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7C,0x39,0x5E,0x79,0x71};

/***************一微秒延時子程序******************/
void delayus(uint delay){
while(delay--);
}
/***************一毫秒延時子程序******************/
void delayms(uint delay){
while(delay--)
  delayus(100);
}
/******************************************************/
uchar getkey()
{

  keyport=0xef;                                //掃描第三列
temp=keyport;
if(temp!=0xef)
{delayms(10);
  temp=keyport;
   if(temp!=0xef)
  while((keyport&0x0F)!=0x0F) ;
switch(temp)
   {
    case 0xee: key=0;break;
    case 0xed: key=1;break;
    case 0xeb: key=2;break;
    case 0xe7: key=3;break;
    }
         return key;        //返回鍵值
}


keyport=0xdf;                               //掃描第一列
temp=keyport;
if(temp!=0xdf)
{delayms(10);
  temp=keyport;     
   if(temp!=0xdf)
   while((keyport&0x0f)!=0x0f) ;  


switch(temp)
   {
    case 0xde: key=4;break;
    case 0xdd: key=5;break;
    case 0xdb: key=6;break;
    case 0xd7: key=7;break;
   
           }
         return key;         //返回鍵值
}


  keyport=0xbf;                               //掃描第二列
temp=keyport;
if(temp!=0xbf)
{delayms(10);
  temp=keyport;
   if(temp!=0xbf)
   while((keyport&0x0F)!=0x0F) ;   
switch(temp)
   {
    case 0xbe: key=8;break;
    case 0xbd: key=9;break;
    case 0xbb: key=10;break;
    case 0xb7: key=11;break;
    }
  return key;         //返回鍵值

  }


  keyport=0x7f;                                //掃描第三列
temp=keyport;
if(temp!=0x7f)
{delayms(10);
  temp=keyport;
   if(temp!=0x7f)
   while((keyport&0x0F)!=0x0F) ;
switch(temp)
   {
    case 0x7e: key=12;break;
    case 0x7d: key=13;break;
    case 0x7b: key=14;break;
    case 0x77: key=15;break;
    }
         return key;        //返回鍵值
}

  }

void main()
{
EA = 0;
while(1)
{
disport=dis[getkey()] ;
P2=0x04;
}
}

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线观看中文字幕 | 中文字幕亚洲一区二区三区 | 久久成人精品视频 | 日韩一区二区在线视频 | 国产一区二区精华 | 免费av直接看 | 久久久精品 | 91精品国产一区二区三区香蕉 | 一区二区三区在线观看视频 | 欧美午夜精品久久久久久浪潮 | 成人免费在线视频 | 看一级毛片 | 亚洲高清在线观看 | 极品国产视频 | 春色av| 在线高清免费观看视频 | av一二三区 | 欧美黄色网 | 日韩精品一区二区三区中文在线 | 福利影院在线看 | 日本视频一区二区三区 | 欧美亚洲国产一区二区三区 | 红色av社区 | 成人国产精品入口免费视频 | 一区二区三区在线看 | 欧美日日| 日韩精品在线免费观看 | 91影视 | 天天综合永久 | 成人午夜毛片 | 日本三级精品 | 色爱综合| 精品一区在线免费观看 | 亚洲一区二区免费视频 | 国产分类视频 | 久久久久国产精品一区二区 | 国产精品久久久久久久久久久久久久 | www久久久| 久久久网 | 亚洲精品视频播放 | 久久久国产精品一区 |