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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2600|回復(fù): 10
收起左側(cè)

STC89C52單片機(jī)流水燈的相關(guān)問(wèn)題

[復(fù)制鏈接]
ID:650261 發(fā)表于 2019-11-26 20:33 | 顯示全部樓層 |閱讀模式
我是要寫(xiě)一個(gè)控制LED燈從左到右再?gòu)挠业阶笠来吸c(diǎn)亮的程序,然后用三個(gè)鍵分別控制依次點(diǎn)亮LED燈的間隔,為200ms,1000ms,3000ms,但是用delay軟件延時(shí)的話(huà),會(huì)導(dǎo)致按下鍵盤(pán)的時(shí)候,程序可能會(huì)處在delay函數(shù)里面,無(wú)法響應(yīng),要是加入中斷的話(huà),是不是需要用兩個(gè)計(jì)時(shí)器,一個(gè)控制鍵盤(pán)定時(shí)掃描,一個(gè)來(lái)點(diǎn)亮LED燈,但是這樣的話(huà),鍵盤(pán)掃描的程序會(huì)不會(huì)在中斷里面跑飛呀。。思路不對(duì)的話(huà),大家能幫我指點(diǎn)以下嗎?苦惱了好幾天了
回復(fù)

使用道具 舉報(bào)

ID:650297 發(fā)表于 2019-11-26 21:09 | 顯示全部樓層
寫(xiě)3個(gè)延時(shí)函數(shù),分別調(diào)用
回復(fù)

使用道具 舉報(bào)

ID:650297 發(fā)表于 2019-11-26 21:10 | 顯示全部樓層
本帖最后由 yanguang123 于 2019-11-26 23:07 編輯

剛剛看錯(cuò)了,一般來(lái)說(shuō)很少出現(xiàn)跑飛,更何況是這么簡(jiǎn)單的程序,一個(gè)定時(shí)器就夠了,10ms執(zhí)行一遍,再定義三個(gè)變量,定時(shí)器每執(zhí)行一次三個(gè)變量各加一,200ms就是等待到累加20次進(jìn)行執(zhí)行對(duì)應(yīng)點(diǎn)亮的函數(shù),然后對(duì)應(yīng)計(jì)數(shù)的變量清零,1000ms,1500ms以此類(lèi)推,同時(shí)在10ms定時(shí)器里檢測(cè)三個(gè)按鍵對(duì)應(yīng)電平,按下時(shí)記錄標(biāo)志位,進(jìn)行消抖處理。更具標(biāo)志位判斷按鍵是否第二次按下,再執(zhí)行對(duì)應(yīng)函數(shù)改變計(jì)數(shù)到多少次這個(gè)閾值。
回復(fù)

使用道具 舉報(bào)

ID:650312 發(fā)表于 2019-11-26 21:17 | 顯示全部樓層
一個(gè)定時(shí)器兩個(gè)定時(shí)器都可以。只要程序沒(méi)錯(cuò)誤是不會(huì)跑飛的。
回復(fù)

使用道具 舉報(bào)

ID:470332 發(fā)表于 2019-11-27 09:32 | 顯示全部樓層
延時(shí)用定時(shí)器,在主循環(huán)查詢(xún)標(biāo)志位
回復(fù)

使用道具 舉報(bào)

ID:625113 發(fā)表于 2019-11-27 10:06 來(lái)自手機(jī) | 顯示全部樓層
延時(shí)函數(shù)就行了吧
回復(fù)

使用道具 舉報(bào)

ID:625113 發(fā)表于 2019-11-27 10:06 來(lái)自手機(jī) | 顯示全部樓層
定時(shí)準(zhǔn)確可以用定時(shí)器中斷
回復(fù)

使用道具 舉報(bào)

ID:650261 發(fā)表于 2019-11-27 14:41 | 顯示全部樓層
感謝大家啦~~已經(jīng)調(diào)試成功了(^ ^)
回復(fù)

使用道具 舉報(bào)

ID:345541 發(fā)表于 2019-11-27 21:13 | 顯示全部樓層
能發(fā)一下你的設(shè)計(jì)嗎  樓主
回復(fù)

使用道具 舉報(bào)

ID:396245 發(fā)表于 2019-11-27 22:49 | 顯示全部樓層
鍵盤(pán)掃描放主函數(shù),流水燈刷新放定時(shí)器中斷。
回復(fù)

使用道具 舉報(bào)

ID:650261 發(fā)表于 2019-11-29 12:28 | 顯示全部樓層
123yzyrqzs 發(fā)表于 2019-11-27 21:13
能發(fā)一下你的設(shè)計(jì)嗎  樓主

#include<reg52.h>
#include<intrins.h>      
#define uint unsigned int
#define uchar unsigned char
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
void delay();
uint temp,flag,k,aa,num,time;
void main()
{       
        temp=0xfe;
        P1=temp;
        P3=0xff;
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        time=20;
        while(1)
        {
                if(flag)
                {
                        if(k<=7)
                        {
                                flag=0;
                                temp=_crol_(temp,1);
                                P1=temp;
                                k++;
                        }
                        if(k>7)
                        {
                                flag=0;
                                temp=_cror_(temp,1);
                                P1=temp;
                                k++;
                        }
                        if(k==15)
                                k=0;
                        if(k==7)
                                k=8;
                }
        }
}
void delay(uint z)//1毫秒延時(shí)函數(shù)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void timer0()interrupt 1
{
        TH0=(65536-10000)/256;
        TL0=(65536-10000)%256;
        aa++;
        num++;
        if(aa==2)
        {
                aa=0;
                if(key1==0||key2==0||key3==0)
                {
                        delay(5);//消抖                                                                                                                                                                                                       
                        if(key1==0)          //再次檢測(cè)
                        {
                                time=20;
                                num=0;               
                        }
                        if(key2==0)          //再次檢測(cè)
                        {
                                time=100;
                                num=0;                       
                        }
                        if(key3==0)          //再次檢測(cè)
                        {
                                time=300;
                                num=0;                       
                        }
                       
                        while(!key1);//按鍵未返回,一直死循環(huán)
                        delay(5);
                        while(!key1);  
                }
        }
                if(num==time)
                        {
                                flag=1;
                                num=0;
                        }

}
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久草视频在线播放 | 精品国产一区探花在线观看 | 日韩av福利在线观看 | 狠狠干天天干 | 亚洲高清在线免费观看 | 91色网站| 欧美一区二区三区在线观看视频 | 精品美女视频在线观看免费软件 | 亚洲精选久久 | 日韩欧美国产精品 | 国产精品视频一二三区 | 中文字幕在线播放不卡 | 午夜天堂精品久久久久 | 在线观看精品 | 91在线精品一区二区 | 日韩欧美一区二区三区四区 | 日韩成人在线观看 | 色网在线播放 | 亚洲一区精品在线 | 亚洲成人网在线播放 | 久久久成人一区二区免费影院 | 中文字幕第十五页 | 国产精品高潮呻吟久久av黑人 | 国产一级影片 | 97久久久久久 | 国产成人福利 | 日韩福利片 | 午夜免费福利影院 | 亚洲国产一区二区三区, | 夜夜夜夜夜夜曰天天天 | 国产精品美女久久久久久免费 | 午夜羞羞| 午夜小视频在线播放 | 九九久久国产精品 | 欧美日韩精品久久久免费观看 | 欧美在线观看一区 | 亚洲精品一区二三区不卡 | 日韩欧美中文字幕在线观看 | 精品国产一区二区三区久久久四川 | 亚洲精品一区中文字幕乱码 | 日韩电影免费在线观看中文字幕 |