基于AT89S52单片机的红外遥控温度报警器的设计与实现

时间:2012-12-23来源:网络

1.2 系统硬件实现
本文以AT89S52单片机为CPU进行系统搭建,AT89C52是一个低电压高性能CMOS8位单片机。此外,三端稳压器7805将电压稳定在5V左右。
该系统使用红外接收模块1838来进行红外信号接收,使用通用遥控器对其进行远程控制。1838有3个引脚,包括供电脚,接地和信号输出脚。1838的信号输出管脚接AT89S52的F3.2管脚(外中断0)。当1838接收到红外遥控信号时,产生申断,处理遥控数据,处理完后返回到主程序。
采用高精度温度传感器DS18B20,实现对环境温度的实时检测与采集。DALLAS公司的DS18B20是这样一种独特的温度传感器,它只需一个接口引脚即可通信,可用数据线供电,并具备多点测温能力。DS18B20可直接与单片机通信,读取测温数据,电路简单。其测温范围-55~+125℃,在-10~+85℃时精度为±0.5℃,可编程的分辨率为9~12位。DS18B20具有测沮系统简单、测温精度高、连接方便、占用口线少等优点,因此在P2.2悬挂该温度传感器。
本系统采用蜂鸣器以及三极管作为温度报警电路,蜂鸣器的正极性的一端连接到+5 V电源上面,另一端接到三极管的发射极,三极管的基极由单片机的P3.5管脚通过一个保护电阻R7来控制。当采集温度超过设置温度上限值或低于下限值,或者闹钟时间到时,通过软件控制使P3.5=0,即低电平时,从而使三极管8550导通,蜂鸣器的电流形成回路,发出声音报警或闹钟响。当P3.5=1,即高电平时,三极管8550截止,蜂鸣器不工作。
采用12864液晶显示器显示温度和万年历,12864是一种液晶显示模块,其显示分辨率为128x64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。液晶模块多采用并行连接,常以I/O口方式进行读写访问,接口由8根数据线和3~4根片选/控制线构成。其有两个控制芯片,分别控制左右半屏。使用P0口直接驱动12864,由P1.0、P1.1、P1.2这3个引脚做控制端。
时钟模块采用DS1302时钟芯片实现,DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到3个接口线:BST(复位)、I/O(数据线)、SCLK(串行时钟)。
用软件VC6.0开发上位机系统,在计算机上显示出时钟、温度计和视频界面,构成友好的人机界面,并且可以与下位机系统保持实时通信。
上位机工作界面包括操作提示框、串口、清楚、主页、打开/关闭串口、时间、日期、温度、用户码、红外编码、音乐视频等部分组成。主页窗口打开是一个单片机学习、教程、开发电子主页,有8个串口,清除窗口可以清除操作提示框的记录,选歌窗口可以选择你想播放的歌曲,视频界面窗口可以看见音乐效果和歌曲相关信息。确定键(即电源键,用户码/红外编码:38C7/1CE3)、菜单键(用户码/红外编码:38C7/11EE)、加键(用户码/红外编码:38C7/16E9)、减键(用户码/红外编码:38C7/17E8)、上移键(用户码/红外编码:38C7/OCF3)、下移键(用户码/红外编码:38C7/ODF2)、▲键(即报警闹钟关闭键,用户码/红外编码:38C7/1FE0)、键(即报警闹钟开启键,用户码/红外编码:38C7/1EE1)。
上位机与下位机采用MAX232芯片的第二数据通道进行串行通信。单片机的P3.0(RXD),P3.1(TXD)通过电平转换芯片MAX232连接到9针D型插座DB9上,通过DB9和电缆可以与单片机、PC机进行串行通信。因为上位机与下位机是实时通信的,所以通过上位机工作界面可以很清晰,很人性化的看见下位机即时采集的温度值和显示的时间、日期。

2 系统软件设计
2.1 软件功能概述
根据硬件设计,软件需要完成以下几个功能:
1)温度读取功能:软件可以正确的控制DS18B20进行温度的正常读取。
2)LCD12864显示功能:包括时间显示,温度显示,闹钟显示。
3)红外遥控功能:使用遥控器控制,修改系统时间、温度报警上下限值,设置闹钟。
4)报警功能:要求蜂鸣器正常报警。
5)实现上位机与下位机实时通信,实现在计算机上显示出时钟、温度的视频界面。
1 2 3

关键词: AT89S52 红外遥控 温度报警 上位机

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版