1、. .目 次1 绪论11.1 无线电源遥控系统的来源与发展11.2 无线电源遥控系统的优点11.3 无线遥控系统的主要原理与各个部分作用21.4本课题的主要内容和要求31.5 本课题的目的和意义32 元器件的选择42.1 单片机的选择及简介42.2 AT89C51管脚说明42.3 显示器的选择与简介72.4 锁存器的选择与说明93 系统的硬件设计113.1 硬件设计软件选择及其介绍113.2 硬件组成及工作原理113.3 系统各个模块电路设计124 系统的软件设计154.1 软件设计所用的语言及说明154.2 开发工具及设计平台154.3 软件设计方案164.4 发射部分流程图与程序174.5
2、 接收部分流程图与程序205 系统的调试与仿真255.1 仿真步骤255.2 Proteus仿真255.3 测试结果275.4 错误分析28结论29致30参考文献31附录A32. .word. .1 绪论如今电子技术取得蓬勃发展,各种新型的大规模遥控集成电路不断出现,由此遥控技术也产生了日新月异的发展。遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化程度大大提高。11 无线电源遥控系统的来源与发展自马可尼成功地做了大西洋两岸无线电信号的传送实验后,许多人(业余无线电活动家)和商业通信在使用长波和中波的同时开始各自随意地使用电磁波频率,信号混乱的问题随之产
3、生。于是1912年制定了法律。美国的业余无线电活动家只能使用当时还完全不能进行远距离传送的、频率为1.5MHz以上的电磁波频率。第二次世界大战前,日本国的业余无线电受到了严格的限制,前辈们虽然受着今天的时代所无法想象的约束,却仍然坚持着业余无线电活动。第二次世界大战爆发的同时业余无线电活动被禁止了。1941年由于公布了“电波法”,日本的业余无线电按照国际准则颁发执照。第二年,实行了无线电操作者的国家考试,首次产生了100多人的一级业余无线电技士和二级业余无线电技士(当时只有两个级别的资格)。电台的执照直到1952年才颁发。当时只有一级业余无线电技士和二级业余无线电技士,但到了1958年就分成了
4、一级、二级、电信、4个级别。从1959年开始。JARL(日本业余无线电联盟)开始了业余电台的管理制度1965年又开始了业余无线电培训讲习制度,逐步形成和确立了现行的制度1。随着电子技术的飞速发展,新型大规模遥控集成电路的不断出现,使遥控技术有了日新月异的发展,遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化程度大大提高。近年来,遥控技术在工业生产、家用电器、安全保卫以及人们的日常生活中使用越来越广泛。而红外线遥控技术近年来得到了迅猛发展,尤其在家电领域如彩电、DVD、空调等,也在其它电子领域得到广泛应用。随着人们生活水平的提高,电器在家庭中已经十分普及,
5、人们对产品的追求是使用更方便、更具智能化,红外遥控技术正是一个重点的发展方向2。12 无线电源遥控系统的优点在电子技术日益发展的今天,电源的控制从以前单一的有线开关控制方式,逐步. .word. .转变到有线和无线等多种控制结合的方式。尤其在多用户集中的场合,如学生宿舍、智能小区、学校机房和实验室。在这些场合,若采用有线开关集中控制每个用户的电源开关,无疑将要消耗大量的电缆,并且提高了施工的成本。若换用无线方式控制器电源开关,在原材料和工程施工方面,讲节约一大笔开支。目前,市场上一般设备系统均采用专用的遥控编码及解码集成电路,具有制作简单等特点,但由于功能键数及功能受到特定的限制,只适合于某一
6、专用电器产品的应用,应用X围受到限制。而采用单片机进行遥控系统的应用设计,具有编程灵活多样,操作码个数可随意设定等优点3。13 无线遥控系统的主要原理与各个部分作用1.3.1 发射部分原理图以及各部分作用红外发射部分原理框图如图1.1所示。发射电路AT89C51单片机矩阵键盘图1.1 红外发射部分原理框图发射部分各模块作用:1)矩阵键盘矩阵式键盘用I/O线组成行列结构,按键设置在行列的交点上,行列式分别连接到按键开关的两端。键盘中有无按键按下是由行线送入扫描字及列线读入列线状态字来判断的,有键按下时通过查键并执行键功能程序。2)发射电路遥控器信息码由单片机的定时器中断产生信号。由P3.4口输出
7、。3)单片机单片机用于输出信号控制发射电路的工作。1.3.2 接收部分原理图以及各部分作用. .word. .红外接收部分原理框图如图1.2所示。+5V电源红外接收电路AT89C51单片机控制电路图1.2 红外接收部分原理框图接收部分各模块作用:1)+5V电源给单片机最小系统、控制电路以及接收电路提供电压。2)接收电路接收电路把接收到的状态在内部进行解码,从而实现不同的功能。3)控制电路通过发射电路的按键实现对控制电路的控制4。14 本课题的主要内容和要求本课题通过对无线遥控控制系统原理的研究,采用KeilC51软件编写代码、Proteus仿真软件绘制电路图,设计了一种可以实现远程遥控电器的系
8、统。系统主要分为红外发射、红外接收、矩阵式键盘、单片机处理、LCD显示等部分。课题要求能实现对32路电器的开关进行控制且各路电器不能互相干扰。15 本课题的目的和意义本课题的目的是通过资料查阅,了解采用单片机实现多路电器开关遥控系统的基本结构和工作原理,完成基于51的多路电器开关遥控系统的硬件电路设计,编制相应的控制软件,利用计算机仿真软件,对设计的硬件电路和软件控制程序进行仿真调试,给出满足设计要求的仿真结果。. .word. .2 元器件的选择21 单片机的选择及简介选择的是单片机AT89C51。AT89C51是一种带4k字节FLASH存储器(FPEROMFlash Programmabl
9、e and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。指令和管脚与MCS-51产品兼容,具有4K字节可编程FLASH存储器,1288位的内部RAM,两个16位定时器/计数器,5个中断源以及低功耗的闲置和掉电模式等功能。AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许R
10、AM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位5。22 AT89C51管脚说明本课题所用的单片机管脚图如图2.1所示。图2.1AT89C51引脚图VCC:供电电压。GND:接地。P0口:P0口为一个8位漏极开路双向I/O口,每个引脚可吸收8TTL门电流。当P1口管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第8位。在Flash编程时,P0口为原码输入口,Flash进. .word. .行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供
11、上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉低电平,将输出电流,这是由于内部上拉的缘故。在Flash编程和校验时,P1口作为第8位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高8位。在给出地址“1”时,它利用内部上拉优势,当对外部8位地址
12、数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在Flash编程和校验时接收高8位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉高电平,并且作为输入。作为输入,由于外部下拉位低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示。接口管脚 被选功能P3.0 RXD (串行输入口)P3.1 TXD (串行输出口)P3.2 /INT0 (外部中断0)P3.3 /INT1 (外部中断1)P3.4 T0 (计时器0外部输入)P3.5 T1 (计
13、时器1外部输入)P3.6 /WR (外部数据存储器与选通)P3.7 /RD (外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平。当89C51通电,时钟电路开始工作,在RST引脚上出现24个时钟周期以上高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部高电平,堆栈指钟写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系. .word. .统即从0000H地址开始执行程序。然而,初始复位不改变RAM (包括工作寄存器R0-R7)的状态。复位后的初始状
14、态如下表2.1所示。表2.1 复位后的初始状态特殊功能寄存器初始态特殊功能寄存器初始态ACC 00H B 00H PSW 00H SP 07H DPH 00H TH0 00H DPL 00H TL0 00H IP xxx00000B TH1 00H IE 0xx00000B TL1 00H TMOD 00H TCON 00H SCON xxxxxxxxB SBUF 00H P0-P3 11111111B PCON 0xxxxxxxB ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期
15、输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的,然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在地址上置0。此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,次引脚也用
16、于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。. .word. .振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储
17、字节被重复编程以前,该操作必须被执行6。23 显示器的选择与简介本课题中,我选择1602液晶作为本设计的显示器件。1602液晶是工业字符型液晶显示器,能够同时显示16*2即32个字符。1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。使用时直接编写软件程序按一定的时序驱动即可。它的特点是显示字迹清楚,价格相对便宜7。下面是1602液晶显示的各方面的参数,其管脚图如图2.2所示。图2.2 1602显示屏管脚图2.3.1 1602显示屏管教说明1602采用标准的16脚接口,其中
18、: 第1脚:VSS为电源地。第2脚:VDD接5V电源正极。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 . .word. .第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端。 第714脚:D0D7为8位双向数据端。 第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极8。2.3.2 基本操作时序1)读状态:输入:RS=
19、0, RW=1, E=1 。输出:D0-D7为状态字。2) 写状态:输入:RS=0, RW=0, D0-D7为指令码,E位高脉冲。输出:无。3) 读数据:输入:RS=1, RW=1, E=1。输出:D0-D7为数据。4) 写数据:输入:RS=1, RW=0, D0-D7为数据,E为高脉冲。 输出:无9。2.3.3 接口信号说明接口信号说明如表2.2所示。表2.2 接口信号说明编号符号引脚说明1VSS电源地2VDD电源正极3VL液晶显示偏压信号4RS数据/命令选择短5R/W读/写选择端6E使能信号7-14D0-D7Data I/O15BLA背光源正极16BLK背光源负极2.3.4 状态字说明状态
20、字说明如表2.3所示。. .word. .表2.3 状态字说明STA7STA6STA5STA4STA3STA2STA1STA0STA0-6当前数据地址指针的数值STA7读写操作使能1:禁止 0:允许2.3.5 指令的说明数据控制如表2.4所示。表2.4 数据控制指令码功能80H+地址码(0-27H,40H-67H)设置数据地址指针01H显示清屏:1.数据指针清02.所有显示清002H显示回车:数据指针清0显示模式控制如表2.5所示。表2.5显示模式控制指令码功能00111000设置16*2显示,5*7点阵,8位数据口显示开/关及光标设置如表2.6所示。表2.6 显示开/关及光标设置指令码功能0
21、0001DCBD=1 开显示;D=0 关显示。C=1 显示光标;C=0 不显示光标。B=1 光标闪烁;B=0 光标不闪烁。000001NSN=1 当读写一个字条款后地址指针加一,且光标加一。N=0 当读或写一个字符后地址指针减一,且光标减一。S=1 当写一个安条款,整屏显示左移(N=1)或右移(N=0),以得到光标不移动而屏幕移动的效果S=0 当写一个字符,整屏显示不移动24 锁存器的选择与说明. .word. .2.4.1 锁存器的引脚说明本课题所选择的锁存器是74HC573,其引脚如图2.3所示。图2.374HC573引脚图第1脚:OE为3态输出使能(低电平);第2脚第9脚:D0D7为数据
22、输入;第10脚:GND接地;第11脚:LE锁存使能输入;第12脚第19脚:Q0Q7为3态锁存输出;第20脚:VCC为电源电压10。2.4.2 锁存器的真值表锁存器真值表如下表2.7所示。表2.7 74HC573真值表输入输出输出使能OE锁存使能LEDQLHHHLHLLLL不变HZ2.4.3 锁存器的功能介绍器件的输入是和标准CMOS输出兼容的;加上拉电阻,他们能和LS/ALSTTL 输出兼容。当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。 输出能直接接到 CMOS,NMOS和TTL接口上。操作电压X围:2.0
23、V6.0V ;低输入电流:1.0uA CMOS;器件的高噪声抵抗特性11。. .word. .3 系统的硬件设计31 硬件设计软件选择及其介绍本课题在做硬件设计过程中运用到了软件是Proteus。Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它可以仿真、分析各种模拟电路与集成电路,软件提供了大量模拟与数字元器件及外部设备,各种虚拟仪器,特别是它具有对单片机及其外围电路组成的综合系统的交互仿真功能。它主要由ISIS和ARES两部分组成,ISIS的主要功能是原理图设计及电路原理图的交互仿
24、真,ARES主要用于印刷电路板的设计。Proteus是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。在编译方面,它也支持IAR、Keil和MPLAB等多种编译。该软件的特点:1、实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、SPI调制器、键盘和LCD系统仿真等的功能,而且还有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。2、支持主流单片机系统的仿真。目前支持的单片机主要有:6800系列、8051系列、AVR
25、系列、PIC12系列、PIC16系列、PIC18系列以及各种外围芯片。3、提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态;同时支持第三方的软件编译和调试环境,如KeilC51 uVision2等软件。4、具有强大的原理图绘制功能12。32 硬件组成及工作原理电器遥控器是以单片机作为核心控制器,主要由显示电路、电源电路、红外发射电路、红外接收电路、复位电路和按键电路等组成。电器遥控器的组成框图如图3.1所示。. .word. .红外发射电路和红外接受电路CPU复位电路电源电路显示电路按键电路图3.1 电器遥控器组成框图33 系统各个
26、模块电路设计遥控器主要由按键电路、单片机、红外接收电路和LCD显示4个模块组成。系统电路图如图3.2所示。图3.2 系统电路图3.3.1 按键电路按键电路采用的是矩阵式键盘,它比较适用于按键比较多的场合。它由行线和列线组成,按键位于行、列的交叉点上,是一个4*4的行、列结构可以构成一个有16个按键的键盘。本课题所使用的矩阵键盘与独立式按键键盘相比,要节省很多I/O口,当然键盘上的数字与符号没有意义,这些按键从左往右、从上到下分别表示32路电器的遥控开关。按键电路如图3.3所示。. .word. .图3.3 按键电路3.3.2 单片机最小系统单片机最小系统由单片机、复位电路,电源组成。P1口与P
27、2口与按键电路相连接。第14脚为遥控器的输出口,用于输出信号。第9脚为单片机的复位脚,采用的是简单的RC上电复位电路,即只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,所以可以将外部电阻去掉,而将外接电容减至10uF。上电复位的工作过程是在加电时,复位电路通过电容给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠的复位,RST端的高电平信号必须维持足够长的时间。单片机最小系统如图3.4所示。图3.4单片机最小系统. .wor
28、d. .3.3.3 显示电路显示电路主要是一块LCD显示屏,由上拉电阻供应电流,并对电路起到保护作用。它用AT89C51的P0口作为数据线,用P2.0、P2.1、P2.2分别连接到LCD的RS、RW、E。其中E是下降沿触发器的片选信号,RW是读写信号,RS是寄存器选择。仿真时,LCD显示屏显示的接通的路数。显示电路如图3.5所示。图3.5 显示电路3.3.4 接收电路接收电路由32路电器以及单片机组成,32路电器的引脚连接到接收部分单片机的P1口。锁存器的作用是所存信号,目的是使各路电器不受其他其他路电器的干扰。电器用发光二极管表示,如果某一路为接通状态,则该路的二极管为发光状态。接收电路如图
29、3.6所示。图3.6 接收电路. .word. .4 系统的软件设计41 软件设计所用的语言及说明本课题是硬件电路和软件编程相组合的设计方案,选择合适的编程语言是一个重要的环节,最常用的是汇编语言和C语言。汇编语言是指用指令助记符代替机器码的编程语言。汇编语言的程序结构简单,执行速度快,程序易于优化,编译后占用的存储空间小,是单片机应用系统开发中最常用的程序设计语言。但是汇编语言程序的可读性和可移植性都较差,并且程序的编写和调试都比较困难。而C语言既具有一般高级语言的特点,又能直接对单片机的硬件进行操作,方便程序的开发和移植。所以我选择的是C语言作为本课题的程序语言13。42 开发工具及设计平
30、台本课题在做软件编译的过程中运用到的平台是Keil uVision2。uVision2集成工具支持Keil 80C51的工具软件,包括C51编译器、宏汇编器、器/定位器和目标文件至Hex格式转换器,可完成编译、汇编、程序等操作。1)C51编译器和A51汇编器。由uVision2 IDE创建的源文件,可被C51编译器或A51汇编器处理,生成可重定位的object文件。Keil C51编译器遵从ANSIC语言标准,支持C语言的所有标准特性。另外,还增加了几个可直接支持80C51结构的特性。Keil A51宏汇编器支持80C51及其派生系列的所有指令集。2)LIB51库管理器。LIB51库管理器可从
31、由汇编器和编译器创建的目标文件建立目标库。这些库是按规定格式排列的目标模块,可在以后被使用。当器处理一个库时,仅仅使用了库中程序使用了的目标模块,而不是全部加以引用。3)BL51器/定位器。BL51器使用从库中提取出来的目标模块和由编译器、汇编器生成的目标模块,创建了一个绝对地址目标模块。绝对地址目标文件或模块包括不可重定位的代码和数据。所有代码和数据都被固定在具体的存储器单元中。4)uVision2软件调试器。uVision2软件调试器能十分理想地进行快速、可靠的程序调试。调试器包括一个高速模拟器,可使用它模拟整个80C51系统,包括片上外围器件和外部硬件。当从器件数据库选择机前时,该器件的
32、属性会被自动配置。5)uVision2硬件调试器。uVision2硬件调试器提供了几种在实际目标硬件测试程序的方法。安装MON51目标监控器到目标系统,并通过Monitor51接口下载程序;. .word. .高级GDI接口,将uVision2硬件调试器与类似于DP-51PROC单片机综合仿真实验议或TKS系列仿真器的硬件系统连接,通过uVision2的人机交互环境指挥连接的硬件完成仿真操作。6)RTX51实时操作系统。RTX51实时操作系统是针对80C51微控制器系列的一个多任务内核。RTX51实时内核简化了需要对实时事件进行反应得复杂应用的系统设计、编程和调试。这个内核完全集成在C51编译器中,使用非常简单。任务描述表和操作系统的一致性由BL51器/定位器自动进行控制14。使用独立的Keil仿真器,注意事项:a) 仿真器标配11.