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

標(biāo)題: 單片機(jī)通過不同的按鍵來控制LED小燈的開啟時(shí)間的程序問題 [打印本頁(yè)]

作者: xhdz    時(shí)間: 2021-6-23 15:08
標(biāo)題: 單片機(jī)通過不同的按鍵來控制LED小燈的開啟時(shí)間的程序問題
剛學(xué)單片機(jī),在百度上的復(fù)制過來的:
求單片機(jī)通過不同的按鍵來控制LED小燈的開啟時(shí)間的程序,謝謝例如,p0.0~p0.7 八個(gè)按鍵,依次來控制p1.0口低電平的開啟時(shí)間,如:
p0.0口按一下,p1.0口變?yōu)榈碗娖剑掷m(xù)100毫秒后恢復(fù)高電平;
p0.1口按一下,p1.0口變?yōu)榈碗娖剑掷m(xù)200毫秒后恢復(fù)高電平;
依次類推!
程序約簡(jiǎn)單越好!謝謝


#include<reg51.h>
#define uchar unsigned char
uchar time,stand;
sbit led=P1^0;
bit flag=0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
flag=~flag;
if(flag)
    {
    time++;
    if(time>=stand){led=1;TR0=0;}
    }
}
main()
{
uchar sw;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
while(1)
    {
    while(1)
        {
        sw=P0;
        if(sw!=0xff)break;
        }
        time=2;
        sw=~sw;
    while(1)
        {
        sw=sw>>1;
        if(sw!=0)time+=2;
        else break;
        }
        TR0=1;
        led=0;
    }
}



我照上面做的結(jié)果LED燈是常亮。哪位大佬幫我看看程序哪里有問題。
作者: yzwzfyz    時(shí)間: 2021-6-23 16:03
構(gòu)思不好!建議:
1、做個(gè)定時(shí)器,以形成參考時(shí)間鐘。例 如每5ms中斷一次。
2、做個(gè)計(jì)時(shí)器TC,同時(shí)給它做一個(gè)起動(dòng)標(biāo)記TK。
3、每次中斷:
    當(dāng)TK=1時(shí),就將TC-1,如果TC=0,就將p1.0置1,并將TK清0(即停止計(jì)數(shù)不再-1了)。
    當(dāng)TK=0時(shí),就什么也不做。
    初始設(shè)置:TK=0。
4、當(dāng)p0.0口按一下,就讓TK=1,同時(shí)讓TC=100毫秒(20),再將p1.0口變?yōu)榈碗娖健?br />      當(dāng)p0.1口按一下,就讓TK=1,同時(shí)讓TC=200毫秒(40),再將p1.0口變?yōu)榈碗娖健?br /> 你看這樣行不行。
寫程序,要先構(gòu)思方案,畫出流程圖,最后再寫代碼!


作者: 13809829647    時(shí)間: 2021-6-23 16:05
yzwzfyz 發(fā)表于 2021-6-23 16:03
構(gòu)思不好!建議:
1、做個(gè)定時(shí)器,以形成參考時(shí)間鐘。例 如每5ms中斷一次。
2、做個(gè)計(jì)時(shí)器TC,同時(shí)給它做 ...

不錯(cuò)大神作品
作者: xhdz    時(shí)間: 2021-6-23 23:43
yzwzfyz 發(fā)表于 2021-6-23 16:03
構(gòu)思不好!建議:
1、做個(gè)定時(shí)器,以形成參考時(shí)間鐘。例 如每5ms中斷一次。
2、做個(gè)計(jì)時(shí)器TC,同時(shí)給它做 ...

謝謝,剛學(xué),對(duì)您的建議我還做不來,看來得繼續(xù)學(xué)習(xí)。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1