毕业设计单片机遥控系统的应用设计Word文档格式.docx
《毕业设计单片机遥控系统的应用设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《毕业设计单片机遥控系统的应用设计Word文档格式.docx(25页珍藏版)》请在冰点文库上搜索。
单片机遥控应用系统要求用单片机作为控制芯片制作一个遥控器,另一个单片机控制系统能被遥控操作,本单片机制作十五路电器遥控器,可以分别控制十五个电器的电源开关,并且可对一路电灯进行亮度的遥控。
采用脉冲个数编码,4×
8键盘开关,可扩充到对32个电器的控制。
第3章方案论证
目前市场上一般设备系统采用专用的遥控编码及解码集成电路。
此方案具有制作简单容易等特点,但由于功能键数及功能受到特定的限制,只适合用于某一专用电器产品的应用,应用范围受到限止。
而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随意设定等优点。
本单片机遥控应用系统采用红外线脉冲个数编码、单片机软件解码实现了对十五个小灯的开关控制,其中一路为一个交流电灯,可以进行亮度的遥控。
图3.1和图3.2为该应用系统的遥控器设计原理框图及接收控制系统设计原理框图。
图3.1
单片机遥控器设计原理框图
图3.2接收控制系统设计原理框图
第4章系统硬件电路的设计
单片机遥控应用系统电路分遥控发射器电路和遥控接收系统电路。
4.1遥控发射器的电路设计
图4.1.1为该系统遥控发射器的电路原理图,其中P1口和P0口作键扫描端口,具有32个功能操作键。
第(9)脚为单片机的复位脚,采用简单的RC上电复位电路,(15)脚作为红外线遥控码的输出口,用于输出40KHz载波编码。
(18)、(19)脚接12M晶振。
P0口需接上拉电阻。
图4.1.1遥控发射器电原理图
1AT89C52单片机
遥控电路的主芯片采用美国ATMEL公司的AT89C52FLASH单片机,它具有8K字节可重编程闪速存储器,使用5V电源电压、256×
8位的内部RAM,3个16位定时器/计数器,7个中断源以及空闲和掉电方式等功能。
遥控器如用AT89C52中的LV低电压系列,可用2节1.5V电池供电。
2行列式操作键盘
行列式操作键盘又称为矩阵式键盘。
用I/O线组成行、列结构,按键设置在行列的交点上,行列线分别连接到按键开关的两端,键盘中有无按键按下是由列线送入扫描字、行线读入行线状态来判断的,有键按下时通过查键并执行键功能程序。
3红外线发射电路
遥控器信息码由AT89C52单片机的定时器1中断产生40KHZ红外线方波信号,由P3.5口输出,经过三极管9013放大,由红外线发射管发送。
电阻R1的大小可以改变发射距离。
4.2遥控接收系统的电路设计
图4.2.1为该遥控系统的接收器主电路原理图,控制系统主要由AT89C52单片机、+5V电源电路、红外接收电路、50HZ交流电过零检测电路、电灯亮灭及调光控制电路等组成。
遥控器发射的红外信号经红外接收处理传送给单片机,单片机根据不同的信息码进行对十五个端口的控制操作。
其中P1.1—P1.2作为数码管的二进制数据输出,显示数字为0—7,7代表最亮,0代表最暗,采用4511集成块硬件译码显示数值。
P0.0—P0.7以及P2.0—P2.6作为15个电器的电源控制输出,接口可以用继电器或可控硅,在本电路中,P2.0口控制一个电灯的亮灭。
P2.7为可控硅调光灯的调光脉冲输出。
第10脚P3.0口为50HZ交流市电相位基准输入,第(12)脚为中断输入口,P3.1用于接收红外遥控码输入信号。
图4.2.1十五路电器控制器电原理图
1.电源电路
电源电路由桥式整流、虑波电容、7805稳压器及电源指示灯组成。
交流电经过桥式整流变成直流电,再经过电容滤波,7805集成稳压器稳压成为稳定的+5V电源,用一个发光二极管指示灯指示电源状态,图4.2.2为电源电路图。
图4.2.2控制器电源电路图。
2.50HZ交流电过零检测电路
交流电过零检测电路如图4.2.3所示。
图4.2.3交流电过零检测电路图
过零检测电路由桥式整流电路和2个9013三极管组成。
当UA=UBE>
=0.7V时,T1三极管导通,T2三极管截止,B点为低电平,C点(P3.0)为高电平;
当UA=UBE<
0.7V时,T1三极管截止,T2三极管导通,B点变高电平,C点(P3.0)为低电平。
50HZ交流电过零检测电路图中各点电压波形如图4.2.4所示。
图4.2.4交流电过零检测电路图中各点电压波形图
3.电灯开关及亮度控制电路
图4.2.5为可控硅光亮控制电路设计原理图。
电灯的开关受P2.0口控制,也可由可控硅的导通角控制。
AT89C52产生可控硅控制的移相脉冲,移相角的改变实现导通角的改变,即当移相角较大时,可控硅的导通角较小,输出电压较低,电灯较暗;
当移相角较小时,可控硅的导通角较大,输出电压较高,电灯较亮。
图4.2.5可控硅光亮控制电路图
当AT89C52的P2.7位低电平时,9012三极管导通,三极管集电极电流驱动光电耦合器导通,使可控硅的G极产生脉冲信号触发可控硅导通;
当AT89C52的P2.7位高电平时,9012三极管、光电耦合器、可控硅都处于截止状态。
可控硅导通角控制电路中各点波形如图4.2.6所示。
图4.2.6可控硅导通角控制电路中各点波形图
第5章系统程序的设计
5.1系统功能的实现方法
(1)遥控码的编码格式
遥控采用脉冲个数编码,不同的脉冲个数代表不同的码。
最小为2个脉冲,最大为17个脉冲。
为了使接收可靠,第一位码宽为3mS,其余为1mS,遥控码数据帧间隔大于10mS(图5.1.1)。
图5.1.1P3.5端口输出编码波形图
(2)遥控码的发射
当某个操作按键按下时,单片机先读出键值,然后根据键值设定遥控码的脉冲个数,再调制成40KHZ方波由红外线发光管发射出去。
P3.5端口的输出调制波如图8.10。
(3)数据帧的接收处理
当红外线接收器输出脉冲帧数据时,第一位码的低电平将启动中断程序,实时接收数据帧。
在数据帧接收时,将对第一位(起始位)码的码宽进行验证,若第一位低电平码的脉宽小于2mS,将作为错误码处理,当间隔位的高电平脉宽大于3mS时,结束接收,然后根据累加器A中的脉冲个数,执行相应输出口的操作。
图5.1.2为红外线接收器输出的一帧遥控码波形。
图5.1.2红外线接收器输出的一帧遥控码波形图
5.2遥控发射及接收控制程序设计流程图
图5.2.1遥控发射器主程序、键扫程序、遥控码发射程序流程图
图5.2.2遥控接收器主程序、中断程序流程图
第6章调试及性能分析
6.1调试
系统在完成硬件的检查后主要进行软件的调试,对遥控器的调试主要是用示波器观察能否在遥控接收器中输出图8.11所示的波形,另外调整发射电阻的大小可以改变红外线发射的作用距离。
电灯亮度控制系统的调试主要是对可控硅延时时间的调整,电灯按0-7共八档进行亮度的调整,控制延时经调试后确定如下:
最最暗时的移相角控制延时:
256μS×
26H=9728μS
最暗移相角控制延时:
256μS×
1CH=7168μS
次暗移相角控制延时:
19H=6400μS
中间亮移相角控制延时:
16H=5632μS
次亮移相角控制延时:
12H=4608μS
最亮移相角控制延时:
0EH=3584μS
遥控接收头在安装时应注意尽量靠表面,以扩大接收的角度,不同厂家的遥控接收头的灵敏度也不一致,应选择确定。
6.2性能指标
调试后系统性能指标测试如下:
1.最大遥控距离:
10米
2.发射接收角:
水平最大90度
3.遥控器发射时工作电流:
8mA
4.遥控器静态电流:
0.6mA
5.电灯最亮电压:
交流200V
6.电灯最暗电压:
交流10V
采用红外线遥控方式时,距离、角度等使用效果受一定的限制,如果采用调频或调幅发射接收,则发射距离会更远,接收将不受角度的影响。
本单片机遥控编码及解码方案适合一切需要应用到遥控的电器系统,是自行设计带遥控功能的控制系统首选理想方案。
第7章控制源程序清单
以下是遥控器及接收系统单片机控制C源程序清单:
/*********************************************************************/
//
send.c
遥控发射器
LRM2004.10.22
//使用AT89C52单片机,12MHZ晶振,
//
//#pragmasrc(E:
\remote.asm)
#include"
reg51.h"
intrins.h"
//_nop_();
延时函数用
#defineucharunsignedchar
#defineuintunsignedint
#definekey0P0
//键列线
#definekey1P1
//键行线
sbit
remoteout=P3^5;
//遥控输出口
uinti,j,m,n,k,s;
ucharkeyvol;
//键值存放
uchar
codekeyv[8]={1,2,4,8,16,32,64,128};
////
/*********1毫秒延时程序**********/
delay1ms(uintt)
{
for(i=0;
i<
t;
i++)
for(j=0;
j<
120;
j++)
;
}
/***********初始化函数**********/
clearmen()
remoteout=0;
//关遥控输出
IE=0x00;
IP=0x01;
TMOD=0x22;
//8位自动重装模式
TH1=0xf3;
//40KHZ初值
TL1=0xf3;
EA=1;
//开总中断
/**********发射函数************/
sed()
ET1=1;
TR1=1;
delay1ms(3);
ET1=0;
TR1=0;
//40KHZ发3毫秒
for(m=keyvol;
m>
0;
m--)
delay1ms
(1);
//停1毫秒
//40KHZ发1毫秒
delay1ms(10);
tx()
switch(keyvol)
{
case0:
keyvol=keyvol+1;
sed();
break;
case1:
case2:
case3:
case4:
case5:
case6:
case7:
case8:
case9:
case10:
case11:
case12:
case13:
case14:
case15:
default:
/**********键功能函数************/
keywork()
keyvol=0x00;
key1=0xf0;
if(key0!
=0xff)
{delay1ms(20);
{while(key0!
=0xff);
key1=0xfe;
=0xff){for(i=0;
8;
i++){if(~key0==keyv[i]){keyvol=i;
tx();
}}
}
else{key1=0xfd;
i++){if(~key0==keyv[i]){keyvol=i+8;
}}
//key1=0xfb;
i++){if(~key0==keyv[i]){keyvol=i+16;
//key1=0xf7;
i++){if(~key0==keyv[i]){keyvol=i+24;
/***********主函数***************/
main()
clearmen();
//初始化
while
(1)
keywork();
//按键扫描
/*********40KHZ发生器***********/
//定时中断T1
voidtime_intt1(void)interrupt3
remoteout=~remoteout;
//*********************结束**************************//
incept.c
遥控接收处理器
#definedisoutP1
//显示输出
remotein=P3^1;
//遥控输入
sin=P3^0;
//基准正弦波相位输入
AA=P0^0;
BB=P0^1;
CC=P0^2;
DD=P0^3;
EE=P0^4;
FF=P0^5;
GG=P0^6;
HH=P0^7;
II=P2^0;
JJ=P2^1;
KK=P2^2;
LL=P2^3;
MM=P2^4;
NN=P2^5;
PP=P2^6;
QQQ=P2^7;
uinti,j,m,n,k,s=1;
uintkeyvol;
//值存放
EX0=1;
/**********函数************/
loop()
switch(disout&
0x07)
case0:
{s=1;
case1:
{s=2;
case2:
{s=3;
case3:
{s=4;
case4:
{s=5;
case5:
{s=6;
case6:
{s=7;
case7:
{s=8;
default:
//初始化
loop();
P2=0xfe;
while(sin==1);
delay1ms(s);
QQQ=0;
QQQ=1;
/************外中断遥控接收函数**************/
//外中断0
voidintt0(void)interrupt0
EX0=0;
keyvol=0;
if(remotein==0)
{delay1ms
(1);
if(remotein==0)
{while
(1)
{while(remotein==0);
keyvol++;
k=0;
while(remotein==1){delay1ms
(1);
k++;
if(k>
2){gotoOOUUTT;
};
OOUUTT:
switch(keyvol)
{AA=~AA;
{BB=~BB;
{CC=~CC;
{DD=~DD;
{EE=~EE;
{FF=~FF;
{GG=~GG;
{HH=~HH;
{PP=~PP;
{NN=~NN;
{MM=~MM;
{LL=~LL;
{KK=~KK;
{JJ=~JJ;
case16:
{II=~II;
case17:
{if(disout==0x00){disout=0xff;
}else{disout--;
}loop();
第8章总结
课程设计锻炼同学们独立动手能力,发现问题,解决问题的重要环节。
对于同学们能力的提高具有很大的作用。
一方面他能帮助同学们巩固学过的知识,另一方面又能帮助我们学到一些新的知识。
因此,它是非常有意义的。
在刚拿到这个题目的时候,脑袋里还是一塌糊涂,根本还不知道到底该如何动手,但在老师的精心指导下。
发现他并不是之前想象的那么难。
很多大的问题把它化解成小问题,再把小问题逐个解决后,大的问题也就没有了。
其中还发现一个很大的问题:
就是很难将书本上的东西灵活地运用到这里面来,自己的动手能力还有待提高。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,这在平时的学习当中是没有