找回密码
 立即注册
×

00:00:00

您有一张0.1元限时体验卡,马上领取获得VIP尊享特权。

用8G1K08做的红外感应开关,感应距离30厘米,下面的程序和电路看看合适

2024-11-4 14:12 来自 shen168 发布 @ 综合讨论

本帖最后由 DebugLab 于 2024-11-4 14:24 编辑

62754


#include"stc8.h"
#include"intrins.h"//使用nop()函数需引用此文件

typedef unsigned char    uint8_t;
typedef unsigned int     uint16_t;
typedef unsigned long    uint32_t;

//280us @11.0592MHz

                    TH1 = 0xF3; \
                    ET1 = 1; \
                                TR1 = 1
void Timer1_Init(void)                //280微秒@11.0592MHz
{
        AUXR |= 0x40;                        //定时器时钟1T模式
        TMOD &= 0x0F;                        //设置定时器模式
        TL1 = 0xE7;                                //设置定时初始值
        TH1 = 0xF3;                                //设置定时初始值
        TF1 = 0;                                //清除TF1标志
        TR1 = 1;                                //定时器1开始计时
}




//引脚定义
sbit LED=P5^4;                //指示灯
sbit IR_IO=P5^5;    //红外发射
sbit KEY=P3^0;        //按键
sbit JS_OUT=P3^1;        //红外接收
sbit OUT1=P3^2;        //数据输出1
sbit OUT2=P3^3;        //数据输出2
//数据定义
bit IR_Flag=0;                //红外数据接收完成标志位
u8 IR_time=0;                //下降沿之间的时间计数值
u8 IR_data;                //引导码+8个位数据各自占用的时间
bit IR_TimeFlag;            //红外发射延时到标志
unsigned char count;        //280us

static u8 IR_bit;                        //变量IR_bit用于指示红外数据的位数
//函数声明
void delay(u16 count);                //延时函数声明
void Time0_init(void);                //定时计数器0初始化函数
void Time1_init(void);                //定时计数器1初始化函数
void Int0_init(void);                //外部中断0初始化函数
u8 IR_decode(void);                        //红外解码函数


void Delay13us(void)        //@11.0592MHz  //13us延时,38KHZ载波频率,占空比50% 1/38K=26.3us
{
        unsigned char data i;

        i = 46;
        while (--i);
}





void send_Ir(unsigned int i)  //发送高电平//38Khz载波发射,发射i个周期
{
         while(i--)
         {
    IR_EN=1;  //1个载波信号 1个周期  50%的38KHZ  时间26.3us
         Delay13us();

免责声明:

本平台旨在开源共享精神,请勿发布敏感信息,任何违法信息我们将移交公安机关;

热门标签 更多

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-14 16:14 , Processed in 0.072275 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

返回顶部