找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請教:為什么P3^2不起作用

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:65232 發(fā)表于 2015-8-6 16:37 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
本帖最后由 用戶 于 2015-8-6 16:41 編輯

#include "reg52.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit wei=P2^7;
sbit duan=P2^6;
sbit key=P3^2;
uchar bb,aa;
uchar code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
       0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar code table2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void delay(uint ms)
{
uint a,b;
for(a=ms;a>0;a--)
  for(b=110;b>0;b--);
}
void main()
{
uint aa,bb,num;
wei=1;
P0=0xfe;
wei=0;
while(1)
{
  aa=0xff;
  P3=aa;
  if(P3!=0xff)
  {
   delay(10);
   if(P3!=0xff)
   {
   bb=P3;
     
   switch(bb)
    {
    case 0x7f:num++;if(num==10) num=0;break;
    case 0xbf:num--;if(num==-1) num=9;break;
    case 0xef:num=0;break;
    case 0xfd:num=9;break;
    //default:num=0;break;
   
    }
   while(P3!=0xff);
   }
   delay(10);
   while(P3!=0xff);
  }

  duan=1;
  P0=table1[num];
  duan=0;
  if(key==0)    //用這兩句可以識別
   num=9;       //用switch不行
}
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:79908 發(fā)表于 2015-8-7 07:25 | 只看該作者
不應(yīng)該!找到問題了分享一下,很想知道原因!
回復(fù)

使用道具 舉報(bào)

板凳
ID:65232 發(fā)表于 2015-8-8 23:03 | 只看該作者
謝謝回復(fù),您的開發(fā)板用上面的程序不會那樣吧。當(dāng)然是要么注釋掉前面的,要么注釋掉后面的,只用其一,switch不行,IF可以。

51HEI板上的4*4鍵盤還有一列不起作用,是以0XF0方式識別的,現(xiàn)在想想P3^1是不是也有問題。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表