久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機流水燈錯誤出在哪里?個位大神,請幫我看一下

[復制鏈接]
跳轉到指定樓層
樓主
問題描述:流水燈只依次循環點亮一遍。我想讓它一直在循環點亮。
題目:如圖8-3所示,P1口外接8個LED燈,要求編程實現循環流水燈功能,時間間隔0.5s,單片機外接晶振12MHz。

(所用實現方法:用定時器T0實現精確定時0.5s,將0.5s分解為100個5000us,用定時器T0的方式0實現。)



#include < reg51.h>
unsigned char count=0,i=0;
unsigned char s=0xfe;

//主函數
main (  )
   {
     P1=0xfe;
     TMOD=0x00;
     TH0=0x63;
     TL0=0x18;
     ET0=1;
     EA=1;
     TR0=1;
     while(1);
   }

//服務函數
void  Timer0_int( )  interrupt 1
    {                  
      count++;
      if (count==100)
        {
          count=0;
          i++;
           if(i<8)
             {
               s=s<<1;
               s=s^0x01;
               P1=s;
             }   
           else
           i=0;
        }
               
       TH0=0x63;
       TL0=0x18;
    }


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

使用道具 舉報

沙發
ID:215958 發表于 2017-6-29 23:58 | 只看該作者
你中斷裡頭的i數到7的時候你的變數S是0x7F,也就是0111 1111(二進制),當你的i來到8的時候,你將你的i設為0,但是你的s是停留在0111 1111,所以下一次進中斷時,你的i會加1,你的s會先變成1111 1110,然後執行s=s^0x01,之後就變成了1111 1111,再下一次進中斷還是先變成1111 1110, 再執行行s=s^0x01,之後就變成了1111 1111,到這裡你就看的懂了吧!在else中除了將i歸0後,再補一個s=0xfe;的敘述看看吧!

評分

參與人數 1黑幣 +60 收起 理由
admin + 60 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:215958 發表于 2017-6-30 00:01 | 只看該作者
在中斷的else敘述中多增加一個S=0xfe;
回復

使用道具 舉報

地板
ID:216117 發表于 2017-6-30 15:27 | 只看該作者
中斷內部有問題,自己推力一遍試試
回復

使用道具 舉報

5#
ID:213173 發表于 2017-6-30 18:40 | 只看該作者
本帖最后由 wulin 于 2017-6-30 21:10 編輯

兩個方法可以解決你的問題
方法1.
#include < reg51.h>
#include <intrins.h>
unsigned char count=0,i=0;
unsigned char s=0xfe;

//主函數
main (  )
   {
     P1=0xfe;
     TMOD=0x00;
     TH0=0x63;
     TL0=0x18;
     ET0=1;
     EA=1;
     TR0=1;
     while(1);
   }

//服務函數
void  Timer0_int( )  interrupt 1
{                  
        count++;
        if (count>=100)
        {
                count=0;
                P1=_crol_(P1,1);//P1循環左移一位
//                P1=_cror_(P1,1);//P1循環右移一位


/*                i++;
                if(i<8)
                {
                        s=s<<1;
                        s=s^0x01;
                        P1=s;
                }   
                else
                i=0;*/
        }        
        TH0=0x63;
        TL0=0x18;
}
方法2;#include < reg51.h>
#include <intrins.h>
unsigned char count=0,i=0;
unsigned char s=0xfe;

//主函數
main (  )
   {
     P1=0xfe;
     TMOD=0x00;
     TH0=0x63;
     TL0=0x18;
     ET0=1;
     EA=1;
     TR0=1;
     while(1);
   }

//服務函數
void  Timer0_int( )  interrupt 1
{                  
        count++;
        if (count>=100)
        {
                count=0;
                i++;
                s=s<<1;
                s=s^0x01;
                P1=s;  
                if(i>=8)
                {
                        i=0;
                        P1=s=0xfe;
                }

        }       
        TH0=0x63;
        TL0=0x18;
}



回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产免费观看一级国产 | 国产亚洲精品美女久久久久久久久久 | 不卡一二三区 | 国产高清在线 | 日韩欧美在线视频 | 在线视频一区二区三区 | 综合在线视频 | 日本成人毛片 | 国产精品免费一区二区 | 一区在线视频 | 午夜91| 国产精品久久久久久久久久 | 亚洲综合视频一区 | www.玖玖玖 | 人人干人人干人人干 | 欧美国产视频一区二区 | 久久久精 | 黄网站免费在线观看 | 精品在线播放 | 午夜国产一区 | 久热精品在线 | 国产专区视频 | 久久综合av | 国产精品久久久久免费 | 高清av一区| 九九热在线精品视频 | 国产精品一区2区 | 久久久久久国产精品 | 国产精品资源在线观看 | 精品在线看 | 国产精品精品视频一区二区三区 | 久久97精品 | 欧美精品久久久久久久久老牛影院 | 蜜桃在线播放 | 欧美中文字幕一区二区三区亚洲 | 很黄很污的网站 | 青青艹在线视频 | 激情的网站 | 午夜av免费| 久久久www成人免费无遮挡大片 | 男女羞羞视频在线看 |