PT2262和PT2272的单片机c语言编程.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PT2262和PT2272的单片机c语言编程

PT2262和PT2272的单片机c语言编程 2011-05-01 23:34 #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int union?//定义共用体 { ?uint?? word; ?struct ??{ //结构bytes ??uchar byte_addr; ??uchar byte_data; ??} ?bytes; }a_0,a_1; ? //位定义 sbit W_REM =P3^3; //遥控接收输入脚 sbit LED0 =P1^0; sbit LED2 =P1^2; ? bit bdata recv_flg,? //接收正确位标志(1:正确 0:错误) ??? //因为当按住PT2262的按键不放的时候PT2262会把编码不断的送出 ??? //设置lianji_flg位用来检测按键有没有放开过如果没有放开则不再响应 lianji_flg; //按键没有放开过标志(1:连接 0:点击) uchar? // addr_a0, //接收的8位地址编码A0 // addr_a1, //接收的8位地址编码A1 // data_a0, //接收的4位数据编码A0 // data_a1, //接收的4位数据编码A1 addr_user_a0, //设定的8位地址密码A0 addr_user_a1; //设定的8位地址密码A1 void d50us(uchar n) //50uS延时 { ?? uchar data i,j; ?for(j=n;j;j--) //[1T+2T+(2i+2)T+1T+2T]*n+1T+2T+2T=(2i+8)*n+5T ?{ ??for(i=21;i;i--) ;//延时2T+2T*i=(2i+2)T ?} } /****************解码核心函数,好长长*******************/ PT2272_deco() //解码 { ?uchar i,cnt; ?if(recv_flg); ?else ?{?//清除上次解码内容 ?cnt =12;//接收12位编码- /*先找出接收码的开头即5ms左右的高电平,设置高电平时间为4~6ms检测和等待4ms的高电平*/ ?for(i=80;i;i--) ?{ //延时4mS ?if(!W_REM) ??i=80; ?else ??d50us(1); ?}? ?//等待在2ms内接收到的低电平 -------------------------------------------- ?for(i=40;i;i--)//延时4mS ?{ ??if(!W_REM) break; ??else d50us(1); ?} ?//4ms到6ms内接收到下降沿则跳去解码否则返回 ?//超出6ms接收错误返回 ?if(i) ?{ ?? recv_flg =0; //清按键没有放开过标志 ?? goto PT2272_deco_exit; //返回 ---- ?} ?//等待300us后采集接收信号 ?d50us(6); ?//采集接收信号并记录 ?a_0.word=a_1.word=0; ?for(i=0;i6;i++) ?{ ??if(W_REM) ??{ ?? a_0.word |=0x01; ??} ??a_0.word =1; ??while(!W_REM) ; ??while(W_REM) ;? ??d50us(6); ??if(W_REM) ??{ ?? a_1.word |=0x01; ??} ??a_1.word =1; ??//等待第二个码值的下降沿 ??while(!W_REM) ; //___wd___ ??while(W_REM) LED2=~LED2; ?}? ?a_0.word =4;/*把接收的编码左移4位将8位密码放在同一字节上*/ ?a_1.word =4; ? if(? (a_0.bytes.byte_addr==addr_user_a0) (a_1.bytes.byte_addr==addr_user_a1)? ) ?? { ??recv_flg =1; ??lianji_flg =1; ?? } ? else ???? { ??recv_flg =0; ??lianji_flg =0; ? } ?} ?PT2272_deco_exit: ?return; } /****************接收遥控码******************/ void remote_2272_deco() //(解码程序) { ?uint i;? ?for(i

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档