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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

使用單片機矩陣按鍵控制LED,請問為什么按下按鍵沒有反應。不知道哪里出問題了 附程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:1013505 發表于 2022-3-27 18:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include<reg51.h>


  2. sfr AUXR=0X8E;
  3. sfr P4=0xc0;
  4. sbit p44=P4^4;
  5. sbit p42=P4^2;
  6. sbit p34=P3^4;
  7. sbit p35=P3^5;
  8. void key_proc();

  9. unsigned char key_dly,key_old;


  10. unsigned char read_key()
  11. {        unsigned char key_val;
  12.         unsigned int key_new;
  13.         p44=0;p42=p34=p35=1;
  14.         key_new=P3;
  15.         p44=1;p42=0;
  16.         key_new=(key_new<<4)|(P3&0x0f);
  17.                 key_new=P3;
  18.         p42=1;p35=0;
  19.                 key_new=(key_new<<4)|(P3&0x0f);
  20.                
  21.         p35=1;p34=0;
  22.         key_new=(key_new<<4)|(P3&0x0f);

  23.         switch(~key_new)
  24.         {
  25.         case 0x8000:
  26.         key_val=4;
  27.         break;
  28.                 case 0x4000:
  29.         key_val=5;
  30.         break;        
  31.         case 0x2000:
  32.         key_val=6;
  33.         break;
  34.         case 0x1000:
  35.         key_val=7;
  36.         break;  
  37. default:key_val=0;
  38.         }
  39.         
  40.         return key_val;

  41. }

  42. void Timer0Init(void)                //1u秒@11.0592MHz
  43. {
  44.         AUXR |= 0x80;                //定時器時鐘1T模式
  45.         TMOD &= 0xF0;                //設置定時器模式
  46.         TL0 = 0xF5;                //設置定時初值
  47.         TH0 = 0xFF;        //設置定時初值
  48.         TF0 = 0;                //清除TF0標志
  49.         TR0 = 1;
  50.         EA=1;ET0=1;                //定時器0開始計時
  51. }

  52. void Timer0() interrupt 1
  53. {

  54. if(++key_dly==10)
  55. {
  56. key_dly=0;

  57. }

  58. }

  59. void main()
  60. {        Timer0Init();
  61.         while(1)
  62.         {

  63.         key_proc();
  64.         }
  65. }

  66. void key_proc()
  67. {


  68.         unsigned char key_down,key_v;
  69.                 if(key_dly) return;
  70.                 key_dly=1;
  71.         key_v= read_key();                           
  72.         key_down=key_v&(key_old^key_v);
  73.         key_old=key_v;
  74.         switch(key_down)
  75.         {
  76.         case 4:
  77.         P2=(P2&0X1F)|0X80;
  78.         P0=0XFE;
  79.         P2=P2&0X1F;
  80.         break;
  81.                 case 5:
  82.         P2=(P2&0X1F)|0X80;
  83.         P0=0XFd;
  84.         P2=P2&0X1F;
  85.         break;        case 6:
  86.         P2=(P2&0X1F)|0X80;
  87.         P0=0XFb;
  88.         P2=P2&0X1F;
  89.         break;
  90.                 case 7:
  91.         P2=(P2&0X1F)|0X80;
  92.         P0=0Xf7;
  93.         P2=P2&0X1F;
  94.         break;

  95.         }
  96. }

復制代碼


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

使用道具 舉報

沙發
ID:844772 發表于 2022-3-27 20:44 | 只看該作者
TMOD &= 0xF0; 這句不對,你用的T0啊,而且又不是自動重裝模式,怎么中斷中不重裝計數器。
回復

使用道具 舉報

板凳
ID:1013505 發表于 2022-3-27 20:47 | 只看該作者
glinfei 發表于 2022-3-27 20:44
TMOD &= 0xF0; 這句不對,你用的T0啊,而且又不是自動重裝模式,怎么中斷中不重裝計數器。

這個單片機是16位自動重裝模式IAP15
回復

使用道具 舉報

地板
ID:161164 發表于 2022-3-27 22:40 | 只看該作者
glinfei 發表于 2022-3-27 20:44
TMOD &= 0xF0; 這句不對,你用的T0啊,而且又不是自動重裝模式,怎么中斷中不重裝計數器。

可能是用STC15系或更新的單片機
Mode0是16位自動重裝
回復

使用道具 舉報

5#
ID:1013505 發表于 2022-3-27 22:42 | 只看該作者
lkc8210 發表于 2022-3-27 22:40
可能是用STC15系或更新的單片機
Mode0是16位自動重裝

嗯,是自動重裝的
回復

使用道具 舉報

6#
ID:161164 發表于 2022-3-28 09:58 | 只看該作者
什么叫沒反應?
沒有接線圖,問題描述又不清楚
很難找到問題
回復

使用道具 舉報

7#
ID:123289 發表于 2022-3-28 10:59 | 只看該作者
要學會如何調試程序。
走單步,走一步,想一想與目的符不符。
回復

使用道具 舉報

8#
ID:121859 發表于 2022-3-28 14:40 | 只看該作者
看的云里霧里的,這個是啥矩陣?P3口的4*4?P44,P42等干啥的,不清楚。還沒有見到過這樣寫矩陣鍵盤程序的。
回復

使用道具 舉報

9#
ID:1013505 發表于 2022-3-28 19:16 | 只看該作者
lkc8210 發表于 2022-3-28 09:58
什么叫沒反應?
沒有接線圖,問題描述又不清楚
很難找到問題

第一次發帖,經驗不足,下次注意。已經找到原因,LED燈代碼有問題,謝謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91国内产香蕉 | 综合久久av | 亚洲福利 | 亚洲一区中文字幕在线观看 | 国产日韩一区二区 | 91人人视频在线观看 | 亚洲综合视频 | 国产精品一区二区在线 | 国产99热精品 | 国产精品视频不卡 | av先锋资源| 一区二区三区中文字幕 | 亚洲成人网在线观看 | 国产福利免费视频 | 在线欧美小视频 | 一级a性色生活片久久毛片波多野 | 99re6在线视频精品免费 | 在线视频国产一区 | 国产日韩欧美电影 | 免费观看黄a一级视频 | 国产美女在线精品免费 | 黄色网页在线观看 | 久久久久国产精品 | 色婷婷激情 | 午夜欧美一区二区三区在线播放 | 日韩久久久久 | 香蕉一区二区 | 久久精品小视频 | 色资源在线观看 | 亚洲视频一区在线观看 | 欧美亚洲激情 | 一区二区免费视频 | 超碰91在线| 国产激情精品视频 | 成人h动漫亚洲一区二区 | 国产一区二区三区www | 精品国产一区二区三区av片 | 成人美女免费网站视频 | 亚洲国产日本 | 二区视频 | 99精品欧美一区二区蜜桃免费 |