51微控制器紅外置收解碼程式詳細解析

2021-03-04 00:29:42 字數 1314 閱讀 6898

接收以s52微控制器作為接收系統。以s52的p3.3口作為接收埠,該埠是外部中斷1。

這個接受程式是以xc866作為紅外傳送控制系統,接收程式如下:

#include //標頭檔案

#include

#define uchar unsigned char //巨集定義

#define uint unsigned int

sbit hwrx=p3^3; //位宣告

code uchar table= //共陰數碼管 0-9 a-f - 表

;uchar table_data[8]=;//用於顯示的陣列

uchar table_rx[67];//用於儲存判斷接收是1或0的引數

void delay();//延時子函式

void display(uchar *lp,uchar lc)//顯示

}void main() //主函式

}void delay() //延時時間大約為31us,晶振12m

void delay_ms(uint z) //延時時間約為 1ms*x 晶振為12m

void hongwai() interrupt 2 //外部中斷 1 ,int1(p3^3)連線紅外線接收ic資料腳

while(j--)

i++;

tmp=0;

table_rx[i]=1; //時間量從1開始

while(hwrx) //檢測高低電平的變化,這裡檢測的是低電平

i++;

} p1=0xf8;

i=200; //加入迴圈延時,抗干擾

while(i) //在有接收資料的時候顯示乙個h

i--;

}tmp=0;

for(i=3;i<19;i++,i++) //處理傳送的資料

table_data[0]=tmp/16; //分開2位以16進製制顯示,用顯示傳送的資料

table_data[1]=tmp%16;

tmp=0;

for(i=19;i<35;i++,i++) //同上

table_data[2]=tmp/16;

table_data[3]=tmp%16;

tmp=0;

for(i=35;i<51;i++,i++)

table_data[4]=tmp/16;

table_data[5]=tmp%16;

tmp=0;

for(i=51;i<67;i++,i++)

table_data[6]=tmp/16;

table_data[7]=tmp%16;

ex1=1; //剛進中斷時關閉了分控,現在要開啟}

51微控制器的C語言程式結構

預處理命令 include 子函式 void delay void 主函式 void main void 2 c語言是由函式構成的,乙個c語言程式可以包含多個函式,但是有且只能有乙個主函式 函式名為main 主函式沒有返回值和引數 void main void c語言程式的執行總是從主函式main開...

51微控制器串列埠485通訊程式

以下為微控制器串列埠485通訊程式,從機程式 當然也適用於主機程式 主機傳送可以先用串列埠幫手軟體來除錯,經過keil uvision4實際測試,測試效果如結尾 所示,大部分來自網路,只是改了兩個地方 len sizeof dbuf if i errlen 1 幀超長,錯誤,返回,就可以實現了,其中...

紅外線遙控解碼原理及其在微控制器中的應用

廣東松山職業技術學院電氣工程系張勇 摘要 本文詳細介紹了基於a t 89c 52微控制器的紅外線遙控解碼的基本工作原理,並對其在硬體設計 軟體設計和實現方法中的注意事項進行了詳細的闡述。關鍵詞 a t 89c 52 紅外線遙控接收器紅外線遙控編碼 012 科技資訊計算機與網路 112 上接第209頁...