三极管对管驱动nmos管

转载于:https://www.cnblogs.com/tureno/articles/2749224.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个问题涉及到红外编码的知识,我可以简单介绍一下。 在红外遥控中,通常采用红外编码的方式来传输数据。编码分为两种:一种是MSB编码,另一种是LSB编码。 MSB编码(Most Significant Bit)是指最高位优先编码,也就是说数据位的最高位先被传输,最低位最后被传输。在MSB编码中,通常采用NEC编码协议。 LSB编码(Least Significant Bit)是指最低位优先编码,也就是说数据位的最低位先被传输,最高位最后被传输。在LSB编码中,通常采用RC5、RC6编码协议。 以下是一个简单的51单片机红外编码程序,用于编码NEC协议的红外遥控信号: ```c #include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit IR = P3 ^ 2; //红外发射管引脚 void send_code(uchar dat) //发送红外编码 { uchar i; for (i = 0; i < 8; i++) { IR = 0; //红外发射管发射脉冲 if (dat & 0x01) delay_us(1300); //发送1的脉冲 else delay_us(500); //发送0的脉冲 IR = 1; //停止发射 delay_us(550); //延时 dat >>= 1; //移位 } } void main() { uchar code[] = {0x00, 0xFF, 0x00, 0x00}; //红外编码数据 uchar i; while (1) { for (i = 0; i < 4; i++) //发送数据 send_code(code[i]); delay_ms(500); //延时 } } void delay_us(uint us) //us级延时函数 { uint i, j; for (i = us; i > 0; i--) for (j = 12; j > 0; j--) ; } void delay_ms(uint ms) //ms级延时函数 { uint i, j; for (i = ms; i > 0; i--) for (j = 121; j > 0; j--) ; } ``` 注意:以上代码仅供参考,实际使用中需要根据具体的红外编码协议进行相应的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值