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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機矩陣鍵盤輸入并顯示 仿真電路加c51程序

[復制鏈接]
跳轉到指定樓層
樓主


仿真電路加 c程序下載: 矩陣鍵盤.zip (26.45 KB, 下載次數: 21)

源程序代碼預覽:
  1. #include<reg52.h>
  2. typedef unsigned char u8;
  3. typedef unsigned int  u16;
  4. sbit seg_sel=P1^4;
  5. sbit bit_sel=P1^5;
  6. #define DATA P0
  7. u8 seg_tab[]={
  8.       0xc0,0xf9,0xa4,0xb0,
  9.       0x99,0x92,0x82,0xf8,
  10.       0x80,0x90,0x88,0x83,
  11.       0xc6,0xa1,0x86,0x8e,

  12. };
  13. u8 bit_tab[]={
  14.        0x80,0x40,0x20,0x10,
  15.        0x08,0x04,0x02,0x01,
  16. };
  17. void delay(unsigned int num)
  18. {
  19.   unsigned int x,y;
  20.   for(x=num;x>0;x--)
  21.   for(y=110;y>0;y--);//延時1ms
  22. }
  23. void display_led(u8 which_bit,u8 which_numbe)
  24. {
  25.    bit_sel=1;//D[7-0]=Q[7-0]P1^4片選信號鎖存器1
  26.      DATA=bit_tab[which_bit];//DATA=P0輸出which_bit8位
  27.      bit_sel=0;//BIT[7-0]=0x80
  28.      delay(1);
  29.     seg_sel=1;//P1^5片選信號鎖存器2啟動
  30.      DATA=seg_tab[which_numbe];//P0口輸出which_numbe8位
  31.     seg_sel=0;
  32.      delay(1);
  33. }

  34. u8 _key_scan (void)//按鍵識別函數
  35. {
  36.   u8 temp,temp2;
  37.   P2=0xf0;//讓P2輸出0xf0
  38.   temp=P2;//讀入P2的值
  39.   if(temp!=0xf0)//當P2不等于0xf0
  40.   {
  41.     delay(5);//延遲5ms
  42.     temp=P2;//在讀入P2值
  43.     if(temp!=0xf0)//如果P2不等于0xf0
  44.      {            //說明有按鍵按下
  45.       temp2=temp&0xf0;//取出P2口高4位
  46.       P2=0x0f;//在P2=0x0f
  47.       delay(1);
  48.       temp=P2;//讀入P2口值
  49.       temp2=temp2|temp;//保留低4位并
  50.        return temp2;
  51.       }//while(P2!=0xf0);//等待 //并與取出的高4位與
  52.    }
  53. }



  54. u8 encolde(u8 cod)//解碼函數
  55. {
  56.     u8 num;
  57.    switch(cod)
  58.    {
  59.      case 0xee:num=0;break;//11101110
  60.      case 0xde:num=1;break;//11011110
  61.      case 0xbe:num=2;break;//10111110
  62.      case 0x7e:num=3;break;//01111110
  63.     // case 0xed: num=4; break;//11101101
  64.      case 0xed:num=4;break;
  65.      case 0xdd:num=5;break;//11011101
  66.      case 0xbd:num=6;break;//10111101
  67.      case 0x7d:num=7;break;//01111101
  68.      case 0xeb:num=8;break;//11101011
  69.      case 0xdb:num=9;break;//11011011
  70.      case 0xbb:num=10;break;//10111011
  71.      case 0x7b: num = 11; break;//01111011
  72.      case 0xe7: num = 12; break;//11100111
  73.      case 0xd7:num=13;break;//11010111
  74.      case 0xb7:num=14;break;//10110111
  75.      case 0x77:num=15;break;//01110111
  76.     default : break;//無影響
  77.     }
  78.      return num;
  79. }

  80. void main (void)
  81. {
  82.   u8 cod, num;
  83.    P0=0xff;
  84.    P1=0xff;//初始化P1;P2
  85.    seg_sel=0;//IE禁止 鎖存
  86.    bit_sel=0;
  87.    while(1)
  88.     {
  89.       cod=_key_scan();
  90.       num=encolde(cod);
  91.      display_led(1,num);
  92.       }
  93. }
復制代碼


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产区第一页 | 亚洲精品自拍视频 | 国产精品99久久久久久久久久久久 | 亚洲欧美日韩国产综合 | 一区二区高清 | 亚洲区一 | 国产精品亚洲第一区在线暖暖韩国 | 精品无码久久久久久国产 | 久久一区二区三区四区五区 | 97视频成人 | 国产精品a久久久久 | 日日日干干干 | 精品亚洲一区二区 | 国产国产精品 | 精品久久影院 | 日本一区二区不卡视频 | 精品福利av导航 | 午夜精品久久久久久久久久久久久 | 欧美三区在线观看 | 日本不卡一区 | 亚洲成人一区二区 | 天堂av影院| 日本精品视频在线观看 | 色又黄又爽网站www久久 | 波多野吉衣在线播放 | 高清视频一区二区三区 | 国产激情片在线观看 | 日韩毛片网| 91大神在线看 | 国产综合视频 | 久久精品二区亚洲w码 | 亚洲国产精品99久久久久久久久 | 四虎最新 | 亚洲日日夜夜 | 日韩美女一区二区三区在线观看 | 久久精品 | 久久99国产精品 | 久久久久精 | 免费小视频在线观看 | 国产精品久久久久久久久图文区 | 一区二区三区免费观看 |