采用STC单片机实现对红外线发射接收及继电器的控制.docx
《采用STC单片机实现对红外线发射接收及继电器的控制.docx》由会员分享,可在线阅读,更多相关《采用STC单片机实现对红外线发射接收及继电器的控制.docx(9页珍藏版)》请在冰豆网上搜索。
采用STC单片机实现对红外线发射接收及继电器的控制
引言------------------------------------------------------------------------1
一系统设计-------------------------------------------------------------------1
二总体设计方案--------------------------------------------------------------1
2.1设计思路--------------------------------------------------------------1
2.2方案论证与比较--------------------------------------------------------1
2.2.1控制部分设计方案-------------------------------------------------1
2.2.2显示部分设计方案-------------------------------------------------1
2.3系统组成--------------------------------------------------------------2
三单元电路设计--------------------------------------------------------------3
3.1控制部分电路---------------------------------------------------------3
3.2PS2控制部分电路-----------------------------------------------------4
3.3液晶显示电路---------------------------------------------------------4
3.4温度传感器部分-------------------------------------------------------5
3.5电源电路-------------------------------------------------------------6
3.6扬声器控制电路-------------------------------------------------------6
3.7红外遥控键盘控制电路-------------------------------------------------7
3.8串口部分电路---------------------------------------------------------8
3.9家电控制电路----------------------------------------------------------8
四软件设计-------------------------------------------------------------------8
五、程序流程方框图-------------------------------------------------------------9
参考文献---------------------------------------------------------------------10
附录一:
程序清单--------------------------------------------------------------11
引言
本设计采用STC单片机实现对红外线发射接收及继电器的控制,系统由STC单片机控制部分和红外遥控及液晶显示部分、等组成。
该系统由单片机作为主控机控制各个模块的运行,定位控制准确,响应及时,报警迅速并且还有人机界面,能够在电脑上实现控制各个家居电器的状态。
除此以外,该系统还能够进行简单的单片机实验,包括程序下载、串口调试、液晶显示等。
从实际运行情况看,该系统工作稳定,定位控制准确、响应及时、编程灵活、功能齐全,比较理想的实现了设计指标的要求。
一系统设计
1.1设计要求
(1)基本要求:
能够实现用红外线或无线电控制家居电器的工作状态,家电可以用发光二极管仿真替代,具备家庭防盗报警功能。
(2)发挥部分:
人机界面友好,能够通过网络控制家电。
二总体设计方案
2.1设计思路
题目要求设计一个家居电器控制系统,能够实现用红外线或无线电控制家居电器的工作状态。
设计中为了提高产品的稳定性,控制部分我们采用STC单片机完成,通过遥控器发射红外线控制继电器,从而间接去控制各个电器的状态。
防盗报警部分,我们采用热释电传感器,预置报警电路工作时在检测到人体的红外信号后执行相应的报警动作。
2.2方案论证与比较
2.2.1控制部分设计方案论证与选择
方案一、使用高端的ARM芯片和FPGA芯片作为主控芯片,可以轻松实现高速实时同步的功能,但是由于目前智能家居的实场竞争力相当大,若为了设计的简单而失掉了产品最重要的价格优势,那么我们的产品将永远对在实验室里。
方案二、采用性价比很高的STC单片机控制,既可实现稳定的系统设计,又可以使生产成本控制在很低的范围,所以,采用方案二。
2.2.2显示部分设计方案论证与选择
方案一、采用两个四位七段数码管显示,控制简单易行,所占体积较小,但需要额外的驱动或扩展芯片,整体结构不够直观大方。
方案二、使用128X64LCD显示,感觉美观大方,显示清晰明了,所需的元件也较少。
综上所述,LCD电路简单,性价比高,又能很好完成驱动作用,选择方案二。
在方案二的基础上,我们还做了一个人机界面,能够更加直观方便的利用网络进行控制。
2.3系统组成
本系统由PC主机和单片机客户端两大部分组成,两部分通过RS232协议通讯,实现实时同步数据的功能。
单片机客户端有以下部分主成:
串口通信、PS2键盘控制、红外遥控控制、光电传感、热释电、温度传感、12864液晶模块显示、蜂鸣器报警、8路开关控制;
PC主机端自身拥有人机交流模块,用户也可在PC端通过键盘和鼠标实现8路开关的控制;同时PC主机端负责接收并处理来自单片机客户端的控制数据和防区数据,通过一定的算法实现单片机客户端与PC主机端的数据同步;PC主机端还负责同步系统时钟和显示温度数据的功能;PC端在处理防区数据时有辨别防区和记录最新防区报警时间的功能;其中实现实时同步的关键是数据交流和中断处理,以下在我们的系统总方框图中将给出我们的处理算法。
单片机客户端系统总方框图如图2.2.3-1所示。
图2.2.3-1单片机客户端系统总方框图
PC机主机端系统总方框图如图2.2.3-2所示。
三单元电路设计
3.1控制部分电路
如图3.1所示
图3.1控制部分连接图
3.2PS2部分电路
如图3.2所示:
3.3液晶显示部分电路图
显示部分电路如图3.3所示:
图3.312864串行通信电路图
3.4温度传感器部分
温度传感器我们使用的是DS1820单线数字温度计,DS1820数字温度计以9位数字量的形式反映器件的温度值。
DS1820通过一个单线接口发送或接收信息,因此在中央微处理器和DS1820之间仅需一条连接线(加上地线)。
用于读写和温度转换的电源可以从数据线本身获得,无需外部电源。
因为每个DS1820都有一个独特的片序列号,所以多只DS1820可以同时连在一根单线总线上,
这样就可以把温度传感器放在许多不同的地方。
这一特性在HVAC环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。
DS1820依靠一个单线端口通讯。
在单线端口条件下,必须先建立ROM操作协议,才能进行存储器和控制操作。
因此,控制器必须首先提供下面5个ROM操作命令之一:
1)读ROM,2)匹配ROM,3)搜索ROM,4)跳过ROM,5)报警搜索。
这些命令对每个器件的激光ROM部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指明有多少器件或是什么型号的器件。
成功执行完一条ROM操作序列后,即可进行存储器和控制操作,控制器可以提供6条存储器和控制操作指令中的任一条。
一条控制操作命令指示DS1820完成一次温度测量。
测量结果放在DS1820的暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。
温度报警触发器TH和TL各由一个EEPROM字节构成。
如果没有对DS1820使用报警搜索命令,这些寄存器可以做为一般用途的用户存储器使用。
可以用一条存储器操作命令对TH和TL进行写入,对这些寄存器的读出需要通过暂存器。
所有数据都是以最低有效位在前的方式进行读写。
图2.7温度传感器控制电路
3.5电源部分
本设计用到的电源主要为+5V
稳压电源由电源变压器、整流电路、滤波电路和稳压电路组成,如图2.8
图2.8电源方框及波形图
a整流和滤波电路:
整流作用是将交流电压U2变换成脉动电压U3。
滤波电路一般由电容组成,其作用是脉动电压U3中的大部分纹波加以滤除,以得到较平滑的直流电压U4。
b稳压电路:
由于得到的输出电压U4受负载、输入电压和温度的影响不稳定,为了得到更为稳定电压添加了稳压电路,从而得到稳定的电压U0。
图2.9中电路提供+5V的电源;主要用于STC单片机、LCD显示、键盘;
图2.9电源部分
3.6扬声器控制电路
在该智能打铃系统中,我们用的是交流蜂鸣器,由于一般I/O口的驱动能力有限,在此我们采用了三极管9013来驱动蜂鸣器,其硬件原理图如图3.0所示。
Beep与P3.7口相连,当Beep输出高电平是蜂鸣器不响,而Beep输出低电平时蜂鸣器发出响声。
我们只要控制Beep输出高低电平的时间和变化频率,就可以让蜂鸣器发出悦耳的音乐了。
图3.0扬声器原理图
3.7红外遥控键盘控制部分
矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键。
这样键盘中按键的个数是4×4个。
这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。
先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态。
再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状态。
将两次读取结果组合起来就可以得到当前按键的特征编码。
使用上述方法我们得到16个键的特征编码。
举例说明如何得到按键的特征编码:
假设“1”键被按下,找其按键的特征编码。
从P1口的高四位输出低电平,即P1.4-P1.7为输出口。
低四位输出高电平,即P1.0-P1.3为输入口。
读P1口的低四位状态为“1101”,其值为“0DH”。
再从P1口的高四位输出高电平,即P1.4-P1.7为输入口。
低四位输出低电平,即P10-P13为输出口,读P1口的高四位状态为“1110”,其值为“E0H”。
将两次读出的P0口状态值进行逻辑或运算就得到其按键的特征编码为“EDH”。
用同样的方法可以得到其它15个按键的特征编码。
矩阵键盘电路如图3.1所示:
图3.1键盘控制原理图
红外遥控器整体电路图如图3.2所示
3.8串口部分电路
串口调试原理图如图3.3所示:
图3.3串口调试原理图
3.9家居控制电路
家居控制电路如图3.4所示:
四.软件设计
单片机主控部分:
单片机部分采用C语言编写,共有9个模块;
PC机部分:
PC机部分采用VB编写,共有4个窗体;
数据在单片机端经过系统分析,简图如图4.1所示,从中找出了不希望的中断处理:
因此,最终采用了以下的算法实现了双机实时同步通信!
PS2模块:
第2套键扫码单键举例:
组合键举例:
通码和断码是以什么样的序列发送到计算机使得字符出现在你的字处理软件G里呢?
因为这是一个大写字母,需要发生这样的事件次序:
按下键--按下G键--释放G键--释放Shift键,因此,发送到你的计算机的数据应该是12h34hF0h34hF0h12h。
因此,我们的PS2键盘数据读取的算法如下表3.6所示:
图3.6PS2算法流程图
参考文献
[1]楼然苗光飞.51系列单片机设计实例.北京:
北京航空航天大学出版社2003
[2]涂时亮友德.单片微机控制技术.上海:
复旦大学出版社1994
[3]谭家玉.家用电器的微机控制及维修技术.北京:
科学技术出版社1996
[4]田立田清代方震.51单片机C语言程序设计快速入门.北京:
人民邮电出版社2007
[5]戴佳戴卫恒.51单片机C语言应用程序设计实例精讲.北京:
电子工业出版社2006
[6]李勋耿德根.AVR单片机应用技术.北京:
北京航空航天大学出版社2002
[7]吴炳胜王桂梅.80C51单片机原理与应用.北京:
冶金工业出版社2001
.