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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6714|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

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

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

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

第一章  緒論1.1  前言

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

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

1.2  需求分析

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

1.3  方案選擇

根據(jù)畢業(yè)設(shè)計的要求,利用單片機設(shè)計一個遙控開關(guān)電路,可以擬定以下的幾種方案。

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

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

紅外發(fā)射部分


圖1-1方案一紅外發(fā)射部分示意圖

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

紅外接收部分


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

當(dāng)紅外接收頭接收到控制頻率時,由一個電路對其進行解調(diào)并產(chǎn)生相應(yīng)的控制功能。

方案二:利用紅外遙控開關(guān)電路

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

紅外發(fā)射部分

圖1-3方案三紅外發(fā)射部分示意圖

當(dāng)按下遙控按鈕時,單片機產(chǎn)生相應(yīng)的控制脈沖,由紅外發(fā)光二極管發(fā)射出去。

紅外接收部分:



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

當(dāng)紅外接收器接收到控制脈沖后,經(jīng)單片機處理由顯示設(shè)備顯示出當(dāng)前受控電器的序號。

方案三:綜合使用

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

當(dāng)紅外接收器接收到控制脈沖后,經(jīng)單片機處理由顯示設(shè)備顯示出當(dāng)前受控電器的序號。

方案比較

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


第二章  紅外遙控原理

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

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


圖2-1  紅外遙控原理圖

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

圖2-2  紅外發(fā)光二極管

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


圖2-3  紅外接收二極管

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

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

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

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

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



第三章  硬件系統(tǒng)設(shè)計
3.1  所需器件選擇
3.1.1  STC89C51單片機

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

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

STC89C51芯片有以下功能特性:

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

(2)128bytes數(shù)據(jù)存儲器(RAM)

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

(4)21個寄存器

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

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

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

STC89C51芯片的引腳功能

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


圖3-1  芯片引腳圖

(1)電源部分引腳

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

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

(2)時鐘部分引腳

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

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

(3)控制部分引腳

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

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

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

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

當(dāng)引腳連接到高電平時,該處理器只訪問內(nèi)部只讀存儲器,并在內(nèi)部存儲器中運行。當(dāng)引腳連接到一個低電平,中央處理器只訪問外部只讀存儲器,并執(zhí)行在外部存儲器中的指令。

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

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

②P1口(P1.0~P1.7,引腳1~8):是一個8位準雙向I/O口并且它的內(nèi)部接有上拉電阻。除了把P1口當(dāng)作一般的準雙向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

外部計數(shù)輸出端

P3.6

WR

寫選通輸出端

P3.7

RD

讀選通輸出端

3.1.2  紅外一體化接收器件

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

圖3-2  HS0038引腳圖

3.2  硬件電路設(shè)計
3.2.1  時鐘電路

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

圖3.3  晶振電路

3.2.2  復(fù)位電路

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

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


圖3-4  復(fù)位電路

3.2.3  LED燈電路

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

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

圖3-5  LED燈電路



第4章     軟件設(shè)計
4.1  紅外編碼原理

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

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

圖4-1  紅外編碼圖

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

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

圖4-2 遙控器鍵碼

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

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

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

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


第五章  調(diào)試與總結(jié)5.1  仿真調(diào)試

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

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

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

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

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

(6)仿真效果正常。

5.2  實物調(diào)試

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

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

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

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

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

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

5.3  總結(jié)

經(jīng)過自己動手調(diào)試電路。我們從問題之中總結(jié)出來一些常用電路調(diào)試的注意事項。

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

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

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

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

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

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

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


附錄A  電路圖與實物圖

附錄A-1  仿真圖

附錄A-2  實物圖



附錄B  軟件程序

  1. #include<reg51.h>                  //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
  2. sbit IR=P3^2;                                            //紅外接口標志
  3. #define DataPort P0                  //定義數(shù)據(jù)端口 程序中遇到DataPort(數(shù)據(jù)端口) 則用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++;  //用于計數(shù)2個下降沿之間的時間
  25. }
  26. void EX0_ISR (void) interrupt 0 //外部中斷0服務(wù)函數(shù)
  27. {
  28.               static unsigned char  i;             //接收紅外信號處理
  29.               static bit startflag;                //是否開始處理標志位

  30.               if(startflag)                        
  31.               {
  32.                             if(irtime<63&&irtime>=33)//引導(dǎo)碼 TC9012的頭碼,9ms+4.5ms
  33.             i=0;
  34.                                 irdata[i]=irtime;//存儲每個電平的持續(xù)時間,用于以后判斷是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下降沿觸發(fā),INT0 (P3.2)
  60. EX0 = 1;   //使能外部中斷
  61. EA = 1;    //開總中斷
  62. }
  63. void Ir_work(void)//紅外鍵值散轉(zhuǎn)程序
  64. {
  65.        switch(IRcord[2])//判斷第三個數(shù)碼值
  66.                        {
  67.                                           case 0x0c:light1=~light1;break;//1 控制按鍵值相應(yīng)的燈亮滅
  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)      //紅外碼值處理函數(shù)
  81. {
  82.               unsigned char i, j, k,cord,value;
  83.               k=1;
  84.               for(i=0;i<4;i++)      //處理4個字節(jié)
  85.               {
  86.                             for(j=1;j<=8;j++)  //處理1個字節(jié)8位
  87.                             {
  88.                                           cord=irdata[k];
  89.                                           if(cord>7)     //大于某值為1,這個和晶振有絕對關(guān)系,這里使用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; //取位碼 第一位數(shù)碼管選通,即二進制1111 1110
  108.               LATCH2=1;      //位鎖存
  109.               LATCH2=0;
  110.               DataPort=0x3f; //取位碼 第一位數(shù)碼管選通,即二進制1111 1110
  111.               LATCH1=1;      //位鎖存

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

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


評分

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

查看全部評分

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

地板
ID:885831 發(fā)表于 2023-5-13 16:39 來自手機 | 只看該作者
學(xué)習(xí)一下,非常nice
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中国一级毛片免费 | 久久av网 | 99热在线观看精品 | 一区二区三区四区在线免费观看 | 亚洲高清视频在线 | 一级黄片一级毛片 | 午夜影院污 | 亚洲欧美自拍偷拍视频 | 久久9久 | 成人三区四区 | 国产精品久久毛片av大全日韩 | 特黄小视频 | 国产免费又色又爽又黄在线观看 | 久久久精 | 精品福利视频一区二区三区 | 91久久国产综合久久 | 91成人免费观看 | 免费在线观看一区二区 | 日韩午夜精品 | 国产激情一区二区三区 | 日本黄色免费片 | 成人久久网 | 精品久久久久久亚洲精品 | 精品福利av导航 | 成人久久 | 五月婷婷丁香 | av网址在线| 91精品国产色综合久久 | 久久美女网 | 涩涩视频在线播放 | 日韩网站在线观看 | 青青久在线视频 | 久久久99精品免费观看 | 国产精品久久久久一区二区三区 | 国产精品久久久久久久久久久久久 | 日本一区二区三区在线观看 | 91麻豆蜜桃一区二区三区 | 欧美日韩在线免费 | 在线不卡 | 亚洲免费人成在线视频观看 | 欧美视频福利 |