導航:首頁 > 操作系統 > 單片機紅外線

單片機紅外線

發布時間:2022-03-12 12:26:04

Ⅰ 51單片機怎麼用紅外線

不顯示時間

Ⅱ 單片機的紅外遙控

用數碼管顯示程序可以搞定吧,那麼就是存到一個變數,然後讓這個數碼管顯示這個變數就可以了

Ⅲ 用單片機如何作紅外線的接收

你好,我研究過紅外線,網上有賣紅外一體化接收頭的,大概8毛錢一個,它有三個引腳,分別是電源、地、還有信號端。信號端接單片機外部中斷0或外部中斷1,我編過相應的程序,用紅外遙控控制數碼管的顯示,按幾號鍵顯示幾。

Ⅳ 單片機紅外線

一般假如沒有錯誤就是
一般的紅外傳輸都會有幀錯檢測跟校對,是由程序員來編的
因為傳輸的過程可能會出錯,一般是有「奇偶校驗」跟「和校驗」,即發送10個位,首位跟末位都是校驗位。
假如錯誤,就會要求重發,當然,這要由程序員來編寫程序。

Ⅳ 單片機紅外

雖然你的程序寫的很工整,但是你的編程思路不對。
1.你的顯示函數,很明顯你用的是動態掃描,但是你卻用單個數碼管的控制方法。當然有可能你的電路跟我預計的不同,所以把線路圖一塊發上來。
2.中斷函數,寫的問題比較大,首先中斷函數里不要有處理的內容,還有在中斷函數函數中定義的變數是不能保持的,再有不知道你為什麼一直在用while判斷一個變數,中斷函數會自動判斷外部埠的變化的,你只需要加入中斷變化響應後的代碼就可以

Ⅵ 單片機紅外線程序

你的問題是什麼要表達清楚?
這是我的代碼 編譯正確 但是燒到單片機里 數碼管像流水燈一樣 從第一個數碼管到最後一個數碼管 依次亮 且無限循環
求大神啊 錯哪裡啊 檢查一下午了

你是想讓數碼管穩定顯示?和紅外線有啥關系?
另外,你貼下代碼,這樣看著太累了,也不好改。

Ⅶ 51單片機怎麼用紅外線

--你是指紅外遙控解碼吧,給你一點提示,在單片機定義一個I/O口為紅外遙控的輸入埠,(紅外遙控解碼不一定要用到定時器和中斷方式.具體方法有很多的,看場合選取)當然輸入這個埠的信號是經過遙控接收電路處理過的一串數據,如TTL或者CMOS電平。再然後就是對這個輸入信號進行處理,也就是解調出遙控碼值出來,要解這個碼,首先又要知道其波形如何,即是邏輯電平和時序等問題...

建議你還是先熟知一下各種IR的遙控協議,有挺多的,典型的有NEC,飛利浦等。說說NEC的也有兩種,簡單的一種就是有32位數據,前16bit為地址碼,後16bit為遙控碼值的正碼與反碼,地址碼用於區分相同協議下不同的遙控所帶來的干擾等,正碼和反碼用於解調後進行校驗數據。不多說了,主要是找點相關資料研究研究就明白了。圖片是一個32bitNEC的遙控波形,這個波形的地址碼是807F,正碼是0x12,如果看懂了,用MCU解遙控碼就很容易了..

Ⅷ 單片機紅外線接收的程序誰有(C語言程序的)

//採用24MHz晶振
unsigned
char
inf_dat,inf_old,inf_num,inf_time,inf_run,inf_run_time;
void
int_t1(void)
interrupt
3
{
TH1=-0x5;
time++;
s001++;
if
((++inf_run_time)>150)
{inf_run=0;inf_run_time=0;}
if
(inf_num==0)
inf_time=0;
else
if
(inf_num<11)
inf_time++;
}
/*
紅外線超時
*/
void
int_t0(void)
interrupt
1{
inf_old=0;
inf_num=0;
inf_time=0;
}
/*
紅外線低電平時間
*/
void
int_e0(void)
interrupt
0
{
unsigned
char
i;
TR0=0;
if
(TH0<11)
{
//判斷是否間隔波形
if
(inf_num>3)
{
//前面三個波形是相同的,忽略不計
if
(TH0<4)
i=0;
else
i=1;
//根據低電平的長短處理
inf_old|=i;inf_old<<=1;
//利用inf_old的8個位來紀錄波形
}
else
inf_old=0;
//前面三個波形
}
else
inf_num=0;
//如果是把計數器清零
TH0=TL0=0;
TR0=1;
inf_run_time=0;
if
((++inf_num)>11)
{
//接收到的計數器大於11(一個紅外線信息的個數)
if
((inf_time>24)
&&
(inf_time<28))
{
//接收到11個波形後判別總時間
if
((++inf_run)>250)
inf_run=250;
//總時間符合,連續按下標志加一
if
((inf_run==1)
||
(inf_run>10))
inf_dat=inf_old;
//按下鍵第一次有效,之後沒效,連續10個後有效,表示連按鍵
}
inf_old=0;
inf_num=0;
}
}
void
main(void)
{
TMOD=0x19;EA=1;ET1=1;TR1=1;ET0=1;
EX0=1;IT0=1;TH1=-5;
}

Ⅸ 紅外感測器和單片機之間怎麼連接

紅外感測器和單片機之間的連接方法:

紅外感測器絕大部分都是通過測引腳電壓換算成距離。所以一般紅外都有三根引腳,VCC和GND肯定會接噻,然後信號線接到你開啟單片機的ADC通道對應的引腳,讀該引腳的電平換算成距離。

紅外感測器如果是數據信號,有幾個腳,就用單片機幾個腳連接,然後根據輸出信號的時序寫程序讀。如果是模擬信號,就得用到A/D轉換電路。

(9)單片機紅外線擴展閱讀:

紅外感測器的相關要求規定:

1、紅外線感測器利用遠紅外線范圍的感度做為人體檢出用,紅外線的波長比可見光長而比電波短。紅外線只由熱的物體放射出來,凡是存在於自然界的物體,如人類、火、冰等等全部都會射出紅外線,只是其波長因其物體的溫度而有差異而已。

2、利用紅外輻射的熱效應,探測器的敏感元件吸收輻射能後引起溫度升高,進而使某些有關物理參數發生變化,通過測量物理參數的變化來確定探測器所吸收的紅外輻射。

3、紅外感測器已經在現代化的生產實踐中發揮著它的巨大作用,隨著探測設備和其他部分的技術的提高,紅外感測器能夠擁有更多的性能和更好的靈敏度。

Ⅹ 求單片機C51紅外線收發方案(最好有詳細解釋)

紅外線遙控器解碼程序
2007-02-07 18:52 紅外線遙控是目前使用最廣泛的一種通信和遙控手段。由於紅外線遙控裝置具有體積小、功耗低、功能強、成本低等特點,因而,繼彩電、錄像機之後,在錄音機、音響設備、空凋機以及玩具等其它小型電器裝置上也紛紛採用紅外線遙控。現在工業設備中,也已經廣泛在使用。。。。。

1 紅外遙控系統
通用紅外遙控系統由發射和接收兩大部分組成,應用編/解碼專用集成電路晶元來進行控制操作,如圖1所示。發射部分包括鍵盤矩陣、編碼調制、LED紅外發送器;接收部分包括光、電轉換放大器、解調、解碼電路。
2 遙控發射器及其編碼
遙控發射器專用晶元很多,根據編碼格式可以分成脈沖寬度調制和脈沖相位調制兩大類,這里我們以運用比較廣泛,解碼比較容易的脈沖寬度調制來加以說明,現以3310組成發射電路為例說明編碼原理。當發射器按鍵按下後,即有遙控碼發出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特徵:
採用脈寬調制的串列碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的「0」;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的「1」
上述「0」和「1」組成的42位二進制碼經38kHz的載頻進行二次調制以提高發射效率,達到降低電源功耗的目的。然後再通過紅外發射二極體產生紅外線向空間發射,
3310產生的遙控編碼是連續的42位二進制碼組,其中前26位為用戶識別碼,能區別不同的紅外遙控設備,防止不同機種遙控碼互相干擾。後16位為8位的操作碼和8位的操作反碼用於核對數據是否接收准確。
當遙控器上任意一個按鍵按下超過36ms時,LC7461晶元的振盪器使晶元激活,將發射一個特定的同步碼頭,對於接收端而言就是一個9ms的低電平,和一個4.5ms的高電平,這個同步碼頭可以使程序知道從這個同步碼頭以後可以開始接收數據。
解碼的關鍵是如何識別「0」和「1」,從位的定義我們可以發現「0」、「1」均以0.56ms的低電平開始,不同的是高電平的寬度不同,「0」為0.56ms,「1」為1.68ms,所以必須根據高電平的寬度區別「0」和「1」。如果從0.56ms低電平過後,開始延時,0.56ms以後,若讀到的電平為低,說明該位為「0」,反之則為「1」,為了可靠起見,延時必須比0.56ms長些,但又不能超過1.12ms,否則如果該位為「0」,讀到的已是下一位的高電平,因此取(1.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右即可。
根據紅外編碼的格式,程序應該等待9ms的起始碼和4.5ms的結果碼完成後才能讀碼。

接收器及解碼
LT0038是塑封一體化紅外線接收器,它是一種集紅外線接收、放大、整形於一體的集成電路,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,沒有紅外遙控信號時為高電平,收到紅外信號時為低電平,而體積和普通的塑封三極體大小一樣,它適合於各種紅外線遙控和紅外線數據傳輸。

下面是一個對51ISP編程實驗開發板配套的紅外線遙控器的解碼程序,它可以把紅外遙控器每一個按鍵的鍵值讀出來,並且通過實驗板上P1口的8個LED顯示出來,在解碼成功的同時並且能發出「嘀嘀嘀」的提示音。
ORG 0000H
AJMP MAIN;轉入主程序
ORG 0003H ;外部中斷P3.2腳INT0入口地址
AJMP INT ;轉入外部中斷服務子程序(解碼程序)
;以下為主程序進行CPU中斷方式設置
MAIN:SETB EA ;打開CPU總中斷請求
SETB IT0 ;設定INT0的觸發方式為脈沖負邊沿觸發
SETB EX0 ;打開INT0中斷請求
;以下對單片機的所有引腳進行初始化,全部設置成高電平
MOV P2,#11111111B
AJMP $
;以下為進入P3.2腳外部中斷子程序,也就是解碼程序
INT: CLR EA ;暫時關閉CPU的所有中斷請求
MOV R6,#10
SB: ACALL YS1;調用882微秒延時子程序
JB P3.2,EXIT;延時882微秒後判斷P3.2腳是否出現高電平如果有就退出解碼程序
DJNZ R6, SB;重復10次,目的是檢測在8820微秒內如果出現高電平就退出解碼程序
;以上完成對遙控信號的9000微秒的初始低電平信號的識別。
JNB P3.2, $ ;等待高電平避開9毫秒低電平引導脈沖
ACALL YS2 ;延時4.74毫秒避開4.5毫秒的結果碼
MOV R7,#26;忽略前26位系統識別碼
JJJJA:JNB P3.2,$;等待地址碼第一位的高電平信號
LCALL YS1;高電平開始後用882微秒的時間尺去判斷信號此時的高低電平狀態
MOV C,P3.2;將P3.2引腳此時的電平狀態0或1存入C中
JNC UUUA;如果為0就跳轉到UUUA
LCALL YS3;檢測到高電平1的話延時1毫秒等待脈沖高電平結束
UUUA: DJNZ R7,JJJJA
MOV R1,#1AH ;設定1AH為起始RAM區
MOV R2,#2;接收從1AH到1BH的2個內存,用於存放操作碼和操作反碼
PP: MOV R3,#8;每組數據為8位
JJJJ: JNB P3.2,$;等待地址碼第一位的高電平信號
LCALL YS1;高電平開始後用882微秒的時間尺去判斷信號此時的高低電平狀態
MOV C,P3.2;將P3.2引腳此時的電平狀態0或1存入C中
JNC UUU;如果為0就跳轉到UUU
LCALL YS3;檢測到高電平1的話延時1毫秒等待脈沖高電平結束
UUU: MOV A,@R1;將R1中地址的給A
RRC A;將C中的值0或1移入A中的最低位
MOV @R1,A;將A中的數暫時存放在R1數值的內存中
DJNZ R3,JJJJ;接收滿8位換一個內存
INC R1;對R1中的值加1,換下一個RAM
DJNZ R2,PP ;接收完8位數據碼和8位數據反碼,存放在1AH/1BH中
MOV A,1AH
CPL A;對1AH取反後和1BH比較
CJNE A,1BH,EXIT;如果不等表示接收數據發生錯誤,放棄
MOV P1,1AH;將按鍵的鍵值通過P1口的8個LED顯示出來!
CLR P2.0;蜂鳴器鳴響-嘀嘀嘀-的聲音,表示解碼成功
LCALL YS2
LCALL YS2
LCALL YS2
SETB P2.0;蜂鳴器停止(使用時可以將J2的YINYUE腳用跳線接J4 的XS1腳才可以使用蜂鳴器)可以看原理圖
EXIT: SETB EA ;允許中斷
RETI ;退出解碼子程序
YS1: MOV R4,#20 ;延時子程序1,精確延時882微秒
D1: MOV R5,#20
DJNZ R5,$
DJNZ R4,D1
RET
YS2: MOV R4,#10 ;延時子程序2,精確延時4740微秒
D2: MOV R5,#235
DJNZ R5,$
DJNZ R4,D2
RET
YS3: MOV R4,#2;延時程序3,精確延時1000微秒
D3:MOV R5,#248
DJNZ R5,$
DJNZ R4,D3
RET
END
以上程序緊供參考。

0A 01
11 12 13 14
15 16 17 18
19 10 1A 1B
0E 02 03 1C
06 04 05 0C
0D 08 09 1D
00 1F 1E 0B
07 0F
這是按照紅外遙控器按鍵的實際位置給出的32個按鍵的鍵值(16進制)

閱讀全文

與單片機紅外線相關的資料

熱點內容
centos解壓縮zip 瀏覽:387
我的世界怎麼用命令風塊取消指令 瀏覽:1000
安卓軟體請求超時怎麼辦 瀏覽:476
androidapp調用另一個app 瀏覽:621
數控銑床法蘭克子程序編程 瀏覽:173
linux打包命令targz 瀏覽:996
抖音app是哪個 瀏覽:407
蘋果app怎麼上架 瀏覽:255
NA伺服器地址 瀏覽:427
我的世界如何初始化伺服器 瀏覽:97
哪個手機app天氣預報最准 瀏覽:752
怎樣把視頻壓縮至25m 瀏覽:570
vivox27文件夾怎麼改變 瀏覽:727
新手玩狼人殺用什麼app 瀏覽:615
pdf在線查看 瀏覽:954
安卓tv90如何關閉後台 瀏覽:683
php讀取word亂碼 瀏覽:755
minicom源碼 瀏覽:1001
海爾冷櫃壓縮機 瀏覽:417
聯通伺服器如何調試信號 瀏覽:136