HT6221傳送紅外HS0038解碼程式

2021-09-06 05:26:08 字數 1853 閱讀 4979

1

可以用,要弄懂的話就要去看看ht6221的時序圖。23

c51的紅外解碼程式,可以根據需要自己修改:4/

5//12mhz6//

根據自己的接線來改

7 sbit irin = p3^2; //

紅外置收器資料線8/

910////

11//

定義陣列ircom,分別裝解碼後得到的資料

12//

ircom[0] 低8位位址碼

13//

ircom[1] 高8位位址碼

14//

ircom[2] 8位資料碼

15//

ircom[3] 8位資料碼的反碼 16/

17 uchar ircom[4]=0;18

19#define uchar unsigned char

20#define uint unsigned int

21/*

******************************************

*/22

void delay014ms(unsigned char x); //

x*0.14ms

23void ir_init(void

);24

void ir_code(void

);25

26void delay014ms(unsigned char x) //

x*0.14ms

2732}33

}3435///

36//

初始化37

//38

void ir_init(void

) 39

4445/46

//解碼過程47/

48void ir_code(void)49

//確認ir訊號出現

57while (!irin) //

等ir變為高電平,跳過9ms的前導低電平訊號。

58

5960

for (j=0;j<4;j++) //

收集四組資料

6166

while (!irin) //

等 ir 變為高電平

67

68while (irin) //

計算ir高電平時長

69 //

0.14ms計數過長自動離開。

75 } //

高電平計數完畢

76 ircom[j]=ircom[j] >> 1; //

資料最高位補「0」

77if (n>=8) //

資料最高位補「1」

78 n=0;79

}80} 81

if (ircom[2]!=~ircom[3]) //

不等的話表示解碼失敗

8287

88 pro();//

解碼成功後執行的程式

89 ex0=1;90

return

; 91 }

所謂解碼就是能用微控制器把以不同寬度的脈衝區別開來,一種比較好思路就是計算兩次下降沿間隔時間,當微控制器外部中斷1口有下降沿時中斷一次,並啟動定時器,定時器定50us,當下次下降沿到來時我們計算定時器中斷的次數,這樣我們就能很好的區分不同寬度的脈衝了。實際上,我們紅外置收頭收到的訊號的是有毛刺的,在下降沿中斷觸發後,要做延時去抖處理。

八 傳送郵件

傳送郵件 如下 from email.mime.text import mimetext from email.header import header import smtplib import datetime from poseidon.myutil import myutil import ...

5 傳送模板訊息

詳情參看 傳送模板訊息 介面呼叫請求說明 http請求方式 post post資料示例如下 data keynote1 keynote2 keynote3 remark createmunu url,params string url send template url.replace access...

SprongBoot傳送郵件(三)傳送附件郵件

還是在 sprongboot傳送郵件 一 傳送簡單文字郵件helloworld 的配置基礎上新增如下 param to param subject param content param filepath 檔案路徑 throws messagingexception public void send...