找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2964|回復(fù): 5
收起左側(cè)

求幫助,萬分感謝!EV1527解碼,剛學(xué)的單片機不知那出問題,無法成功解碼

[復(fù)制鏈接]
ID:609423 發(fā)表于 2021-5-14 22:57 | 顯示全部樓層 |閱讀模式
20黑幣
#include <STC15F104E.H>

typedef unsigned int u16;
typedef unsigned char u8;//無符號數(shù)據(jù)類型

u16 time ; //時間變量
sbit led=P3^5;

static

回復(fù)

使用道具 舉報

ID:609423 發(fā)表于 2021-5-14 22:57 | 顯示全部樓層
#include <STC15F104E.H>  typedef unsigned int u16; typedef unsigned char u8;//無符號數(shù)據(jù)類型  u16 time ; //時間變量 sbit led=P3^5;  static        u8 u;  //static靜態(tài)變量下次函數(shù)調(diào)用時,這個值保持不變。 u8 IRcord[3]; //用來存放用戶碼、用戶反碼、數(shù)據(jù)碼、數(shù)據(jù)反碼 u8 position[25]; //用來存放一幀數(shù)據(jù)+頭碼共25位  bit in_ok;  //接收完成標(biāo)志 bit dispose_ok ; //解碼完成標(biāo)志  void shu_ju_chu_li()//數(shù)據(jù)處理函數(shù) {   u8 y,j,k=1;     //局部變量   (K=1就是去掉引導(dǎo)位頭碼0位)         u8 cord,value;  //局部變量                   for(y=0;y<3;y++)//處理3個字節(jié)         {            for(j=1;j<=8;j++) //處理1個字節(jié)8位                     {                                     cord= position[k]; //把儲存的數(shù)按位排列(K-第幾位)                               value=value>>1; // 低位右移                                                                         if(cord>=4)      //  0.256MS*4=1M大于1Ms判斷為1                                                 {                                                   value=value|0x80;  //(value|0x80按位或,首位是最低位放最高位等下個數(shù)過來再右移)                                                 }                                          u++;                // 右移一次加一位                                                         }                                         position[y]= value;  // 把按位排列好的數(shù)放在4組數(shù)里(y 是第幾組)                                  value=0;  //清0以便接收下次數(shù)據(jù)         }           dispose_ok=1;  //處理完畢標(biāo)志位置1 }  void InitTimer0(void) //定時器0初始化 {     TMOD = 0x02;  //設(shè)置定時器0,工作方式2,8位自動重載     TH0 = 0x0;     TL0 = 0x0;//最大溢出值256us     EA = 1;  //  打開總中斷     ET0 = 1;//  定時器0允許位     TR0 = 1;// 計時 }  void Timer0Interrupt(void) interrupt 1 //定時中斷函數(shù) {    time++; } void Int0Init()//外部中斷初始化 {   IT0=1; //外部中斷0允許位         EX0=1; //允許外部中斷0申請         EA=1; //打開總中斷 } void Int0()interrupt 0  //外部中斷0函數(shù) {          u8 irin;         if(irin)  // //如果接收到信號         {                                   if(time>=46&&time<78)//                   u=0;                   position[u]=time;//把接收的數(shù)據(jù)時間保存在irdata[u]                         time=0;  //變量清0                   u++;   // 保存1位                  if(u==25)  //一幀數(shù)據(jù)+頭碼共33位                  {                    in_ok=1; //一幀數(shù)據(jù)接收完成                          u=0;   //變量清0                  }         }          else                         {                                                                 time=0;  //變量清0                                  irin=1;     //初始化接收腳                         } }  void main () {            Int0Init();    //調(diào)用外部中斷函數(shù)         InitTimer0();  //調(diào)用定時中斷函數(shù)    while(1)          {            if(in_ok)  //如果收完成標(biāo)志為1                  {                     shu_ju_chu_li();  //調(diào)用紅處理函數(shù)                            in_ok=0;  //標(biāo)志清0                  }                  if(dispose_ok )  //遙控成功接收                                 {                                                 if (~position[2]==0x8d) //取反IRcord[2]第組數(shù)據(jù),=?                                                                                  {                                                 position[2]=0;  //清0以便接收下次數(shù)據(jù)                                                 led=~led;                                         }                                 }          } }
回復(fù)

使用道具 舉報

ID:731755 發(fā)表于 2021-5-15 07:09 | 顯示全部樓層
樓主,你好,我也是一個新手小白,建議你把程序理順一點,這樣那些大師很清楚明白的看出問題所在,你這樣寫,估計你自己都看不明白
回復(fù)

使用道具 舉報

ID:390416 發(fā)表于 2021-5-15 09:42 | 顯示全部樓層
看課程 先學(xué)習(xí)框架式編程吧  WQX-SQ開發(fā)板PCB文件下載 https://pan.baidu.com/s/1GNJywOm2PXB_lEb1Vy3qaQ
提取碼:1234
回復(fù)

使用道具 舉報

ID:609423 發(fā)表于 2021-5-23 16:32 | 顯示全部樓層
13872888583 發(fā)表于 2021-5-15 07:09
樓主,你好,我也是一個新手小白,建議你把程序理順一點,這樣那些大師很清楚明白的看出問題所在,你這樣寫 ...

發(fā)上來這不知道為什么這亂了
回復(fù)

使用道具 舉報

ID:609423 發(fā)表于 2021-5-23 16:32 | 顯示全部樓層
人人學(xué)會單片機 發(fā)表于 2021-5-15 09:42
看課程 先學(xué)習(xí)框架式編程吧  WQX-SQ開發(fā)板PCB文件下載 https://pan.baidu.com/s/1GNJywOm2PXB_lEb1Vy3qaQ
...

感謝
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表