亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
一個簡單單片機IR收發程序
[打印本頁]
作者:
cokesu
時間:
2020-3-28 11:36
標題:
一個簡單單片機IR收發程序
本帖最后由 cokesu 于 2020-3-30 14:05 編輯
ir讀取的程序經過修改也可以用做紅外解碼
51hei.png
(5.43 KB, 下載次數: 62)
下載附件
2020-3-28 14:30 上傳
這個程序的主要用途是單線通信,用于兩個單片機傳送數據,只能單向通信。IRSEND() 和IRREAD()函數都需要放在定時器的125us中斷中,SDATA[5]這個數組為發送的數據其中SDATA[4]這個是用于校驗的如果不需要可以把IR_DELAY狀態下的SDATA[4]進行修改,并且把IRREAD()函數里的IR_FINISH狀態下的校驗程序刪掉,IRData[5];這個數組為讀回來的數據。這個是任意兩個單片機都可以是用只需把對應管腳修改為自己單片機的寄存器即可。補充一下發送IRSEND.c里面發送完5個數據以后可以直接跳轉到IR_DELAY無需執行IR_LAST,之前項目需要41位數據所以臨時添加而已,IRREAD.c只會讀40位而已,所以IRSEND.c的IR_LAST狀態的函數可以屏蔽掉,發送完5個數據直接跳轉到IR_DELAY即可
單片機源程序如下:
#include "IRSEND.h"
unsigned char SDATA[5] = {0,0,0,0,0};
unsigned char SNDATA[5] = {0,0,0,0,0};
unsigned char gSendBitCount = 0; //發送的位計數
unsigned char gSendCount = 0; //發送個數計數
unsigned char gSendTimeCount = 0; //發送計時
unsigned char gIRSendMode = 0; //發送模式
unsigned char gFinishCount = 0;
void IRSENDInit()
{
_IRSENDOUT_;
_IRSENDUP_;
_DATAH_;
}
void IRSEND() //125us
{
switch(gIRSendMode)
{
case IR_DELAY:
_DATAH_;
gSendTimeCount++;
if(gSendTimeCount >= _DELAY_)
{
gSendTimeCount = 0;
gSendBitCount = 0;
gSendCount = 0;
SNDATA[0] = SDATA[0];
SNDATA[1] = SDATA[1];
SNDATA[2] = SDATA[2];
SNDATA[3] = SDATA[3];
SNDATA[4] = (unsigned char)(~(SDATA[0]+SDATA[1]+SDATA[2]+SDATA[3]+0xbb));
gIRSendMode = IR_SEND;
}
break;
case IR_SEND:
gSendTimeCount++;
if(gSendTimeCount >= _ROUND_)
{
gSendTimeCount = 0;
gSendBitCount++; //已發送1位
SNDATA[gSendCount] <<= 1; //數據移位
if(gSendBitCount >= 8) //已發送8位
{
gSendBitCount = 0;
gSendCount++;
if(gSendCount >= 5)
{
gSendTimeCount = 0;
gSendBitCount = 0;
gSendCount = 0;
// _DATAH_;
gIRSendMode = IR_LAST;
goto _2;
}
}
}
if((SNDATA[gSendCount] & B10000000) != 0) //如果等于1
{
if(gSendTimeCount < _DATAHTIME_)
{
_DATAL_;
}
else
{
_DATAH_;
}
}
else
{
if(gSendTimeCount < _DATALTIME_)
{
_DATAL_;
}
else
{
_DATAH_;
}
}
_2:
break;
case IR_LAST:
if(gFinishCount <= _DATAHTIME_)
{
_DATAL_;
}
else
{
_DATAH_;
}
gFinishCount++;
if(gFinishCount >= _ROUND_)
{
gFinishCount = 0;
gIRSendMode = IR_DELAY;
}
break;
}
}
復制代碼
所有資料51hei提供下載:
IR通信.zip
(3.17 KB, 下載次數: 16)
2020-3-28 11:35 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
lyseg
時間:
2020-4-23 08:55
謝謝分享!!
作者:
bozai_2008
時間:
2020-4-23 10:33
試試看看能否好用
作者:
zhiren005
時間:
2020-6-24 15:39
還不錯 ,下載了~
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1