色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 玩轉(zhuǎn)單片機,你我都是菜鳥(續(xù)3)

          玩轉(zhuǎn)單片機,你我都是菜鳥(續(xù)3)

          作者: 時間:2016-11-25 來源:網(wǎng)絡(luò) 收藏

          voidinit()//定時器初始化
          {
          TMOD=0x02;//T0方式2,8位自動載入
          TH0=256-Ton;//T0初始值
          TL0=256-Ton;//重載值
          TR0=1;//啟動T0
          ET0=1;//開T0,T1中斷
          EA=1;//全局中斷允許
          }

          voidtime0_int()interrupt1using3//T0中斷函數(shù),中斷1,使用工作組3
          {
          LEDflag++;//修改LEDflag
          }

          voidled_on_off()
          {
          uchari;//i初始化
          i=0;//i初始化
          while(i!=255)//由暗變亮
          {
          if(LEDflag==0)//點亮
          {
          led=0x00;
          }
          if(LEDflag==i)//熄滅
          {
          led=0xff;
          }
          if(LEDflag==255)//修改變量
          {
          i++;
          }


          }
          i=0;//i初始化
          while(i!=255)//由暗變亮
          {
          if(LEDflag==0)//點亮
          {
          led=0xff;
          }
          if(LEDflag==i)//熄滅
          {
          led=0x00;
          }
          if(LEDflag==255)//修改變量
          {
          i++;
          }


          }
          }
          題目要求:8個燈從第一個開始依次漸亮,直到最后一個。再從最后一個起漸暗,直到第一個。如此循環(huán)往復(fù)。這才是真正的流水燈。
          (4)程序:
          #include
          #defineucharunsignedchar
          #defineledP1//led接在P1口
          #defineTon40//基準脈寬0.04ms
          ucharLEDflag=0;//全局變量,最大255,保存T0中斷次數(shù)
          ucharcodeled_off[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
          voidinit();
          voidled_on_off();
          voidmain()
          {
          init();
          while(1)
          {

          led_on_off();

          }
          }
          voidinit()//定時器初始化
          {
          TMOD=0x02;//T0方式2,8位自動載入
          TH0=256-Ton;//T0初始值
          TL0=256-Ton;//重載值
          TR0=1;//啟動T0
          ET0=1;//開T0,T1中斷
          EA=1;//全局中斷允許
          }

          voidtime0_int()interrupt1using3//T0中斷函數(shù),中斷1,使用工作組3
          {
          LEDflag++;//修改LEDflag
          }

          voidled_on_off()
          {
          uchari=0,j=0;//i初始化
          for(j=0;j<8;j++)
          {
          i=0;//i初始化
          while(i!=255)//由暗變亮
          {
          if(LEDflag==0)//點亮
          {
          led=led_off[j];
          }
          if(LEDflag==i)//熄滅
          {
          led=0xff;
          }
          if(LEDflag==255)//修改變量
          {
          i++;
          }


          }
          }
          for(j=8;j>0;j--)
          {
          i=0;//i初始化
          while(i!=255)//由暗變亮
          {
          if(LEDflag==0)//點亮
          {
          led=0xff;
          }
          if(LEDflag==i)//熄滅
          {
          led=led_off[j-1];
          }
          if(LEDflag==255)//修改變量
          {
          i++;
          }


          }
          }


          }

          上面是這幾個題目的程序,全部是我自己寫的或是參考別人程序?qū)懙?,全部通過調(diào)試都能完成題目要求,只是第二個題目不是很完美,效果不是很明顯。我這個人很追求完美,但是第二個題目想了很久也沒想到更好的思路,也許是思維受到別人程序的限制了,希望能得到你們的指導(dǎo),也許你會有不一樣的思路。其實流水燈的控制很多,但是只要能掌握其原理,變來變?nèi)ヒ簿湍敲磶追N,控制總在你的掌握之中。無論控制什么,個人看法還是掌握原理,只要原理明白,就完全在你的控制之中,俗話說“萬變不離其中”嗎!就是這個道理。

          上一頁 1 2 下一頁

          關(guān)鍵詞: 單片機流水

          評論


          技術(shù)專區(qū)

          關(guān)閉