版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EV1527无线遥控解码编码程序/*stc11f02/or stc89c2051 12MHZ /TX IC hs1527/or ev1527 OSC_RES=200K VDD 12V */ /*同步码低电平时间9.2ms9.35ms /无线码宽TD时间1.16ms,1=(高电平脉冲时间920us940us,低电平脉冲时间240us220),0=(高电平脉冲时间240us220us,低电平脉冲时间920us940us)| 同步码 | c0c19 addr 码|D0|D1|D2|D3| Totals 24 bit|-| | | |-| |-|-| | |_| | |-|-9.25ms-|1.16m
2、s|1.16ms|用TIMERS INT0配合实现脉宽测量,这种做法的好处是不用隔一段时间扫描I/O口,方便系统程序的整体设计 硬件上要把无线信号反向后接到 INT0(P3.2) 脚, 脉宽测量法测量反向后的高电平时 间;用中断法 (从高变低跳变引起中断 计量测到高电平脉冲时间 . 判定是, 同步码,1 码,0 码;P1 口接LED显示接收到的无线码的最后一字节数据*/#include<reg51.h>#include<intrins.h> #define uchar unsigned char #define uint unsigned int#define RLC(
3、RX) CY=RX&0x80 / 编译后生成带进位左移指令uchar bdata wx_data0,wx_data1,wx_data2; / 存储 24位无线数据 uchar data wx_code0,wx_code1,wx_code2;低电平时间计数器 高电平时间计数器 同步码时间计数器 无线码位数uint data wx_count; / uint data wxh_count; / uint data tb_count;/uchar data wx_bit;/ uchar bit_CY; uchar data addr0;uchar data addr1;uchar data
4、addr2; uchar data cmd_data;uint data times; uint data mode=0; uint data k;bit tb_flag; / 同步码接收成功标志bit wx_ok; / 无线码接收成功标志bit decode_ok;bit keyhold;bit keydown;bit keyopen;bit k_flag;bit k1;k2;k3;k4;sbit P37=P3A7;sbit P35=P3A5;sbit P32=P3A2;sbit P17=P1A7;sbit P16=P1A6;sbit P15=P1A5;void decode();void
5、delayms(short i);/void main(void)/ 设置 脉宽测量法测量反向后的高电平时间/这是晶振为12M的定时中断1us/| D7 D6 D5 D4 D3 D2 D1 D0 |/ TMOD=| GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 |/ GATE =1; TR0=1; INT0=1 时 TIMER0 START RUN ,INT0=0 STOP RUN/ 脉宽=(TH0*256 TL0)*12/12(MHZ)=(TH0*256 TL0)*1(us)TMOD=0x19;GATE=1;M0=1;设置T0为16位定时器,设为门控
6、定时ET0=0;/ET=0禁止T0中断IT0=1;/IT=1从高变低跳变引起中断EX0=1;/EX0=1开外部中断 0EA=1;/启动总中断TH0=0;TL0=0;TR0=1;/启动 T0*/sulotion1 按下和放开都有效/* while(1)if(wx_ok=1)&&(cmd_data=0xf4)/if(keyopen=1)/ P16=P16;keyopen=0;wx_ok=0;/if(keyhold=0)/ keyopen=1;/*/sulotion2 按下没效 / 放开都有效/* while(1)if(wx_ok=1)&&(cmd_data=0xf4
7、)/ if(keyhold=0)/ keyopen=1;/ if(keyopen=1)/P16=P16; keyopen=0;wx_ok=0;/*/*/sulotion3 按下有效 / 放开都没效 / 反应不灵敏 while(1)if(wx_ok=1)&&(cmd_data=0xf4)/if(keyhold=1)if(keyopen=0)/P16=P16;keyopen=1;wx_ok=0;/if(keyhold=0)/keyopen=0;/*/while(1)/times ;decode();switch(mode)/case 1:/turn onP37=0;times=0;
8、break;case 2:/6Hz flashif(times>=10000)P37=P37;times=0;break;case 3:/3Hz flashif(times>=30000)P37=P37;times=0;break;case 0:/offP37=1;times=0;break;/void decode()P仁wx_codeO|OXfO;P1口接 LED显示数据cmd_data=wx_code0|0xf0;/sulotion4 按下有效 / 反应较灵敏if(wx_ok=1)&&(cmd_data=Oxf4)/if(keyopen=O)/k_flag=k
9、_flag;if(k_flag=1)/P16=P16;mode ;if(mode>3)mode=O;keyopen=1;wx_ok=O;/if(keyhold=O)/keyopen=O;/void intO() interrupt Owx_count=THO*256 TLO;THO=O;TLO=O;/if(tb_flag=1)/同步码标志为 1低电平脉宽范围在if(8OO<wx_count)&&(wx_count<1OOO) /900us 到 950us 之间CY=0;else if(200<wx_count)&&(wx_count<
10、;400) / 低电平脉宽范围在 220us 到 350us 之间CY=1;else /干扰码wx_count=0;wxh_count=0;wx_bit=0;tb_flag=0;keyhold=0;return;RLC(wx_data0); / 移位寄存器,接收一位数据wx_data0=ACC;RLC(wx_data1);wx_data1=ACC;RLC(wx_data2);wx_data2=ACC;if( wx_bit=24) / 接收完 24 位码,接收成功标志 wx_ok 置 1tb_flag=0;wx_bit=0;wx_ok=1;wx_code0=wx_data0;wx_code1=wx_data1;wx_code2=wx_data2;else if (8000<wx_count)&&(wx_count<9000) /低电平脉宽范围在 9.2ms到 9.5ms 之间,把同步码标志置 1t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑节能门窗维护与保养方案
- 2026年青海省玉树州高职单招职业适应性测试考试题库及完整答案详解【典优】
- 2026年趣味主播测试题及答案解析
- 新宁县2026年数学四年级第一学期期末监测试题含解析
- 山西省晋城市陵川县2026年数学三上期末监测试题含解析
- 2026年山西省大同市天镇县三上数学期末检测试题含解析
- 吉木萨尔县2026年数学三年级第一学期期末质量跟踪监视试题含解析
- 四川省巴中市2026年三上数学期末达标检测试题含解析
- 吉安县(2026年)检察官逐级遴选笔试试题及答案
- 2026年全国人民(应急普法)知识试题库与答案
- 2024年胶带行业培训资料
- DB4206-T 60-2023 实验室气瓶安全管理规范
- 食堂劳务派遣投标方案
- 住院医师规范化培训住院病历书写指导教学指南(2021年版)
- YY/T 0308-2015医用透明质酸钠凝胶
- WB/T 1108-2021出版物物流退货作业规范
- GB/T 34910.3-2017海洋可再生能源资源调查与评估指南第3部分:波浪能
- PK系列控制保护屏介绍
- 布卢姆教育目标分类学(修订版)课件
- 高等结构稳定理论课件
- 路基附属工程施工技术交底
评论
0/150
提交评论