音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

看看這個(gè)程序如何

作者:21iceng 欄目:單片機(jī)
看看這個(gè)程序如何
自已寫的一段遙控接收程序,當(dāng)INT0中斷來(lái)是啟動(dòng)TIME0計(jì)時(shí),并讀出TH0和TL0的值,第一次INT0中斷
時(shí),TH0=TL0=0,后面的中斷來(lái)時(shí),應(yīng)該就是IR的下降沿間隔時(shí)間,據(jù)此判別0,1。幫忙看看是否有問(wèn)題,主要
是定時(shí)和中斷接收部分,判別0,1。
現(xiàn)在試了接收不到.


#define uCHAR unsigned CHAR
#define uint unsigned int
#define uLONG unsigned LONG
#include <reg52.h>

#define Time_0_00ms 0     //晶振為12M
#define Time_0_90ms 900
#define Time_1_30ms 1300
#define Time_2_00ms 2000
#define Time_2_50ms 2500
#define Time_13_20ms 13200
#define Time_13_80ms 13800
#define Time_11_00ms 11000
#define Time_11_80ms 11800
#define Sys_Code_H 0x00
#define Sys_Code_L 0xff

uCHAR Ir_Time_H;
uCHAR Ir_Time_L;
uCHAR Ir_Time;
uCHAR Ir_Cnt;
uCHAR Ir_Buffer;


void Ir_Init(void)
{
    // Timer0 init
    TMOD = 0x01;    //timer0 16bit timer
    TH0 = 0x00;     
    TL0 = 0x00;
    ET0 = 0;
    TR0 = 0;
    //INTP0 init
    IT0 = 1;    //falling edge detect
    EA = 1;        //enable interrupt
    EX0 = 1;    
}


void Intp0(void) interrupt 0
{
    TR0 = 1;     。袛鄟(lái)時(shí)啟動(dòng)TIME0
    Ir_Time_H = TH0;  。xTIME0的計(jì)數(shù)值,第一次是00,后面的應(yīng)就是IR下降沿間隔
    Ir_Time_L = TL0;
    TH0 = 0;      //TIME0清0
    TL0 = 0;
    Ir_Cnt++;      。(jì)數(shù)中斷次數(shù),一次IR應(yīng)是33次
    Ir_Time_H = Ir_Time_H << 8;
    Ir_Time_L = Ir_Time_L & 0x00ff;
    Ir_Time = Ir_Time_H | Ir_Time_L;
    if (Ir_Time > Time_0_90ms && Ir_Time < Time_1_30ms)        //data 0
    Ir_Buffer = (Ir_Buffer << 1) & 0xfffffffe;          。32位數(shù)據(jù)存入Ir_Buffer
    else if (Ir_Time > Time_2_00ms && Ir_Time < Time_2_50ms)        //data 1
    Ir_Buffer = (Ir_Buffer << 1) | 0x00000001;
    else Ir_Buffer = 0x00000000;
    
}


2樓: >>參與討論
21iceng
做了變量修改
我將Ir_Time,Ir_Time_H,Ir_Time_L改為uint了,Ir_buffer 改為ulong了,但還是不行

3樓: >>參與討論
21iceng
成功了。!
DX們,我調(diào)試成功了,現(xiàn)在可以正確識(shí)別遙控器的各個(gè)按鍵了!!

4樓: >>參與討論
djmt
恭喜哦
成功來(lái)之不易,恭喜你

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
(分享)收集的C51的編程規(guī)范
外部擴(kuò)展問(wèn)題?請(qǐng)高手幫忙
幫忙 W78E52BP單片機(jī)
一個(gè)很簡(jiǎn)單的問(wèn)題
如何用C語(yǔ)言實(shí)現(xiàn)查表程序!
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)