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...