欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 鍵盤掃描程序用P3口有問題,P3口有什么不同么? [打印本頁]

作者: 我很丑    時間: 2013-11-29 00:32
標題: 鍵盤掃描程序用P3口有問題,P3口有什么不同么?
本帖最后由 我很丑 于 2013-11-29 02:17 編輯

下面是4x4鍵盤掃描程序,按一個鍵后用一個共陽數碼管顯示一個值,用P1口接鍵盤正常顯示,程序和接口都改到P3后只有第一行正常顯示,按其它行都不變,這個是什么原因?
如果把P3作為顯示輸出,就是把下面程序中的P2都改成P3也是顯示不正常.


#include<reg52.h>
unsigned char code duanma[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//共陽數碼管顯示0123456789abcdef
void delay(unsigned int t)    //延時函數 晶振12M時約1m秒
{
unsigned int j;
for(;t>0;t--)
for(j=0;j<124;j++);
}

void main(void)
{
unsigned char key;
while(1)
{
  P1=0xf0;         //11110000
  if(P1!=0xf0)     //是否有鍵按下
  {
   delay(50);     //去抖
   if(P1!=0xf0)   
   {
    key=P1&0xf0;
    P1=key|0x0f;
   }
  }
  
  switch(P1)
  {
   case 0xee:P2=duanma[3];break;
   case 0xde:P2=duanma[2];break;
   case 0xbe:P2=duanma[1];break;
   case 0x7e:P2=duanma[0];break;
   case 0xed:P2=duanma[7];break;
   case 0xdd:P2=duanma[6];break;
   case 0xbd:P2=duanma[5];break;
   case 0x7d:P2=duanma[4];break;
   case 0xeb:P2=duanma[11];break;
   case 0xdb:P2=duanma[10];break;
   case 0xbb:P2=duanma[9];break;
   case 0x7b:P2=duanma[8];break;
   case 0xe7:P2=duanma[15];break;
   case 0xd7:P2=duanma[14];break;
   case 0xb7:P2=duanma[13];break;
   case 0x77:P2=duanma[12];break;
  }
}
}

作者: admin    時間: 2013-11-29 13:57
p3的第2功能沒有使用吧
作者: 我很丑    時間: 2013-11-29 15:09
沒有使用,只是作為IO口用.
作者: 我很丑    時間: 2013-11-29 15:30
我用的是89C52換過89C54也是一樣的現象,是不是這個P3口用于IO作用還應該加什么命令啊?
作者: 我很丑    時間: 2013-11-29 18:55
{:soso_e127:}找到毛病了,應該是開發板上面電路的問題,單獨用面包板搭電路就好了.
作者: 我很丑    時間: 2013-11-29 19:30
本帖最后由 我很丑 于 2013-11-29 19:32 編輯

找到毛病了,開發板線路的問題,斷開板上的RXD就好了.

作者: admin    時間: 2013-11-30 19:33
小問題




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1