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

標(biāo)題: 求程序思路 單片機(jī)按鍵次數(shù)控制流水燈 [打印本頁(yè)]

作者: Dieouy    時(shí)間: 2021-4-7 22:51
標(biāo)題: 求程序思路 單片機(jī)按鍵次數(shù)控制流水燈
由于本論壇禁止直接求程序,禁止伸手黨,所以向大家請(qǐng)教一下大致的實(shí)現(xiàn)方法與思路,理清頭緒后我自己來(lái)寫(xiě)程序去實(shí)現(xiàn),謝謝大家

例如按一下全亮,連續(xù)按兩下流水燈,連續(xù)三下?lián)Q一種流水燈。

作者: Dieouy    時(shí)間: 2021-4-7 22:53
我暫時(shí)的思路是定時(shí)計(jì)數(shù),定時(shí)3s內(nèi)統(tǒng)計(jì)按鍵次數(shù)在用按鍵次數(shù)去控制不同的燈動(dòng)作。但是這樣的話會(huì)有很大的延遲,每次都要等3s才會(huì)停止計(jì)數(shù)的話。太浪費(fèi)時(shí)間了。
作者: munuc_w    時(shí)間: 2021-4-8 08:35
對(duì)按鍵計(jì)數(shù)就可以,1全亮,2流水,3換一個(gè)流水,并清零變量。
作者: man1234567    時(shí)間: 2021-4-8 08:36
Dieouy 發(fā)表于 2021-4-7 22:53
我暫時(shí)的思路是定時(shí)計(jì)數(shù),定時(shí)3s內(nèi)統(tǒng)計(jì)按鍵次數(shù)在用按鍵次數(shù)去控制不同的燈動(dòng)作。但是這樣的話會(huì)有很大的延 ...

那么問(wèn)題來(lái)了:你按了1次或2次后怎么才知道你不是要按3次呢 ?
作者: 黃youhui    時(shí)間: 2021-4-8 08:48
Dieouy 發(fā)表于 2021-4-7 22:53
我暫時(shí)的思路是定時(shí)計(jì)數(shù),定時(shí)3s內(nèi)統(tǒng)計(jì)按鍵次數(shù)在用按鍵次數(shù)去控制不同的燈動(dòng)作。但是這樣的話會(huì)有很大的延 ...

3S?你這個(gè)東西是給老年人用的?你自己用個(gè)計(jì)時(shí)器算一下3S你能按多少下按鍵,連續(xù)按鍵間隔超過(guò)0.5秒都不叫連續(xù)。得到按鍵信號(hào)0.5秒內(nèi),沒(méi)有下一個(gè)按鍵信號(hào)就可以處理了
作者: ZXWPL    時(shí)間: 2021-4-8 09:40
思路就是松開(kāi)按鍵執(zhí)行動(dòng)作。判斷到按鍵按下,先暫存按鍵的鍵值,按下次數(shù)+1,然后給一個(gè)變量賦值用作延時(shí)判斷。等到判斷按鍵松開(kāi)延時(shí)就開(kāi)始倒計(jì),倒計(jì)為0的時(shí)候,把暫存的鍵值取出來(lái),并執(zhí)行判斷是哪個(gè)按鍵,按下幾次。
作者: Dieouy    時(shí)間: 2021-4-8 10:40
unsigned char key_read(void)
{
    static unsigned char key_m = key_state_0, key_time_1 = 0;
    unsigned char key_return = N_key,key_temp;
     
    key_temp = key_driver();
     
    switch(key_m)
    {
        case key_state_0:
            if (key_temp == S_key )
            {
                 key_time_1 = 0;               // 第1次單擊,不返回,到下個(gè)狀態(tài)判斷后面是否出現(xiàn)雙擊
                 key_m = key_state_1;
            }
            else
                 key_return = key_temp;        // 對(duì)于無(wú)鍵、長(zhǎng)鍵,返回原事件
            break;

        case key_state_1:
            if (key_temp == S_key)             // 又一次單擊(間隔肯定<500ms)
            {
                 key_return = D_key;           // 返回雙擊鍵事件,回初始狀態(tài)
                 key_m = key_state_0;
            }
            else                                
            {                                  // 這里500ms內(nèi)肯定讀到的都是無(wú)鍵事件,因?yàn)殚L(zhǎng)鍵>1000ms,在1s前低層返回的都是無(wú)鍵
                 if(++key_time_1 >= 50)
                 {
                      key_return = S_key;      // 500ms內(nèi)沒(méi)有再次出現(xiàn)單鍵事件,返回上一次的單鍵事件
                      key_m = key_state_0;     // 返回初始狀態(tài)
                 }
             }
             break;
    }
    return key_return;
}     



這個(gè)怎么添加第n次的判斷啊
作者: Dieouy    時(shí)間: 2021-4-8 11:03
已經(jīng)做出來(lái)了,謝謝各位大佬。



#include<reg52.h>
#define N_key    0              //無(wú)鍵
#define S_key    1              //單鍵
#define D_key    2              //雙鍵
#define L_key    3              //長(zhǎng)鍵
#define C_key    4              //三擊鍵
#define E_key    5              //四擊鍵
#define key_state_0 0
#define key_state_1 1
#define key_state_2 2
#define key_state_3 3
#define key_state_4 4
#define key_state_5 5
sbit key_input = P2^0;    // 按鍵輸入口
unsigned char time_10ms_ok = 0;
unsigned char key = 0;

unsigned char key_driver(void)
{
    static unsigned char key_state = key_state_0, key_time = 0;
    unsigned char  key_return = N_key;
        bit key_press;

    key_press = key_input;                    // 讀按鍵I/O電平

    switch (key_state)
    {
      case key_state_0:                              // 按鍵初始態(tài)
        if (!key_press) key_state = key_state_1;      // 鍵被按下,狀態(tài)轉(zhuǎn)換到按鍵消抖和確認(rèn)狀態(tài)
        break;
      
      case key_state_1:                      // 按鍵消抖與確認(rèn)態(tài)
        if (!key_press)
        {
             key_time = 0;                   //  
             key_state = key_state_2;   // 按鍵仍然處于按下,消抖完成,狀態(tài)轉(zhuǎn)換到按下鍵時(shí)間的計(jì)時(shí)狀態(tài),但返回的還是無(wú)鍵事件
        }
        else
             key_state = key_state_0;   // 按鍵已抬起,轉(zhuǎn)換到按鍵初始態(tài)。此處完成和實(shí)現(xiàn)軟件消抖,其實(shí)按鍵的按下和釋放都在此消抖的。
        break;
      
      case key_state_2:
        if(key_press)
        {
             key_return = S_key;        // 此時(shí)按鍵釋放,說(shuō)明是產(chǎn)生一次短操作,回送S_key
             key_state = key_state_0;   // 轉(zhuǎn)換到按鍵初始態(tài)
        }
        else if (++key_time >= 100)     // 繼續(xù)按下,計(jì)時(shí)加10ms(10ms為本函數(shù)循環(huán)執(zhí)行間隔)
        {
             key_return = L_key;        // 按下時(shí)間>1000ms,此按鍵為長(zhǎng)按操作,返回長(zhǎng)鍵事件
             key_state = key_state_3;   // 轉(zhuǎn)換到等待按鍵釋放狀態(tài)
        }
        break;

      case key_state_3:                 // 等待按鍵釋放狀態(tài),此狀態(tài)只返回?zé)o按鍵事件
        if (key_press) key_state = key_state_0; //按鍵已釋放,轉(zhuǎn)換到按鍵初始態(tài)
        break;
    }
    return key_return;
}

/*=============
中間層按鍵處理函數(shù),調(diào)用低層函數(shù)一次,處理雙擊事件的判斷,返回上層正確的無(wú)鍵、單鍵、雙鍵、長(zhǎng)鍵4個(gè)按鍵事件。
本函數(shù)由上層循環(huán)調(diào)用,間隔10ms
===============*/

unsigned char key_read(void)
{
    static unsigned char key_m = key_state_0, key_time_1 = 0;
    unsigned char key_return = N_key,key_temp;
     
    key_temp = key_driver();
     
    switch(key_m)
    {
        case key_state_0:
            if (key_temp == S_key )
            {
                 key_time_1 = 0;               // 第1次單擊,不返回,到下個(gè)狀態(tài)判斷后面是否出現(xiàn)雙擊
                 key_m = key_state_1;
            }
            else
                 key_return = key_temp;        // 對(duì)于無(wú)鍵、長(zhǎng)鍵,返回原事件
            break;

        case key_state_1:
            if (key_temp == S_key)             // 又一次單擊(間隔肯定<500ms)
         
                                                
            {   if( key_temp == S_key)
               
                                                         {
                 key_time_1 = 0;               // 第1次單擊,不返回,到下個(gè)狀態(tài)判斷后面是否出現(xiàn)雙擊
                 key_m = key_state_4;
               }
                                                        
                                                         else
                                                                          { key_return = D_key;           // 返回雙擊鍵事件,回初始狀態(tài)
                     key_m = key_state_0; }
                                                                 
            }
            else                                
            {                                  // 這里500ms內(nèi)肯定讀到的都是無(wú)鍵事件,因?yàn)殚L(zhǎng)鍵>1000ms,在1s前低層返回的都是無(wú)鍵
                 if(++key_time_1 >= 50)
                 {
                      key_return = S_key;      // 500ms內(nèi)沒(méi)有再次出現(xiàn)單鍵事件,返回上一次的單鍵事件
                      key_m = key_state_0;     // 返回初始狀態(tài)
                 }
             }
             break;
       case key_state_4:
            if (key_temp == S_key)             // 又一次單擊(間隔肯定<500ms)
         
                                                
            {   if( key_temp == S_key)
               
                                                         {
                 key_time_1 = 0;               // 第1次單擊,不返回,到下個(gè)狀態(tài)判斷后面是否出現(xiàn)雙擊
                 key_m = key_state_5;
               }
                                                        
                                                         else
                                                                          { key_return = C_key;           // 返回雙擊鍵事件,回初始狀態(tài)
                     key_m = key_state_0; }
                                                                 
            }
            else                                
            {                                  // 這里500ms內(nèi)肯定讀到的都是無(wú)鍵事件,因?yàn)殚L(zhǎng)鍵>1000ms,在1s前低層返回的都是無(wú)鍵
                 if(++key_time_1 >= 50)
                 {
                      key_return = D_key;      // 500ms內(nèi)沒(méi)有再次出現(xiàn)單鍵事件,返回上一次的單鍵事件
                      key_m = key_state_0;     // 返回初始狀態(tài)
                 }
             }
             break;
                        case key_state_5:
            if (key_temp == S_key)             // 又一次單擊(間隔肯定<500ms)
            {
                 key_return = E_key;           // 返回四擊鍵事件,回初始狀態(tài)
                 key_m = key_state_0;
            }
            else                                
            {                                  // 這里500ms內(nèi)肯定讀到的都是無(wú)鍵事件,因?yàn)殚L(zhǎng)鍵>1000ms,在1s前低層返回的都是無(wú)鍵
                 if(++key_time_1 >= 50)
                 {
                      key_return = C_key;      // 500ms內(nèi)沒(méi)有再次出現(xiàn)單鍵事件,返回上一次的單鍵事件
                      key_m = key_state_0;     // 返回初始狀態(tài)
                 }
             }
             break;



     }
               
                return key_return;
}     

void main()
{
        P0 = 0xff;        //IO口初始化
        P2 = 0xff;
                        //定時(shí)器的初始化                                                   
        TMOD = 0x01;                           //選擇定時(shí)器的工作模式:定時(shí)器0,方式1
        TH0 = (65535 - 10000)/256; //定時(shí)器的初值
        TL0 = (65535 - 10000)%256;
        EA = 1;                                           //開(kāi)打總中斷使能
        ET0 = 1;                                   //打開(kāi)定時(shí)器0 的使能
        TR0 = 1;                                   //打開(kāi)定時(shí)器0 ,開(kāi)始工作

        while(1)
        {
                if(time_10ms_ok)          //time_10ms_ok = 1,表示計(jì)時(shí)到了10MS。(10MS掃描一次按鍵)
                {
                        time_10ms_ok = 0; //清除計(jì)時(shí)10MS標(biāo)志
                        key = key_read(); //調(diào)用掃描按鍵程序,返回一個(gè)鍵值

                        if (key == L_key) //長(zhǎng)按:點(diǎn)亮P1口上的8個(gè)LED燈。(低電平點(diǎn)亮)
                        {
                                P0 = 0x00;
                        }  
            else if(key == D_key)//雙擊:點(diǎn)亮P1口上第二個(gè)LED燈。(低電平點(diǎn)亮)  
            {
                                P0 = 0xfd;
                        }  
            else if(key == S_key)//單擊:點(diǎn)亮P1口上第一個(gè)LED燈。(低電平點(diǎn)亮)  
            {
                                P0 = 0xfe;
                        }
                              else if(key == C_key)//單擊:點(diǎn)亮P1口上第1個(gè)和第二個(gè)LED燈。(低電平點(diǎn)亮)  
            {
                                P0 = 0xfc;//11111100
                        }
                              else if(key == E_key)//單擊:點(diǎn)亮P1口上第1個(gè)和第二個(gè)LED燈。(低電平點(diǎn)亮)  
            {
                                P0 = 0xf0;//11110000
                        }
                }
        }
}

void timer0(void) interrupt 1        //用的是定時(shí)器0, 這個(gè)“interrupt 1”中的“1”代表1號(hào)中斷即是定時(shí)器0中斷。如果是“0”就是外部中斷0;“2“=外部中斷1;”3“定時(shí)器1中斷;”4“=串行口中斷
{
        TH0 = (65535 - 10000)/256;
        TL0 = (65535 - 10000)%256; //定時(shí)器0的方式1,得在中斷程序中重復(fù)初值。
        time_10ms_ok = 1;  //定時(shí)10MS 的標(biāo)志
}

在原代碼基礎(chǔ)上修改      原代碼鏈接:https://blog.csdn.net/Sun19910114/article/details/53810110
作者: robinsonlin    時(shí)間: 2021-4-8 12:04
本帖最后由 robinsonlin 于 2021-4-8 13:54 編輯

1,在1ms定時(shí)器中斷里面建一個(gè) unsigned long SysTick++;
2,當(dāng)檢測(cè)到按鍵響應(yīng)時(shí),變量TKey = SysTick,采集此時(shí)的系統(tǒng)時(shí)鐘,同時(shí)KeyCount變量+1;
3,在SysTick - Tkey<=1500時(shí),如果還有按鍵響應(yīng),就KeyCount++;
4,當(dāng)SysTick - TKey>1500時(shí),執(zhí)行switch(KeyCount), break后KeyCount變量清零。
附長(zhǎng)短周期判斷,長(zhǎng)短周期判斷,實(shí)際是檢測(cè)按鍵的連續(xù)性, 需要再加一個(gè)10ms的定時(shí)器做按鍵判斷。在10ms定時(shí)器中,設(shè)定按鍵檢測(cè)標(biāo)志,并記錄SysTick,如按下時(shí),TFlag = 1; KeyDelay = SysTick;這個(gè)操作記得加鎖,只執(zhí)行一次。 當(dāng)檢測(cè)到按鍵彈起,TFlag = 0;  然后判斷 SysTick - KeyDelay是否大于500,如果大于就是長(zhǎng)按鍵,KeyCount += 10;如果SysTick - KeyDelay小于500ms,就是短按鍵,KeyCount ++ ;  KeyCount 十位就是長(zhǎng)按次數(shù),個(gè)位是短按次數(shù)。   SysTick - Tkey > 1500時(shí),記得清理keyCount。

作者: dzbj    時(shí)間: 2021-4-8 12:32
用一個(gè)變量當(dāng)計(jì)數(shù)器 每按一下按鍵 計(jì)數(shù)器+一次 然后判斷變量值 運(yùn)行對(duì)應(yīng)的部分 大致框架如下 細(xì)節(jié)還需要補(bǔ)上 比如防抖什么的

if(key==1)
{
keynum++;
if(keynum==10)
{
keynum=0;//假設(shè)10種流水方式
}
}

if(keynum==0)
{
停止流水或關(guān)燈
}
else if(keynum==1)
{
流水1
}
else if(........)
{

}
作者: Dieouy    時(shí)間: 2021-4-8 13:13
這個(gè)問(wèn)題解決的,現(xiàn)在新的問(wèn)題是通過(guò)按鍵

比如按鍵中間間隔延時(shí)實(shí)現(xiàn)兩長(zhǎng)一短,或者兩短一長(zhǎng)這樣的判斷。

暫時(shí)思路是通過(guò)延時(shí)來(lái)實(shí)現(xiàn):
檢測(cè)按鍵是否按下,按下后等待500ms又按下后在等待1000ms后按下就是兩短一長(zhǎng)。兩長(zhǎng)一短同理,但是實(shí)現(xiàn)起來(lái)有一個(gè)代碼我有點(diǎn)蒙蔽。
作者: Dieouy    時(shí)間: 2021-4-8 13:13
dzbj 發(fā)表于 2021-4-8 12:32
用一個(gè)變量當(dāng)計(jì)數(shù)器 每按一下按鍵 計(jì)數(shù)器+一次 然后判斷變量值 運(yùn)行對(duì)應(yīng)的部分 大致框架如下 細(xì)節(jié)還需要補(bǔ) ...

這個(gè)實(shí)現(xiàn)的不是連續(xù)按鍵,是每一次按鍵對(duì)應(yīng)的事件吧。
作者: Dieouy    時(shí)間: 2021-4-8 14:31
突然想,能不能用按鍵中間時(shí)間間隔實(shí)現(xiàn)莫爾斯電碼的輸入。
作者: Dieouy    時(shí)間: 2021-4-8 14:51
#include<reg52.h>
#define N_key    0              //無(wú)鍵
#define S_key    1              //單鍵
#define D_key    2              //雙鍵
#define L_key    3              //長(zhǎng)鍵
#define C_key    4              //三擊鍵
#define E_key    5              //四擊鍵
#define F_key    6              //兩短一長(zhǎng)擊建
#define key_state_0 0
#define key_state_1 1
#define key_state_2 2
#define key_state_3 3
#define key_state_4 4
#define key_state_5 5
sbit key_input = P2^0;    // 按鍵輸入口
unsigned char time_10ms_ok = 0;
unsigned char key = 0;

unsigned char key_driver(void)
{
    static unsigned char key_state = key_state_0, key_time = 0;
    unsigned char  key_return = N_key;
        bit key_press;

    key_press = key_input;                    // 讀按鍵I/O電平

    switch (key_state)
    {
      case key_state_0:                              // 按鍵初始態(tài)
        if (key_press) key_state = key_state_1;      // 鍵被按下,狀態(tài)轉(zhuǎn)換到按鍵消抖和確認(rèn)狀態(tài)
        break;
      
      case key_state_1:                      // 按鍵消抖與確認(rèn)態(tài)
        if (key_press)
        {
             key_time = 0;                   //  
             key_state = key_state_2;   // 按鍵仍然處于按下,消抖完成,狀態(tài)轉(zhuǎn)換到按下鍵時(shí)間的計(jì)時(shí)狀態(tài),但返回的還是無(wú)鍵事件
        }
        else
             key_state = key_state_0;   // 按鍵已抬起,轉(zhuǎn)換到按鍵初始態(tài)。此處完成和實(shí)現(xiàn)軟件消抖,其實(shí)按鍵的按下和釋放都在此消抖的。
        break;
      
      case key_state_2:
        if(!key_press)
        {
             key_return = S_key;        // 此時(shí)按鍵釋放,說(shuō)明是產(chǎn)生一次短操作,回送S_key
             key_state = key_state_0;   // 轉(zhuǎn)換到按鍵初始態(tài)
        }
        else if (++key_time >= 100)     // 繼續(xù)按下,計(jì)時(shí)加10ms(10ms為本函數(shù)循環(huán)執(zhí)行間隔)
        {
             key_return = L_key;        // 按下時(shí)間>1000ms,此按鍵為長(zhǎng)按操作,返回長(zhǎng)鍵事件
             key_state = key_state_3;   // 轉(zhuǎn)換到等待按鍵釋放狀態(tài)
        }
        break;

      case key_state_3:                 // 等待按鍵釋放狀態(tài),此狀態(tài)只返回?zé)o按鍵事件
        if (!key_press) key_state = key_state_0; //按鍵已釋放,轉(zhuǎn)換到按鍵初始態(tài)
        break;
    }
    return key_return;
}

/*=============
中間層按鍵處理函數(shù),調(diào)用低層函數(shù)一次,處理雙擊事件的判斷,返回上層正確的無(wú)鍵、單鍵、雙鍵、長(zhǎng)鍵4個(gè)按鍵事件。
本函數(shù)由上層循環(huán)調(diào)用,間隔10ms
===============*/

unsigned char key_read(void)
{
    static unsigned char key_m = key_state_0, key_time_1 = 0;
    unsigned char key_return = N_key,key_temp;
     
    key_temp = key_driver();
     
    switch(key_m)
    {
         case key_state_0:
            if (key_temp == S_key )
            {
                 key_time_1 = 0;               // 第1次單擊,不返回,到下個(gè)狀態(tài)判斷后面是否出現(xiàn)雙擊
                 key_m = key_state_1;
            }
            else
                 key_return = key_temp;        // 對(duì)于無(wú)鍵、長(zhǎng)鍵,返回原事件
            break;

          case key_state_1:
            if (key_temp == S_key)             // 又一次單擊(間隔肯定<500ms)
            {
                 key_return = D_key;           // 返回雙擊鍵事件,回初始狀態(tài)
                 key_m = key_state_0;
            }
            else                                
            {                                  // 這里500ms內(nèi)肯定讀到的都是無(wú)鍵事件,因?yàn)殚L(zhǎng)鍵>1000ms,在1s前低層返回的都是無(wú)鍵
                 if(++key_time_1 >= 50&&++key_time_1 <= 75)
                 {
                      key_return = E_key;      // 500ms內(nèi)沒(méi)有再次出現(xiàn)單鍵事件,返回上一次的單鍵事件
                      key_m = key_state_0;     // 返回初始狀態(tài)
                 }
                 else
                                                                         if(++key_time_1 >= 75)

                 {
                      key_return = S_key;      // 500ms內(nèi)沒(méi)有再次出現(xiàn)單鍵事件,返回上一次的單鍵事件
                      key_m = key_state_0;     // 返回初始狀態(tài)
                 }

            }
                                                 
                                                 
                                                 
             break;
               
                return key_return;
}     

void main()
{
        P0 = 0xff;        //IO口初始化
        P2 = 0x00;  //定時(shí)器的初始化                                                  
        TMOD = 0x01;                           //選擇定時(shí)器的工作模式:定時(shí)器0,方式1
        TH0 = (65535 - 10000)/256; //定時(shí)器的初值
        TL0 = (65535 - 10000)%256;
        EA = 1;                                           //開(kāi)打總中斷使能
        ET0 = 1;                                   //打開(kāi)定時(shí)器0 的使能
        TR0 = 1;                                   //打開(kāi)定時(shí)器0 ,開(kāi)始工作

        while(1)
        {
                if(time_10ms_ok)          //time_10ms_ok = 1,表示計(jì)時(shí)到了10MS。(10MS掃描一次按鍵)
                {
                        time_10ms_ok = 0; //清除計(jì)時(shí)10MS標(biāo)志
                        key = key_read(); //調(diào)用掃描按鍵程序,返回一個(gè)鍵值

                        if (key == L_key) //長(zhǎng)按:點(diǎn)亮P1口上的8個(gè)LED燈。(低電平點(diǎn)亮)
                        {
                                P0 = 0x00;
                        }  
            else if(key == D_key)//雙擊:點(diǎn)亮P1口上第二個(gè)LED燈。(低電平點(diǎn)亮)  
            {
                                P0 = 0xfd;
                        }  
            else if(key == S_key)//單擊:點(diǎn)亮P1口上第一個(gè)LED燈。(低電平點(diǎn)亮)  
            {
                                P0 = 0xfe;
                        }
                              else if(key == C_key)//單擊:點(diǎn)亮P1口上第1個(gè)和第二個(gè)LED燈。(低電平點(diǎn)亮)  
            {
                                P0 = 0xfc;//11111100
                        }
                              else if(key == E_key)//單擊:點(diǎn)亮P1口上第1個(gè)和第二個(gè)LED燈。(低電平點(diǎn)亮)  
            {
                                P0 = 0xf0;//11110000
                        }
                               else if(key == F_key)//單擊:點(diǎn)亮P1口上第1個(gè)和第二個(gè)LED燈。(低電平點(diǎn)亮)  
            {
                                P0 = 0x70;//11110000
                        }
                }
        }
}

void timer0(void) interrupt 1        //用的是定時(shí)器0, 這個(gè)“interrupt 1”中的“1”代表1號(hào)中斷即是定時(shí)器0中斷。如果是“0”就是外部中斷0;“2“=外部中斷1;”3“定時(shí)器1中斷;”4“=串行口中斷
{
        TH0 = (65535 - 10000)/256;
        TL0 = (65535 - 10000)%256; //定時(shí)器0的方式1,得在中斷程序中重復(fù)初值。
        time_10ms_ok = 1;  //定時(shí)10MS 的標(biāo)志
}


led.c(117): error C141: syntax error near 'void'

報(bào)錯(cuò),求助。
作者: man1234567    時(shí)間: 2021-4-20 08:23
unsigned char key_read(void) 尾巴上少了個(gè) }




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 狠狠的干狠狠的操 | 91五月婷蜜桃综合 | 精品乱码一区二区三四区视频 | 日韩有码一区二区三区 | 日韩看片 | 视频一区二区中文字幕 | 欧美亚洲激情 | 蜜臀网 | 国产成人一区在线 | 国产特一级黄色片 | 亚洲日本欧美日韩高观看 | 色综合成人网 | 亚洲国产成人精品女人久久久 | 人人玩人人添人人澡欧美 | 免费久久网站 | 日日夜夜精品视频 | 亚洲综合在线一区二区 | 亚洲三区在线观看 | 国产一区二区在线免费观看 | 亚洲精品一区二区在线观看 | 亚洲福利精品 | 亚洲精品成人 | aaa天堂 | 一区二区三区日韩精品 | 嫩草视频免费 | 一区二区三区四区不卡视频 | 免费a级毛片在线播放 | 中文在线一区二区 | 在线日韩中文字幕 | 国产精品18毛片一区二区 | 久久国产一区二区 | 国产精品一区二区不卡 | 91麻豆精品国产91久久久更新资源速度超快 | 欧美国产精品一区二区三区 | 中文字幕影院 | 国产视频三级 | 国产日韩欧美 | 亚洲一区二区久久久 | 欧美日韩国产一区二区三区不卡 | 欧美日韩国产高清 | 在线观看免费av网站 |