3-38KHZ方波采用中断的方式处理(影响到编码脉宽)--未成功.doc_第1页
3-38KHZ方波采用中断的方式处理(影响到编码脉宽)--未成功.doc_第2页
3-38KHZ方波采用中断的方式处理(影响到编码脉宽)--未成功.doc_第3页
3-38KHZ方波采用中断的方式处理(影响到编码脉宽)--未成功.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3-38KHZ方波采用中断的方式处理(影响到编码脉宽)-未成功.txt第一次笑是因为遇见你,第一次哭是因为你不在,第一次笑着流泪是因为不能拥有你。/*产生38KHZ的方波时,采用中断的方式处理(在中断中对输出取反),但是在示波器中看波形宽度的时候,发现它影响到位0和位1编码脉宽-因此未成功。下一步决定采用查询的方式来产生38KHZ的方波。*/*红外编码子程序*/=/hongwai.c/writer:莫熙乐2010年4月;修改作者:whtujingjing 2011年8月2日/*1、测试条件:f=22.1184MHZ晶振频率,STC89C52RC单片机*/*2、编码标准:NEC的PPM码;/*即位0低电平时间为0.56ms;位1低电平时间为1.68ms;它们的高电平时间均为0.56ms*/*3、准备应用场合:红外发送温度数据(系统码为:ir_systemvalue,数据码为: temprature_value)*/=#include sbit P3_7=P37;/从该口发出编码脉冲sbit P3_6=P36;sbit P2_0=P20;#define temprature_value 26; /数据码#define ir_systemvalue 1; /系统码#define uchar unsigned char /unsigned char wy8=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/这个代码的发送顺序有误,应该是先发送高位,后发送低位。unsigned char wy8=0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01;/用来提取代码的每一位。long int count,endcount;/delay延时计数变量/*晶振频率f=22.1184MHZ时;当 TL0 =TH0 = 0xe8时,可以产生38.4KHZ的方波;在f=12MHZ时,TH0 = TL0 =0xf3时可以产生38.4664KHZ的方波*/void time_0_initial()/ 定时、中断初始化 TMOD = 0x02; / T0使用定时模式,工作模式2,无门控位 / TH0 = 0xff-0x18=0xe7; TH0 = TL0 =0xe8; / 为T0填入初值,定时时间13us /TR0 = 1; / 启动T0 ET0 = 1; / 允许定时器0中断 EA = 1; / CPU开放中断 void sendirdata()uchar s=0,user=0,shuju=0,hc=0;/*/=long int ms_9=312,ms_4_5=156,ms_1_134=39,us_558=19;上次ms_1_134=39脉冲时间与NEC标准有误,修改为ms_1_68=58;long int ms_9=312,ms_4_5=156,ms_1_68=58,us_558=19;以上参数是对应晶振频率为f=22.1184MHZ时的参数ms_9对应9ms;ms_4_5对应4.5ms;ms_1_134对应1.125ms;ms_1_68对应1.68ms;us_558对应0.56ms;/=*/long int ms_9=312,ms_4_5=156,ms_1_68=58,us_558=19;/time_0_initial();TR0=1; /定时/计数器T0启动/*发送引导码*/endcount=ms_9; /发送9ms起始码的高电平P3_7=1;count=0;docount+;while(countendcount);endcount=ms_4_5; /发送4.5ms的结果码低电平count=0;P3_7=0;docount+;while(countendcount);/*发送系统码*/user=ir_systemvalue;for(s=0;s=7;s+)endcount=us_558;count=0; /发送公共的0.56ms高电平P3_7=1;docount+;while(countendcount);hc=user & wys; /发送脉冲间距if (hc=0)endcount=us_558;count=0;elseendcount=ms_1_68;count=0;P3_7=0;docount+;while(countendcount);/*发送系统反码*/user=ir_systemvalue;for(s=0;s=7;s+)endcount=us_558;count=0; /发送公共的0.56ms高电平P3_7=1;docount+;while(countendcount);hc=user & wys; /发送脉冲间距if (hc=0)endcount=ms_1_68;count=0;elseendcount=us_558;count=0;P3_7=0;docount+;while(countendcount);/*发送数据码*/shuju=temprature_value;for(s=0;s=7;s+)endcount=us_558;count=0; /发送公共的0.56ms高电平P3_7=1;docount+;while(countendcount);hc=shuju & wys; /发送脉冲间距if (hc=0)endcount=us_558;count=0;elseendcount=ms_1_68;count=0;P3_7=0;docount+;while(countendcount);/*发送数据反码*/shuju=temprature_value;for(s=0;s=7;s+)endcount=us_558;count=0; /发送公共的0.56ms高电平P3_7=1;docount+;while(countendcount);hc=shuju & wys; /发送脉冲间距if (hc=0)endcount=ms_1_68;count=0;/if (hc=0)endcount=120;count=0;elseendcount=us_558;count=0;/elseendcount=30;count=0;P3_7=0;docount+;while(countendcount);void main(void) P3_6=1;time_0_initial()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论