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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

幫忙看一下單片機流水燈程序哪里錯了(亮燈控制出現問題) 請教高人

[復制鏈接]
跳轉到指定樓層
樓主
ID:217754 發表于 2017-10-7 21:59 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在論壇找的一個流水燈程序 ,原來是p1一組流水燈。。自己改了一下。加了一組p2流水燈。增加p3-2和p3-3二個中斷開關。

效果主要是,初始全滅,初按p3-2,開啟流水燈,在流水燈亮一半時,如果遇到再按開關。流水燈會中斷,從頭再來。亮到尾。就是8次。停止,不循環。

二組燈不沖突。p3-2按下后,P0口亮一次。p3-3如果中途按下。則二個流水燈同時亮一次。

修改如下。修改后。亮燈控制出現問題:


#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit button = P3^2;//外部中斷P3^2和P3^3
int b=1;
bit press = 1;
uchar luishui = 0xfe;
sbit button1 = P3^3;//外部中斷P3^2和P3^3
int b1=1;
bit press1 = 1;
uchar luishui1 = 0xfe;
void Delay(uchar z)
{
    uchar x, y;
    for(x = z; x > 0; x--)  for(y = 255; y > 0; y--);
}
void main()
{
    int i=0;
    IT0 = 1;
    EX0 = 1;
    EA = 1;
    while(press) P1=0xff;
        while(!press)
        {
          b=1;
          luishui=0xfe;
          for(i=0;i<8;i++)
          {
           if(!b)break;
           P1=luishui;
           Delay(200);
           luishui=_crol_(luishui,1);                              
          }         
         if(i==8)press=1;
        }
}
void X0_INT()   interrupt 0
{  
  b=0;
  press=0;
}

void main1()
{
    int j=0;
    IT0 = 1;
    EX0 = 1;
    EA = 1;
    while(press1) P2=0xff;
        while(!press1)
        {
          b1=1;
          luishui1=0xfe;
          for(j=0;j<8;j++)
          {
           if(!b1)break;
           P1=luishui1;
           Delay(200);
           luishui1=_crol_(luishui1,1);                              
          }         
         if(j==8)press=11;
        }
}
void X1_INT()   interrupt 1
{  
  b1=0;
  press1=0;  
}

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

使用道具 舉報

沙發
ID:232524 發表于 2017-10-8 11:09 | 只看該作者
兄弟,main函數不是這樣用的啊,你這C語言掌握的不是很好啊,有時間還是先看看C語言再編程,加油
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit button = P3^2;//外部中斷P3^2和P3^3使用中斷可以不用位定義
sbit button1 = P3^3;//外部中斷P3^2和P3^3使用中斷可以不用位定義
int i=8,j=8;
bit press = 1;
uchar luishui = 0xfe;
uchar luishui1 = 0xfe;

//*******延時函數*********//
void Delay(uchar z)
{
    uchar x, y;
    for(x = z; x > 0; x--)  for(y = 255; y > 0; y--);
}

//*********流水燈函數**********//
int choose()
{
  
  if(i>7)          //判斷P0流水燈是否循環了1次(依次點亮8個燈)
  {
  P0=0xff;          //P0消隱
  }
  else                  //流水燈循環
  {
  P0=luishui;
  luishui=_crol_(luishui,1);
  i++;                 //判斷點亮的次數
  }
  if(j>7)        //判斷P1流水燈是否循環了一次
  {
  P1=0xff;
  }
  else
  {
  P1=luishui1;
  luishui1=_crol_(luishui1,1);
  j++;
  }
Delay(200);  //延時
if(i>7&&j>7)  //判斷兩個燈是否都循環完
return 0;
else
return 1;
}

//*********主函數***********//
void main()
{
    int k=1;
    IT0 = 1;//中斷初始化
    EX0 = 1;
        IT1 = 1;
        EX1 = 1;
    EA = 1;
    while(press) {P1=0xff;P0=0xff;}        //等待按鍵按下
        while(!press)
        {
          while(k)
                  {
                   k=choose();
                  }      
         if(i==8&&j==8)press=1;
        }
}
//**********中斷0子程序*********//
void X0_INT()   interrupt 0           //中斷0的中斷號為0
{
  press=0;
  luishui=0xfe;
  i=0;
}
//**********中斷1子程序*********//
void X1_INT()   interrupt 2         //中斷1的中斷號為2,中斷號1是定時器0的中斷號
{  
  press=0;
  luishui1=0xfe;
  j=0;  
}

評分

參與人數 1黑幣 +10 收起 理由
zqy181818 + 10 贊一個!

查看全部評分

回復

使用道具 舉報

板凳
ID:217754 發表于 2017-10-8 12:06 | 只看該作者
liut_text 發表于 2017-10-8 11:09
兄弟,main函數不是這樣用的啊,你這C語言掌握的不是很好啊,有時間還是先看看C語言再編程,加油
#include ...

謝謝老師。我剛學一周。在嘗試跟一些例程。邊寫邊學。。
回復

使用道具 舉報

地板
ID:217754 發表于 2017-10-8 12:27 | 只看該作者
liut_text 發表于 2017-10-8 11:09
兄弟,main函數不是這樣用的啊,你這C語言掌握的不是很好啊,有時間還是先看看C語言再編程,加油
#include ...

試了。真的很好。學習了。我今天又可以玩一天。慢慢看你的思路。再來謝謝你。。跟 我想的一樣一樣的
回復

使用道具 舉報

5#
ID:232524 發表于 2017-10-8 18:08 | 只看該作者
xymiss 發表于 2017-10-8 12:27
試了。真的很好。學習了。我今天又可以玩一天。慢慢看你的思路。再來謝謝你。。跟 我想的一樣一樣的

保持這樣的熱情,會有進步的
回復

使用道具 舉報

6#
ID:111634 發表于 2017-10-9 15:44 | 只看該作者
玩的實例很多,給你介紹仿真玩100例,《80C51單片機仿真設計實例教程——基于Keil C和Proteus》清華大學出版社ISBN 978-7-302-41682-1,內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行,可演示,可觀測,程序語句條條有注解。與其他書比較一下,有比較才能有鑒別!絕不忽悠你!
回復

使用道具 舉報

7#
ID:217754 發表于 2017-10-26 21:48 | 只看該作者
liut_text 發表于 2017-10-8 11:09
兄弟,main函數不是這樣用的啊,你這C語言掌握的不是很好啊,有時間還是先看看C語言再編程,加油
#include ...

大哥。能不能幫忙加個看門狗,程序運行久了會卡住,燈一直亮著。再按也沒效果了。需要手工重置程序
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品视频在线 | 91毛片在线观看 | 五月综合激情婷婷 | 日本欧美国产在线观看 | 夜夜爽99久久国产综合精品女不卡 | 久久久av | 99re6在线视频精品免费 | 中文字幕久久精品 | 精品久久精品 | 欧美精品久久久久久久久久 | 看毛片网站 | 天天操天天干天天透 | 日本不卡一区二区三区在线观看 | 免费黄色大片 | 国产成人福利在线观看 | 最新中文字幕久久 | 久久天堂 | 欧美精品在线一区二区三区 | 黄免费观看视频 | av入口 | 久久久久国产一区二区三区 | 亚洲精品视频三区 | 仙人掌旅馆在线观看 | 亚洲视频 欧美视频 | www.887色视频免费 | 日韩在线免费播放 | 国产精品揄拍一区二区久久国内亚洲精 | 91免费看片| 亚洲一区二区三区在线免费观看 | 亚洲一区二区三区四区五区中文 | 成人在线激情 | 国产精品区二区三区日本 | 国产一区二区三区免费观看在线 | 色吧综合 | 成人亚洲网站 | 久久久久久色 | 日日操日日舔 | 宅男噜噜噜66一区二区 | 天天色综 | 韩日精品一区 | 人人干人人干人人干 |