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

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

QQ登錄

只需一步,快速開始

搜索

求助 兩個(gè)判斷,需要一直檢測(cè),不用定時(shí)器可以實(shí)現(xiàn)嗎?

查看數(shù): 3322 | 評(píng)論數(shù): 16 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁(yè)<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2020-11-6 17:37

正文摘要:

該怎么寫程序?想實(shí)現(xiàn)按下開/關(guān)按鈕后,之后進(jìn)行一直判斷加減速按鈕的檢測(cè)。謝啦!

回復(fù)

ID:213173 發(fā)表于 2020-11-8 13:04
除了搶答器之類要求按鍵及時(shí)響應(yīng)外,其它按鍵控制電路沒有這么高要求,20ms響應(yīng)根本感覺不出來(lái)。所以按鍵掃描程序放在主循環(huán)中不會(huì)有什么問題。給你寫個(gè)示例,基本邏輯關(guān)系一看就明白。
#include <reg51.H>
#define uchar unsigned char
#define uint  unsigned int

sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;

uchar PWM=0;

void key_scan()
{
        static uchar count=0;
        static bit key_sign=0;
        static bit flag=0;
        if(!key1||!key2||!key3)
        {
                if(++count>=10 && key_sign==0)//消抖
                {
                        key_sign=1;
                        if(!key1)                        //開關(guān)
                        {
                                flag=~flag;
                                if(flag==1)
                                        PWM=50;                //初速
                                else PWM=0;                //停止
                        }
                        if(!key2 && flag==1)//加速
                        {
                                if(PWM<100)
                                        PWM++;
                        }
                        if(!key3 && flag==1)//減速
                        {
                                if(PWM>10)
                                        PWM--;
                        }
                }
        }
        else
        {
                count=1;
                key_sign=0;
        }
}
void main()
{
        while(1)
        {
                key_scan();
//                其它任務(wù);
        }
}
ID:595380 發(fā)表于 2020-11-8 11:13
shiwowo 發(fā)表于 2020-11-8 10:52
按鍵掃描中斷  我也是這個(gè)建議

嗯嗯  嗯嗯
ID:595380 發(fā)表于 2020-11-8 11:10
123456czst 發(fā)表于 2020-11-8 00:16
還是用中斷的辦法好,畢竟單片機(jī)有5個(gè)中斷源呢

兩個(gè)定時(shí)器給了串口與PWM
ID:595380 發(fā)表于 2020-11-8 11:09
xqleft 發(fā)表于 2020-11-7 13:46
來(lái)來(lái)來(lái) ,你告訴我中斷被什么用了? 其他的都不能用中斷?

串口通信與PWM
ID:840485 發(fā)表于 2020-11-8 10:52
按鍵掃描中斷  我也是這個(gè)建議
ID:278179 發(fā)表于 2020-11-8 10:51
if(bt0){}//開關(guān)
else if(b0){ }//加速
else if(b1){ }//減速
ID:278179 發(fā)表于 2020-11-8 10:48
if(bt0){}
ID:420836 發(fā)表于 2020-11-8 09:24
使用按鍵掃描中斷
ID:836364 發(fā)表于 2020-11-8 00:16
還是用中斷的辦法好,畢竟單片機(jī)有5個(gè)中斷源呢
ID:836364 發(fā)表于 2020-11-8 00:15
但是查詢的辦法有點(diǎn)不好,會(huì)特別耗費(fèi)單片機(jī)的系統(tǒng)內(nèi)部資源
ID:836364 發(fā)表于 2020-11-8 00:15
用查詢的辦法,用if語(yǔ)句判斷B0和B1的狀態(tài)while(1){if(b0 > 0)......,if(b1>0)....}
ID:548551 發(fā)表于 2020-11-7 13:46
51_users 發(fā)表于 2020-11-6 20:34
51 中的 兩個(gè)中斷已被占用

來(lái)來(lái)來(lái) ,你告訴我中斷被什么用了? 其他的都不能用中斷?
ID:654028 發(fā)表于 2020-11-6 20:49
delay延時(shí),死等
ID:68468 發(fā)表于 2020-11-6 20:40
很簡(jiǎn)單呀,把加減速按鈕檢測(cè)放在主函數(shù)中不就一直檢測(cè)嗎?
ID:595380 發(fā)表于 2020-11-6 20:34

51 中的 兩個(gè)中斷已被占用
ID:466505 發(fā)表于 2020-11-6 18:50
用中斷唄

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

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

快速回復(fù) 返回頂部 返回列表