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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5245|回復: 6
收起左側

請問大佬為什么單片機程序按下按鍵后沒反應?

[復制鏈接]
ID:973287 發表于 2021-10-19 13:05 | 顯示全部樓層 |閱讀模式
#include<reg52.h>
unsigned int s[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6f};
unsigned int num=99;

void delay(unsigned int n)
{
  unsigned char i=0,j=0;
  for (i=0;i<n;i++)
  {
   for (j=0;j<120;j++);
  }
}

void key_scan()
{
unsigned char temp0=0,temp1=0,temp=0;
  P1=0xf0;
  if(P1!=0xf0)
  {
   delay(20);
   temp0=P1;
   P1=0x0f;
   if(P1!=0x0f)
   {
         delay(20);
     temp1=P1;
   }
  }
   temp=temp0+temp1;
   if(temp==0xee)
   {
    num=0;
   }
   if(temp==0xed)
   {
    num=1;
   }
}

void display()
{
P2=s[num];
}
void main()
{
        while(1)
        {
          key_scan();
          display();
        }
}
51hei截圖_20211019130322.png

回復

使用道具 舉報

ID:332444 發表于 2021-10-19 14:53 | 顯示全部樓層
有數碼管的電路是最好調試,把P2=s[num];放到需要觀察的地方跟蹤查看變量的值,確定程序是否存在問題.如把P2=s[num];放到按鍵函數中去跟蹤按鍵代碼是否正常.
回復

使用道具 舉報

ID:973287 發表于 2021-10-19 15:43 | 顯示全部樓層
xianfajushi 發表于 2021-10-19 14:53
有數碼管的電路是最好調試,把P2=s[num];放到需要觀察的地方跟蹤查看變量的值,確定程序是否存在問題.如把P2= ...

好的謝謝大佬提醒,不過我現在還不太清楚怎么調試,能稍微幫我看一下代碼有什么問題嗎,十分感謝
回復

使用道具 舉報

ID:213173 發表于 2021-10-19 15:55 | 顯示全部樓層
改了,你試試。
  1. #include<reg52.h>
  2. unsigned char s[]={
  3.                 0x3f,0x06,0x5b,0x4f,
  4.                 0x66,0x6d,0x7d,0x07,
  5.                 0x7f,0x6f,0x77,0x7c,
  6.                 0x39,0x5e,0x79,0x71,0x40};
  7. unsigned char num=16;

  8. void delay(unsigned int n)
  9. {
  10.         unsigned int i=0,j=0;
  11.         for (i=0;i<n;i++)
  12.         {
  13.                 for (j=0;j<120;j++);
  14.         }
  15. }

  16. void display()
  17. {
  18.         P2=s[num];
  19. }

  20. void key_scan()
  21. {
  22.         P1=0xf0;
  23.         if(P1!=0xf0)
  24.         {
  25.                 delay(20);
  26.                 if(P1!=0xf0)
  27.                 {
  28.                         num=P1;
  29.                         num|=0x0f;
  30.                         P1=num;
  31.                         switch(P1)
  32.                         {
  33.                                 case 0xee: num= 0; break;
  34.                                 case 0xde: num= 1; break;
  35.                                 case 0xbe: num= 2; break;
  36.                                 case 0x7e: num= 3; break;
  37.                                 case 0xed: num= 4; break;
  38.                                 case 0xdd: num= 5; break;
  39.                                 case 0xbd: num= 6; break;
  40.                                 case 0x7d: num= 7; break;
  41.                                 case 0xeb: num= 8; break;
  42.                                 case 0xdb: num= 9; break;
  43.                                 case 0xbb: num=10; break;
  44.                                 case 0x7b: num=11; break;
  45.                                 case 0xe7: num=12; break;
  46.                                 case 0xd7: num=13; break;
  47.                                 case 0xb7: num=14; break;
  48.                                 case 0x77: num=15; break;
  49.                         }
  50.                         display();
  51.                         P1=0xff;
  52.                         while(P1!=0xff);
  53.                 }
  54.         }
  55. }

  56. void main()
  57. {
  58.         display();
  59.         while(1)
  60.         {
  61.                 key_scan();
  62.         }
  63. }
復制代碼
回復

使用道具 舉報

ID:161164 發表于 2021-10-19 17:47 | 顯示全部樓層
因為某些版本的proteus中的AT89C52
IO腳不足以拉低另一邊的電平
反而被拉高
你可以運行以下代碼時按鍵看看
void main()
{
while(1)
{
P1 = 0x0F;
delay(1000);
P1 = 0xF0;
delay(1000);
}
}
回復

使用道具 舉報

ID:332444 發表于 2021-10-19 20:26 | 顯示全部樓層
矩陣按鍵代碼到我博客去找https://blog.csdn.net/xianfajushi
回復

使用道具 舉報

ID:973287 發表于 2021-10-19 22:05 | 顯示全部樓層
wulin 發表于 2021-10-19 15:55
改了,你試試。

十分感謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品99 | 国产精品久久久久久久久久久久 | 欧美视频在线免费 | 一区二区精品 | 国产精品一区二区在线播放 | 久久久精品网站 | 欧美日韩视频 | 亚洲视频在线一区 | 国产成人精品一区二区三区 | 久久精品视频在线观看 | 国产在线观 | 久久久久久看片 | 在线观看国产h | 亚州视频在线 | 国产片侵犯亲女视频播放 | 伊人最新网址 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 国产在线精品一区二区三区 | 欧美a在线 | 福利色导航 | 久久精片 | 成人做爰www免费看视频网站 | 国产一二三视频在线观看 | 久久久久一区二区三区 | 日本欧美在线 | 看羞羞视频免费 | 日韩在线免费 | 精品日韩一区 | 欧美不卡 | 久久夜视频 | 国产在线精品一区二区 | 久久久久国产一区二区三区四区 | 成人黄色在线观看 | 久久人体 | 国产a级毛毛片 | 国产亚洲精品精品国产亚洲综合 | 性高湖久久久久久久久3小时 | 欧美天堂 | 成人免费观看视频 | 欧美一区二区在线视频 | 免费精品 |