单片机红外控制原理1

更新时间:2024-04-27 20:44:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

上篇 单片机红外控制发射器设计【详细】

摘 要

随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生

活的遥控系统开始进入了人们的生活。传统的遥控器采用专用的遥控编码及解码集成电路,这种方法虽然制作简单、容易,但由于功能键数及功能受到特定的限制,只实用于某一专用电器产品的应用,应用范围受到限制。而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随便设定等优点。

本设计主要应用了AT89C2051单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识,应用红外光的优点。遥控操作的不同,遥控发射器通过对红外光发射频率的控制来区别不同的操作。遥控接收器通过对红外光接收频率的识别,判断出控制操作,来完成整个红外遥控发射、接收过程。

其优点硬件电路简单,软件功能完善,性价比较高等特点,具有一定的使用和参考价值。

关键词:单片机,红外遥控,中断,定时,计数,频率

Abstract

With the development of our society and the gradual improvement of science

and technology, various kinds of help remote control systems have began to enter people’s life. The traditional remote controllers adopt special remote control code and decode integrated circuits, though this kind of method is simply and easily, it is only the practical application of some certain special electric equipments because of the counted functional keys is counted and the restricted function, so the range of application is limited. But the remote controllers which adopt the microprocessors have many advantages such as flexible operating and unceremonious manipulative keys.

The design has used AT89C2051 microprocessor as core, integratively apply the interruptive system, timer , counter ,etc. mainly to design originally and also take the advantage of the infrared light. The remote control launcher distinguishes different operation through the control on frequency of infrared emission of light. The remote control receiver judges control operation by adopting the discerned frequency of the received infrared light to finish the whole launching and receiving course.

I

Its advantage is that the hardware circuit is simple, the software is with perfect function, have certain use and reference value

Keywords: Microprocessor, Infrared remote control,Interrupt,Timing,Counting,

Frequency

目 录

摘 要 .......................................................................................................................... I Abstract .......................................................................................................................... I 1 绪 论 ....................................................................................................................... 5

1.1 单片机的产生与发展 ..................................................................................... 5 1.2红外通信技术概述 .......................................................................................... 3

1.2.1红外概述 ................................................................................................ 3 1.2.2 选择红外遥控的原因 ........................................................................... 3 1.2.3红外的简单发射接收原理 .................................................................... 4 2.1 设计目的与原理 ............................................................................................. 4 2.2单片机红外遥控发射器设计原理 .................................................................. 4 2.3 单片机红外遥控接收器设计原理 ................................................................. 5 3系统硬件电路设计 .................................................................................................... 6

3.1有关AT89C2051单片机的介绍 .................................................................... 6

3.1.1简介 ........................................................................................................ 6 3.1.2引脚介绍 ................................................................................................ 6 3.1.3 AT89C2051单片机的主要组成部分 ................................................... 8 3.2定时器/计数器 ................................................................................................ 9

3.2.1主要特性 ................................................................................................ 9 3.2.2定时/计数器0和1的控制和状态寄存器 ........................................ 10 3.2.3 T0和T1的4种工作方式 .................................................................. 12 3.3独立式按键结构 ............................................................................................ 12 3.4低功耗控制电路 ............................................................................................ 13

3.4.1低功耗的实现方法 .............................................................................. 13 3.4.2 掉电保护和低功耗的设计 ................................................................. 13 3.5 CPU时钟电路 ............................................................................................ 16

II

3.6 复位电路 ................................................................................................ 17 3.6.1复位状态 .............................................................................................. 17 3.6.2 复位电路 ............................................................................................. 17 3.7 红外发射电路的设计 ................................................................................... 18 3.8 红外接收电路的设计 ................................................................................... 19 3.9 完整的系统电路设计图 ............................................................................... 20 4 系统软件设计 ......................................................................................................... 20

4.1遥控发射器程序设计 .................................................................................... 20

4.1.1程序总体结构 ...................................................................................... 20 4.1.2 伪指令和初始化程序 ......................................................................... 22 4.1.3键盘扫描程序 ...................................................................................... 24 4.1.4 中断服务程序 ..................................................................................... 25 4.2 遥控接收器程序设计 ................................................................................... 27

4.2.1 程序总体结构 ..................................................................................... 27 4.2.2 初始化程序 ......................................................................................... 29 4.2.3 计数值比较程序 ................................................................................. 30 4.2.4 定时器1中断服务程序 ..................................................................... 30

5 总结与展望 ............................................................................................................. 31 致 谢 ................................................................................................................... 32 参考文献 ..................................................................................................................... 33 附录1 .......................................................................................................................... 35 附录2 .......................................................................................................................... 37

IV

1 绪 论

1.1 单片机的产生与发展

为适应社会发展的需要,微型计算机不断的更新换代,新产品层出不穷。在微型计算机的大家族中,几年来单片微型计算机异军突起,发展极为迅速。

单片微型计算机(Sing-Chip Microcomputer)简称单片机。它是在一块芯片上集成中央微处理器(Central Processing Unit, CPU)、随机存取存储器(Random Access Memory, RAM)、只读存储器(Read Only Memory, ROM)、定时/计数器及I/O(Input/Output)接口电路等部件,构成一个完整的微型计算机。它的特点是:高性能,高速度,体积小,价格低廉,稳定可靠,应用广泛。

单片机的发展史并不长,它的产生和发展与计算机的产生与发展大体同步,也经历了四个阶段。

第一阶段(1970年——1974年):为4位单片机阶段。这种单片机的特点是:价格便宜控制功能强,片内含有多种I/O接口,有的根据不同用途还配有许多专用接口,有些甚至还包括A/D转换器、D/A转换、声音合成等电路。丰富的I/O功能大大增强了四位单片机应用与录音机、摄像机、电视机、电冰箱、洗衣机、录像机和电子玩具等产品。

第二阶段(1974年——1978年):为低中档8位单片机阶段。它是8位单片机的早期产品,以Inter公司的MCS-48系列单片机为代表,这个系列的单片机在片内集成8位CPU、并行I/O口、8位定时/计数器、RAM和ROM等,中断处理较简单,片内RAM和ROM容量较小,且寻址范围不大于4KB。

第三阶段(1978年——1983年):为高档8位单片机阶段。这类单片机在低、中档基础上发展起来的,其性能有明显提高。以Inter公司的MCS-48系列单片机为代表,在片内增加了串行接口,有多级中断处理系统,有16位定时/

V

计数器,片内RAM、ROM容量增大,信纸范围可达64KB,有的片内带有A/D转换接口。这类单片机功能强,应用领域广,是目前各类单片机中应用最多的一种。

第四阶段(1983年—现在):为8位单片机巩固发展阶段及16位单片机、32位单片机推出阶段。此阶段主要特点是:一方面不断发展16位单片机、32位单片机及专用单片机。16位单片机除CPU为16位外,片内RAM为232B,ROM位8KB,片内带有高速输入输出部件,多通道10位A/D转换部件,中断处理为8级,其实时处理能力强。今年来,各个计算机厂家已进入高性能的32位单片机研制、生产阶段,32位单片机除了具有更高的集成度外,主振频率已达20MHz,这使32位单片机的数据处理速度比16位单片机快的多,性能比8位、16位单片机更加优越。

需要提到的是,单片机的发展虽然经历了4位、8位、16位各阶段,但4位、8位、16位单片机仍各有其应用领域,如4位单片机在一些简单家用电器、高档玩具中仍有应用,8位单片机在中、小规模应用场合仍占主流地位,16位单片机在比较复杂的控制系统中才有应用,32位单片机因控制领域对它的需求并不十分迫切,所以32位单片机在我过的应用并不多。

正是由于单片机具有上述显著的特点,使单片机的应用范围日益扩大。单片机的应用打破了人们传统设计思想,原来很多用模拟电路、脉冲数字电路和逻辑部件来实现的功能,现在均可以使用单片机,使用软件来实现。使用单片机具有体积小、可靠性高、性能价格比高和容易产品化的优点。

单片机应用的主要领域有以下几点。 (1)

智能化仪器仪表。用单片机改造原有的测量、控制仪表,使仪器仪表数字化、智能化、多功能化和微型化,并使长期以来测量仪表中的误差修正和线性化处理等难题迎刃而解。有单片机构成的智能仪表,集测量、处理控制功能于一身,从而赋予测量仪表以崭新的面貌,是仪器仪表更新换代的标志。

(2)

机电一体化产品。机电一体化是机械工业发展的方向,机电一体化是指集机械技术、微电子技术和计算机技术于一体,具有智能化特征的机电产品。单片机的出现促进了机电一体化的发展,它作为机电产品中的控制器,使传统的机械产品结构简单化、控制智能化,构成了新一代机电一体化产品。例如,在电传打字机中,由于采用了单片机而取代了近千个机械部件。

(3)

测控系统。用单片机可以构成各种工业控制系统、自适应控制系统和数据采集系统。例如,温度、湿度的自动控制、锅炉燃烧的

2

自动控制、电镀生产线的自动控制和包装生产线的自动控制等。

(4)

计算机网络及通信技术。高档单片机集成有通信接口,位单片机在计算机网络与通信设备中的应用提供了良好的条件。例如,用MCS-51系列单片机控制的串行自动呼叫应答系统、列车无线通信系统、和无线遥控系统等

(5)

家用电器。由于单片机的价格低廉、体积小、逻辑判断的控制功能强,且内部具有定时/计数器,所以广泛应用于家用设备。总之,单片机将使人类的生活更加方便舒适、丰富多彩。[1]

1.2红外通信技术概述

1.2.1红外概述

从光学的角度而言,红外是频率低于红色光的不可见光,的无线光谱的整个频率中占有很小一个频率段,波长为0.75—100微秒之间,其中0.75—3微秒之间的红外光称为近红外,3—30微秒之间的红外光称为中红外,30—100微秒之间的称为远红外。红外光就其性质而言很简单,与普通光线的频率特性没有很大的区别,但是,由于任何有热量的物体均有能量产生,所以红外的利用非常广泛,而且不可取代,能否检测红外、能测到多少红外或者红外检测的技术是否可以应用于任何自然的或想象的场合是红外应用技术的关键。[2] 当今红外技术的一个重要分支是红外通信技术的应用,这个应用的发展非常迅速,尤其是红外通信应用于计算机设备中,近几年的发展已经表现出其非常成熟的特性[3]。

1.2.2 选择红外遥控的原因

无线遥控方式可分为无线电波式、声控式、超声波式和红外线式。由于无线电式容易对其它电视机和无线电通讯设备造成干扰,而且,系统本身的抗干扰性能也很差,误动作多,所以未能大量使用。超声波式频带较窄,易受噪声干扰,系统抗干扰能力差以及声控式识别正确率低,难度大而未能大量采用。红外遥控方式是以红外线作为载体来传送控制信息的,同时随着电子技术的发展,单片机的出现,催生了数字编码方式的红外遥控系统的快速发展。另外,红外遥控具有很多的优点,例如红外线发射装置采用红外发光二极管,遥控发射器易于小型化且价格低廉;采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,增加遥控功能,提高信号传输的抗干扰性,减少误动作,而且功率消耗低;红外线不会向室外泄露,不会产生信号串扰;反应速度快、传输效率高、工作稳定可靠等。所以现在很多无线遥控方式都采用红外遥控方

3

式。[4]

1.2.3红外的简单发射接收原理

在发射端,输入信号经放大后送入红外发射管发射,在接收端,接收管收

到红外信号后,由放大器放大处理后还原成信号,这就是红外的简单发射接收原理。[5]

2 系统设计方案论证

2.1 设计目的与原理

目前市场上一般采用的遥控编码及解码集成电路。此方案具有制作简单、容易等特点,但由于功能键数及功能受到特定的限制,只适合用某一专用电器产品的应用,应用范围受到限制。而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随意设定等优点[6]。本单片机遥控应用系统采用红外线发射频率的不同,来识别不同的遥控功能。当我们按下某一个按键的时候,由单片机识别出该按键后,由CPU向接有红外发射管的端口发射一定频率的脉冲,该脉冲与38KHz左右的载波脉冲进行调制,然后将已调制的脉冲进行缓冲放大,激励红外发光二极管将电能转化为光能,使得红外发光二极管发射出一定频率的红外线[7],当接收控制系统接收到该红外光后,由单片机内定时/计数器得到该红外光的频率,然后将该频率送往CPU,由CPU对该信号进行反编码,识别出控制信号,从而对控制电路实施控制功能。完成整个遥控功能[8]

2.2单片机红外遥控发射器设计原理

单片机红外遥控发射器主要有单片机、行列式键盘、低功耗空闲方式控制电路、红外管发射电路以及单片机的一些电源、复位、震荡子电路组成[9]。

单片机不工作时一直处于低功耗状态,采用了空闲节电工作方式。当遥控器的某一按键被按下以后,外部中断1产生中断,唤醒单片机进入工作状态,查询键盘按下的是哪一个按键,当确认按键后,控制软件启动定时器T0、T1,T1作为发射时间控制器,T0作为红外线发射频率控制器,T0定时溢出时中断程序使红外管接口电平反转一次,写入定时器的初值不同,在输出端口就得到不同的发射频率。T1定时溢出时中断程序关闭关闭T0定时

4

器,停止红外线发射[10]。其设计原理框图如下。

+5V电源 红外管发射电路 AT89C2051 单片机 行列式键盘 低功耗空闲方式 控制电路 图2.1 单片机遥控发射器设计原理图

2.3 单片机红外遥控接收器设计原理

单片机红外遥控接收器主要有单片机、红外遥控接收电路、状态指示电路、控制电路以及单片机的一些外围电路组成。

利用单片机中的T0作为红外脉冲计数器,T1作为计数时间控制器。当电路中红外接收管接收到第一个红外脉冲时,外部中断1被触发,启动计数器T0和定时器T1。定时溢出,中断程序关闭计数器T0,读入计数值并进行判断,确定操作对象(遥控按键)对其进行反转操作,控制电路对所控制的负载进行开或关[11]。还可对接收电路实行上锁功能,对控制电路上锁后,遥控器不能对控制电路实施遥控功能[8]。其设计原理方框图如下:

红外接收电路 +5V电源 AT89C2051 单片机 状态指示电路 控制电路 5

图2.2 红外接收遥控电路原理框图

3系统硬件电路设计

3.1有关AT89C2051单片机的介绍

3.1.1简介

AT89C2051是一个低电压,高性能CMOS 8位单片机。片内含有2KB可反复擦写的只读存储器(EPROM)和128B的随机存取存储器(RAM),器件采用ATMEL的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储器,功能强大。

AT89C2051只有20个双向输入/输出(I/O)端口,其中P1是完整的8位双向I/O口,两个外中断,2个16位可编程定时/计数器,两个全双向串行通信口,一个模拟比较放大器

此外,AT89C2051的时钟频率可为零,即具备可用软件设置的睡眠省电功能,系统的唤醒方式有RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入工作状态,省电模式中,片内RAM将被冻结,时钟停止震荡,所有功能停止工作,直至系统被硬件系统复位方可继续工作 [12] 。 3.1.2引脚介绍

Vcc:接+5V电源正端 GND:接+5V电源地端

P1.0—P1.7:完整的双向串行通信接口,P1.0与P1.1还有第二种功能 P3.0—P3.7:除P3.6外,双向I/O口,除P3.7外,均有第二功能,第二功能与MCS-51系列单片机基本相同

XTAL1:震荡器反向放大器内部工作时钟输入端 XTAL2:震荡器反向放大器的输出端

RST:复位引脚,震荡器工作时,该引脚上两个机器周期的高电平复位[10]

6

图3.1 AT89C2051引脚图

主要功能特性

●兼容MCS51指令系统 ●15个双向I/O口

●两个16位可编成定时/计数器 ●时钟频率0—24MHz ●两个外部中断源 ●可直接驱动LED ●低功耗睡眠功能 ●可编程URRL通道 ●2KB可反复擦写Flash ROM ●6个中断源

●2.7—6.0V宽工作电压范围 ●128*8位内部RAM

7

●两个串行中断 ●两级加密位

●内置一个模拟比较放大器 ●软件设置睡眠和唤醒功能

3.1.3 AT89C2051单片机的主要组成部分 1.CPU

CPU是单片机的核心部分,他的作用是读入和分析每条指令,根据每条指令的功能要求,控制各个部件执行相应的操作。AT89C2051单片机内部有一个8位的CPU,它是由运算器和控制器组成[13]。 A.运算器

运算器主要包括算术、逻辑运算部件ALU、累加器ACC、寄存器B、暂存器YMP1、YMP2、程序状态寄存器PSW、布尔处理器及十进制调整电路等。 运算器主要用来实现数据的传送、数据的算术运算、逻辑运算和位变量处理等。 B.控制器

控制器包括时钟发生器、定时控制逻辑、指令寄存器指令译码器、程序计数器PC、程序地址寄存器、数据指针寄存器DPTR和堆栈指针SP等。

控制器是用来统一指挥和控制计算机进行工作的部件。它的功能是从程序存储器中提取指令,送到指令寄存器,再进入指令译码器进行译码,并通过定时和控制电路,在规定的时刻发出各种操作所需要的全部内部控制信息及CPU外部所需要的控制信号,如ALE、PSEN、RD、WR等,使各部分协调工作,完成指令所规定的各种操作。 2.存储器 A.程序存储器

程序存储器用于存放编好的程序、表格和常数。CPU的控制器专门提供一个控制信号EA来区分内部ROM和外部ROM的公用地址区:当EA为无效电平时,单片机从片内ROM的2KB存储器取指令,而当指令超过07FFH后,就自动转向片外ROM取指令;当EA为有效电平时,CPU只从片外ROM取指令。 在程序存储器中,有6个单元具有特殊存储功能。

0000H—0002H:是所有执行程序的入口地址,2051单片机复位后,CPU总是从0000H单元开始执行程序。 0003H:外部中断0入口。

000BH:定时/计数器0溢出中断入口。 0013H:外部中断1入口。

8

001BH:定时/计数器1溢出中断入口。 0023H:串行口中断入口。

使用时,通常在这些入口地址处存放一条绝对跳转指令,使程序跳转到用户安排的中断程序起始地址,或者从0000H起始地址跳转到用户设计的初始程序上。 B.数据存储器

片内数据存储器的8位地址共可寻址256B单元,2051单片机将其分为两个区:00H—FFH的128B单元为片内RAM区,可以读、写任何数据;80H—FFH的高128B单元为专用寄存器区。在低128B的内部RAM中,前32个单元(地址为00H—1FH)为通用工作寄存器区,共分为四组(寄存器0组、1组、2组、3组),每组8个工作寄存器由R0—R7组成,共占32个 单元。选用哪一组由程序状态字PSW中的RS1、RS0 这两位的设置决定,若程序并不需要四个4组工作寄存器,那么剩下的工作寄存器可作一般的存储器来使用。CPU在复位时自动选中0组20H—2FH的16个单元为位寻址区,每个单元8位,共128位。其位寻址范围为00H—7FH。位寻址区的每一位都可当作软件触发器,由程序直接进行处理。程序中通常把各种程序状态标志、位控变量设在位寻址区。同样,位寻址区的RAM单元也可作为一般的数据存储器按字节单元使用。 3.特殊功能寄存器 A.累加器A

累加器A是一个最常用的8位特殊功能寄存器,它既可用于存放操作数, 也可用于存放运算的中间结果。大部分单操作数指令的操作数就取自累加器。用ACC表示A的符号地址。 B.寄存器B

寄存器B是一个8位寄存器,主要用于乘法和除法的运算。乘法运算时,B

中存放乘法,乘法操作后,乘积的高8位又存于B中;除法运算时,B中存放除数,出发操作后,B中又存放余数。在其他指令中,寄存器B可作为一般的寄存器使用,用于暂存数据[14]。

3.2定时器/计数器

3.2.1主要特性

(1) AT89C2051单片机有两个可编程的定时器/计数器——定时器/计数器0

与定时器/计数器1,可有程序选择作为定时器用或作为计数器用,定时时间或记数值也可由程序设定。

9

(2) 每一个定时器/计数器具有4种工作方式,可用程序选择。

(3) 任一定时器/计数器在定时时间到或记数值到时,可有程序安排产生中断

请求信号或不产生中断请求信号[15]。

3.2.2定时/计数器0和1的控制和状态寄存器

特殊功能寄存器TMOD和TCON分别是定时/计数器0和1的控制和状态寄存器,用于控制和确定各定时/计数器的功能和工作模式。 1.模式控制寄存器TMOD

TMOD用于控制T0和T1的工作方式和4种工作模式。其中低4位用于控制T0,高4位用于控制T1。其格式如下:

GATE

GATE位:门控位。

当GATE=1时,只有INTO非或INT1非引脚为高电平且TR0或TR1置1时,相应的定时/计数器才被选通工作;当GATE=0,则只要TR0和TR1置1,定时/计数器就被选通,而不管INT0非或INT1非的电平是高还是低

C/T非位:计数/定时功能选择位。

C/T非=0,设置为定时器方式,计数器的输入是内部时钟脉冲,其周期等于机器周期。

C/T非=1,设置为计数器方式,计数器的输入来自T0(P3.4)或T1(P3.5)端的外部脉冲。

M1、M0位:工作模式选择位。2位可形成4中编码,对应4种工作模式,见下表: M1 M0 00 01 10 11

2. 控制寄存器TCON

TCON用来控制T0和T1的启、停,并给出相应的控制状态,高4位用于控制定时器0、1的运行;低4位用于控制外部中断。格式如下:

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 10

C/T非 M1 M0 GATE C/T非 M1 M0 功 能 描 述 方式0:13位定时器/计数器 方式1:16位定时器/计数器 方式2:具有自动重装初值的8位定时器/计数器 方式3:定时/计数器0分为两个8位定时/计数器,定时/计数器1在此方式无实用意义

TF1:定时器1溢出标志。

当定时器1溢出时,由硬件置1。使用查询方式时,此位做状态位供查询,查询有效后需由软件清零;使用中断方式时,此位做中断申请标志,进入中断服务后被硬件自动清零。

TR1位:定时器1运行控制位。

该位靠软件置位或清零,置位时,定时/计数器接通工作,清零时,停止工作。

TF0位:定时器溢出标志位,其功能和操作情况类同于TF1。 TR0位:定时器0运行控制位,其功能和操作类同于TR1。 IE位:外部中断请求标志位。

当CPU采样到INT0非(或INT1非)端出现有效中断请求时,IE0(或IE1)由硬件置1,中断响应完成后转向中断服务时,再由硬件自动清零。

IT位:外部中断请求出发方式位。

IT0(IT1)=1为脉冲触发方式,后负跳有效。 IT0(IT1)=0为电平触发方式,低电平有效。 3.定时/计数器的初始化

AT89C2051单片机的定时/计数器是可编程的,因此,在进行定时或计数之前也要用程序进行初始化。初始化一般应包括以下几个步骤:

(1) 对TMOD寄存器赋值,以确定定时器的工作模式;

(2) 置定时/计数器初值,直接将初值写入寄存器的TH0,TL0或TH1,

TL1;

(3) 根据需要,对寄存器IE置初值,开放定时器中断;

(4) 对TCON寄存器中的TR0或TR1置位,启动定时/计数器,置位以

后,计数器即按规定的工作模式和初值进行计数或开始定时。 在初始化过程中,要置入定时/计数器的初值,这时要做一些计算。由于计数器是加法计数,并在溢出时申请中断,因此不能直接输入所需的计数值,而是要从计数最大值倒退回去一个计数值才是应置入的初值。设计数器的最大值为M(在不同的工作模式中,M可以为8192,65536,256),则置入的初值可以这样来计算。

计数方式时

X=M—记数值 定时方式时

(M—X)T=定时值 所以

11

X=M—定时值/T

式中,T为计数周期,是单片机的机器周期[13]。

3.2.3 T0和T1的4种工作方式

方式0:13位定时/计数器,TL1(或TL0)的低5位和TH1(或TH0)的8位构成,TL中的高3位弃之未用。当TL的低5位记数溢出时,向TH进位,而全部13位计数器溢出时使计数器回零,并使溢出标志TF置1,向CPU发出中断请求。

方式1:16位定时/计数器,其逻辑电路和工作情况与方式0几乎完全相同,唯一的差别就是方式1中TL的高3位也参与了计数。

方式2:把TL配置成一个可以自动重装载的8位定时/计数器

方式3:仅对T0有意义,将16位定时/计数器分成两个互相独立的8位定时/计数器TL和TH,

3.3独立式按键结构

独立式按键是指直接用I/O线构成的单个按键电路,每个独立式按键占有一根I/O口线,每根I/O口线上的按键的工作状态不会影响其他I/O口线的工作状态,其结构简单,但I/O口线浪费较大[16]。

独立式按键配置灵活,软件结构简单,上拉电阻保证了按键断开时,I/O口线有确定的高电平,其电路原理图如下

图3.2 独立式按键电路

12

3.4低功耗控制电路

3.4.1低功耗的实现方法

AT89C2051单片机的CPU有两种节电工作方式即空闲方式和掉电方式,遥控器采用了空闲节电方式。当CPU执行完IDL=1(PCON.0=1)指令后,系统进入空闲工作方式 ,这时内部时钟不向CPU提供,而只供给中断、串行口、定时器部分。遥控器退出低功耗空闲方式电路由与门来实现。当有键按下时,由与门触发外部中断1发生中断,单片机退出空闲工作方式,进入键盘和红外发射程序,结束后又进入低功耗空闲方式待机。使用过程中单片机基本上都处于空闲工作方式,功耗相当低,从而为使用电池电源提供保障。

3.4.2 掉电保护和低功耗的设计 1.掉电保护

在单片机工作时,供电电源如果发生停电或瞬间停电,将会使单片机停止工作。待电源恢复时,单片机重新进入复位状态,停电前RAM中的数据全部丢失,这种现象对于一些重要的单片机应用系统是不允许的。在这种情况下,需要进行掉电保护处理。掉电保护具体操作过程如下。

单片机应用系统的电压检测电路检测到电源电压下降时,触发外部中断(INT0或INT1),在中断服务子程序中将外部RAM中的有用数据送入内部RAM保存。因单片机电源入口的滤波电容的储能作用,可以有足够的时间来完成中断操作。备用电源自切换电路属于单片机内部电路。它由两个二极管组成,当电源电压高于VPD引脚的备用电源电压时,VD1导通,VD2截止,单片机由电源供电;当电源电压降到比备用电源电压低时,二极管VD1截止,VD2导通,单片机由备用电源供电[15]。

备用电源只为单片机内部RAM和专用寄存器提供维持电流,这时单片机外部的全部电路因停电而停止工作,时钟电路也停止工作,CPU因无时钟也不工作。

当电源恢复时,备用电源还会继续供电一段时间,大约10ms,以确保外部电路达到稳定状态。在结束掉电保护状态时,首要的工作是将被保护的数据从内部RAM中恢复过来。

当用户检测到一个掉电保护电路时,立即通过外部中断输入线INT0来中断单片机现行操作。外部中断0服务程序将有关数据信息送入片内RAM保存,然后向P1.0写入0,P1.0输出的这个低电平触发单稳态电路MC755。它输出的脉宽取决于R、C的数值及VCC是否以掉电。如果当单稳态定时输出后,若VCC仍然存在,这是一个假掉电报警,并从复位开始重新操作;若VCC已掉电,则断电期间由单稳态电路给RESET/VPD供电,维持片内RAM处于“饿电

13

流”供电状态保存信息,一直维持到VCC恢复为止。

80C51的掉电保护过程则不同。当电压检测电路检测到电源电压降低时,也触发外部中断,在中断服务子程序中,除了要将外部RAM中的有用数据保存以外,还要将特殊功能寄存器的有用内容保护起来,然后对电源控制寄存器PCON进行设置。PCON寄存器的各位定义如下。

D7 D6 D5 D4 D3 D2 D1 D0 SMOD — — — GF1 GF0 PD IDL 其中,SMOD是波特率倍增位,在串行通信中使用。 GF1、GF0:通用标志,由软件置位、复位。 PD:掉电方式控制位,PD=1,则进入掉电方式。 IDL:待机方式控制位,IDL=1,则进入待机方式。

由软件将PD置1,就可以使单片机进入掉电保护状态。这时,单片机的一切工作都停止,只有内部RAM和专用寄存器的内容被保存。掉电保护时的备用电源是通过VCC引脚接入的。当电源恢复正常后,系统要维持10ms的恢复时间后才能退出掉电保护状态,复位操作将重新定义专用寄存器,但内部RAM的内容不变,可将被保护的内容恢复

图3.3 掉电保护电路

2. 低功耗设计

在很多情况下,单片机要工作在供电困难的场合,如野外、井下和空中,对于便携式仪器要求用电池供电,这时都希望单片机应用系统能低供耗运行。以CMOS工艺制造的80C31/80C51/87C51型单片机提供了空闲工作方式。

空闲工作方式(通常也指待机工作方式)是指CPU在不需要执行程序时停止工作,以取代不停的执行空操作或原地踏步等待操作,达到减小功耗的目的。

空闲工作方式是通过设置电源控制寄存器PCON中的IDL位来实现的。

14

用软件将IDL位置1,系统进入空闲工作方式。这时,送往CPU的时钟被封锁,CPU停止工作,但中断控制电路、定时/计数器和串行接口继续工作,CPU内部状态如堆栈指针SP、程序计数器PC、程序状态寄存器PSW、累加器ACC及其他寄存器的状态被完全保留下来。

在空闲工作方式下,80C51消耗的电流由正常的24mA将为3mA。 单片机退出空闲状态有如下两种方法。

第一种是中断退出。由于空闲方式下,中断系统还在工作,所以任何中断的响应都可以使IDL位由硬件清零,而退出空闲方式下,单片机就进入中断服务程序。

第二种是硬件复位退出。复位时,各个专用寄存器都恢复默认状态,电源控制寄存器PCON也不例外,复位使IDL清零,退出空闲工作方式。

MCS—51的掉电保护也是一种节电工作方式,它和空闲工作方式一起构成了低功耗工作方式。一旦用户检测到掉电发生,在VCC下降之前写一个字节到PCON,使 PD=1,单片机进入掉电方式。在这种方式下,片内震荡器被封锁,一切功能都停止,只有片内RAM00H—7FH单元的内容被保留。

在掉电方式下,Vcc可降至2V,使片内RAM处于50微安左右的“饿电流”供电状态,以最小的耗电保存信息,Vcc恢复正常之前,不可进行复位;当Vcc正常后,硬件复位10ms即能使单片机退出掉电方式[17]。

在该电路中,退出空闲工作方式采用中断的方法。当遥控键盘上的人任一个按键按下以后,与门输出即为低电平,触发INT1引脚,外部中断1响应,使IDL位清零,退出空闲工作方式,恢复正常状态。其硬件电路如下。

15

图3.4 低功耗控制电路

3.5 CPU时钟电路

时钟电路用于产生单片机工作所需要的时钟信号。时钟信号可以有两种方式产生:内部时钟方式和外部时钟方式。 1.内部时钟方式

2051单片机有一个高增益反向放大器,用于构成振荡器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟发生器,见下图,外接晶振时,C1、C2值通常选择为30pF左右;外接陶瓷振荡器时,C1、C2约为47pF。C1、C2对频率有微调作用,震荡频率范围是1.2—12MHz。为了减少寄生电容,更好的保证振荡器稳定可靠的工作,谐振器和电容应尽可能安装的与单片机芯片靠近。

内部时钟发生器实质上是一个二分频的触发器,其输出信号是单片机工作所需的时钟信号。 2.外部时钟方式

外部时钟方式是采用外部振荡器,外部振荡信号由XTAL2端接入后直接送至内部时钟发生器。输入端XTAL1应接地,由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上拉电阻。

16

一般情况下,单片机时钟输入均采用内部时钟方式,外接一个震荡电路,本系统采用内部时钟方式,晶振采用12MHz,其电路如下。

图3.5 AT89C2051时钟电路

3.6 复位电路

3.6.1复位状态

计算机在启动时,系统进入复位状态。在复位状态,CPU和系统都处于一个确定的初始状态或成为原始状态,在这种状态下,所有的专用寄存器都赋予默认值。其复位状态见下表。

表3.1 复位状态各寄存器初值 专用寄存器 PC ACC B PSW SP DPTR P0—P3 IP IE 复位状态 0000H 00H 00H 00H 07H 0000H FFH XXX0 0000B 0XX0 0000B 专用寄存器 TMOD TCON TH0 TL0 TH1 TL1 SCON SBUF PCON 复位状态 00H 00H 00H 00H 00H 00H 00H XXXX XXXXB 0XXX 0000B

3.6.2 复位电路

单片机复位电路包括片内、片外两部分,片外复位电路通过引脚加到内部复

17

位电路上,内部复位电路在每个机器周期S5P2对片外信号采样一次,当RST引脚上出现连续两个机器周期的高电平时,单片机就完成一次复位。外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的,AT89C2051通常采用上电自动复位和按键手动复位两种方式。

上电复位电路在通电瞬间,在RC电路充电过程中,RST端出现正脉冲,从而使单片机复位。

按键手动复位又分为按键电平复位和按键脉冲复位,按键电平复位是将复位端通过电阻与Vcc相连,按键脉冲复位是利用RC微分电路产生正脉冲来达到复位的目的。

本系统设计时采用的是上电复位方式,其电路原理图如下。

图3.6 复位电路

3.7 红外发射电路的设计

根据红外发射管本身的物理特性,必须要有载波信号与即将发射的信号相

“与”,然后将相“与”后的信号送发射管,才能进行红外信号的发射传送,而在频率为38KHz的载波信号下,发射管的性能最好,发射距离最远,所以在硬件设计上,本设计采用38KHz的晶振产生载波信号,与发射信号进行逻辑“与”运算后,通过三极管的功率驱动到红外发光二极管上[18]。

红外发送电路由4001MOS或非门38KHz振荡器,单片机发送控制电路和

红外发送管驱动输出电路组成,当单片机P3.4口输出为“0”时,发射管不发光,当单片机P3.4口输出为“1”时,红外发送管发出38KHz调制红外线[19]。 具体的发射波形与电路如下

18

图3.7 调制过程中的波形

图3.8 红外发射电路

3.8 红外接收电路的设计

红外接收电路专门采用集成电路RPM6938,RPM6938有三个引脚,一个接电源一个接地,另外一个接信号端,它集光电转换,解调和放大于一体[20]。当收到38KHz调制红外线时,RPM6938输出为“0”,平时输出为“1”。信号脚接到P3.3和P3.4脚上,当RPM6938收到第一个红外脉冲时,触发INT1产生中断,使单片机退出低功耗状态,进入工作状态,同时使记数器0和定时器

19

1开始工作 [21]

图3.9 红外接收电路

3.9 完整的系统电路设计图

完整的电路图见附录1

4 系统软件设计

4.1遥控发射器程序设计

4.1.1程序总体结构

此系统是一个红外遥控发射器,设计目的就是根据按键的不同,发射出不

20

同的红外信号。传统的遥控器都是采用遥控发射专用集成芯片,例如飞利浦公司生产专用芯片SAA3010,三菱公司生产的M50462P专用发射芯片。由于这些芯片的功能键数及功能受到特定的限制,只适合于某一专用电器产品的应用,应用范围受到限制。本系统采用单片机制作,采用编程的方法,由于编程具有灵活性,故应用范围较广,操作码可随意设定[22]。

本系统采用的是按红外发射频率的不同,来识别不同的按键。操作键设定为8个,K0至K7,分别接至单片机的P1.0至P1.7口。对应的红外发射频率分别为300Hz、600 Hz、900 Hz、1200 Hz、1500 Hz、1800 Hz、2100 Hz、2400 Hz。发射时间确定为一个定值,由定时器1来定时,时间为100ms,当100ms时间到定时器1发生中断,停止计时,红外光也停止发射。由定时/计数器0来控制发射频率,T0作为定时器,当T0定时时间到,中断程序使P3.4断口的电平反转一次,然后T0重新工作定时值与前相同,时间到中断程序使P3.4端口翻转一次,如此往复,红外信号就按一定的时间间隔发射出去。通过设定T0的定时时间来控制红外信号的发射频率[23]。平时遥控器工作在空闲方式下,当有键按下时,由外部中断1产生中断,使CPU回到工作状态,待执行完操作后又回到低功耗才状态。主程序主要由初始化程序、键盘扫描程序,定时器0中断服务程序、定时器1中断服务程序,外部中断1中断服务程序组成。主程序流程图如下:

21

START 调初始化程序 进入低功耗节电方式 外部中断1中断

K1 键是否 N

Y Y 按下 K2键是否按下 N K3键N ? 是否按下 调延时程序 调延时程序 Y ? .?

N

? N K1键是否松开 Y 启动定时器T1定时50ms 启动定时器T0定时3.33ms T0时间到 Y N P3.4翻转一次 T1时间到 Y

关T0、T1 P3.4置1 图4.1 遥控发射主程序流程图

当K2至K7键按下时,执行的程序类似于按下K1键所执行的程序。

4.1.2 伪指令和初始化程序

在初始化程序前,需要定义一些相关的伪指令,伪指令不能命令CPU执行某中操作,也没有对应的机器代码,它的作用仅用来给汇编程序提供某中信息。伪指令是汇编程序能够识别的汇编命令。控制信号的输入口P1.0—P1.7分别用按键开关键号K0—K7来定义;各频率红外信号对应的定时器T0的初值

22

分别用K0H、K0L——K7H、K7L来定义,这样做不影响整个程序的执行,但便于阅读和理解程序。定义格式如下:

K0 BIT P1.0 ? K7 BIT P1.7

由于P1.0至P1.7对应的红外发射频率分别为300Hz、600 Hz、900 Hz、1200 Hz、1500 Hz、1800 Hz、2100 Hz、2400 Hz,而T1的定时时间是50ms故在这七种状态下面,P3.4端口状态分别反转15次、30次、45次、60次、75次、90次、105次、120次。故定时器T0对应的定时时间分别为50ms/15、50ms/30、50ms/45、50ms/60、50ms/75、50ms/90、50ms/105、50ms/120,即分别为:3.33ms、1.67ms、1.11ms、0.833ms、0.667ms、0.556ms、0.476ms、0.417ms。由前述定时器初值计算方法可算出各状态定时器的初值。

定时器T1的定时初值计算如下:

由于工作在方式一,时钟频率为12MHz,故定时最大值M为65536

初值 X=M—定时值/T

X=65536—50000/1=15536

即T1的初值为15536,转化为十六进制为3CB0H

各情况下,定时T0的定时初值计算如下:

当按下K0键时,定时时间为3.33ms,此时定时器初值为 X0= 65536—3330/1=62206

转化为十六进制为

0F2FEH

当按下K1键时,定时时间为1.67ms,此时定时器初值为 X1=65536—1670/1=63866 转化为十六进制为0F97AH

当按下K2键时,定时时间为1.11ms,此时定时器初值为 X2=65536-1110/1=64426 转化为十六进制为0FBAAH

当按下键K3时,定时时间为0.833ms,此时定时器初值为 X3=65536-833/1=64703 转化为十六进制为0FCBFH

当按下键K4时,定时时间为0.667ms,此时定时器初值为 X4=65536-667/1=64869

23

转化为十六进制为0FD65H

当按下键K5时,定时时间为0.556ms,此时定时器初值为 X5=65536-556/1=64980 转化为十六进制为0FDD4H

当按下键K6时,定时时间为0.476ms,此时定时器初值为 X6=65536-476/1=65060 转化为十六进制数为0FE24H

当按下键K7时,定时时间为0.417ms,此时定时器初值为 X7=65536-417/1=65119 转化为十六进制数为0FE5FH

为了便于理解源程序,各种情况下定时器的初值采用K0H—K7H和K0L—K7L来表示,分别存入定时器的高8位和低8位。采用赋值伪指令EQU,格式如下:

K0H EQU #0F2H K0L EQU #0FEH

通常,在一个汇编语言源程序的开始,响应中断前,都要设置一条ORG伪指令来指定该程序在存储器中存放的起始位置。若省略ORG指令,则该程序从0000H单元开始存放。在一个源程序中,可以多次使用ORG伪指令,以规定不同程序段或数据段存放的起始地址,但要求16位地址由小到大顺序排列,不允许空间重叠。汇编语言结束应加一个END指令,表示汇编程序已经结束,处于END之后的程序,汇编程序不予处理。

对于初始化程序,就是对P1口、P3口赋初值,此时遥控器没有工作,两个8位端口均赋以0FFH;设置定时器0和定时器1方式控制寄存器TMOD,由于T0和T1均工作在方式1,功能选择为定时器,故TMOD的值为11H,然后开放所有中断,将单片机设置为空闲工作方式,即将电源控制寄存器的值设为01H,初始化完毕,程序即进入键盘扫描程序。

4.1.3键盘扫描程序

键盘扫描程序就是扫描键盘看是否有键按下,如有键按下,判断出是哪一个键,当确定按下某一个键后,即执行红外发射程序。扫描的方法是判断P1口各位的电平,无按键按下时,各位均为高电平,当某一个按键按下以后,该位即为低电平。

24

通常,按键所用开关为机械弹性开关,均利用了机械触点的合、断。一个电压通过机械触点的断开、闭合过程,由于机械触点的弹性作用,一个按键开关在闭和时不会马上稳定接通,在断开时也不会一下断开。因而,在闭合和断开的瞬间均伴随着一连串的抖动,抖动时间的长短由按键的机械特性决定,一般为5—10ms。按键电路的消抖措施通常有硬件和软件两种方法[24]。硬件消除键盘抖动措施主要就是外加双稳态电路或者滤波电路的方法。本电路采用的是软件消抖的方法,就是调用一个延时子程序,延时时间设定为6ms,延时子程序如下:

DL1: MOV R4,#0CH DL2: MOV R5,#0FFH DL3: DJNZ R5,DL3 DJNZ R4,DL2 RET

延时时间的计算就是根据执行指令所需时间的总和,0CH、0FFH分别为十进制数的12和255,因此这个程序所耗用的时间为

1+(255*2+2+1)*12+1+2=6160个机器周期

由于晶振采用的是12MHz,所以1机器周期=1us,执行程序的总时间为6.16ms,与6ms存在0.16ms的误差,不过这不影响程序的执行。

4.1.4 中断服务程序 1.外部中断1

外部中断1在程序中的作用就是唤醒单片机,使单片机从空闲方式回到工作状态。当有键按下时,通过与门触发外部中断1中断,IDL被硬件硬件清零,单片机结束低功耗空闲节电方式[25]。

外部中断是由外部原因引起的,共有两个中断源,即外部中断0和外部中断1,相应的中断请求信号输入端是INT0和INT1。

外部中断请求有两种触发方式,即电平触发方式和脉冲出发方式。 定时器/计数器控制寄存器TCON的低四位用于控制外部中断请求和触发方式,有关的位表示如下:

IE:外部中断请求标志位,当CPU采样到INT端出现有效的中断请求时,次位由硬件置1,表示外部事件请求中断,中断响应完成后,再由硬件自动清零。

IT:外部中断请求触发方式控制位。当IT=1,选择脉冲触发方式(也称边沿触发方式)负跳变有效;当IT=0,选择电平出发方式,低电平有效。

中断的允许或禁止是由片内的中断允许寄存器IE控制的。IE的格式如

25

下: EA — ET2 ES ET1 EX1 ET0 EX0 IE的每一位都可以由软件置1或清零。且1——中断允许,0——中断屏蔽 EA:中断允许总控制位。EA=0时,表示CPU禁止所有中断,即所有的中断请求被屏蔽;EA=1时,表示CPU开放中断,但每个中断源的中断请求是允许还是禁止,要由各自的允许位控制。

EX:外部中断允许控制位 ET:外部中断允许控制位。 ET:定时/计数器的中断允许控制位 ES:串行中断允许控制位。

中断的各控制位在初始化程序中定义,在初始化程序中应当开外部中断1和总中断,触发方式选择为脉冲触发方式,后负跳变有效。中断程序如下: INT1: CLR IE1

ANL PCON,#00H RETI

2. 定时器中断服务程序

定时器T1作为发射时间控制器,当确认某一按键被按下后,T1开始记时,记时时间为50ms,记时时间到,定时器1产生中断,红外脉冲停止发射。同时将红外脉冲发射端口P3.4电平置成无效电平

定时器T0作为红外线发射频率控制器,当定时时间到产生中断,将P3.4端口反转一次,同时对定时器重新装初值,定时时间与前相同,T0重新定时,时间到又将P3.4端口反转一次,如此往复,直到定时器1记时时间到,关闭定时器1和定时器0重新回到主程序。此处采用了一个位标志bz,在宏指令中将其定义为位寻址区的07H,当定时器在执行中断服务程序时,将该位定义为高点平1,使主程序不断的查询该位,当该位为1时,等待中断程序的执行,此时向外发射红外脉冲;当该位为0时,中断结束,主程序继续向下执行

[26]

。其流程图如下:

开始

确认是否有键按下 Y N 26

启动定时器T1,定时时间为50ms

Y

Y N

N

图4.2 定时器中断服务子程序流程图

4.2 遥控接收器程序设计

4.2.1 程序总体结构

遥控接收器是根据接收到的不同频率的红外光信号,由CPU转化为对应的控制功能对控制电路实施控制。当接收电路接收到第一个红外线脉冲时,中断INT1被触发,启动定时器1和计数器0。定时器1作为计数时间控制器,计数器0作为在规定记数时间内所记得的红外脉冲数。接收信号端接至P3.3和P3.4口,该两引脚为复用引脚,P3.3引脚复用为外部中断1请求输入端;P3.4引脚复用为定时器/计数器0计数脉冲输入端。当收到第一个红外脉冲时,INT1被触发,T0和T1开始工作,每收到一个红外脉冲,计数器0记数值加一,当定时器定时时间到,产生中断,保存计数器0的计数值。由于定时时间为50ms,故各种不同状态对应的红外脉冲数大约为15、30、45、60、75、90、105、120个,然后将记数值与上述各值比较。由于存在误差,计数器0的记数值不可能严格和上述值相等,只要近似相等就行,限制的误差范围为5,即将记数值加减5得到两个数值,再判断哪一个值在这一范围之内,即可断定遥控发射器发

27

射出的红外信号的发射频率即为该值,从而可断定出遥控操作,然后由接收遥控器CPU将其转化为控制操作,对外电路实施控制功能[27]。

P3.2口与地之间的开关SW为控制方式选择开关,当开关闭合,即P3.2=0,单片机输出为上锁控制方式,此状态下遥控器不能对控制电路实施控制功能;当开关断开,即P3.2=1,为单路控制方式,此状态下遥控器能对外电路实施控制功能。当外部中断1响应,自动检测该位的电平,若为0自动跳出,重新等待红外脉冲,在检测该位电平,如此循环,不对外电路发控制命令;若为1则继续执行下面的程序[28]。

开始 调初始化过程 接收到第一个 红外脉冲,

INT1 被触发 SW=1 28

Y

N

Y

图4.3 遥控接收主程序流程图 4.2.2 初始化程序

在初始化程序中,首先将P1口和P3口初始化,初值均为0FFH。外部中断1触发方式设置为电平触发方式,即将IT1位清零。在就是设置T0和T1的工作方式,由于T0为计数方式、T1为定时方式,故将将方式控制寄存器TMOD赋值为15H。为了便于编写和理解程序,将各种不同状态对应的红外脉冲数分别赋给X0到X7。

由于在整个过程中要多次用到计数器0的计数值,所以应将该值予以保护,我们在这种情况下,通常的做法就是将该值放入堆栈,每次要使用时,在从堆

29

栈里面调出。

堆栈是微机的一种重要的存储器,它的一个重要特点是后进先出的方式工作,用于暂存信息的存储单元。他通常应用于在调用子程序前、响应中断前保护现场,将断点的有关信息送入堆栈,待子程序和中断服务程序执行完毕,再将断点信息弹出,恢复现场。

最后就是开所有中断,等待INT1引脚被触发,进入中断服务子程序。 4.2.3 计数值比较程序

将计时器计数值与欲置的计数值比较是定时器1中断服务程序的一部分。首先将两数直接比较,看是否相等,若相等,则直接返回;若不相等,则比较它们的大小,然后将较大数减去较小数,看差值是否在5以内。若在5以内,则可判定红外发射器发射的红外光的发射频率为该欲置数;若在5以外,则将该计数值与下一个欲置数比较,知道找到一个数与它的差值在5以内,如果找不到该值,则该操作无效。 4.2.4 定时器1中断服务程序

在遥控接收程序中,主要就是定时器1中断服务程序,它包括数值扫描与比较程序,以及对控制电路实施控制操作程序。其流程图如下:

开始

T1定时

时间到

关计数器T0保存该计数值 30

计数值与X1比较差值在5以内 图4.4 定时器1中断服务子程序流程图

5 总结与展望

经过两个多月的思考与查阅,终于完成了这篇毕业论文。通过多方面的审查,可以认为在硬件与软件的设计上是没有问题的,由于实验室条件的限制,不能亲自做实验仿真,不过经过我理论上的分析,应该是可以达成我的目标的。

但是由于时间的仓促,本系统还存在很多的不足,虽然本系统有8路遥控开关控制,但是在实际遥控控制系统中,一般要求的控制操作不止8路,这就

31

要求系统进行功能的扩展,由于单片机引脚的限制,如果要扩展功能,就必须应用组合键来操作,不过也可以应用多片单片机来实现,但如果这样设计必将使遥控器的体积增大。而现代电器正朝小型化发展,所以一般不采用这种方法。而是在改变电路硬件结构的基础上重新编程,这样整个设计过程就变的相对复杂,由于时间和水平的限制,在此不考虑这种情况。

另外一点不足就是精度的问题,由于红外管的灵敏度问题啊,以及系统在布线焊接上,器件与器件之间的相互干扰,多少存在一定的影响,所以这种遥控操作准确性还存在不足。

最后一点就是单片机电源的稳定性,复位电路过于简单,使得系统的抗干扰能力不强,使系统不能稳定的运行。

以上三点不足之处是我能想到的,系统肯定还存在其他方面的不足,还望老师能够赐教,指正出不足来。

计算机的发展可以说是日新月异,它给我们的生活、工作带来了翻天覆地的变化,现代生产生活计算机无处不在。随着近代单片机的发展,人民的生活工作环境更是向着智能化、自动化方向发展,单片机主要的特点就是功能强大并且成本相当的低,所以很多领域都应用了单片机。我想,随着我们的努力,单片机应用技术会越来越成熟,它的功能会越来越强大。

致 谢

经过两个多月来的艰苦努力,我的毕业论文终于取得了阶段性的进展,虽然我们未能最后将此系统做为产品,但我们自觉已在这两个多月之内尽了自己的最大的努力,去钻研这个系统,从用PROTEL布线布板到收集大量的有关本系统的文献资料再到周期非常长的软件调试,我们接触了真正设计一个电子产品的全部过程,学到了很多实实在在的学问。

经历不知从何入手的无助,不知程序为什么出错的苦恼,初现光芒的窃喜还有最后攻破难关的欢呼。现在回头想想,真的是很有意义

32

非常感谢指导老师谭忠祥老师的指导,谭老师总是在百忙之中抽出时间来对我们悉心指导,为我们提出了各方面的指导意见,为我们提供各方面的重要资料,是我们的工作进程中的中坚力量。

非常感谢杨永超老师一直对我们工作的支持和提出的宝贵意见

非常感谢黄勇老师一直不辞辛苦的为我们准备好优越的实验设备,工具,电子元件和实验环境。

非常感谢本班的诸多兄弟姐妹,他们与我们一起分担这段岁月的酸甜苦辣,他们真的为我们付出了很多,他们严谨的治学态度,刻苦勤奋的作风,坚持锻炼身体的意志一直都是我们学习的榜样。

我们要感谢以上这些伴随我们共同度过这些艰苦岁月的幕后英雄,他们一直在我们背后默默的付出,给予我们强大的物质与精神的支持,在我们最需要帮助的时候,他们会及时的出现在我们面前。再次感谢他们

参考文献

[1] 梅丽凤,王艳秋,张军等.单片机原理及接口技术.北京:清华大学出版社,

北京交通大学出版社,2004. 2~4

[2] 李湘闽,唐宏,葛继.学习型红外遥控器.红外.2004,11(8):33~36 [3] 李洪明.漫谈红外遥控.电子世界.2000年01期总第244期.53

[4] 戴峻峰,付丽辉. 多功能红外线遥控器的设计. 传感器世界.2002,8(12):16~

18

[5] 严后选,孙健国等. 无线红外智能遥控器的设计. 测控技术.2003.22(3):54~

56

[6] 李光飞,楼然苗,胡佳文等. 单片机课程设计实例指导.北京:北京航空航

天出版社.2004,168~170

33

[7] 苏长赞.红外线与超声波遥控.北京:人民邮电出版社.1995.64~68

[8] 杨恢先,王子菡,杨穗,陶霞. 一种基于单片机的红外遥控软件解码方法. 自

动化与仪器仪表.2004,22(2):16~18

[9] 张爱全.红外线遥控的基本原理和应用范围.山西电子技术.2003 6(12).40-41

[10] J; HS,Mcnivens,Ikebukurok.Acta,1999,3:116

[11]苏凯 刘国庆 陈国平 . MCS-51系列单片机原理与设计.冶金工业出版

社.2003.23~26

[12] 曲泊涛.微型计算机系统原理 接口与组装.大连:大连理工大学出版社

1999,42~44

[13] 杨光友,朱宏辉等.单片微型计算机原理及接口技术.北京:中国水利水电出版社.2002,188~194

[14] Angelo Martinez,Eddie Tunstel,Mo Jamshidi.Fuzzy logic based

collisionfor a mobile robot.Robotica Colume,1994,12,521-527 [15] 胡汉才.单片机原理及系统设计.北京:清华大学出版社.2002,254~258 [16] 于明鑫,冯文涛.MCS-51系列单片机存储容量扩展的软硬件设计.辽宁师专

学报,2004.10,24:23~35

[17] 杨绪东,刘行景,杨兴瑶.实用电子电路精选.化学工业出版社. 2001,4. 129~130

[18]Johan Borenstein,YonamKoren.Histogramic in-motion mapping for

mobile robot obstacle avoidance.IEEE Transactions on Robotics and Automation,2000,7:4

[19] 蔡睿研. 红外线遥控集成电路PT2243原理及应用. 国外电子元器件.

2003.18(9):52~54

[20] 曾哲昭. 红外遥控电子密码锁应用研究. 国外电子元器件. 2002.11(2):7~8 [21] 裴彦纯,陈志超.基于单片机系统的红外遥控器应用.现代电子技术.2004,4(17),15~17

[22] Chang P.ShhJS.Anal Chim.Acta,1998,360(1-3):61 [23]Doica

Adrian

,Schreier,Franz

,Hess,Michael,Iterayively

regularized

Gauss-newton method for atmospheric remote sensing[J],computer physics communications,2002,148,214~226

[24] 刘光斌,刘冬,姚志成. 单片机系统实用抗干扰技术. 北京:人民邮电出

版社 2004, 135~138

[25] 丁元杰. 单片机原理及应用. 北京:机械工业出版社. 2003, 71~75 [26] Carl j.Weisman.The Essential Guide to RF and Wireless.Publishing

House of Electronics Industry.2003,6. 227~229

[27] 鲍晓宇,黄松岭,刘国权.PLD器件在红外遥控解码中的应用.电子技术应

34

用.2000, 8(19).67~69

[28] 童厚健,吴青,孙光明. 一种红外遥控系统的硬件和软件实现. 自动化技术

与应用. 2004,6(14).14~18

红外发射电路图:

1

35 附录

红外接收电路图:

36

附录2

红外遥控发射源程序清单:

K0 BIT P1.0 K1 BIT P1.1 K2 BIT P1.2 K3 BIT P1.3 K4 BIT P1.4 K5 BIT P1.5 K6 BIT P1.6 K7 BIT P1.7 BZ BIT 07H K0H EQU #0FEH K1H EQU #0F9H K1L EQU #7AH K2H EQU #0FBH K2L EQU #0AAH K3H EQU #0FCH K3L EQU #0BFH K4H EQU #0FDH K4L EQU #65H K5H EQU #0FDH K5L EQU #0D4L K6H EQU #0FEH K6L EQU #24H K7H EQU #0FEH K7L EQU #5FH ORG 0000H AJMP START ORG 000BH AJMP INTT0 ORG 0013H AJMP INT1 ORG 001BH

37

本文来源:https://www.bwwdw.com/article/4bcg.html

Top