找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)跑馬燈問題,端口直接賦值和變量賦值的區(qū)別

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:308903 發(fā)表于 2018-8-24 16:17 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
先總結(jié)說明下:

第一個(gè)程序,來著開發(fā)板自帶程序,可以正常左右循環(huán);第二個(gè)程序 只是取消了 uchar LED 這個(gè)變量,直接賦值P2 端口,就不行了!

不知道為什么?    求指點(diǎn)下, 是不是哪個(gè)概念沒理解清楚?


這個(gè)程序是正常運(yùn)行的,來著普中開發(fā)板

#include <reg52.h>
void delay(unsigned int i);  
char LED;


main()
{
  unsigned char i;

  while (1)
  {         LED = 0xfe;
           
           for (i = 0 ;i < 8 ; i++)
          {
           P2  = LED;
           delay(500);
           LED = LED << 1;            
           LED = LED | 0x01;        
           if (LED == 0x7f)         break;        
           }
        
           for (i = 0 ;i < 8 ; i++)
           {
                 
                  P2  = LED;
                  delay(500);
                  LED = LED >> 1;        
                  LED = LED | 0x80;        
           
           }

   }

}


/******延時(shí)*************/
void delay(unsigned int i)
{
    unsigned char j;
    for(i; i > 0; i--)
        for(j = 255; j > 0; j--);

}


下面這個(gè)程序,就只能跑一下了!#include  < reg52.h >

#define uchar unsigned  char
#define uint  unsigned  int

/*****延時(shí)*****/

void delayMS  ( uint  ms )
{
  uchar i;

  while ( ms-- )
  {
    for ( i = 0;  i < 255;  i++ );
  }
}

/***主函數(shù)***/

void  main  ()
{
  uchar i;

  while ( 1 )
  {   

    for ( i = 0;  i < 8;  i++ )
     {
       P2  = 0xfe;
       delayMS ( 500 );

       P2 = P2  << 1;
       P2 = P2  | 0x01;

       if ( P2  == 0x7f )
       break;
     }

     for  ( i = 0;  i < 8;  i++ )
     {
       P2 = 0xfe;
       delayMS  ( 500 );

       P2 = P2  >> 1;
       P2 = P2  | 0x80;
     }
  }
}


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

使用道具 舉報(bào)

7#
ID:390373 發(fā)表于 2018-8-27 12:42 | 只看該作者
很好,謝謝,很好
回復(fù)

使用道具 舉報(bào)

6#
ID:390344 發(fā)表于 2018-8-27 11:21 | 只看該作者
你看一下郭老師的單片機(jī)  跑馬燈歷程  應(yīng)該很好用
上面有程序  你對照看一下
回復(fù)

使用道具 舉報(bào)

5#
ID:308903 發(fā)表于 2018-8-27 09:23 | 只看該作者
1984528951 發(fā)表于 2018-8-24 17:41
移位要加移位的頭文件

謝謝,還真是漏下了~
回復(fù)

使用道具 舉報(bào)

地板
ID:308903 發(fā)表于 2018-8-27 09:23 | 只看該作者
zjp_zy 發(fā)表于 2018-8-24 16:46
P2 口是寄存器,不是變量,只能賦值,不能左右移。

  謝謝,再去翻了下書,

書上寫了:   P0~P3 ,歸于專用寄存器,(特殊功能寄存器),,位于內(nèi)部RAM 區(qū)的高 128 字節(jié)處 ( 80H - FFH 之間)

沒好好學(xué)習(xí)~




回復(fù)

使用道具 舉報(bào)

板凳
ID:388013 發(fā)表于 2018-8-24 17:41 | 只看該作者
移位要加移位的頭文件
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:389714 發(fā)表于 2018-8-24 16:46 | 只看該作者
P2 口是寄存器,不是變量,只能賦值,不能左右移。
回復(fù)

使用道具 舉報(bào)

樓主
ID:389714 發(fā)表于 2018-8-24 16:44 | 只看該作者
P2 是端口寄存器,不是變量,不能左右移

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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