基于单片机的红外遥控系统设计_第1页
基于单片机的红外遥控系统设计_第2页
基于单片机的红外遥控系统设计_第3页
基于单片机的红外遥控系统设计_第4页
基于单片机的红外遥控系统设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计课程设计 基于单片机的红外遥控系统设计基于单片机的红外遥控系统设计 学院:计算机与通信工程学院学院:计算机与通信工程学院 专业:通信工程专业:通信工程 班级:通信班级:通信 11-311-3 班班 姓名:姓名: 学号:学号: 天 津 理 工 大 学 课 程 设 计 II 摘要摘要 本设计采用 51 单片机作为遥控发射接收芯片,HS003B 作 为红外一体化接收发射管,在此基础上设计了一个简易的智能 红外遥控系统。系统包括接收和发射两大部分,发射部分有 16 个按键,接收部分含有 8 盏彩色 LED 灯、一片二位数码管和蜂 鸣器系统。发射部分通过键盘扫描判断哪个键被按下,经过单 片机编码程序进行编码,控制红外发射电路发送信号。接收部 分解码信号,实现相应的输出。本设计方案结合红外遥控设计 简单、作方便、成本低廉等特点。 关键字:关键字: 红外遥控 信号调制 编码 解码 天 津 理 工 大 学 课 程 设 计 III 目录目录 摘要摘要 .II 1.绪论绪论.1 1.1 课题目的和意义.1 1.2 红外线简介.1 1.3 红外遥控系统简介.1 2 课题方案和设计思路课题方案和设计思路.2 2.1 总体方案.2 2.2 红外发射器设计.3 2.2.1 红外发射器原理.3 2.2.2 红外编码.3 2.3 红外接收端设计.4 3 硬件结构设计与介绍硬件结构设计与介绍 .5 3.1 AT89C51 系列单片机功能特点.5 3.1.1 主要特性 .5 3.1.2 管脚说明 .5 3.1.3 基本电路.7 3.2 红外发射电路 .8 3.3 红外接收电路设计.9 3.3.1 红外接收模块 .9 3.3.2 数码管.9 3.3.3 彩灯系统 .10 3.3.4 蜂鸣器系统.11 3.3.5 红外接收端电路图.12 4 软件设计软件设计 .12 4.1 定时/计数器功能简介.12 4.2 遥控码的发射 .13 4.3 红外接收 .14 5.课程设计总结和心得课程设计总结和心得.15 参考文献参考文献.16 附录附录.17 附录 1 PROTEUS仿真图.17 附录 2 发射程序 .17 附录 3 接收程序 .20 天 津 理 工 大 学 课 程 设 计 0 1.绪论绪论 1.1 课题目的和意义课题目的和意义 随着科技的发展,人们生活的节奏也越来越快,随之人们对方便,快捷的 要求也随之不断增高。遥控器的出现,在一定程度上满足了人们这个要求。遥 控器是由高产的发明家 Robert Adler 在五十年代发明的1。而红外遥控是 20 世纪 70 年代才开始发展起来的一种远程控制技术,其原理是利用红外线来传递 控制信号,实现对控制对象的远距离控制,具体来讲,就是有发射器发出红外 线指令信号,有接收器接收下来并对信号进行处理,最后实现对控制对象的各 种功能的远程控制。 红外遥控具有独立性、物理特性与可见光相似性、无穿透障碍物的能力及 较强的隐蔽性等特点。随着红外遥控技术的开发和迅速发展,很多电器采用该 项技术,使人们的生活更加便捷。本小组通过红外遥控技术来控制多盏彩灯的 亮灭情况,实现各种花型以及数码管的数值显示。通过本课题的设计,更好的 理解红外线的编码解码方式及其红外遥控系统的其他工作原理。 1.2 红外线红外线简介简介 红外线又称红外光波,在电磁波谱中,光波的波长范围为 0.01um1000um。根据波长的不同可分为可见光和不可见光,波长为 0.38um0.76um 的光波可为可见光,依次为红、橙、黄、绿、青、蓝、紫七种 颜色。光波为 0.01um0.38um 的光波为紫外光(线),波长为 0.76um1000um 的 光波为红外光(线)。红外光按波长范围分为近红外、中红外、远红外、极红外 4 类。红外线遥控是利用近红外光传送遥控指令的,波长为 0.76um1.5um。用 近红外作为遥控光源,是因为目前红外发射器件(红外发光管)与红外接收器件 (光敏二极管、三极管及光电池)的发光与受光峰值波长一般为 0.8um0.94um, 在近红外光波段内,二者的光谱正好重合,能够很好地匹配,可以获得较高的 传输效率及较高的可靠性。 天 津 理 工 大 学 课 程 设 计 1 1.3 红外遥控系统简介红外遥控系统简介 红外遥控系统主要由遥控发射器、一体化接收头、单片机、接口电路组成, 遥控器用来产生遥控编码脉冲,驱动红外发射管输出红外遥控信号,遥控接收 头完成对遥控信号的放大、检波、整形、解调出遥控编码脉冲。遥控编码脉冲 是一组串行二进制码,对于一般的红外遥控系统,此串行码输入到微控制器, 由其内部 CPU 完成对遥控指令解码,并执行相应的遥控功能。使用遥控器作为 控制系统的输入,需要解决如下几个关键问题:如何接收红外遥控信号;如何 识别红外遥控信号以及解码软件的设计、控制程序的设计。 红外遥控是单工的红外通信方式,整个通信中,需要一个发射端和一个接 收端。发送端采用单片机将待发送的二进制信号编码调制为一系列的脉冲串信 号,通过红外发射管发射红外信号。红外接收端普遍采用价格便宜,性能可靠 的一体化红外接收头接收红外信号,它同时对信号进行放大、检波、整形,得 到 TTL。 2 课题方案和设计思路课题方案和设计思路 2.1 总体方案总体方案 红外遥控系统一般由红外发射装置和红外接收设备两大部分组成,图 2 为 所示为结构框图。 +5V Vcc OUT 图 2-1 系统结构框图 红外发射电路 (遥控键盘) 红外接 收器 (一体 化接收 器) VCC INTO AT89C51 GND 天 津 理 工 大 学 课 程 设 计 2 红外发射装置又由键盘电路、红外编码芯片、电源和红外发射电路组成。 红外接收设备可由红外接收电路、红外解码芯片、电源和应用电路组成。 2.2 红外发射器设计红外发射器设计 2.2.1 红外发射器原理红外发射器原理 由于指令数据时间周期较长,信号频率很低,直接发射传送效率和距离受 限,抗干扰性差,因此,必须采用二次调制方式,将指令数据通过载波信号进 行调制,形成较高频率的复合信号,在通过红外发射二极管产生红外线发射出 去。 图 2-2 红外遥控发射原理框图 2.2.2 红外编码红外编码 红外编码有很多种方式,本课题采用脉冲宽度调制方案,这种遥控码具有 以下特征: 以脉宽为 0.565ms、间隔 0.56ms、周期为 1.125ms 的组合表示二进 制的“0” ;以脉宽为 0.565ms、间隔 1.685ms、周期为 2.25ms 的组合表示二进 制的“1” 。 波形如下图。 位“0” 位“1” 0.56ms 0.56ms 1.125ms 2.25ms 键盘 编码调制红外发射 38KHz 载波 发生器 天 津 理 工 大 学 课 程 设 计 3 图 2-3 位“0”和位“1”波形图 在此介绍较普遍使用的 NEG 标准。其数据格式包括引导码、用户码、数据 码和数据反码,编码共占 32 位。数据反码是数据码反相后的编码,编码用于对 数据的纠错。 9ms 4.5ms C0-C7 C0-C7 D0-D7 D0-D7 起始引导码 用户码 用户码 数据码 数据码 8bit 8bit 8bit 8bit 13.5ms 18-36ms 27ms 58.5-76.5ms 图 2-4 数据格式 2.3 红外接收端设计红外接收端设计 接收端主要包括红外接收模块和解调单片机。其中,红外线接收模块包括光 电转换放大器和解调电路。当红外线发射信号进入模块后,在其输出端得到原 先的数字控制编码,再经过单片机解码程序进行解码,便知按下那个键,实现 相应输出。P0.0 连接蜂鸣器系统,每成功接收到信号,蜂鸣器发出一声响声。 P1 口连接 8 盏彩灯,接收数据不同彩灯的花色不同,P2 口、P3.0 和 P3.1 连接 一片二位数管,数码管显示从 01 到 16 的数值,分别对应发射部分的 16 个按键。 AT89C51 蜂鸣器系统 数码管显示 8 盏 LED 彩 灯 红外接收端 +5V 电源 天 津 理 工 大 学 课 程 设 计 4 图 2-5 接收部分原理框图 3 硬件结构设计与介绍硬件结构设计与介绍 3.1 AT89C51 系列单片机功能特点系列单片机功能特点 3.1.1 主要特性主要特性 与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:1000 写/擦循环 数据保留时间:10 年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 3.1.2 管脚说明管脚说明 VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每个管脚可吸收 8TTL 门 电流。当 P1 口的管脚写“1”时,被定义为高阻输入。P0 能够用于外部程序数 据存储器,它可以被定义为数据/地址的第八位。在 FLASH 编程时,P0 口作为 原码输入口,当 FLASH 进行校验时,P0 输出原码,此时 P0 外部电位必须被拉 天 津 理 工 大 学 课 程 设 计 5 高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器 能接收输出 4TTL 门电流。P1 口管脚写入“1”后,电位被内部上拉为高,可用 作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接 收输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚电位被内部上拉电阻拉 高,且作为输入。作为输入时,P2 口的管脚电位被外部拉低,将输出电流,这 是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存 储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部 上拉的优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能 寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。 作为输入时,由于外部下拉为低电平,P3 口将输出电流(ILL),也是由于上拉 的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如下所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 0INT (外部中断 0) P3.3 1INT (外部中断 1) P3.4 T0(记时器 0 外部输入) P3.5 T1(记时器 1 外部输入) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高 电平时间。 PROGALE / :当访问外部存储器时,地址锁存允许的输出电平用于锁存 地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可 用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据 天 津 理 工 大 学 课 程 设 计 6 存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令时 ALE 才起作用。另外,该引脚被 略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取址期间, 每个机器周期PSEN两次有效。但在访问外部数据存储器时,这两次有效的 PSEN信号将不出现。 VPPEA/ :当EA保持低电平时,访问外部 ROM;注意加密方式 1 时, EA将内部锁定为 RESET;当EA端保持高电平时,访问内部 ROM。在 FLASH 编 程期间, 此引脚也用于施加 12V 编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出 3.1.3 基本电路基本电路 在 XTAL1 和 XTAL2 之间接一只石英振荡晶体构成了单片机的时钟电。 AT89C51 复位引脚 RST/VP 通过片内一个施密特触发器(抑制噪声作用)与片 内复位电路相连,施密特触发器的输出在每一个机器周期由复位电路采样一次。 当振荡电路工作,并且在 RST 引脚上加一个至少保持 2 个机器周期的高电平时, 就能使 AT89C51 完成一次复位。 复位不影响 RAM 的内容。复位后,PC 指向 0000H 单元,使单片机从起始地 址 0000H 单元开始重新执行程序。所以,当单片机运行出错或进入死循环时, 可按复位键重新启动。 MCS-51 单片机通常采用上电自动复位和按钮复位两种复位方式。上电复位 利用电容器充电来实现。按钮复位又分为按钮电平复位和按钮脉冲复位。前者 将复位端通过电阻与 Vcc 相接;后者利用 RC 微分电路产生正脉冲来达到复位目 的。复位电路参数的选择应能保证复位高电平持续时间大于 2 个机器周期。 天 津 理 工 大 学 课 程 设 计 7 图 3-1 AT89C51 基本电路 3.2 红外发射电路红外发射电路 本遥控发射器采用脉冲宽度调制红外遥控方式,脉冲宽度调制红外遥控就 是指令信号产生电路以不同的脉冲编码代表不同的控制指令。 在确定选择 AT89C51 作为本设计发射电路核心芯片和点触式开关作为控制 键后,加上一个简单红外发射电路和 12M 晶体震荡器便可实现红外发射。 发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极 管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时, 它发出的便是红外线而不是可见光。目前大量使用的红外发光二极管发出的红 外线波长为 940nm 左右,外形与普通 5 发光二极管相同,只是颜色不同6。 遥控发射通过键盘,每按下一个键,即产生具有不同的编码数字脉冲,这种代 码指令信号调制在 38KHz 的载波上,激励红外光二极管产生不同的脉冲,通过 空间的传送到受控机的遥控接收器。P1 口作为按键部分,P3.6 口作为发射部分。 独立式键盘可工作在查询方式下,通过 I/O 口读入键状态,当有键被按下 时 I/O 口变为低电平,而未被按下的键对应为高电平,这样通过读电平状态可 判断是否有键按下和哪个键被按下。 天 津 理 工 大 学 课 程 设 计 8 图 3-2 红外发射端电路 3.3 红外接收电路设计红外接收电路设计 3.3.1 红外接收模块红外接收模块 HS003B 是一种常见的红外接收模块。红外接收模块内部含有高频的滤波电 路,专门用来滤除红外合成信号的载波信号(38KHz) ,并送出接收到的信号。 模 块有 3 个引脚;引脚 1(GND)为接地端;引脚 2(VCC)为为电源正极;引脚 3 (OUT)为数字信号输出端。 天 津 理 工 大 学 课 程 设 计 9 1 2 3 图 3-3 HS003B 红外接收模块 3.3.2 数码管数码管 表 3-1 七段 LED 字形码 显示字符共阳极 字符码 共阴极 字符码 03FHC0H 106HF9H 25BHA4H 34FHB0H 466H99H 56DH92H 67DH82H 707HF8H 87FH80H 96FH90H 天 津 理 工 大 学 课 程 设 计 10 图 3-4 二位数码管显示器 设计中用到型号为 7SEG-MAX2-CA-BLUE 的二位共阳极数码管显示器。它的 左下侧的 ABCDEFG DP 是 LED 数码管显示器的 I/O 口,是段选信号,右下侧的 12 是它的位选信号,就是从左到右分别是第一位到第二位,段选信号与位选信 号分别接到单片机的不同输出口,例如段选信号可以接到 P2 口,位选信号可以 接到 P3.0 口和 P3.1 口,共阳极的字形显示代码为:unsigned char=0 xc0, 0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,P3.0 输出为 0,P3.1 输出 为 1 时,选中第二位,段选信号就执行从 0 到 9 的显示,P3.0 输出为 1,P3.1 输出为 0 时,选中第一位,段选信号就执行从 0 到 9 的显示。 3.3.3 彩灯系统彩灯系统 P1 口连接 8 盏彩灯,P1.0 和 P1.4 连接的是 LED-RED,P1.1 和 P1.5 连接的 是 LED-YELLOW,P1.2 和 P1.6 连接的是 LED-GREEN,P1.3 和 P1.7 连接的是 LED-BLUE。根据接收到的信号显示不同的花型。 天 津 理 工 大 学 课 程 设 计 11 图 3-5 彩灯系统连接图 3.3.4 蜂鸣器系统蜂鸣器系统 P0.0 连接蜂鸣器系统,每成功接收到信号,蜂鸣器发出一声响声。 图 3-6 蜂鸣器系统连接图 天 津 理 工 大 学 课 程 设 计 12 3.3.5 红外接收端电路图红外接收端电路图 图 3-7 红外接收端电路图 4 软件设计软件设计 4.1 定时定时/计数器功能简介计数器功能简介 AT89C51 单片机内部设有两个 16 位可编程的定时/计数器,简称定时器 0 和定时器 1,分别用 T0 和 T1 表示。其功能同一般定时计数器,主要作用是: 第一,作为一段特定时间长短的定时;第二,可以计算由 T1 或 T0 引脚输入的 脉冲数,前者在应用上可以产生正确的时间延迟及定时去执行中断服务程序, 而后者则是计数器或者计频器的设计。 这两个定时器本身有四种工作模式可供使用,如表 2 所示。 表 4-1 四种工作模式 天 津 理 工 大 学 课 程 设 计 13 M1 MO 工作方式功能说明 0 0 模式 013 位计数器 0 1 模式 116 位计数器 1 0 模式 28 位自动重装计数器 1 1 模式 3定时器 0:分成两个 8 位计数器 定时器 1:停止计数 4.2 遥控码的发射遥控码的发射 当某个操作按键按下时,单片机先读出键值,然后根据键值设定遥控码的 脉冲个数,再调制成 38kHz 方波由红外线发光管发射出去13。 通常,红外遥控是将遥控信号(二进制脉冲码)调制在 38KHz 的载波上, 经缓冲放大后送至红外发光二极管,转化为红外信号发射出去的。为了提高抗 干扰性能和降低电源消耗,将上述的遥控编码脉冲对频率为 38KHz(周期为 26us)的载波信号进行脉幅调制(PAM) ,再经缓冲放大后送到红外发光管,将 遥控信号发射出去。 红外信号发射过程:首先发射 9ms 高电平和 4.5ms 低电平的引导码,再发送 16 位地址码的前 8 位,16 位地址码的后 8 位,8 位按键数据和 8 位按键数据反 码。 在实践中,采用红外线遥控方式时,由于受遥控距离,角度等影响,使用效果 不是很好,如采用调频或调幅发射接收码,可提高遥控距离,并且没有角度影响。 发射控制程序由主程序和键扫描程序、编码发送程序组成,在主程序中, 采用键扫描子程序完成各个按键的功能,遥控发射主程序的流程图 天 津 理 工 大 学 课 程 设 计 14 开始 系统初始化(发送 标志清零按键信息 置位) 检测并获取按键值 发送按键 发送 9ms 起始 码 发送 4.5ms 结束码 发送 16 位地址的前 8 位 发送 16 位地址的后 8 位 发送 8 位按键数据 发送 8 位按键数据反码 (a)红外发射主程序流程图 (b)红外数据发送子程序流程图 图 4-1 红外发射端程序流程图 4.3 红外接收红外接收 红外遥控解码程序主要工作为等待红外线信号出现,并跳过引导信号,搜 集连续 32 位的编码数据,并存入内存的连续空间。其位信号判别的原则是:以 判断各个位的波宽信号来决定高低信号(0 或 1) 。 位解码原理如下: 1) 解码为 0:高电平宽度 0.56ms+低电平宽度 0.56ms。 2) 解码为 1:高电平宽度 0.56ms+低电平宽度 1.68ms。 编码数据读取后,经过单片机将编码数据与键盘代码进行比对,即可解调 出具体的按键值,便可知按下哪个键,而做出相应的控制处理,完成红外遥控 的动作。 天 津 理 工 大 学 课 程 设 计 15 初始化(开 中断,显示初始 化) 开始 接收到按键信息 实现相应控制输 出 中断开始 接收到引导 码 开始接收数据 数据码和数据 反码是否相反 成功接收,保 存数据 中断返回 Y Y N N (a) 红外接收主程序流程图 (b)红外接收中断子程序流程图 图 4-2 红外接收端程序流程图 5.课程设计总结和心得课程设计总结和心得 这次课程设计耗用了 2 个星期的心血,从一开始的确定课题,到后来的资 料查找、理论学习,再有就是调试和测试过程,这一切都使我的理论知识和动 手能力进一步提高。 通过本次红外系统的设计,我大有收获。从得到题目到查找资料,从 proteus 仿真的调试到失败后再一次全部重新开始在这一个充满挑战伴随 挫折,充满热情伴随打击的过程中,我感触颇深,它已不仅是一个对我三学习 知识情况和我的应用动手能力的检验,而且还是对我的钻研精神,面对困难的 Y 天 津 理 工 大 学 课 程 设 计 16 心态,做事的毅力和耐心的考验。我在这个过程中深刻的感受到了做课程设计 的意义所在。这个课题的根本技术就是单片机控制技术,加部分外围电路来实 现一些复杂的功能。可以根据要求改变软件来实现功能的更新和扩展。 本课题的重点、难点是: (1) 考虑电路实现原理以及与单片机的接口; (2) 红外发送与接收技术; 通过完成本课题,我了解并掌握了红外遥控技术的基本理论知识,更深入的 掌握单片机在实际电路中的开发和应用。为以后从事单片机软硬件产品的设计 开发打下了一定的基础,培养了从事产品研发的信心。 参考文献参考文献 1单片机原理与应用及 C51 程序设计,夏维成 杨加国 编著,清华大学出版社。 2 C 语言程序设计(第三版) ,谭浩强 编著,清华大学出版社。 3 单片机系统设计与仿真基于 Proteus,肖婧 编著, 北京航空航天大学 出版社。 4 DIY 玩转 51 单片机, 王守中 编著,电子工业出版社。 5 单片机侧控技术应用实例解析, 许江淳 陈显宁 陈焰 付丽霞 编著,中国 电力出版社。 6 单片机接口模块应用与开发实例详解, 薛小玲 刘志群 贾俊荣 编著, 北 京航空航天大学出版社。 天 津 理 工 大 学 课 程 设 计 17 附录附录 附录附录 1 Proteus 仿真图仿真图 P12 P8 P9 P10 P11 P15 P14 P13 P13 P8 P9 P10 P11 P12 P14 P15 P0 P2 P3 P4 P5 P6 P7 P1 P1 P2 P3 P0 P7 P6 P5 P4 Q1 PNP R11 2 R12 1k Demodulator IRL1 IRLINK R1 10k XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 P1.0/T2 1 P1.1/T2EX 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 U3 80C52 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 D1 LED-RED R2 510 R3 510 R4 510 R5 510 R6 510 R7 510 R8 510 R9 510 D2 LED-YELLOW D3 LED-GREEN D4 LED-BLUE D5 LED-RED D6 LED-YELLOW D7 LED-GREEN D8 LED-BLUE R10 1k Q2 NPN LS1 SOUNDER 附录附录 2 发射程序发射程序 #include #include #define uchar unsigned char #define uint unsigned int #define SBM 0 x80 #define m9 (65536-9000) #define m4_5 (65536-4500) #define m1_6 (65536-1630) #define m_65 (65536-580) #define m_56 (65536-560) #define m40 (65536-40000) #define m56 (65536-56000) #define m2_25 (65536-2250) sbit IR = P36; sbit LED = P37; 天 津 理 工 大 学 课 程 设 计 18 uchar KEY(void); void SanZhuan(void); void ZZ(uchar x); void Z0(uchar temp); void TT0(bit BT,uint x); void YS(uchar time); void main(void) TMOD = 0 x01; IR=1; while(1) SanZhuan(); uchar KEY(void) uchar H,L; H=0; L=0; P1 = 0 xf0; if(P1!= 0 xf0) YS(10); if(P1!=0 xf0) H = P1 P1 = 0 x0f; L = P1 return (H+L); return 0; void SanZhuan(void) uchar v; v = KEY(); switch(v) case 0 x77:ZZ(0 x01);v=0;break; case 0 xb7:ZZ(0 x02);v=0;break; case 0 xd7:ZZ(0 x03);v=0;break; case 0 xe7:ZZ(0 x04);v=0;break; case 0 x7b:ZZ(0 x05);v=0;break; case 0 xbb:ZZ(0 x06);v=0;break; case 0 xdb:ZZ(0 x07);v=0;break; case 0 xeb:ZZ(0 x08);v=0;break; case 0 x7d:ZZ(0 x09);v=0;break; case 0 xbd:ZZ(0 x10);v=0;break; case 0 xdd:ZZ(0 x11);v=0;break; case 0 xed:ZZ(0 x12);v=0;break; 天 津 理 工 大 学 课 程 设 计 19 case 0 x7e:ZZ(0 x13);v=0;break; case 0 xbe:ZZ(0 x14);v=0;break; case 0 xde:ZZ(0 x15);v=0;break; case 0 xee:ZZ(0 x16);v=0;break; default:v=0; void ZZ(uchar x) TT0(1,m9); TT0(0,m4_5); Z0(SBM); Z0(SBM); Z0(x); Z0(x); TT0(1,m_65); TT0(0,m40); while(KEY() TT0(1,m9); TT0(0,m2_25); TT0( 1,m_56); TT0(0,m40); TT0(0,m56); LED = !LED; LED = 1; void Z0(uchar temp) uchar v; for (v=0;v= 1; void TT0(bit BT,uint x) TH0 = x8; TL0 = x; TF0=0; TR0=1; if(BT = 0) while(!TF0); else while(1) 天 津 理 工 大 学 课 程 设 计 20 IR = 0; if(TF0)break; if(TF0)break; IR = 1; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; if(TF0)break; TR0=0; TF0=0; IR =1; void YS(uchar time) uchar i,j; for(i=0; itime; i+) for(j=0; j247; j+)_nop_(); 附录附录 3 接收程序接收程序 #include sbit IRIN=P32; sbit SPK=P00; s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论