红外线遥控插座的毕业设计报告文档格式.docx

上传人:b****1 文档编号:4214351 上传时间:2023-05-03 格式:DOCX 页数:21 大小:270.71KB
下载 相关 举报
红外线遥控插座的毕业设计报告文档格式.docx_第1页
第1页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第2页
第2页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第3页
第3页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第4页
第4页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第5页
第5页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第6页
第6页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第7页
第7页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第8页
第8页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第9页
第9页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第10页
第10页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第11页
第11页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第12页
第12页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第13页
第13页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第14页
第14页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第15页
第15页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第16页
第16页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第17页
第17页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第18页
第18页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第19页
第19页 / 共21页
红外线遥控插座的毕业设计报告文档格式.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

红外线遥控插座的毕业设计报告文档格式.docx

《红外线遥控插座的毕业设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《红外线遥控插座的毕业设计报告文档格式.docx(21页珍藏版)》请在冰点文库上搜索。

红外线遥控插座的毕业设计报告文档格式.docx

红外解码;

单片机控制;

红外遥控插座

2.3LCD5110液晶显示屏程序的编写3

学习型红外遥控器的设计

设计要求

设计任务和要求:

设计并制作一个智能遥控插座。

要求:

(1)能用按键和彩电遥控器进行设定和控制。

(2)能遥控开、关小家电,如电风扇、电视机、饮水机等。

(3)能够设定开关开启时间的长短,如设定开启时间为半小时,时间到后立即切断开关。

(4)能显示遥控状态,如开关的开合、所设定的时间等。

前言

本课程设计是一个基于单片机的红外遥控插座,能够学习红外遥控插座的某功能。

利用单片机AT89C52对多个红外遥控编码的脉冲宽度进行测量,并原封不动地把发射信号中高、低电平的时间宽度记忆至扩展存储区的指定地址。

通用红外遥控系统由发射和接收两大部分组成,应用编/解码芯片来进行控制操作,发射部分包括键盘矩阵、编码调制、LED红外发送器;

接收部分包括光、电转换放大器、解调、解码电路。

专用集成电路

1、方案论证

为了实现红外遥控插座的功能,系统应具有红外线的接收解码、红外线调制、操作按键和功能控制功能等单元。

由于功能定为能用按键和彩电遥控器进行设定和控制。

,因此决定采用STC89C52单片机作为控制器。

STC89C52单片机中具有256字节的内存单元,可存储遥控码脉宽的数据。

遥控码的脉宽数据可用红外线接收器解码后送单片机读入,发射时有单片机产生40kHZ红外调制信号送红外发射管发射.红外遥控插座的实现方案框图如图1所示。

图1红外遥控插座系统框图

2、基本功能模块设计与说明

2.1.初始化模块

初始化模块的主要任务时清存放脉宽数据单元,,将定时器设为T0模式,设置中断。

2.2遥控码读入处理模块

红外遥控编码的研究

步骤:

1、了解红外遥控编码的编码及解码:

(1)红外遥控系统

 

(2)红外编码的特征:

采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;

以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如下图所示:

2、使用数字示波器获取彩电遥控器并实现解码:

(1)首先学习和了解数字示波器

(2)应用数字示波器的触发方式和存储功能进行对波形的获取;

绘制自己在示波器看到的波形,并解码;

2.3:

LCD5110液晶显示屏程序的编写

1、了解LCD5110的使用资料及使用手册

(1)LCD5110的特征

单色、单芯片LCD控制/驱动

48行,84列输出

显示数据RAM48*84位

芯片集成:

——LCD电压发生器(也可以使用外部电压供应)

——LCD偏置电压发生器

——振荡器不需要外接元件(也可以使用外部时钟)

外部RES(复位)输入引脚

串行界面最高4.0Mbits/S

CMOS兼容输入

混合速率:

48

逻辑电压范围VDD到VSS:

2.7V~3.3V

显示电压范围VLCD到VSS:

——6.0~8.5VLCD内部电压发生器(充许电压发生器)

——6.0~9.0VLCD外部电压供应(电压发生器关闭)

低功耗,适用于电池供电系统

关于VLCD的温度补偿

使用温度范围:

-25~70℃

2.4主模块

主程序在完成上电初始化后进行按键查询,当确认有键按下时将编码发出去。

主程序流程图4所示

图4主程序图

3、调试与操作说明

3.1红外遥控插座的电路原理图的设计

图4所示为该红外遥控插座的电路原理图,单片机使用STC89C52,还用了cx20106芯片,其中:

P0.1、P0.2口是控制继电器的端口;

P1.0、P1.1、P1.2、P1.3口是用来控制按键的端口;

P2.4口是片选端口;

P2.3为单片机的复位脚,采用0电复位电路;

P2.5端口1写数据,0写指令;

P2.6为数据端口;

P2.7为控制时钟的端口。

图4红外遥控插座电路原理图

3.2程序的编译及下载

1、创建工程并选择AT89C52型号芯片。

2、新建L5-6.c文件。

3、编写源程序并编译,如图6所示。

图5红外遥控插座的程序编译图

3、打开STC-ISP下载软件,选择STC89C52RC型号的芯片,选择串口1并导入编译生成的hex文件。

4、将单片机与计算机的串口相连,并将程序下载至单片机,如图7所示。

图6红外遥控插座程序下载图

3.3实际电路的测试

程序下载进单片机后,打开单片机开发板上电源接口开关以及电源切换开关,再把芯片AT89C52放入电路,按下遥控,看看能补能实现功能;

再按下按键看看是否也能实现功能,若都能实现,说明达到了预期目的。

4、课程设计心得体会

本次课程设计的基于单片机学红外遥控插座,在keil软件上进行了进行C程序的设计、编译,并将输出的的hex文件通过STC_ISP_V479下载到单片机中,最后在单片机开发板上进行调试,测试硬件电路功能。

经过实践验证,本设计是正确的。

测试中,我们选取了电视机的遥控器作为学习对象,通过学习红外遥控插座,能实现单片机对电器的控制。

达到预期目的,设计完全成功。

本文给出的设计思想也适用于其他基于单片机的系统设计。

我们这次课程设计是通过小组的讨论与实验所完成的,在进行过程中碰到了一些困难。

然而我们并没有因为遇到困难而放弃过,我们不断的相互学习、讨论研究,我们没有因为谁不懂做而嘲笑他,而是耐心的帮助他。

在有些问题实在补懂的时候,我们就会积极的问老师,老师也会耐心的教我们。

通过这次实验我们感觉到动手能力及思维方式得到很大的加强。

在这次课程设计中,我们学会了怎样去根据课题的要求运用学过的知识去设计电路和调试电路。

从中我们发现了实践的重要性,在以后的学习生活中我们要加强理论与实际的结合。

而且这次实验也体现了团队合作的重要性与探索精神的必要性。

这让我明白了很多事要通过努力才能够获得成功的。

只要你不放弃,成功也不会放弃你的。

5、元器件及仪器设备明细

表1元器件及仪器设备明细表

器件名称

型号/版本

数量

备注

微型计算机

长城

一台

keil软件

一套

STC_ISP_V479软件

单片机开发板

STC89RC52

红外接收头

TCL

电视机遥控器

6、参考文献

⑴《集成电子基础教程》,郑家龙、王小海、章安元编,高教出版社,2002年5月

⑵《电子系统设计》,何小艇等编,浙江大学出版社,2000年

⑶《现代电子学及应用》,童诗白、徐振英编,高等教育出版社,1994年

⑷《新编555集成电路应用800例》陈永甫编著电子工业出版社2000年

7、致谢

本次课程设计主要由我、潘胜稳、赖祖鹏3人共同完成,其间当然老师也同样是付出了大量的时间和精力来帮助我们。

不论结果怎样,我们都会欣然接受,因为我们努力过了。

同时我们也要衷心地感谢我们所有的老师,以及帮助我们的同学,要是没你们的帮助我们是不能这么好的完成这次课程设计的。

8、附录

/*------------------------------

主程序

-------------------------------*/

main()

{unsignedchark;

TMOD=0x01;

TH0=0x3c;

TL0=0xb0;

EA=1;

ET0=1;

TR0=1;

Counter=0x00;

res=0;

for(k=0;

k<

250;

k++);

res=1;

LCD_init();

//初始化LCD模块

LCD_clear();

//清屏幕

IRInit();

while

(1)

{

dings();

display();

while(k11==1)//调分

{LCD_write_hanzi(1,0,0);

LCD_write_hanzi(3,0,1);

tiaozheng();

if(ss==15)

{k11=0;

}

while(k11==2)//调时

LCD_write_hanzi(3,0,2);

while(k11==3)//定分1

{LCD_write_hanzi(1,0,3);

LCD_write_shu(5,0,1);

LCD_write_shu(0,2,shi/10);

LCD_write_shu(1,2,shi%10);

LCD_write_shu(2,2,10);

LCD_write_shu(3,2,fen/10);

LCD_write_shu(4,2,fen%10);

//定时1

while(k11==4)

while(k11==5)//定分2

LCD_write_shu(5,0,2);

LCD_write_shu(0,2,shi1/10);

LCD_write_shu(1,2,shi1%10);

LCD_write_shu(3,2,fen1/10);

LCD_write_shu(4,2,fen1%10);

//定时2

while(k11==6)

while(k11==7)//定分3

LCD_write_shu(5,0,3);

LCD_write_shu(0,2,shi2/10);

LCD_write_shu(1,2,shi2%10);

LCD_write_shu(3,2,fen2/10);

LCD_write_shu(4,2,fen2%10);

//定时3

while(k11==8)

while(k11==9)//定分4

LCD_write_shu(5,0,4);

LCD_write_shu(0,2,shi3/10);

LCD_write_shu(1,2,shi3%10);

LCD_write_shu(3,2,fen3/10);

LCD_write_shu(4,2,fen3%10);

//定时4

while(key()==10)

}

/********************************************************************************

*描述:

*

*数码管显示遥控键值读取器*

*遥控器接p3.2*

*现象:

当按遥控器时,按下事数码管会有闪烁,为什么会闪烁呢*

**

*连接方法:

使用红外功能时J1跳线短接*

*****************************************************************************8**/

#include<

reg51.h>

sbitIRIN=P3^2;

//红外接收器数据线

voidIRdelay(charx);

//x*0.14MS

voidbeep();

unsignedcharIRCOM[7];

unsignedcharY0;

/*******************************************************************/

voidIRInit()

{

IE|=0x81;

//允许总中断中断,使能INT0外部中断

TCON|=0x01;

//触发方式为脉冲负边沿触发

IRIN=1;

//I/O口初始化

}

/**********************************************************/

voidIR_IN(void)interrupt0

unsignedcharj,k,N=0;

EX0=0;

IRdelay(5);

if(IRIN==1)

{EX0=1;

return;

}

//确认IR信号出现

while(!

IRIN)//等IR变为高电平,跳过9ms的前导低电平信号。

{IRdelay

(1);

for(j=0;

j<

2;

j++)//收集2组数据

{

for(k=0;

13;

k++)//每组数据有13位

{

while(IRIN)//等IR变为低电平,跳过4.5ms的前导高电平信号。

IRIN)//等IR变为高电平

while(IRIN)//计算IR高电平时长

IRdelay

(1);

N++;

if(N>

=30)

{EX0=1;

return;

}//0.14ms计数过长自动离开。

}//高电平计数完毕

IRCOM[j]=IRCOM[j]>

>

1;

//数据最高位补“0”

if(N>

=8){IRCOM[j]=IRCOM[j]|0x80;

}//数据最高位补“1”

N=0;

for(j=2;

4;

8;

k++)//每组数据有8位

IRdelay

(1);

N++;

{EX0=1;

return;

}//endfork

}//endforj

if(IRCOM[2]!

=~IRCOM[3])

{EX0=1;

EX0=1;

voidIRdelay(unsignedcharx)//x*0.14MS

unsignedchari;

while(x--)

for(i=0;

i<

i++){}

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2