《89C51单片机 第10章.ppt》由会员分享,可在线阅读,更多相关《89C51单片机 第10章.ppt(86页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 第第10章章 89C51应用系统应用系统 设计和开发设计和开发 单片机应用系统设计包括总体方案、单片机应用系统设计包括总体方案、硬件系统、软件系统设计硬件系统、软件系统设计,系统仿真调系统仿真调试和运行维护等。介绍一个实用的数据试和运行维护等。介绍一个实用的数据采集和超限报警系统的设计和开发。采集和超限报警系统的设计和开发。10.1 单片机应用系统单片机应用系统典型的单片机应用系统除主机外,还包括有:典型的单片机应用系统除主机外,还包括有:l 前向通道前向通道(即输入部分即输入部分):数字量、开关量、模拟量信号数字量、开关量、模拟量信号(A/D)的输入。的输入。l 后向通道后向通道(输出部分
2、输出部分):数字量、开关量、模拟量信号数字量、开关量、模拟量信号(D/A)的输出。的输出。l 人机对话通道,即人机交互部分人机对话通道,即人机交互部分:键盘、显示器、打印机、看门狗键盘、显示器、打印机、看门狗(监视监视)电路等电路等.单片机应用系统设计的特点:单片机应用系统设计的特点:l 单片机应用系统一般规模比较小。设计开发过程要单片机应用系统一般规模比较小。设计开发过程要 借助专用的开发器、仿真器或开发系统来进行。借助专用的开发器、仿真器或开发系统来进行。l 设计中要综合考虑硬件、软件的组成设计中要综合考虑硬件、软件的组成,以达到较高性以达到较高性 能价格比。可以采用软件固化实现部分硬件功
3、能,能价格比。可以采用软件固化实现部分硬件功能,也可以采用硬件来实现某些软件的功能。也可以采用硬件来实现某些软件的功能。l 单片机应用系统要求可靠性高,特别是工作于无人单片机应用系统要求可靠性高,特别是工作于无人 值守、不间断工作的环境中,必须保证安全可靠。值守、不间断工作的环境中,必须保证安全可靠。要从电路设计、软件程序等加以考虑。看门狗监视要从电路设计、软件程序等加以考虑。看门狗监视 电路就是其中一种。电路就是其中一种。l 单片机应用系统要尽量作到低功耗、小体积。单片机应用系统要尽量作到低功耗、小体积。l 软件程序固化在单片机内的程序存储器中。要在专软件程序固化在单片机内的程序存储器中。要
4、在专 门的编程器或下载设备中完成。门的编程器或下载设备中完成。10.2 单片机应用系统的设计过程单片机应用系统的设计过程设计过程包括以下几部分:设计过程包括以下几部分:.总体方案的设计总体方案的设计.硬件系统设计硬件系统设计.软件系统设计软件系统设计.系统仿真调试系统仿真调试.运行维护。运行维护。这这5个部分不是孤立的,个部分不是孤立的,而是相互关联、相互依而是相互关联、相互依靠、互相制约的。靠、互相制约的。10.2.1 总体方案的设计总体方案的设计1.根据市场需求根据市场需求,进行分析进行分析,提出本项目的任务。提出本项目的任务。2.熟悉和了解控制对象熟悉和了解控制对象,确定合理可行的技术指
5、标确定合理可行的技术指标.3.确定系统功能具体实现形式确定系统功能具体实现形式,选择出适合该项选择出适合该项 目,能迅速开发出性能价格比高的应用系统的目,能迅速开发出性能价格比高的应用系统的 单片机。单片机。4.合理地划分硬件和软件两部分的功能要求合理地划分硬件和软件两部分的功能要求。5.确定总体方案,拟定设计任务书。按照软件工确定总体方案,拟定设计任务书。按照软件工 程的思想,列出各子系统的任务书程的思想,列出各子系统的任务书,以及软件、以及软件、硬件及它们之间的接口标准、技术要求。硬件及它们之间的接口标准、技术要求。10.2.2 硬件系统设计硬件系统设计 1.根据功能要求根据功能要求,选择
6、系统的选择系统的CPU、存储器、存储器、I/O接口接口以及传感器、继电器、显示器、键盘等元器件。以及传感器、继电器、显示器、键盘等元器件。2.原理图和原理图和PCB板板(印制电路板印制电路板)的设计。使用专门的的设计。使用专门的 EDA(电子设计自动化电子设计自动化)工具软件工具软件(如如Protel)。它们有强大的自动设计能力它们有强大的自动设计能力,高速有效的编辑功高速有效的编辑功 能能,使得设计过程简便高效。使得设计过程简便高效。3.制版和组装制版和组装 设计完成后设计完成后,交付制版生产厂家。在交付制版生产厂家。在PCB板和元器件板和元器件 齐套时,焊接组装。齐套时,焊接组装。4.硬件
7、调试硬件调试 利用电子仪器及编写测试程序,进行硬件调试。利用电子仪器及编写测试程序,进行硬件调试。10.2.2 软件系统设计软件系统设计 根据总体方案提出的要求和具体的硬件电路,设计根据总体方案提出的要求和具体的硬件电路,设计出实现应用系统功能要求的控制程序。出实现应用系统功能要求的控制程序。l 选择软件的开发环境,确定设计使用的编程语言。选择软件的开发环境,确定设计使用的编程语言。l 根据任务的要求,建立一个好的数学模型。根据任务的要求,建立一个好的数学模型。l 采用模块化程序设计方法。提高效率采用模块化程序设计方法。提高效率,保证可靠性。保证可靠性。l 软件设计开始,把软件要实现的功能结合
8、硬件进行软件设计开始,把软件要实现的功能结合硬件进行 具体的定义。具体的定义。l 根据功能实现过程根据功能实现过程,画出程序主流程图。画出程序主流程图。l 编写程序。实现系统功能及抗干扰的要求。编写程序。实现系统功能及抗干扰的要求。l 软件模拟仿真。调试。软件模拟仿真。调试。10.2.4 系统仿真调试系统仿真调试l 应用系统测试工作包括:应用系统测试工作包括:.功能测评。根据技术指标要求功能测评。根据技术指标要求,逐项测试。完成功逐项测试。完成功 能测试能测试,指标测量指标测量,追踪程序执行追踪程序执行,分析执行时间等。分析执行时间等。.系统优化。如硬件电路去除冗余器件、提升性能指系统优化。如
9、硬件电路去除冗余器件、提升性能指标标,降低功耗等。软件程序存储空间、循环优化等。降低功耗等。软件程序存储空间、循环优化等。.可靠性测试。检验其抗干扰能力、可靠性等。可靠性测试。检验其抗干扰能力、可靠性等。l 系统仿真调试要在集成开发环境中完成。系统仿真调试要在集成开发环境中完成。软件仿真中软件仿真中,在虚拟硬件平台上验证程序的正确性在虚拟硬件平台上验证程序的正确性.硬件仿真通过仿真器、开发系统、硬件仿真通过仿真器、开发系统、ICE设备等,借设备等,借助示波器、逻辑分析仪等电子测量仪器,对开发的目助示波器、逻辑分析仪等电子测量仪器,对开发的目标系统进行实时在线仿真。标系统进行实时在线仿真。10.
10、2.5 系统运行与维护系统运行与维护l 应用系统在仿真调试环境中成功后应用系统在仿真调试环境中成功后,确定硬件确定硬件和和 软件基本正确,将程序代码固化到单片机的程序软件基本正确,将程序代码固化到单片机的程序 存储器中。独立运行该应用系统。存储器中。独立运行该应用系统。l 在系统独立运行中,随时观察系统,有时需要在系统独立运行中,随时观察系统,有时需要对其进行改进。如果运行正常,就可以投入正对其进行改进。如果运行正常,就可以投入正常的工作中。常的工作中。l 一般来说,在连续工作的过程中,有可能出现一般来说,在连续工作的过程中,有可能出现 调试中没有遇到的问题,需要设计人员进一步调试中没有遇到的
11、问题,需要设计人员进一步 改进。经过一定时间的监护,系统运行正常,改进。经过一定时间的监护,系统运行正常,单片机应用系统的开发工作胜利完成。单片机应用系统的开发工作胜利完成。10.3 基于基于89C51单片机的数据采集系统单片机的数据采集系统 介绍一个实用的数据采集和超限报警系统。介绍一个实用的数据采集和超限报警系统。l 该系统以单片机该系统以单片机89C51为核心,可以采集最多为核心,可以采集最多16路路 模拟量输入信号,可以作数据采集、运算和控制调模拟量输入信号,可以作数据采集、运算和控制调 节,及进行超限报警处理等。节,及进行超限报警处理等。l 设开关量输出设开关量输出,控制继电器对外设
12、控制或报警处理。控制继电器对外设控制或报警处理。l 系统利用系统利用RTC芯片提供实时的日期、时间信息。芯片提供实时的日期、时间信息。l 通过串行通过串行RS-485接口和上位机通信构成多机系统。接口和上位机通信构成多机系统。l 采用采用LED数码管和发光管显示,进行人机对话。数码管和发光管显示,进行人机对话。l 增加硬件看门狗(监视器)增加硬件看门狗(监视器),保证系统可靠运行。,保证系统可靠运行。l 系统中选用同步串行接口芯片芯片间采用串行通系统中选用同步串行接口芯片芯片间采用串行通 信,大大简化了硬件电路,减小仪器的体积。信,大大简化了硬件电路,减小仪器的体积。该系统功能齐全,是一个实用
13、性很强的应用系统。该系统功能齐全,是一个实用性很强的应用系统。10.3.1 单片机数据采集系统的总体设计单片机数据采集系统的总体设计l CPU:89C51单片机单片机l 主频:主频:11.0592MHzl 数据采集:数据采集:16通道模拟量输入通道模拟量输入 多路选择器多路选择器:4067 (16选选1模拟开关电路模拟开关电路)A/D转换器转换器:MAX187(12位串行接口位串行接口A/D转换器转换器)l 开关量输出:开关量输出:8路开关量输出。路开关量输出。l 看门狗看门狗:X5045(带带E2PROM的看门狗定时器电路的看门狗定时器电路)l 实时时钟实时时钟:DS1307(带带64字节字
14、节RAM串行串行RT电路)电路)l 串行通信接口:串行通信接口:MAX485,提供提供RS-485标准接口标准接口l 并行并行I/O接口:接口:8255A并行并行I/O接口电路接口电路l 显示器:显示器:6位位LED显示器和显示器和8个发光二极管。个发光二极管。l 键盘:键盘:4个按键,独立连接的非编码键盘个按键,独立连接的非编码键盘l 电源:电源:DC+5V、DC+12Vl 软件:程序固化单片机中,采用汇编语言编程。软件:程序固化单片机中,采用汇编语言编程。10.3.2 单片机数据采集系统主程序的设计单片机数据采集系统主程序的设计l 系统连续运行,主程序是一个无限循环、顺序执行系统连续运行,
15、主程序是一个无限循环、顺序执行 的程序。的程序。主程序的流程是一个闭合的圈主程序的流程是一个闭合的圈。l 系统任务包括系统任务包括:初始化初始化,数据采集和处理数据采集和处理,结果显示结果显示 和打印和打印,和上位机的通信和上位机的通信,人机对话人机对话,超限报警检测超限报警检测 和处理和处理,定时器监视定时器监视(看门狗看门狗)及系统的控制等。及系统的控制等。l 主流程中完成系统初始化主流程中完成系统初始化,数据的处理数据的处理,LED显示显示,超限检测和报警处理超限检测和报警处理,人机对话处理人机对话处理(按键扫描和处按键扫描和处 理理),串口发送数据等工作。串口发送数据等工作。l 利用定
16、时中断利用定时中断,对数据采集对数据采集,存入指定工作单元。存入指定工作单元。l 利用串口中断,接收上位机发来的信息。利用串口中断,接收上位机发来的信息。10.3.3 模拟量输入接口的设计模拟量输入接口的设计 l 模拟量输入是数据采集系统的关键模拟量输入是数据采集系统的关键,采集的信号是采集的信号是温温 度、压力、气体或液体的流量、浓度等连续变化的度、压力、气体或液体的流量、浓度等连续变化的 物理量物理量.信号通过传感器或变送器转换成连续变化信号通过传感器或变送器转换成连续变化 的电信号。变换后的电信号有时须经过放大的电信号。变换后的电信号有时须经过放大,使信号使信号 满足满足A/D转换器的输
17、入要求。转换器的输入要求。l 本系统可以进行本系统可以进行16通道的模拟量输入。通道的模拟量输入。l 多路选择器多路选择器4067是一个是一个16选选1模拟开关电路,通过它模拟开关电路,通过它 由软件分时选通各个模拟通道的输入。由软件分时选通各个模拟通道的输入。l 使用使用12位串行接口的位串行接口的A/D转换器转换器MAX187,它采用,它采用 三线三线SPI总线和总线和CPU通信通信,接口简单接口简单,精度高精度高,功耗低功耗低.1.模拟开关电路模拟开关电路4067l 4067是用数字信号控制的是用数字信号控制的 16选选1的模拟开关的模拟开关l 在数据采集系统中在数据采集系统中,经过传经
18、过传 感器和放大器转换和处理感器和放大器转换和处理 的模拟信号通过的模拟信号通过4067多路多路 选择选择,分时将其中一路的信分时将其中一路的信 号传送到号传送到A/D转换器中。转换器中。l 选择通道的控制信号由选择通道的控制信号由 89C51的的P1口输出。口输出。2.12位串行接口的位串行接口的A/D转换器转换器MAX187 MAX18712位精度的位精度的A/D转换器转换器ADCl 12位的位的A/D转换精度;转换精度;l 内部采样内部采样/保持电路,保持电路,采样速率采样速率75KHz;l 内部缓存的参考电压内部缓存的参考电压4.096V;l 3线串行接口和处理器通信,线串行接口和处理
19、器通信,l 工作在单一的工作在单一的+5V电源电源l 低功耗低功耗,待机待机2A,工作工作1.5mA;l 小封装小封装,8个引脚的个引脚的DIP封装。封装。MAX187的引脚封装:的引脚封装:u VDD(1脚):脚):+5V电源电源u AIN(2脚):脚):模拟量输入,模拟量输入,范围为范围为0VVREF(0V4.096V)u SHDN(3脚)脚):工作模式选择输入端工作模式选择输入端 低电平为待机模式低电平为待机模式,高电平为正常操作高电平为正常操作u VREF(4脚):脚):参考电压。参考电压。内部为内部为4.096V,外部为,外部为+2.5VVDDu GND(5脚):脚):接地接地u D
20、OUT(6脚):串行数据输出脚):串行数据输出u CS (7脚):片选输入端。脚):片选输入端。低电平启动低电平启动A/D,高电平时高电平时DOUT高阻高阻u SCLK(8脚脚):串行时钟信号输入端串行时钟信号输入端MAX187的操作:的操作:l 利用输入采样利用输入采样/保持电路和逐次比较寄存器将输入的保持电路和逐次比较寄存器将输入的 模拟信号转换成模拟信号转换成12位的数字信号输出。位的数字信号输出。l 输入信号电压范围为输入信号电压范围为0V-VREF,如使用内部参考电,如使用内部参考电 源源,电压为电压为4.096V,则输入信号范围即为,则输入信号范围即为0V-4.096V.A/D转换
21、转换12位位,最低一位电压值最低一位电压值4.096V/4096=100mV.A/D转换的时间转换的时间,包括采样包括采样/保持的时间在内为保持的时间在内为10S.l A/D转换过程在转换过程在SCLK为低,为低,CS端输入信号下降沿端输入信号下降沿 时启动。时启动。DOUT端变高时端变高时,表示表示A/D转换完成转换完成(EOC).l 转换结果在转换结果在DOUT端单向串行输出端单向串行输出,经过经过13个个SCLK 周期周期.每个每个SCLK下降沿后移出后一位,数据改变。下降沿后移出后一位,数据改变。数据由最高位开始。完成后数据由最高位开始。完成后,CS变高变高,DOUT高阻。高阻。MAX
22、187工作时序图工作时序图 3.模拟量输入和模拟量输入和A/D转换的控制转换的控制l 89C51的的P1.2,P1.3,P1.4,P1.5连到连到4067的通道选择端的通道选择端 A,B,C和和D上上,程序控制分时选通模拟量输入信号。程序控制分时选通模拟量输入信号。l MAX187和和89C51间通过同步串行通信接口数据交间通过同步串行通信接口数据交 换换.89C51作主设备作主设备,由由P2.3输出时钟输出时钟SCLK信号信号,P2.4 输出输出CS信号信号,P2.5输入输入A/D转换后的数字信号。利用转换后的数字信号。利用 软件程序来实现软件程序来实现MAX187和和89C51之间的通信。
23、之间的通信。操作的过程如下:操作的过程如下:l 选择模拟输入通道。由选择模拟输入通道。由P1.2-P1.5输出所通道编码。输出所通道编码。l 启动启动A/D转换。保持转换。保持SCLK(P2.3)为低为低,将将CS(P2.4)由由 高变低。高变低。l等待转换完成。检查等待转换完成。检查DOUT,为上升沿时表示完成。为上升沿时表示完成。l 读出转换后数据。保持读出转换后数据。保持CS(P2.4)为低电平为低电平,连续由连续由 P2.3输出输出SCLK时钟信号时钟信号,最少最少13个时钟周期。个时钟周期。在第一个在第一个SCLK的下降沿时的下降沿时,DOUT(P2.5)端产生数据端产生数据 的最高
24、位。在每个的最高位。在每个SCLK的下降沿的下降沿,DOUT分别输出分别输出 各位数据,各位数据,89C51通过通过P2.5读入到读入到CPU中。中。l 结束本次操作。在经过结束本次操作。在经过13个个SCLK的下降沿后,将的下降沿后,将 CS信号变为高电平,结束本次操作。信号变为高电平,结束本次操作。;*;MAX187的的A/D转换子程序转换子程序 *;*DATBUF DATA 30H ;定义数据缓存单元;定义数据缓存单元SCLK BIT P2.3CS BIT P2.4DOUT BIT P2.5 ;定义;定义MAX187引脚引脚ADC:MOV R5,#0 MOV R6,#0 MOV R7,#
25、12 CLR SCLK ;SCLK=0 CLR CS ;CS=0,启动,启动A/D转换转换 SETB DOUT ;置;置DOUT(P2.5)为输入状态为输入状态LOOP1:MOV C,DOUT JNC LOOP1 ;查询;查询DOUT,等待转换完成等待转换完成 SETB SCLK ;SCLK=1 NOP CLR A CLR SCLK25LOOP2:NOP NOP SETB SCLK ;SCLK=1,读入数据,读入数据 NOP MOV C,DOUT ;读入第;读入第1位(最高位)位(最高位)MOV A,R6 ;R6暂存低位数据暂存低位数据 RLC A MOV R6,A MOV A,R5 ;R5暂
26、存高位数据暂存高位数据 RLC A MOV R6,A CLR SCLK DJNZ R7,LOOP2 ;检查读完;检查读完12位否?位否?SETB CS ;CS=1,数据传送结束,数据传送结束 MOV DATBUF,R6 ;存放高;存放高4位位 MOV DATBUF+1,R5 ;存放低;存放低8位位 RET10.3.4 看门狗定时器看门狗定时器X5045的设计的设计1.看门狗定时器的工作原理看门狗定时器的工作原理 自动监视技术自动监视技术,即看门狗技术即看门狗技术(WatchDog)的监控思路的监控思路:l 在系统中设置一个定时器在系统中设置一个定时器(看门狗定时器看门狗定时器).l 处理器正常
27、运行时处理器正常运行时,程序每隔一定时间发出一条程序每隔一定时间发出一条(或或 几条几条)指令指令,将看门狗定时器清零将看门狗定时器清零,俗称俗称“喂狗信号喂狗信号”,使得看门狗定时器总是不能溢出。使得看门狗定时器总是不能溢出。l 如果处理器如果处理器“死机死机”或程序跑飞或程序跑飞,就不能发出就不能发出“喂喂狗信狗信 号号”,即不能向看门狗定时器发出清除脉冲。定时即不能向看门狗定时器发出清除脉冲。定时器器 产生计数溢出信号产生计数溢出信号,该信号会自动复位微处理器,该信号会自动复位微处理器,系统重新启动和继续工作。系统重新启动和继续工作。l 操作是系统自动检测和进行操作是系统自动检测和进行,
28、不需人为干预不需人为干预,保证应保证应 用系统可靠地工作。用系统可靠地工作。常用的看门狗定时器电路常用的看门狗定时器电路 型号型号复位复位门门限限/V低低电电平平复位复位高高电电平平复位复位看看门门狗狗周期周期/s手手动动复位复位E2PROM容量容量/bit接接口口封装形式封装形式IMP7054.65有有1.6有有8DIP/SOIMP7064.40有有1.6有有8DIP/SOIMP706P2.63有有1.6有有8DIP/SOIMP813L4.65有有1.6有有8DIP/SOX50434.25-4.50有有可可选选5128SPI8DIP/SOX5043P2.55-2.70有有可可选选5128SP
29、I8DIP/SOX50454.25-4.50有有可可选选5128SPI8DIP/SOX5045P2.55-2.70有有可可选选5128SPI8DIP/SOCAT1161可可选选有有有有可可选选2K8I2C8DIP/SO2.看门狗定时器电路看门狗定时器电路 X5045 X5045是是XICOR公司具有公司具有上电复位、电压监控、看上电复位、电压监控、看门狗定时器以及门狗定时器以及E2PROM数据存储数据存储4种功能的芯片。种功能的芯片。采用采用SPI串行接口,体积小、占用串行接口,体积小、占用I/O线少、功能强,线少、功能强,广泛应用于仪器仪表、工业控制等领域。广泛应用于仪器仪表、工业控制等领域
30、。l 可编程选时间的看门狗定时器可编程选时间的看门狗定时器l VCC电源电压降低检测和复位控制电源电压降低检测和复位控制l 5128位串行位串行E2PROMl 低功耗低功耗CMOS电路:电路:10A等待电流等待电流,3mA工作电流工作电流l 数据块锁定保护功能数据块锁定保护功能l 片内建的防误写功能片内建的防误写功能l小封装:小封装:8引脚引脚DIP、SOIC封装封装X5045引脚:为引脚:为8个引脚双列直插封装个引脚双列直插封装.CS/WDI(1脚脚):芯片选择。当芯片选择。当CS为低时为低时,芯片工作。芯片工作。又作看门狗定时器的输入又作看门狗定时器的输入,将清零看门狗定时器。将清零看门狗
31、定时器。SO(2脚脚):在处理器读操作时,串行输出数据。在处理器读操作时,串行输出数据。WP(3脚脚):写保护输入端。低电平时写保护输入端。低电平时,禁止向其写操作禁止向其写操作.VSS(4脚脚):地。地。SI(5脚脚):串行输入。串行输入。SCK(6脚脚):串行时钟串行时钟,上升沿输入上升沿输入,下降沿输出数据。下降沿输出数据。RESET(7脚脚):复位输出。复位输出。电源降时电源降时,输出复位信号。输出复位信号。在看门狗时在看门狗时,输出复位信号。输出复位信号。VCC(8脚脚):电源电压。电源电压。指令名称指令名称指令格式指令格式指指 令令 的的 操操 作作WREN0 0 0 0 0 1
32、1 0 设设置写允置写允许锁许锁存器,允存器,允许许写操作写操作WRDI0 0 0 0 0 1 0 0 复位写允复位写允许锁许锁存器,禁止写操作存器,禁止写操作RDSR0 0 0 0 0 1 0 1 读读状状态态寄存器寄存器WRSR0 0 0 0 0 0 0 1 写状写状态态寄存器寄存器READ0 0 0 0 A80 1 1 读读存存储储器,从器,从选选定的地址定的地址单单元开始元开始读读出数据出数据WRITE0 0 0 0 A80 1 0写存写存储储器,从器,从选选定的地址定的地址单单元开元开始写入数据始写入数据 116字字节节X5045的控制指令:的控制指令:3.X5045与与89C51接
33、口及程序设计接口及程序设计 X5045通过通过SPI总线进行数据传送。单片机作主设备,总线进行数据传送。单片机作主设备,X5045作从设备。作从设备。89C51通过通用通过通用I/O线,利用软件实线,利用软件实现数据传送的控制。现数据传送的控制。系统中系统中:P1.0接接X5045的的SI端,端,P1.1接接X5045的的SCK端,端,P1.6接接X5045的的SO端,端,P1.7接接X5045的的CS/WDI端端 X5045的的RESET输出信号输出信号 接接89C51复位输入端复位输入端RST.看门狗定时器看门狗定时器l X5045的的CS/WDI看门狗工作时看门狗工作时,判断判断CPU是
34、否正常是否正常.l 设定时间内设定时间内,CPU在在WDI上产生高到低电平变化上产生高到低电平变化,清清 零定时器零定时器,不产生溢出。不产生溢出。CPU在程序各部分安排在程序各部分安排“喂喂 狗狗”程序程序,两次间隔小于看门狗定时器的溢出时间两次间隔小于看门狗定时器的溢出时间.l正常时正常时,不会产生复位输出不会产生复位输出.如出现故障如出现故障,“喂狗喂狗”程序不能执行程序不能执行,定时器会溢出定时器会溢出,产生复位产生复位,系统自动系统自动恢复。恢复。l X5045状态寄存器状态寄存器2位可编程位位可编程位,决定定时时间。决定定时时间。WD1WD0看看门门狗溢出周期狗溢出周期001.4
35、s01600 ms10200 ms11看看门门狗功能无效狗功能无效 “喂狗喂狗”(清除定时器指令清除定时器指令)一般在主程序一般在主程序,子程序子程序,中中断处理程序的适当位置安排。断处理程序的适当位置安排。;*;复位看门狗定时器(喂狗)复位看门狗定时器(喂狗)*;*SI BIT P1.0 SCK BIT P1.1 SO BIT P1.6 CS BIT P1.7 ;定义;定义X5045引脚引脚 WDOG:NOP CLR CS NOP SETB CS CLR CS RET.读写操作读写操作l 包括对内部寄存器和包括对内部寄存器和E2PROM的读的读/写操作。写操作。l 操作前操作前,先复位先复位
36、CS选中芯片。结束时选中芯片。结束时,要置位要置位CS。l 操作必须首先由主设备操作必须首先由主设备(处理器处理器)将一条控制指令将一条控制指令写写 入入X5045的指令寄存器中,然后再进行读写操作。的指令寄存器中,然后再进行读写操作。l 写操作前写操作前,先读取状态寄存器先读取状态寄存器,判断判断WIP位。位。WIP为为0时时,在写使能允许命令后就可对状态寄存器在写使能允许命令后就可对状态寄存器 或或E2PROM写数据。写数据。l 数据串行传送操作中:数据串行传送操作中:读操作读操作,在在SCK下降沿下降沿,从从SO引脚读取引脚读取1位数据。位数据。写操作写操作,在在SCK上升沿上升沿,向向
37、SI引脚发送的引脚发送的1位数据。位数据。.X5045的应用程序的应用程序;引脚及控制指令码定义;引脚及控制指令码定义 SI BIT P1.0 SCK BIT P1.1 SO BIT P1.6 CS BIT P1.7 ;定义;定义X5045引脚引脚;X5045控制指令码定义控制指令码定义 WREN DATA 06H ;置位写允许锁存器置位写允许锁存器,允许写操作允许写操作 WRDI DATA 04H ;复位写允许锁存器复位写允许锁存器,禁止写操禁止写操作作 RDSR DATA 05H ;读状态寄存器指令;读状态寄存器指令 WRSR DATA 01H ;写状态寄存器指令;写状态寄存器指令 REA
38、D DATA 03H ;读存储器指令,;读存储器指令,WRITE DATA 02H ;写存储器指令,;写存储器指令,SRINI DATA 00H ;状态寄存器初值;状态寄存器初值 BADDR DATA 00H ;X5045内部存储器的首地址内部存储器的首地址 BDATA DATA 46H ;写入到;写入到X5045的数据的数据;*;向向X5045串行写入串行写入8位数据位数据 *;入口参数:入口参数:A=数据数据 *;*SI8B:MOV R7,#8 NOPSI8B1:CLR SCK RLC A MOV SI,C SETB SCK ;SCK上升沿数据输入上升沿数据输入 DJNZ R7,SI8B1
39、 RET;*;从从X5045串行读出串行读出8位数据位数据 *;出口参数:出口参数:A=数据数据 *;*SO8B:SETB SCK MOV R7,#8 NOPSO8B1:SETB SO ;置;置SO为输入为输入 CLR SCK ;SCK下降沿送一位到下降沿送一位到SO NOP MOV C,SO RLC A SETB SCK ;准备送出下一位数据;准备送出下一位数据 DJNZ R7,SO8B1 RET;设置写允许锁存器,允许对设置写允许锁存器,允许对X5045写操作写操作WREN-X:NOP CLR SCK CLR CS MOV A,#WREN ;WREN指令码指令码 LCALL SI8B ;串
40、行写入;串行写入8位数据位数据 CLR SCK SETB CS RET;复位写允许锁存器,禁止对复位写允许锁存器,禁止对X5045写操作写操作 WRDI-X:NOP CLR SCK CLR CS MOV A,#WRDI ;WRDI指令码指令码 LCALL SI8B ;串行写入;串行写入8位数据位数据 CLR SCK SETB CS RET;*;检查检查WIP标志,直到标志,直到WIP无效(为无效(为0)时退出)时退出 *;*CHKWIP:MOV R7,#200 ;设置最大循环次数设置最大循环次数CHKWIP0:CLR SCK CLR CS MOV A,#RDSR ;RDSR指令码指令码 LCA
41、LL SI8B LCALL SO8B SETB CS SETB SCK JNB ACC.0,CHKWIP1 ;检查;检查WIP DJNZ R7,CHKWIP0CHKWIP1:RET;*;向向X5045状态寄存器串行写入状态寄存器串行写入8位数据位数据 *;*WRSR-X:NOP CLR SCK CLR CS MOV A,#WRSR ;WRSR指令码指令码 LCALL SI8B MOV A,#SRINI ;状态寄存器初值;状态寄存器初值 LCALL SI8B CLR SCK SETB CS LCALL CHKWIP RET;向向X5045内部存储器串行写入一个字节数据内部存储器串行写入一个字节数
42、据 BYTE-W:NOP MOV DPTR,#BADDR ;存储器地址;存储器地址 CLR SCK CLR CS MOV A,#WREN CALL SI8B ;写入写允许锁存器;写入写允许锁存器 SETB CS NOP CLR CS MOV A,DPH RRC A ;取出地址的第;取出地址的第9位位A8 MOV A,#WRITE MOV ACC.3,C ;插入地址的第;插入地址的第9位位A8 CALL SI8B ;写入写存储器指令;写入写存储器指令 MOV A,DPL ;存储器地址低;存储器地址低8位位 CALL SI8B ;写入存储器地址;写入存储器地址 MOV A,#BDATA CALL
43、SI8B ;写入数据;写入数据 CLR SCK SETB CS CALL CHKWIP RET;*;从从X5045内部存储器串行读出一个字节数据内部存储器串行读出一个字节数据 *;出口参数:出口参数:A=数据数据 *;*BYTE-R:NOP MOV DPTR,#BADDR ;设置存储器地址;设置存储器地址 CLR SCK CLR CS MOV A,DPH RRC A ;取出存储器地址的第;取出存储器地址的第9位位A8 MOV A,#READ MOV ACC.3,C ;插入地址的第;插入地址的第9位位A8 CALL SI8B ;写入写存储器指令;写入写存储器指令 MOV A,DPL ;存储器地址
44、低;存储器地址低8位位 CALL SI8B ;写入存储器地址;写入存储器地址 CALL SO8B ;读出数据;读出数据 CLR SCK SETB CS RET10.3.5 实时时钟实时时钟RTCDS1307的设计的设计1.实时时钟电路(实时时钟电路(RTC)DS1307 DS1307是是Dallas公司推出实时时钟接口芯片公司推出实时时钟接口芯片l 实时时钟实时时钟功能。对年功能。对年,月月,日日,时时,分分,秒进行计时。秒进行计时。l 内部内部56个个8位非易失位非易失RAM存储单元存储单元,用于数据存储。用于数据存储。l 具有可编程的方波输出信号。具有可编程的方波输出信号。l 内部具有电源
45、自动检测电路。内部具有电源自动检测电路。l 采用采用2线双向串行总线传送地址和数据信息。线双向串行总线传送地址和数据信息。只用只用SCL(串行时钟串行时钟)、SDA(串行数据串行数据)两条线。简两条线。简化化 了和微处理器间的通信。了和微处理器间的通信。l 低功耗、小封装。低功耗、小封装。8个引脚的个引脚的DIP或用于表面安装的或用于表面安装的 SOIC封装,大大减小体积。封装,大大减小体积。DS1307的引脚的引脚(双列直插双列直插DIP封装封装):X1、X2(1,2脚脚):外接外接32.768KHz晶振。晶振。VBAT(3脚脚):外接外接+3V电池。电池。GND(4脚):脚):接地。接地。
46、SDA (5脚):脚):串行数据输入串行数据输入/输出。输出。SCL (6脚):脚):串行时钟输入。串行时钟输入。SQW/OUT(7脚):方波脚):方波/输出驱动。输出驱动。当允许时当允许时,该引脚可输出四种频该引脚可输出四种频率率 (1Hz,4KHz,8KHz,32KHz)的方波的方波Vcc (8脚):接主电源。脚):接主电源。工作电压为工作电压为4.5V-5.5V。DS1307内部寄存器:内部寄存器:l 实时时钟寄存器地址实时时钟寄存器地址00H07H,通过写入实现时间和日历初始化和设置。通过写入实现时间和日历初始化和设置。通过读得到时间和日历的信息通过读得到时间和日历的信息(BCD码码)
47、。l 控制寄存器用来控制控制寄存器用来控制SQW/OUT引脚的引脚的 操作操作,它的地址为它的地址为07H。u OUT(D7):引脚引脚SQW/OUT输出控制位。输出控制位。u SQWE(D4):方波输出允许位。方波输出允许位。u RS1、RS0(D1、D0):频率选择位。频率选择位。可选择输出四种频率的方波可选择输出四种频率的方波l 56个个RAM寄存器的地址在寄存器的地址在08H3FH。D7D6D5D4D3D2D1D0OUTSQWERS1RS02.实时时钟电路实时时钟电路DS1307的数据传送的数据传送l DS1307支持支持I2C总线协议。总线协议。I2C总线总线(Intel-Integ
48、rated Circuit)是是Philips公司推出的同步串行总线。公司推出的同步串行总线。l通信只用两根信号线通信只用两根信号线:串行数据线串行数据线SDA和时钟线和时钟线SCL.l数据传送时数据传送时,单片机为主设备单片机为主设备,提供串行时钟提供串行时钟SCL,控控制制 总线操作总线操作,并产生开始并产生开始(START)和停止和停止(STOP)条件。条件。l DS1307作为总线上的从设备。作为总线上的从设备。l传送以起始信号传送以起始信号(START)开始开始,停止信号停止信号(STOP)结束结束.当当SCL=1时,时,SDA下降沿为起始信号下降沿为起始信号(START)。当当SC
49、L=1时,时,SDA上升沿为停止信号上升沿为停止信号(STOP)。l SCL在不传送数据时保持为高电平状态。在不传送数据时保持为高电平状态。l SDA用于传送数据用于传送数据,每位对应每位对应SCL的一个时钟。的一个时钟。l 主机发送第一个字节为寻址字节主机发送第一个字节为寻址字节:高高7位为从机地址位为从机地址,最低位最低位(LSB)为方向为方向:0表示主机写表示主机写,1表示主机读。表示主机读。l 当主机发送地址后,从器件都与它自己地址比较。当主机发送地址后,从器件都与它自己地址比较。一致的从器件会应答主机。一致的从器件会应答主机。l 在在I2C协议中协议中,每个器件有一个地址每个器件有一
50、个地址,I2C总线委员会总线委员会 负责地址分配,负责地址分配,DS1307的的7位地址为位地址为1101000。l 传输每个字节后必须跟一个时钟的应答或非应答信传输每个字节后必须跟一个时钟的应答或非应答信 号号,主控发送器据此便可进行下一字节的继续发送。主控发送器据此便可进行下一字节的继续发送。3.89C51和和DS1307的连接的连接 单片机数据采集系统中单片机数据采集系统中:89C51用用P2口口2条线和条线和DS1307的的I2C总线相连。总线相连。l P2.1接接DS1307的的SCL端端l P2.2接接DS1307的的SDA端端l DS1307的的SQW(方波输方波输 出出)端接端