基于GSM短信模块的家庭防盗报警系统

摘  要

本系统主要由单片机和GSM短信模块组成,借助最可靠、最成熟的GSM移动网络,以最直观的中文短消息或电话形式,直接把报警地点的情况反映到您的手机屏幕上。它采用主动式红外传感器进行检测,变有形的传统防盗网防盗窗为无形,给火灾时的逃生提供方便。并配备烟雾传感器和燃气泄漏传感器,实现防火、防燃气泄漏的作用。

【关键词】单片机  GSM模块  传感器

Abstract

The System is made up of MCU and GSM Modem. It will display the alarm content in Chinese directly at your mobile screen, and it recurs to the most reliable GSM mobile network. The system adopted initiative infrared sensor to detect, and it turned the traditional alarm net and alarm windows to immateriality. Besides, the system equipped the smog sensor and leakiness sensor of gas and guarded against fire and gas leakiness.

【keywords】 MCU  GSM modem  sensor

目  录

第0章 引 言……………………………………………………………………………

第1章 单片机概述……………………………………………………………………

    1. AT89S52的主要性能………………………………………………………
    2. AT89S52的功能特性描述…………………………………………………
    3. AT89S52的管脚排列………………………………………………………

第2章 GSM模块………………………………………………………………………

2.1  HRH GSM MODEM 介绍…………………………………………………

2.1.1 GSM MODEM 的主要性能……………………………………………

2.2   HRH GSM Modem 的硬件接口…………………………………………

2.3   HRH GSM Modem 的软件协议…………………………………………

  2.3.1 设置短信中心号………………………………………………………

  2.3.2  利用GSM Modem向普通手机发短信………………………………

第3章 键盘显示………………………………………………………………………

3.1  HD7279键盘显示芯片……………………………………………………

3.2  HD7279的典型应用电路…………………………………………………

第4章 铁电存储器……………………………………………………………………

   4.1  铁电存储器的特点…………………………………………………………

   4.2  二线制协议…………………………………………………………………

第5章 实时时钟………………………………………………………………………

   5.1  DS12887功能与特点介绍…………………………………………………

   5.2  时间、日历和定闹单元……………………………………………………

   5.3  DS12887 引脚定义…………………………………………………………

第6章 后备电源………………………………………………………………………

第7章 遥控器…………………………………………………………………………

第8章 传感器…………………………………………………………………………

8.1  红外传感器…………………………………………………………………

   8.2  烟雾传感器…………………………………………………………………

   8.3  气体泄漏传感器……………………………………………………………

第9章 家庭防盗报警系统的软件设计………………………………………………

   9.1 主程序流程图…………………………………………………………………

   9.2 外部中断0中断服务子程序流程图……………………………………………

结论………………………………………………………………………………………

参考文献…………………………………………………………………………………

附录………………………………………………………………………………………

引  言

目前传统的机械式(防盗网、防盗窗)安防系统在实际使用中暴露了很多隐患,例如:为其它没有安防盗窗的相近楼层形成被盗隐患、发生火灾时不易逃生等。

随着电子技术的飞速发展,报警系统已从原来的简单化、局部化向智能化、集成化发展。而各种防盗报警系统之间的主要区别是在于如何让分机与主机、分机与用户之间进行通讯。目前市场上常见的防盗报警系统的通信方式有固定电话拨号、以太网、集群系统等等。但它们有各自的缺点:

  1. 固定电话拨号容易被盗贼在入室抢劫前切断电话线或恶意占线,使其在关键时刻失灵。
  2. 以太网同样面临着线路被切断的隐患,且不易普及。
  3. 集群系统功耗很大,网络架设和维护费用很高,而且需要 购买固定的频点。

针对以上通信方式的优、缺点,我设计了基于GSM短信模块的家庭无线防盗报警系统。此系统可解决这些隐患,让家庭防盗更及时、使用更方便。它不再依赖有线电话执行报警,而是借助最可靠、最成熟的GSM移动网络,以最直观的中文短消息或电话形式,直接把报警地点的情况反映到您的手机屏幕上。它采用主动式红外传感器进行检测,变有形的传统防盗网防盗窗为无形,给火灾时的逃生提供方便。并配备烟雾传感器和燃气泄漏传感器,实现防火、防燃气泄漏的作用。

    本文介绍了用AT89S52单片机实现的基于GSM短信模块的家庭防盗报警系统,以及AT89S52单片机的功能特点、GSM短信模块工作原理、传感器工作原理。

系统组成框图如下:

  1. 单片机概述

AT89S52作为普通51单片机已与广泛应用于各种产品中,其接口简单,方便使用,且功能强大,因此本系统采用AT89S52单片机作为主控制芯片。

1.1 AT89S52的主要性能

l 与MCS-51单片机产品兼容

l 8K字节在系统可编程Flash存储器

l 1000次擦写周期

l 全静态操作:0Hz~33Hz

l 三级加密程序存储器

l 32个可编程I/O口线

l 三个16位定时器/计数器

l 八个中断源

l 全双工UART串行通道

l 低功耗空闲和掉电模式

l 掉电后中断可唤醒

l 看门狗定时器

l 双数据指针

l 掉电标识符

1.2 AT89S52的功能特性描述

  AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

    1. AT89S52的管脚排列

第2章 GSM 模块

2.1 HRH GSM MODEM介绍

由于HRH GSM Modem 内嵌高可靠性的GSM 引擎(GSM Cellular Engine)和51 单片机系统(MCS51),标准串行接口和精简的软件接口协议将用户从繁杂的GSM 通信标准解析和调试中解脱出来,使用方便,而且公网的数据传输具有通信范围广(GSM 网络基本覆盖全国),传输稳定、可靠等特点。因此本设计选用HRH GSM Modem来进行通信。

2.1.1 GSM  Modem 的主要功能

a.收发短信;

b.借助短信实现远程小批量数据传输;

c.语音通话(GSM 电话);

d.数传模式实现无线实时数据通信;

e.无线上网(自动应答型)。

2.2  GSM Modem 的硬件接口

模块要求12V/500mA供电,与计算机或单片机通过串口通信,波特率9600bps,通过SIM卡座来安装SIM卡。

2.3  HRH GSM Modem 的软件协议

    a.‘A’表示ASCII 字符A,00 或00H 表示16 进制数据00。

b. 帧结构:帧头(固定为0AAH)+指令码+数据

2.3.1 设置短信中心号

    以北京地区为例,短信中心号为:+8613800100500,应向GSM MODEM 下发数据帧:

AA 09 2B 38 36 31 33 38 30 30 31 30 30 35 30 30 (16 进制数据)

如果设置成功,GSM MODEM 应答 AA 09 “+8613800100500”

如果设置不成功,GSM MODEM 应答 AA 09 ‘ERROR’

短信中心号设置后,保存在SIM 卡上,只需设置一次;也可以在手机上把短

信中心号设置好后再装入GSM Modem,以后就不用再设置。

2.3.2 利用GSM  MODEM 向普通手机发短信

    以向手机13661174602 发中文信息“测试”为例:

首先计算或查表得到“测试”的UNICODE 编码为:6D4B(测) 8BD5(试);

向GSM MODEM 下发数据帧:

AA 02 31 33 36 36 31 31 37 34 36 30 32 6D 4B 8B D5

GSM MODEM 可能返回于下信息:

AA 01 ‘ERROR’短信未从GSM MODEM 送出,可能是未登陆网络或SIM 卡故障。

AA 01 ‘OK’ 短信已从GSM MODEM 送出,但未送达短信中心,可能是信号质量差或天线连接不好。

AA 01 ‘SEND OK’ 短信已送达短信中心,并且短信中心已经下发给接收方。

AA 01 ‘SUCCESS 13661174602: 0304111023123203041110231532’接收方已经收到短信(注意仅当接收方手机已经设置短信自动应答时才会返回;GSM MODEM 已设置成短信自动应答)。

AA 01 ‘FAILURE 13661174602:0304111023123203041110331532’短信中心未能将短信送达接收方或接收方已经收到短信,但其给短信中心的回应短信中心没有收到(注意仅当接收方手机已经设置短信自动应答时才会返回)。

一般情况下,由于短信不保证实时性,所以从发送到对方接收到短信可能有

5-10 秒的延时,使用中建议设置短信超时定时器长度在20-30 秒左右。

短信发送成功的返回信息:

先返回 AA 01 ‘SEND OK’31;

如果接收方手机设置了短信自动应答,则在对方收到后返回

AA 01 ‘SUCCESS 13661174602: 0304111023123203041110231532’

短信发送失败的几种可能返回信息:

a. AA 01 ‘ERROR’

b. AA 01 ‘OK’

c. AA 01 ‘SEND OK’32 后; AA 01 ‘ FAILURE 13661174602 :

0304111023123203041110331532’

                   第3章  键 盘 显 示

   为了实现系统发生警情时能够向指定的号码发送短信息的功能,则必须有键盘和LED显示,来对防盗报警系统进行电话号码的预设,本设计选用HD7279作为键盘显示驱动,

3.1 HD7279键盘显示芯片

该芯片支持64键盘和8位数码管动态显示,与传统的键盘显示芯片8279相比,外围芯片少,与CPU仅有4线串行通信,大大的节省了CPU I/O口的资源;

HD7279内部含有译码器,可直接接受BCD码或16进制码,并同时具有两种译码方式。此外,还具有多种控制指令,如左移、右移、闪烁、消隐、段寻址等;

HD7279具有片选信号,可方便的实现多于8位的显示或多于64键的键盘接口。

3.2 HD7279的典型应用电路:

  

注:键盘显示应用程序见附录

第4章  铁电存储器

4.1 铁电存储器的特点

为了实现对预设电话号码的存储和对报警信息的记录,本系统采用了能够保证掉电数据不丢失的铁电存储器,该类存储器相对于传统的EEPROM有许多优点:

  1. 传统的EEPROM写入次数有限,一般为10万次,而铁电存储器有着近乎无限次擦写的特性;
  2. 传统的EEPROM写入速度较慢,一般需要CPU延时几个NOP的时间来等待写入,而铁电存储器有着和RAM相同的操作速度;
  3. EEPROM需要较大的能量来完成一次擦写,而铁电存储器在写入时属于微功耗。

本设计选用了FM24C16来作为非易失性数据存储器,其特点如下:

1. FM24C16A是一种串行非易失存储器,它的结构容量为512*8位,接口方式为工业标准二线制造串行接口,与串行EEPROM的功能操作相似,与EEPROM具有相同的引脚排列,不同之处在于,FM24C16A具有非常出色的写操作性能;

2.FRAM内部采用读恢复机制操作。所以读写次数与每一次读写都有关系。FRAM结构是基于行与列阵列排布,行由A8- A2定义。 每次访问都会使一行减少一次读写寿命。铁电的擦写次数几乎可以说是无限次。即使每秒访问3000次,连续使用十年,使用寿命仍未终止。

4.2 二线制协议

FM24C16使用二线制协议串行总线及其传输规约进行双向传输,这种方式占用脚位少,占用线路板空间小,下图描述了FM24C16在微处理器系统中的典型配置:

二线制协议即是总线上的所有操作都是由SDA和SCL两个脚位的状态来确定的,共有四个状态:开始,停止,数据以及应答,下图描述了四个状态的时序图。

   

   

   

   

   

注:FM24C16读写子程序见附录

第5章  实时时钟

为了实现发生警情时,对发生警情的时间进行记录,且为了保证系统的可靠运行,要求系统进行自检并定时上报系统运行状态,因此需要系统具有实时时钟功能。本设计选用了DS12887实时时钟芯片。

5.1 DS12887功能与特点介绍

DS12887采用CMOS技术制成,把时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部。采用DS12887芯片设计的时钟电路勿需任何外围电路并具有良好的微机接口。DS12887芯片具有微轼耗、外围接口简单、精度高、工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟场合中。其主要功能如下:

1.内含一个锂电池,断电情况运行十年以上不丢失数据。

2.计秒、分、时、天、星期、日、月、年,并有闰年补偿功能。

3.二进制数码或BCD码表示时间、日历和定闹。

4.12小时或24小时制,12小时时钟模式带有PWM和AM指导,有夏令时功能。

5.MOTOROLA5和INATAEL总线时序选择。

6.有128个RAM单元与软件音响器,其中14个作为字节时钟和控制寄存器,114字节为通用RAM,所有ARAM单元数据都具有掉电保护功能。

7.可编程方波信号输出。

8.中断信号输出(IRQ)和总线兼容,定闹中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。

5.2 时间、日历和定闹单元

时间和日历信息通过读相应的内存字节来获取,时间、日历和定时闹钟通过写相应的内存字节设置或初始化,其字节内容可以是十进制或BCD形式。时间可选择12小时制或24小时制,当选择12小时制时,小时字节高位为逻辑“1”代表PM。时间、日历和定闹字节是双缓冲的,总是可访问的。每秒钟这10个字节走时1秒,检查一次定闹条件,如在更新时,读时间和日历可能引起错误。三个字节的定闹字节有两种使用方法。第一种,当定闹时间写入相应时、分、秒定闹单元,在定时允许、闹钟位置高电平的条件下,定闹中断每天准时起动一次。第二种,在三个定闹字节中插入一个或多个不关心码。不关心码是任意从C到FF的16进制数。当小时字节的不关心码位置位时,定闹为小时发生一次由于相线小时和分钟定闹字节置不关心位时,每分钟定闹一次;当三个字节都置不关心位时,每秒中断一次。

5.3  DS12887引脚定义

 注:DS12887应用程序见附录

  

  

第六章 后备电源

为了防止窃贼在进入防区之前将系统的供电交流电源切断,系统必须能够在交流电源被切断后继续正常运行一段时间,本系统采用12V/7AH的铅酸蓄电池作为后备电源,这就给系统设计提出了一个继续解决的问题:就是蓄电池的充电电源管理问题。

由于铅酸蓄电池在过充情况下电解液会发生气化现象,导致蓄电池的寿命降低 ,蓄电池在充满电时,蓄电池的电压大概在13.6V左右,在欠压时电压大概在10.9V左右,根据这个特点,本人发现此充放电特性符合滞回比较器的传输特性,即将滞回比较器的上限阈值设为13.6V,下限阈值设定为10.9V,当充满电后,使滞回比较器控制继电器将充电限流电阻切换到较大的限流电阻上;当放电到10.9V时,滞回比较器控制继电器将限流电阻切换到较小的限流电阻上,并且保障系统正常工作电流要小于快充充电电路的电流,而大于慢充充电电路的电流。这样就能保证滞回比较器始终工作在10.9V—13.6V的滞回带内,即保证蓄电池既不欠压又不过充。

滞回比较器:

有滞回特性,具有抗干扰能。从反相输入端输入的滞回比较器电路如下图所示,电路中引入了正反馈。

滞回比较器工作原理:

从集成运放输出端的限幅电路可以看出,uoUz。集成运放反相输入端电位,同相输,入端电位

   

根据“虚短”         ,求出的    就是阈值电压,因此得出

当                    ,因而uo=+Uz,所以

,           。

当                    , 因而uo=-Uz,所以           

可见,uo从+Uz跃变为-Uzuo从-Uz跃变为+Uz的阈值电压是不同的,电压传输特性如下图所示。

  

  

  

  

  

  

注:具体电路参照系统设计图纸电源部分。

    

第7章 遥 控 器

    为了实现用户在进入防区前或离开防区后能对系统的布、撤防状态进行改变,本设计选用了315M调幅遥控器,该遥控器具有以下优点:

  1. 工作在业余频段,不用花钱购买频点;
  2. 有效距离远,一般可达200-1000米;
  3. 有丰富的地址码供用户选择,由于遥控器和遥控器接收板上应用的PT2262/PT2272编解码芯片对都提供8位三态的编解码状态,也就是说有3的8次方地址码可供用户选择,足以满足小区内所有用户的防盗报警布、撤防应用。

发射、接收电路无解码电路图分别如下:

  1. 传 感 器

要实现防盗、防火、防燃气泄漏,相应的传感器是必不可少的,而无论是哪种传感器,其最终输出的都是开关量。

8.1 红外传感器

对于防盗传感器,本系统采用主动式红外对射传感器,它相对于传统的被动式热释红外传感器有以下优点:

1.主动式对射红外传感器安装于门窗及一切需要设防的位置,采用多光束综合判断,当有一定体积的障碍物遮挡时,才被触发,极大的降低了传感器的误报;

2.由于其安装在门窗等位置,使夜间主人的正常活动不受限制,这给用户提供了极大的夜间布防的可能。

8.2 烟雾传感器

本设计选用离子式烟雾传感器,离子式烟雾传感器是一种技术先进,工作稳定可靠的传感器,被广泛运用到各种消防报警系统中,性能远优于气敏电阻类的火灾报警器

8.3气体泄漏传感器

本设计选用电化学型气体传感器,电化学型气体传感器可分为原电池式、可控电位电解式、电量式和离子电极式四种类型。原电池式气体传感器通过检测电流来检测气体的体积分数,市售的检测缺氧的仪器几乎都配有这种传感器,近年来,又开发了检测酸性气体和毒性气体的原电池式传感器。可控电位电解式传感器是通过测量电解时流过的电流来检测气体的体积分数,和原电池式不同的是,需要由外界施加特定电压,除了能检测CO,NO,N02,02,S02等气体外,还能检测血液中的氧体积分数。电量式气体传感器是通过被测气体与电解质反应产生的电流来检测气体的体积分数。离子电极式气体传感器出现得较早,通过测量离子极化电流来检测气体的体积分数已电化学式气体传感器主要的优点是检测气体的灵敏度高、选择性好。

第9章  家庭防盗报警系统的软件设计

9.1主程序流程图图1

9.2 外部中断0中断服务子程序流程图(图2)

结论

本次设计切实考虑了家庭防盗的需求,针对家庭防盗的主要方面而设计的一款新型家庭防盗报警系统。设计过程中充分考虑了各种可能出现意外情况,根据具体情况设计了相应的功能。如预设、校时、查询等。操作简单、方便。此系统借助最可靠、最成熟的GSM移动网络,大大减少了误报现象,可靠性强。本设计软、硬件调试已经通过,性能良好。

谢辞

通过本次毕业设计,使我增强了理论与时间结合的能力,设计过程中遇到各种问题在指导老师的帮助下得以解决,锻炼了我的意志,更使我增强了信心。在此要感谢学院给提供了良好的实验环境以及我的指导老师祝彦。

参 考 文 献

1  张毅刚等.MCS-51单片机应用设计.哈尔滨工业大学出版社,1990

2  涂时亮等.单片机软件设计艺术.重庆:科学文献出版社重庆分社,1987

3  周航慈.单片应用程序设计技术.北京航空航天大学出版社,1990

4  李华主编.MCS-51单片机实用接口技术.北京航空航天大学出版社,1993

  1. Intel Microcontroller Handbook.1985
  2. 何立民.单片机应用技术选编.北京航空航天大学出版社,1996

附录:部分程序源代码

1.程序初始化:

;RAM定义

BCOUNT  DATA  07FH

TIMER   DATA  07EH

TIMER1  DATA  07DH

TIMER2  DATA  07CH

HOURS   DATA  07BH

HOURG   DATA  07AH

MINUS   DATA  079H

MINUG   DATA  078H

SECOS   DATA  077H

SECOG   DATA  076H

SECO    DATA  075H

MINU    DATA  074H

HOUR    DATA  073H

TEN     DATA  072H

FLAG    DATA  071H

DIN     DATA  020H

DOUT    DATA  021H

SLA     DATA  070H

SUBA    DATA  00H

ACK     BIT   00H

; I/O定义

KEY  BIT  P3.2   

CS   BIT  P1.2     

CLK  BIT  P1.3

DAT  BIT  P1.4

SCL  BIT  P1.0

SDA  BIT  P1.1

MTD  EQU  04AH

MRD  EQU  058H

MRD1  EQU  063H

   ORG   0000H

AJMP  START

ORG   0003H       ;外部中断0中断服务子程序入口地址

AJMP  INTL

ORG   0013H       ;外部中断1中断服务子程序入口地址

AJMP  INTY

ORG   0100H

START: MOV  SP,#30H

MOV  P1,#11110011B        ;initial I/O

MOV   SLA,#0A0H           ;FM24C16器件从地址

   MOV   SUBA,#00H           ;器件子地址

CLR  P2.1

   MOV  TMOD,#20H      ;串行口初始化

MOV  TH1,#0FDH

MOV  TL1,#0FDH

MOV  PCON,#00H

MOV  SCON,#40H

SETB  TR1

SETB  IT0          ;INT0为1,边沿触发方式

SETB  IT1           ;INT1为1,边沿触发方式

SETB  EX0

   SETB  EX1

SETB  PX1        ;INT1为高优先级

SETB  EA         ;开总中断

MAIN: …

    AJMP  MAIN     ;主程序

INTL: …

    RETI            ;外部中断0中断服务子程序

INTY: …

    RETI            ;外部中断1中断服务子程序

    END

2. HD7279键盘显示子程序

    

INTL:   MOV DOUT,#15H    ;读键盘指令

        ACALL SEND

        ACALL RECV         ;读键盘数据

        SETB CS

        MOV  A,DIN

       MOV B,#10                 ;HEX change BCD code

        DIV AB

        MOV DOUT,#10100001B        

        ACALL SEND

        MOV DOUT,#11001000B        

        ACALL SEND

        MOV DOUT,B               ;send 个位 to HD7279A

        ACALL SEND

        SETB  CS    

        RETI

SEND:   MOV BCOUNT,#8            ;set bit counter=8

        CLR CS                   ;CS for lv

        ACALL LDELAY              ;long delay

SLOOP:  MOV C,DOUT.7              ;output 1 bit

        MOV DAT,C

        SETB CLK                 ;set CLK for hv

        MOV A,DOUT ;the data that will send left move

        RL A

        MOV DOUT,A

        ACALL SDELAY               ;short delay

        CLR CLK           ;set CLK for lv

        ACALL SDELAY               

        DJNZ BCOUNT,SLOOP          ;check 8 bit send over or else

        CLR DAT                    ;send over, return

        RET

RECV:   MOV BCOUNT,#8           

        SETB DAT                 ;set (DATA) hv(input state)

        ACALL LDELAY

RLOOP:  SETB CLK

        ACALL SDELAY

        MOV A,DIN

        RL A

        MOV DIN,A

        MOV C,DAT

        MOV DIN.0,C

        CLR CLK

        ACALL SDELAY

        DJNZ BCOUNT,RLOOP

        RET

LDELAY: MOV TIMER,#25               ;delay 50uS

DELOOP: DJNZ TIMER,DELOOP

        RET

SDELAY: MOV TIMER,#4                ;delay 8uS

SHOTLOP:DJNZ TIMER,SHOTLOP

        RET

3. FM24C16读写子程序

START:  SETB  SDA

        NOP

        SETB  SCL       ;起始条件建立时间大于4.7us

        ACALL  DELAY

        CLR  SDA      

        ACALL  DELAY

        CLR   SCL        ;钳住总线,准备发数据

        NOP

        RET

STOP:   CLR    SDA

        NOP

        SETB   SCL     ;发送结束条件的时钟信号

        ACALL  DELAY

        SETB  SDA     ;结束总线

        ACALL  DELAY

        RET

MACK:   CLR   SDA       ;将SDA置0

        NOP

        NOP

        SETB  SCL

        ACALL  DELAY

        CLR   SCL

        NOP

        NOP

        RET

MNACK:  SETB  SDA           ;将SDA置1

        NOP

        NOP

        SETB  SCL

        ACALL  DELAY

        CLR  SCL

        NOP

        NOP

        RET

CACK:   SETB  SDA

        NOP

        NOP

        SETB  SCL

        CLR   ACK

        NOP

        NOP

        MOV  C,SDA

        JC    CEND

        SETB  ACK             ;判断应答位

CEND:   NOP

        CLR  SCL

        NOP

        RET

WRBYTE: MOV  R0,#08H

WLP:    RLC   A               ;取数据位

        JC     WR1

        SJMP  WR0             ;判断数据位

WLP1:   DJNZ  R0,WLP

        NOP

        RET

WR1:    SETB  SDA             ;发送1

        NOP

        SETB  SCL

        ACALL  DELAY

        CLR   SCL

        SJMP  WLP1

WR0:   CLR   SDA             ;发送0

        NOP

        SETB  SCL

        ACALL  DELAY

        CLR  SCL

        SJMP WLP1

RDBYTE: MOV  R0,#08H

RLP:    SETB  SDA

        NOP

        SETB  SCL           ;时钟线为高,接收数据位

        NOP

        NOP

        MOV  C,SDA          ;读取数据位

        MOV  A,R2

        CLR   SCL            ;将SCL拉低,时间大于4.7us

        RLC   A              ;进行数据位的处理

        MOV  R2,A

        NOP

        NOP

        NOP

        DJNZ  R0,RLP          ;未够8位,再来一次

        RET

IWRNBYTE: MOV    A,#11

          MOV    R3,A

          LCALL  START         ;起动总线

          MOV    A,SLA

          LCALL  WRBYTE        ;发送器件从地址      

          LCALL  CACK

          JNB     ACK,RETWRN  ;无应答则退出

          MOV    A,SUBA         ;指定子地址

          LCALL  WRBYTE

          LCALL  CACK

          MOV    R1,#MTD

WRDA:     MOV    A,@R1

          LCALL  WRBYTE        ;开始写入数据

          LCALL  CACK

          JNB     ACK,IWRNBYTE

          INC     R1

          DJNZ    R3,WRDA       ;判断写完没有

RETWRN:   LCALL  STOP

          RET

IRDNBYTE:  MOV    R3,#11

           LCALL  START

           MOV    A,SLA

           LCALL  WRBYTE        ;发送器件从地址

           LCALL  CACK

           JNB     ACK,RETRDN

           MOV    A,SUBA         ;指定子地址    

           LCALL  WRBYTE

           LCALL  CACK  

           LCALL  START          ;重新起动总线

           MOV    A,SLA

           INC     A              ;准备进行读*作

           LCALL  WRBYTE

           LCALL  CACK

           JNB     ACK,IRDNBYTE           

           MOV    R1,#MRD

RDN1:      LCALL  RDBYTE       ;读*作开始

           MOV    @R1,A

           DJNZ    R3,SACK

           LCALL  MNACK        ;最后一字节发非应答位               

RETRDN:    LCALL  STOP  ;并结束总线

           RET

SACK:      LCALL  MACK

           INC     R1

           SJMP   RDN1

DELAY:      NOP

        NOP

        NOP

        NOP

        NOP

        RET

4. DS12887应用子程序

DS12887: CLR  P2.7

INTTIM:MOV  DPTR,#7F0BH

  MOV  A,#0A2H      ;选BCD码,24小时制

  MOVX  @DPTR,A

  MOV  DPTR,#7F04H        ;HOUR单元地址

  MOV  A,#07H

  MOVX @DPTR,A

  inc  dptr

  mov  a,#08h

  movx  @dptr,a

  MOV  DPTR,#7F02H        ;MINUTE单元地址

  MOV  A,#59H

  MOVX @DPTR,A

  inc  dptr

  mov  a,#00h

  movx  @dptr,a

  MOV  DPTR,#7F00H        ;SEC0ND单元地址

  MOV  A,#58H

  MOVX @DPTR,A

  inc  dptr

  mov  a,#00h

  movx  @dptr,a

  MOV  DPTR,#7F0AH       ;寄存器A地址

  MOV  A,#20H          ;############

  MOVX  @DPTR,A

  MOV  DPTR,#7F0CH       ;寄存器C地址

  MOVX  A,@DPTR

      INC  DPTR

  MOVX  A,@DPTR          ;寄存器D地址

  MOV  DPTR,#7F0BH       ; 寄存器B地址

  MOV  A,#22H

  MOVX  @DPTR,A

  MOV  IE,#84H

  RET               

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于GSM短信模块家庭防盗报警系统-河北大学2004届本科毕业生论文.pdf基于GSM短信模块家庭防盗报警系统-河北大学2004届本科毕业生论文.pdf基于GSM短信模块家庭防盗报警系统-河北大学2004届本科毕业生论文.pdf基于GSM短信模块家庭防盗报警系统-河北大学2004届本科毕业生论文.pdf基于GSM短信模块家庭防盗报警系统-河北大学2004届本科毕业生论文.pdf 相关书目 单片机 327 单片机原理及应用 328 MCS-51单片机原理及实用技术 329 位微型计算机原理·接口技术及其应用 330 单片机开发与典型应用设计 331 单片机实用系统设计技术 332 IBM PC微型计算机原理及接口技术 333 MCS-51单片机原理及接口技术 修订版 334 北京职业教育计算机应用培训教材 单片机——原理·操作·实验·应用 335 单片机实用技术_整机设计、多机通信、实用技术 336 EM78系列单片机简介 337 单片机器件应用手册 338 MCS 96 MC68单片机原理与应用 339 数字PID及其算法 699 MCS-51单片机开发系统与监控分析 700 MCS-51单片机原理及接口技术 701 MCS-51系列单片机实用接口技术 702 PC机及单片机数据通信技术 703 PIC系列单片机应用设计与实例 704 单片机外围器件实用手册 电源器件分册 705 单片机基础 706 单片机模糊控制系统设计与应用实例 707 单片机器件应用手册 708 单片机实用开发指南 709 单片机应用技术大全 710 单片机应用系统抗干扰技术 711 单片机应用技术选编 712 单片机原理及系统设计 713 单片机原理与应用教程 714 数字信号处理C语言程序集 715 单片机接口技术实验指导 716 信号处理单片机及应用(上) 717 信号处理单片机及应用(下) 718 智能仪器(单片机应用系统设计) 719 自装单片微电脑快速入门 720 8051单片机实践与应用 741 边学边用C语言
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值