毕业论文万能遥控器doc.docx

上传人:b****4 文档编号:11967539 上传时间:2023-04-16 格式:DOCX 页数:56 大小:173.16KB
下载 相关 举报
毕业论文万能遥控器doc.docx_第1页
第1页 / 共56页
毕业论文万能遥控器doc.docx_第2页
第2页 / 共56页
毕业论文万能遥控器doc.docx_第3页
第3页 / 共56页
毕业论文万能遥控器doc.docx_第4页
第4页 / 共56页
毕业论文万能遥控器doc.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

毕业论文万能遥控器doc.docx

《毕业论文万能遥控器doc.docx》由会员分享,可在线阅读,更多相关《毕业论文万能遥控器doc.docx(56页珍藏版)》请在冰豆网上搜索。

毕业论文万能遥控器doc.docx

毕业论文万能遥控器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

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

当前位置:首页 > 经管营销 > 经济市场

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

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