找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求各位幫我看一下我的程序哪里錯了,本程序的功能是4*4獨立按鍵的第一行4個按鍵

[復制鏈接]
跳轉到指定樓層
樓主
ID:322405 發(fā)表于 2018-5-26 18:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求各位幫我看一下我的程序哪里錯了,本程序的功能是4*4獨立按鍵的第一行4個按鍵,控制數(shù)碼管宣示0,1,2,3
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit dula=P2^6;
  5. sbit wela=P2^7;


  6. uchar num,temp;
  7. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  8.                         0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  9. void delay (uint z)
  10. {
  11.         uint x,y;
  12.         for(x=z;x>0;x--)
  13.                 for(y=110;y>0;y--);
  14. }

  15. void main()
  16. {
  17.         wela=1;
  18.         P0=0xc0;
  19.         wela=0;
  20.         dula=1;
  21.         P0=0;
  22.         dula=0;
  23.         while(1)
  24.         {
  25.                 P3=0xfe;
  26.                 temp=P3;
  27.                 temp=temp&0xf0;
  28.                 while(temp!=0xf0)
  29.                 {
  30.                         delay(5);
  31.                         temp=P3;
  32.                         temp=temp&0xf0;
  33.                         while(temp!=0xf0)
  34.                         {
  35.                                 temp=P3;
  36.                                 switch(temp)
  37.                                 {
  38.                                         case 0xee:      
  39.                                                                 num=1;
  40.                                         break;
  41.                                         case 0xde:
  42.                                                                 num=2;
  43.                                         break;
  44.                                         case 0xbe:
  45.                                                         num=3;
  46.                                         break;
  47.                                         case 0x7e:
  48.                                                         num=4;
  49.                                         break;
  50.                                 }
  51.                                 dula=1;
  52.                                 P0=table[num-1];
  53.                                 dula=0;      

  54.                        
  55.                         }
  56.                 }
  57.                
  58.         }

  59. }
復制代碼

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

使用道具 舉報

沙發(fā)
ID:319344 發(fā)表于 2018-5-26 19:51 | 只看該作者
寫得有些啰嗦了,把29,30,31相關的去掉,把延時改成10~15us,應該就沒問題了,再有問題你就找一個例程看看人家怎么寫的,還有,4*4的按鍵就不要叫獨立按鍵了,叫矩陣鍵盤

評分

參與人數(shù) 1黑幣 +2 收起 理由
1直到世界盡頭 + 2 贊一個!

查看全部評分

回復

使用道具 舉報

板凳
ID:331575 發(fā)表于 2018-5-26 20:41 | 只看該作者
你將while(1)里面的語句中的while換成if  試一試
回復

使用道具 舉報

地板
ID:331575 發(fā)表于 2018-5-26 20:47 | 只看該作者
你的P3管腳都接的是什么?
回復

使用道具 舉報

5#
ID:322405 發(fā)表于 2018-5-26 22:08 | 只看該作者
15942379927 發(fā)表于 2018-5-26 20:47
你的P3管腳都接的是什么?

矩陣按鍵的接口
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表