久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6779|回復: 3
打印 上一主題 下一主題
收起左側

單片機紅外遙控照明系統設計(程序+文檔)

[復制鏈接]
跳轉到指定樓層
樓主
ID:362056 發表于 2018-12-25 09:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
目錄

第一章  緒論
1.1  前言
1.2  需求分析
1.3  方案選擇
第二章  紅外遙控原理
第三章  硬件系統設計
3.1  所需器件選擇
3.1.1  STC89C51單片機
3.1.2  紅外一體化接收器件
3.2  硬件電路設計
3.2.1  時鐘電路
3.2.2  復位電路
3.2.3  LED燈電路
第四章 軟件設計
4.1  紅外編碼原理
4.2  接收模塊程序流程圖
4.2.1  紅外遙控接收初始化程序和主程序
4.2.2  紅外遙控器按鍵掃描子流程圖
第五章  調試與總結
5.1  仿真調試
5.2  實物調試
5.3  總結
參考文獻
附錄A  電路圖與實物圖
附錄B  軟件程序

第一章  緒論1.1  前言

隨著經濟的進一步發展,生活水平的提高,人們對生活品質的要求也越來越高,傳統的照明系統已經遠遠滿足不了現代人的需要,對于照明的控制,人們希望使用更加方便甚至是隨心所欲,于是智能照明系統應運而生。通訊技術、網絡技術、傳媒業的飛速發展和高度結合,數字化家居將得到進一步的快速提升,技術也將進一步的成熟,各類通訊標準和市場也將得到進一步的規范,在不久的將來,智能照明將真正飛入尋常百姓家。
  照明系統是我們生活中最常用的基礎系統。隨著智能家居產業的興起,充滿人性化的家居智能照明系統將帶給你浪漫,溫馨的家居環境。智能照明可以控制照明光源的發光時間、亮度,它不僅具有軟啟,調光,全開全關等基本的功能,而且與其它智能系統連動還能實現具有場景設置等更具人性化的功能。實現照明管理智能化,操作簡單更靈活。全面提升家庭環境的品位和生活的舒適度。所以智能照明系統代替傳統的照明系統,是家居智能化過程中必然要走的一步。

智能照明行業自從上世紀90年代進入中國市場以來,受市場的消費意識、市場環境、產品價格、推廣力度等各方面的影響,一直沒有太大的起色。

1.2  需求分析

(1)國內的智能照明產品推廣力度遠遠不夠。由于這是一個新興行業,不同于普通消費品市場的建設,消費觀念的形成還需要時間,產品的宣傳力度還需加大。但是隨著經濟的發展、相關行業對外開放的力度的加大,部分國際品牌如Dynalite、路創、WIELAND、e-bfb 等進軍中國市場,與國內智能照明廠家和商家如百分百照明、瑞朗、索博、海爾、清華同方等企業相互取長補短,在良性的市場競爭中,推動智能照明行業的發展與增長。
  由于市場沒有成型,還沒有形成大的消費市場,大部分智能照明廠家在市場渠道的建設上也一直在探索著適合這個行業的模式。由于各方面的原因,傳統的照明、電工經銷商很難推動、裝飾公司不夠專業等因素使智能照明市場還沒有形成穩定的銷售渠道。
  (2)消費者在認識上存在誤區。
  普通家庭在照明問題上由于傳統觀念影響,普遍感覺照明系統是否智能,并不是必須要具備的。由于文化素質高低的差異,許多人雖然對智能照明有些了解,但對于這種高科技的產品也擔心不會使用,有的甚至擔心維修保養問題,從而造成更大的麻煩。
  (3)經濟基礎決定家居檔次。
  我國現階段,雖然國民經濟呈現高速發展之勢,但起步較低,絕大多數家庭還剛剛處在溫飽階段,就業形勢、子女教育、醫療負擔等壓力,使人們還不敢過分追求家居的舒適,通常的對策是增加儲蓄,以備不時之需。而且,普通家庭住房一般就是二居室或三居室,是否采用智能化照明,現實意義并不大。因此,對于智能照明、智能家居等先進的時尚商品,采取現階段觀望,未來幾年隨著家居條件的改善再決定是否安裝。總之,國內絕大多數家庭的經濟狀況,也是影響智能照明系統普及的重要原因,盡管智能照明系統的價格并不昂貴。

1.3  方案選擇

根據畢業設計的要求,利用單片機設計一個遙控開關電路,可以擬定以下的幾種方案。

方案一:簡易紅外遙控電路

在不需要多路控制的應用場合,可以使用由常規集成電路組成的單通道紅外遙控電路。這種遙控電路不需要使用較貴的專用編譯碼器,因此成本較低。

紅外發射部分


圖1-1方案一紅外發射部分示意圖

考慮到本方案電路是簡單的單通道遙控器,可直接產生一個控制功能的震蕩頻率,再通過紅外發光二極管發射出去。

紅外接收部分


圖1-2方案一紅外接收部分示意圖

當紅外接收頭接收到控制頻率時,由一個電路對其進行解調并產生相應的控制功能。

方案二:利用紅外遙控開關電路

用單片機制作一個紅外電器遙控器,可以分別控制8個電器的電源開關。

紅外發射部分

圖1-3方案三紅外發射部分示意圖

當按下遙控按鈕時,單片機產生相應的控制脈沖,由紅外發光二極管發射出去。

紅外接收部分:



圖1-4方案三紅外接收部分示意圖

當紅外接收器接收到控制脈沖后,經單片機處理由顯示設備顯示出當前受控電器的序號。

方案三:綜合使用

使用常規集成電路制作紅外遙控器,基于單片機制作紅外接收裝置。紅外遙控器鍵盤按下后,通過TC9012進行譯碼和調制,由紅外發光二極管發射出去。

當紅外接收器接收到控制脈沖后,經單片機處理由顯示設備顯示出當前受控電器的序號。

方案比較

綜上所述通過比較三套方案,方案一未采用單片機控制,功能過于單一,僅能對一路電器進行簡單的遙控;方案二的紅外線發射/接收控制電路采用單片機來實現,電路復雜,實用性不強;方案三的紅外發射采用簡易電路搭建,接收控制基于單片機制作亦可實現多功能實現遙控。


第二章  紅外遙控原理

紅外遙控就是把紅外線作為載體的遙控方式。由于紅外線的波長遠小于無線電波的波長,因此在采用紅外遙控方式時,不會干擾其他電器的正常工作,也不會影響臨近的無線電設備。同時,由于采用紅外線遙控器件時,工作電壓低,功耗小,外圍電路簡單,因此它在日常工作生活中的應用越來越廣泛。常用的紅外遙控系統一般分發射和接收兩個部分。

常用的紅外遙控系統一般分發射和接收兩個部分。遙控發射具有鍵盤矩陣,每按下一個鍵,即產生具有不同的編碼數字脈沖,這種代碼指令信號調制在38kHz的截波上,激勵紅外光二級管產生具有脈沖串的紅外波,通過空間的傳送到受控機內的遙控接收器。在接收過程中,紅外波信號通過光電二級管轉換為38kHz的電信號,此信號經過放大、檢波、整形、解調、送到解碼與接口電路,從而完成相應的遙控功能。


圖2-1  紅外遙控原理圖

發射部分的主要元件為紅外發光二極管。它實際上是一只特殊的發光二極管;由于其內部材料不同于普通發光二極管,因而在其兩端施加一定電壓時,它便發出的是紅外線而不是可見光。目前大量的使用的紅外發光二極管發出的紅外線波長為940nm左右,外形與普通φ5發光二極管相同,只是顏色不同(如圖2.1)。紅外發光二極管一般有黑色、深藍、透明三種顏色。判斷紅外發光二極管好壞的辦法與判斷普通二極管一樣;用萬用表電阻擋量一下紅外發光二極管的正、反向電阻即可。紅外發光二極管的發光效率要用專門的儀器才能精確測定,而業余條件下只能用拉鋸法來粗略判判定。

圖2-2  紅外發光二極管

接收部分的紅外接收管是一種光敏二極管(如圖2.2)。在實際應用中要給紅外接收二極管加反向偏壓,它才能正常工作,亦即紅外接收二極管在電路中應用時是反向運用,這樣才能獲得較高的靈敏度。紅外發光二極管一般有圓形和方形兩種[2]。


圖2-3  紅外接收二極管

由于紅外發光二極管的發射功率一般都較小(100mW左右),所以紅外接收二極管接收到的信號比較微弱,因此就要增加高增益放大電路。前些年常用Μpc1373H、CX20106A等紅外接收專用放大集成電路。最近幾年不論是業余制作還是正式產品,大多都采用成品紅外接收頭。成品紅外接收頭的封裝大致有兩種:一種采用鐵皮屏蔽;一種是塑料封裝。均有三只引腳,即電源正(VDD)、電源負(GND)和數據輸出(VO或OUT)。紅外接收頭的引腳排列因型號不同而不盡相同,可參考廠家的使用說明。成品紅外接收頭的優點是不需要復雜的調試和外殼屏蔽,使用起來如同一只三極管,非常方便。但在使用時注意成品紅外接收頭的載波頻率。紅外遙控常用的載波頻率為38kHz這是由發射端所使用的455kHz晶振來決定的。在發射端要對晶振進行整數分頻,分頻系數一般取12,所以455kHz÷12≈37.9kHz≈38kHz。也有一些遙控系統采用36 kHz、40 kHz、56 kHz等,一般由發射端晶振的振蕩頻率來決定。

紅外通信是利用950nm近紅外波段的紅外線作為傳遞信息的媒體 ,即通信信道。紅外通信的基本原理是發送端將基帶二進制信號調制為一系列的脈沖串信號,通過紅外發射管發射紅外信號。常用的有通過脈沖寬度來實現信號調制的脈寬調制PWM(Pulse-width modulation)和通過脈沖串之間的時間間隔來實現信號調制的脈時調制PTM(Pulse-time modulation)兩種方法 。

簡而言之,紅外通信的實質就是對二進制數字信號進行調制與解調,以便利用紅外信道進行傳輸;紅外通信接口就是針對紅外信道的調制解調器。

通常發送端采用脈時調制(PTM)方式,將二進制數字信號調制成某一頻率的脈沖序列,并驅動紅外發射管以光脈沖的形式發送出去;接收端將接收到的光脈轉換成電信號,再經過放大、濾波等處理后送給解調電路進行解調,還原為二進制數字信號后輸出 。

對于發送端來說,當無紅外脈沖發射時,發送的是二進制數據1;而有紅外脈沖發射時發送的是二進制數0。而對于接收端來說,沒有接收到紅外光,則認為是1;接收到則認為是0



第三章  硬件系統設計
3.1  所需器件選擇
3.1.1  STC89C51單片機

單片機又叫微型處理器,是把CPU,ROM,RAM,中斷部分,輸入/輸出部分,定時器/計數器等主要功能器件的數字電子計算機組裝在半導體芯片上。

單片機具有低電壓、低功耗、速度快、處理功能強、易于應用在簡單、容易攜帶的電子產品上等特點。

STC89C51芯片有以下功能特性:

(1)8位CPU-4Kbytes程序存儲器(ROM)

(2)128bytes數據存儲器(RAM)

(3)32個I/O端口,111條操作指令

(4)21個寄存器

(5)5個中斷源和2個定時/計數器

(6)一個全雙工串口通信端口89C51的芯片引腳

該紅外發射接收電路均使用的核心控件是STC89C51單片機。STC89C51是一個電壓低、性能高的CMOS 8位單片機,可擦除存儲器芯片包含2K字節和128字節(RAM),一個通用8位CPU和閃存單元的微控制器芯片。

STC89C51芯片的引腳功能

STC89C51單片機選用40個引腳排列的封裝形式,如圖3-1所示。具體引腳可分為電源部分,時鐘部分,控制部分和并行I/O端口部分四類。芯片功能圖如下所示:


圖3-1  芯片引腳圖

(1)電源部分引腳

① VCC(引腳40):電源端。

② GND(引腳20):接地端。

(2)時鐘部分引腳

① XTAL2(引腳18):外接一個石英晶振和兩個普通電容時構成內部振蕩電路,使用外部時鐘時,用來輸出時鐘脈沖。

② XTAL1(引腳19):XTAL1(引腳19):內部振蕩電路外接一個石英晶體和兩個電容,使用外部時鐘時,用來輸入時鐘脈沖。

(3)控制部分引腳

① RST(引腳9):RST是復位部分的輸入端口,在高電平情況下生效。

② ALE/PROG(引腳30):地址鎖存容許信號端口。

③ PSEN(引腳29):程序保存容許輸出信號端口。

④ EA/VPP(引腳31):外部存儲器地址容許輸入端。

當引腳連接到高電平時,該處理器只訪問內部只讀存儲器,并在內部存儲器中運行。當引腳連接到一個低電平,中央處理器只訪問外部只讀存儲器,并執行在外部存儲器中的指令。

(4)并行I/O端口部分引腳

① P0口(P0.0~P0.7,引腳39~32):是一個8位雙向I/O端口。有三個功能,一是作為外部擴展存儲器的數據總線,二是作為外部擴展存儲器的地址總線。三是作為普通的I/O使用。

②P1口(P1.0~P1.7,引腳1~8):是一個8位準雙向I/O口并且它的內部接有上拉電阻。除了把P1口當作一般的準雙向I/O端口外,一部分的引腳還具有特定的功能,如表3-1所示。

表3-1 P1端口的第二功能
引腳號
名稱
解釋說明
P1.1
T2ET
方向控制端口
P1.5
MOSI
在線可編程使用
P1.6
MISO
在線可編程使用
P1.7
SCK
在線可編程使用

③P2口(P2.0~P2.7,引腳21~28):有兩種功能。一是作為外部擴展存儲器的地址總線,二是作為一般端口,不需要接上拉電阻。

④P3口(P3.0~P3.7,引腳10~17):P3口(P3.0~P3.7,引腳10~17):有兩種功能。一是作為一般端口使用,二是作為特殊功能使用,如表3-2所示。

表3-2  P3口功能

引腳號

名稱

解釋說明

P3.0

RXD

串行輸入端口

P3.1

TXD

串行輸出端口

P3.2

INT0

外部中斷源0

P3.3

INT1

外部中斷源1

P3.4

T0

計時器外部輸入端

P3.5

T1

外部計數輸出端

P3.6

WR

寫選通輸出端

P3.7

RD

讀選通輸出端

3.1.2  紅外一體化接收器件

紅外接收電路一體化的紅外接收裝置,它將遙控信號的接收、放大、檢波、整形集于一身,并且輸出可以讓單片機識別的TTL 信號,這樣大大簡化了接收電路的復雜程度和電路的設計工作,方便使用。在本系統中我們采用紅外一體化接收頭HS0038,外觀圖如圖3 所示。HS0038 黑色環氧樹脂封裝,不受日光、熒光燈等光源干擾,內附磁屏蔽,功耗低,靈敏度高。在用小功率發射管發射信號情況下,其接收距離可達35m。它能與TTL、COMS 電路兼容。HS0038 為直立側面收光型。它接收紅外信號頻率為38 kHz,周期約26 μs,同時能對信號進行放大、檢波、整形,得到TTL 電平的編碼信號。三個管腳分別是地、+5 V 電源、解調信號輸出端。

圖3-2  HS0038引腳圖

3.2  硬件電路設計
3.2.1  時鐘電路

在設計中,圖3-3在XTAL1和XTAL2(第19和18引腳)兩端接一個12MHz的晶振和2個電容組成單片機的振蕩電路。其電容的主要是對頻率進行微調,選用范圍大多是在20-45pF,本設計選用30 pF。使用該電路產生穩定的頻率,為單片機能夠正常工作提供了穩定的振蕩信號。

圖3.3  晶振電路

3.2.2  復位電路

復位電路的作用是讓系統上電后進入復位狀態,讓單片機內部的程序指針指向程序運行部分。加入復位電路可以避免單片機在工作中出現某種死循環狀態。單片機上電時需要在其復位腳也就是第九腳RST接入一個大于2us的信號電平,單片機才能正常的進入程序區進行工作。

本設計中的圖3-4由復位鍵和一個10uF的電容和一個10K的電阻組成。當電路在瞬間上電時,電容C1導通,5v電壓加載到單片機的RST(第9腳),在振蕩器作用時保持復位引腳高電平有效,單片機實現復位。復位模式一般有2種類型:自動復位模式,手動復位模式。本設計是使用手動復位模式。


圖3-4  復位電路

3.2.3  LED燈電路

如圖3-5 LED顯示電路:因為電源電壓是5V,LED二極管的電壓是3V,LED二極管的電壓比電源電壓低,所以每個LED二極管的負極需串聯一個2.2K的分壓電阻,正極連接電源VCC。電阻的另一端連接對應的網絡編號。

遙控按鍵模塊電路:按鍵1~7控制LED1~7的開關,按鍵8控制所有燈的開,按鍵9控制所有燈的關。

圖3-5  LED燈電路



第4章     軟件設計
4.1  紅外編碼原理

紅外遙控發射編碼分為PWM和PPM兩種方式。本設計采用PPM編碼方式,當按鍵被按下后,將發射108ms的遙控編碼脈沖。遙控編碼脈沖主要由前導碼、8位用戶數據碼和8位操作數據碼以及相對應的8位反碼組成。遙控碼的起始部分是前導碼,一個9ms的高電平(起始碼)和一個4.5ms的低電平(結果碼)組成前導碼,用于接收數據的準備脈沖(在做解碼時,前導碼通常可以濾掉不管)。二進制的"0由脈沖寬度為0.56ms和周期為1.12ms的組合表示;二進制的"1由脈寬為1.68ms和周期為2.24ms的組合表示;如果按下按鍵的時間已超過了108ms,手還未松開,然后的代碼將只有起始碼(9ms)和結束碼(2.5ms)。

如圖4-1所示:該紅外接收頭的“1”和“0”時的低電平同時輸出,此時,如果高水平是1.685ms,它是“1”。

圖4-1  紅外編碼圖

因為前導碼在做解碼時,可以濾掉不管,所以得到8位用戶碼和8位操作碼以及相對應的8位反碼。

遙控器的鍵碼和紅外解碼程序分別如圖4-2:

圖4-2 遙控器鍵碼

4.2  接收模塊程序流程圖
4.
2.1  紅外遙控接收初始化程序和主程序

圖4-3  接收初始化流程圖                           圖4-4  接收主程序流程圖

4.2.2  紅外遙控器按鍵掃描子流程

按鍵掃描程序:先確定按鍵是否按下,若確定按下則進行掃描,按P端口查找鍵數,然后按相應的數字鍵發射程序。如圖4-5所示


第五章  調試與總結5.1  仿真調試

(1)把遙控接收部分的程序用KEIL編譯軟件編譯后,出現無錯誤、無警告。

(2)生成.HEX文件導入單片機,運行proteus仿真軟件,觀察仿真效果。

(3)在軟件仿真過程中,發現連接單片機P2.0口的一個LED發光二極管亮滅效果不符合設計要求。

(4)修改花樣顯示部分的程序代碼,再次編譯出現無錯誤無警告。

(5)把.HEX再次導入單片機,運行proteus仿真軟件,觀察仿真效果。

(6)仿真效果正常。

5.2  實物調試

(1)焊接好實物板后,在不加電源情況下,檢查電路板各個元件的連接和原理圖的連線一致。

(2)觀察電路板上各個元器件無漏焊、確定連線沒有存在錯接、短接、少接等現象。

(3)用萬用表檢測電源電壓滿足供電需要。

(4)用萬用表分別檢測帶有極性的元器件在電路板上放置的方向、電阻阻值、電容的大小以及元器件與電源正負極之間的連線,沒有異常現象。

(5)給電路板通電,按下總開關,用無線發射遙控器控制接收模塊,觀察LED發光二極管的顯示效果,發現有個別LED燈高低電平設置錯誤,通過修改軟件程序的顯示部分,借助開發板把修改后的程序燒錄單片機。

(6)觀察LED燈顯示效果,實現了本設計的基本要求。

5.3  總結

經過自己動手調試電路。我們從問題之中總結出來一些常用電路調試的注意事項。

(1)正確使用測量儀器的接地端,儀器的接地端與電路的接地端要可靠連接;

(2)在信號較弱的輸入端,盡可能使用屏蔽線連線,屏蔽線的外屏蔽層要接到公共地線上,在頻率較高時要設法隔離連接線分布電容的影響,例如用示波器測量時應該使用示波器探頭連接,以減少分布電容的影響。

(3)測量電壓所用儀器的輸入阻抗必須遠大于被測處的等效阻抗。

(4)測量儀器的帶寬必須大于被測量電路的帶寬。

(5)正確選擇測量點和測量。

(6)認真觀察記錄實驗過程,包括條件、現象、數據、波形、相位等。

(7)出現故障時要認真查找原因。


附錄A  電路圖與實物圖

附錄A-1  仿真圖

附錄A-2  實物圖



附錄B  軟件程序

  1. #include<reg51.h>                  //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
  2. sbit IR=P3^2;                                            //紅外接口標志
  3. #define DataPort P0                  //定義數據端口 程序中遇到DataPort(數據端口) 則用P0 替換
  4. sbit LATCH1=P2^6;                               //定義鎖存使能端口 段鎖存
  5. sbit LATCH2=P2^7;                               //                 位鎖存
  6. sbit light1=P1^0;
  7. sbit light2=P1^1;
  8. sbit light3=P1^2;
  9. sbit light4=P1^3;
  10. sbit light5=P1^4;
  11. sbit light6=P1^5;
  12. sbit light7=P1^6;
  13. sbit light8=P1^7;
  14. Unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  15. 0x07,0x7f,0x6f};// 顯示段碼值0~9
  16. unsigned char  irtime;              //紅外用全局變量
  17. bit irpro_ok,irok;
  18. unsigned char IRcord[4];
  19. unsigned char irdata[33];
  20. void Ir_work(void);
  21. void Ircordpro(void);
  22. void tim0_isr (void) interrupt 1 using 1
  23. {
  24.   irtime++;  //用于計數2個下降沿之間的時間
  25. }
  26. void EX0_ISR (void) interrupt 0 //外部中斷0服務函數
  27. {
  28.               static unsigned char  i;             //接收紅外信號處理
  29.               static bit startflag;                //是否開始處理標志位

  30.               if(startflag)                        
  31.               {
  32.                             if(irtime<63&&irtime>=33)//引導碼 TC9012的頭碼,9ms+4.5ms
  33.             i=0;
  34.                                 irdata[i]=irtime;//存儲每個電平的持續時間,用于以后判斷是0還是1
  35.                                 irtime=0;
  36.                                 i++;
  37.                                              if(i==33)
  38.                                   {
  39.                                                           irok=1;
  40.                                                         i=0;
  41.                                             }
  42.               }
  43.               else
  44.               {
  45.                             irtime=0;
  46.                             startflag=1;
  47.               }
  48. }
  49. void TIM0init(void)//定時器0初始化
  50. {
  51.               TMOD=0x02;//定時器0工作方式2,TH0是重裝值,TL0是初值
  52.               TH0=0x00; //重載值
  53.               TL0=0x00; //初始化值
  54.               ET0=1;    //開中斷
  55.               TR0=1;   
  56. }
  57. void EX0init(void)
  58. {
  59. IT0 = 1;   //指定外部中斷0下降沿觸發,INT0 (P3.2)
  60. EX0 = 1;   //使能外部中斷
  61. EA = 1;    //開總中斷
  62. }
  63. void Ir_work(void)//紅外鍵值散轉程序
  64. {
  65.        switch(IRcord[2])//判斷第三個數碼值
  66.                        {
  67.                                           case 0x0c:light1=~light1;break;//1 控制按鍵值相應的燈亮滅
  68.                                           case 0x18:light2=~light2;break;//第2個燈
  69.                                           case 0x5e:light3=~light3;break;//第3個燈
  70.                                           case 0x08:light4=~light4;;break;//第4個燈
  71.                                           case 0x1c:light5=~light5;break;//第5個燈
  72.                                           case 0x5a:light6=~light6;break;//第6個燈
  73.                                           case 0x42:light7=~light7;break;//第7個燈
  74.                                           case 0x52:P1=0x00;break;//全亮
  75.                                           case 0x4a:P1=0xFF;break;//全滅
  76.              default:break;
  77.                                           }
  78.                               irpro_ok=0;      //處理完成標志
  79. }
  80. void Ircordpro(void)      //紅外碼值處理函數
  81. {
  82.               unsigned char i, j, k,cord,value;
  83.               k=1;
  84.               for(i=0;i<4;i++)      //處理4個字節
  85.               {
  86.                             for(j=1;j<=8;j++)  //處理1個字節8位
  87.                             {
  88.                                           cord=irdata[k];
  89.                                           if(cord>7)     //大于某值為1,這個和晶振有絕對關系,這里使用12M計算,此值可以有一定誤差
  90.                                           value=value|0x80;
  91.                                           if(j<8)
  92.                                           {
  93.                                                         value>>=1;
  94.                                           }
  95.                                           k++;
  96.                             }
  97.                             IRcord[i]=value;
  98.                             value=0;   
  99.               }
  100.               irpro_ok=1;    //處理完畢標志位置1
  101. }

  102. void main(void)
  103. {
  104.               EX0init();     //初始化外部中斷
  105.               TIM0init();    //初始化定時器
  106.               LATCH1=0;      //位鎖存
  107.               DataPort=0xfe; //取位碼 第一位數碼管選通,即二進制1111 1110
  108.               LATCH2=1;      //位鎖存
  109.               LATCH2=0;
  110.               DataPort=0x3f; //取位碼 第一位數碼管選通,即二進制1111 1110
  111.               LATCH1=1;      //位鎖存

  112.               while(1)//主循環
  113.               {
  114.                             if(irok)                        //如果接收好了進行紅外處理
  115.                             {  
  116.                                           Ircordpro();
  117.                                           irok=0;
  118.                             }
  119.                             if(irpro_ok)                   //如果處理好后進行工作處理,如按對應的按鍵后顯示對應的數字等
  120.                             {
  121.                                           Ir_work();
  122.                             }
  123.               }
  124. }
復制代碼

完整的Word格式文檔51黑下載地址:
紅外遙控照明系統設計.docx (790.91 KB, 下載次數: 71)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:455251 發表于 2018-12-27 16:20 | 只看該作者
受教了,非常感謝!
回復

使用道具 舉報

板凳
ID:320226 發表于 2018-12-29 13:26 | 只看該作者
樓主 你好 可以加入鍵盤程序 實現按鍵和遙控同時兩用控制燈的開和關嗎  如果加入按鍵要怎樣寫程序?
回復

使用道具 舉報

地板
ID:885831 發表于 2023-5-13 16:39 來自手機 | 只看該作者
學習一下,非常nice
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费的一级视频 | 久久久精品影院 | 2018国产精品 | 欧美精品v | 国产在线观看一区二区三区 | 国产一区 日韩 | 一级在线观看 | 日韩国产黄色片 | 色综合网站 | 久久久精品一区 | 国产精品一区二区在线 | 国产一区二区三区在线 | 91在线视频免费观看 | 综合久久国产 | 欧美国产亚洲一区二区 | 亚洲美女视频 | 一级欧美日韩 | 99热这里都是精品 | 一级做a爰片性色毛片16美国 | 国产精品免费一区二区三区四区 | 亚洲精品一区二区三区中文字幕 | 精品欧美一区二区三区久久久小说 | 亚洲在线一区 | 精品久久影院 | 天天曰夜夜 | 日韩中文字幕 | 国产亚洲欧美日韩精品一区二区三区 | 爱综合| 秋霞在线一区 | 成在线人视频免费视频 | 国产91视频一区二区 | 免费久久99精品国产婷婷六月 | 天天草av | 中文日韩在线视频 | 在线精品一区二区三区 | 精品欧美一区二区精品久久久 | 美女黄18岁以下禁止观看 | 97成人精品| 久久久久久国产精品久久 | 国产精品久久久久久久7电影 | 午夜视频在线播放 |