毕业论文-51单片机开发板 - 图文

S51开发板的设计

开始 TLC5615片选使能 时钟上升沿读取数据 N 12位数据读取完毕 Y TLC5615片选禁能

图4-5 DA程序流程图

4.2.4 DS1302时钟模块程序设计 a DS1302的工作时序

DS1302 的复位特征和时钟控制要求:复位(~RST) 输入有两种功能:首先,用于接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,用于终止单字节或多字节数据的传送。当为~RST高电平时,所有的数据传送被初始化,允许对DS1302 进行操作。如果在传送过程中~RST置为低电平,则会终止此次数据传送,并且I/ O 引脚变为高阻态。上电运行时,在Vcc≥2.0之前,~RST必须保持低电平。另外,当~RST为高电平时,SCLK必须为低电平。

DS1302 的数据输入输出:

向DS1302 写入数据时,数据在控制字节输入后的下一个SCLK周期的上升沿被写入,多余的SCLK将被忽略。数据写入时从低位(位0) 开始;同样,从DS1302 读取数据时,数据在紧跟控制字节后的下一个SCLK的下降沿读出,读出数据时也是从低位(0位) 到高位(7位) ,只要~RST 保持高电平,额外的SCLK将导致数据字节的持续读出,这个特性用于实现该芯片的突发读模式。数据读写时序如图4-6所示:

23

S51开发板的设计

图4-6 DS1302的读写时序

突发模式下,可以一次性读出所有日历时钟数据或RAM数据。 b DS1302的寄存器

DS1302 共有12 个寄存器,其中有7 个寄存器与日历、时钟相关,存放的数据位为BCD 码格式。其日历、时间寄存器及其控制字见表4-1:

表4-1 DS1302的寄存器

寄存器名 命令字 写操作 读操作 秒寄存器 分寄存器 时寄存器 日寄存器 月寄存器 周寄存器 年寄存器 80H 82H 84H 86H 88H 8AH 8CH 81H 83H 85H 87H 89H 8BH 8DH 00-59 00-59 00-12或00-23 01-28,29,30,31 01-12 01-07 00-99 取值范围 7 启动 0 6 各位内容 5 十位 十位 4 3 2 1 0 个位 个位 个位 个位 个位 0 个位 个位 12/24 0 10/AP 十位 0 0 0 0 0 0 十位 0 0 十位 0 十位 c DS1302时钟程序流程图

DS1302时钟程序流程图如图4-7所示:

24

S51开发板的设计

开始 读取DS1302的秒值 Y 时钟芯片关闭 N 写入允许 写入初始化时间 写入禁止 获取时钟芯片的时间 时间、日期数据转化为液晶字符显示

图4-7 DS1302时钟程序流程图

在程序中定义了一个结构体,用来存储秒、分、时、星期、日、月、年信息,对DS1302的寄存器地址进行了声明,方便在编程时使用,依据DS1302读写单字节数据时序图编写实时时钟读写一个字节的函数,依据DS1302读写数据时序图编写向DS1302某地址写入数据和从DS1302某地址读出数据的函数,从DS1302某地址读出数据可以获取时钟芯片的时钟数据到自定义的结构型数组中,这样单片机就可以实时的从DS1302获取时间了,向DS1302某地址写入数据可以实现单片机对DS1302进行时间的初始化和修改操作。 4.2.5 测温模块程序设计 a DS18B20的工作时序

单总线在任何时刻只能有一个控制信号或数据,数据要能在单片机和单总线芯片之间实现可靠的传送,遵循单总线处理次序通信协议,确保数据有条不紊地传送,单总线处理次序图如图4-8所示:

25

S51开发板的设计

图4-8 单总线处理次序图

处理次序操作时,一般有以下4 个过程:(1)初始化。基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机的应答脉冲组成。应答脉冲使主机知道总线上有从机设备,且准备就绪。(2)ROM 操作命令。在主机检测到应答信号后,主机可以发出ROM 操作命令之一。所有的ROM 命令都是8 位,而且这些命令与各个从机设备的唯一64位ROM代码相关,允许主机在单总线上连接多个从机设备时,指定操作某个从机设备。可发送的ROM 命令有:读ROM,匹配ROM,搜索ROM,跳过ROM,超ROM,超速跳过ROM,条件查找ROM。(3)RAM 操作命令。当成功执行上述某个ROM 操作命令后,总线可以发出一个RAM 命令来访问和控制RAM。可发送的RAM 命令有:写暂存RAM,读暂存RAM,复制暂存RAM,数据转换,回读E2PROM,读电源模式。(4)数据交换。主机和从机之间进行数据的传输,所有的数据都是从低位开始读写的。

所有的单总线器件要求采用严格的通信协议,以保证数据的完整性。该协议定义了几种信号:复位脉冲、应答脉冲、写0、写1、读0 和读1。这些信号当中,除了应答信号是由从机发给主机的以外,其他的信号都是由主机发出同步信号,并且发送所有的命令和数据都是从字节的低位开始的。

单总线上的所有通信都是以初始化时序开始,包括主机发出的复位脉冲及从机的应答脉冲,初始化时序如图4-9所示:

图4-9 初始化时序

当主机把数据从逻辑高电平拉到逻辑低电平时,写时序开始,写“1”和“0”, 写时序如图4-10所示:

26

联系客服:779662525#qq.com(#替换为@)