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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3516|回復(fù): 0
收起左側(cè)

單片機(jī)掉電喚醒程序求解

[復(fù)制鏈接]
ID:63752 發(fā)表于 2018-12-3 17:12 | 顯示全部樓層 |閱讀模式
程序功能是按鍵一次,A燈亮,B燈滅,再按鍵第二次,A燈滅,B燈亮,第三按,A,B燈都不亮,進(jìn)入掉電模式,三檔循環(huán)。但是按鍵很不靈活,時(shí)行時(shí)不行,求大俠指點(diǎn),以下是程序
#include<reg51.h>        //  包含51單片機(jī)寄存器定義的頭文件
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char ID;    //儲(chǔ)存流水燈的流動(dòng)速度

sfr P3M1=0xb1;
sfr P3M0=0xb2;
sfr AUXR=0x8e;
sfr CLK_DIV= 0x97;         //時(shí)鐘分頻寄存器
sfr INT_CLKO = 0x8F;            //外部中斷與時(shí)鐘輸出控制寄存器
//sfr IP=0xB8;
sbit INT3 = P3^5;               //INT3引腳定義
bit FLAG;
sbit S1=P3^5;          //位定義S1為P3.5
sbit LED1=P3^2;
sbit LED2=P3^3;
sbit LED3=P3^4;

/**************************************************************
函數(shù)功能:延時(shí)子程序
**************************************************************/

void Delay20ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 1;
        j = 216;
        k = 35;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}


/**************************************************************
函數(shù)功能:主函數(shù)
**************************************************************/
void main(void)
{
   CLK_DIV = 0x00;             //系統(tǒng)時(shí)鐘為內(nèi)部R/C振蕩時(shí)鐘
  // PT0=0;
   LED1=0;   
   LED2=0;
   LED3=0;
   P3M0 = 0x00;
   P3M1 = 0x00;
   INT_CLKO |= 0x20;           //(EX3 = 1)使能INT3下降沿中斷
   AUXR|=0x80;         //定時(shí)器時(shí)鐘1T模式
   //AUXR &= 0x7f;         //定時(shí)器時(shí)鐘12T模式
   //TMOD=0x00;     //使用定時(shí)器T0的模式0
   TMOD &= 0xF0;   
   TH0=0xF7;   //定時(shí)器T0賦初值,每200微妙來(lái)1次中斷請(qǐng)求
   TL0=0x5C;
        TR0=1;         //定時(shí)器T0開(kāi)始運(yùn)行
        TF0 = 0;     //清除TF0標(biāo)志
          EA=1;          //開(kāi)總中斷
        ET0=1;         //定時(shí)器T0中斷允許        
    ID=0;
   while(1)
   {
                              
           switch(ID)
            {
                 
                                  case 0:          INT_CLKO |= 0x20;
                                            ET0=0;
                                            PCON |= 0x02;           //將STOP(PCON.1)置1,MCU將進(jìn)入掉電模式
                            _nop_();                //此時(shí)CPU無(wú)時(shí)鐘,不執(zhí)行指令,且所欲外設(shè)停止工作
                            _nop_();                //外部中斷信號(hào)和外部復(fù)位信號(hào)可以終止掉電模式
                            _nop_();
                            _nop_();
                                          LED1=0;        //0010 0100         P32
                                                  LED2=0;
                                                  LED3=0;
                      break;
                                  case 1: INT_CLKO &= 0xDF;
                                          LED1=0;    //0010 1000         P33
                                                  LED2=0;
                                                  LED3=0;
                                                  break;
                                  case 2: INT_CLKO &= 0xDF;
                                          LED1=1;    //0010 1000         P33
                                                  LED2=0;
                                                  LED3=0;
                      break;
                                  case 3: INT_CLKO &= 0xDF;
                                                  LED1=0;                                                                                                                                                                                 
                                                  LED2=1;
                                                  LED3=0;
                      break;

                        }               
   }
         
   }
/**************************************************************
函數(shù)功能:定時(shí)器T0的中斷服務(wù)子程序,進(jìn)行鍵盤掃描
**************************************************************/
void intersev(void) interrupt 1 using 1
{
  TR0=0;  //關(guān)閉定時(shí)器T0
  S1=1;
  if(S1==0)       //如果是按鍵S1按下
    {
           Delay20ms();       //延時(shí)20ms,軟件消抖
            if(S1==0)       //如果是按鍵S1按下
                   ID=ID+1;
                   while(!S1);                  
          }   
        if(ID==4)
           ID=0;                                      
          TR0=1;               //啟動(dòng)定時(shí)器T0

}

//中斷服務(wù)程序
void exint3() interrupt 11
{            
         PCON=0x00;         
         ET0=1;
         ID=1;
         S1=1;
         LED1=0;  
         LED2=0;
         LED3=0;
   
// INT_CLKO &= 0xDF;           //若需要手動(dòng)清除中斷標(biāo)志,可先關(guān)閉中斷,此時(shí)系統(tǒng)會(huì)自動(dòng)清除內(nèi)部的中斷標(biāo)志
// INT_CLKO |= 0x20;           //然后再開(kāi)中斷即可
}
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日日干天天操 | 日韩综合网 | 欧美福利一区 | 91麻豆产精品久久久久久 | 国产一区二区三区在线观看免费 | 成年人在线 | av一级久久 | 羞羞免费网站 | 黄色毛片一级 | 91精品国产色综合久久 | 在线免费观看黄色网址 | 欧美一区2区三区4区公司二百 | 欧美一区二区二区 | 日日干夜夜操 | 久久亚洲美女 | 超碰在线人人 | 香蕉婷婷| 精品一区二区三区在线观看国产 | 久热久草 | 福利在线观看 | 欧美日韩国产精品一区二区 | 久久久综合 | 九九九视频精品 | 日韩成人影院在线观看 | 久久精品视频一区二区三区 | 精品国产一区二区 | 午夜在线免费观看视频 | 国产成人99 | 成人亚洲性情网站www在线观看 | 在线观看国产wwwa级羞羞视频 | 国产一区二区三区久久 | 免费观看黄a一级视频 | 国产精品视频一区二区三区 | 国产精品有限公司 | 国产精品特级片 | 免费在线观看h片 | 国产日韩一区二区 | 亚洲精品一区中文字幕乱码 | 免费视频二区 | 日韩国产一区 | 久久噜噜噜精品国产亚洲综合 |