无线遥控Word格式.docx
- 文档编号:15096769
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:10
- 大小:331.04KB
无线遥控Word格式.docx
《无线遥控Word格式.docx》由会员分享,可在线阅读,更多相关《无线遥控Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
本课程设计是通过单片机对红外编码及解码来实现的红外遥控系统。
该系统的硬件以STC89C52单片机为核心,结合红外发射管,HS0038B一体化红外接收管,矩阵键盘和四位数码管来搭建整个无线遥控模块的硬件系统。
软件系统是以C语言为编程语言,利用Kiel单片机编程平台,整套软件主要由主函数、编码解码函数、红外发送接收函数,矩阵键盘扫描函数组成。
该系统的工作方式是当矩阵键盘输入相应的数值对应编码值时,单片机内部编码,把一个带有38KHz载频和相应编码的波形通过红外发送管发送出去,经过反射后红外接收头接收波形并通过单片机解码,解码后的按键值在四位数码管上显示出来。
关键词
红外遥控编码解码矩阵键盘中断定时
正文
一、课程设计简介
想要实现最简单的人机交流,需让系统设计遵循先学习后应用、先简单后复杂和先模块后综合的设计原则。
换句话说就是先从系统设计要求出发,系统的发射部分需要设计一个单片机最小系统,然后把串行输出口的数据信号进行调制,再由无线通信模块的发送端把数据信号发送出去;
而系统的接收部分设计也需要一个单片机最小系统,由无线通信模块的接收端把数据信号接收并解调送入串行输入口,最后分别对系统的发射部分和接收部分配以显示模块即可。
二、课程设计目的
1、掌握C语言、单片机、模电、数电、电路设计、传感器等基本理论。
2、掌握红外编码和红外解码基本原理与应用技术。
3、选择合理的可行的系统设计方案,设计制作出无线遥控系统。
三、课程设计内容及要求
1、使用STC89C51单片机控制红外遥控编码,并通过红外发射头发射出去。
2、使用STC89C51单片机对红外接收头接收到的信号进行解码,并通过数码管显示出来。
3、对矩阵键盘进行编码,对每个按键设定一个值。
4、记录发送距离,越远越好。
5、整个系统可靠性能高。
四、系统整体框图
红外发射模块程序流程图
五、各单元模块简介
1.单片机STC89C52主控模块
主控制器采用STC89C52单片机。
STC89C52单片机算术运算能力强,软件编程灵活,另外还具有功耗低、体积小、I/O口丰富和成本低等优点。
并且STC89C52单片机具有3个定时器/计数器,刚好能够满足系统功能的实现。
2、红外编码与发射模块
矩阵键盘产生的二进制信号首先经过单片机和38KHz载频调制成调制信号,其调制原理为通过单片机编程编通过PPM编码方式,当矩阵键盘案件按下后,发射一组108ms的编码脉冲,编码脉冲由9ms高电平和4.5ms的低电平组成的引导码、8位地址码、8位地址反码、8位操作码、8位操作反码组成。
其中38KHz载频用单片机外部中断的边沿触发的方式来产生,通过计算中断的时间间隔来区分“0”和“1”。
经过调制后的信号经过放大后通过红外发射管发射出去。
图5-2-1红外发射信号
3、红外接收与解码模块
红外管发射的信号经过障碍物反射,HS0038B红外接收管接收到信号送回单片机解调。
单片机首先对接收的信号进行检测判别,如果检测到信号是有9ms的低电平和4.5ms的低电平,则说明该信号是红外发射的信号,则读出该码的信息,否则不对接收到的信号进行处理。
图5-3-1红外信号解调
红外传输是一种点对点的传输方式,无线,要对准方向;
IrDA已经是一套标准,IR收/发的组件也是标准化产品。
红外线通信技术适合于低成本、跨平台、点对点的高速数据连接,尤其是嵌入式系统。
本模块采用8050三极管对IO口输出的电流进行放大后,再输入红外发射管的。
在此模块中,输入子模块部分采用的是矩阵键盘输入。
矩阵键盘又名行列式键盘,它是分别使用4条I/O线作为行线和列线组成的键盘。
在行线和列线的交叉点设置按键,故有按键的个数为4×
4个。
这种矩阵键盘结构,能够提高单片机系统的I/O口的利用率。
4、数码管显示模块
一个有四个数码管,通过位选,段选来选3择数码管及显示的内容。
用两个数码管来显示数据,另外两个显示数据反码。
六、软件设计
1、主函数部分
voidmain()
{
Timer_Init();
while
(1)
{
if((read_key()>
=0)&
&
(read_key()<
16))//有按键按下时发射按键值
{
ir_send(read_key());
}
if(irreceok)//接收完毕
{
irpros();
//译码
IROk=0;
//译码结束等待下一次接收
}
display(ircode[2]/16,ircode[2]%16,ircode[3]%16,ircode[3]/16);
}
}
2、显示模块
#include"
display.h"
delay.h"
//CODE是放在程序存储区,只有调用时才会用
//0~F灭共阴代码
ucharcodeseq[]={0x5F,0x44,0x9D,0xD5,0xC6,//01234
0xD3,0xDB,0x45,0xDF,0xD7,//56789
0xCF,0xDA,0x1B,0xDC,0x9B,//ABCDE
0x8B,0x00};
//F熄灭
/*
*函数名:
display
*描述:
数码管显示:
段选和位选控制数码管显示
*调用:
delay1ms(uchari)
*/
voiddisplay(ucharD1,ucharD2,ucharD3,ucharD4)
P0=seq[D1];
//段选
P2=0xEF;
//位选显示第一个数码管P2.4
delay_nms
(1);
P0=seq[D2];
P2=0xDF;
//位选显示第二个数码管P2.5
P0=seq[D3];
P2=0xBF;
//位选显示第三个数码管P2.6
P0=seq[D4];
P2=0x7F;
//位选显示第四个数码管P2.7
3、红外发射和接收模块
include<
reg52.h>
remote.h"
//接收
ucharIrtime;
ucharStartflag;
ucharIrdata[33];
ucharbitnum;
ucharIrReceok;
//检查是否接收
ucharIrcode[4];
voidTimer_Init(void)
EA=1;
//允许CPU中断
TMOD=0X12;
//定时器0为8位自动重装初值方式2
TH0=0X00;
//定时器初值为0
TL0=0X00;
ET0=1;
TR0=1;
IT0=1;
EX0=1;
//红外接收
voidtime0()interrupt1//定时器0
Irtime++;
//定时器计数到达255时(约255us)产生中断
voidint0()interrupt0//外部中断0函数。
用来存放时间数值
if(Startflag)
{
if(Irtime>
32)//判断有没有出错,超过8MS还没收到,下个中断看错出错
bitnum=0;
Startflag=0;
}
Irdata[bitnum]=Irtime;
Irtime=0;
bitnum++;
if(bitnum==33)
IrReceok=1;
else//第一个脉冲是引导码
Startflag=1;
voidIrpros(void)//时间数值转化为码值
{
uchara,b,c;
ucharvalue;
a=1;
for(c=0;
c<
4;
c++)
for(b=0;
b<
8;
b++)
value=value>
>
1;
if(Irdata[a]>
6)//两个下降沿时间只差大于1.53ms,则码值为1(周期为2.24ms),否则为0(周期为1.12ms)
value=value|0x80;
a++;
Ircode[c]=value;
//把码值存到数组
7、作品展示
八、参考文献
[1]肖景和.无线电遥控组件及其应用电路.人民邮电出版社,2004.
[2]王俊峰.现代遥控技术及应用.人民邮电出版社,2005.
[3]曹志刚现代通信原理[M]清化大学出版社,1992.
[4]童诗白.模拟电子技术基础第三版.高等教育出版社,2001.1
[5]阎石.数字电子技术基础第四板.高等教育出版社,1998.11
[6]高泽溪.现代通信与电子系统实验.北京航空航天大学出版社,1996.8
[7]谭浩强.《C语言程序设计》[M].北京,清华大学出版社,2008.168-205.
[8]宋戈,黄鹤松,员玉良,蒋海峰.《51单片机应用开发范例大全》[M].北京,人民邮电出版社,2010.362-365.
[9]雷晓平,李晓东,罗海天.《单片机原理及应用》[M].北京,机械工业出版社,2006.256-258.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 无线 遥控