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

標(biāo)題: 按鍵控制流水燈 仿真可以 板子上就不行了 請教各位大神 [打印本頁]

作者: xf是個(gè)小萌新    時(shí)間: 2018-11-15 11:34
標(biāo)題: 按鍵控制流水燈 仿真可以 板子上就不行了 請教各位大神
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P1^6;
sbit key2=P1^7;
char k;
char tt;

void delay(uint m)
{
        char i,j;
        for(i=m;i>0;i--)
                for(j=1000;j>0;j--);       
}

void led1(void)//ÕyÏòμãááá÷Ë®μÆ
{
        P3=0XFE;
        delay(100);
        P3=0XFD;
        delay(100);
        P3=0XFB;
        delay(100);
        P3=0XF7;
        delay(100);
        P3=0XEF;
        delay(100);
        P3=0XDF;
        delay(100);
        P3=0XBF;
        delay(100);
        P3=0X7F;
        delay(100);

}  

void led2(void)//·′Ïòμãááá÷Ë®μÆ
{
    P3=0X7F;
        delay(100);
        P3=0XBF;
        delay(100);
        P3=0XDF;
        delay(100);
        P3=0XEF;
        delay(100);
    P3=0XF7;
        delay(100);
        P3=0XFB;
        delay(100);
        P3=0XFD;
        delay(100);
        P3=0XFE;
        delay(100);
}


void main (void)//Ö÷oˉêy
{
    TMOD=0X01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;//¿aÆô×üÖD¶Ï
        ET0=1;
        TR0=1;
        P1=0XFF;

        while(1)
        {
    switch(k)
                {
                        case 0:P1=0Xff;        break;
            case 1:led1();        break;
                        case 2:led2();        break;
        }       
     }
}
       
void time(void) interrupt 1
{
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;


if((0xF0&P1)!=0XF0)
  {
        delay(100);
        if(key1==0)
                k=1;
        if(key2==0)
                k=2;

  }       
}       

       


作者: liyongan_1985    時(shí)間: 2018-11-15 14:43
暈死,定時(shí)器中斷里面還有delay(100),這不是開玩笑嘛。
作者: ljx8940    時(shí)間: 2018-11-15 17:41
兩個(gè)問題:1)key1 ,key2 的互鎖問題
                2)如樓上所說,定時(shí)器中斷里面還有delay(100)
改了就沒問題了
作者: LiaoCJ    時(shí)間: 2018-11-15 18:20
中斷里面根據(jù)key1和key2的狀態(tài)分別給k賦值1和2,跟while循環(huán)內(nèi)的switch判斷k等于0和1的情況明顯不相符,樓主還請細(xì)心點(diǎn)。
作者: hhhhhooo111    時(shí)間: 2018-11-15 20:06
代碼很有可能有問題
作者: huozhe0930    時(shí)間: 2018-11-15 23:09
你這個(gè)中斷,是外部中斷,還是定時(shí)中斷?
作者: xf是個(gè)小萌新    時(shí)間: 2018-11-16 13:54
liyongan_1985 發(fā)表于 2018-11-15 14:43
暈死,定時(shí)器中斷里面還有delay(100),這不是開玩笑嘛。

按鍵防抖用的  延遲函數(shù)會(huì)影響定時(shí)器中斷嗎?
作者: nhmvvv    時(shí)間: 2018-11-16 13:58
定時(shí)器里的延時(shí)不要
作者: xf是個(gè)小萌新    時(shí)間: 2018-11-16 14:00
LiaoCJ 發(fā)表于 2018-11-15 18:20
中斷里面根據(jù)key1和key2的狀態(tài)分別給k賦值1和2,跟while循環(huán)內(nèi)的switch判斷k等于0和1的情況明顯不相符,樓 ...

等于0 代表燈全不亮   一開始就給k賦值0了;
作者: xf是個(gè)小萌新    時(shí)間: 2018-11-16 14:01
huozhe0930 發(fā)表于 2018-11-15 23:09
你這個(gè)中斷,是外部中斷,還是定時(shí)中斷?

定時(shí)器中斷呢

作者: nhmvvv    時(shí)間: 2018-11-16 14:01
定時(shí)器里的延時(shí)不要
while里的判斷換到中斷服務(wù)函數(shù)里
while里面只要執(zhí)行程序 if(k)
作者: xf是個(gè)小萌新    時(shí)間: 2018-11-16 14:02
ljx8940 發(fā)表于 2018-11-15 17:41
兩個(gè)問題:1)key1 ,key2 的互鎖問題
                2)如樓上所說,定時(shí)器中斷里面還有delay(100)
改 ...

謝謝  互鎖問題怎么解決呢、  定時(shí)器中斷里為啥不能有延遲函數(shù)呢?  那個(gè)不是可以用作按鍵防抖嗎?
作者: xf是個(gè)小萌新    時(shí)間: 2018-11-17 08:59
nhmvvv 發(fā)表于 2018-11-16 14:01
定時(shí)器里的延時(shí)不要
while里的判斷換到中斷服務(wù)函數(shù)里
while里面只要執(zhí)行程序 if(k)

是這樣嗎?也不行啊
void main (void)
{
    TMOD=0X01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        P1=0XFF;
        k=0;

        while(1)
        {
   if(k)
                 ;
     }
}
       
void time(void) interrupt 1
{
TL0=(65536-50000)%256;
TH0=(65536-50000)/256;

        if(key1==0)
                k=1;
        if(key2==0)
                k=2;
switch(k)
                {
                        case 0:P1=0Xff;        break;
      case 1:led1();        break;
                        case 2:led2();        break;
        }       
       
}       

       
作者: nhmvvv    時(shí)間: 2018-11-17 14:33
xf是個(gè)小萌新 發(fā)表于 2018-11-17 08:59
是這樣嗎?也不行啊
void main (void)
{

if(k)里面寫東西沒?  我只是舉個(gè)例子 你自己把led1什么的和判斷加上




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