找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2748|回复: 14
收起左侧

PT2262单片机解码程序浅析 一点进步也是进步(附代码)

  [复制链接]
ID:68189 发表于 2022-9-2 11:06 | 显示全部楼层 |阅读模式
先上一个PT2262的发射电路原理图,一般应用 中,1脚 至 8脚做为地址编码,10脚 至 13脚做为四个按键来使用;
发射电路原理图.jpg

网上好多此类代码和文章,其中有些地方对于刚接触的来说不甚理解,在此我对在学习此类解码程序时遇到的不解再来简要的分析一下:比如解释代码时谈到的 32a  128a是个什么意思。先看下图:
编码.jpg

振荡频率与码位时长的关系.png
      从图中可以知道一个编码0(引脚接负极)、1(引脚接正极) 、F(引脚悬空)(也就是PT2262一个编码引脚的状态)占用32a,,,,a是啥,a是一个时钟周期“T” ,时钟是怎么来的? 15脚和16脚串接的OSC电阻产生的。 阻值决定了PT2262的振荡频率。厂家给出的计算公式:(频率KHZ)F=2*1000*16/Rosc(单位 K欧).
      利用一个简易的虚拟示波器来完成我们的实验讲解:
虚拟示波器.jpg
      得到遥控器的完整波形,见下图:
2262波形——总波形.jpg

                               图3
     是不是一下子不能看懂呢?没关系慢慢来,先说同步头,它由一个4a高电平和124a低电平组成,在代码中只对124a低电平进行判断,给这个低电平
限定一个范围,超出这个时间范围的低电平不是同步头的低电平:
  1. <font color="#ff00ff">if((L > 400)&&(L < 29000UL))//2360)   </font>       //确认是引导头(判断同步位低电平时长31a)
复制代码
    a值怎么得到或是怎么计算呢,实际应用中,根据PT2262的OSC计算公式得到a值误差比较大,再着像SX2262,SC2262等不同型号的IC使用相同OSC电阻产生的频率也不尽相同,所以在代码中做了一个范围的判断,只要在此范围内的值就判定为正确
     通过示波器我们来实际计算一下a的值,由同步头低电平124a   和   一个引脚编码的32a  来相互印证一下,以加深对这个点的理解:
同步头.jpg
    首先是同步头的低电平  124a  ,通过在虚拟示波器中放置X1标志位(2.66ms),X2标志位(4.92ms)......4.92-2.66=2.26ms =2260us所以124a≈2260us;
一个编码32a.jpg
  然后用同样的方法得到PT2262第1脚编码脉宽32a  即X2-X1≈568us   
  相互印证计算:a = 568/32  ≈ 17.75       17.75*124  = 2201us           2201  ≈   2260(同步头124a)    这里的误差在实际应用中忽略不计;

  接下来说一下,编码格式和解码思路。
  PT2262 地址编码(1脚 - 8脚)有三种状态:接负极  、接正极 、悬空  。它们所产生的编码状态为:00 、11、01;按键编码:只有00或11两种。
  完整编码的组成:同步头+地址码(16位)+按键码(8位)
      同步头结束以后,就会有24位的脉冲;见(图3)中的P1  -    P8  代表芯片的1脚到8脚的编码16个脉冲,后边的10 -  13 代表10脚 -13脚的编码8个脉冲;
      单片机解码要完成的任务是:找到同步头,然后再接收24位脉冲数据,计算出地址编码和按键状态,完成任务。
要完成这个任务,要用到定时器,它来负责对无线接收头送过来的高低电平进行精确计时;
      定时器怎么来用呢?
      1、不使用定时器中断;
      2、初始值为0,一切从0开始;
      3、电平变化时打开定时器计时,电平再次变化时停止定时器,得到定时器的计时时间


     地址编码和按键状态的计算:
        在代码中:变量yinjiao[1]接收同步头后第1-8个脉冲;      (第一脚到第四脚的状态编码)
                        变量yinjiao[2]接收同步头后第9-16个脉冲;    (第五脚到第八脚的状态编码)
                        变量yinjiao[3]接收同步头后第17-24个脉冲;   (第十脚到第十三脚的按键状态编码)
  1. //计算2262 加密脚电平
  2.                                              abc[0]=yinjiao[2]&0xc0; //pt2262 第 8 脚状态
  3.                                              abc[1]=yinjiao[2]&0x30; //pt2262 第 7 脚状态
  4.                                              abc[2]=yinjiao[2]&0x0C;
  5.                                              abc[3]=yinjiao[2]&0x03;
  6.                                              abc[4]=yinjiao[1]&0xC0;
  7.                                              abc[5]=yinjiao[1]&0x30;
  8.                                              abc[6]=yinjiao[1]&0x0C;
  9.                                              abc[7]=yinjiao[1]&0x03;  //pt2262 第 1 脚状态
复制代码
  1. switch(yinjiao[0])//键值码
  2.                                          {
  3.                                                  case 0xC0:    //PT2262的10脚按键按下时
  4.                                                         
  5.                                                    yinjiao[3]=10;   
  6.                                                          break;
  7.                                                  case 0x30:    //PT2262的11脚按键按下时
  8.                                                    yinjiao[3]=11;
  9.                                                         
  10.                                                          break;   
  11.                                                  case 0x0C:    //PT2262的12脚按键按下时
  12.                                                   yinjiao[3]=12;
  13.                                                         break;   
  14.                                                  case 0x03:    //PT2262的13脚按键按下时
  15.                                                   yinjiao[3]=13;
  16.                                                         
  17.                                                         
  18.                                                          break;   
  19.                                          }               
复制代码
代码流程导图:
思维导图.png

PT2262(组合EV1527)解码源程序C文件: PT2262EV1527解码.rar (1.8 MB, 下载次数: 75)

评分

参与人数 2黑币 +54 收起 理由
STC庄伟 + 4 很给力!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:961114 发表于 2022-9-3 09:44 | 显示全部楼层
楼主实力派了,解释的很详细
回复

使用道具 举报

ID:1038726 发表于 2022-9-3 09:48 | 显示全部楼层
就让 STC 送 百万 开天斧给大学
回复

使用道具 举报

ID:1042619 发表于 2022-9-3 09:49 | 显示全部楼层
楼主威武!我也刚拿到官方送的STC32G12K128示波器,趁热打铁,下午调试STC32G12K128 USB-CDD 通信
回复

使用道具 举报

ID:970790 发表于 2022-9-3 12:18 | 显示全部楼层
谢谢分享,很实用的的帖子。
回复

使用道具 举报

ID:1043860 发表于 2022-9-5 09:50 | 显示全部楼层
您好,楼主这个探针 和 焊接到板子上面的元器件在哪买到的
回复

使用道具 举报

ID:961114 发表于 2022-9-7 17:00 | 显示全部楼层
聪聪哥哥 发表于 2022-9-5 09:50
您好,楼主这个探针 和 焊接到板子上面的元器件在哪买到的

STC官方可以免费申请这个建议示波器,探针可以去淘一下吧
回复

使用道具 举报

ID:68189 发表于 2022-9-15 09:11 | 显示全部楼层
STC庄伟 发表于 2022-9-7 17:00
STC官方可以免费申请这个建议示波器,探针可以去淘一下吧

某一个宝搜索:3.2寸高清TFTLCD显示屏 直插ARDUINO MEGA2560板 320*480点阵彩屏  可以找到配套的TFT显示屏ILI9481驱动的那个。
回复

使用道具 举报

ID:1042702 发表于 2022-12-5 09:30 | 显示全部楼层
写的太好了,可以好好学习了 很实用的帖子,分析的很详细呢~可以实际用在工程开发 示波器测量了
回复

使用道具 举报

ID:914666 发表于 2023-5-22 16:04 | 显示全部楼层
感谢分享,51hei有你更精彩
回复

使用道具 举报

ID:433219 发表于 2023-5-23 16:30 | 显示全部楼层
  发射tb买现成的,接收就五花八门了
回复

使用道具 举报

ID:60026 发表于 2023-6-15 11:52 | 显示全部楼层
谢谢分享!先记号一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表