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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8056|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

數(shù)碼管顯示4×4鍵盤矩陣按鍵 proteus仿真和單片機代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:204443 發(fā)表于 2017-5-31 13:11 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機代碼:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define SCANPORT P1
  5. sbit spk=P3^0;
  6. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
  7.                                          0x6d,0x7d,0x07,0x7f,0x6f,
  8.                                          0x77,0x7c,0x39,0x5e,0x79,
  9.                                          0x71};
  10. uchar uca_LineScan[4]={0xEF,0xDF,0xBF,0x7F};
  11. uchar ucKeyScan()
  12. {
  13.         uchar Temp=0;                                 
  14.         uchar ucRow=0,ucLine=0;            

  15.         for(ucLine=0;ucLine<4;ucLine++)        
  16.                 {
  17.                         SCANPORT=uca_LineScan[ucLine];                           
  18.                         Temp=SCANPORT & 0x0F;                                         
  19.                         if(Temp!=0x0F)                 
  20.                                 {                                                                        
  21.                                 switch(Temp)
  22.                                         {
  23.                                         case 0x0E: ucRow=10;break;                 
  24.                                         case 0x0D: ucRow=20;break;
  25.                                         case 0x0B: ucRow=30;break;
  26.                                         case 0x07: ucRow=40;break;
  27.                                         default:   ucRow=50;break;
  28.                                         }
  29.                                 break;
  30.                                 }
  31.                 }

  32.         SCANPORT=0x0F;                                          
  33.         return ucRow+ucLine+1;                        
  34. }
  35. void vKeyProcess(unsigned char ucKeyCode)
  36. {
  37.                
  38.         switch(ucKeyCode)
  39.                 {
  40.                 case 11:P0=table[0];spk=1;break;                                                          //'7'
  41.                 case 12:P0=table[1];spk=1;break;                                                          //'8'
  42.                 case 13:P0=table[2];spk=1;break;
  43.                 case 14:P0=table[3];spk=1;break;
  44.                                                          
  45.                 case 21:P0=table[4];spk=1;break;                                                          //'4'
  46.                 case 22:P0=table[5];spk=1;break;                                                          //'5'
  47.                 case 23:P0=table[6];spk=1;break;
  48.                 case 24:P0=table[7];spk=1;break;
  49.                                                   
  50.                 case 31:P0=table[8];spk=1;break;                                                          //'1'
  51.                 case 32:P0=table[9];spk=1;break;                                                          //'2'
  52.                 case 33:P0=table[10];spk=1;break;
  53.                 case 34:P0=table[11];spk=1;break;

  54.                 case 41:P0=table[12];spk=1;break;                                  //'3'
  55.                 case 42:P0=table[13];spk=1;break;
  56.                 case 43:P0=table[14];spk=1;break;                                                  //'0'
  57.                 case 44:P0=table[15];spk=1;break;                                                          //'+'

  58.                 default:break;
  59.                 }
  60. }
  61. void main()
  62. {
  63.         spk=0;
  64.         P0=0;
  65.         
  66.         while(1)
  67.         {
  68.                 vKeyProcess(ucKeyScan());
  69.                 spk=0;
  70.         }
  71. }
復(fù)制代碼
全部資料下載地址:
數(shù)碼管顯示4×4鍵盤矩陣按鍵.rar (57.22 KB, 下載次數(shù): 64)


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

使用道具 舉報

沙發(fā)
ID:161933 發(fā)表于 2017-5-31 21:49 | 只看該作者
數(shù)碼管顯示4×4鍵盤矩陣按鍵 proteus仿真和單片機代碼
回復(fù)

使用道具 舉報

板凳
ID:304347 發(fā)表于 2018-4-9 12:40 | 只看該作者
為啥運行不出來?proteus圖有問題么
回復(fù)

使用道具 舉報

地板
ID:332431 發(fā)表于 2018-5-17 20:56 | 只看該作者
這個proteus是不是不完全
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产四区 | 91麻豆久久久 | 欧美日韩中文字幕在线 | 中文字幕不卡一区 | 99久久免费观看 | 国产一级在线 | 国产精品国产三级国产aⅴ原创 | 伊人一区 | 国产欧美精品一区二区色综合朱莉 | 国产91中文 | 日韩在线中文字幕 | 成人一区av偷拍 | 国精产品一区二区三区 | 日韩欧美亚洲一区 | 欧美黄色片 | 一级国产精品一级国产精品片 | 亚洲精品欧美 | 久久国产精品视频免费看 | 国产一区二区免费电影 | 亚洲成av人影片在线观看 | 久久69精品久久久久久久电影好 | 国产视频一区二区 | 男女污网站 | 日韩欧美在 | 欧美色综合一区二区三区 | 伊人艹 | 四虎影院在线播放 | 亚洲一区 中文字幕 | 久久99久久99精品免视看婷婷 | 日韩av一区二区在线观看 | 欧美另类视频在线 | 国产一区三区视频 | 欧美极品在线 | 日本网站免费在线观看 | 九九亚洲| 亚洲免费在线视频 | 久久综合影院 | 国产精品福利久久久 | av中文字幕网站 | 求毛片| 99热首页 |