作者:Whappy
时间:2024.9.20
总结一下!基础实验到这儿里就圆满结束,历经25天,将51单片机学完并亲自手敲代码近5000行,在手敲代码过程中,明显感觉的看和敲,明显就是不同的感觉,创作不易,在原有的代码上加上自己的想法并加以实现!接下向STM32发起进攻,开始学习!
介绍:
硬件电路
针对于上图两个PNP的三极管主要用来调制的,是因为自然界中有很多红外光,我们想要得到我们需要的的红外光,就要进行调制,通过一个38hz的频率进行调制,因为自然界的红外光不可能以38hz的频率跳动,后期通过滤波器将我们需要的波形提取来就可以了!
还有红外接收头,OUT引脚接收的脉冲特别快,需要我们及时处理,所以,我们采取51单片机的外部中断来对这个脉冲进行处理!
发送和接收装置
通过上述解释:这个高电平和低电平不是我们平常说的一个周期内的高电平,而是一个周期中高低低电平所持续的时间,同样,低电平也是,看上图!
NEC编码
示波器采集的按键波形变化,还是地址码+地址反码+命令字+命令字反码
实物外观
可以看出要控制器所对应的键码值!
51单片机的外部中断
这个外部中断,也是我们常用的一种处理手段,外部中断也比较简单,只需要打开相关寄存器,配置一下外部中断服务函数即可!如下代码
void INT0_Init(void) //打开外部中断相关的的寄存器(寄存器可单独配置)
{
IT0 = 1; //配置位低电平触发模式
IE0 = 0; //中断标志位
EX0 = 1; //外部中断0使能
EA = 1; //中断总使能
PX0 = 1; //中断最高优先级
}
/*
//外部中断0 服务函数
void Int0_Routine() interrupt 0
{
Number++;
}
*/
//注:配置完成之后就可以在主函数中初始化了,在主函数下面加上我们的中断服务函数,即可触发中断