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

上传人:灯火****19 文档编号:28631669 上传时间:2021-09-04 格式:DOC 页数:47 大小:4.58MB
返回 下载 相关 举报
单片机红外控制发射器设计【非常详细】_第1页
第1页 / 共47页
单片机红外控制发射器设计【非常详细】_第2页
第2页 / 共47页
单片机红外控制发射器设计【非常详细】_第3页
第3页 / 共47页
点击查看更多>>
资源描述
单片机红外控制发射器设计【详细】摘 要 随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的遥控系统开始进入了人们的生活。传统的遥控器采用专用的遥控编码及解码集成电路,这种方法虽然制作简单、容易,但由于功能键数及功能受到特定的限制,只实用于某一专用电器产品的应用,应用范围受到限制。而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随便设定等优点。本设计主要应用了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 peoples 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.Its advantage is that the hardware circuit is simple, the software is with perfect function, have certain use and reference valueKeywords: Microprocessor, Infrared remote control,Interrupt,Timing,Counting, Frequency44 目 录摘 要IAbstractII1 绪 论11.1 单片机的产生与发展11.2红外通信技术概述31.2.1红外概述31.2.2 选择红外遥控的原因31.2.3红外的简单发射接收原理32.1 设计目的与原理42.2单片机红外遥控发射器设计原理42.3 单片机红外遥控接收器设计原理53系统硬件电路设计63.1有关AT89C2051单片机的介绍63.1.1简介63.1.2引脚介绍63.1.3 AT89C2051单片机的主要组成部分83.2定时器/计数器93.2.1主要特性93.2.2定时/计数器0和1的控制和状态寄存器93.2.3 T0和T1的4种工作方式113.3独立式按键结构123.4低功耗控制电路123.4.1低功耗的实现方法123.4.2 掉电保护和低功耗的设计133.5 CPU时钟电路153.6 复位电路163.6.1复位状态163.6.2 复位电路173.7 红外发射电路的设计173.8 红外接收电路的设计193.9 完整的系统电路设计图194 系统软件设计204.1遥控发射器程序设计204.1.1程序总体结构204.1.2 伪指令和初始化程序224.1.3键盘扫描程序244.1.4 中断服务程序244.2 遥控接收器程序设计264.2.1 程序总体结构264.2.2 初始化程序294.2.3 计数值比较程序294.2.4 定时器1中断服务程序295 总结与展望31致 谢32参考文献33附录135附录236 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位定时/计数器,片内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) 测控系统。用单片机可以构成各种工业控制系统、自适应控制系统和数据采集系统。例如,温度、湿度的自动控制、锅炉燃烧的自动控制、电镀生产线的自动控制和包装生产线的自动控制等。(4) 计算机网络及通信技术。高档单片机集成有通信接口,位单片机在计算机网络与通信设备中的应用提供了良好的条件。例如,用MCS-51系列单片机控制的串行自动呼叫应答系统、列车无线通信系统、和无线遥控系统等(5) 家用电器。由于单片机的价格低廉、体积小、逻辑判断的控制功能强,且内部具有定时/计数器,所以广泛应用于家用设备。总之,单片机将使人类的生活更加方便舒适、丰富多彩。11.2红外通信技术概述1.2.1红外概述 从光学的角度而言,红外是频率低于红色光的不可见光,的无线光谱的整个频率中占有很小一个频率段,波长为0.75100微秒之间,其中0.753微秒之间的红外光称为近红外,330微秒之间的红外光称为中红外,30100微秒之间的称为远红外。红外光就其性质而言很简单,与普通光线的频率特性没有很大的区别,但是,由于任何有热量的物体均有能量产生,所以红外的利用非常广泛,而且不可取代,能否检测红外、能测到多少红外或者红外检测的技术是否可以应用于任何自然的或想象的场合是红外应用技术的关键。2 当今红外技术的一个重要分支是红外通信技术的应用,这个应用的发展非常迅速,尤其是红外通信应用于计算机设备中,近几年的发展已经表现出其非常成熟的特性3。1.2.2 选择红外遥控的原因无线遥控方式可分为无线电波式、声控式、超声波式和红外线式。由于无线电式容易对其它电视机和无线电通讯设备造成干扰,而且,系统本身的抗干扰性能也很差,误动作多,所以未能大量使用。超声波式频带较窄,易受噪声干扰,系统抗干扰能力差以及声控式识别正确率低,难度大而未能大量采用。红外遥控方式是以红外线作为载体来传送控制信息的,同时随着电子技术的发展,单片机的出现,催生了数字编码方式的红外遥控系统的快速发展。另外,红外遥控具有很多的优点,例如红外线发射装置采用红外发光二极管,遥控发射器易于小型化且价格低廉;采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,增加遥控功能,提高信号传输的抗干扰性,减少误动作,而且功率消耗低;红外线不会向室外泄露,不会产生信号串扰;反应速度快、传输效率高、工作稳定可靠等。所以现在很多无线遥控方式都采用红外遥控方式。41.2.3红外的简单发射接收原理 在发射端,输入信号经放大后送入红外发射管发射,在接收端,接收管收到红外信号后,由放大器放大处理后还原成信号,这就是红外的简单发射接收原理。52 系统设计方案论证2.1 设计目的与原理目前市场上一般采用的遥控编码及解码集成电路。此方案具有制作简单、容易等特点,但由于功能键数及功能受到特定的限制,只适合用某一专用电器产品的应用,应用范围受到限制。而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随意设定等优点6。本单片机遥控应用系统采用红外线发射频率的不同,来识别不同的遥控功能。当我们按下某一个按键的时候,由单片机识别出该按键后,由CPU向接有红外发射管的端口发射一定频率的脉冲,该脉冲与38KHz左右的载波脉冲进行调制,然后将已调制的脉冲进行缓冲放大,激励红外发光二极管将电能转化为光能,使得红外发光二极管发射出一定频率的红外线7,当接收控制系统接收到该红外光后,由单片机内定时/计数器得到该红外光的频率,然后将该频率送往CPU,由CPU对该信号进行反编码,识别出控制信号,从而对控制电路实施控制功能。完成整个遥控功能82.2单片机红外遥控发射器设计原理单片机红外遥控发射器主要有单片机、行列式键盘、低功耗空闲方式控制电路、红外管发射电路以及单片机的一些电源、复位、震荡子电路组成9。单片机不工作时一直处于低功耗状态,采用了空闲节电工作方式。当遥控器的某一按键被按下以后,外部中断1产生中断,唤醒单片机进入工作状态,查询键盘按下的是哪一个按键,当确认按键后,控制软件启动定时器T0、T1,T1作为发射时间控制器,T0作为红外线发射频率控制器,T0定时溢出时中断程序使红外管接口电平反转一次,写入定时器的初值不同,在输出端口就得到不同的发射频率。T1定时溢出时中断程序关闭关闭T0定时器,停止红外线发射10。其设计原理框图如下。AT89C2051单片机 +5V电源行列式键盘低功耗空闲方式 控制电路红外管发射电路 图2.1 单片机遥控发射器设计原理图2.3 单片机红外遥控接收器设计原理 单片机红外遥控接收器主要有单片机、红外遥控接收电路、状态指示电路、控制电路以及单片机的一些外围电路组成。AT89C2051单片机红外接收电路状态指示电路控制电路+5V电源利用单片机中的T0作为红外脉冲计数器,T1作为计数时间控制器。当电路中红外接收管接收到第一个红外脉冲时,外部中断1被触发,启动计数器T0和定时器T1。定时溢出,中断程序关闭计数器T0,读入计数值并进行判断,确定操作对象(遥控按键)对其进行反转操作,控制电路对所控制的负载进行开或关11。还可对接收电路实行上锁功能,对控制电路上锁后,遥控器不能对控制电路实施遥控功能8。其设计原理方框图如下:图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.0P1.7:完整的双向串行通信接口,P1.0与P1.1还有第二种功能 P3.0P3.7:除P3.6外,双向I/O口,除P3.7外,均有第二功能,第二功能与MCS-51系列单片机基本相同XTAL1:震荡器反向放大器内部工作时钟输入端XTAL2:震荡器反向放大器的输出端RST:复位引脚,震荡器工作时,该引脚上两个机器周期的高电平复位10图3.1 AT89C2051引脚图主要功能特性兼容MCS51指令系统15个双向I/O口两个16位可编成定时/计数器时钟频率024MHz两个外部中断源可直接驱动LED低功耗睡眠功能可编程URRL通道2KB可反复擦写Flash ROM6个中断源2.76.0V宽工作电压范围128*8位内部RAM两个串行中断两级加密位内置一个模拟比较放大器软件设置睡眠和唤醒功能3.1.3 AT89C2051单片机的主要组成部分1CPU 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个单元具有特殊存储功能。0000H0002H:是所有执行程序的入口地址,2051单片机复位后,CPU总是从0000H单元开始执行程序。0003H:外部中断0入口。000BH:定时/计数器0溢出中断入口。0013H:外部中断1入口。001BH:定时/计数器1溢出中断入口。0023H:串行口中断入口。使用时,通常在这些入口地址处存放一条绝对跳转指令,使程序跳转到用户安排的中断程序起始地址,或者从0000H起始地址跳转到用户设计的初始程序上。B数据存储器片内数据存储器的8位地址共可寻址256B单元,2051单片机将其分为两个区:00HFFH的128B单元为片内RAM区,可以读、写任何数据;80HFFH的高128B单元为专用寄存器区。在低128B的内部RAM中,前32个单元(地址为00H1FH)为通用工作寄存器区,共分为四组(寄存器0组、1组、2组、3组),每组8个工作寄存器由R0R7组成,共占32个 单元。选用哪一组由程序状态字PSW中的RS1、RS0这两位的设置决定,若程序并不需要四个4组工作寄存器,那么剩下的工作寄存器可作一般的存储器来使用。CPU在复位时自动选中0组20H2FH的16个单元为位寻址区,每个单元8位,共128位。其位寻址范围为00H7FH。位寻址区的每一位都可当作软件触发器,由程序直接进行处理。程序中通常把各种程序状态标志、位控变量设在位寻址区。同样,位寻址区的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,可有程序选择作为定时器用或作为计数器用,定时时间或记数值也可由程序设定。(2) 每一个定时器/计数器具有4种工作方式,可用程序选择。(3) 任一定时器/计数器在定时时间到或记数值到时,可有程序安排产生中断请求信号或不产生中断请求信号15。3.2.2定时/计数器0和1的控制和状态寄存器特殊功能寄存器TMOD和TCON分别是定时/计数器0和1的控制和状态寄存器,用于控制和确定各定时/计数器的功能和工作模式。1模式控制寄存器TMODTMOD用于控制T0和T1的工作方式和4种工作模式。其中低4位用于控制T0,高4位用于控制T1。其格式如下:GATE C/T非 M1 M0GATEC/T非 M1 M0GATE位:门控位。当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 方式0:13位定时器/计数器 01方式1:16位定时器/计数器 10方式2:具有自动重装初值的8位定时器/计数器 11方式3:定时/计数器0分为两个8位定时/计数器,定时/计数器1在此方式无实用意义2 控制寄存器TCONTCON用来控制T0和T1的启、停,并给出相应的控制状态,高4位用于控制定时器0、1的运行;低4位用于控制外部中断。格式如下:TF1 TR1 TF0 TR0 IE1IT1IE0 IT0TF1:定时器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记数值定时方式时 (MX)T=定时值所以 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 独立式按键电路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处于“饿电流”供电状态保存信息,一直维持到VCC恢复为止。80C51的掉电保护过程则不同。当电压检测电路检测到电源电压降低时,也触发外部中断,在中断服务子程序中,除了要将外部RAM中的有用数据保存以外,还要将特殊功能寄存器的有用内容保护起来,然后对电源控制寄存器PCON进行设置。PCON寄存器的各位定义如下。D7 D6 D5 D4 D3 D2 D1 D0SMODGF1GF0PDIDL其中,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位来实现的。用软件将IDL位置1,系统进入空闲工作方式。这时,送往CPU的时钟被封锁,CPU停止工作,但中断控制电路、定时/计数器和串行接口继续工作,CPU内部状态如堆栈指针SP、程序计数器PC、程序状态寄存器PSW、累加器ACC及其他寄存器的状态被完全保留下来。在空闲工作方式下,80C51消耗的电流由正常的24mA将为3mA。单片机退出空闲状态有如下两种方法。第一种是中断退出。由于空闲方式下,中断系统还在工作,所以任何中断的响应都可以使IDL位由硬件清零,而退出空闲方式下,单片机就进入中断服务程序。第二种是硬件复位退出。复位时,各个专用寄存器都恢复默认状态,电源控制寄存器PCON也不例外,复位使IDL清零,退出空闲工作方式。MCS51的掉电保护也是一种节电工作方式,它和空闲工作方式一起构成了低功耗工作方式。一旦用户检测到掉电发生,在VCC下降之前写一个字节到PCON,使PD=1,单片机进入掉电方式。在这种方式下,片内震荡器被封锁,一切功能都停止,只有片内RAM00H7FH单元的内容被保留。在掉电方式下,Vcc可降至2V,使片内RAM处于50微安左右的“饿电流”供电状态,以最小的耗电保存信息,Vcc恢复正常之前,不可进行复位;当Vcc正常后,硬件复位10ms即能使单片机退出掉电方式17。在该电路中,退出空闲工作方式采用中断的方法。当遥控键盘上的人任一个按键按下以后,与门输出即为低电平,触发INT1引脚,外部中断1响应,使IDL位清零,退出空闲工作方式,恢复正常状态。其硬件电路如下。 图3.4 低功耗控制电路3.5 CPU时钟电路 时钟电路用于产生单片机工作所需要的时钟信号。时钟信号可以有两种方式产生:内部时钟方式和外部时钟方式。1 内部时钟方式 2051单片机有一个高增益反向放大器,用于构成振荡器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟发生器,见下图,外接晶振时,C1、C2值通常选择为30pF左右;外接陶瓷振荡器时,C1、C2约为47pF。C1、C2对频率有微调作用,震荡频率范围是1.212MHz。为了减少寄生电容,更好的保证振荡器稳定可靠的工作,谐振器和电容应尽可能安装的与单片机芯片靠近。内部时钟发生器实质上是一个二分频的触发器,其输出信号是单片机工作所需的时钟信号。2 外部时钟方式 外部时钟方式是采用外部振荡器,外部振荡信号由XTAL2端接入后直接送至内部时钟发生器。输入端XTAL1应接地,由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上拉电阻。 一般情况下,单片机时钟输入均采用内部时钟方式,外接一个震荡电路,本系统采用内部时钟方式,晶振采用12MHz,其电路如下。 图3.5 AT89C2051时钟电路3.6 复位电路3.6.1复位状态 计算机在启动时,系统进入复位状态。在复位状态,CPU和系统都处于一个确定的初始状态或成为原始状态,在这种状态下,所有的专用寄存器都赋予默认值。其复位状态见下表。 表3.1 复位状态各寄存器初值专用寄存器 复位状态 专用寄存器 复位状态PCACC BPSW SPDPTR P0P3 IPIE 0000H00H00H00H07H 0000HFFH XXX0 0000B 0XX0 0000B TMOD TCONTH0TL0TH1TL1 SCON SBUF PCON00H00H00H00H00H00H00H XXXX XXXXB 0XXX 0000B3.6.2 复位电路 单片机复位电路包括片内、片外两部分,片外复位电路通过引脚加到内部复位电路上,内部复位电路在每个机器周期S5P2对片外信号采样一次,当RST引脚上出现连续两个机器周期的高电平时,单片机就完成一次复位。外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的,AT89C2051通常采用上电自动复位和按键手动复位两种方式。 上电复位电路在通电瞬间,在RC电路充电过程中,RST端出现正脉冲,从而使单片机复位。按键手动复位又分为按键电平复位和按键脉冲复位,按键电平复位是将复位端通过电阻与Vcc相连,按键脉冲复位是利用RC微分电路产生正脉冲来达到复位的目的。 本系统设计时采用的是上电复位方式,其电路原理图如下。 3 图3.6 复位电路3.7 红外发射电路的设计 根据红外发射管本身的物理特性,必须要有载波信号与即将发射的信号相“与”,然后将相“与”后的信号送发射管,才能进行红外信号的发射传送,而在频率为38KHz的载波信号下,发射管的性能最好,发射距离最远,所以在硬件设计上,本设计采用38KHz的晶振产生载波信号,与发射信号进行逻辑“与”运算后,通过三极管的功率驱动到红外发光二极管上18。 红外发送电路由4001MOS或非门38KHz振荡器,单片机发送控制电路和红外发送管驱动输出电路组成,当单片机P3.4口输出为“0”时,发射管不发光,当单片机P3.4口输出为“1”时,红外发送管发出38KHz调制红外线19。具体的发射波形与电路如下 图3.7 调制过程中的波形 图3.8 红外发射电路3.8 红外接收电路的设计红外接收电路专门采用集成电路RPM6938,RPM6938有三个引脚,一个接电源一个接地,另外一个接信号端,它集光电转换,解调和放大于一体20。当收到38KHz调制红外线时,RPM6938输出为“0”,平时输出为“1”。信号脚接到P3.3和P3.4脚上,当RPM6938收到第一个红外脉冲时,触发INT1产生中断,使单片机退出低功耗状态,进入工作状态,同时使记数器0和定时器1开始工作 21 图3.9 红外接收电路3.9 完整的系统电路设计图 完整的电路图见附录1 4 系统软件设计4.1遥控发射器程序设计4.1.1程序总体结构此系统是一个红外遥控发射器,设计目的就是根据按键的不同,发射出不同的红外信号。传统的遥控器都是采用遥控发射专用集成芯片,例如飞利浦公司生产专用芯片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中断服务程序组成。主程序流程图如下: START调初始化程序进入低功耗节电方式外部中断1中断CPU退出低功耗方式T0时间到P3.4翻转一次T1时间到关T0、T1 P3.4置1调延时程序K1键是否按下K2键是否按下K1键是否松开启动定时器T1定时50ms启动定时器T0定时3.33msK3键是否按下调延时程序 NNN YYY . N Y N Y NY 图4.1 遥控发射主程序流程图当K2至K7键按下时,执行的程序类似于按下K1键所执行的程序。 4.1.2 伪指令和初始化程序 在初始化程序前,需要定义一些相关的伪指令,伪指令不能命令CPU执行某中操作,也没有对应的机器代码,它的作用仅用来给汇编程序提供某中信息。伪指令是汇编程序能够识别的汇编命令。控制信号的输入口P1.0P1.7分别用按键开关键号K0K7来定义;各频率红外信号对应的定时器T0的初值分别用K0H、K0LK7H、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=6553650000/1=15536即T1的初值为15536,转化为十六进制为3CB0H各情况下,定时T0的定时初值计算如下:当按下K0键时,定时时间为3.33ms,此时定时器初值为 X0= 655363330/1=62206 转化为十六进制为0F2FEH当按下K1键时,定时时间为1.67ms,此时定时器初值为 X1=655361670/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 转化为十六进制为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 为了便于理解源程序,各种情况下定时器的初值采用K0HK7H和K0LK7L来表示,分别存入定时器的高8位和低8位。采用赋值伪指令EQU,格式如下:K0H EQU #0F2HK0L 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口各位的电平,无按键按下时,各位均为高电平,当某一个按键按下以后,该位即为低电平。通常,按键所用开关为机械弹性开关,均利用了机械触点的合、断。一个电压通过机械触点的断开、闭合过程,由于机械触点的弹性作用,一个按键开关在闭和时不会马上稳定接通,在断开时也不会一下断开。因而,在闭合和断开的瞬间均伴随着一连串的抖动,抖动时间的长短由按键的机械特性决定,一般为510ms。按键电路的消抖措施通常有硬件和软件两种方法24。硬件消除键盘抖动措施主要就是外加双稳态电路或者滤波电路的方法。本电路采用的是软件消抖的方法,就是调用一个延时子程序,延时时间设定为6ms,延时子程序如下: DL1: MOV R4,#0CH DL2: MOV R5,#0FFH DL3: DJNZ R5,DL3 DJNZ R4,DL2 RET延时时间的计算就是根据执行指令所需时间的总和,0CH、0FFH分别为十进制数的12和255,因此这个程序所耗用的时间为
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 其他分类 > 其它学术


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!