红外遥控及点阵式显示器件的应用.docx

上传人:b****6 文档编号:4369619 上传时间:2022-12-01 格式:DOCX 页数:27 大小:143.98KB
下载 相关 举报
红外遥控及点阵式显示器件的应用.docx_第1页
第1页 / 共27页
红外遥控及点阵式显示器件的应用.docx_第2页
第2页 / 共27页
红外遥控及点阵式显示器件的应用.docx_第3页
第3页 / 共27页
红外遥控及点阵式显示器件的应用.docx_第4页
第4页 / 共27页
红外遥控及点阵式显示器件的应用.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

红外遥控及点阵式显示器件的应用.docx

《红外遥控及点阵式显示器件的应用.docx》由会员分享,可在线阅读,更多相关《红外遥控及点阵式显示器件的应用.docx(27页珍藏版)》请在冰豆网上搜索。

红外遥控及点阵式显示器件的应用.docx

红外遥控及点阵式显示器件的应用

1软件介绍

1.1protues仿真软件介绍

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051ARM、8086和MSP430等。

在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

Proteus软件具有其它EDA工具软件(例:

multisim)的功能。

这些功能是:

(1)原理布图

(2)PCB自动或人工布线

(3)SPICE电路仿真

Proteus软件的特点是:

(1)互动的电路仿真

用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。

(2)仿真处理器及其外围电路

可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。

还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。

配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。

Proteus软件资源丰富:

(1)Proteus可提供的仿真元器件资源:

仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。

(2)Proteus可提供的仿真仪表资源:

示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。

理论上同一种仪器可以在一个电路中随意的调用。

(3)除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。

这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。

这些都尽可能减少了仪器对测量结果的影响。

(4)Proteus可提供的调试手段Proteus提供了比较丰富的测试信号用于电路的测试。

这些测试信号包括模拟信号和数字信号。

1.2Keil软件

Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。

(1)KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

下面详细介绍KeilC51开发系统各部分功能和使用。

  

(2)C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。

开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。

然后分别由C51及C51编译器编译生成目标文件(.OBJ)。

目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。

ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

(3)优点,KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

2.主要元器件简介

2.1AT89C51简介

AT89C52单片机的内部结构与MCS-51系列单片机的构成基本相同。

CPU是由运算器和控制器所构成的。

运算器主要用来对操作数进行算术、逻辑运算和位操作的。

控制器是单片机的指挥控制部件,主要任务的识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。

它的程序存储器为8K字节可重擦写Flash闪速存储器,闪烁存储器允许在线+5V电擦除、电写入或使用编程器对其重复编程。

数据存储器比51系列的单片机相比大了许多为256字节RAM。

AT89C52单片机的指令系统和引脚功能与MCS-51的完全兼容。

图1单片机AT89C52结构框图

2.1.1AT89C52管脚说明

VCC:

电源

GND:

接地

P0口:

P0口是一个8位漏级开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0口端口写“1”时,引脚作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0具有内部上拉电阻。

在flash编程时,P0口也用来接受指令字节:

在程序效验时,输出指令字节。

程序效验时,需要外部上拉电阻。

P1口:

P1口是一个具有内部上拉电阻的8位是双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平。

对P1口写“1”时,内部上拉电阻的原因,将输出电流ILL。

此外,与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输出(P1.1/T2EX),具体

如下表所示

引脚号

功能特性

P1.0

T2(定时/计数器2外部计数脉冲输入),时钟输出

P1.1

T2EX定时/计数2捕获/重装载触发和方向控制

 

图2AT89C52外部引脚

 

表1P1.0和P1.1的第二功能

在Flash编程和校验时,P1口接收低8位地址字节。

P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲级可驱动吸收或输出电流4个TTL逻辑电平。

对P2口写“1”时,通过内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL。

在访问外部好曾许存储器或用16位地址读取外部数据存储器时,P2口送出高8位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。

在Flash编程和校验时,P2口接收低8位地址字节和一些控制信号。

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平。

对P3口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入端口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL。

P3口除了作为一般、的I/O口线外,更重要的是它的第二功能,如下表所示。

引脚号

第二功能

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(外部数据存储器读选通)

表2P3口引脚第二功能

在Flash编程和校验时,P3口也接收一些控制信号。

RST:

复位输入。

晶振工作时,RST脚持续2个机器周期以高电平将使用单片机复位。

ALE/

地址锁存器控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。

在Flash编程时,此引脚(

)也使用作编程输入脉冲。

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。

然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作无效。

这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。

否则,ALE将被微弱拉高。

这个ALE使能标志位的设置对微控制器处于外部执行模式下无效。

外部程序储存器选通信号(

)是外部程序存储器选通信号。

当AT89C52从外部程序存储器执行外部代码时,

在每个机器周期被激活两次,而在访问外部数据储存器时,

将不被激活。

访问外部程序存储器控制信号。

为使能从0000H—FFFFH的外部程序存储器读取指令,

端必须保持低电平(接地)。

为了执行内部程序指令,

应该接VCC。

在flash编程期间,

也接受12伏VPP电压。

XTAL1:

振荡器反相放大器及内部时钟发生器的输入端。

XTAL2:

振荡器反相放大器的输出端。

2.1.2存储器结构

MCS-51器件有单独的程序存储器和数据存储器。

外部程序存储器和数据存储器都可以64K寻址。

1.程序存储器

如果EA引脚接地,程序读取只从外部存储器开始。

对于89C52,如果EA接VCC,程序先从内部存储器(地址为0000H~1FFFFH)开始,接着从外部寻址,寻址范围为:

2000H~FFFFH。

2.数据存储器

AT89C52有256字节RAM。

高128字节与特殊功能寄存器重叠。

也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。

当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高字节RAM还是特殊功能寄存器空间。

直接寻址方式访问特殊功能寄存器(SFR)。

2.1.3定时器

1.定时器0和定时器1

在AT89C52中,定时器0和定时器1都是16位加法计数结构,分别由TH0(地址8CH)和TL0(地址8AH)及TH1(地址8DH)和TL1(地址8BH)两个8位计数器组成。

这4个计数器均属于专用寄存器之列。

每个定时器/计数器都有定时和计数两种功能。

2.计数功能

所谓的计数功能是指对外部事件进行计数。

外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外脉冲进行计数。

MCS-51系列的芯片有T0(P3.4)和T1(P3.5)两个信号引脚,分别就是这两个计数器的计数输入端。

外部输入的脉冲在负跳变时有效,进行计数器加1。

计数方式下,单片机在每个机器周期的S5P2拍节对外部计数脉冲进行采样。

如果前一个机器周期采样为高电平,后一个机器周期采样为低电平,即为一个有效计数脉冲。

在下一个机器周期的S3P1进行计数。

可见采样计数脉冲是在2个机器周期进行的。

鉴于此,计数脉冲的频率不能高于振荡脉冲的频率不能高于振荡脉冲频率的1/24。

3.定时功能

定时器也是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲。

也就是每个机器周期计数加1。

由于一个机器周期等于12个振荡脉冲周期,因此计数频率为振荡频率的1/12。

如果单片机采用12MHz晶体,则计数频率为1MHz。

即每微秒计数器加1。

这样不但可以根据计数值计算出定时时间,也可以反过来按定时时间的要求计算出计数器的预置值。

4.定时器2

定时器2是一个16位定时器/计数器,它既可以作定时器,又可以做事件计数器。

其工作方式由特殊寄存器T2CON中的C/T2位选择(如表2所示)。

定时器2有三种工作模式:

捕捉方式、自动重载(向上或向下计数)和波特率发生器。

如表3.3所示,工作模式由T2CON中的相关为选择。

定时器2有2个8位寄存器:

TH2和TL2。

在定时工作方式中,每个机器周期,TL2寄存器都会加1。

由于一个机器周期由12个晶振周期构成,因此,计数频率就是晶振频率的1/12。

CP/RL2

TR2

MODE

0

0

1

16位自动重载

0

1

1

16位捕捉

1

×

1

波特率发生器

×

×

0

不用

 

表3定时器2工作模式

在计数工作方式下,寄存器在相关外部输入角T2发生1至0的下降沿时增加1。

在这种方式下,每个机器周期的S5P2期间采样外部输入。

一个周期采样到高电平,而下一个周期采样到低电平,计数器加1。

在检测到跳变的这个周期的S3P1期间,新的计数值出现在寄存器中。

因为识别1—0的跳变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。

为了确保给定的电平在采样前采样到一次,电平应该至少在一个完整的机器周期内保持不变。

-

-

-

-

-

-

T2OE

DCEN

7

6

5

4

3

2

1

0

符号

功能

无定义,预留扩展

T2OE

定时器2输出允许位

DCEN

置1后,定时器2可配置向上或向下计数

 

表4T2MOD-定时器2控制寄存器

2.1.4中断

AT89C52有6个中断源:

两个外部中断(INT0和INT1),三个定时中断定时器0、1、2和一个串行中断。

每个中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或无效。

IE还包括一个中断总控制位EA,它能禁止所有中断。

如表3.5所示,IE.6位是不可用的。

对于AT89S52,IE.5位也是不能用的。

用户软件不应给这些位写1。

它们为AT89系列新产品预留。

定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。

程序进入中断服务后,这些标志位都可以由硬件清0。

实际上,中断服务程序必须判定是否是TF2或EXF2激活中断。

标志位也必须由软件清0。

符号

位地址

功能

EA

IE.7

中断允许控制位,EA=0,中断总禁止;EA=1,各中断由各自的控制位设定

-

IE.6

预留

ET2

IE.5

定时器2中断允许控制位

ES

IE.4

串行口中断允许控制位

ET1

IE.3

定时器1中断允许控制位

EX1

IE.2

外部中断1允许控制位

ET0

IE.1

定时器0中断允许控制位

EX0

IE.0

外部中断0允许控制位

定时器0和定时器1标志位TF0和TF1在计数溢出的那个周期的S5P2被置位。

它们的值一直到下一个周期被电路捕捉下来。

然而,定时器2的标志位TF2在计数溢出的那个周期被置位,在同一个周期被电路捕捉下来。

 

 

表5中断允许控制位

2.216*16点阵LED

16*16点阵实际上就是四块8*8的点阵LED级联而成,因此在此给出8*8点阵的工作原理。

下图为8×8点阵LED外观及引脚图,其等效电路如下图所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。

例如如果想使左上角LED点亮,则Y0=1,X0=0即可。

应用时限流电阻可以放在X轴或Y轴。

图316*16点阵

LED点阵显示一般有静态和动态显示两种方案,静态方案虽然设计简单,但其使用的管脚太多,如本设计中16x16的点阵共有256个发光二极管,这个数字很庞大,因为我们仅仅是16x16的点阵,在实际应用中的显示屏往往要大得多,这样在成本将是一个很庞大的数字。

因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。

动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。

具体就16x16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。

当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。

采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。

显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。

显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。

从控制电路到列驱动器的数据传输可以采用并列方式或串行方式。

显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。

当列数很多时,并列传输的方案是不可取的。

所以本设计采用串行输出。

2.3红外控制相关介绍

红外线遥控是目前使用很广泛的一种通信和遥控技术。

由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。

工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可以而且能有效地隔离电气干扰

红外遥控系统主要由遥控发射器、一体化接收头、单片机、接口电路组成,遥控器用来产生遥控编码脉冲,驱动红外发射管输出红外遥控信号,遥控接收头完成对遥控信号的放大、检波、整形、解调出遥控编码脉冲。

遥控编码脉冲是一组串行二进制码,对于一般的红外遥控系统,此串行码输入到微控制器,由其内部CPU完成对遥控指令解码,并执行相应的遥控功能。

使用遥控器作为控制系统的输入,需要解决如下几个关键问题:

如何接收红外遥控信号;如何识别红外遥控信号以及解码软件的设计、控制程序的设计。

通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。

发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。

采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如下图所示。

  

 

图4红外线系统波形

3设计方案介绍

3.1.设计总体思路

本次课程设计的要求是利用红外遥控器控制,在16×16点阵的显示器件上循显示“武汉理工大学”6个汉字,控制项目:

循环显示的速度可调,循环显示进入方向(从左至右、从右至左、从上到下、从下往上)。

本课设需要一个16*16的点阵(在proteus仿真中可以用4个相同的8*8点阵级连代替),由于单片机的I/O口有限,需要同时用一个74HC154(4线-16译码器)来拓展单片机的串行口同时做为点阵的行驱动,单片机上的P0和P2口作为数据口分别点亮点阵的上下半块。

汉字的显示:

采用行扫描的方式,先使一个I/O口产生一个选行信号(通过74HC154),先选中一行,对选中的行进行扫描,然后用另外2组I/O口输送数据,这样一个字的1/16就送到LED点阵上了,接着选下一行,这样经过16次就可以显示一个字了,再适当延时使显示的字清晰。

汉字的移动:

在LED上显示一个汉字并延时后,可以通过增加所取表的地址(一次取两个值分别送P0和P2口),这样下一次LED上显示的字就移动了一个点阵,可以通过适当的设计来控制汉字移动循环的的次数。

汉字的左右上下移动:

可以通过建立不同的表,来实现汉字的各种移动,或者改变查表的方式来实现。

改变数字移动的速度,可以通过改变数字的显示时间来改变。

3.2程序框图

图5程序框图

4资源分配

P1.0—P1.3接74HC154为点阵提供选行信号。

P0.0—P0.7接16*16点阵的上半块作为数据线,给16*16点阵上部提供数据,点亮相应的LED。

P2.0—P2.7接16*16点阵的下半块作为数据线,给16*16点阵下部提供数据,点亮相应的LED。

红外接外部中断P3.2口,P3.0、P3.1、P3.6、P3.7分别接四个矩阵按键,分别控制字幕的左移、右移、上移、下移,P3.2、P3.3分别接四个矩阵按键,控制字幕移动速度的增加和降低。

5硬件连线图及仿真结果

5.1硬件连线图

图5硬件连线图

5.2性能分析

将不加红外控制部分的程序通过keil软件编译生成.hex文件加载到proteus软件的原理原理图中进行仿真,点阵可以显示汉字左移,下移,右移,上移。

再将带有红外控制部分的完整程序通过keil软件编译生成.hex文件烧到单片机中,通过红外可以完成左移,下移,右移,上移,加速,减速的控制,并且点阵上的显示很清楚。

5.3仿真结果图

图6仿真图

(2)

图7仿真图

(2)

 

6源程序

#include

#defineucharunsignedchar

sbitk1=P3^0;//左

sbitk2=P3^1;//右

sbitk3=P3^6;//上

sbitk4=P3^7;//下

ucharz1,z2,z3,z4,z,speed;

ucharcodehz[]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//"武",

0x20,0x40,0x20,0xC0,0x24,0x7E,0x24,0x40,

0x24,0x40,0xA4,0x3F,0x24,0x22,0x24,0x22,

0x20,0x20,0xFF,0x03,0x20,0x0C,0x22,0x10,

0x2C,0x20,0x20,0x40,0x20,0xF8,0x00,0x00,

//"汉",

0x10,0x04,0x60,0x04,0x02,0x7C,0x0C,0x03,

0xC0,0x80,0x02,0x80,0x1E,0x40,0xE2,0x20,

0x02,0x13,0x02,0x0C,0x02,0x13,0xE2,0x20,

0x1E,0x40,0x00,0x80,0x00,0x80,0x00,0x00,

//"理",

0x04,0x20,0x84,0x60,0x84,0x20,0xFC,0x1F,

0x84,0x10,0x84,0x10,0x00,0x40,0xFE,0x44,

0x92,0x44,0x92,0x44,0xFE,0x7F,0x92,0x44,

0x92,0x44,0xFE,0x44,0x00,0x40,0x00,0x00,

//"工",

0x00,0x20,0x04,0x20,0x04,0x20,0x04,0x20,

0x04,0x20,0x04,0x20,0x04,0x20,0xFC,0x3F,

0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,

0x04,0x20,0x04,0x20,0x00,0x20,0x00,0x00,

//"大",

0x20,0x80,0x20,0x80,0x20,0x40,0x20,0x20,

0x20,0x10,0x20,0x0C,0x20,0x03,0xFF,0x00,

0x20,0x03,0x20,0x0C,0x20,0x10,0x20,0x20,

0x20,0x40,0x20,0x80,0x20,0x80,0x00,0x00,

//"学",

0x40,0x04,0x30,0x04,0x11,0x04,0x96,0x04,

0x90,0x04,0x90,0x44,0x

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1