找回密码
 立即注册

QQ登录

只需一步,快速开始

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

请高手指教:hei51开发板无线解码

[复制链接]
跳转到指定楼层
楼主
ID:42637 发表于 2012-7-19 12:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define time_value() {TH0=0x00; TL0=0x00;}
sbit io=P3^2; //无线接口
sbit P14=P1^4; //开LED灯
sbit P26=P2^6; //关数码管
sbit P27=P2^7;
sbit P24=P2^4; //关点阵
uchar flag,flag_rev;
uint time0[25];
uint time1[25];
uchar disp_dat[3];
void init(void)
{
 IT0=1; //INT0
 EX0=1;
 EA=1;

 TMOD=0x01;
 time_value();
 TR0=0;

 P26=0;
 P24=0;
 P27=0;
 P14=0;
}
void int0_srv() interrupt 0
{
 TR0=1;
 flag=1;
 flag_rev=1;
 EA=0;
}
void main()
{   
 uchar value;
 uchar i,j;
 init(); 
 loop:
 if(flag_rev)
 {
  flag_rev=0;
  time_value();
  while(!io); //0   
  time0[0]=TH0*256+TL0;
  time_value();
  while(io);//1
  time1[0]=TH0*256+TL0;//同步码  
  if((time1[0]+time0[0])>10000)
  {   
   for(i=1;i<25;i++)
   {
    time_value();
    while(!io);    
    time0=TH0*256+TL0;
    time_value();
    while(io);
    time1=TH0*256+TL0;       
   }
   TR0=0;
   for(i=0;i<3;i++)
   {
    value=0;
    for(j=1;j<9;j++)
    {
     value=value<<1;     
     if(time0[8*i+j]>700)//
     //if(time0[8*i+j]>time1[8*i+j])
     {
      value=value|0x01;
     }      
    }
    disp_dat=value;
   }
   //EA=1;
  }
  EA=1;
 } 
 while(1)
 {
  if(flag)
  {
   flag=0;
   goto loop;
  }
  //P0=disp_dat[2];
  switch(~disp_dat[2])
  {
   case 0x03:P0=0xfe;break;
      case 0x0c:P0=0xfd;break;
   case 0x30:P0=0xfb;break;
   case 0xc0:P0=0xf7;break;
   default:break;
  }
 }
}

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

使用道具 举报

沙发
ID:42637 发表于 2012-7-19 12:21 | 只看该作者
本程序解码正常,我是想看看更好的解码方法
回复

使用道具 举报

板凳
ID:389488 发表于 2020-10-13 12:00 | 只看该作者
这个程序 接收模块是要加反向的吧
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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