//外部中断0,用于编码开关解码,解码图: A接中断脚(AVR的PD2),以此为基准,B用来判断方向(连到AVR的PA1), C接地
//A -|
// | -----|__________|----------|____________
//C -|
//
//B -|
// | ----------|__________|----------|____________
//C -|
// CW ===>>> ROTATION
//外部中断设置(ISC01=0,ISC00=1): INT0 引脚上任意的逻辑电平变化都将引发中断
#pragma interrupt_handler int0_isr:2
void int0_isr(void)
{
//external interupt on INT0
GICR=0; //禁止外部中断
if ((PIND & 0x04)==0) //先判断是高电平产生的中断还是低点平的中断
if ((PINA & 0x02)==0) //再判断B线上的电平
{
keycounter--;
keydirection=0;
}
else
{
keycounter++;
keydirection=1;
}
else
if ((PINA & 0x02)==0)
{
keycounter++;
keydirection=1;
}
else
{
keycounter--;
keydirection=0;
}
GICR=0x40;
}
关键字:编码开关 单键飞梭开关 解码程序
引用地址:
超简单的编码开关(单键飞梭开关)解码程序
推荐阅读最新更新时间:2024-03-16 15:18
51单片机红外接收解码程序
接收以S52单片机作为接收系统。以S52的P3.3口作为接收端口,该端口是外部中断1。 这个接受程序是以 XC866作为红外发送控制系统 ,接收程序如下: #include reg52.h //头文件 #include intrins.h #define uchar unsigned char //宏定义 #define uint unsigned int sbit HWRx=P3^3; //位声明 code uchar Table = //共阴数码管 0-9 a-f - 表 {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5
[单片机]
PT2262解码程序( pic12F629 )
这段程序是用在一款七彩灯红外遥控解码程序里, 单片机 使用 PIC 12F629,软件模拟三路PWM输出驱动红绿蓝LED分八组共24个LED,实现单LED渐明渐暗,两LED一明一暗,七彩等九种花样.有断电记忆功能.如下是解码程序. ;-------------------------------------------------------- ;filename: 24LED_Remote.asm ; cpu: PIC 12f629 ; clock: 4 MHz for INTRC ; date: 2006/02/25 ; writer: aLin ; IC type: PT2262IR ; Rosc: 470K
[单片机]
2051单片机仿PT2272软件解码程序
本程序是用51单片机来软件解码pt2262编码,是一个无线服务呼叫器的代码已经成功的在产品的应用,有LED显示. 并有原理图与pcb文件以及完整的代码提供下载: http://www.51hei.com/ziliao/file/37724122PT2272.rar ; ========================================================= ; ================================================================ ; PT2272 模拟解码器(接收来自射频解码模块的2262格式串行数据流) ; 管理三位数码管显示器 ;
[单片机]
PIC12F629解码PT2262IR(asm程序)
这段程序是用在一款七彩灯红外遥控解码程序里,单片机使用PIC12F629,软件模拟三路PWM输出驱动红绿蓝LED分八组共24个LED,实现单LED渐明渐暗,两LED一明一暗,七彩等九种花样.有断电记忆功能.如下是解码程序. ;-------------------------------------------------------- ;filename: 24LED_Remote.asm ; mcu: PIC12f629 ; clock: 4 MHz for INTRC ; date: 2006/02/25 ; writer: aLin ; IC type: PT2262IR ; Rosc: 470K ;------
[单片机]
M16单片机l红外线解码程序+led数码管显示
我自己用icc+M16写的一个led显示+红外线解码程序 一个特别功能 也是他们常用的功能 按键处理程序 按一下只变一个数 按住1s左右(自己设置)快速变化 进一步的功能正开发中 下一步 就是3771+39610 步进电机驱动程序 希望大家多多支持哦! 哦对了 里面的图片是用flash8做的 原理图是用protues6.9 画的 仿真上有点问题 实际电路中 是正常的 单片机源码: /* 01-05 22:30 2007-1-6 23:04 infrared //ICC-AVR application builder : 2006-12-16 0:17:05 2006-12-1
[单片机]
STM8单片机+EV1527无线315&433通用遥控解码程序
单片机源程序如下: /* ********************************************************************************************************* * * 模块名称 : EV1527遥控解码 * 上升沿触发 触发中断后延时一段时间后检测引脚电平从而判断0 1 采集上升沿触发后第6 10 14 个振荡周期时的引脚电平 RF98 PT2262 连续触发是每个周期的间隔在15MS左右 EV1527 宽电平时间 500US 窄 250us 同步码 5.7MS ***********
[单片机]
用AT89S51单片机软件解码PT2262的C程序
编码芯片PT2262发出的编码由:地址码、数据码、同步码组成。地址码和数据码都用宽度不同的脉冲来表示,两个窄脉冲表示 0 ;两个宽脉冲表示 1 ;一个窄脉冲和一个宽脉冲表示 F ,也就是地址码的 悬空 ;同步码为时间较长的低电平间隔,下图为PT2262编码图: 从图中可以看出,发送码的周期是相等的,只是脉冲宽度不同(宽脉冲与窄脉冲之比为3:1)。而同步码的低电平时间约为这个周期的8倍. 解码的关键是识别同步码,然后对后面的字码的脉冲宽度进行识别,就可以解出这个编码。pt2262每次发射时至少发射4组字码,每组字码由25个脉冲组成,前24个脉冲为地址和数据,最后一个脉冲和一低电平间隔组成同步码。下面我
[单片机]