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

標題: 為什么這個單片機蜂鳴器才響十秒呢?我哪里出錯了呢?求幫忙 [打印本頁]

作者: 2523472815    時間: 2020-3-19 11:30
標題: 為什么這個單片機蜂鳴器才響十秒呢?我哪里出錯了呢?求幫忙
#include "reg52.h"
#include"intrins.h"

typedef unsigned int u16;
typedef unsigned char u8;

sbit beep=P1^5;
u8 flag=0;

void delay(u16 i)
{
   while(i--);
}

void timer1()
{
   TMOD|=0x10;
   TH0=0XFC;
   TL0=0X18;
   ET0=1;
   EA=1;
   TR0=1;
}

void main()
{
     timer1();
           while(1)
           {
           if(flag==0)
           {
            beep=~beep;
            delay(10);
           }
          }
}

void timer2() interrupt 1
{
   static u16 a;
   TH0=0XFC;
   TL0=0X18;
   a++;
   if(a==60000)
   {
      flag=1;
          a=0;
   }
}


作者: 飛翔的草尼瑪    時間: 2020-3-19 16:36
試試改成a>=60000
作者: aide51    時間: 2020-3-20 09:04
這個要改延時循環吧
作者: 王天星    時間: 2020-3-20 11:12
flag=1;使用后沒有置0

作者: cjjdemon    時間: 2020-3-20 13:55
static u16 a; 把中斷里聲明靜態變量的這句去掉,直接在前面定義全局變量。
這個程序本意就是蜂鳴器間歇地響一段時間就停的吧?本意是響50s左右?現在只響10s?
作者: huangzongwu    時間: 2020-3-20 13:57
if(a==60000)
   {
      flag=1;
          a=0;
   }
else
{
flag=0;
}
作者: 190987824    時間: 2020-3-20 14:16
   flag= ! flag;
作者: 2523472815    時間: 2020-3-23 12:12
飛翔的草尼瑪 發表于 2020-3-19 16:36
試試改成a>=60000

成功了,多謝多謝




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