本帖最后由 xxkj2010 于 2024-1-8 18:57 编辑
单片机STC8H1K17T。
用T0产生38KHz信号,模拟发射红外信号,为什么接收的距离近得惊人?
- /************* 发送一个字节函数 **************/
- void IR_TxByte(u8 dat)
- {
- u8 i;
- for(i=0; i<8; i++)
- {
- if(dat & 1)
- {
- IR=1;TR0 = 1; Delay562us();IR=1;
- TR0 = 0; Delay1687us(); //@24.000MHz //数据1对应 1.6875 + 0.5625 ms
- }
- else
- {
- IR=1;TR0 = 1; Delay562us(); IR=1;
- TR0 = 0; Delay562us(); //@24.000MHz //数据1对应 1.6875 + 0.5625 ms
- }
- dat >>= 1; //下一个位
- }
-
- }
复制代码
- void Timer0_Isr(void) interrupt 1
- {
- IR=!IR;
- }
复制代码
IO口(P34)设置成普通模式或推拉模式效果基本相同,拆用遥控器的红外发射管也无效。
|