历史上的今天
今天是:2024年10月21日(星期一)
2019年10月21日 | AVR单片机红外解码程序
2019-10-21 来源:51hei
avr单片机源程序如下:
//ICC-AVR application builder : 2018/1/11 10:02:04
// Target : M16
// Crystal: 8.0000Mhz
#include #include #define uchar unsigned char #define uint unsigned int #define pind2 PIND&0x04 uchar shujuma[2]={0,0},IrValue[4]={0,0,0,0}; uchar Time; void delay_us(unsigned char nus) { unsigned char i; while(nus--) {for(i=12;i>0;i--);} } void xs(void) { uchar k[17]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0x11,0xc1,0x63,0x85,0x61,0x71,0x91}; uchar j[8]={0x7f,0xbf,0xdf,0xef,0xfe,0xfd,0xfb,0xf7}; PORTB=0xff; PORTA=k[16]; PORTB=j[2]; delay_us(1); PORTB=0x00; PORTA=k[shujuma[1]]; PORTB=j[1]; delay_us(1); PORTB=0x00; PORTA=k[shujuma[0]]; PORTB=j[0]; } void main(void) { DDRA=0xff; DDRB=0xff; DDRD&=0xfb; GICR|=0x40;//开启INT0中断 MCUCR|=0x02; MCUCR&=0xfe;//设为下降沿触发 SEI();//开启总中断 while(1) { shujuma[0]=IrValue[2]/16; shujuma[1]=IrValue[2]%16; xs(); if(IrValue[2]==0x0c) {DDRC=0xff;PORTC=0xff;} else if(IrValue[2]==0x16) {DDRC=0xff;PORTC=0x00;} } } #pragma interrupt_handler INT0_zd:2 void INT0_zd(void) { uchar j,k; int err; Time=0; if((pind2)==0) { err=1000; while(((pind2)==0)&&(err>0)) { delay_us(1); err--; } if((pind2)) { err=500; while(((pind2))&&(err>0)) { delay_us(1); err--; } for(k=0;k<4;k++) { for(j=0;j<8;j++) { err=60; while(((pind2)==0)&&(err>0)) { delay_us(1); err--; } err=500; while((pind2)&&(err>0)) { delay_us(10);//0.1ms Time++; err--; if(Time>30) return; } IrValue[k]>>=1; if(Time>=8) IrValue[k]|=0x80; Time=0; } } } if(IrValue[2]!=~IrValue[3]) return; } }
史海拾趣
|
avrmega16在7.3728Mhz的晶振下 不能用定时器产生1ms的精确时间吗? 为了实现9600的标准波特率 我试用了7.3728Mhz的晶振频率,可好像怎么这个晶振频率下产生1秒的时间呢??… 查看全部问答> |
|
wince windows ce 能过 USB 接口 与 PC 电脑 通信的问题(不想用actviesync RAPI) 在PC端通过USB(2.0)线与wince 设备 连接,PC端实时向Wince device发送数据(或者双方传输数据),请问大牛们有没有什么好解决方案呀? 我有试过通过activesync RAPI通信,但是速度太慢了,达不到mass storage模式下的速度, 主要是不想用activesy ...… 查看全部问答> |
|
这是我根据网友academic以太网学习的例子改的,作为客户端链接主机的时候一直没有反应。请教大家问题出在哪里? #include #include \"inc/hw_ints.h\" #include \"inc/hw_memmap.h\" #include \"inc/hw_nvic.h\" #include \"inc/hw_types.h\" ...… 查看全部问答> |
|
本帖最后由 ddllxxrr 于 2014-6-8 11:23 编辑 本人从事单片机好多年了。第一步自然是电源电路。我司的单片机是220降到12V。然后再分出几路来。一般有12V,供外接模块或传感器用。5V供5V单片机或5V传感器用。3.3V供3.3V单片机用。 我司的方案是。2 ...… 查看全部问答> |




