二十、ATmega16基于SCRIPTABLE发送的红外接收解码(SONY SIRC Protocol)

二十、ATmega16基于SCRIPTABLE发送的红外接收解码(SONY SIRC Protocol)

ID:37941268

大小:1.04 MB

页数:16页

时间:2019-06-03

二十、ATmega16基于SCRIPTABLE发送的红外接收解码(SONY SIRC Protocol)_第1页
二十、ATmega16基于SCRIPTABLE发送的红外接收解码(SONY SIRC Protocol)_第2页
二十、ATmega16基于SCRIPTABLE发送的红外接收解码(SONY SIRC Protocol)_第3页
二十、ATmega16基于SCRIPTABLE发送的红外接收解码(SONY SIRC Protocol)_第4页
二十、ATmega16基于SCRIPTABLE发送的红外接收解码(SONY SIRC Protocol)_第5页
资源描述:

《二十、ATmega16基于SCRIPTABLE发送的红外接收解码(SONY SIRC Protocol)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于Proteus的Atmega48单片机仿真二十、ATmega16基于SCRIPTABLE发送的红外接收解码(SONYSIRCProtocol)(鹰击长空,longsky2007@126.com)★注:网上资料,仅供学习和参考★1、仿真环境:uProteusPro7.4sp3uICCAVR6.31a2、电路原理图u外接4M晶振u外接RC复位电路3、程序u参照彭伟《单片机C语言程序设计实训100例--基于AVR+PROTEUS仿真》P345u本例采用SCRIPTABLE发送红外接收头解调后的(SONYSIRCProtocol)波形,Timer1输入捕获中断4、注意事项(1)在“Gener

2、atorMode”里面选择“SCRIPTABLE”,然后可修改“GeneratorName”;在“LocalScript”里面粘贴EasyHDL语言的源代码,可以点击“Edit”可以编辑和保存,见图2和图3。源代码是产生一次发送的脉冲“ABC”,如下://*SCRIPTGENERATORRECE1INTiINTREC_CODEREC_CODE=$0ABCOUT=1SLEEPFOR2000m//Delay2sOUT=0SLEEPFOR2400uOUT=1SLEEPFOR600uFORi=0TO11STEP1IF((REC_CODE&$01)!=0)THENOUT=0SLEEPFOR1200

3、uOUT=1SLEEPFOR600uELSEOUT=0SLEEPFOR600uOUT=1SLEEPFOR600uENDIFREC_CODE=REC_CODE>>1NEXTi2OUT=0SLEEPFOR600uOUT=1SLEEPFOR5*ENDSCRIPT(2)本例采用输入捕捉中断,下降沿触发,因为SONYSIRCProtocol解调的后波形是以高电平结束,因此增加一个低电平的脉冲作为结束位信号。见图4。3图1原理图4图2SCRIPTABLE的设置卡5图3编辑EasyHDL语言的源代码6图4SCRIPTABLE产生的波形图中第一个区间是起始信号;第二个区间是命令和地址;第三个区间是结束位

4、7图5用cof文件调试后的全局变量值8图6运行后的结果9/****main.c****************************************版本:ICCAVR6.25C,外接晶振4.00MHzMCU:ATmega16**************************************************/#include#include"delay_Accurate2.h"#defineF_CPU4000000UL#defineSEI()asm("sei")#defineCLI()asm("cli")#defineNOP()asm("no

5、p")#defineBEEP()PORTD^=1<

6、/12位二进制数据分解为3个十六进制数位10volatileunsignedcharDigit_Buffer[]={0,0,0};//连续15次捕获计数变量volatileunsignedintCAP[15]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};volatileunsignedintCAP_Diff[13]={0,0,0,0,0,0,0,0,0,0,0,0,0};volatileunsignedcharnum=0;//采集14次结束的标志volatileunsignedcharflag=0;volatileunsignedchark=0xFF;//输出提示音v

7、oidSounder(void){unsignedchari;for(i=0;i<200;i++){BEEP();//Delay_us(280);Delay_nus(558);}}//------------------------------------------------------------------//数码管显示频率//-------------------------------------------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。