找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1956|回复: 5
打印 上一主题 下一主题
收起左侧

求帮助,万分感谢!EV1527解码,刚学的单片机不知那出问题,无法成功解码

[复制链接]
跳转到指定楼层
楼主
ID:609423 发表于 2021-5-14 22:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
20黑币
#include <STC15F104E.H>

typedef unsigned int u16;
typedef unsigned char u8;//无符号数据类型

u16 time ; //时间变量
sbit led=P3^5;

static

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:609423 发表于 2021-5-14 22:57 | 只看该作者
#include <STC15F104E.H>  typedef unsigned int u16; typedef unsigned char u8;//无符号数据类型  u16 time ; //时间变量 sbit led=P3^5;  static        u8 u;  //static静态变量下次函数调用时,这个值保持不变。 u8 IRcord[3]; //用来存放用户码、用户反码、数据码、数据反码 u8 position[25]; //用来存放一帧数据+头码共25位  bit in_ok;  //接收完成标志 bit dispose_ok ; //解码完成标志  void shu_ju_chu_li()//数据处理函数 {   u8 y,j,k=1;     //局部变量   (K=1就是去掉引导位头码0位)         u8 cord,value;  //局部变量                   for(y=0;y<3;y++)//处理3个字节         {            for(j=1;j<=8;j++) //处理1个字节8位                     {                                     cord= position[k]; //把储存的数按位排列(K-第几位)                               value=value>>1; // 低位右移                                                                         if(cord>=4)      //  0.256MS*4=1M大于1Ms判断为1                                                 {                                                   value=value|0x80;  //(value|0x80按位或,首位是最低位放最高位等下个数过来再右移)                                                 }                                          u++;                // 右移一次加一位                                                         }                                         position[y]= value;  // 把按位排列好的数放在4组数里(y 是第几组)                                  value=0;  //清0以便接收下次数据         }           dispose_ok=1;  //处理完毕标志位置1 }  void InitTimer0(void) //定时器0初始化 {     TMOD = 0x02;  //设置定时器0,工作方式2,8位自动重载     TH0 = 0x0;     TL0 = 0x0;//最大溢出值256us     EA = 1;  //  打开总中断     ET0 = 1;//  定时器0允许位     TR0 = 1;// 计时 }  void Timer0Interrupt(void) interrupt 1 //定时中断函数 {    time++; } void Int0Init()//外部中断初始化 {   IT0=1; //外部中断0允许位         EX0=1; //允许外部中断0申请         EA=1; //打开总中断 } void Int0()interrupt 0  //外部中断0函数 {          u8 irin;         if(irin)  // //如果接收到信号         {                                   if(time>=46&&time<78)//                   u=0;                   position[u]=time;//把接收的数据时间保存在irdata[u]                         time=0;  //变量清0                   u++;   // 保存1位                  if(u==25)  //一帧数据+头码共33位                  {                    in_ok=1; //一帧数据接收完成                          u=0;   //变量清0                  }         }          else                         {                                                                 time=0;  //变量清0                                  irin=1;     //初始化接收脚                         } }  void main () {            Int0Init();    //调用外部中断函数         InitTimer0();  //调用定时中断函数    while(1)          {            if(in_ok)  //如果收完成标志为1                  {                     shu_ju_chu_li();  //调用红处理函数                            in_ok=0;  //标志清0                  }                  if(dispose_ok )  //遥控成功接收                                 {                                                 if (~position[2]==0x8d) //取反IRcord[2]第组数据,=?                                                                                  {                                                 position[2]=0;  //清0以便接收下次数据                                                 led=~led;                                         }                                 }          } }
回复

使用道具 举报

板凳
ID:731755 发表于 2021-5-15 07:09 | 只看该作者
楼主,你好,我也是一个新手小白,建议你把程序理顺一点,这样那些大师很清楚明白的看出问题所在,你这样写,估计你自己都看不明白
回复

使用道具 举报

地板
ID:390416 发表于 2021-5-15 09:42 | 只看该作者
看课程 先学习框架式编程吧  WQX-SQ开发板PCB文件下载 https://pan.baidu.com/s/1GNJywOm2PXB_lEb1Vy3qaQ
提取码:1234
回复

使用道具 举报

5#
ID:609423 发表于 2021-5-23 16:32 | 只看该作者
13872888583 发表于 2021-5-15 07:09
楼主,你好,我也是一个新手小白,建议你把程序理顺一点,这样那些大师很清楚明白的看出问题所在,你这样写 ...

发上来这不知道为什么这乱了
回复

使用道具 举报

6#
ID:609423 发表于 2021-5-23 16:32 | 只看该作者
人人学会单片机 发表于 2021-5-15 09:42
看课程 先学习框架式编程吧  WQX-SQ开发板PCB文件下载 https://pan.baidu.com/s/1GNJywOm2PXB_lEb1Vy3qaQ
...

感谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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