红外遥控器的设计与实现

更新时间:2023-11-04 03:43:01 阅读量: 综合文库 文档下载

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

计算机科学与技术系

微型计算机原理与接 口技术课程设计报告

2009~2010学年第一学期

程 微型计算机原理与接口技术

红外遥控器的设计与实现

课程设计名称 学学专指

业导

班教生

名 号 级 师

2010年4月

一.题义分析及解决方案 1.题义需求分析

根据设计内容要求可知:

1)用STAR ES598PCI单板开发机设计一个应用接口芯片作为八个七段LED数码管的段选与位选。接口可以使用8255A或8279(本实验用了8255A)。

2)编写程序实现将红外装置发送的编码代表的动作(左移LEFT和右移RIGHT)显示再七段数码管上,并实现LEFT的左循环移动,RIGHT的右循环移动。 3)用按键控制接口控制所要进行的操作,用一个按键控制左移用另一个按键控制右移,按住按键不放则为左循环或右循环。 2.解决问题方法及思路 1)硬件部分

(1)由于8251A和红外之间的数据传输涉及到要协调一致,所以本实验另外还要选用8253A作为频率发生器,输出一定的方波到8251A。

(2)本次设计要求通过按键来进行操作,本来想用小键盘使得程序更加高级一些,但考虑到所需功能不多,只需两个按键即可,所以采用了按键控制接口。 (3)输出设备选用的是LED七段数码管。本实验只是要将LED上的内容左移右移,左循环和右循环,LED即可满足要求。

(4)8255A的可编程并行接口,本实验通过8255A将按键的信息送入,并且使用8255A对LED进行段选和位选,而且8255A具有传输速度快效率高等优点,此既可以节约芯片的使用,还具有较好的性能,因此选用。

(5)由于红外装置接收和发送的都是串行数据,所以本实验选用8251A作为CPU和红外装置之间数据的串并转换,8251A将CPU的并行数据转换为串行数据送至红外,将红外的串行数据转换为并行数据送至CPU。

至此,我们可以确定本次课程设计要用到的部件有:2个按键作为遥控器按钮,LED作为显示,8253用作频率发生器,8255用来作为输入输出接口,8251A用来传送数据。 2)软件部分

(1)对8253进行初始化。8253作为频率发生器,选用计数器0,控制字为35H,工作在方式2,并且将计数初值设为26,因为2000000/26=16*4800。这样发送和接受数据的时钟频率就是数据传输频率即波特率的16倍,这样可以提高收发数据的正确性,再将输出频率送至8251的RXC和TXC,一定程度上保证了数据传输的正确性。

(2)对8255进行初始化。PC口作为输入口,本实验中只用了PC0和PC7与按键控制接口相连,接收按键要控制的相关状态。开始时,通过置为/复位控制字,将1和8按键置为1,即置为控制字是01H和0FH,之所以设为1因为按键按下时是0信号,松开时1信号,程序运行时,检查C口读入的按键,若为1按键,即为左移,若为8按键,则为右移。PA口与PB口均作为输出口,其中PA口作为位选,用来选择发光的LED管,在控制时,我们是将要亮的管子位置数为0,其它位置为1,PB口作为段选,用来控制输出的值。

(3)对8251A进行初始化。8251A作为本实验中最重要的芯片,就是起了传送并转换数据的作用,8251A将CPU的并行数据转换为串行数据送至红外,将红外的串行数据转换为并行数据送至CPU。将8251A的方式控制字设为5EH, ;波特率

系数为16,8个数据位,1个停止位,奇校验,命令控制字设为17H,允许接受和发送数据,清错误标志。程序运行后,检查状态寄存器,若为01H,则是允许发送,则将左移或右移信息码发送至红外,否则持续读状态寄存器。接收时,读状态寄存器,若为02H,则是接收准备好,则从红外接收数据。

(4)CPU在发送数据时,先比较C口读入的数据,若是1按键,则将左移信息码40H写至8251A,若是8按键,则将右移信息码41H写至8251A;在接收数据时,若收到的是左移信息码,则左移1位位选,写入8255A,使LED上的数据左移一位,若收到的是右移信息码,则右移1位位选,写入8255A,使LED上的数据右移一位。 二.硬件设计 1.选择芯片8255A

1)芯片8255A在本设计中的作用

8255A是可编程并行接口,本实验通过A口输出来作为位选,实现LED数码管的动态显示,通过B口输出做为显示在LED数码管的数值,从C口读入操作信息来控制LED上的数据移动。 2)芯片8255A的功能分析 a)8255引脚图: 1U36D0D1D2D3AD4D5D6D7RDWRA0A1CS34333231302928275369RST8356D0D1D2D3D4D5D6D7RDWRA0A1RESETCSPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3BPC4PC5PC6PC743214039383718192021222324251415161713121110PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7123456781234567812345678JP52JP53JP562 82558255是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。三个端口都可以作为输入端口或输出端口。A口有三种工作方式:即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作为联络信号使用。8255的工作只有当片选CS有效时才能进行。而控制逻辑端口实现对其他端口的控制。

b)CPU接口(数据总线缓冲器和读/写控制逻辑) 数据总线缓冲器:

这是一个8位双向三态缓冲器,三态是由读/写控制逻辑控制的。这个缓冲器是8255A与CPU数据总线的接口。所有数据的输入/输出,以及CPU用输出指令向8255A发出的控制字和用输入指令从8255A读入的外设状态信息,都是通过这个缓冲器传递的。 读/写控制逻辑:

它与CPU的6根控制线相连,控制8255A内部的各种操作。控制线RESET用来使8255A复位。和地址线A1及A0用于芯片选择和通道寻址。控制线和用来决定8位内部和外部数据总线上信息传送的方向,即控制把CPU的控制命令或输出的数据送到相应的通道,或把状态信息或输入数据送到CPU。8255A的读/写控制逻辑的作用,是从CPU的地址和控制总线上接受输入的信号,转变成各种命令送到A组或B组控制电路进行相应的操作。 c) 8255A的引脚信号 与外设相连的

PA7~PA0:A口数据信号线。 PB7~PB0:B口数据信号线。 PC7~PC0:C口数据信号线。 与CPU相连的

RESET:复位信号。当此信号来时,所有寄存器都被清除。同时三个数据端口被自动置为输入端口。

D7~D0:它们是8255A的数据线和系统总线相连。

CS:片选信号。在系统中,一般根据全部接口芯片来分配若于低位地址(比如A5、A4、A3)组成各种芯片选择码,当这几位地址组成某一个低电平,于8255A被选中。只有当有效时,读信号写才对8255进行读写。 RD:读信号。当此信号有效时,CPU可从8255A中读取数据。 WR:写信号。当此信号有效时,CPU可向8255A中写入数据。

A1、A0:端口选择信号。8255A内部有3个数据端口和1个控制端口,共4个端口。规定当A1、A0:为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。 8255的基本操作如下表2-1所示:

表2-1 8255的基本操作

3)芯片8255A的技术参数如下图2-2所示:

规范值 参数名称 符号 测试条件 最大 输入低电平电压 输入高电平电压 输入低电平电压 VOL <数据总线> 输入低电平电压 VOL <外部端口> 输入高电平电压 <数据总线> 输入高电平电压 IOL=1.7mA IOL=2.5mA VIL VIH 最小 0.8v Vcc -0.5v 2.0v 0.45v —— 0.45v —— VOH IOH=-400μA —— 2.4v VOH <外部端口> IOH=-200μA —— 2.4v 达林顿驱动电流 IDAR REXT=750 VEXT=1.5v -0.4mA 120mA +10mA 1.0mA 电源电流 输入负载电流

ICC IIL —— I=VCC~0v —— -10mA

本文来源:https://www.bwwdw.com/article/1iw2.html

Top