最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

万能遥控器的设计 3稿

来源:动视网 责编:小OO 时间:2025-09-24 11:12:24
文档

万能遥控器的设计 3稿

毕业论文(设计)题目万能遥控器的设计英文题目DesignofUniversalRemoteControl院系电子工程学院专业电子信息工程姓名年级2007级指导教师二零一一年五月摘要本设计以单片机为核心设计一种学习型万能遥控器,可以对各种红外线遥控器发射的信号进行识别、存储和再现等功能,从而实现对各类家用电器的控制。学习型万能遥控器由单片机、红外线接收、红外线发射、显示、存储、按键和欠电压指示等部分组成。本设计详细介绍了学习型万能遥控器的软硬件设计方法,并给出了具体的各单元电路设计、程序设计及主
推荐度:
导读毕业论文(设计)题目万能遥控器的设计英文题目DesignofUniversalRemoteControl院系电子工程学院专业电子信息工程姓名年级2007级指导教师二零一一年五月摘要本设计以单片机为核心设计一种学习型万能遥控器,可以对各种红外线遥控器发射的信号进行识别、存储和再现等功能,从而实现对各类家用电器的控制。学习型万能遥控器由单片机、红外线接收、红外线发射、显示、存储、按键和欠电压指示等部分组成。本设计详细介绍了学习型万能遥控器的软硬件设计方法,并给出了具体的各单元电路设计、程序设计及主
毕 业 论 文(设 计)

题    目       万能遥控器的设计          

英文题目 Design of Universal Remote Control 

       院    系       电子工程学院         

专    业       电子信息工程         

姓    名                  

年    级           2007级          

指导教师                   

二零一一年五月

摘要 

    本设计以单片机为核心设计一种学习型万能遥控器,可以对各种红外线遥控器发射的信号进行识别、存储和再现等功能,从而实现对各类家用电器的控制。学习型万能遥控器由单片机、红外线接收、红外线发射、显示、存储、按键和欠电压指示等部分组成。本设计详细介绍了学习型万能遥控器的软硬件设计方法,并给出了具体的各单元电路设计、程序设计及主程序流程图。

关键字: 单片机;学习型;红外线遥控器;家用电器

Design of universal remote control

Abstract 

This is to design an intelligent infrared remote focusing on single chip. It can distinguish, store and recurrence to signals that all kinds of infrared remote launched .Thereby, the control of all household electrical appliances can be realized. The intelligent infrared remote is made up of singe clip, infrared receiving, infrared launching, displaying, storing, keys, owe voltage indicating, etc.This design introduced detailedly the soft and hard designing methods of intelligent infrared remote and gave the details of circuit design, procedure design and main procedure flow chart of every unit.

Key Words :Single chip; Detailedly; Infrared remote

目 录

摘   要    I

Abstract    II

引  言       4

第一章 概 述    4

1.1 设计目的和意义    5

1.2 设计思想    5

1.3 设计重点与难点    5

第二章 硬件的选取    5

2.1 单片机    6

2.2 键盘    6

2.3 存储器    7

2.4 红外接收头    8

第三章 系统组成设计    8

3.1 系统的总体设计    8

4.1 单片机ATC52    9

4.2 键盘电路    11

4.4 红外发射电路    12

4.5 红外接收电路    13

4.6 存储器电路    13

第五章 程序设计    15

5.1 主程序流程图    15

5.2 键号判别程序设计    15

5.3 红外解码(接收)的程序设计    17

5.4 红外发射程序设计    19

第六章 程序源代码    20

6.1 键盘程序    20

6.2 IC总线程序    23

第七章 程序的调试    24

7.1 编译软件的使用和编译过程    24

7.2 烧片    25

 设计总结    26

附  录    27

引 言

在当今社会科学技术的发展与日俱增,人们是生活水平也是日益提高,为了减少人的工作量,所以是对各种家用电器、电子器件的非人工控制的要求也是越来越高,针对与这种情况,设计出一种集成度比较高的控制体系是必然的。

单片机的集成度很高,它具有体积小、质量轻、价格便宜、耗电少等突出特点,尤其耗电少,又可使供电电源体积小、质量轻。所以特别适用与“电脑型产品”,它的应用已深入到工业、农业、国防、科研、教育以及日常生活用品(家电、玩具)等各种领域。单片机特别适合于把它做到产品的内部,取代部分劳师机械、电子零件或元器件。可使产品缩小体积,增强功能,实现不同程度的智能化。

红外线是一种光线,具有普通光的性质,可以以光速直线传播,强度可调,可以通过光学透镜聚焦,可以被不透明物体遮挡等等。特别制造的半导体发光二极管,可以发出特定波长(通常是近红外)的红外线,通过控制二极管的电流可以很方便地改变红外线的强度,达到调制的目的,因此,在现代电子工程应用中,红外线常常被用做近距离视线范围内的通讯载波,最典型的应用就是家电遥控器。使用红外线做信号载波的优点很多:成本低、传播范围和方向可以控制、不产生电磁辐射干扰,也不受干扰等等。因此被广泛地应用在各种技术领域中。

第一章 概 述

1.1 设计目的和意义

带红外遥控器的家电给我们的生活带来极大的方便,但遥控器多了很容易弄混,如果有一种可对家中各种红外遥控器发射的控制信号进行识别、存储和再现的智能型红外遥控器,用这样一个遥控器控制家中所有电器该有多好。为此,我们试着设计一种以单片机为核心的智能型遥控器。

通过此设计可以提高我们对专业知识的运用能力,让我们把在大学三年中所学到的专业知识真正的运用到实践当中。在设计过程中使我们能够把专业知识系统的,有条理的连接起来。该红外遥控器可以很好地学习市面上流行的各种遥控器的红外遥控编码,并且能够学习和控制各种不同类型的红外遥控设备。同时也给人们日常生活中遥控红外家用电器时带来方便。

1.2 设计思想

本系统的设计思想是不考虑红外编码方式,仅利用单片机ATC52对多个红外遥控编码的脉冲宽度进行测量,并原封不动地把发射信号中高、低电平的时间宽度记忆至扩展存储区的指定地址。当要发射红外信号时,从扩展存储区中还原出相应的红外遥控编码,并调制到38KHz的载波信号上,最后,通过三极管放大电路驱动红外发光二极管发射红外信号,达到学习和发射的目的,从而实现一个遥控器控制多种红外遥控设备。

    遥控器有两种工作状态:“学习”状态和“控制”状态,使用者可通过学习/控制复用键进行转换。当使用者在学习状态每按下一个控制键,红外线接收电路就开始接受红外线信号,同时将其转换成电信号,然后经过检波、整形、放大,再由CPU定时对其进行采样,将每个采样点的二进指数据以8位为一个单位,分别存放到指定的存储单元中去,供以后对该设备控制使用。当遥控器处于控制状态时,使用者每按下一个控制键,CPU从指定的存储单元中读取一系列的二进制数据,串行输出(位和位之间的时间间隔等于采样时时间间隔)给信号保持电路,同时由调制电路进行信号调制,将调制信号经放大以后,由红外线发射二极管进行发射,从而实现对该键对应设备功能的控制。

1.3 设计重点与难点

系统组成的设计;各部分硬件的选取;单片机串行接口的键盘设计;红外线遥控器信号的接收、发射与调式解码软件的设计;流程图及程序的设计。

第二章 硬件的选取

2.1 单片机

由于此单片机应用在家用遥控器上,所以本设计选用了低功耗、低价格、小管脚(28脚)的ATC52单片机。

2.1.1 ATC52概述

ATC52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位处理器(CPU)和Flash存储单元,功能强大ATC52单片机适合于许多较为复杂控制应用场合

2.1.2 ATC52特性

ATC52主要功能特性表

· 兼容MCS51指令系统

· 8k可反复擦写(>1000次)Flash ROM

· 32个双向I/O口

· 256x8bit内部RAM

· 3个16位可编程定时/计数器中断

· 时钟频率0-24MHz

· 2个串行中断

· 可编程UART串行通道

· 2个外部中断源

· 共6个中断源

· 2个读写中断口线

· 3级加密位

· 低功耗空闲和掉电模式

· 软件设置睡眠和唤醒功能

2.2 键盘

    矩阵按键部分由16个轻触按键按照4行4列排列,连接到JP50端口。将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。这种键盘外围元件少,扩充灵活,而且功耗低。

键盘的硬件电路如图2-2所示:

图2-2键盘硬件图

由图2-2可以看出,该键盘为4行4列(4×4)共16个键,使用I/O口作为控制线,其中P1.0、P1.1、P1.2、P1.3为扫描线,P1.4-P1.7作为列回复线。其工作原理是:首先使P1.4-P1.7为低电平,P1.0、P1.1、P1.2、P1.3为高电平,读取P1.4~P1.7的状态并存放在某个存储器的低4位中,此时高4位置零。然后使P1.4~P1.7为高电平,P1.0、P1.1、P1.2、P1.3为低电平,读取P1.0、P1.1、P1.2、P1.3的状态并存放在某个存储器的高4位,而低4位为低电平。最后,将这两个存储器存放的数值取逻辑后,再判断其结果产生按键的键值。

2.3 存储器

存储器有RAM、EEPROM、非易失性的静态存储器等。RAM掉电时数据会丢失,EEPROM在掉电时数据不会丢失。

2.3.1 AT24C02串行E2PROM的概述

AT24C02是美国ATMEL公司的低工耗CMOS串行EEPROM,它是内含256*8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。

 AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。  24C02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。该器件,可直接与微处理器接口、不需要额外的支持电路。

2.3.2 AT24C02串行E2PROM 的特性

 在没有外部电源的情况下最少可以保存数据10年;

 掉电期间数据被自动保护;

 直接替代2K×8易失静态RAM或EEPROM;

 没有写次数;

 低功耗CMOS操作;

 JEDEC标准的28引脚DIP封装;

 150ns的读写时间;

 ±10%工作范围;

 可选的-40°C~+85°C工业级温度范围,指定为IND。

2.4 红外接收头

接收电路使用集成红外接收器成品,一般不需要任何外接元件就能完成从红外接收到输出TTL 电平兼容信号的所有工作。注意选择接收器件时要保证接收器件的中心频率与发射信号的中心频率相匹配。接收器对外只有3 个引脚:Vcc 、GND 和1 个脉冲信号输出OUT。与单片机接口非常方便。

2.4.1 NB1838的概述

NB1838是一种用于红外遥控接收或其它方面的小型一体化接收头,中心频率为38.0kHz,可改善自然光的反射干扰.的PIN二极管同前置放大器集成在同一封装上.

NB1838环氧树脂封装提供一个特殊的红外滤光器,可防止自然光的干扰.NB0038在抗自然光的干扰方面有极好的性能,可防止无用脉冲输出. 

2.4.2 NB1838的特性

 光电检测和前置放大器集成在同一封装上.

 内带PCM频率滤波器.

 对于自然光有较强的抗干扰性.

 改进了对电场干扰的防护性.

 电源电压5V,低功耗.

 输出电平兼容TTL,CMOS .

第三章 系统组成设计

3.1 系统的总体设计

系统由发射单元、接收单元、存储单元、输入单元、检测单元等构成。系统总的结构框图如图3-1所示:

    

图3-1 学习型万能遥控器的系统框图

系统框图中的单片机ATC52用来协调各个单元,红外接收电路用来接收要学习的红外信号,红外发射电路用来发射控制电器的红外信号,存储器用来存储接收的信号,键盘及状态指示电路中设计有欠压电路,用来检测电源的电压。

第四章 各单元电路设计

4.1 单片机ATC52

图4-1 ATC52

4.1.1 管脚描述

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

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口也可作为ATC51的一些特殊功能口,如下表所示:

口管脚 备选功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 /INT0(外部中断0)

P3.3 /INT1(外部中断1)

P3.4 T0(记时器0外部输入)

P3.5 T1(记时器1外部输入)

P3.6 /WR(外部数据存储器写选通)

P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 

XTAL2:来自反向振荡器的输出。

4.1.2 管脚应用

P0口、P2.0~P2.4作为存储器和显示器的数据与地址线,并通过74HC573/74HC273扩展,增加引脚。P2.5、P1.7、P3.1连接欠电压指示电路,用来检测电压。PLPC932看门狗定时器具有片内振荡器,所以P3.0、P3.1可以用作I/O口,且P3.0与74HC573、74HC273的CLK相连,用作ALE。P1.2、P1.3用来与键盘通信。P1.4用来控制发射电路,P1.5、P1.7控制接收电路。P1.6用来控制74HC273。P2.6、P2.7分别用来控制DS1225Y的写与读。

4.2键盘电路

4.2.1键盘通过与单片机ATC52接口

如图4-2-1所示,用单片机的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;在数码管上显示每个按键的“0-F”序号。对应的按键的序号排列如图4-2-2所示

图4-2-1 键盘按键的分布图

4.2.2 键连击现象的克服和处理

当我们按下某个键时,对应的功能便会通过键盘分析程序得以执行,如果在操作者释放之前,对应的功能多次执行,如同操作者在连续不断的操作该键一样,这种现象就称为连击。连击先可用图4-2-3所示流程图的软件方法来解决:当某个键按下时,首先进行软件去抖处理,确认键被按下后,便执行与该键相对应的功能,执行完后不是立即返回,而是等待键释放之后再返回,使每一次按键只被响应一次,从而达到避免连击的目的。

如果把连击现象加以利用,有时会给操作者带来便利。例如在某些仪器中。因设计的按键很少,没有安排0~9数字键,只设置了一个调整键,这时需要采用加1(或者减1)的方法来调整有关参数,但当调整量较大时就需要多次按键,使操作者很不方便。如果允许存在连击现象,我们只要按住键不放,参数就会不停的加1(或者减1),会让操作比较方便、快捷。具体实现流程图如图4-2-3所示,其中加入的延时环节是为了控制连击的速度。

图4.2.3 键连击现象的处理      图4.2.3 键连击现象的合理利用

4.4 红外发射电路

红外发射电路图如图4-4所示。当系统进入发射功能时,ATC52首先扫描矩阵键盘以识别相应的按键,然后从EEPROM中取出相应键值的遥控基带信号,即红外遥控编码的高、低电平持续时间。同时,直接用定时器T1来产生38KHz的载波信号,从而改善了文献[4]中使用振荡器NEC555产生载波信号的缺陷。最后,将遥控基带信号调制到载波上,经三极管9013和8050进行两级放大以驱动红外发射管辐射出940nm的红外脉冲信号。ATC52单片机的基本原理:ATC52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),片内置通用8位处理器和Flash存储单元,功能强大的ATC52单片机可为您提供许多较复杂系统控制应用场合。ATC52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,ATC52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

                   图4.5 红外线发射电路

4.5 红外接收电路

红外接收电路如图4-5所示。一体化红外接收头采用NB1838,其光电检测和前置放大器集成于同一封装,中心频率为37.9kHz。NB1838的环氧树脂封装结构为其提供了一个特殊的红外滤光器,对自然光和电场干扰有很强的防护性。NB1838的目的是对接收到的红外信号放大、检波、整形,并解调出红外遥控编码,得到TTL电平,反相后输入至ATC52的P2.1口。当系统进入学习功能时,定时器T0先把经P2.1遥控编码暂存到RAM ,最后将其存储至EEPROM指定的地址中,以免数据掉电丢失。

图4-5 红外线接收电路

4.6 红外接收原理

    家电的遥控一般采用由红外发射管发出的红外线作为指令传输媒介,为了增加传输距离、提高抗干扰性,一般经过编码,由载波调制后发出,如图所示:

实验板上的红外接收管SM0038具备接收、解调、TTL电平输出等功能。其解调后波形如图

因此,只要了解遥控器编码标准,就可利用SM0038接收、解调红外信号,然后编写程序由单片机解码。

下面介绍一种常用的编码标准——UPD6121G

若有键按下,每108ms输出一帧数据,每帧数据的长度根据0和1的个数由58.5ms~76.5ms。

每帧数据由引导码开始,随后共32位数据,分别位16位用户编码,8位键数据码和8位键数据反码。

引导码由9ms载波波形和4.5ms关断时间构成,作为随后发射码的引导,编码采用脉冲位置调制方式(PPM)。利用脉冲之间的时间间隔来区分0和1。0.56ms载波和0.56ms关断时间代表‘0’,0.56ms载波和1.68ms关断时间代表‘1’下方为SM0038解调后波形。

四、实验连线图

4.6 存储器电路

4.6.1 24c02引脚说明

     24C02它的引脚及接口应用。如图2-7为24C02引脚图,A0,A1,A2为芯片地址线,单片使用时一般接VSS;SCL为串行移位时钟;SDA为串行数据或地址。通过SDA,CPU可对芯片写入或读出数据;WP为写保护。若WP接VCC,芯片只读。

 4.6.2 单片机与24C02的接口

图2-8 为单片机与24C02的接口电路图。单片使用A0,A1,A2,Vss均接地。串行时钟SCL接P3.4,串行数据或地址线SDA接P3.3引脚。这里的24C02主要用于存遥控器的高低电平的宽度。其芯片的写地址为A0H,读地址为A1H。

图2-8 24CO2与8031接口

4.6.3 单片机与1602的接口

第五章 程序设计

5.1 主程序流程图

图5-1 主程序流程图

5.2 键号判别程序设计

判别键盘上有无键闭合:其方法使p1口“ 0”,读P1.1~P1.7的状态,若全为“ 1”(键盘上行线全为高电平),则键盘上没有键闭合;若P3.1~P3.4、P3.7不全为“ 1”,则有键处于闭合状态。

其方法为在判别到键盘闭合后,延时一段时间再判别键盘的状态,若仍有键闭合,则认为键盘上有一个键处于稳定的闭合期;否则认识键的抖动。

判别闭合键的键号:方法为对键盘的列线进行扫描,扫描口P1口依次输出:

P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0
11111110
111111O1
11111011
11110111
11101111
11011111
10111111
01111111
顺次读出P3.1~P3.7口的状态,若全为“ 1”,则列线输出为“ 0”的这一列上没有键闭合;否则有键闭合。闭合键的键号为低电平的列号加上为低电平的行的首键号。例如:P1口的输出为11111101时,读出P3.1~P3.4为11101,则1行1列相交处于闭合状态,第一行的首键为8,列号为1,闭合键的键号为:N=行首键号+列号=8+1=9

使CPU对键的一次闭合仅做一次处理:采用的方法为等待闭合键释放以后再作处理。键盘输入子程序的框图如图5-2所示(从该程序返回输入号在A):

图5-2 键盘输入程序流程图

5.4 红外发射程序设计

单片机不断扫描矩阵键盘,若有键按下,从EEPROM中取出对应键值的存储数据取反后作为T0的初始值,同时启动T0和T1,并用T1产生38KHz的载波信号。在高电平且T0没溢出时,从P2.6口不断地输出载波信号,T0溢出后关闭T0、T1。然后重新启动T0,把EEPROM中下一个地址的数据取反并作为T0的初始值,此时关闭T1,在这个脉冲周期内不产生载波。如此循环反复,从P2.6口输出的就是已调制到载波上的红外脉冲信号,经三极管两级放大来驱动红外发射管输出红外遥控信号。图5-4为系统发射程序流程图。

       图5-3 学习程序流程图               图 5-4 发射程序流程图

第六章 程序源代码

6.2 IC总线程序

6.2.1位传输

I2C总线每传送一位数据必须有一个时钟脉冲。被传送的数据在时钟SCL的高电平期间保持稳定,只有在SCL低电平期间才能够改变,示意图如下图所示,在标准模式下,高低电平宽度必须不小于4.7us。

那么是不是所有I2C总线中的信号都必须符合上述的有效性呢?只有两个例外,就是开始和停止信号。

l       开始信号:当SCL为高电平时,SDA发生从高到低的跳变,就定义为开始信号。

l     停止信号:当SCL为高电平时,SDA发生从低到高的跳变,就定义为结束信号。

6.2.2 数据传输的字节格式

SDA传送数据是以字节为单位进行的。每个字节必须是8位,但是传输的字节数量不受,首先传送的是数据的最高位。每次传送一个字节完毕,必须接收到从机发出的一个应答位,才能开始下一个字节的传输。如果没有接受到应答位,主机则产生一个停止条件结束本次的传送。

那么从机应该发出什么信号算是产生了应答呢?这个过程是这样的。当主器件传送一个字节后,在第9个SCL时钟内置高SDA线,而从器件的响应信号将SDA拉低,从而给出一个应答位。

6.2.3 I2C数据传输协议

I2C总线的数据传输协议如下:

(1)、主器件发出开始信号

(2)、主器件发出第一个字节,用来选通相应的从器件。其中前7位为地址码,第8位为方向位(R/W)。方向位为“0”表示发送,方向位为“1”表示接受。

(3)、从机产生应答信号,进入下一个传送周期,如果从器件没有给出应答信号,此时主器件产生一个结束信号使得传送结束,传送数据无效。

(4)、接下来主、从器件正式进行数据的传送,这时在I2C总线上每次传送的数据字节数不限,但每一个字节必须为8位(传送的时候先送高位,再送低位)。当一个字节传送完毕时,再发送一个应答位(第9位),如上一条所述,这样每次传送一个字节都需要9个时钟脉冲。

第七章 程序的调试

7.1  编译软件的使用和编译过程

    编译软件的使用

A: 编译软件的装载:这个软件不需要安装,只要复制到机子里就行。

B:双击快捷方式,进入编辑界面,进行下一步编辑(如图)。

图3.2  编译使用界面

C.点击文件,新建一个文件,将源程序输入后保存(生成.ASM文件)。

D. 选择项目,点击全部编译,系统自动进行编译后弹出对话框,提示编译中出现的问题,双击提示后系统会自动指出出问题的地方(生成.BIN文件)。

7.2 烧片

烧片用的是ISPLAY软件,它的使用方法如下:

(1)先配置软件,选择ATC51。                

(2)导入预先编译好的程序。

(3)擦除芯片,然后烧制。

烧片时应注意的问题:

(1)芯片的放置要真确,否则有可能造成芯片烧坏。

(2)配置芯片时要注意选对芯片型号,例如用ATC51就要选:MCU ATC51。

(3)在烧片之前,应该先擦除芯片,防止芯片内原有遗留程序的影响。

 结论

这次毕业设计通过老师的指导,同组同学的讨论,以及自己的努力,我的完成了任务,达到了设计的目的。我学会了工程设计的基本方法,对系统的整体分析,熟悉单片机应用系统的开发、研制过程,以及掌握有关微型机的硬件和软件的知识。真正感受到所学知识与实际的应用、单片机的应用、电子技术的应用、计算机网络技术的应用等等理论与实际相结合,让我大开眼界。

通过这次设计使我明白到有些东西看上去非常简单,当自己置身其中去做时,并不容易了。在毕业设计的这段时间里,我也发现了自己所应该改进或是较为缺乏的部分,其一是分析问题的能力:可能是自己学习的不够扎实,实习中碰到了不少钉子,遇到问题时头脑很茫然;二是解决问题的成熟度:这也许是个性使然,再加上缺少经验的累积和历练,所以在处理设计中的问题时,容易慌慌张张.这次设计也让我再次体会到书本上学习到的专业知识和实际应用起来是两个完全不同的概念,所以在现阶段的学习中,我们主要是应该去学习专业理论知识,学习掌握分析问题和解决问题的能力。在以后的工作中,把理论和实际相结合,努力实现大学所学习的理论知识。所以说,这次毕业设计也是对以前所学知识的一个初审吧!对于我以后学习、找工作也真是受益菲浅。我感性回到理性的重新认识,进一步对社会的认知,对于以后工作所应把握的方向也有所启发!

在这次毕业设计中,我要感谢我的指导老师,他给予我许多的帮助和鼓励。我还要感谢在设计过程中所有给予我真诚热情帮助的老师和同学。

参考文献

[1]周航慈.单片机应用程序设计技术[M].北京:北京航空航天大学出版社,2002:56-62. 

[2]李 华等.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1993:51-68.

[3]马忠梅,籍顺心,张 凯,马 岩. 单片机的C 语言应用程序设计. 修订版[M].北京:北京航空航天大学出版社,1999.

[4]杜国信. 脉码调制通信技术[M]. 北京:中国铁道出版社,1990.

[5]赵晓安主编﹒MCS-51 单片机原理及应用﹒天津天津大学出版社2001

[6]楼然苗李光飞编著﹒51 系列单片机设计实例﹒北京北京航空航天大学出版社2003

    [7] 多功能遥控器设计.杭州士兰微电子股份有限公司.

[8]明、唐杰等.51 单片机编程基础与开发实例详解.北京:人民邮电出版

       社,2008

附  录

红外解码(接收)的程序设计

要了解一个未知的遥控器,首先要分析其脉冲,从而了解到其脉冲波形特性(以何种方式携带“ 0” 、“ 1”信息),进而了解其编码规律。脉冲流的分析应从分析脉冲的高、低电平入手,下面是用软件的方法来实现对脉冲流的分析:

              MOV           RO,00H

              MOV           R1,#28H

              MOV           TMOD,#01H

   TK:       JB            P3.3,TK ;等待低电平到来;测低电平宽度

   TK1:      MOV           TH0,#00H

              MOV           TL0,00H

              SETB          TR0

   TK0:      JB            TKE ;超时无效返回

              JNB           P3.3, TK2

              CLR           TRO

              MOV           A,YH0

              MOVX          @R0,A

              INC           R0 ;测高电平宽度

              MOV           TH0,#00H

              MOV           YL0,#00H

              SETB          TR0

   TK3:      JB            TF0,TKE ;超时无效返回

              JB            P3.3,TK3

              CLR           TR0

              MOV           A,TH0

              MOVX          @R0,A

              INC           R0

              MOV           A,TL0

              MOVX          @R0,A

              INC           R0

              DJNZ          R1,TK ;循环

   TKE:      RET

这段程序首先将TC0设置成16位定时器方式,初始化RAM地址指针R0和循环计数指针R1,每当引脚的逻辑电平发生跳变时,停止计时,将计时值保存到连续的RAM中。这段程序可以连续测量40个脉冲的时间值(包括40个低电平脉宽)。

设计时通过大量的不同种类的遥控码波形实验分析, 遥控码的帧间歇位宽度均在10 ms 以上, 起始位码宽度在100μ s— 20ms 之间, 编码位在100μ s— 5ms 之间, 为确保所有遥控器学习的成功, 采用以下设计方法:  

1. 寻提起始位方法: 用16 位DPTR计数器对高电平进行宽度计数, 计数采样周期为21μ s, 当高电平结束时, 如高8 位计数器为非零, 则说明高电平宽度超过5.35ms( 255×21μ s), 紧接来的低电平码就是起始位, 否则重新开始。 

2.读起始位方法:采用16 位DPTR对低电平进行宽度计数( 最大可读宽度为1.376s),当高电平跳变时结束计数, 并将DPTR 的高8 位、低8 分别存入R4, R5 寄存器。 

3. 读遥控编码的方法: 采用DPTR 低8 位计数器对码( 高电平或低电平) 进行宽度计数, 电平跳变时结束计数, 并将值存入规定的地址, 在高电平码计数时, 如DPTR 高8 位计

数器为非零( 宽度大于5.35ms), 则判定为结束帧间隔位, 在相应存储单元写入OOH作为结束标志。

致 谢

在论文即将完成之际,首先要对谢辉程老师表示最真挚的感谢。在交论文初稿的时候,谢老师耐心帮我修改论文格式。在论文的写作期间,谢老师在百忙之中抽出时间指导我的论文写作,在很多关键的知识点上进行了讲解疏通,给我论文写作的宏观框架提出了宝贵的意见,特别是由于我今年忙完其他事情后,论文写作的时间比较仓储,为了能够顺利完成论文的写作,谢老师特别为我们安排了实验室作为论文的写作平台。我在论文写作之初,对很多的东西还比较陌生,谢老师特别给我们推荐了参考书籍,为我的论文写作提供了知识基础,我要特别提出感谢谢老师,感谢他无私的帮助由于本人学识有限,加之时间仓促,文中不免有错误和待改进之处,真诚欢迎各位师长、同学提供宝贵的意见。

文档

万能遥控器的设计 3稿

毕业论文(设计)题目万能遥控器的设计英文题目DesignofUniversalRemoteControl院系电子工程学院专业电子信息工程姓名年级2007级指导教师二零一一年五月摘要本设计以单片机为核心设计一种学习型万能遥控器,可以对各种红外线遥控器发射的信号进行识别、存储和再现等功能,从而实现对各类家用电器的控制。学习型万能遥控器由单片机、红外线接收、红外线发射、显示、存储、按键和欠电压指示等部分组成。本设计详细介绍了学习型万能遥控器的软硬件设计方法,并给出了具体的各单元电路设计、程序设计及主
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top