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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

矩陣鍵盤控制流水燈(stc89c52rc單片機)

[復制鏈接]
跳轉到指定樓層
樓主
ID:390950 發表于 2018-8-28 20:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
鍵盤控制流水燈.rar (25.65 KB, 下載次數: 38)


剛開始學單片機,寫了個小程序。用p0操作流水燈,用p2讀取鍵盤還不太熟悉,如有謬誤麻煩指正,跟我一樣的新手可以參考一下
  1. #include <reg52.h>

  2. /*
  3.         R1C1\C2\C3\C4==>LED1\2\3\4
  4.         R2C1\C2\C3\C4==>LED5\6\7\8
  5.         P2==>鍵盤
  6.         P0==>流水燈
  7. */

  8. //functions
  9. void delayms(unsigned int);
  10. int keyScan();


  11. //VARIABLES        
  12. int a,keyNum;
  13. unsigned char num=0;
  14. unsigned char led;
  15. unsigned char lightUp[]={
  16.         0xfe,0xfd,0xfb,0xf7,
  17.         0xef,0xdf,0xbf,0x7f};

  18. void main()
  19. {
  20.                
  21.         
  22.         led=0xff;        
  23.         while(1) {
  24.                 //light up led
  25.                 P0=led;
  26.                 P2=0xfe;   //row1
  27.                 keyNum=keyScan();
  28.                 if(keyNum==0){
  29.                         P2=0xfd;   //row2
  30.                         keyNum=keyScan();
  31.                         if(keyNum==0){
  32.                                 P2=0xfb;   //row3
  33.                                 keyNum=keyScan();
  34.                                 if(keyNum==0){
  35.                                         P2=0xf7;   //row4
  36.                                         keyNum=keyScan();
  37.                                 }
  38.                         }
  39.                 }
  40.                
  41.                 if((keyNum<=7)&&(keyNum>0)){
  42.                         led=lightUp[keyNum-1];        
  43.                         //delayms(100);
  44.                 }
  45.                
  46.         }
  47.                
  48.         
  49. }
  50. void delayms(unsigned int xms)
  51. {
  52.         unsigned int i,j;
  53.         for(i=0;i<xms;i++)
  54.         {
  55.                 for(j=0;j<110;j++);
  56.         }
  57. }


  58. int keyScan(){
  59.         int key=0;
  60.         unsigned char temp;
  61.         temp=P2&0xf0;
  62.         if(temp!=0xf0){
  63.                 delayms(10);
  64.                 temp=P2&0xf0;
  65.                 if(temp!=0xf0){
  66.                         temp=P2;
  67.                         //LED=0;   //LIT LED
  68.                         switch(temp){
  69.                                 case 0xee:          //search low level column in row1
  70.                                         key=1;
  71.                                         break;
  72.                                 case 0xde:
  73.                                         key=2;
  74.                                         break;
  75.                                 case 0xbe:
  76.                                         key=3;
  77.                                         break;
  78.                                 case 0x7e:
  79.                                         key=4;
  80.                                         break;
  81.                                 case 0xed:          //row2
  82.                                         key=5;
  83.                                         break;
  84.                                 case 0xdd:
  85.                                         key=6;
  86.                                         break;
  87.                                 case 0xbd:
  88.                                         key=7;
  89.                                         break;
  90.                                 case 0x7d:
  91.                                         key=8;
  92.                                         break;
  93.                                 case 0xeb:          //row3
  94.                                         key=9;
  95.                                         break;
  96.                                 case 0xdb:
  97.                                         key=10;
  98.                                         break;
  99.                                 case 0xbb:
  100.                                         key=11;
  101.                                         break;
  102.                                 case 0x7b:
  103.                                         key=12;
  104.                                         break;
  105.                                 case 0xe7:          //row4
  106.                                         key=13;
  107.                                         break;
  108.                                 case 0xd7:
  109.                                         key=14;
  110.                                         break;
  111.                                 case 0xb7:
  112.                                         key=15;
  113.                                         break;
  114.                                 case 0x77:
  115.                                         key=16;
  116.                                         break;
  117.                         }
  118.                 }
  119.                 while(temp!=0xf0){          //wait till release
  120.                         temp=P2;
  121.                         temp=temp&0xf0;
  122.                 }
  123.         }
  124.         return key;
  125. }
復制代碼




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

使用道具 舉報

沙發
ID:884237 發表于 2021-2-16 11:24 | 只看該作者
你好,keyNum的判斷是根據什么的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 夜夜爽99久久国产综合精品女不卡 | 精品自拍视频在线观看 | 国产久视频| 成人免费影院 | 国产精品久久久久久久久久久久 | 欧美日韩久久 | 国产成人综合网 | 久草在线在线精品观看 | 欧美日韩在线一区二区三区 | 91精品国产91久久久久久 | 亚洲精品久久久久久宅男 | 乱一性一乱一交一视频a∨ 色爱av | 国产91久久久久久 | a在线免费观看 | 超碰在线97国产 | 日日做夜夜爽毛片麻豆 | 成人免费视频网站在线看 | 在线欧美一区 | 久久精品黄色 | 91精品国产777在线观看 | 国产成人一区二区三区电影 | 欧美一级免费片 | 夜夜精品视频 | 国产一区二区欧美 | 国产精品久久久久久久久免费樱桃 | 国产一区二区三区高清 | 日韩在线精品强乱中文字幕 | 国产视频一区在线 | 亚洲欧美日韩精品 | 午夜欧美一区二区三区在线播放 | 网络毛片 | 久久黄网 | 欧美二区三区 | 国产精品久久久久久久久婷婷 | 秋霞av国产精品一区 | 五月激情综合 | 一区二区三区日 | 国产一区三区视频 | 亚洲精品视频导航 | 久久久久亚洲精品 | 精品91久久 |