wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5202|回復: 4
打印 上一主題 下一主題
收起左側

紅外使用單片機外部中斷+定時器解碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:61973 發表于 2018-8-5 21:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
包含了紅外解碼,自動根據波特率設置定時器溢出率以及使用定時器延時
串口部分:
void UART1_Init(u32 Boud)
{
        u16 Temp = (65536 - FOSC/Boud/4);
        SCON = 0x50;
    T2L = Temp;        
    T2H = Temp >> 8;
    AUXR |= 0x15;                                //啟動定時器
    ES = 1;                                     //使能串口中斷
}
char putchar(u8 c)
{
        SBUF = c;
        while(!TI);
        TI = 0;
        return c;
}
void UART1_ISR() interrupt 4 using 1
{
    if(RI)
    {
        RI = 0;                                 //清中斷標志
    }
//        if(TI)
//        {
//                TI = 0;                                 //清中斷標志
//        }
}

//定時器延時部分
#include "delay.h"
#define TICK_US                (FOSC/1000000/12)
volatile u16 told = 0;                                //計數器舊值               
volatile u16 tnow = 0;                                //計數器新值               
volatile u16 tick = 0;                                //計數值               
volatile u16 delay_tick = 0;                //延時計數值
void delay_init(void)
{
        T4L = 0;                                
    T4H = 0;
        T4T3M &= 0x0F;
        T4T3M |= B1000_0000;         //啟動定時器 12T
        told = 0;                        
        tnow = 0;
        tick = 0;
        delay_tick = 0;
}
void delay(u16 us)
{
        told = T4H << 8 | T4L;                        
        tnow = 0;tick = 0;
        delay_tick = us * TICK_US;
        while(1)
        {
                tnow = T4H << 8 | T4L;
                if(tnow != told)
                {
                        if(tnow > told)
                        {
                                tick += tnow - told;
                        }
                        else                                //定時器溢出
                        {
                                tick += 65535 + tnow - told;
                        }
                        told = tnow;
                        if(tick >= delay_tick)
                                break;
                }
        }
}

//紅外解碼
#include "INT.h"
#include "USART.h"
u8 IR_Cnt = 0;
#define T51                                (FOSC/1000000/12)
#define REMOTE_ID                 0   
//遙控器接收狀態
//[7]:收到了引導碼標志
//[6]:得到了一個按鍵的所有信息
//[5]:保留        
//[4]:標記上升沿是否已經被捕獲                                                                  
//[3:0]:溢出計時器
u8 IR_sta = 0;
u32 IR_Rec = 0;
sbit INT0 = P3^2;
void IR_Init(void)
{
        IT0 = 0;            //使能INT0上升沿和下降沿中斷
    EX0 = 1;             //使能INT0中斷
        AUXR &= 0x7F;                //定時器時鐘12T模式
        TMOD &= 0xF0;                //設置定時器模式
        TMOD |= 0x01;                //設置定時器模式
        TF0 = 0;                //清除TF0標志
        TL0 = 0;                //設置定時初值
        TH0 = 0;                //設置定時初值
        TR0 = 0;                //定時器0開始計時
        ET0 = 1;
}
//處理紅外鍵盤
//返回值:
//         0,沒有任何按鍵按下
//其他,按下的按鍵鍵值.
u8 IR_Scan(void)
{      
        u8 Key = 0;      
        if(IR_sta & (1<<6))//得到一個按鍵的所有信息了
        {  
                u8 TEMP[2];
            TEMP[0] = IR_Rec>>24;                        //得到地址碼
            TEMP[1] = (IR_Rec>>16)&0xff;        //得到地址反碼
             if((TEMP[0] == (u8)~TEMP[1]) && TEMP[0] == REMOTE_ID)//檢驗遙控識別碼(ID)及地址
            {
                TEMP[0] = IR_Rec>>8;
                TEMP[1] = IR_Rec;         
                if(TEMP[0] == (u8)~TEMP[1])
                                Key = TEMP[0];//鍵值正確         
                }
                if(Key == 0||(IR_sta&0X80) == 0)//按鍵數據錯誤/遙控已經沒有按下了
                {
                        IR_sta&=~(1<<6);//清除接收到有效按鍵標識
                        IR_Cnt = 0;                //清除按鍵次數計數器
                }
        }  
    return Key;
}

void INT0_ISR(void) interrupt 0 using 1
{
        if(INT0)//上升沿捕獲
        {
                TL0 = 0;                //設置定時初值
                TH0 = 0;                //設置定時初值
                TR0 = 1;                //定時器0開始計時
                IR_sta |= 0X10;                                        //標記上升沿已經被捕獲
        }
        else //下降沿捕獲
        {
                u16 Count_Time = 0;
                Count_Time = TH0 << 8|TL0;                                
                TL0 = 0;                //設置定時初值
                TH0 = 0;                //設置定時初值
                if(IR_sta & 0X10)                                        //完成一次高電平捕獲
                {
                        if(IR_sta & 0X80)//接收到了引導碼
                        {
                                if(Count_Time > (300 * T51) && Count_Time < (800 * T51))                        //560為標準值,560us
                                {
                                        IR_Rec <<= 1;        //左移一位.
                                        IR_Rec |= 0;        //接收到0        
                                }
                                else if(Count_Time > (1400 * T51) && Count_Time < (1800 * T51))        //1680為標準值,1680us
                                {
                                        IR_Rec <<= 1;        //左移一位.
                                        IR_Rec |= 1;        //接收到1
                                }
                                else if(Count_Time > (2200 * T51) && Count_Time < (2600 * T51))        //得到按鍵鍵值增加的信息 2500為標準值2.5ms
                                {
                                        IR_Cnt++;                 //按鍵次數增加1次
                                        IR_sta&=0XF0;        //清空計時器        
                                }
                        }
                        else if(Count_Time > (4200 * T51) && Count_Time < (4700 * T51))                //4500為標準值4.5ms
                        {
                                IR_sta|=1<<7;        //標記成功接收到了引導碼
                                IR_Cnt=0;                //清除按鍵次數計數器
                        }                                                
                }
                IR_sta &=~(1<<4);
        }               
}
void TIME0_ISR(void) interrupt 1 using 1
{
    TL0 = 0;                //設置定時初值
        TH0 = 0;                //設置定時初值
        if(IR_sta&0x80)//上次有數據被接收到了
        {        
                IR_sta &= ~0X10;                                                //取消上升沿已經被捕獲標記
                if((IR_sta&0X0F) == 0X00)
                        IR_sta|=1<<6;//標記已經完成一次按鍵的鍵值信息采集        
                if((IR_sta&0X0F) < 14)
                        IR_sta++;
                else
                {
                        TR0 = 0;                //定時器0開始計時
                        IR_sta&=~(1<<7);//清空引導標識
                        IR_sta&=0XF0;        //清空計數器        
                }                        
        }        
}


STC8.rar

288.26 KB, 下載次數: 28, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:290576 發表于 2018-8-22 00:22 | 只看該作者
標記下  感謝樓主
回復

使用道具 舉報

板凳
ID:337813 發表于 2018-10-21 23:22 | 只看該作者
感謝您的無私分享,謝謝你。!
回復

使用道具 舉報

地板
ID:298008 發表于 2018-10-22 15:39 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

5#
ID:615610 發表于 2020-6-24 20:10 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
欧美成人福利在线观看| 不卡福利视频| 人善交video高清| 日本丰满www色| 97久精品国产片一区二区三区| 婷婷综合久久中文字幕蜜桃三电影| www.黄色片| 精品久久久中文字幕人妻| 999精品国产| 亚洲乱码精品久久久久..| jlzzjlzz亚洲女人18| 国产内射老熟女aaaa∵| 亚洲av无码乱码国产精品| 国产jzjzjz丝袜老师水多| 国产99对白在线播放| 亚洲精品国产精品乱码不卡| 色一情一乱一乱一区91av| 午夜视频在线免费播放| 亚洲精品影视在线| 清清草免费视频| 色先锋影音岛国av资源| 久久.com| 噜噜噜在线观看播放视频| av在线免费播放网站| 免费在线视频欧美| www视频在线观看| 国产精品诱惑| 亚洲一区二区三区四区电影| 综合伊思人在钱三区| 香蕉国产精品| 国产精品久久久久9999高清| 久久草av在线| 久久综合久久99| 亚洲色图欧美在线| 日本精品一级二级| 亚洲精品一区二区三区福利| 欲色天天网综合久久| 久久久视频免费观看| 国产欧美一区二区三区在线看| 国产精品免费观看高清| 男人的天堂成人| 欧美 国产 小说 另类| 午夜福利三级理论电影| 国产一区二区精彩视频| 中文字幕乱码人妻二区三区| 五月婷婷激情在线| 青青草草视频| 免费国产在线视频| 欧美电影网站| 天堂av一区二区三区在线播放| 欧美成人午夜| 国产盗摄女厕一区二区三区| 最新国产成人在线观看| 欧美午夜精品久久久| 亚洲片av在线| 国产精品第七影院| 日韩av影视| 福利在线一区二区三区| mm131丰满少妇人体欣赏图| 国产午夜小视频| 日韩一区二区三区在线观看视频 | 国产精品日日夜夜| av高清一区二区| 性生活视频网站| 国产高清在线观看| 欧美午夜三级| 午夜精彩国产免费不卡不顿大片| 国产一本一道久久香蕉| 亚洲在线免费播放| 亚洲国产精品小视频| 欧美一级黄色网| 亚洲精品一区二区三| 在线观看免费不卡av| 国产av 一区二区三区| 亚洲精品久久久久久久久久久久久久 | 成人在线网址| 99ri日韩精品视频| 另类亚洲自拍| 亚洲欧美日韩国产手机在线| 精品免费视频一区二区| 91精品国产成人| 亚洲一区二区精品在线| 久久久久久国产精品日本| 国产奶水涨喷在线播放| 一色屋成人免费精品网| 你懂的视频在线| 秋霞一区二区| 日韩和欧美的一区| 亚洲一区自拍偷拍| 中文字幕av一区中文字幕天堂 | 夜夜揉揉日日人人青青一国产精品 | 国产在线电影| 日韩三级网址| 另类调教123区| 午夜日韩在线电影| xvideos国产精品| 免费成人看片网址| 香蕉视频色在线观看| 中文字幕69页| 0608新视觉| 婷婷六月国产精品久久不卡| 雨宫琴音一区二区在线| 综合久久给合久久狠狠狠97色| 亚洲嫩模很污视频| 精品久久久三级| 国产成人av片| 国产成人久久精品77777综合| 福利片免费在线观看| 日本欧美一区| 秋霞午夜鲁丝一区二区老狼| 日韩欧美在线观看视频| 午夜精品久久久久久99热| 青青草视频在线视频| 黄色一级片中国| 6699久久国产精品免费| 蜜桃在线视频| 媚黑女一区二区| 日本道免费精品一区二区三区| 51色欧美片视频在线观看| 成熟了的熟妇毛茸茸| 精品美女久久久久| av黄色免费| 亚洲精品一区二区三区中文字幕| 国产一区欧美日韩| 欧美mv和日韩mv国产网站| 国产精品毛片va一区二区三区| 日本一区二区免费视频| 综合在线亚洲| 国产色婷婷在线| 另类天堂av| 欧美高清你懂得| 国产一区二区免费电影| 亚洲精品国产91| 国产精品美女一区二区三区四区| 筱崎爱全乳无删减在线观看| 日韩精品亚洲一区| 日韩一级完整毛片| 久久久久国产精品视频| 亚洲一二三四五六区| 91freevideo| 97久久网站| 国产91精品精华液一区二区三区 | 久久久久久久人妻无码中文字幕爆| 国产18精品乱码免费看| 色综合久久影院| 亚洲经典视频在线观看| 欧美午夜免费电影| 国产女人水真多18毛片18精品 | 亚洲精品在线观| 日韩国产美国| 日本免费一二三区| 中文有码在线观看| 久久亚洲国产| 欧美日韩一区二区三区| 91影院未满十八岁禁止入内| 三级网站在线免费观看| 夜夜操夜夜骑| 久久大胆人体视频| 亚洲一区在线看| 亚洲自拍偷拍区| а天堂中文在线资源| 成人免费淫片在线费观看| 色综合www| 亚洲第一激情av| 高清不卡一区二区三区| 欧美a级片免费看| 男人捅女人免费视频| 欧洲杯什么时候开赛| 欧美日韩精品在线视频| 狠狠色综合色区| 国产无遮挡又黄又爽又色| 伊人网在线免费观看| 亚洲网站视频| 日韩欧美国产1| 一区二区精品在线| 中文字幕在线网址| sqte在线播放| 91老师国产黑色丝袜在线| 久久男人资源视频| 久久偷拍免费视频| 福利视频网站| 欧美日韩影院| 日韩电影网在线| 三级4级全黄60分钟| 香蕉久久国产av一区二区| av成人在线看| 亚洲欧美视频在线观看视频| 亚洲一区二区三区四区视频| 九九九免费视频| 国产在线观看免费| 久久 天天综合| 另类图片亚洲另类| 伊人久久一区二区三区| 天天天天天操| 亚洲欧美伊人| 亚洲片av在线| 中文字幕欧美视频| av福利网址网站| 一区二区影院| 日韩国产一区三区| 九九九九九伊人| 成**人特级毛片www免费| 99精品网站| 亚洲高清免费观看高清完整版| 丝袜老师办公室里做好紧好爽| 热re66久久精品国产99re| 天天躁日日躁狠狠躁欧美| 欧美视频在线一区| 免费人成自慰网站| 精品国产二区三区| 久久人体视频| 精品一区二区电影| 国产裸体视频网站| 视频免费裸体网站| 九九国产精品视频| 国产精品99久久久久久白浆小说| 99热精品免费| 91麻豆一二三四在线| 国产视频视频一区| 精品欧美一区二区精品久久| 国产精品特级毛片一区二区三区| 国产一区二区三区朝在线观看| 一个色妞综合视频在线观看| 伊人久久99| 久久66热re国产毛片基地| 999久久久免费精品国产| 亚洲欧美综合图区| av无码av天天av天天爽| 免费国产在线观看| 久久这里只有精品首页| 国产欧美日韩一区| 丰满少妇在线观看bd| 欧美理伦片在线播放| 亚洲国产高清自拍| 尤物网站在线观看| 黄色毛片在线看| 国产午夜亚洲精品午夜鲁丝片 | 亚洲乱码国产乱码精品精软件| 51亚洲精品| 日韩欧美国产成人一区二区| 永久av免费在线观看| 一级二级三级在线观看| 99久久99久久精品免费看蜜桃| 国产欧美日韩视频一区二区三区| 亚洲国产成人一区二区| 免费欧美视频| 中文字幕精品网| 国产在线观看免费视频软件| 日本电影在线观看| 婷婷中文字幕综合| 六月激情综合网| 天天插天天狠天天透| 成人网男人的天堂| 久久99导航| 婷婷国产成人久久精品激情| 欧美精品入口| 91精品国产精品| 中文文字幕一区二区三三| 在线播放一区二区精品视频| 亚洲成人久久一区| 色噜噜日韩精品欧美一区二区| 免费a级毛片在线播放| 亚洲视频一区二区免费在线观看| 欧美在线观看黄| 九七影院理论片| 99国产精品视频免费观看| 色一情一区二区三区四区| 国产精品白浆流出视频| 欧美专区一区二区三区| 成人黄色在线免费| 天天综合网在线观看| 欧美日韩视频一区二区三区| 人体精品一二三区| 亚洲不卡免费视频| 亚洲国产精品日韩专区av有中文| 欧美激情视频一区二区| 高潮毛片又色又爽免费| 国产精品手机在线播放| 欧美福利视频在线观看| 久久国产香蕉视频| 日韩一区自拍| 欧美怡红院视频一区二区三区| 91好色先生tv| 91tv精品福利国产在线观看| 日本久久久久久| 亚洲av无码国产精品久久不卡| 亚洲综合色站| 国产伊人精品在线| 综合久久一本| 日本欧美一区二区在线观看| 久久99精品国产99久久| 自己做鸭怎么接单寻找客源| 国产乱子轮精品视频| 在线观看欧美亚洲| 男人的天堂网av| 亚洲欧美一区二区三区国产精品| 黄色手机在线视频| 国产在线69| 91精品国产全国免费观看| а天堂中文在线资源| 中文字幕日韩高清在线| 欧美成人精品xxx| 国产成人精品无码高潮| 在线视频亚洲| 欧美日韩高清在线一区| 黄网站免费入口| 亚洲视频一二三| 国产免费无码一区二区| 久久久久久久| 国产亚洲视频在线观看| 波多野结衣影片| 韩国欧美一区| 免费久久久一本精品久久区| jlzzjlzz欧美大全| 亚洲高清免费视频| 午夜精产品一区二区在线观看的| 精品国产亚洲日本| 97免费视频在线| 影音先锋国产在线资源| 不卡视频在线观看| 男人亚洲天堂网| 人交獸av完整版在线观看| 亚洲第一偷拍网| av一级在线观看| 亚洲国产精品一区制服丝袜| 日本一区二区不卡高清更新| 日本高清好狼色视频| 欧美视频二区36p| 免费三级在线观看| 日韩久久精品网| 国产精品午夜av在线| 国产福利在线播放| 欧美日在线观看| 久草福利资源在线| 91亚洲成人| 久久综合一区二区三区| 高清免费观看在线| 欧美日韩一区中文字幕| 久久久一二三区| 综合天堂av久久久久久久| 精品一卡二卡三卡四卡日本乱码| 能在线观看av网站| 欧美性xxxx极品高清hd直播| av成人免费网站| 在线精品国产| 污视频在线免费观看一区二区三区| 中文av在线播放| 欧美一二三区在线观看| 最近中文字幕在线观看视频| 日日夜夜精品视频天天综合网| a级片一区二区| 丁香花在线观看完整版电影| 久久激情视频免费观看| 亚洲欧美精选| 亚洲码国产岛国毛片在线| 谁有免费的黄色网址| 蜜桃一区二区三区| 国产在线一区二区三区欧美| 你懂的视频在线播放| 亚洲国产精品人久久电影| 国产哺乳奶水91在线播放| 国产91在线观看丝袜| 亚洲精品一二三四| 大陆精大陆国产国语精品| 亚洲综合在线做性| 亚洲美女欧洲| 日韩精品视频在线播放| 色婷婷视频在线| 国产欧美日本一区二区三区| 少妇光屁股影院| 99re6这里只有精品| 中文字幕日韩精品久久| 91www在线| 欧美一级大片视频| 成年人羞羞的网站| 欧美tickling挠脚心丨vk| 日本xxxxwww| 国产精品乱码人人做人人爱| 日本在线观看网址| 夜夜嗨网站十八久久| 免费日韩视频在线观看| 91在线一区| 快播亚洲色图| 免费在线观看的电影网站| 国自在线精品视频| 91黑丝在线| 日韩成人久久久| 免费国产阿v视频在线观看| 亚洲一区二区免费视频| av图片在线观看| 成人污视频在线观看| 手机av免费看| 在线精品福利| 色播五月综合网| 国产欧美一区二区三区精品观看 | 欧美亚洲国产一区在线观看网站| 艳妇乳肉豪妇荡乳av无码福利| 成人91在线观看| 精品在线观看一区| 蜜桃精品视频在线观看|