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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

關于STC8G1K08A單片機用遙控器控制掉電喚醒的問題

查看數: 3755 | 評論數: 6 | 收藏 3
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2022-11-17 15:28

正文摘要:

     最近有空剛學習掉電喚醒這一塊,用遙控器能讓單片機進入掉電模式,此時能控制P54腳輸出的PWM停止不輸出,但P54腳有時為高電平,有時也為低電平。P32腳(P32腳接接收頭IR)在進入掉電模式時 ...

回復

ID:921294 發表于 2022-11-23 17:19
    非常感謝以上幾位朋友能在百忙中看一下我目前遇到的問題,并給出寶貴的意見。今天由于早下班有時間將程序修改了一下,改用一個按鍵K1接P32來控制(按鍵K1一腳按P32,另一腳接地)進入掉電模式和喚醒。長按進入掉電模式,短按喚醒單片機。功能現在是能實現了,短按喚醒單片機沒有問題,一按就立馬實現。長按進入掉電模式有一點小問題,有1/3的時候不能實現,也就是3次有可能有1次不能進入掉電模式,看波形情況是按下去P54腳沒有波形,松開就有波形,再按1到2次就可以了。搞了一個多小時還沒有好,請朋友們看下問題出在哪里?
    #include  "STC8xxxx.H"
#include  "pwm.h"
#include  "38KHZ.h"
//#include  "IR.h"

#define IDL             0x01                    //PCON.0  IDLE(空閑)模式控制位
#define PD              0x02                    //PCON.1  時鐘停振模式/掉電模式/停電模式 控制位

sbit k1  =P3^2;//STC8G1K08A此腳為外部中斷INT0,在非掉電模式下做按鍵用,按一次改變一次狀態。

u16 jishu=0,ksj=0;





//void IR_RX_NEC(void);

void INT0_Isr() interrupt 0
{
//P32 = !P32;                                 //測試端口

                     EA=1;
                IT0=1;
                EX0=1;
                PCON=0x00;                             
}



void timer0 (void) interrupt 1
{
        TL0 = 0xE0;                //設置定時初始值
            TH0 = 0xB1;                //設置定時初始值
        jishu++;
}




void  main(void)
{
    P3M0 = 0x00;
    P3M1 = 0x00;
        P3PU |= 0x04;
    P5M0 = 0x00;
    P5M1 = 0x00;
    pwm_int() ;
        hwKHZ_int();

       
    AUXR |= 0x80;                //定時器時鐘1T模式
        TMOD &= 0xF0;                //設置定時器模式
        TL0 = 0xE0;                //設置定時初始值
        TH0 = 0xB1;                //設置定時初始值
        TF0 = 0;                //清除TF0標志
        TR0 = 1;                //定時器0開始計時       
        ET0 = 1;
        EA = 1;
       
       
       
       
        while(1)
        {
            if(jishu==10) //如果到了10次,說明10ms秒時間
              {
                if(k1==0)
                        {
//                                                 
                        ksj++;
                        if(1000>ksj>200)                               //長按按鍵標志
                             
                                                                                                                   
                       
                    ksj=0;
                    IE0  = 0;                                        //將INT0中斷請求標志位清"0"                           
                    IT0 = 1;                                    //使能INT1 0 上升沿和下降沿中斷 1下降沿中斷               
                    EX0 = 1;                                    //使能INT1中斷
                    EA = 1;                 
                    PCON = 0x02;                                //MCU進入掉電模式
                    _nop_();                                    //掉電模式被喚醒后,MCU首先會執行此語句
                                                               //手冊中寫到,喚醒會執行中斷命令后一條語句之后轉向中斷
                                                               //然后再進入中斷服務

                    _nop_();
                    _nop_();
                    _nop_();
                                        _nop_();//
                                        _nop_();
                                        _nop_();
                                }                                                                                          
                                   jishu=0;                                        //重新計數       
                                             
                                }   


                               
                  if (P5^5==0)
                  {
                         pwm = PWM_DUTY *4.4/ 10;     //給PWM一個初值,這里為44%占空比
                         LoadPWM(pwm);
          }                          
                  else
                  {
                   pwm = PWM_DUTY *8.3/ 10;     //給PWM一個初值,這里為83%占空比
                    LoadPWM(pwm);                //計算PWM重裝值
                  
                  }
                 
       
        }
}
ID:921294 發表于 2022-11-20 20:12
目前我覺得還可以,可以接雙探頭,測PWM波形,遙控器波形還是很方便的,可以保存波形,目前我只用到這些,也很方便攜帶。
ID:403593 發表于 2022-11-20 09:44
請教一下樓主,這個示波器用起來怎樣?
ID:1034262 發表于 2022-11-17 17:59
進入睡眠(掉電)模式前,先關閉PWM,并將IO輸出確定的電平,否則睡眠時關閉時鐘,PWM會停止,此時可能高也可能低。
睡眠不會影響任何IO的狀態,也不影響內存,所以睡眠前一定要處理好IO。
ID:161164 發表于 2022-11-17 17:19
進入掉電/空閑模式前先把P32置1

ID:123289 發表于 2022-11-17 16:49
CPU掉電喚醒與遙控器控制無關!
何為【掉電】先說一說?CPU在何種情形下,是你所說的【掉電】呢?
何為【喚醒】再說一說?CPU在何種情形下,才能被喚醒呢?
弄清以上兩個問題,就解了。

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表