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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7227|回復: 4
收起左側

單片機按鍵程序單擊雙擊長按有不同功能(c語言源程序)

[復制鏈接]
ID:223191 發表于 2017-8-14 14:34 | 顯示全部樓層 |閱讀模式
uchar S_key = 2,D_key = 1,L_key = 3,N_key = 0;
bit b_key_led;
bit b_key_smg;

uchar key_drive(void)
{
        static uchar key_state;
        static uint key_time = 0;
        uchar key_return;
        key_return = N_key;

        switch(key_state)
        {
                case 0:
                {
                        if(!S1)
            {
                                key_state = 1;
                        }
                };break;
                case 1:
                {
                        if(!S1)
                        {
                                key_time = 0;
                                key_state = 2;
                        }
                        else
                        {
                                key_state = 0;
                        }
                };break;
                case 2:
                {
                        if(S1)
                        {
                                key_return = D_key;
                                key_state = 0;
                        }
                        else if(++key_time >= 1500)
                        {
                                key_return = L_key;
                                key_state = 3;
                        }
                };break;
                case 3:
                {
                        if(S1)
                        {
                                key_state = 0;
                        }
                };break;
        }
        return key_return;
}

uchar key_read(void)
{
        static uchar key_state_1,key_time_1 = 0;
        uchar key_return,key_temp;

        key_temp = key_drive();
        switch(key_state_1)
        {
                case 0:
                {
                        if(key_temp == D_key)
                        {
                                key_time_1 = 0;
                                key_state_1 = 1;
                        }
                        else
                        {
                                key_return = key_temp;
                        }
                };break;
                case 1:
                {
                        if(key_temp == D_key)
                        {
                                key_return = S_key;
                                key_state_1 = 0;
                        }
                        else if(++key_time_1 >= 250)
                        {
                                key_return = D_key;
                                key_state_1 = 0;
                        }
                };break;
        }
        return key_return;
}
void key_on(void)
{
        uchar state_1;
        state_1 = key_read();
        if(state_1 == S_key)     //雙擊
        {
                /*雙擊按鍵實現呼吸燈功能*/
                state_1 = 0;
                b_key_led = 1;
                b_key_smg = 0;
                seg = 0x00;
                seg_l = 0x00;
        }
        if(state_1 == D_key)     //單按
        {
                /*單擊實現數碼管走時*/
                state_1 = 0;
                b_key_smg = 1;
                b_key_led = 0;
                PW1D = 0x0000;
        }
        if(state_1 == L_key)     //長按
        {
                /*長按,實現你要實現的功能*/
        }
}


回復

使用道具 舉報

ID:188935 發表于 2017-8-15 10:24 | 顯示全部樓層
這不是我寫的嗎?尷尬
回復

使用道具 舉報

ID:92231 發表于 2017-8-15 18:58 來自觸屏版 | 顯示全部樓層
渴望壯大 發表于 2017-8-15 10:24
這不是我寫的嗎?尷尬

能加點注釋不,大白看不懂程序
回復

使用道具 舉報

ID:222635 發表于 2017-8-16 08:59 | 顯示全部樓層

能加點注釋不,謝謝!
回復

使用道具 舉報

ID:227864 發表于 2017-8-16 10:58 | 顯示全部樓層
我也同意加點注釋就理能看明白 了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

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