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

下载本文档

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

文档简介

单片机课程设计项目系列基于单片机的红外遥控控制系统一设计要求(一)基本功能1有效遥控距离大于10米。2遥控控制的路数在5路以上。3采用数码管显示当前工作的控制电路。(二)扩展功能1通过遥控器可以任意设置用户密码(116位长度),只有合法用户才能有修改电路控制的功能,同时系统掉电后能自动记忆和存储密码在系统中。2报警和加锁功能密码的输入时间超过12秒或者连续3次输入失败,声音报警同时锁定系统,不让再次输入密码。此时只有使用管理员密码方能对系统解锁。二计划完成时间三周1第一周完成软件和硬件的整体设计,同时按要求上交设计报告一份。2第二周完成软件的具体设计和硬件的制作。3第三周完成软件和硬件的联合调试。目录摘要I1绪论111红外通信技术概述3111红外概述3112选择红外遥控的原因3113红外的简单发射接收原理321设计目的与原理422单片机红外遥控发射器设计原理423单片机红外遥控接收器设计原理53系统硬件电路设计631有关AT89C51单片机的介绍6311简介6312引脚介绍6313AT89C51单片机的主要组成部分832定时器/计数器9321主要特性9322定时/计数器0和1的控制和状态寄存器9323T0和T1的4种工作方式1133独立式按键结构1234红外发射电路的设计1735红外接收电路的设计1936完整的系统电路设计图194系统软件设计2041遥控发射器程序设计21411程序总体结构20413键盘扫描程序24414中断服务程序2442遥控接收器程序设计26421程序总体结构26423计数值比较程序29424定时器1中断服务程序29参考文献33附录135附录236摘要本设计主要应用了AT89C51单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识,应用红外光的优点。遥控操作的不同,遥控发射器通过对红外光发射频率的控制来区别不同的操作。遥控接收器通过对红外光接收频率的识别,判断出控制操作,来完成整个红外遥控发射、接收过程。其优点硬件电路简单,软件功能完善,性价比较高等特点,具有一定的使用和参考价值。关键字单片机,红外遥控,中断,定时,计数,频率1绪论11单片机的产生与发展为适应社会发展的需要,微型计算机不断的更新换代,新产品层出不穷。在微型计算机的大家族中,几年来单片微型计算机异军突起,发展极为迅速。单片微型计算机(SINGCHIPMICROCOMPUTER)简称单片机。它是在一块芯片上集成中央微处理器(CENTRALPROCESSINGUNIT,CPU)、随机存取存储器(RANDOMACCESSMEMORY,RAM)、只读存储器(READONLYMEMORY,ROM)、定时/计数及I/O(INPUT/OUTPUT)接口电路等部件,构成一个完整的微型计算机。12红外通信技术概述121红外概述从光学的角度而言,红外是频率低于红色光的不可见光,的无线光谱的整个频率中占有很小一个频率段,波长为075100微秒之间,其中0753微秒之间的红外光称为近红外,330微秒之间的红外光称为中红外,30100微秒之间的称为远红外。红外光就其性质而言很简单,与普通光线的频率特性没有很大的区别,但是,由于任何有热量的物体均有能量产生,所以红外的利用非常广泛,而且不可取代,能否检测红外、能测到多少红外或者红外检测的技术是否可以应用于任何自然的或想象的场合是红外应用技术的关键。2当今红外技术的一个重要分支是红外通信技术的应用,这个应用的发展非常迅速,尤其是红外通信应用于计算机设备中,近几年的发展已经表现出其非常成熟的特性3。122选择红外遥控的原因无线遥控方式可分为无线电波式、声控式、超声波式和红外线式。由于无线电式容易对其它电视机和无线电通讯设备造成干扰,而且,系统本身的抗干扰性能也很差,误动作多,所以未能大量使用。超声波式频带较窄,易受噪声干扰,系统抗干扰能力差以及声控式识别正确率低,难度大而未能大量采用。红外遥控方式是以红外线作为载体来传送控制信息的,同时随着电子技术的发展,单片机的出现,催生了数字编码方式的红外遥控系统的快速发展。另外,红外遥控具有很多的优点,例如红外线发射装置采用红外发光二极管,遥控发射器易于小型化且价格低廉;采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,增加遥控功能,提高信号传输的抗干扰性,减少误动作,而且功率消耗低;红外线不会向室外泄露,不会产生信号串扰;反应速度快、传输效率高、工作稳定可靠等。所以现在很多无线遥控方式都采用红外遥控方式。4123红外的简单发射接收原理在发射端,输入信号经放大后送入红外发射管发射,在接收端,接收管收到红外信号后,由放大器放大处理后还原成信号,这就是红外的简单发射接收原理。52系统设计方案论证21设计目的与原理目前市场上一般采用的遥控编码及解码集成电路。此方案具有制作简单、容易等特点,但由于功能键数及功能受到特定的限制,只适合用某一专用电器产品的应用,应用范围受到限制。而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随意设定等优点6。本单片机遥控应用系统采用红外线发射频率的不同,来识别不同的遥控功能。当我们按下某一个按键的时候,由单片机识别出该按键后,由CPU向接有红外发射管的端口发射一定频率的脉冲,该脉冲与38KHZ左右的载波脉冲进行调制,然后将已调制的脉冲进行缓冲放大,激励红外发光二极管将电能转化为光能,使得红外发光二极管发射出一定频率的红外线7,当接收控制系统接收到该红外光后,由单片机内定时/计数器得到该红外光的频率,然后将该频率送往CPU,由CPU对该信号进行反编码,识别出控制信号,从而对控制电路实施控制功能。完成整个遥控功能822单片机红外遥控发射器设计原理单片机红外遥控发射器主要有单片机、行列式键盘、低功耗空闲方式控制电路、红外管发射电路以及单片机的一些电源、复位、震荡子电路组成9。单片机不工作时一直处于低功耗状态,采用了空闲节电工作方式。当遥控器的某一按键被按下以后,外部中断1产生中断,唤醒单片机进入工作状态,查询键盘按下的是哪一个按键,当确认按键后,控制软件启动定时器T0、T1,T1作为发射时间控制器,T0作为红外线发射频率控制器,T0定时溢出时中断程序使红外管接口电平反转一次,写入定时器的初值不同,在输出端口就得到不同的发射频率。T1定时溢出时中断程序关闭关闭T0定时器,停止红外线发射10。其设计原理框图如下。23单片机红外遥控接收器设计原理单片机红外遥控接收器主要有单片机、红外遥控接收电路、状态指示电路、控制电路以及单片机的一些外围电路组成。利用单片机中的T0作为红外脉冲计数器,T1作为计数时间控制器。当电路中红外接收管接收到第一个红外脉冲时,外部中断1被触发,启动计数器T0和定时器T1。定时溢出,中断程序关闭计数器T0,读入计数值并进行判断,确定操作对象(遥控按键)对其进行反转操作,控制电路对所控制的负载进行开或关11。还可对接收电路实行上锁功能,对控制电路上锁后,遥控器不能对控制电路实施遥控功能8。其设计原理方框图如下3系统硬件电路设计31有关AT89C51单片机的介绍311简介AT89C51是一个低电压,高性能CMOS8位单片机。片内含有2KB可反复擦写的只读存储器(EPROM)和128B的随机存取存储器(RAM),器件采用ATMEL的高密度、非易失性存储技术生产,兼容标准MCS51指令系统,片内置通用8位中央处理器和FLASH存储器,功能强大。AT89C2051只有20个双向输入/输出(I/O)端口,其中P1是完整的8位双向I/O口,两个外中断,2个16位可编程定时/计数器,两个全双向串行通信口,一个模拟比较放大器此外,AT89C2051的时钟频率可为零,即具备可用软件设置的睡眠省电功能,系统的唤醒方式有RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入工作状态,省电模式中,片内RAM将被冻结,时钟停止震荡,所有功能停止工作,直至系统被硬件系统复位方可继续工作12。312引脚介绍VCC接5V电源正端GND接5V电源地端P10P17完整的双向串行通信接口,P10与P11还有第二种功能P30P37除P36外,双向I/O口,除P37外,均有第二功能,第二功能与MCS51系列单片机基本相同XTAL1震荡器反向放大器内部工作时钟输入端XTAL2震荡器反向放大器的输出端RST复位引脚,震荡器工作时,该引脚上两个机器周期的高电平复位10图31AT89C51引脚图主要功能特性兼容MCS51指令系统15个双向I/O口两个16位可编成定时/计数器时钟频率024MHZ两个外部中断源可直接驱动LED低功耗睡眠功能可编程URRL通道2KB可反复擦写FLASHROM6个中断源2760V宽工作电压范围1288位内部RAM两个串行中断两级加密位内置一个模拟比较放大器软件设置睡眠和唤醒功能313AT89C51单片机的主要组成部分1CPUCPU是单片机的核心部分,他的作用是读入和分析每条指令,根据每条指令的功能要求,控制各个部件执行相应的操作。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。32定时器/计数器321主要特性(1)AT89C51单片机有两个可编程的定时器/计数器定时器/计数器0与定时器/计数器1,可有程序选择作为定时器用或作为计数器用,定时时间或记数值也可由程序设定。(2)每一个定时器/计数器具有4种工作方式,可用程序选择。(3)任一定时器/计数器在定时时间到或记数值到时,可有程序安排产生中断请求信号或不产生中断请求信号15。322定时/计数器0和1的控制和状态寄存器特殊功能寄存器TMOD和TCON分别是定时/计数器0和1的控制和状态寄存器,用于控制和确定各定时/计数器的功能和工作模式。1模式控制寄存器TMODTMOD用于控制T0和T1的工作方式和4种工作模式。其中低4位用于控制T0,高4位用于控制T1。其格式如下GATEC/T非M1M0GATEC/T非M1M0GATE位门控位。当GATE1时,只有INTO非或INT1非引脚为高电平且TR0或TR1置1时,相应的定时/计数器才被选通工作;当GATE0,则只要TR0和TR1置1,定时/计数器就被选通,而不管INT0非或INT1非的电平是高还是低C/T非位计数/定时功能选择位。C/T非0,设置为定时器方式,计数器的输入是内部时钟脉冲,其周期等于机器周期。C/T非1,设置为计数器方式,计数器的输入来自T0(P34)或T1(P35)端的外部脉冲。M1、M0位工作模式选择位。2位可形成4中编码,对应4种工作模式,见下表M1M0功能描述00方式013位定时器/计数器01方式116位定时器/计数器10方式2具有自动重装初值的8位定时器/计数器11方式3定时/计数器0分为两个8位定时/计数器,定时/计数器1在此方式无实用意义2控制寄存器TCONTCON用来控制T0和T1的启、停,并给出相应的控制状态,高4位用于控制定时器0、1的运行;低4位用于控制外部中断。格式如下TF1TR1TF0TR0IE1IT1IE0IT0TF1定时器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),则置入的初值可以这样来计算。计数方式XM记数值定时方式时(MX)T定时值所以XM定时值/T式中,T为计数周期,是单片机的机器周期13。323T0和T1的4种工作方式方式013位定时/计数器,TL1(或TL0)的低5位和TH1(或TH0)的8位构成,TL中的高3位弃之未用。当TL的低5位记数溢出时,向TH进位,而全部13位计数器溢出时使计数器回零,并使溢出标志TF置1,向CPU发出中断请求。方式116位定时/计数器,其逻辑电路和工作情况与方式0几乎完全相同,唯一的差别就是方式1中TL的高3位也参与了计数。方式2把TL配置成一个可以自动重装载的8位定时/计数器方式3仅对T0有意义,将16位定时/计数器分成两个互相独立的8位定时/计数器TL和TH,33独立式按键结构独立式按键是指直接用I/O线构成的单个按键电路,每个独立式按键占有一根I/O口线,每根I/O口线上的按键的工作状态不会影响其他I/O口线的工作状态,其结构简单,但I/O口线浪费较大16。独立式按键配置灵活,软件结构简单,上拉电阻保证了按键断开时,I/O口线有确定的高电平,其电路原理图如下图32独立式按键电路35CPU时钟电路时钟电路用于产生单片机工作所需要的时钟信号。时钟信号可以有两种方式产生内部时钟方式和外部时钟方式。1内部时钟方式2051单片机有一个高增益反向放大器,用于构成振荡器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟发生器,见下图,外接晶振时,C1、C2值通常选择为30PF左右;外接陶瓷振荡器时,C1、C2约为47PF。C1、C2对频率有微调作用,震荡频率范围是1212MHZ。为了减少寄生电容,更好的保证振荡器稳定可靠的工作,谐振器和电容应尽可能安装的与单片机芯片靠近。内部时钟发生器实质上是一个二分频的触发器,其输出信号是单片机工作所需的时钟信号。2外部时钟方式外部时钟方式是采用外部振荡器,外部振荡信号由XTAL2端接入后直接送至内部时钟发生器。输入端XTAL1应接地,由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上拉电阻。一般情况下,单片机时钟输入均采用内部时钟方式,外接一个震荡电路,本系统采用内部时钟方式,晶振采用12MHZ,其电路如下。图35AT89C2051时钟电路36复位电路361复位状态计算机在启动时,系统进入复位状态。在复位状态,CPU和系统都处于一个确定的初始状态或成为原始状态,在这种状态下,所有的专用寄存器都赋予默认值。其复位状态见下表。表31复位状态各寄存器初值寄存器复位状态专用寄存器复位状态PCACCBPSWSPDPTRP0P3IPIE0000H00H00H00H07H0000HFFHXXX00000B0XX00000BTMODTCONTH0TL0TH1TL1SCONSBUFPCON00H00H00H00H00H00H00HXXXXXXXXB0XXX0000B362复位电路单片机复位电路包括片内、片外两部分,片外复位电路通过引脚加到内部复位电路上,内部复位电路在每个机器周期S5P2对片外信号采样一次,当RST引脚上出现连续两个机器周期的高电平时,单片机就完成一次复位。外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的,AT89C2051通常采用上电自动复位和按键手动复位两种方式。上电复位电路在通电瞬间,在RC电路充电过程中,RST端出现正脉冲,从而使单片机复位。按键手动复位又分为按键电平复位和按键脉冲复位,按键电平复位是将复位端通过电阻与VCC相连,按键脉冲复位是利用RC微分电路产生正脉冲来达到复位的目的。本系统设计时采用的是上电复位方式,其电路原理图如下。3图36复位电路37红外发射电路的设计根据红外发射管本身的物理特性,必须要有载波信号与即将发射的信号相“与”,然后将相“与”后的信号送发射管,才能进行红外信号的发射传送,而在频率为38KHZ的载波信号下,发射管的性能最好,发射距离最远,所以在硬件设计上,本设计采用38KHZ的晶振产生载波信号,与发射信号进行逻辑“与”运算后,通过三极管的功率驱动到红外发光二极管上18。红外发送电路由4001MOS或非门38KHZ振荡器,单片机发送控制电路和红外发送管驱动输出电路组成,当单片机P34口输出为“0”时,发射管不发光,当单片机P34口输出为“1”时,红外发送管发出38KHZ调制红外线19。具体的发射波形与电路如下图37调制过程中的波形38红外接收电路的设计红外接收电路专门采用集成电路RPM6938,RPM6938有三个引脚,一个接电源一个接地,另外一个接信号端,它集光电转换,解调和放大于一体20。当收到38KHZ调制红外线时,RPM6938输出为“0”,平时输出为“1”。信号脚接到P33和P34脚上,当RPM6938收到第一个红外脉冲时,触发INT1产生中断,使单片机退出低功耗状态,进入工作状态,同时使记数器0和定时器1开始工作21图39红外接收电路39完整的系统电路设计图完整的电路图见附录一,附录二4系统软件设计41遥控发射器程序设计411程序总体结构本系统采用单片机制作,采用编程的方法,由于编程具有灵活性,故应用范围较广,操作码可随意设定22。本系统采用的是按红外发射频率的不同,来识别不同的按键。操作键设定为8个,K0至K7,分别接至单片机的P10至P17口。对应的红外发射频率分别为300HZ、600HZ、900HZ、1200HZ、1500HZ、1800HZ、2100HZ、2400HZ。发射时间确定为一个定值,由定时器1来定时,时间为100MS,当100MS时间到定时器1发生中断,停止计时,红外光也停止发射。由定时/计数器0来控制发射频率,T0作为定时器,当T0定时时间到,中断程序使P34断口的电平反转一次,然后T0重新工作定时值与前相同,时间到中断程序使P34端口翻转一次,如此往复,红外信号就按一定的时间间隔发射出去。通过设定T0的定时时间来控制红外信号的发射频率23。平时遥控器工作在空闲方式下,当有键按下时,由外部中断1产生中断,使CPU回到工作状态,待执行完操作后又回到低功耗才状态。主程序主要由初始化程序、键盘扫描程序,定时器0中断服务程序、定时器1中断服务程序,外部中断1中断服务程序组成。主程序流程图如下当K2至K7键按下时,执行的程序类似于按下K1键所执行的程序。412伪指令和初始化程序在初始化程序前,需要定义一些相关的伪指令,伪指令不能命令CPU执行某中操作,也没有对应的机器代码,它的作用仅用来给汇编程序提供某中信息。伪指令是汇编程序能够识别的汇编命令。控制信号的输入口P10P17分别用按键开关键号K0K7来定义;各频率红外信号对应的定时器T0的初值分别用K0H、K0LK7H、K7L来定义,这样做不影响整个程序的执行,但便NNNYYYNYNYNYSTART调初始化程序进入低功耗节电方式外部中断1中断CPU退出低功耗方式T0时间到P34翻转一次T1时间到关T0、T1P34置1调延时程序K1键是否按下K2键是否按下K1键是否松开启动定时器T1定时50MS启动定时器T0定时333MSK3键是否按下调延时程序图41遥控发射主程序流程图当K2至K7键按下时,执行的程序类似于按下K1键所执行的程序。412伪指令和初始化程序在初始化程序前,需要定义一些相关的伪指令,伪指令不能命令CPU执行某中操作,也没有对应的机器代码,它的作用仅用来给汇编程序提供某中信息。伪指令是汇编程序能够识别的汇编命令。控制信号的输入口P10P17分别用按键开关键号K0K7来定义;各频率红外信号对应的定时器T0的初值分别用K0H、K0LK7H、K7L来定义,这样做不影响整个程序的执行,但便于阅读和理解程序。定义格式如下K0BITP10K7BITP17由于P10至P17对应的红外发射频率分别为300HZ、600HZ、900HZ、1200HZ、1500HZ、1800HZ、2100HZ、2400HZ,而T1的定时时间是50MS故在这七种状态下面,P34端口状态分别反转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,即分别为333MS、167MS、111MS、0833MS、0667MS、0556MS、0476MS、0417MS。由前述定时器初值计算方法可算出各状态定时器的初值。定时器T1的定时初值计算如下由于工作在方式一,时钟频率为12MHZ,故定时最大值M为65536初值XM定时值/TX6553650000/115536即T1的初值为15536,转化为十六进制为3CB0H各情况下,定时T0的定时初值计算如下当按下K0键时,定时时间为333MS,此时定时器初值为X0655363330/162206转化为十六进制为0F2FEH当按下K1键时,定时时间为167MS,此时定时器初值为X1655361670/163866转化为十六进制为0F97AH当按下K2键时,定时时间为111MS,此时定时器初值为X2655361110/164426转化为十六进制为0FBAAH当按下键K3时,定时时间为0833MS,此时定时器初值为X365536833/164703转化为十六进制为0FCBFH当按下键K4时,定时时间为0667MS,此时定时器初值为X465536667/164869转化为十六进制为0FD65H当按下键K5时,定时时间为0556MS,此时定时器初值为X565536556/164980转化为十六进制为0FDD4H当按下键K6时,定时时间为0476MS,此时定时器初值为X665536476/165060转化为十六进制数为0FE24H当按下键K7时,定时时间为0417MS,此时定时器初值为X765536417/165119转化为十六进制数为0FE5FH为了便于理解源程序,各种情况下定时器的初值采用K0HK7H和K0LK7L来表示,分别存入定时器的高8位和低8位。采用赋值伪指令EQU,格式如下K0HEQU0F2HK0LEQU0FEH通常,在一个汇编语言源程序的开始,响应中断前,都要设置一条ORG伪指令来指定该程序在存储器中存放的起始位置。若省略ORG指令,则该程序从0000H单元开始存放。在一个源程序中,可以多次使用ORG伪指令,以规定不同程序段或数据段存放的起始地址,但要求16位地址由小到大顺序排列,不允许空间重叠。汇编语言结束应加一个END指令,表示汇编程序已经结束,处于END之后的程序,汇编程序不予处理。对于初始化程序,就是对P1口、P3口赋初值,此时遥控器没有工作,两个8位端口均赋以0FFH;设置定时器0和定时器1方式控制寄存器TMOD,由于T0和T1均工作在方式1,功能选择为定时器,故TMOD的值为11H,然后开放所有中断,将单片机设置为空闲工作方式,即将电源控制寄存器的值设为01H,初始化完毕,程序即进入键盘扫描程序。413键盘扫描程序键盘扫描程序就是扫描键盘看是否有键按下,如有键按下,判断出是哪一个键,当确定按下某一个键后,即执行红外发射程序。扫描的方法是判断P1口各位的电平,无按键按下时,各位均为高电平,当某一个按键按下以后,该位即为低电平。通常,按键所用开关为机械弹性开关,均利用了机械触点的合、断。一个电压通过机械触点的断开、闭合过程,由于机械触点的弹性作用,一个按键开关在闭和时不会马上稳定接通,在断开时也不会一下断开。因而,在闭合和断开的瞬间均伴随着一连串的抖动,抖动时间的长短由按键的机械特性决定,一般为510MS。按键电路的消抖措施通常有硬件和软件两种方法24。硬件消除键盘抖动措施主要就是外加双稳态电路或者滤波电路的方法。本电路采用的是软件消抖的方法,就是调用一个延时子程序,延时时间设定为6MS,延时子程序如下DL1MOVR4,0CHDL2MOVR5,0FFHDL3DJNZR5,DL3DJNZR4,DL2RET延时时间的计算就是根据执行指令所需时间的总和,0CH、0FFH分别为十进制数的12和255,因此这个程序所耗用的时间为1(255221)12126160个机器周期由于晶振采用的是12MHZ,所以1机器周期1US,执行程序的总时间为616MS,与6MS存在016MS的误差,不过这不影响程序的执行。414中断服务程序1外部中断1外部中断1在程序中的作用就是唤醒单片机,使单片机从空闲方式回到工作状态。当有键按下时,通过与门触发外部中断1中断,IDL被硬件硬件清零,单片机结束低功耗空闲节电方式25。外部中断是由外部原因引起的,共有两个中断源,即外部中断0和外部中断1,相应的中断请求信号输入端是INT0和INT1。外部中断请求有两种触发方式,即电平触发方式和脉冲出发方式。定时器/计数器控制寄存器TCON的低四位用于控制外部中断请求和触发方式,有关的位表示如下IE外部中断请求标志位,当CPU采样到INT端出现有效的中断请求时,次位由硬件置1,表示外部事件请求中断,中断响应完成后,再由硬件自动清零。IT外部中断请求触发方式控制位。当IT1,选择脉冲触发方式(也称边沿触发方式)负跳变有效;当IT0,选择电平出发方式,低电平有效。中断的允许或禁止是由片内的中断允许寄存器IE控制的。IE的格式如下EAET2ESET1EX1ET0EX0IE的每一位都可以由软件置1或清零。且1中断允许,0中断屏蔽EA中断允许总控制位。EA0时,表示CPU禁止所有中断,即所有的中断请求被屏蔽;EA1时,表示CPU开放中断,但每个中断源的中断请求是允许还是禁止,要由各自的允许位控制。EX外部中断允许控制位ET外部中断允许控制位。ET定时/计数器的中断允许控制位ES串行中断允许控制位。中断的各控制位在初始化程序中定义,在初始化程序中应当开外部中断1和总中断,触发方式选择为脉冲触发方式,后负跳变有效。中断程序如下INT1CLRIE1ANLPCON,00HRETI2定时器中断服务程序定时器T1作为发射时间控制器,当确认某一按键被按下后,T1开始记时,记时时间为50MS,记时时间到,定时器1产生中断,红外脉冲停止发射。同时将红外脉冲发射端口P34电平置成无效电平定时器T0作为红外线发射频率控制器,当定时时间到产生中断,将P34端口反转一次,同时对定时器重新装初值,定时时间与前相同,T0重新定时,时间到又将P34端口反转一次,如此往复,直到定时器1记时时间到,关闭定时器1和定时器0重新回到主程序。此处采用了一个位标志BZ,在宏指令中将其定义为位寻址区的07H,当定时器在执行中断服务程序时,将该位定义为高点平1,使主程序不断的查询该位,当该位为1时,等待中断程序的执行,此时向外发射红外脉冲;当该位为0时,中断结束,主程序继续向下执行26。其流程图如下42遥控接收器程序设计421程序总体结构遥控接收器是根据接收到的不同频率的红外光信号,由CPU转化为对应的控制功能对控制电路实施控制。当接收电路接收到第一个红外线脉冲时,中断INT1被触发,启动定时器1和计数器0。定时器1作为计数时间控制器,计数器0作为在规定记数时间内所记得的红外脉冲数。接收信号端接至P33和P34口,该两引脚为复用引脚,P33引脚复用为外部中断1请求输入端;P34引脚复用为定时器/计数器0计数脉冲输入端。当收到第一个红外脉冲时,INT1被触发,T0和T1开始工作,每收到一个红外脉冲,计数器0记数值加一,当定时器定时时间到,产生中断,保存计数器0的计数值。由于定时时间为50MS,故各种不同状态对应的红外脉冲数大约为15、30、45、60、75、90、105、120个,然后将记数值与上述各值比较。由于存在误差,计数器0的记数值不可能严格和上述值相等,只要近似相等就行,限制的误差范围为5,即将记数值加减5得到两个数值,再判断哪一个值在这一范围之内,即可断定遥控发射器发射出的红外信号的发射频率即为该值,从而可断定出遥控操作,然后由接收遥控器CPU将其转化为控制操作,对外电路实施控制功能27。P32口与地之间的开关SW为控制方式选择开关,当开关闭合,即P320,单片机输出为上锁控制方式,此状态下遥控器不能对控制电路实施控制功能;当开关断开,即P321,为单路控制方式,此状态下遥控器能对外电路实施控制功能。当外部中断1响应,自动检测该位的电平,若为0自动跳出,重新等待红外脉冲,在检测该位电平,如此循环,不对外电路发控制命令;若为1则继续执行下面的程序28。422初始化程序在初始化程序中,首先将P1口和P3口初始化,初值均为0FFH。外部中断1触发方式设置为电平触发方式,即将IT1位清零。在就是设置T0和T1的工作方式,由于T0为计数方式、T1为定时方式,故将将方式控制寄存器TMOD赋值为15H。为了便于编写和理解程序,将各种不同状态对应的红外脉冲数分别赋给X0到X7。由于在整个过程中要多次用到计数器0的计数值,所以应将该值予以保护,我们在这种情况下,通常的做法就是将该值放入堆栈,每次要使用时,在从堆栈里面调出。堆栈是微机的一种重要的存储器,它的一个重要特点是后进先出的方式工作,用于暂存信息的存储单元。他通常应用于在调用子程序前、响应中断前保护现场,将断点的有关信息送入堆栈,待子程序和中断服务程序执行完毕,再将断点信息弹出,恢复现场。最后就是开所有中断,等待INT1引脚被触发,进入中断服务子程序。423计数值比较程序将计时器计数值与欲置的计数值比较是定时器1中断服务程序的一部分。首先将两数直接比较,看是否相等,若相等,则直接返回;若不相等,则比较它们的大小,然后将较大数减去较小数,看差值是否在5以内。若在5以内,则可判定红外发射器发射的红外光的发射频率为该欲置数;若在5以外,则将该计数值与下一个欲置数比较,知道找到一个数与它的差值在5以内,如果找不到该值,则该操作无效。424定时器1中断服务程序在遥控接收程序中,主要就是定时器1中断服务程序,它包括数值扫描与比较程序,以及对控制电路实施控制操作程序。其流程图如下YNYNNY启动定时器T0T0定时时间到P34翻转一次,T0重新装初值,T1定时时间到确认是否有键按下开始启动定时器T1,定时时间为50MS返主图42定时器中断服务子程序流程图YNY调初始化过程接收到第一个红外脉冲,INT1被触发启动计数器T0和定时器T1定时器T1定时时间到开始定时器T1中断,计数器T0停止计数查询各预定记数值是否在T0记数值加减5的范围内查到该值将对应P1口位的电平翻转返回SW1图43计数值比较程序开始T1定时时间到关计数器T0保存该计数值计数值与X0比较差值在5以内P10位电平翻转一次,使该位对控制电路实现开关控制计数值与X1比较差值在5以内P11位电平翻转一次,使该位对控制电路实现开关控制计数值与X2比较差值在5以内中断返回图44定时器1中断服务子程序流程图发射程序ORG00LJMPMAINORG000BHORG001BHLJMPZHONG1ORG0030HMAINMOVTMOD,21HSETBEASETBET1MOVTH1,0E6HMOVTL1,0E6HSETBTR1Z1JBP00,LOOPLCALLD0LOOPJBP01,LOOP1LCALLD1LOOP1JBP02,LOOP2LCALLD2LOOP2JBP03,LOOP3LCALLD3LOOP3JBP04,LOOP4LCALLD4LOOP4JBP05,LOOP5LCALLD5LOOP5JBP06,LOOP6LCALLD6LOOP6JBP07,Z1LCALLD7SJMPMAIND0JBP00,V3MOVTH0,0ECHMOVTL0,0A8HSETBET0SETBEASETBTR0JNBTF0,CPLP21SJMPD0V3RETD1JBP01,V4MOVTH0,0F6HMOVTL0,53HSETBET0SETBEASETBTR0JNBTF0,CPLP21SJMPD1V4RETD2JBP02,V5MOVTH0,0F8HMOVTL0,43HSETBET0SETBEASETBTR0JNBTF0,CPLP21SJMPD2V5RETD3JBP03,V6MOVTH0,0FAHMOVTL0,0CHSETBET0SETBEASETBTR0JNBTF0,CPLP21SJMPD3V6RETD4JBP04,V7MOVTH0,0FBHMOVTL0,02AHSETBET0SETBEASETBTR0JNBTF0,CPLP21SJMPD4V7RETD5JBP05,V8MOVTH0,0FCHMOVTL0,53HSETBET0SETBEASETBTR0JNBTF0,CPLP21SJMPD5V8RETD6JBP06,V9MOVTH0,0FDHMOVTL0,6CHSETBET0SETBEASETBTR0JNBTF0,CPLP21SJMPD6V9RETD7JBP07,V10MOVTH0,0FEHMOVTL0,50HSETBET0SETBEASETBTR0JNBTF0,CPLP21SJMPD7V10RETZHONG1CPLP20RETIEND接收源程序清单ORG0000HLJMPMAINORG0030HMAINMOVP1,0FFHMAIN1SETBEASETBEX0MOVTMOD,09HMOVTH0,00HMOVTL0,00HJBP34,SETBTR0JNBP34,JBP34,CLRTR0MOVR0,TH0D0CJNER0,13H,D1MOVP1,0FEHMOVP0,0F9HD1CJNER0,09H,D2MOVP1,0FDHMOVP0,0A4HD2CJNER0,07H,D3MOVP1,0FBHMOVP0,0B0HD3CJNER0,06H,D4MOVP1,0F7HMOVP0,99HD4CJNER0,04H,D5MOVP1,0EFHMOVP0,92HD5CJNER0,03H,D6MOVP1,0DFHMOVP0,82HD6CJNER0,02H,D7MOVP1,0BFHMOVP0,0F8HD7CJNER0,01H,D8MOVP1,7FHMOVP0,80HD8AJMPMAIN1END参考文献1梅丽凤,王艳秋,张军等单片机原理及接口技术北京清华大学出版社,北京交通大学出版社,2004242李湘闽,唐宏,葛继学习型红外遥控器红外2004,11833363李洪明漫谈红外遥控电子世界2000年01期总第244期534戴峻峰,付丽辉多功能红外线遥控器的设计传感器世界2002,81216185严后选,孙健国等无线红外智能遥控器的设计测控技术200322354566李光飞,楼然苗,胡佳文等单片机课程设计实例指导北京北京航空航天出版社2004,1681707苏长赞红外线与超声波遥控北京人民邮电出版社199564688杨恢先,王子菡,杨穗,陶霞一种基于单片机的红外遥控软件解码方法自动化与仪器仪表2004,22216189张爱全红外线遥控的基本原理和应用范围山西电子技术2003612404110JHS,MCNIVENS,IKEBUKUROKACTA,1999,311611苏凯刘国

温馨提示

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

评论

0/150

提交评论