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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

用STc15f104e單片機(jī)做了個(gè)學(xué)習(xí)型紅外遙控開關(guān)程序分享給大家

  [復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 50 黑幣 回復(fù)本帖可獲得 50 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
ID:17109 發(fā)表于 2019-8-27 15:22 | 顯示全部樓層 |閱讀模式
用STc15f104e做了個(gè)學(xué)習(xí)型紅外遙控開關(guān)
是上電學(xué)習(xí)的不帶按鍵的,          上電學(xué)習(xí)指示燈閃爍,按遙控器,指示燈滅了下, 學(xué)習(xí)開機(jī)鍵成功。
指示燈繼續(xù)閃,再按遙控器,指示燈滅了,學(xué)習(xí)關(guān)機(jī)鍵成功,進(jìn)入待機(jī)狀態(tài)。
上電2秒不學(xué)習(xí)退出,進(jìn)入待機(jī)狀態(tài)。

電路原理圖如下:
108_541075_af0a4644c678d93.jpg

這個(gè)是上電學(xué)習(xí)型紅外遙控開關(guān),須要學(xué)習(xí)開,和關(guān),須要學(xué)習(xí)兩只按鍵,

單片機(jī)源程序如下:
#include "STC15F104E.H"
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define CPU_Fosc 12000000UL//12M晶振
#define M   1//時(shí)鐘
#define Tc 100 //us采樣
#define TH_0 (65536-CPU_Fosc/100*Tc/M/10000)/256
#define TL_0 (65536-CPU_Fosc/100*Tc/M/10000)%256
#define TH_1 (65536-CPU_Fosc/100*5/M/10)/256
#define TL_1 (65536-CPU_Fosc/100*5/M/10)%256
#define delaytime 0x83
/*********************************************/
sbit IR = P3^4;//紅外
sbit LED=P3^3;//學(xué)習(xí)指示燈
sbit JIDIANQU=P3^0;//可控硅
uint OKCode;
uint ON,OFF;
uchar tim1,tim2,sec;
bit  shan,IR_ok;
/*********************************************/
union
{
    ulong longcode;
    uchar p[4];
} Code;
/*********************************************/
void Delay(uint t);
void InitTimer();
void IAP_disable();
void byte_write(uint addr, uchar dat);
void SectorErase(uint sector_addr);
uchar byte_read(uint addr);
/********************************************/
/********************* 主函數(shù) *************************/
void main()
{
    P3=0xFF;
    ON=byte_read(0)<<8;
    ON|=byte_read(1);
    OFF=byte_read(0x200)<<8;
    OFF|=byte_read(0x201);
    InitTimer();
    tim1=tim2=sec=0;

    while(sec<2)
    {  LED=shan;
        if(IR_ok)
        {
            SectorErase(0);
            byte_write(0,Code.p[1]);
            byte_write(1,Code.p[2]);
            ON=OKCode;
            IR_ok=0;
            LED=1;
            Delay(400);
            tim1=tim2=sec=0;
            while(sec<2)
            {
                    LED=shan;
                if(IR_ok)
                {
                    SectorErase(0x200);
                    byte_write(0x200,Code.p[1]);
                    byte_write(0x201,Code.p[2]);
                    OFF=OKCode;
                    IR_ok=0;

                    break;
                }
            }
            break;
        }
    }
    LED=1;
    TR1=0;
    while(1)
    {
        if(IR_ok)
        {
            if(OKCode==ON)
            {
                JIDIANQU=0;
            }
            if(OKCode==OFF)
            {
                JIDIANQU=1;
            }
            IR_ok=0;
        }
    }
}
/***********************************/
void InitTimer()
{
#if (M==1)
    AUXR=0xc0;//定時(shí)器1T時(shí)鐘
#endif
    TH0=TH_0;
    TL0=TL_0;
    TH1=TH_1;
    TL1=TL_1;
    EA=ET0=TR0=ET1=TR1=1;
}
/***********************************/
void Delay(uint t)
{
    uchar a,b;
    for(; t>0; t--)
        for(b=222; b>0; b--)
            for(a=12; a>0; a--)
            {
                ;
            }
}
/***********************************/
void timer1() interrupt 3 using 1
{
    if(++tim1>=40)
    {
        tim1=0;
        shan=!shan;
        if(++tim2>=5)
        {
            tim2=0;
            ++sec;

        }
    }
}
/***********************************/
void timer0() interrupt 1  using 2
{
        static uint Step;
    static uchar Count;
        static bit IRb,IRa,IRsync;

    if(IR_ok)
    {
        return;
    }
    IRb = IRa;
    IRa = IR;
    ++Step;
    if(IRb && !IRa)
    {
        if(Step>(14000/Tc))
        {
            IRsync=0;
        }
        else if(IRsync)
        {
            if(Step>(3000/Tc))
            {
                IRsync=0;
            }
            else
            {
                Code.longcode<<=1;
                if(Step>(1500/Tc))
                {
                    Code.longcode|=1;
                }
                if (--Count==0)
                {
                    if(Code.p[2]=~Code.p[3])
                    {
                        OKCode=Code.longcode>>8;
                        IR_ok=1;
                    }
                    IRsync=0;
                }
            }
        }
        else if (Step>(9000/Tc-4)&&Step<(13500/Tc+4))
        {
            IRsync=1 ;
            Count=32;
        }
       Step=0;
    }
}
/***********************************/
void byte_write(uint addr, uchar dat)
{
    IAP_CONTR=delaytime;
    IAP_ADDRH=addr>>8;
    IAP_ADDRL=addr;
    IAP_CMD=0x02;
    IAP_DATA=dat;
    IAP_TRIG=0x5a;
    IAP_TRIG=0xa5;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    IAP_disable();
}
/*********************************/
void SectorErase(uint sector_addr)
{
    IAP_CONTR=delaytime;
    IAP_ADDRH=(sector_addr&0xfe00)>>8;
    IAP_ADDRL=sector_addr;
    IAP_CMD=0x03;
    IAP_TRIG=0x5a;
    IAP_TRIG=0xa5;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    IAP_disable();
}
/********************************/
uchar byte_read(uint addr)
{
    IAP_CONTR=delaytime;
    IAP_ADDRH=addr>>8;
    IAP_ADDRL=addr;
    IAP_CMD=0x01;
    IAP_TRIG=0x5a;
    IAP_TRIG=0xa5;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    IAP_disable();
    return (IAP_DATA);
}
/**********************************/
void IAP_disable()
{
    IAP_CONTR=0;
    IAP_CMD=0;
    IAP_TRIG=0;
    IAP_ADDRH=0x80;
    IAP_ADDRL=0;
}
/*********************************/
/*uchar reverse8( uchar c )
{
    c=(c&0x55)<<1|(c&0xAA)>>1;
    c=(c&0x33)<<2|(c&0xCC)>>2;
    c=(c&0x0F)<<4|(c&0xF0)>>4;
    return c;
}*/

那位師博能修改一下程序改成學(xué)習(xí)一只按鍵就有開,和關(guān)的功能,修改分亨一下謝謝大家!

全部資料51hei下載地址:
上電自動(dòng)學(xué)習(xí)型紅外遙控開關(guān).rar (1.49 KB, 下載次數(shù): 183)

評分

參與人數(shù) 2黑幣 +59 收起 理由
AAA_MCU + 9 很給力!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:604426 發(fā)表于 2019-8-27 17:53 | 顯示全部樓層
好資源,收藏先
回復(fù)

使用道具 舉報(bào)

ID:69311 發(fā)表于 2019-8-27 23:25 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)!謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:67356 發(fā)表于 2019-8-28 05:36 | 顯示全部樓層
好資源,收藏先
回復(fù)

使用道具 舉報(bào)

ID:343102 發(fā)表于 2019-8-28 07:04 | 顯示全部樓層
可用反相函數(shù)完成單鍵開和關(guān)。
回復(fù)

使用道具 舉報(bào)

ID:17109 發(fā)表于 2019-8-28 10:18 來自手機(jī) | 顯示全部樓層
風(fēng)158 發(fā)表于 2019-8-28 07:04
可用反相函數(shù)完成單鍵開和關(guān)。

勞煩師傅修改上傳一下謝謝
回復(fù)

使用道具 舉報(bào)

ID:343102 發(fā)表于 2019-8-28 19:30 | 顯示全部樓層
你這個(gè)程序用了T0和T1兩個(gè)定時(shí)器,無法使用性能更好的stc15w系列。我有一個(gè)程序只用T0一個(gè)定時(shí)器,兼容性更強(qiáng),并根據(jù)你的電路做了修改。已發(fā)新帖。等審核通過后可搜索:兩路學(xué)習(xí)型風(fēng)扇遙控開關(guān)帶自然風(fēng)
回復(fù)

使用道具 舉報(bào)

ID:17109 發(fā)表于 2019-8-29 10:22 | 顯示全部樓層
風(fēng)158 發(fā)表于 2019-8-28 19:30
你這個(gè)程序用了T0和T1兩個(gè)定時(shí)器,無法使用性能更好的stc15w系列。我有一個(gè)程序只用T0一個(gè)定時(shí)器,兼容性更 ...

我還有一個(gè)15F104W版本的  ,功能也是一樣,上電學(xué)習(xí)的不帶按鍵的,上傳給你看看,
修改一下程序改成學(xué)習(xí)一只按鍵就有開,和關(guān)的功能,修改分亨一下謝謝
回復(fù)

使用道具 舉報(bào)

ID:17109 發(fā)表于 2019-8-29 10:23 | 顯示全部樓層
15F104W學(xué)習(xí)遙控開關(guān)

15F104W學(xué)習(xí)遙控開關(guān).rar

4.08 KB, 下載次數(shù): 83, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

ID:343102 發(fā)表于 2019-8-29 11:50 | 顯示全部樓層
我剛發(fā)的15W104的遙控程序,兼容15F104。在這里:http://www.zg4o1577.cn/bbs/dpj-169020-1.html
回復(fù)

使用道具 舉報(bào)

ID:17109 發(fā)表于 2019-8-29 15:44 來自手機(jī) | 顯示全部樓層
你這個(gè)是控制兩路的,能夠用我這個(gè)控制一路的程序修改嗎謝謝
回復(fù)

使用道具 舉報(bào)

ID:512205 發(fā)表于 2019-8-29 16:30 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)!謝謝分享!!
回復(fù)

使用道具 舉報(bào)

ID:343102 發(fā)表于 2019-8-29 19:13 | 顯示全部樓層
我上傳的那個(gè)兩路遙控程序已被我改成一路了,一個(gè)按鍵控制開關(guān),另一個(gè)按鍵只是控制延時(shí),形成自然風(fēng)。實(shí)際使用時(shí)還可以只學(xué)習(xí)一個(gè)按鍵,僅實(shí)現(xiàn)開關(guān)機(jī)就行。
有興趣的話就自己改程序吧,DIY的樂趣就在于自己動(dòng)手。我也是剛玩單片機(jī)沒多久。
回復(fù)

使用道具 舉報(bào)

ID:601770 發(fā)表于 2019-8-29 19:19 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:391781 發(fā)表于 2019-8-30 09:30 | 顯示全部樓層
感謝分享。學(xué)習(xí)學(xué)習(xí)!
回復(fù)

使用道具 舉報(bào)

ID:17109 發(fā)表于 2019-8-31 06:48 來自手機(jī) | 顯示全部樓層
風(fēng)158 發(fā)表于 2019-8-29 11:50
我剛發(fā)的15W104的遙控程序,兼容15F104。在這里:http://www.zg4o1577.cn/bbs/dpj-169020-1.html

師傅你好:你會(huì)給這程序用中文注釋定義嗎,上傳過來,謝謝
回復(fù)

使用道具 舉報(bào)

ID:214520 發(fā)表于 2019-8-31 22:00 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)!謝謝分享!
回復(fù)

使用道具 舉報(bào)

ID:17109 發(fā)表于 2019-9-1 18:43 來自手機(jī) | 顯示全部樓層
zimo123 發(fā)表于 2019-8-31 22:00
學(xué)習(xí)學(xué)習(xí)!謝謝分享!

師傅你好:你會(huì)給這程序用中文注釋定義嗎,上傳過來,謝謝
回復(fù)

使用道具 舉報(bào)

ID:416951 發(fā)表于 2019-9-1 23:10 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:596378 發(fā)表于 2019-9-2 09:32 | 顯示全部樓層
感謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:32289 發(fā)表于 2019-9-3 20:15 | 顯示全部樓層

15F104W學(xué)習(xí)遙控開關(guān)
回復(fù)

使用道具 舉報(bào)

ID:96744 發(fā)表于 2019-9-4 12:28 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)!謝謝分享!
回復(fù)

使用道具 舉報(bào)

ID:515878 發(fā)表于 2019-9-6 07:55 | 顯示全部樓層
不錯(cuò)不錯(cuò),學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:568756 發(fā)表于 2019-9-12 13:38 | 顯示全部樓層
我整了個(gè)電路,咋不能工作呢?
回復(fù)

使用道具 舉報(bào)

ID:138448 發(fā)表于 2019-9-12 13:59 | 顯示全部樓層
一直以來,都想自己搞個(gè)遙控器。謝謝分享。
回復(fù)

使用道具 舉報(bào)

ID:138119 發(fā)表于 2019-9-20 01:18 | 顯示全部樓層
if(IR_ok)
        {
            if(OKCode==ON)
            {
                JIDIANQU=~JIDIANQU;
            }
            IR_ok=0;
        }
回復(fù)

使用道具 舉報(bào)

ID:138119 發(fā)表于 2019-9-20 01:19 | 顯示全部樓層
if(IR_ok)
{
    if(OKCode==ON)
    {
        if(JIDIANQU==1)
            JIDIANQU=0;
        else
            JIDIANQU=1;
    }
    if(OKCode==OFF)
    {
        if(JIDIANQU==1)
            JIDIANQU=0;
        else
            JIDIANQU=1;
    }
    IR_ok=0;
}
回復(fù)

使用道具 舉報(bào)

ID:391781 發(fā)表于 2019-9-20 08:51 | 顯示全部樓層
感謝分享。可以借鑒學(xué)習(xí)學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

ID:17109 發(fā)表于 2019-9-20 11:47 | 顯示全部樓層
yfpc2006 發(fā)表于 2019-9-20 01:19
if(IR_ok)
{
    if(OKCode==ON)

師博你好不知道什么修改可以把,修改好的復(fù)制上傳嗎?謝謝
回復(fù)

使用道具 舉報(bào)

ID:138119 發(fā)表于 2019-9-20 19:33 | 顯示全部樓層
ll13536121668 發(fā)表于 2019-9-20 11:47
師博你好不知道什么修改可以把,修改好的復(fù)制上傳嗎?謝謝

你想表達(dá)什么啊?
回復(fù)

使用道具 舉報(bào)

ID:138119 發(fā)表于 2019-9-20 19:37 | 顯示全部樓層
        if(IR_ok)
        {
            if(OKCode==ON)
            {
                //JIDIANQU=0;
                                if(JIDIANQU == 1)
                                        JIDIANQU = 0;
                                else
                                        JIDIANQU = 1;

            }
            if(OKCode==OFF)
            {
                //JIDIANQU=1;
                                if(JIDIANQU == 1)
                                        JIDIANQU = 0;
                                else
                                        JIDIANQU = 1;
            }
            IR_ok=0;
        }

51黑論壇_上電自動(dòng)學(xué)習(xí)型紅外遙控開關(guān).rar

7.47 KB, 下載次數(shù): 41, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

ID:17109 發(fā)表于 2019-9-22 01:20 來自手機(jī) | 顯示全部樓層
yfpc2006 發(fā)表于 2019-9-20 19:37
if(IR_ok)
        {
            if(OKCode==ON)

測試了原來也是學(xué)習(xí)兩次,兩只紅外遙控按鍵,都能單獨(dú)開和關(guān),師傅可以最增加一路端口,用兩只紅外遙控按鍵,分別給兩只繼電器單獨(dú)控制嗎?謝謝修改傳上傳
回復(fù)

使用道具 舉報(bào)

ID:402515 發(fā)表于 2019-9-22 16:29 | 顯示全部樓層
謝謝樓主分享                  
回復(fù)

使用道具 舉報(bào)

ID:17109 發(fā)表于 2019-9-23 08:44 來自手機(jī) | 顯示全部樓層
ll13536121668 發(fā)表于 2019-9-22 01:20
測試了原來也是學(xué)習(xí)兩次,兩只紅外遙控按鍵,都能單獨(dú)開和關(guān),師傅可以最增加一路端口,用兩只紅外遙控按 ...

師傅可以最增加一路端口,用兩只紅外遙控按鍵,分別給兩只繼電器單獨(dú)控制嗎?謝謝修改
上傳
回復(fù)

使用道具 舉報(bào)

ID:109115 發(fā)表于 2019-10-15 11:12 | 顯示全部樓層
謝謝樓主分享。收藏學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:109115 發(fā)表于 2019-10-15 11:12 | 顯示全部樓層
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

ID:423660 發(fā)表于 2019-10-19 16:48 | 顯示全部樓層
謝謝了,在學(xué)習(xí)中。
回復(fù)

使用道具 舉報(bào)

ID:618933 發(fā)表于 2019-10-20 11:42 | 顯示全部樓層
感謝分享!!!
回復(fù)

使用道具 舉報(bào)

ID:385168 發(fā)表于 2020-1-7 05:29 | 顯示全部樓層
一直在找這方面的資料,謝謝分享。
回復(fù)

使用道具 舉報(bào)

ID:67857 發(fā)表于 2020-1-12 12:37 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)!謝謝分享!!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人在线播放 | 久久99精品视频 | 中文字幕一区二区三区在线观看 | 亚洲精品久久久久久久久久久 | 国产一区二区三区四区三区四 | 亚洲a毛片 | 久久综合狠狠综合久久综合88 | 天天曰夜夜操 | 久久久成人网 | 国产亚洲一区二区三区在线 | 日韩国产免费观看 | 成人精品视频在线观看 | 国产亚洲欧美在线视频 | 国产高清在线观看 | 四色永久| 91五月婷蜜桃综合 | 欧美日韩高清 | 欧美性成人 | 国产日韩一区二区三免费高清 | 91av免费观看 | 色综合国产| 中文字幕不卡视频在线观看 | 日韩五月天| www日本在线播放 | 一区二区日韩精品 | 成人精品国产免费网站 | 国产情侣一区 | 日韩在线视频一区二区三区 | 一区二区欧美在线 | 国产欧美性成人精品午夜 | 一级特黄网站 | 国产乱码精品一区二区三区忘忧草 | 成人在线免费电影 | 自拍偷拍中文字幕 | 男女精品网站 | 波多野结衣一二三区 | 国产日韩欧美 | 亚洲欧洲精品在线 | 久久国产视频播放 | 欧美一级黑人aaaaaaa做受 | 一级大黄色片 |