找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5482|回复: 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, 下载次数: 68)


评分

参与人数 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 单片机教程网

快速回复 返回顶部 返回列表