毕业论文万能遥控器doc.docx
- 文档编号:11967539
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:56
- 大小:173.16KB
毕业论文万能遥控器doc.docx
《毕业论文万能遥控器doc.docx》由会员分享,可在线阅读,更多相关《毕业论文万能遥控器doc.docx(56页珍藏版)》请在冰豆网上搜索。
毕业论文万能遥控器doc
前言
随着电子技术的发展,遥控技术得到了越来越广泛的应用。
遥控技术正在向各个领域渗透,其重要性日见突出。
在家用电器方面,带红外遥控的家用电器得以广泛普及.给人们的生活带来了很大的方便。
但是,在一个家庭中如果遥控器过多,则使用过程容易产生混乱,给使用者造成许多不必要的麻烦。
为了解决这个问题,我们设计一种智能型红外遥控器,利用对各种红外遥控器发射的控制信号进行识别、存储和再现。
也就是说,只需要一个智能遥控器,就可以对多个遥控器的发射信号进行学习和记忆,从而实现对多个电器的遥控。
我们设计的智能型遥控器是基于单片机51的而设计的,利用“89C51”和其外围电路,进行对信息的处理,并进行显示。
本设
1遥控器的现状和发展
2红外发射的优缺点及基本原理
3智能遥控器的结构和功能
4智能遥控器的硬件电路
红外发射电路
红外接收电路
键盘电路
显示电路
8155的扩展
2864(EEPROM)的扩展
5智能遥控器的的软件电路
原程序的注释
各子程序的剖析
5心得体会
6主要集成电路
7附录
设计任务书
随着电子技术的发展,带红外遥控的家用电器得以广泛普及.给人们的生活带来了很大的方便。
但是,在一个家庭中如果遥控器过多,则使用过程容易产生混乱,给使用者造成许多不必要的麻烦。
为了解决这个问题,可设计一种智能型红外遥控器,利用对各种红外遥控器发射的控制信号进行识别、存储和再现。
也就是说,只需要一个智能遥控器,就可以对多个遥控器的发射信号进行学习和记忆,从而实现对多个电器的遥控。
一、技术要求
1.能对所设置的内容进行存储,
2.有”学习”和”控制”两种状态,并显示
3.能对电路电源进行检测,电源电压低于一定程度发出警报
4.对于宏定义不做要求。
5.键盘扫描采用逐行扫描
6.由于EPPROM我们只买到了8K的2864A,存储单元不够。
所以,只能先控制两个电器来表示一下。
7.由于2864(EPPROM)的存储时间较慢,所以采用先存储到RAM里,在由RAM存到ROM里。
二、主要技术指标
1.能对2个电器进行控制
2.用单片机进行控制用到两个定时器
3.抗扰性能的设计(详见)
三、时间安排
4.23—4.30查找资料,确定方案
5.01—5.08整理资料,设计电路
5.09—5.12购买元件,电路设计
5.13—5.31安装电路,硬件调试,软件设计
6.01—6.08软件调试,整机调试
6.09—6.14写论文,准备答辩
四、参考文献
1、欧阳杰主编《红外电子学》
北京理工大学出版社
2、何立民主编《单片机运用技术选篇之—7》
北航出版社
3、
袁光明主编《电子自动控制器件设计制作维修大全》重庆大学出版社
4、郑凤翼主编《家用电器遥控原理与维修》
人民邮电出版社
5、胡汉才主编《单片机原理及其接口》
遥控器的现状和发展
随着科学技术的不断发展,遥控技术正向各个领域渗透,特别是红外线与声波遥控技术,在工业生产、家用电器、安全保卫以及人们的日常生活中得到了广泛应用。
例如,电视机的遥控、
音响设备的遥控、录象机的遥控、电扇的遥控、安全保卫报警器、遥控空调器、自动水龙头、自动门等均可采用红外遥控技术来实现。
那么什么是红外线遥控呢?
红外线遥控就是指利用红外线来传递信号,实现对控制对象的远距离控制目的,具体来讲,就是由发射器发出红外线指令信号,由接收器接收下来并对信号进行处理,最后实现对控制对象的各种功能的远距离控制。
红外发射的优缺点和基本原理
红外线光控电路的基本原理
在一些控制距离不远且不需要多通道控制的场合,如红外线光电检测和近距离红外线光控等。
这些场合一般距离较近,干扰影响不大,发射电路中红外发光二极管可以采用恒定直流驱动。
采用恒定直流驱动,发射及接收电路可得到大大简化。
这类电路一般不用于较远距离的遥控,通常,发射与接收部分属同一整体电路系统。
因此,我们不把这类电路称作红外遥控电路,而称作简单
红外线光控电路。
可见,简单红外线光控电路结构非常简单,由直流电源直接驱动红外发光二极管恒定的红外光,接收电路也不需要选频或解码电路,只有(有时不需要)直流放大器和记忆及执行电路。
由于采用恒定直流驱动,电源利用率较低,但可使整个系统结构大大简单,成本大大降低。
简单红外线光控电路虽然简单,但应用较广,尤其在一些光电自动控制及自动检测系统中得到了广泛的应用。
优缺点
1.功耗低
2.外围元件少
3.使用方便、灵活
4.抗干扰性能好
基本结构和功能
一.遥控器结构及功能
这种智能型遥控器的结构如图1所示。
功能
遥控器共有32个键。
其中,31、32为功能键,1、2为电器编号,其余为控制按钮。
电路有两种工作状态:
“学习”状态和“控制”状态,可通过32号键进行转换。
若希望对1号电器的遥控器进行学习,则在“控制”状态同时按下31号键,遥控器进入“学习”状态。
此时,将被学习的遥控器发射头对准智能遥控器的接收头,同时按下两个遥控器相应的按键,这时数码管同时亮,右边的数码管一闪即灭,就可以完成一次学习过程。
当所有按键都学习完毕后,按下32号键回到“控制”状态。
这时就可以对被学习的电器进行控制。
硬件电路
a红外发射电路
红外发射电路中VD2为红外发光二极管,由于单片机无法直接驱动二极管,因此加入9015为缓冲
B红外接收电路
红外线接收电路
在红外接收器中,光电转换器的作用是,将红外光敏器件接收到的红外光指令信号,转换为相应的电信号。
光电转换器是红外线接收的大门,对整个接收电路影响较大。
光电转换器,由光敏器件(光敏二极管或光敏三极管)和少量其它元件构成。
在光敏二极管构成的光电转换器中,光敏二极管必须反向运用(反偏)。
当光敏二极管或光敏三极管接收到红外光信号时的光电流为一定值时,与它们串联的负载电阻R越大,从A点得到的交流电压也就越大。
红外线遥控接受电
cx20106是红外线遥控接受前置放大双极型集成电路,适用与电视机等。
内部电路有前置放大器、自动偏置电平控制电路、限幅放大器、带通滤波器、峰值检波器和波形整形电路等组成。
CX20106A是CX20106的改进型,二者之间的主要差别在于电参数略有不同,
技术特点:
1。
低电压供电,其典型值为5V。
2。
功耗低。
Vcc=5V时,其典型功耗为9mW.
3。
带通滤波器的中心频率可通过改变5脚和电源之间的电阻进行调节,其调节的范围为30--60khz.
由于未使用电感,可不受磁场的干扰,因此抗干扰能力强。
4。
能于PIN光电二极管直接连接。
5。
集电极开路输出,能直接驱动TTL或CMOS电路。
6。
8脚单列直插式塑料封装。
7。
配套使用型号为M50462AP.
引脚排列图及功能
1脚IN遥控信号输入端(此脚于地之间接红外线接受二极管)2.5
2脚c1前置放大器频率特性和增益设定(此脚与地之间RC串联电路)2.5
3脚c2接检波电容1.5
4脚GND接地0
5脚fo设定带通滤波器的中心频率1.4
6脚c3外接积分电容1.0
7脚OUT遥控指令输出端5.0
8脚Vcc外接电源5.0
5键盘
6显示
7扩展8155
8扩展2864A
心得体会
主要集成电路
参考书目
5、智能遥控器的软件电路
原程序的注释
各地址分配:
20h------放键号
21h------放键号
22h------EPPRROM首址
23h------发送一个字节数
24h------接收占存
25h------一个信号的字节数
26h-------已存放按键数
27h-------接发标志
28h-------存、发送
29h-------判断是否存储时,同一按键按下
时间过长
2ah-------占存b
2bh-------按键出错标志
P1.0-------左显示器
P1.1-------右显示器
P1.2-------电源控制(2864EPPROM收)
P1.3-------接收控制
P1.4-------发送控制
P1.5-------一次操作结束
P1.6-------切换电器标志位
P1.7-------有效按键标志位
为避免口地址冲突,地址分配如下:
EPPROM-------4000H——4FFFH(电器一)
EPPROM-------5000H——5FFFH(电器二)
EPPROM-------------------4FFFH和5FFFH
已存按键数
8155RAM-------------------3E00H——3EFFH
8155命令/状态寄存器-------3F00H
8155PA、PB、PC口地址------3F01H、3F02H、
3F03H、
显示器控制状态
控制:
选择电器出错(灭,亮)亮显示为“1”
选择电器正确(亮,灭)亮显示为“电
器号”
学习:
开始存储(亮,亮)亮显示为原先的
电器号
存储结束(灭,亮)亮显示为原先的
电器号
空键-没有存储信息(灭,灭)
org0000h
ljmpmain
org0003h;考虑到INT0端空置
ljmpmain抗干扰的设置;
org000bh
ljmpachuli
org0013h
ljmpmain
org001bh
ljmpmain
org0023h
ljmpmain
org0030h
keyboard/*键盘扫描*/
movdptr,#3f01h;扫描初值送8155a口;
mova,#00h
movx@dptr,a
incdptr
incdptr
movxa,@dptr;读8155c口;
anla,#0fh;屏蔽高位;
cjnea,#0fh,lk2;无键跳转到lk2;
ajmpkreturn2;有键跳转到kreturn;
lk2:
;扫描模式送R2;
movr2,#0feh;赋处值;
movr4,#00h
lk4:
movdptr,#3f01h;扫描模式送8155a口;
mova,r2
movx@dptr,a
incdptr
incdptr
movxa,@dptr;读8155c口;
jbacc.0,lone;转判第一行;
mova,#00h;0行有键闭合,首键号
ajmplkp0进a;
lone:
;转判第二行;
jbacc.1,ltwo;转判第二行;
mova,#08h;1行有键闭合,首
ajmplkp键号8进a;
ltwo:
jbacc.2,lthr;转判第三行;
mova,#10h;2行有键闭合,首键
ajmplkp号10h进a;
lthr:
jbacc.3,knext;转判下一列;
mova,#18h;3行有键闭合,首键号
lkp:
18h进a;
adda,r4;行号加列号进a;
mov20h,a;键号进20h;
xrla,21h;两次按键是否相同;
jzkreturn1;相同转kreturn1;
ajmpkreturn2;相异转kreturn2;
knext:
incr4;列计数器加1;
mova,r2;判是否已扫到最后一列,
jnbacc.7,kreturn2仍无键转到kreturn2;
rla;扫描模式左移一位;
movr2,a
ajmplk4
kreturn1:
;有效键按下置标志位为1;
setbp1.7
ret
kreturn2:
;无效键按下置标志位为0;
clrp1.7
ret
org00f0h
mainkey:
/*返回一个有效按键*/
lcallkeyboard
jnbp1.7,keys无效键按下转到keys;
mova,20h有效键按下键号进a;
ret
keys:
mova,20h;第一次按键进21h保存;
mov21h,a
lcalldelay;延时消除抖动;
sjmpmainkey
delay/*延时20ms/*
movr5,#80
tm1:
movr6,#123
nop
tm2:
djnzr6,tm2
djnzr5,tm1
ret
org0130h
wr:
movr1,#10h;每页写16个字节;
movr6,#09h;每个按键有9页的
movdptr,#3e00h存储空间;
movb,#00h
movr4,#1ch;共28个控制按键;
mova,26h;已存放数进a;
clrc
subba,#1ch;判已存放数是否大于28;
jcly;小于28转到ly;
mova,22h;大于28求首址;
adda,#0fh;看是4fffh还是5fffh;
movdph,a;a进高位;
movdpl,#0ffh;低位为0ffh
mova,#0ffh
movx@dptr,a
wloop1:
movxa,@dptr;是不是第一次存储;
xrla,#0ffh
jbacc.7,wloop1;不是转到wloop;
mov2bh,#00h;是按键出错标志;
ret
ly:
cjnea,#00h,aaa;出错到aaa否则到bbb;
bbb:
mova,#90h;计算首址;
movb,26h;已存放数进a;
mulab;求存储地址;
movr0,a
mova,b
adda,22h
movp2,a;放到地址线上;
wr1:
movxa,@dptr;地址中的值进a;
movr5,a;存入r5;
movx@r0,a
incdptr
incr0
cjner0,#00h,anext
incp2
anext:
djnzr1,wr1;不到16个字节,再写;
decr0
aloop:
movxa,@r0
xrla,r5
jbacc.7,aloop
incr0
movr1,#10h;16个字节重新赋值;
djnzr6,wr1;9页写完否;
mov2bh,#0ffh
ret
aaa:
mova,#90h;计算首址;
mov2ah,b;保存b;
mulab
movr0,a
mova,b
adda,22h
movp2,a
movxa,@r0
xrla,20h;是不是按键号;
jzwr1;是到写;
movb,2ah;恢复b;
incb;看下一个键;
djnzr4,aaa;28个按键看完否;
ajmpbbb;看完到bbb;
org0300h
main:
clrtr0;初始化;
clrtr1
clret0
clret1
clrex0
clrex1
clres
clrea
mov20h,#0ffh;89c51RAM的初始化;
mov21h,#0ffh
mov22h,#00h
mov23h,#08h
mov24h,#00h
mov25h,#90h
mov26h,#0ffh
mov27h,#0ffh
mov28h,#00h
mov29h,#0ffh
mov2ah,#00h
mov2bh,#0ffh
mova,#1fh;p1口的初始化;
movp1,a
mov70h,#06h;显示缓冲区06为a、
mov71h,#5bh5b为2;
movsp,#30h
movpsw,#00h
lcalldelay
movdptr,#3f00h;8155初始化;
mova,#03h
movx@dptr,a
movtmod,#01h;定时器0初始化;
movtl0,#0fh
movth0,#00h
setbea;中断允许;
start:
lcallmainkey
clrc;超过28个键出错;
subba,#1ch
jncerror
mova,20h;键号进a;
clrc
subba,#02h;不为显示电器号转到ERROR;
jncerror
start1:
setbp1.1;灭右显示器;
mova,20h;键号进a;
swapa;求存储首址,看是4fffh
adda,#40h还是5fffh;
mov22h,a
adda,#0fh
movp2,a;送地址线;
movr0,#0ffh;因为4fffh或5fffh存
movxa,@r0的是按键个数;
mov26h,a;按键个数进26h保存;
clrc
subba,#40h;键号恢复;
swapa
adda,#70h;求显示码;
movr0,a
mova,@r0
movdptr,#3f02h;送8155b口-置形口;
movx@dptr,a
clrp1.0;左显示器有效;
setbet0;开t0中断、再此处开为了
setbtr0准确;
hlta:
jnbp1.6hlta;切换电器无效、等待;
mova,2bh;是否按键出错;
jzlysb;出错到lysb;
sjmpstart1;没出错到start1;
error:
setbp1.0;灭左显示器;
mova,#06h;送‘1’的显示码;
movdptr,#3f02h;显示码送8155b口;
movx@dptr,a
clrp1.1;右显示器有效;
sjmpstart
lysb:
ljmpmain
org0400h
achuli:
clrp1.0;左显示器有效;
clrp1.6;切换电器无效;
clrtr0;定时中断;
movtl0,#0fh;从新赋初值;
movth0,#00h
lcallmainkey
clrc
subba,#02h;一开始不是电器号到
jncagainagain;
xdx:
setbp1.6;切换电器有效;
areturn:
setbtr0;开定时;
reti
again:
mova,20h
xrla,#1fh;是否是最后一个键(退出);
jzareturn
mova,20h
cjnea,#1eh,control;是否学习状态,不是
到控制状态;
learn:
clrp1.0;左显示器有效;
setbp1.1;灭右显示器;
mov27h,#00h;置接发标志位;
lcallmainkey
cjnea,#1fh,ago;不是退出键,转到ago;
sjmpcontrol
ago:
mova,20h;在学习状态中不是电器号
clrc也不是退出键,转到
subba,#02hrestore;
jncrestore
sjmplearn;否则转到learn;
restore:
mova,20h`;是否学习键,是学习;
xrla,#1eh
jzlearn
mova,20h
xrla,29h;判键松否;
jzlearn;不松等待到松;
clrp1.1;键松使左右显示器都有效;
clrp1.2
lcalldelay
lcalldelay
movdptr,#3e00h;键号送8155的缓冲区;
mova,20h
movx@dptr,a
del1:
movr7,#34;定时70us;
del2:
djnzr7,del2
lcallbchuli
jnbp1.5,del1;一次操作结束否
mova,27h没结束继续采样;
xrla,#00h;是否接发;
jnzcontrol;发转到control;
lcallwr;接转到wr;
setbp1.0;灭左显示器;
lcalldelay;两次延时为了人眼能看清;
lcalldelay
mov29h,20h;键号到29h;
mova,2bh
jzxdx;按键号是否正确,不正确到xdx;
ajmplearn
control:
setbp1.1;灭右显示器;
clrp1.0;左显示器有效;
setbp1.2;关断2864的电源;
mova,20h
xrla,#1fh;是不是退出键;
jzareturn
mova,20h
xrla,#1eh;是不是学习键;
jzlearn
movr6,#1ch;r6为28个键数;
movb,#00h
find:
mova,#90h;计算首址;
mov2ah,b;保存b;
mulab
movr0,a
mova,b
adda,22h
movp2,a
movxa,@r0
xrla,20h;是不是要发的键;
jzsend;是转到send;
movb,2ah
incb;恢复b,看下一个存储区;
djnzr6,find;28个键都看完,还不是转到
setbp1.0find继续查;
setbp1.1
lcalldelay
lcalldelay
ajmpareturn
send:
/*通过8h发送*/
movdph,p2
movdpl,r0
incdptr
mov27h,#0ffh
movxa,@dptr
mov28h,a
del3:
movr7,#34;70us发送周期;
del4:
djnzr7,del4
lcallbchuli
jnbp1.5,del3;一次发送完成否;
mova,27h
xrla,#00h
jnzzcl
lcallwr
setbp1.1
ajmplearn
zcl:
ljmpareturn
org0500h
bchuli:
clrp1.5
mova,27h
cjnea,#00h,cchuli
mova,24h;接受占存标志位进a;
movc,p1.3
rrca
mov24h,a
djnz23h,breturn
mov23h,#08h;一个字节发送完否;
incdptr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 万能 遥控器 doc