东北石油大学毕业论文巡检定时器(6)

2019-04-01 22:52

东北石油大学本科生毕业设计(论文)

开始 初始化 N扫描按键 是否调整时间 闹钟响起,并向手机发送 短信 Y进入调整时间 NN调整完毕? 闹钟时间到? YY读取数据,显示 图4-1 主程序流程图

4.2 时钟电路程序的设计

DS1302 所进行的一切工作必须先由CPU 向DS1302 发送命令字节, 命令字节格式如图4-2。各位定义如下:命令字节的最高位7 必须为“1”,否则禁止对DS1302 进行操作。第6 位是时钟/日历或RAM 选择位,如它为“1”可对内部RAM 读写,如它为“0”可对时钟日历操作。此处所谓日历型数据即数据格式为压缩型BCD 码,且数值必须在它的定义域内;例如:“月份”的定义域为1~12, “秒”的定义域为0~59 等等。所谓RAM型数据即指一般16 进制数据。位5 至位1 为DS1302 内部寄存器地址。DS1302 有单字节和多字节两种读、写方式。所谓单字节读、写方式即每次只能从DS1302 中读、写1 字节数据。所谓多字节读、写方式则每次可从DS1302 中连续读、写若干字节数据。当位5 至位1 各位均为“1”时,DS1302为多字节读、写方式。最低位0 为“0”表示写操作,否则为读操作。

22

东北石油大学本科生毕业设计(论文)

命令字节的传输都是从最低位开始。

7 6 5 4 3 2 1 0

1 RAM /CK A4 A3 A2 A1 A0 RAM /K 图4-2 DS1302时钟芯片的控制字

DS1302 采用串行方式与微控制器通讯。在片选信号RST 变为高电平后,可向芯片发送指令及读取数据。DS1302 的命令字的传输从最低位开始。当对DS1302 进行写数据时,首先发写控制指令,在控制指令字输入后的下一个SCLK时钟的上升沿,数据被写入DS1302,数据输入从低位即位0开始。当对DS1302 进行读数据时,首先发读控制指令,在紧跟8 位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302 的数据,读出数据时从低位0 位至高位7。注意在SCLK为高电平期间,不能读I/O 线,此期间I/O 端为高阻状态。因此,在程序设计时应保证在SCLK上升沿之前读I/O线,即可正确读出时钟数据。在本记录仪表系统中,实时时钟软件首先应将日历信息初值———秒、分、时、日、月、星期、年等按序写入到DS1302 相关寄存器中,此后,时钟便以此初值为基准进行计时,只要主电源VCC2 和备份电源VCC1 尚有一个工作正常,则计时就不会终止。初始化日历信息程序分为三部分:(1) 发送“解除写保护”命令字8EH 和内容00H ,以开放DS1302 写操作。(2) 发送“涓流充电”命令字90H 和内容A7H,以开放DS1302 内部充电电路。(3) 发送“多字节写日历型数据”或“单字节写日历型数据”命令字写入日历信息初值。上述部分属于对DS1302 内部功能寄存器操作,因此必须以“单字节”方式进行发送;而第3 部分属于对DS1302 一般寄存器操作,故可以采用“多字节”方式发送,以便提高效率。同时,在仪表工作过程中需要读取时间日历信息时,可根据具体需要采用“多字节”方式或“单字节”方式。这里,无论采用“单字节”还是“多字节”方式,能否可靠、准确地读出这些信息,其技术关键是和硬件密切相联的DS1302 读写驱动程序的设计。该驱动程序的功能是产生正确的同步时钟脉冲,并在同步时钟脉冲上升沿将数据按位写入DS1302 或在同步时钟脉冲的下降沿按位从DS1302 中读出日历型数据,从而完成1 字节数据的发送或接收。对于“多字节”方式,只需改变命令控制字和增加循环次数即可完成多字节的连续读写。写了DS1302 的读写程序。编写DS1302 驱动程序时,首先应对硬件电路使用的端口进行定义声明,并初始化芯片引脚及工作状态,系统一切就绪后执行读写操作。同时,DS1302 在执行相应操作时,应保证延时时间的选择需满足芯片的时序要求,并注意RTS 引脚的及时打开与关闭,以确保数据的正常读写和避免CPU 的长时间占用,减少干扰,提高程序的执行效率。其流程图如图4-3、图4-4、图4-5所示:

23

东北石油大学本科生毕业设计(论文)

开始 初始化引脚状态 RST=1启动DS1302 写控制指令最低位 SCLK发脉冲 控制指令右移1位 右移8次 NY写发送数据最低位 SCLK发脉冲 发送数据右移1位 右移8次 NYRST=0关闭DS1302 返回 4-3 DS1302读状态流程图 开始

初始化引脚状态 RST=1启动DS1302

写控制指令最低位 SCLK发脉冲

控制指令右移1位 右移8次 N Y 读数据字节

SCLK发脉冲

右移8次 NY RST=0关闭DS1302

返回

图4-4 DS1302写状态流程图24

东北石油大学本科生毕业设计(论文)

初始化 读日期数据 数据处理 将设置的数据写入芯片 转为ASCII

图4-5 DS1302程序流程图

返回主程序 4.3 LCD显示电路程序的设计

4.3.1 LCD的四种基本操作

LCD有四种基本操作,具体如表所示。

表4-1 LCD与单片机之间有四种基本操作

RS 0 0 1 1 R/W 0 1 0 1 操作 写命令操作(初始化,光标定位等) 读状态操作(读忙标志位) 写数据操作(要显示内容) 读数据操作(可以把显示存储区中的数据反读出来)

(1)读状态操作

执行读状态字操作,如表4-1所示须满足RS=0、R/W=1。根据管脚功能,当为有效电平时,状态命令字可从LCD模块传输到数据总线。同时可以保持一段时间,从而实现读状态字的功能。如图4-6所示为读入状态字流程图。

25

东北石油大学本科生毕业设计(论文)

开始 RW置1,等待 E清0,等待 RS清0,等待 RW清0,等待 E置1,等待 返回 读入状态字,图4-6 LCD读入状态字流程图

(2)写命令操作

由表4-1可知当RS=0,R/W=0时,才可以通过单片机或用户指令把数据即命令,写到LCD模块,此时就对LCD进行调制。可采用查询方式:先读入状态字,再判断忙标志,最后写命令字。写命令字流程图如图4-7所示。

AC.7=0? 不忙吗? 读入命令字→A E=1 返回 写命令字 RS=0 RS=0 开始 R/W=0 E=0 N命令字→A→P0 Y延时 图4-7 写命令流程图

(3)定义光标位置

把显示数据要某个位置,就是把显示数据写在相应的DDRAM地址中,DDRAM地址占7位。Set DDRAM address 命令如表4-2所示。光标定位,写入一个显示字符后,DDRAM地址会自动加1或减1,加或减由输入方式设置。第一行DDRAM地址与第二行DDRAM地址并不连续。如表4-3所示。

26


东北石油大学毕业论文巡检定时器(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1 毕业论文2011

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: