红外遥控器.docx
- 文档编号:30481441
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:36
- 大小:350.39KB
红外遥控器.docx
《红外遥控器.docx》由会员分享,可在线阅读,更多相关《红外遥控器.docx(36页珍藏版)》请在冰豆网上搜索。
红外遥控器
合肥学院
计算机科学与技术系
微型计算机原理与接
口技术课程设计报告
2009~2010学年第一学期
课程
微型计算机原理与接口技术
课程设计名称
红外遥控器的设计与实现
学生姓名
汤驰
学号
0704012011
专业班级
07计本
(2)班
指导教师
龙夏、何立新
2010年2月
一.题义分析及解决方案
1.题义需求分析
根据设计内容要求可知:
1)用STARES598PCI单板开发机设计一个应用接口芯片作为八个七段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引脚图:
8255是可编程并行接口,内部有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-18255的基本操作
3)芯片8255A的技术参数如下图2-2所示:
参数名称
符号
测试条件
规范值
最大
最小
输入低电平电压
VIL
0.8v
-0.5v
输入高电平电压
VIH
Vcc
2.0v
输入低电平电压
<数据总线>
VOL
IOL=2.5mA
0.45v
——
输入低电平电压
<外部端口>
VOL
IOL=1.7mA
0.45v
——
输入高电平电压
<数据总线>
VOH
IOH=-400μA
——
2.4v
输入高电平电压
<外部端口>
VOH
IOH=-200μA
——
2.4v
达林顿驱动电流
IDAR
REXT=750
VEXT=1.5v
-0.4mA
1.0mA
电源电流
ICC
——
120mA
——
输入负载电流
IIL
I=VCC~0v
+10mA
-10mA
8255A的方式控制字如图2-3所示:
图2-38255A的方式控制字
方式0的工作特点
这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。
其功能为:
①两个8位通道:
通道A、B。
两个四位通道:
通道C高4位和低四位;
②任何一个通道可以作输入/输出;
③输出是锁存的;
④输入是不锁存的;
⑤在方式0时各个通道的输入/输出可有16种不同的组合。
置位/控制字如图2-4所示:
图2-4置位/控制字
2.选择LED七段数码管
1)LED七段数码管在本设计中的作用
LED发光二级管(Light-EmittingDiode),在本设计中采用7段发光二级管,做为终端显示。
2)LED七段数码管的功能分析
物理构造:
LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。
工作原理:
当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。
数字成像:
将七个发光管进行组合,排列成数字图形8,再根据需要控制七个管的亮与灭,即可显示出定义数字。
3)LED七段数码管的技术参数
发光二极管的压降一般为1.5~2.0V,其工作电流一般取10~20mA为宜。
发光二极管的发光颜色有:
红色光、黄色光、绿色光、红外光等。
发光二极管应用电路有四种,即直流驱动电路、交流驱动电路、脉冲驱动电路、变色发光驱动电路。
LED发光二极管的压降一般为1.5-2.0V,其工作电流一般取10-20Ma,发光二极管可应用于直流驱动电路、交流驱动电路和脉冲驱动电路。
由于8255A的最大驱动电流为4.0mA,而LED的工作电流一般为10-20mA,所以需要加一个驱动器74LS244。
LED显示管段选码编码表:
2-7LED显示管段选码编码表
数字
DP
g
f
e
d
c
b
a
二进制编码(字形)
0
0
0
1
1
1
1
1
1
3FH
1
0
0
0
0
0
0
1
1
03H
2
0
1
0
1
1
0
1
1
5BH
3
0
1
0
0
1
1
1
1
4FH
4
0
1
1
0
0
1
1
0
66H
5
0
1
1
0
1
1
0
1
6DH
6
0
1
1
1
1
1
0
1
7DH
7
0
0
0
0
0
1
1
1
07H
8
0
1
1
1
1
1
1
1
7FH
9
0
1
1
0
1
1
1
1
6FH
A
0
1
1
1
0
1
1
1
77H
B
0
1
1
1
1
1
0
0
7CH
C
0
0
1
1
1
0
0
1
69H
D
0
1
0
1
1
1
1
0
5EH
E
0
1
1
1
1
0
0
1
79H
F
0
1
1
1
0
0
0
1
71H
LED数字显示原理:
如下图2-8为LED数码管及其框图
图2-8LED数字显示原理
上面两图分别为外形图和原理图,当七段数码管点亮其中几段可显示数字和简单的西文字符,将七段数码管负极连接到一起称为公共端,而发光二极管的正极则分别由引脚引出,便于控制哪个发光二极管点亮,在右图中如果在COM端接低电平,而在其他引出线上施加不同的电平,则对高电平的发光二极管就会点亮,由于将8个发光二极管负极全部连接在一起,称为共阴极数码管,还有将8个发光二极管的正极连接在一起,故称之为共阳极数码管。
本次实验用的数码管需动态扫描显示,其接口电路将所有数码管的笔画控制段与a~h同名端连在一起,接到一个并行端口,每个公共极COM端由独立的I/O线控制,CPU向字模输出口送出字形码时,所有数码管接收到相同的字形码,究竟哪个数码管显示,取决于每个LED的COM端,所谓动态扫描,就是显示一位信息时,其他位不能显示,必须采用分时方法,轮流控制COM端。
3.选择8251A
1)8251A在本设计中的作用
8251A作为本实验中最重要的芯片,就是起了传送并转换数据的作用,8251A将CPU的并行数据转换为串行数据送至红外,将红外的串行数据转换为并行数据送至CPU。
程序运行后,检查状态寄存器,若为01H,则是允许发送,则将左移或右移信息码发送至红外,否则持续读状态寄存器。
接收时,读状态寄存器,若为02H,则是接收准备好,则从红外接收数据。
2)芯片8251A的功能分析
图2-98251A引脚排列图
图2-108251A内部构造图
b)CPU接口
(1)I/O缓冲器
这是三态双向的缓冲器,引脚D0~D7是8251A和CPU接口的三态双向数据总线,用于向CPU传递命令、数据或状态信息。
与CPU互相交换的数据和控制字就存放在这个区域,共有三个缓冲器。
①接收缓冲器:
串行口收到的数据变成并行字符后,存放在这里,以供CPU读取。
②发送/命令缓冲器:
这是一个分时使用的双功能缓冲器,CPU送来的并行数据存放在这里,准备由串行口向外发送。
另外,CPU送来的命令字也存放在这里,以指挥串行接口的工作。
由于命令一输入就马上执行,不必长期存放,所以不会影响存放发送数据。
③状态缓冲器:
存放8251A内部的工作状态,供CPU查询。
(2)读/写控制逻辑。
本模块功能是接收CPU的控制信号,控制数据传送方向。
(3)接收器及接收控制。
接收器的功能是从RXD引脚接收串行数据,按指定的方式装配成并行数据。
(4)发送器及发送控制。
这个模块的功能是从CPU接收并行数据,自动地加上适当的成帧信号后转换成串行数据从TXD引脚发送出去。
(5)调制解调控制器。
该模块提供和调制解调器的联络信号。
8251A是一个采用NMOS工艺制造的28脚双列直插式封装的组件,其外部引脚如图2-9所示。
c)8251A的引脚信号
(1)与CPU接口的引脚。
D7~D0:
数据线。
CLK:
时钟信号输入线,用于产生8251A内部时序。
CLK的周期为0.42~1.35μs。
CLK的频率至少应是接收、发送时钟的30倍(对同步方式)或4.5倍(对异步方式)。
RESET:
复位信号输入线,高电平有效。
复位后8251A处于空闲状态直至被初始化编程。
CS:
片选信号输入线,CS低电平有效。
仅当CS为低电平时,CPU才能对8251A操作。
C/D:
信息类型信号输入线。
为0时传输的是数据,为1时传输的是控制字或状态信息。
RD:
读选通信号输入线,低电平有效。
WR:
写选通信号输入线,低电平有效。
CPU对8251A的读写控制如表2-11所示。
CS
C/D
RD
WR
操作
1
任意
任意
任意
无操作,D0-D7呈高阻
0
1
1
0
写控制字
0
0
1
0
写数据
0
1
0
1
读状态
0
0
0
1
读数据
RXRDY:
接收准备好状态输入线,高电平有效。
当接收器接到一个字符并准备送给CPU时,RXRDY为1;当字符被CPU读取后RXRDY恢复为0。
RXRDY可作为8251A向CPU申请接收中断的请求源。
SYNDET/BRKDET:
同步状态输出线或者外同步信号输入线。
此线仅对同步方式有意义。
TXRDY:
发送准备好状态输出线,高电平有效。
当发送寄存器空闲且允许发送(CTS脚电平为低、命令字中TXEN位为1)时,TXRDY为高电平。
当CPU给8251A写入一个字符后TXRDY恢复为低电平。
TXRDY可作为8251A向CPU申请发送中断的请求源。
TXE:
发送缓冲器空闲状态输出线。
高电平有效,TXE=1,表示发送缓冲器中没有要发送的字符,当CPU将要发送的数据写入8251A后,TXE自动复位。
(2)与外设或调制解调器接口的引脚
RXD:
串行数据输入线,高电平表示数字1,低电平表示数字0。
RXC:
接收器时钟输入线。
它控制接收器接收字符的速率,在上升沿采集串行数据输入线。
RXC的频率应等于波特率(同步方式)或等于波特率的1倍、16倍或64倍(异步方式)。
TXD:
发送数据输出线。
CPU并行输入给8251A的数据从这个引脚串行发送出去。
TXC:
发送器时钟输入线,在TXC的下降沿数据由8251A移位输出。
对TXC频率的要求同RXC。
DTR:
数据终端准备好状态输出线,低电平有效。
当8251A命令字位D1为1时,有效,用于向调制解调器表示数据终端已准备好。
DSR:
数据设备准备好状态输入线,低电平有效。
当调制解调器准备好时,有效,用于向8251A表示Modem(或DCE)已准备就绪。
CPU可通过读取状态寄存器的D7位检测该信号。
RTS请求发送信号输出线,低电平有效。
当8251A命令字位D5为1时,RTS有效,请求调制解调器作好发送准备(建立载波)。
CTS:
清除发送(允许传送)信号输入线,低电平有效。
当调制解调器作好送数准备时,CTS有效,作为对8251A的RTS信号的响应。
如果8251A不使用调制解调器而直接和外界通讯,一般应将DSR、CTS脚接地。
3)芯片8251A的技术参数
(1)控制字寄存器。
控制字寄存器寄存方式控制字和命令控制字。
①方式控制字。
方式控制字确定8251A的通讯方式(同步/异步)、校验方式(奇校验、偶校验、不校验)、数据位数(5、6、7或8位)及波特率参数等。
方式控制字的格式如图2-12所示。
它应在复位后写入,且只需写入一次。
②命令控制字。
命令控制字使8251A处于规定的状态以准备发送或接收数据。
命令控制字的格式如图2-13所示。
它应在写入方式控制字后写入,用于控制8251A的工作,可以多次写入。
图2-13
(2)状态寄存器
状态寄存器存放8251A的状态信息,供CPU查询,状态字各位的意义如图2-14所示。
图2-14
4.选择芯片8253A
1)芯片8253A在本设计中的作用
8253作为频率发生器,选用通道0,控制字为35H,工作在方式2,并且将计数初值设为26H,因为2000000/26=16*4800。
这是为了将产生的频率送至8251的RXC和TXC,为了和红外数据传送一致。
2)芯片8253A的功能分析
a)8253A引脚图:
8253是一片具有3个独立通道的16位计数器/定时器芯片,使用单一+5V电源,24引脚双列直插式封装
图2-15
图2-168253的内部结构示意图
b)CPU接口
(1)读/写控制逻辑
决定三个计数器和控制字寄存器中哪一个能进行工作,并控制内部总线上数据传送的方向。
(2)控制寄存器
接收从CPU来的控制字,并由控制字的D7、D6位的编码决定该控制字写入哪个计数器的控制寄存器,控制寄存器只能写入,不能读出。
(3)计数器
当8253用作计数器时,加在CLK引脚上脉冲的间隔可以是不相等的;当它用作定时器时,则在CLK引脚应输入精确的时钟脉冲,8253所能实现的定时时间,取决于计数脉冲的频率和计数器的初值,即:
定时时间=时钟脉冲周期Tc×预置的计数初值n。
对8253来讲,外部输入到CLK引脚上的时钟脉冲频率不能大于2MHZ,否则需分频后才能送到CLK端。
c)8253A的引脚信号
D0~D7——三态双向数据线。
与CPU数据总线相连,用于传递CPU与8253之间的数据信息、控制信息和状态信息;
CS——片选信号(ChipSelect),输入,低电平有效;
WR——写信号,输入,低电平有效,用于控制CPU对8253的写操作,可与A1,A0信号配合以决定是写入控制字还是计数初值;
RD——读信号,输入,低电平有效。
用于控制CPU对8253的读操作,可与A1,A0信号配合读取某个计数器的当前计数值;
A0,A1——地址输入线。
用于8253内部寻址的4个端口,即3个计数器和一个控制字寄存器。
一般与CPU低位的地址线相连。
CLK0(CLK1,CLK2)——时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。
CLK可以是系统时钟脉冲,也可以是由其他脉冲源提供。
8253规定加在CLK引脚的输入时钟周期不得小于380ns;
GATE0(GATE1,GATE2)——门控输入端,用于外部控制计数器的启动或停止计数的操作。
当GATE为高电平时,允许计数器工作,当GATE为低电平时,禁止计数器工作;
OUT0(OUT1,OUT2)——计数输出端。
在不同工作方式中,当计数器计数到0时,OUT引脚上必输出相应的信号。
3)芯片8253A的技术参数
(1)控制字格式。
8253的控制字有4个主要功能:
选择计数器;
确定计数器数据的读写格式;
确定计数器的工作方式;
确定计数器计数的数制。
5.选择芯片TSAL6200
1)TSAL6200的在本设计中的作用
TSAL6200是一种高效率的红外发光二极管,将收到数字信息转换成红外信号发送出。
2)TSAL6200的功能分析
IN端口控制整个发射过程。
其中,红外载波信号采用频率为38KHz的方波,由CLK端口传输到三极管Q3的基极。
待发送到数据由IN端口以串行方式送出并驱动三极管Q2,当IN为“0”时使Q2管导通,通过Q2管采用脉宽调制(PWM)方式调制成38KHz的载波信号,并由红外发射管TSAL6200以光脉冲的形式向外发送。
当IN为“1”时使Q2管截止,Q3管也截止,连接Q2和Q3的两个上拉电阻R32和R36把三极管的基极拉成高电平,分别保证两个三极管可靠截止,红外发射管TSAL6200不发射红外光。
因此通过待发送数据的“0”或“1”就可控制调制后两个脉冲串之间的时间间隔,即调制PWM的占空比。
比如若传送数据的波特率为1200bps,则每个数位“0”就对应32个载波脉冲调制信号。
红外发射管DS12采用TSAL6200红外发射二极管,其实现将电信号转变成一定频率的红外光信号,它发射一种时断时续的高频红外脉冲信号,由于脉冲串时间长度是恒定的,根据脉冲串之间的间隔大小就可以确定传输的数据是“0”还是“1”。
3)芯片TSAL6200的功能参数
常用参数值(Tamb=25℃)
参数及符号典型值最大值单位
正向电流IF100mA
正向压降VF1.351.6V
光功率Φe35mW
峰值波长λp940nm
光辐射半角φ±17deg
(1)伏安特性
红外发光二极管TSAL6200的伏安特性与普通二极管相似.正向工作电流IF是指红外发射二极管长期工作时,允许通过的最大平均正向电流.若发射二极管长期超过IF运行,会因过热而烧坏.一般小功率红外发光二极管的正向压降VF=1~1.3V,中功率管VF=1.6~1.8V,大功率管VF≥2V.在驱动电路设计中应注意驱动电压大于红外发光管的正向压降VF,以克服死区电压产生正向电流IF。
(2)光功率Φe
红外发射二极管的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 红外 遥控器