基于单片机的无线遥控器设计结题报告
发布时间:2024-11-08
发布时间:2024-11-08
采用简易红外技术
电子工程学院创新项目结题报告
项目名称: 项目成员:
基于单片机的无线遥控器设计
.
. .
.
项目联系人:
所在班级:
结题日期:
2012年5月17日 .
电子工程学院 二○一○年六月制
采用简易红外技术
电子工程学院创新项目总结报告
项目编号: 填表日期:2012年 5 月17 日
采用简易红外技术
变为编码脉冲编码脉冲调制信号,再由驱动电路驱动红外发射器发射红外信号。 本发射电路采用一个 12M 的晶体振荡器, 产生相对应受控开关的脉冲频率, 通过红 外发射管发射出去。发射电路图如下:
其中第 9 脚(RST)所接的是一个最简单的 RC 上电复位电路。P3.5 接一个三级管 发光二级管利用红外光为介质, 将控制信以红外光脉冲的形式发射出去, 由接收电路再 进行放大,解调,信号还原。 晶体三极管主要用于放大电路中起放大作用, 本设计采用的是一个 NPN 型的三级管 9013,为了得到更大的放大倍
数,采用了类似共射级接法。因为从 p3.5 口出来的为高 电压, 而三级管 9013 不能承受此电压, 所以采用了一个阻值较大的电阻来起分压作用, 从而缓冲了加到三级管上的电压。 红外发射管的工作电压一般为 1.5 至 1.7v,不能直接用 5V 的电压加在上面,所以 又接了一个 39Ω 的电阻,起分流作用,以保证红外发射管正常工作。本设计采用的红 外发射管为 J16TE2-8A6R01M-SC。 下图为该系统遥控发射器电路原理图,其中第 1 脚至第 6 脚接 6 个点触式的开关, 用来遥控电器电源开关,第 9 脚为单片机的复位脚,采用简单的 RC 上复位电路,15 脚 作为红外线遥控码的输出口,用于输出 40kHz 载波编码,18,19 脚接 12MHz 晶振。
采用简易红外技术
②接收部分 以下是为该系统的遥控接收器电原理图。 34 至 39 口接作为 6 个电器的电源控制 第 输出。第 10 脚为 50Hz 交流市电相位基准输入,第 12 脚为中断输入口,第 11 脚用于接 收红外遥控码输入信号。
3、系统功能实现方法 ①遥控码的编码格式 该遥控器采用脉冲个数编码,不同的脉冲个数代表不同的码,最小为 2 个脉冲,最 大为 9 个脉冲,为了使接收可靠,第一位码宽为 3ms,其余为 1ms,遥控码数据帧间隔 大于 10ms,如下图所示:第 15 脚输出编码波形
②遥控码的发射 当某个被控电器的电源开关被按下时,单片机先读出键值,然后根据键值设定遥控 码的脉冲个数,再调制成 40kHz 方波由红外线发光管发身出去。 发射电路的第 15 脚的输
采用简易红外技术
出调制波如下图所示:
③数据帧的接收处理 当红外线接收器输出脉冲帧数据时,第一位码的低电平将启动中断程序,实时接收 数据帧.在数据帧接收时,将对第一位(起始位)码的码宽进行验证.若第一位低电平码的 脉宽小于 2ms,将作为错误码处理.当间隔位的高电平脉宽大于 3ms 时,结束接收,然后根 据累加器 A 中的脉冲个数,执行相应输出口的操作.下图为红外线接收器输出的一帧遥 控码波形图.
4、遥控发射及接收控制电路的软件设计 ①遥控发射部分开始
初始化
调用键扫描 处理子程序
上图是遥控发射的主程序,首先初始化程序,然后调用键扫描处理子程序
扫键开始
采用简易红外技术
键按下? N Y 返回 逐行扫描,按 P 口值查键号
按键号转至相应的 发射程序
扫键过程:首先判断控制键是否按下,若有控制键按下则进行逐行扫描,按照 P 口值 查找键号.最后按照键号转至相应的发射程序如下所示。
红外信号发射过程:首先装入发射脉冲个数(发射时为 3ms 脉冲,停发时为 1ms 脉 冲),此时若发射脉冲个数为 1 则返回主程序,若不为 1 则发 1ms 脉冲,然后停发 1ms 脉冲, 这样便结束整个发射过程. ②遥控接收部分
采用简易红外技术
遥控接收部分,首先
初始化,进入中断过程:首先判断低电平脉宽度是否大于 2ms, 若脉宽不到 2ms,则中断返回;若低电平大于 2ms,则接收并地低电平脉冲计数,接下来看 判断高电平脉宽度冲是否大于 3ms,若脉宽不到 3ms,则返回上一接收计数过程;若高电 平脉宽大于 3ms,则按照脉冲个数至对应功能程序.此时中断返回. 5、设计调试 控制电路板的安装与调试在整个电路的设计中占有重要位置, 它是把理论付诸实践 的过程, 也是把纸面设计转变位实际产品的必经阶段。 对试验阶段的电路板的安装一般 有两种方式即焊接方式和面包板插接方式。 使用面包板焊接更加方便, 容易更换线路和 器件,而且可以多次使用。本设计常用的调试仪器有:万用表、稳压电源、示波器、信 号发生器等。 调试步骤: ①调试前不加电源的检查 对照电路图和实际线路检查连线是否正确,包括错接、少接、多接等;用万用表电 阻档检查焊接和接插是否良好;元器件引脚之间有无短路,连接处有无接触不良,二极 管、三极管、集成电路和电解电容的极性是否正确;电源供电包括极性、信号源连线是 否正确;电源端对地是否存在短路(用万用表测量电阻) 。 经过上述检查, 我们发现我们所设计的电路存在错接和连接处不良接触的问题, 经 过细心的检查后,解决了上述的一些电路上的问题。 ②静态检测与调试 断开信号源,把经过准确测量的电源接入电路,用万用表电压档监测电源电压,观 察有无异常现象:如冒烟、异常气味、手摸元器件发烫,电源短路等,如发现异常情况, 立即切断电源,排除故障; 我们的电路在此项测试中如无异常情况,接着我们又分别测量各关键点直流电压, 如静态工作点、放大电路输入、输出端直流电压等是否在正常工作状态下,结果有个别 电路不符, 经过调整电路元器件参数、 更换元器件, 使电路最终工作在合适的工作状态; 对于放大电路我们还用示波器观察是否有自激发生。结果一切正常。 ③动态检测与调试 动态调试是在静态调试的基础上进行的, 调试的方法地在电路的输入端加上所需的 信号源, 并循着信号的注射逐级检测各有关点的波形、 参数和性能指标是否满足设计要 求,如必要,要对电路参数作进一步调整。发现问题,要设法找出原因,排除故障,继 续进行。 我们所设计的遥控器电路是采用码分制遥控方式, 我们用示波器对发射电路输出端 及接收电路输入端的信号波型的进行了检查, 发现当按下不同的开关按钮时所显示的波 型是不同的。这说明了此电路是工作在正常状态的。
采用简易红外技术
④调试注意事项 经过我们自己动手调试电路。 我们从问
题之中总结出来一些常用电路调试的注意事 项。 (1)正确使用测量仪器的接地端,仪器的接地端与电路的接地端要可靠连接; (2)在信号较弱的输入端,尽可能使用屏蔽线连线,屏蔽线的外屏蔽层要接到公 共地线上, 在频率较高时要设法隔离连接线分布电容的影响, 例如用示波器测量时应该 使用示波器探头连接,以减少分布电容的影响。 (3)测量电压所用仪器的输入阻抗必须远大于被测处的等效阻抗。 (4)测量仪器的带宽必须大于被测量电路的带宽。 (5)正确选择测量点和测量 (6)认真观察记录实验过程,包括条件、现象、数据、波形、相位等。 (7)出现故障时要认真查找原因 6、取得的成果 成功完成了设计与制作,发射部分与接收部分可正常通信。
三、项目组成员各自的工作和贡献项目初期小组成员共同讨论并研究各种资料, 确定了设计方案。 在项目实施过程中, 各组员均积极参与设计制作的工作。 A,项目联系人,主要负责项目的组织、管理工作,同时负责资料的综合整理,方 案的最终确定以及项目中的各种文案工作。 B,主要负责硬件的焊接与调试,在项目中做出了很大贡献,运用熟练的专业知识 很好地完成了硬件方面的工作。 C,主要负责软件的编写,通过查阅各种资料,不断修改完善了设计程序,使该设 计更加符合要求。 D,主要负责材料采购及技术支持,确保了项目的顺利进行。
四、工作总结经过几个月的努力, 我们在不断的努力下终于完成了此次设计, 并按设计要求实现 了遥控器的各项功能。 通过这次设计使我们从中学到到了很多课本上学不到的知识, 并 学会了用单片机开发产品的完整的过程, 明白了设计的概念。 通过自己亲自去动手和调 试我们体会到了实践的重要性, 明白了理论结合实践的含义, 同时也提高了自己的动手 能力和团队合作能力,这在我们日后的工作学习中将起到很大作用。
以下内容由专家组填写 评 综合评定: 审 组长签名 情 年 况 姓名: 成 绩 姓名: 姓名: 姓名: 月 日
采用简易红外技术
说明:1、本表由学生、验收专家如实填写;
2、学院教务科汇总后,与有关论文、成果实物及其证明材料等一起备案。 3、专家组以答辩会的形式,根据项目组提交的报告及成果实物对项目进行评审
附录:
发射部分程序: #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit key1=P1^0; sbit key2=P1^1; sbit key3=P1^2; sbit key4=P1^3; sbit key5=P1^4; sbit key6=P1^5; sbit out=P3^5; void delay1ms(int t) {
int i , j; for(i=0; i<t; i++) }
void send(uchar r)
for(j=0; j<125; j++)
;
采用简易红外技术
{ ET1=1; TR1=1; delay1ms(3); ET1=0; TR1=0; out=0;
for(; r>0; r--) { }
delay1ms(10); }
int keyscan( int key ) {
if( 0 == key ) { } }
void keywork() { int i; i=key1 ;
if(keyscan(i)==1) { } i=key2;
send(2); delay1ms(10); if( 0 == key )
return 1; else return 0 ; delay1ms(1); ET1=1; TR1=1; delay1ms(1); ET1=0; TR1=0; out=0;
采用简易红外技术
if(keyscan(i)==1) { } i=key3;
if(keyscan(i)==1) { } i=key4;
if(keyscan(i)==1 ) { } i=key5;
if(keyscan(i)==1) { } i=key6;
if(keyscan(i)==1) { } }
void main() { out=0; IE=0x00; IP=0x01; TMOD=0x22; TH1=0xf3; TL1=0xf3; EA=1; while(1) { } }
keywork(); send(7); send(6); send(5); send(4); send(3);
采用简易红外技术
void time_init1(void)interrupt 3 {
out=~out; }
接收部分程序: #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit in=P3^1; sbit led1=P0^0; sbit led2=P0^1; sbit led3=P0^2; sbit led4=P0^3; sbit led5=P0^4; sbit led6=P0^5; uint i,j,key,r,s=1; delay1ms(int t) {for(i=0;i<t;i++) for(j=0;j<120;j++) ; }
void intt0(void)interrupt 0 {
EX0=0;key=0; if(in==0) {
delay1ms(1); if(in==0) { while(1) {
while(in==0) key++;r=0; while(in==1) {
delay1ms(1);
采用简易红外技术
r++; if(r>2) {
switch(key)
{case 2:{led1=~led1;break;} case 3:{led2=~led2;break;} case 4:{led3=~led3;break;} case 5:{led4=~led4;break;} case 6:{led5=~led5;break;} case 7:{led6=~led6;break;} default:break; } } } } } } EX0=1; }
void main() { EX0=1; EA=1; while(1); }
上一篇:“十三五”规划重点-户外箱式变电站项目建议书(立项报告)
下一篇:万年历星期的算法