福建接收头生产厂家
如何解决?前边我们讲过中断优先级问题,如果设置了中断优先级,就会产生中断嵌套。中断嵌套的原理,我们在前边讲中断的时候已经讲过一次了,大家可以回头再复一下。那么这个程序中,有2个中断程序,一个是外部中断程序,一个是定时器中断程序。如果设置外部中断优先级比较高的话,由于在外部中断中要接收红外信号,耗时几十毫秒,会耽误数码管的动态刷新。而在定时器中断程序中,执行时间只有几十个us,即使进入中断,也不会干扰到红外信号的正常接收,因此这个地方我们把定时器0的中断优先级设置为高优先级。在主程序main函数中,大家把这句注释掉的程序 “//PT0 = 1;”取消注释,再编译一下,下载到单片机里,然后再试试发送按键,是不是没有闪烁了呢?而中断嵌套的意义也有所体会了吧。
红外遥控器按键编码 先是9ms载波加4.5ms空闲的起始码,数据码是低位在前,高位在后,数据码个字节是8组560us的载波加560us的空闲,也就是0x00,第二个字节是8组560us的载波加1.68ms的空闲,可以看出来是0xFF,这两个字节就是用户码和用户码的反码。按键的键码二进制是0x0B,反码就是0xF3,跟了一个560us载波停止位。对于我们的遥控器来说,不同的按键,就是键码和键码反码的区分,用户码是一样的。这样我们就可以通过单片机的程序,把当前的按键的键码给解出来。
红外接收头就有红外光电二极管。这时,通过扩展等一系列工程,最终将信号调整为电流信号,转换为必要的遥控代码,输出相应的功能。接收头容易受到外部信号的干扰,特别是红外线,因此在接收头的供电两端加上过滤电容器,即VCC和GND之间连接电解电容器和瓷器电容器,容量大小是制造商提供的数据。
TAPwmInit('S',4,'N','N')TA时钟设为SMCLK/4, 通道1、2均为低电平输出 TAPwmInit('A',1,'P',0)TA时钟设为ACLK,通道1高电平输出,通道2不用,被 禁用的PWM通道的输出管脚仍可作为普通IO口使用。 定时器TA设为增计数模式 外部输入(TACLK) 外部输入(TACLK取反) 设置PWM通道1的输出模式。 如果设置为高电平模式高电平PWM输出 从P1.2输出 (不同型号单片机可能不一样) 从P1.2输出 (不同型号单片机可能不一样) 如果设置为低电平模式 低电平PWM输出 从P1.2输出 (不同型号单片机可能不一样) 将定时器TA初始化成为PWM发生器 时钟源=SMCLK ; 无分频; 通道1和通道2均设为高电平模式。 通道1/2的PWM方波周期均设为500个时钟周期 1通道 有效200个时钟周期