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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

撥號鍵盤程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:96742 發(fā)表于 2015-11-22 21:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>

#define uchar unsigned char

uchar a0=16,b0=16,c0=16,d0=16,e0=16,f0=16,wei,temp,key,i,j,k;
sbit dula=P2^6;
sbit wela=P2^7;
//sbit beep=P2^3;

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};

void delay(uchar i)
{
        for(j=i;j>0;j--)
        for(k=125;k>0;k--);
}
/*xianshihanshu*/
void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f)

{
dula=1;
        P0=table[a];
        dula=0;
        P0=0xff;//消影
        wela=1;
        P0=0xfe;
        wela=0;
delay(5);
    dula=1;
        P0=table[b];
        dula=0;
        P0=0xff;//送位選數(shù)據(jù)前關閉所有顯示,防止打開位選鎖存時原來段選數(shù)據(jù)通過位選鎖存器造成混亂
        wela=1;
        P0=0xfd;
        wela=0;
delay(5);
          dula=1;
        P0=table[c];
        dula=0;
        P0=0xff;//消影
        wela=1;
        P0=0xfb;
        wela=0;
delay(5);
    dula=1;
        P0=table[d];
        dula=0;
        P0=0xff;//送位選數(shù)據(jù)前關閉所有顯示,防止打開位選鎖存時原來段選數(shù)據(jù)通過位選鎖存器造成混亂
        wela=1;
        P0=0xf7;
        wela=0;
delay(5);
         dula=1;
        P0=table[e];
        dula=0;
        P0=0xff;//消影
        wela=1;
        P0=0xef;
        wela=0;
delay(5);
    dula=1;
        P0=table[f];
        dula=0;
        P0=0xff;//送位選數(shù)據(jù)前關閉所有顯示,防止打開位選鎖存時原來段選數(shù)據(jù)通過位選鎖存器造成混亂
        wela=1;
        P0=0xdf;
        wela=0;
delay(5);
       
}
/*鍵盤掃描函數(shù)*/
void keyscan()
{  
  {       
    P3=0xfe;  //第一行線置低電平
    temp=P3;//讀取p3口狀態(tài)值
    temp=temp&0xf0;        //第一行線是否有按鍵按下 (高4位)
    if(temp!=0xf0)        //有按鍵按下
    {
      delay(10);
  temp=P3;
    temp=temp&0xf0;
      if(temp!=0xf0)
      {       
        temp=P3; //重新讀一次狀態(tài)值

        switch(temp)
        {
          case 0xee:
               key=0;
                           wei++;
               break;

          case 0xde:
               key=1;
                           wei++;
               break;

          case 0xbe:
               key=2;
                           wei++;
               break;

          case 0x7e:
               key=3;
                           wei++;
               break;
         }
         while(temp!=0xf0)
        {
           temp=P3;
           temp=temp&0xf0;
          // beep=0;
         }
        // beep=1;
      }
    }
    P3=0xfd;
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
    {
      delay(10);
          temp=P3;
    temp=temp&0xf0;
      if(temp!=0xf0)
      {
        temp=P3;
        switch(temp)
        {
          case 0xed:
               key=4;
                           wei++;
               break;

          case 0xdd:
               key=5;
                           wei++;
               break;

          case 0xbd:
               key=6;
                           wei++;
               break;

          case 0x7d:
               key=7;
                           wei++;
               break;
         }
         while(temp!=0xf0)
         {
           temp=P3;
           temp=temp&0xf0;
          // beep=0;
         }
         //beep=1;
      }
      }
    P3=0xfb;
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
    {
      delay(10);
   temp=P3;
    temp=temp&0xf0;
      if(temp!=0xf0)
      {
        temp=P3;
        switch(temp)
        {
          case 0xeb:
               key=8;
                           wei++;
               break;

          case 0xdb:
               key=9;
                           wei++;
               break;
                          
          case 0xbb:
               key=10;
                           wei++;
               break;

          case 0x7b:
               key=11;
                           wei++;
               break;
         }
        while(temp!=0xf0)
         {
           temp=P3;
           temp=temp&0xf0;
         //  beep=0;
         }
        // beep=1;
      }
      }
              P3=0xf7;
    temp=P3;
    temp=temp&0xf0;
    if(temp!=0xf0)
    {
      delay(10);
    temp=P3;
    temp=temp&0xf0;
      if(temp!=0xf0)
      {
        temp=P3;
        switch(temp)
        {
          case 0xe7:
               key=12;
                           wei++;
               break;

          case 0xd7:
               key=13;
                           wei++;
               break;

          case 0xb7:
               key=14;
                           wei++;
               break;

          case 0x77:
               key=15;
                           wei++;
               break;
         }
         while(temp!=0xf0)
         {
           temp=P3;
           temp=temp&0xf0;
          // beep=0;
         }
       //  beep=1;
      }
    }
}
}
/*主函數(shù)*/

void main()
  {
          while(1)
        {
          keyscan();
        if(key!=20)
        {
        switch(wei)
                {
                        case 1: a0=key;
                                        b0=16;
                                        c0=16;
                                        d0=16;
                                        e0=16;
                                        f0=16;
                                        break;
                        case 2: b0=key;
                                        c0=16;
                                        d0=16;
                                        e0=16;
                                        f0=16;
                                        break;
                        case 3: c0=key;
                                        d0=16;
                                        e0=16;
                                        f0=16;
                                        break;
                        case 4: d0=key;
                                        e0=16;
                                        f0=16;
                                        break;
                        case 5: e0=key;
                                        f0=16;
                                        break;
                        case 6: f0=key;
                                        wei=0;
                                        break;
        }
        key=20;
        }
        display(a0,b0,c0,d0,e0,f0);
}
}
/*主函數(shù)*/
/*void main()
{ while(1)
{
keyscan();
if(key!=20)//
{
switch(wei)
{
case 1:a0=key;
b0=16;
c0=16;
d0=16;
  e0=16;
   f0=16;break;
case 2:b0=key;
c0=16;
d0=16;  
e0=16;
f0=16;break;
case 3:c0=key;
d0=16;  
e0=16;
f0=16;break;
  case 4:d0=key;
   e0=16;
   f0=16;break;
   case 5:e0=key;
   f0=16;
   break;
case 6:f0=key;
wei=0;
break;
}
key=20;        //
display(a0,b0,c0,d0,e0,f0);
}

}
} */

評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2015-11-22 22:26 | 只看該作者
很好 謝謝分享  能提供一下電路圖嗎?
回復

使用道具 舉報

板凳
ID:16003 發(fā)表于 2015-11-23 00:47 來自手機 | 只看該作者
非常好 謝謝分享 。
回復

使用道具 舉報

地板
ID:96742 發(fā)表于 2015-11-27 08:37 | 只看該作者
不知道怎樣把單片機原理圖發(fā)上去
回復

使用道具 舉報

5#
ID:96742 發(fā)表于 2015-11-27 08:37 | 只看該作者
admin 發(fā)表于 2015-11-22 22:26
很好 謝謝分享  能提供一下電路圖嗎?

不知道怎樣把單片機原理圖發(fā)上去
回復

使用道具 舉報

6#
ID:310212 發(fā)表于 2018-4-17 17:12 | 只看該作者
多謝,,,,,,
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国产乱码久久久久久闺蜜 | 在线视频国产一区 | 一区二区国产精品 | 美女天天操 | 日日夜夜天天 | 欧美专区在线 | 日韩在线不卡 | 日韩激情视频一区 | 久久免费精品视频 | 亚洲国产成人精品女人久久久 | 日韩欧美在线精品 | 本地毛片 | 91久久精品一区二区二区 | 男女午夜激情视频 | 国产成人在线视频免费观看 | 日韩在线91| 国产在线拍偷自揄拍视频 | 亚洲一区二区av | 精品亚洲一区二区三区 | 国产精品国产三级国产aⅴ中文 | 美女一区二区在线观看 | 精品视频免费 | 国产日韩一区二区三区 | 亚洲精品二三区 | 日韩精品一区二区三区 | 精品一区二区三区av | 91 在线| 91在线| 欧美一区免费在线观看 | 亚洲视频在线免费观看 | 精品欧美一区二区在线观看 | 91影院| 久久久综合久久 | 亚洲 欧美 日韩 在线 | 久久伊人久久 | 日本亚洲欧美 | 91av免费看| 午夜精品久久久久久久久久久久 | 亚洲一区视频在线播放 | 久久久99国产精品免费 | 成人免费观看网站 |