基于单片机的红外遥控设计与制作毕业论文

上传人:aa****6 文档编号:38148447 上传时间:2018-04-27 格式:DOC 页数:19 大小:177KB
返回 下载 相关 举报
基于单片机的红外遥控设计与制作毕业论文_第1页
第1页 / 共19页
基于单片机的红外遥控设计与制作毕业论文_第2页
第2页 / 共19页
基于单片机的红外遥控设计与制作毕业论文_第3页
第3页 / 共19页
基于单片机的红外遥控设计与制作毕业论文_第4页
第4页 / 共19页
基于单片机的红外遥控设计与制作毕业论文_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《基于单片机的红外遥控设计与制作毕业论文》由会员分享,可在线阅读,更多相关《基于单片机的红外遥控设计与制作毕业论文(19页珍藏版)》请在金锄头文库上搜索。

1、 基于单片机的红外遥控设计与制作基于单片机的红外遥控设计与制作13 工试 2 班 陈舒佳 章韬略1、设计目的设计目的对于本课题的研究,其理论中的价值是对红外线这种电磁波的特性进行更加深入的研究。同时在与单片机和电子电路的共同作用下,找到单片机及电子电路在实际运用中的更多功能,从而挖掘出红外线和硬件设备结合中的更多可能性。在现实意义中,对于红外线的使用,它不仅提高了单片机、硬件设备和硬件系统在智能遥控领域的广泛应用,而相对了在硬件设施上使用了红外线的遥控技术,也同时大大拓宽了硬件设施的应用范围。在不久的将来,我相信,人们对于红外遥控控制的运用,会变得越来越广。2、设计要求设计要求基本功能要求:1

2、.以一个单片机作为控制遥控器,另一个单片机控制系统为被遥控对象;2.用遥控器的 10 个遥控开关,控制遥控对象的 10 个电源开关通断;3.能实现 10 个电源开关状态显示;4.能实现定时开关某一个电源开关。扩展功能:1.能实现灯光亮度连续调节;2.能根据不同电器实现不同时间通断控制;3.其他扩展功能。3、方案设计方案设计3.1 红外遥控发射电路的方案采用指令键产生电路产生不同的控制指令,单片机进行状态的编码,直接由单片机的口输出方波信号控制红外发射管进行发射。红外发射管采用普通的红外发射二极管。3.2 红外遥控接收电路的方案遥控系统采用红外线脉冲个数编码,直接利用单片机软件解码,实现功能的遥

3、控。3.3 单片机的选择本设计所编写的程序比较简单,功能也比较少,所用到的输入输出端口也不是很多,所以我们决定用 STC89C52 单片机来完成本设计,既方便也很实用。3.4 红外遥控系统电路的原理框图以及各部分作用各部分作用: (1)行列式键盘 行列式键盘又称为矩阵式键盘,用 I/O 线组成行列结构,按键设置在行列的交点上,行列式分别连接到按键开关的两端。键盘中有无按键按下是由行线送入扫描字及列线读入列线状态字来判断的,有键按下时通过查键并执行键功能程序。 (2)红外线发射电路 遥控器信息码由单片机的定时器 1 中断产生 40KHZ 红外线方波信号。由 P3.5 口输出,经过三极管放大,由红

4、外线发射管发送。 (3)单片机 单片机用于输出方波信号控制红外发射电路的工作。3.5 红外接收部分原理框图以及各部分作用各部分作用: (1)+5V 电源电路 给单片机最小系统、控制电路提供以及红外接收电路提供电压。(2)红外接收电路 红外接收电路把接收到的状态在内部进行解码,从而实现不同的功能。 (3)控制电路 通过发射电路的按键实现对控制电路的控制作用。3.6 系统硬件电路的设计红外发射电路:红外接收电路:4、遥控发射及接收控制电路的软件设计遥控发射及接收控制电路的软件设计4.1 软件设计流程图4.1.1 键扫描程序流程图 相应的按键扫描程序:#include #define uint un

5、signed int #define uchar unsigned char #define keyrow P0 #define keyline P2 uchar code keyv8=1,2,4,8; uchar keyscan(void) uchar keyval,i; keyval=0; keyrow=0xfe; if(keyline!=0xff) for(i=0;i0;m-) delay1ms(1); ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=0; delay1ms(10); /*40KHZ 发生器*/ void time_intt1(

6、void) interrupt 3 remoteout=remoteout; 4.1.3 遥控发射主程序流程图遥控发射的主程序流程图:首先初始化程序,然后调用键扫描程序。相应的发射主程序如下:#include #define uint unsigned int #define uchar unsigned char extern uchar keyscan(void); extern void init(void); extern void send_infrared(uchar keyval); void delay1ms(uint time) uint i,j; for(i=0;i #in

7、clude #define uchar unsigned char #define uint unsigned int sbit remotein=P31; extern void delay1ms(uint time); uchar value; /*初始化*/ void clearmen(void) EX0=1; EA=1; /*外中断遥控接收函数*/ void intt0(void) interrupt 0 uchar keyval,k,sign; EX0=0;sign=0;keyval=0; if(remotein=0) delay1ms(2); if(remotein=0) whil

8、e(1) while(remotein=0); keyval+;k=0;delay1ms(1); while(remotein=1) delay1ms(1);k+; if(k2) value=keyval-1; sign=1; break; if(sign) break; EX0=1; 4.1.5 遥控接收器主程序流程图相应的接收主程序:#include #include #define uchar unsigned char #define uint unsigned int extern void clearmen(void); extern uchar value; uchar temp

9、; void delay1ms(uint time) uint i,j; for(i=0;i=1; void quanliang(void) uint i; temp=0xfe; for(i=0;i=1; void main() clearmen();P0=0xff;while(1) if(value=1) P2=0xfe; if(value=2) P2=0xfd; if(value=3) P2=0xfb; if(value=4 P2=0xf7; if(value=5) P2=0xef; if(value=6) P2=0xdf; if(value=7) P2=0xbf; if(value=8)

10、 P2=0x7f; if(value=9) P1=0xfe;if(value=10) P1=0xfd; if(value=11) youyi(); if(value=12) zuoyi(); if(value=13) quanliang(); if(value=14) fquanliang(); 5、演示结果演示结果当按下键 1 时,发光二极管 LED1 亮;当按下键 2 时,发光二极管 LED2 亮; 当按下键 3 时,发光二极管 LED3 亮; 当按下键 4 时,发光二极管 LED4 亮; 当按下键 5 时,发光二极管 LED5 亮; 当按下键 6 时,发光二极管 LED6 亮; 当按下键

11、 7 时,发光二极管 LED7 亮; 当按下键 8 时,发光二极管 LED8 亮; 当按下键 9 时,发光二极管 LED9 亮;当按下键 10 时,发光二极管 LED10 亮; 当按下键 11 时,发光二极管 LED8-LED1 依次渐亮;当按下键 12 时,发光二极管 LED1-LED8 依次渐亮;当按下键 13 时,发光二极管 LED8-LED1 依次全亮;当按下键 14 时,发光二极管 LED1-LED8 依次全亮;附录:1.程序:#include #define uint unsigned int #define uchar unsigned char #define keyrow P

12、0 #define keyline P2 uchar code keyv8=1,2,4,8; uchar keyscan(void) uchar keyval,i; keyval=0; keyrow=0xfe; if(keyline!=0xff) for(i=0;i0;m-) delay1 ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=0; delay1ms(10); /*40KHZ 发生器*/ void time_intt1(void) interrupt 3 remoteout=remoteout; extern uchar keyscan(v

13、oid); extern void init(void); extern void send_infrared(uchar keyval); void delay1ms(uint time) uint i,j; for(i=0;i #include #define uchar unsigned char #define uint unsigned int sbit remotein=P31; extern void delay1ms(uint time); uchar value; /*初始化*/ void clearmen(void) EX0=1; EA=1; /*外中断遥控接收函数*/ void intt0(void) interrupt 0 uchar keyval,k,sign; EX0=0;sign=0;keyval=0; if(remotein=0) delay1ms(2); if(remotein=0) while(1) while(remotein=0); keyval+;k=0;delay1ms(1); while(remotein=1) delay1ms(1);k+; if(k2) value=keyval-1;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号