欢迎来到天天文库
浏览记录
ID:37807055
大小:279.70 KB
页数:10页
时间:2019-05-31
《十六、ATmega48红外遥控发射(SONY SIRC Protocol)(上)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于ProteusProteus的Proteus的的的AAAAttttmega48mega48mega48单片机仿真mega48单片机仿真十六、、、ATmega48、ATmega48ATmega48红外遥控发射ATmega48红外遥控发射(((SONY(SONYSONYSIRCSONYSIRCSIRCProtocolSIRCProtocolProtocol)Protocol)))((((上上上上))))(鹰击长空,longsky2007@126.com)★注:网上资料,仅供学习和参考★111、1、、、仿真环境仿真环境:::ProteusPro7
2、.4sp3ICCAVR6.31a222、2、、、电路原理图电路原理图外接8M晶振,熔丝位CLKDIV8无分频外接RC复位电路333、3、、、程序程序参照彭伟《单片机C语言程序设计实训100例--基于AVR+PROTEUS仿真》P343,本例采用12位版本,软件延时索尼SIRC协议见http://www.sbprojects.com/knowledge/ir/sirc.htm和http://www.edcheung.com/automa/sircs.htmhttp://picprojects.org.uk/projects/sirc/s
3、onysirc.pdf12图2按下K1时的数据“100100001010”3图3调用延时函数delay_Accurate.h,载波周期的一半是高电平16.5us(本来是12us)4图4调用延时函数delay_Accurate2.h,载波周期的一半是高电平13.35us(本来是12us)延时函数见http://www.xinshili.net/bbs/thread-294-1-3.htmlDelay_us(12);改成Delay_nus(22);Delay_us(600);改成Delay_nus(1198);5/********main.c****
4、*********************************版本:ICCAVR6.25C,外接晶振8.00MHzMCU:ATmega48**************************************************/#include#include"delay_Accurate.h"//按键定义#defineK1_Down()(PIND&(1<5、)==0x00#defineK4_Down()(PIND&(1<6、=(1<7、LED_0()PORTB&=~(1<8、始信号其后的600us低电平for(i=0x0001;i<0x1000;i<<=1){if(D12&i)Emit_IR_Carrier_Nx600us(2);//输出1.2ms载波elseEmit_IR_Carrier_Nx600us(1);//输出0.6ms载波IRLED_0();Delay_us(600);//其后的600us低电平}}voidmain()7{DDRD=0x00;PORTD=0xFF;DDRB9、=1<10、eif(K2_Down())Emit_D12(0x0334);elseif(K3_Down())Emit_D12(0x0556);els
5、)==0x00#defineK4_Down()(PIND&(1<6、=(1<7、LED_0()PORTB&=~(1<8、始信号其后的600us低电平for(i=0x0001;i<0x1000;i<<=1){if(D12&i)Emit_IR_Carrier_Nx600us(2);//输出1.2ms载波elseEmit_IR_Carrier_Nx600us(1);//输出0.6ms载波IRLED_0();Delay_us(600);//其后的600us低电平}}voidmain()7{DDRD=0x00;PORTD=0xFF;DDRB9、=1<10、eif(K2_Down())Emit_D12(0x0334);elseif(K3_Down())Emit_D12(0x0556);els
6、=(1<7、LED_0()PORTB&=~(1<8、始信号其后的600us低电平for(i=0x0001;i<0x1000;i<<=1){if(D12&i)Emit_IR_Carrier_Nx600us(2);//输出1.2ms载波elseEmit_IR_Carrier_Nx600us(1);//输出0.6ms载波IRLED_0();Delay_us(600);//其后的600us低电平}}voidmain()7{DDRD=0x00;PORTD=0xFF;DDRB9、=1<10、eif(K2_Down())Emit_D12(0x0334);elseif(K3_Down())Emit_D12(0x0556);els
7、LED_0()PORTB&=~(1<8、始信号其后的600us低电平for(i=0x0001;i<0x1000;i<<=1){if(D12&i)Emit_IR_Carrier_Nx600us(2);//输出1.2ms载波elseEmit_IR_Carrier_Nx600us(1);//输出0.6ms载波IRLED_0();Delay_us(600);//其后的600us低电平}}voidmain()7{DDRD=0x00;PORTD=0xFF;DDRB9、=1<10、eif(K2_Down())Emit_D12(0x0334);elseif(K3_Down())Emit_D12(0x0556);els
8、始信号其后的600us低电平for(i=0x0001;i<0x1000;i<<=1){if(D12&i)Emit_IR_Carrier_Nx600us(2);//输出1.2ms载波elseEmit_IR_Carrier_Nx600us(1);//输出0.6ms载波IRLED_0();Delay_us(600);//其后的600us低电平}}voidmain()7{DDRD=0x00;PORTD=0xFF;DDRB
9、=1<10、eif(K2_Down())Emit_D12(0x0334);elseif(K3_Down())Emit_D12(0x0556);els
10、eif(K2_Down())Emit_D12(0x0334);elseif(K3_Down())Emit_D12(0x0556);els
此文档下载收益归作者所有