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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4294|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)如何讓按鍵控制LED燈常亮30分鐘后熄滅,下次按按鍵后繼續(xù)亮30分鐘后熄滅

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:685954 發(fā)表于 2020-7-16 19:01 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 79498 于 2020-7-17 12:00 編輯

用定時(shí)器做的,但是LED燈只是第一次閃爍后常亮30分鐘后熄滅,第二次按按鍵后就是一直亮了,不知道為什么,請(qǐng)一些高手解答下。

測(cè)試代碼如下  最重要的就是第一次定時(shí)可以 第二次就不行了   STC15W100的芯片


#include  "reg52.h"
#include  "intrins.h"
#define uchar unsigned char
#define uint unsigned int
typedef unsigned int u1;
typedef unsigned char u2;      //
unsigned char d;
unsigned char n=0;
uchar min=1; sec=59; //
uchar flag;//

sbit led2=P3^0;  //
sbit led1=P3^1;  //
sbit cd=P3^2;    //
sbit uv=P3^3;    //
sbit k1=P3^4;   
bit flash;//
bit  key;

sfr IE2=0xAF;
sfr AUXR=0x8E;
sfr T2H=0xD6;
sfr T2L=0xD7;

void shijian(); //


/*************************************

*************************************/
void delay_1s()   
{
int a,b;
       
        for(a=1000;a>0;a--)
          for(b=150;b>0;b--);
}

/*************************************

*************************************/
               
void keypros()      
{

if(k1==0)
                {
                delay_1s();
                        if(k1==0)
                        {
                        flash=~flash;       
                  key=1;
                        }
                }
                while(!k1);
}

/*************************************

*************************************/

void ledflash()
{
                if(flash==1&&key==1)
                {
                        for(d=0;d<10;d++)
                        {
                  led1=0;
                        delay_1s();
                        led1=1;
                        delay_1s();       
                        }
                          key=0;
                                led1=0;
                    uv=1;
                       
                }
    if(flash==0)
                {       
                        led1=1;
                    uv=0;
                }
}


/*************************************

*************************************/

void Int1Init()                  //
{
  IT0=1;
        EX0=1;
        EA=1;
}

/*************************************

*************************************/
void Timer2Init()                  //
{
        IE2|=0x04;
        T2H=(65536-50000)/256;          
        T2L=(65536-50000)%256;
        EA=1;   //
        AUXR|=0x10; //
       
}


/*************************************

*************************************/


void main()        
{
        led1=1;
  uv=0;
        led2=1;
        flash=0;
          Timer2Init();
        while(1)
        {        
                keypros();  
                ledflash();
                Int1Init();
               
        }

       

        }

/*************************************

*************************************/



void Int0()    interrupt 0     //
{
       

        if(cd==0)
        {
        uv=0;                      //
        led2=~led2;                //
        }
        else
        {
        led2=1;
        }
}

/*************************************

*************************************/
void Timer2() interrupt 12
{
  T2H=(65536-50000)/256;          
        T2L=(65536-50000)%256;
        flag++;
        if(min==0&&sec==0)
{
  uv=0;
}
if(flag>=20)
        {
        flag=0;
                sec--;
                if(sec<=0)
                {
                sec=59;
                        min--;
                        if(min<=0)
                        {
                          min=0;
                                sec=0;
                                AUXR|=0x00;
                               
                        }
                }
        }
        }

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

使用道具 舉報(bào)

沙發(fā)
ID:562338 發(fā)表于 2020-7-16 20:19 | 只看該作者
是不是計(jì)時(shí)沒清0,
回復(fù)

使用道具 舉報(bào)

板凳
ID:791503 發(fā)表于 2020-7-16 20:31 | 只看該作者
定時(shí)器要設(shè)置成重載型,你這個(gè)一次定時(shí),肯定后面就沒有了。
回復(fù)

使用道具 舉報(bào)

地板
ID:213173 發(fā)表于 2020-7-16 23:08 | 只看該作者
定時(shí)器周期50ms,按鍵按下燈亮,賦值變量36000,定時(shí)中斷一次變量減1,減到0燈滅結(jié)束。
回復(fù)

使用道具 舉報(bào)

5#
ID:267932 發(fā)表于 2020-7-17 09:25 | 只看該作者
如果你可以在線仿真調(diào)試的話,看下每個(gè)變量的數(shù)據(jù)變化,你應(yīng)該就可以找到原因啦。
回復(fù)

使用道具 舉報(bào)

6#
ID:311846 發(fā)表于 2020-7-17 09:29 | 只看該作者
發(fā)程序啊!你這樣只能用猜的了,我猜你某個(gè)變量沒清除、標(biāo)志位沒處理好或者定時(shí)器沒清
回復(fù)

使用道具 舉報(bào)

7#
ID:716656 發(fā)表于 2020-7-17 11:18 | 只看該作者
  1. #include <reg51.h>
  2. #define uchar unsigned char//o궨òå
  3. #define uint unsigned int//o궨òå
  4. sbit LED1 = P2^2;
  5. sbit KEY = P2^3;
  6. uchar u,num;

  7. sfr AUXR=0x8E;
  8. void init()
  9. {
  10.         KEY=1;
  11.         LED1=1;
  12.         TMOD=0x01;
  13.         TH0=(65536-45872)/256; //11.0592M?50ms??45872
  14.         TL0=(65536-45872)%256;
  15.         EA=1;
  16.         ET0=1;
  17. }

  18. void delay_1ms(uint t)//Ñóê±
  19. {
  20.         uint i;
  21.         while(--t)
  22.                 for(i=0;i<600;i++);
  23. }

  24. void main()
  25. {
  26.         init();
  27.         while(1)
  28.         {
  29.                 if(KEY==0)
  30.                 {
  31.                         delay_1ms(20);
  32.                         if(KEY==0)
  33.                         {
  34.                                 while(KEY==0);
  35.                                 LED1=0;
  36.                                 TR0=1;
  37.                         }
  38.                 }
  39.         }
  40. }


  41. void T0_time() interrupt 1
  42. {
  43.         TH0=(65536-45872)/256; //11.0592M?50ms??45872
  44.         TL0=(65536-45872)%256;
  45.         num++;
  46.         if(num==40)
  47.         {
  48.                 num=0;
  49.                 LED1=1;
  50.                 TR0=0;
  51.         }
  52. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

8#
ID:716656 發(fā)表于 2020-7-17 11:19 | 只看該作者

我試著寫了下,用proteus看了下。可以用
回復(fù)

使用道具 舉報(bào)

9#
ID:804648 發(fā)表于 2020-7-17 11:47 | 只看該作者
可以用定時(shí)器查詢,或者遞增
回復(fù)

使用道具 舉報(bào)

10#
ID:685954 發(fā)表于 2020-7-20 14:18 | 只看該作者
感謝各位大佬講解,已經(jīng)弄好了 定時(shí)器清零后未賦值,所以工作一次
回復(fù)

使用道具 舉報(bào)

11#
ID:809311 發(fā)表于 2020-8-7 16:38 | 只看該作者
不用單片機(jī)。用電容。容量足夠大就可以實(shí)現(xiàn)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: av一区在线观看 | 成人亚洲一区 | 日韩一区二区在线视频 | 亚洲一区免费 | 欧美日韩91 | 视频在线一区二区 | 国产精品精品视频一区二区三区 | 北条麻妃一区二区三区在线观看 | 久久综合九九 | 免费观看一级毛片 | 国产在线精品一区二区 | 欧美精品在线免费观看 | 谁有毛片 | 亚洲一二三在线观看 | 伊人网站 | 免费精品视频一区 | 日日操操 | 爱爱综合网 | 久久精品播放 | 无码一区二区三区视频 | 国产精品一区二区欧美黑人喷潮水 | 成人精品久久日伦片大全免费 | 亚洲欧美综合精品久久成人 | 日韩欧美在线一区 | av在线成人 | 欧美日韩国产一区二区三区 | 国产一二区视频 | 久久只有精品 | 中文字幕国产高清 | 国产一区 | 日韩成人影院 | 欧美日产国产成人免费图片 | 久久黄网 | 国产亚洲一区二区精品 | 久久伊人精品一区二区三区 | 精品欧美一区二区精品久久 | 丝袜美腿一区二区三区动态图 | 色资源在线 | 夜夜骑综合 | 久久人人网 | 久草新在线 |