毕业设计单片机遥控系统的应用设计.docx
- 文档编号:9650385
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:25
- 大小:167.18KB
毕业设计单片机遥控系统的应用设计.docx
《毕业设计单片机遥控系统的应用设计.docx》由会员分享,可在线阅读,更多相关《毕业设计单片机遥控系统的应用设计.docx(25页珍藏版)》请在冰豆网上搜索。
毕业设计单片机遥控系统的应用设计
摘要
遥控器是一种用于远端控制机械的装置,采用单片机进行遥控系统的应用设计,具有硬件接口的简单方便,编程灵活多样,操作码个数可随意设定等优点。
本设计遥控发射电路主要有单片机AT89C52控制电路、行列式操作键盘、红外线发射、遥控接收电路构成。
通过单片机软件解码实现对一个电灯的调光,以及对继电器的控制功能。
本设计的红外遥控系统具有节能和环保的特点,有家庭或工业控制现场。
一些手动操作不太方便的场合可以通过设置代替手动操作,利用该遥控器控制其他设遥控功能的电路。
如电灯、计算机、电脑、饮水机等,可极大方便人们生活。
关键字:
单片机;红外线发射器;遥控接收器。
目录
摘要I
第1章绪论1
第2章功能要求1
第3章方案论证2
第4章系统硬件电路的设计3
4.1遥控发射器的电路设计3
4.2遥控接收系统的电路设计5
第5章系统程序的设计10
5.1系统功能的实现方法10
5.2遥控发射及接收控制程序设计流程图11
第6章调试及性能分析12
6.1调试12
6.2性能指标13
第7章控制源程序清单13
第8章总结22
参考文献22
致谢23
第1章绪论
随着计算机的不断发展,它的一个重要分支——单片机的应用正在不断地走向深入,现在单片机越来越广泛地用于智能仪表、工业控制、日常生活等许多领域。
随着移动通信设备的日益普及,红外线遥控已成为目前广泛使用的一种通信和遥控手段,许多电器装置上纷纷采用红外线遥控,给人们的工作,生活带来了方便。
因此进行基于单片机的红外线遥控设计有着十分重要的现实意义。
论文结合当前红外钱遥控的技术和单片机的应用技术,研究设计了一个基于单片机的红外遥控电脑系统,实现了红外线遥控电脑的基本功能。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。
第2章功能要求
单片机遥控应用系统要求用单片机作为控制芯片制作一个遥控器,另一个单片机控制系统能被遥控操作,本单片机制作十五路电器遥控器,可以分别控制十五个电器的电源开关,并且可对一路电灯进行亮度的遥控。
采用脉冲个数编码,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
次暗移相角控制延时:
256μS×19H=6400μS
中间亮移相角控制延时:
256μS×16H=5632μS
次亮移相角控制延时:
256μS×12H=4608μS
最亮移相角控制延时:
256μ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"
#include"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 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;remoteout=0;//40KHZ发3毫秒 for(m=keyvol;m>0;m--) { delay1ms (1); //停1毫秒 ET1=1;TR1=1;delay1ms (1);ET1=0;TR1=0;remoteout=0;//40KHZ发1毫秒 } delay1ms(10); } // tx() { switch(keyvol) { case0: keyvol=keyvol+1;sed();break; case1: keyvol=keyvol+1;sed();break; case2: keyvol=keyvol+1;sed();break; case3: keyvol=keyvol+1;sed();break; case4: keyvol=keyvol+1;sed();break; case5: keyvol=keyvol+1;sed();break; case6: keyvol=keyvol+1;sed();break; case7: keyvol=keyvol+1;sed();break; case8: keyvol=keyvol+1;sed();break; case9: keyvol=keyvol+1;sed();break; case10: keyvol=keyvol+1;sed();break; case11: keyvol=keyvol+1;sed();break; case12: keyvol=keyvol+1;sed();break; case13: keyvol=keyvol+1;sed();break; case14: keyvol=keyvol+1;sed();break; case15: keyvol=keyvol+1;sed();break; default: break; } } // // /**********键功能函数************/ keywork() { keyvol=0x00;key1=0xf0;if(key0! =0xff) {delay1ms(20);if(key0! =0xff) {while(key0! =0xff); key1=0xfe;if(key0! =0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i;tx();}} } else{key1=0xfd;if(key0! =0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i+8;tx();}} }} //key1=0xfb;if(key0! =0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i+16;tx();}} } //key1=0xf7;if(key0! =0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i+24;tx();}} } } } } // // /***********主函数***************/ main() { clearmen(); //初始化 while (1) { keywork(); //按键扫描 } } // // /*********40KHZ发生器***********/ //定时中断T1 voidtime_intt1(void)interrupt3 { remoteout=~remoteout; } // // //*********************结束**************************// /*********************************************************************/ // incept.c // 遥控接收处理器 // LRM2004.10.22 /*********************************************************************/ //使用AT89C52单片机,12MHZ晶振, // //#pragmasrc(E: \remote.asm) #include"reg51.h" #include"intrins.h" //_nop_();延时函数用 // #defineucharunsignedchar #defineuintunsignedint #definedisoutP1 //显示输出 // sbit remotein=P3^1; //遥控输入 sbit sin=P3^0; //基准正弦波相位输入 sbit AA=P0^0; sbit BB=P0^1; sbit CC=P0^2; sbit DD=P0^3; sbit EE=P0^4; sbit FF=P0^5; sbit GG=P0^6; sbit HH=P0^7; sbit II=P2^0; sbit JJ=P2^1; sbit KK=P2^2; sbit LL=P2^3; sbit MM=P2^4; sbit NN=P2^5; sbit PP=P2^6; sbit QQQ=P2^7; // // uinti,j,m,n,k,s=1; uintkeyvol; //值存放 // //// /*********1毫秒延时程序**********/ delay1ms(uintt) { for(i=0;i for(j=0;j<120;j++) ; } // /***********初始化函数**********/ clearmen() { EX0=1; EA=1; //开总中断 } // // // /**********函数************/ loop() { switch(disout&0x07) { case0: {s=1;break;} case1: {s=2;break;} case2: {s=3;break;} case3: {s=4;break;} case4: {s=5;break;} case5: {s=6;break;} case6: {s=7;break;} case7: {s=8;break;} default: break;} } // // /***********主函数***************/ main() { clearmen(); //初始化 loop(); P2=0xfe; while (1) { while(sin==1); delay1ms(s); QQQ=0;delay1ms (1);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) { case2: {AA=~AA;break;} case3: {BB=~BB;break;} case4: {CC=~CC;break;} case5: {DD=~DD;break;} case6: {EE=~EE;break;} case7: {FF=~FF;break;} case8: {GG=~GG;break;} case9: {HH=~HH;break;} case10: {PP=~PP;break;} case11: {NN=~NN;break;} case12: {MM=~MM;break;} case13: {LL=~LL;break;} case14: {KK=~KK;break;} case15: {JJ=~JJ;break;} case16: {II=~II;break;} case17: {if(disout==0x00){disout=0xff;}else{disout--;}loop();break;} default: break; } } } EX0=1; } // // //*********************结束**************************// 第8章总结 课程设计锻炼同学们独立动手能力,发现问题,解决问题的重要环节。 对于同学们能力的提高具有很大的作用。 一方面他能帮助同学们巩固学过的知识,另一方面又能帮助我们学到一些新的知识。 因此,它是非常有意义的。 在刚拿到这个题目的时候,脑袋里还是一塌糊涂,根本还不知道到底该如何动手,但在老师的精心指导下。 发现他并不是之前想象的那么难。 很多大的问题把它化解成小问题,再把小问题逐个解决后,大的问题也就没有了。 其中还发现一个很大的问题: 就是很难将书本上的东西灵活地运用到这里面来,自己的动手能力还有待提高。 这次课程设计终于顺利完成了,在设计中遇到了很多问题,这在平时的学习当中是没有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 单片机 遥控 系统 应用 设计