娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

- 什么是紅外遙控

紅外遙控系統主要由紅外發射裝置和紅外接收裝置構成。

紅外發射裝置主要由鍵盤電路、紅外編碼芯片、電源和紅外發射電路組成(比如遙控器),如圖:

在這里插入圖片描述

紅外接收裝置主要由紅外接收電路、紅外解碼芯片、電源和應用電路組成,在單片機開發板上有紅外接收電路,而且單片機充當解碼芯片。


- 紅外信號是怎么傳輸的

人的眼睛能看到的可見光按波長從長到短排列依次為:紅、橙、黃、綠、青、藍、紫。其中紅光的波長范圍為0.62~0.72微米,紅外遙控就是利用波長為0.76至1.5微米之間的近紅外線來傳送控制信號的。


紅外信號的發射由紅外發射電路中的紅外發光二極管完成,通常情況下為了提高抗干擾能力與降低電源消耗,遙控器將遙控信號(二進制脈沖碼)調制在載波(載波是傳送信息的物理基礎和承載工具)上經放大后發送至紅外二極管,再由二極管轉換為紅外信號發送出去。


遙控器上不同的按鍵有著不一樣的鍵值,按下相對應的鍵,紅外二極管就會發送對應的信號,接收裝置接收到信號后會對信號進行信號解調后會得到相應按鍵的鍵值,再根據不同的鍵值執行相應的操作。


- NEC協議

就像串口通信一樣,紅外通信也有其自己的通信協議,我們一般遵循NEC協議。

NEC規定紅外二極管每次發送的信號的數據格式如下:

在這里插入圖片描述

發送的數據主要由引導碼、用戶碼1、用戶碼2、數據碼、數據反碼組成。引導碼相當于暗號,當接收裝置接收到正確的引導碼后就開始讀取數據,倆組用戶碼是為了區別其他的紅外發射器發射的信號,數據碼中的內容就對應著相應的鍵值,數據反碼是為了在接收信號后檢驗信號的正確性。(引導碼是“9ms高電平+4.5ms低電平”)

這樣我們雖然清楚了信號的發送形式,但是怎么表達數據發送中的高低位(“0"和"1”)呢?這又涉及到NEC的位定義了,規定:“0.56ms高電平+0.565ms低電平”代表“1”;“0.56ms高電平+1.69ms低電平”代表“0”,就是說“0”與“1”的不同就是他們低電平所持續的時間不同。(PS:發送數據時從最低位開始發送)

在這里插入圖片描述

不知道讀者注意到黑體字標出的發送沒,為什么要刻意強調是發送時的呢?因為單片機接收到的數據格式與發送時的恰恰相反,就是說接收時的引導碼是“9ms低電平+4.5ms高電平”;“0”是“0.56ms低電平+0.565ms高電平”;“1”是“0.56ms低電平+1.69ms高電平”。這一點我們要格外注意,因為后續我們在解碼程序中是以接收到的數據為準的!!!

在這里插入圖片描述

- 程序分析

敲代碼之前首先要對程序有一個清楚的認識,即明白要做哪幾個模塊?這些模塊之間要怎么聯系起來?在下做的一個程序是把從紅外發射器中接收到數據經過處理后顯示在數碼管上,這樣看來我的程序就需要如下幾個模塊:

1.初始化模塊:包括初始化紅外接收引腳(把P3.2外部中斷引腳作為紅外接收引腳)、打開外部中斷允許位;

2.延時模塊:延時模塊主要用來分析高低電平持續的時間,從而判斷對應的位是“0”還是“1”;

3.解碼模塊:利用外部中斷函數interrupt 0進行數據解碼,其任務是檢驗并接收正確的數據信號,對用戶碼和數據碼進行分析,即通過檢測高低電平持續的時間來判斷相應的位是“0”還是“1”。然后得出相對應的鍵值,把鍵值對應的數反饋到程序中;

4.顯示模塊:其主要任務是接收解碼模塊反饋的數值,并將數值顯示在數碼管上;

5.主函數模塊:整合前幾個模塊。


程序如下:


#include"reg52.h"

#define uint unsigned int 

#define uchar unsigned char

sbit a=P2^2;//a、b、c是控制位選的三個引腳

sbit b=P2^3;

sbit c=P2^4;

sbit IR=P3^2;//將紅外接收引腳和外部中斷0引腳定義在一起,

這樣一旦接收到信號就進入中斷函數進行解碼

uint jz=0,time;//jz存的是鍵值相對應的數值

uchar irdata[4],duan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0X76};

//duan[17]存的是數碼管段選顯示0~F的數據;irdata[4]存的是一組用戶碼和數據碼、數據反碼


void dy(uint n)   //延時一次約為0.01ms 用來判斷脈沖時間

{while(n--);}


void xs(uint x)   //數碼管顯示

{

a=0;b=0;c=0;//因為我遙控器上的數只有0~9,所以就位選時控制一個數碼管就行

P0=duan[x];//顯示數字


}


void init() //初始化

{

IT0=1;//確定中斷0(紅外接收)的觸發方式為下降沿觸發

EX0=1;//打開外部中斷0和總中斷的允許位

EA=1;

IR=1; //相當于打開外部中斷0  此處意義為紅外接收器打開

}


void hhh() interrupt 0   //執行中斷:進行讀取信號  最后產生鍵值

{

uint i,j,k;

dy(700);//能進入中斷函數就代表IR已經為0,此處的延時是為了判斷延時的大體時間

if(IR==0)

{

k=1000;

while(IR==0&&(k>0))//檢測引導碼中9ms低電平

{

dy(1);

k--;

}

if(IR==1)//判斷高電平

{

k=500;

while(IR==1&&(k>0))//檢測引導碼中4.5ms高電平

{

dy(1);

k--;

}

for(i=0;i<4;i++) //開始讀取用戶碼和數據和數據反碼,

因為用戶碼和數據碼、數據反碼共有4組,所以外層有四組循環

{

for(j=0;j<8;j++)//每組數據有八位,故內層循環有八組,每次循環讀一位

{

if(IR==0)

{

k=70;

while(IR==0&&(k>0))//檢測0.56ms的低電平

{

k--;

dy(1);

}

}

if(IR==1)//進入高電平時間,這一塊比較核心,它判斷了高電平持續時間的長短

{

time=0;

k=500;

while(IR==1&&k>0)//開始檢測高電平

{

dy(10);

time++;//time是以0.1ms為單位,因為dy(10);

k--;

}

if(time>30) return ;

irdata[i]>>=1; //移位運算,空出最高為為下一次采集做準備

if(time>=8)//如果高電平持續時間超過0.85ms代表位是“1”

irdata[i]|=0x80;//或運算,給最高為置1

time=0;//重置

}

}

}

}

if(irdata[2]!=~irdata[3])//irdata[2]與irdata[3]分別是數據碼和數據反碼 ,此操作是檢驗數據準確性

return;

}

switch(irdata[2])//反饋鍵值所對應的數值

{

case 0x16:jz=0;break;

case 0x0c:jz=1;break;

case 0x18:jz=2;break;

case 0x5e:jz=3;break;

case 0x08:jz=4;break;

case 0x1c:jz=5;break;

case 0x5a:jz=6;break;

case 0x42:jz=7;break;

case 0x52:jz=8;break;

case 0x4a:jz=9;break;

case 0x45:jz=10;break;

default:break;

}


}

 

void main()

{

init();//初始化

while(1) 

xs(jz);//顯示數值

}

關鍵字:51單片機  紅外遙控 引用地址:51單片機—紅外遙控

上一篇:51單片機-實踐操作
下一篇:51單片機—串口通信

推薦閱讀

國家企業信用信息公示系統顯示,2018年8月29日,支付寶(中國)信息技術有限公司法定代表人發生變更,由馬云變更為葉郁青。另據天眼查顯示,葉郁青目前身兼支付寶董事長和總經理、杭州阿里科技有限公司董事等職務。?對此,支付寶官方微博回應稱,支付寶的運營主體是支付寶(中國)網絡技術有限公司,并非支付寶(中國)信息技術有限公司,法人變更屬于公...
據外媒報道,當地時間8月28日,韓國LG集團旗下電子產品零部件子公司LG Innotek宣布,計劃積極進軍高端汽車市場,而且已經為高檔汽車研發了柔性3D照明系統。(圖片來源:LG Innotek)該照明系統名為Nexlide-HD,是一個汽車前后部照明的模塊,能夠發出明亮而均勻的光。該照明模塊由許多特殊的LED燈封裝而成,而此類LED燈安裝在一個薄基板上,有助于讓光線...
針對傳統照明的有線、機械的控制方式,文章提出一種基于物聯網(InternetOfThings,IOT)技術的智能照明控制系統,將智能控制模塊嵌入LED照明終端,綜合運用嵌入式技術、無線傳感器網絡等技術,實現智能化、數字化、無線化的智能照明控制方式,同時還具有環境溫濕度、光照度等環境參數的監測功能。概述隨著LED照明越來越普及以及移動互聯網技術的快速發展,...
8月30日,廣汽埃安正式發布了一款超充技術,名為“超倍速電池技術及A480超充樁”。該技術的電池充電的原理是鋰離子從正極出發,經過隔膜、電解液到達負極,包括脫出,遷移,和嵌入三個過程,單位時間內遷移和嵌入的鋰離子越多,就代表著充電速速越快。注入新型低粘度、高功率電解液,加入三維結構石墨烯新型導電劑從而進一步加速電子的移動速度,實現最大6...

史海拾趣

問答坊 | AI 解惑

AVR+DTMF來電記錄

本制作使用2X16的液晶(國內型號叫1602B)。可以將234個來電存在EEPROM中,并可以通過電腦串行口在超級終端中讀取數據。MT8870 是電信信號 DTMF 解碼器,在本電路中有兩個輸入:一個是電話線輸入,另一個是耳機輸入,可以接掃描儀、錄音機等設備。兩 ...…

查看全部問答∨

電源應用中場效應晶體管的崩潰效應

前言:  在 SMPS(Switching Mode Power Supply) 以及 DC-DC 轉換器設計中 , 使用場效應晶體管當作切換開關已經越來越普遍。在設計中為了減少尺寸大小和提升電源密度 , 其電源管理中操作工作頻率也要求越來越高。如此會造成較高的 di/dt 產生使得 ...…

查看全部問答∨

FSK編譯碼器設計

FSK即Frequency Shift Key,頻移鍵控編碼。通俗來說就是信號\'1\'用一個頻率來表現,\'0\'用另外一個頻率來表示,如圖1所示。圖1      FSK編碼的基本思路是首先產生兩個頻率fone和ftwo,其中fone表示\'1\',其中ftwo表示\'0\' ...…

查看全部問答∨

請教將12.xMHz方波二倍頻到24.xMHz,有什么方法?

1,用fpga的pll或pll的IC來做。(現不考慮) 2,用RC和門電路搭一個,怎么做呢?占空比50%,可以嗎? 3,聽說可以RC結合FPGA/CPLD,這個和2的方法應該是一致的吧? 4,還有其他方法嗎?…

查看全部問答∨

郁悶! 發泄一下!

每周5天半! 每天工作12~13小時不算加班費,還不能說是加班,只能說是趕工! 工作到晚上12點,1點,2點, 第二天依然必須9點上班, 否則算遲到! 只要一天不加班, 老板心里就不爽, 第二天就開始催進度, 要縮短開發時間! 全年12個月工資, 無任何獎金津貼 ...…

查看全部問答∨

急問

我寫的程序大了,超過了449的CODE范圍,出現了如下了編譯信息,該怎么辦呢? Error[Og008]: Code size limit exceeded (4096 code bytes) for this version of the compiler Error while running C/C++ compiler 請各位高手指點一下,多謝…

查看全部問答∨

【MSP430共享】基于藍牙技術的生理參數采集系統設計

采用低功耗的單片機和藍牙模塊研制出一種便攜式的住院病人生理參數采集系統,實現了醫院內普通病房的無線生理數據采集功能。本文從硬件和軟件兩方面討論了系統的設計和實現過程 ,并選擇了體溫測量模塊的實現方法做重點介紹 ,闡明了藍牙技術在醫療 ...…

查看全部問答∨

摻雜濃度

三極管中集電極 基極 發射極的摻雜濃度怎么排序   我看教科書上說 從小到大 是基極 集電極 發射極   在本論壇上的某一教程帖中看到的是 從小到大 是集電極 基極 發射極   不知道哪個正確 [ 本帖最后由 eeboyok 于 2011-11-13 ...…

查看全部問答∨

關于GSM模塊和單片機問題

我想確定一個問題,就是:是不是我把卡A放到GSM模塊中··然后程序里定義的手機號碼B··然后卡A發短信噶B呢? 一下是我幾個AT指令: unsigned   char    code   mode[]= "AT+CMGF=1\\r ";   //&nb ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 区。| 德州市| 乐安县| 台江县| 绥宁县| 天水市| 乾安县| 临武县| 和田市| 孝义市| 东至县| 茶陵县| 玉溪市| 汉中市| 南投县| 如东县| 弋阳县| 内乡县| 阳信县| 遂溪县| 增城市| 荥经县| 资阳市| 监利县| 南昌县| 江阴市| 鄱阳县| 兴隆县| 天峻县| 会泽县| 天等县| 宜章县| 贵溪市| 溧水县| 阿瓦提县| 丰原市| 江川县| 长兴县| 庆安县| 房山区| 石阡县|