·上一文章:AVR单片机的天然气发动机电控系统设计
·下一文章:一种基于AT89S52的可视电子听诊器的研制 (1)
3 软件设计
3.1 系统软件设计
系统软件的设计流程如图4所示。首先完成系统的初始化工作,包括C8051F021的初始化和SD2300的定时中断设置,然后系统进入等待状态。待到达预定时刻后,SD2300发出定时中断,使C8051F021进入中断处理程序,进行数据采集和存储。存储完毕,系统再次进入等待状态,等待下一次定时中断的到来。
3.2 SD2300的软件接口设计
SD2300的I2C接口与C8051F021的GPIO相连,通过GPIO来模拟I2C,编程简单,操作方便。SD2300的访问控制通过寄存器直接寻址实现,其内部的寄存器如表1所列。
SD2300通过两线式串行接口方式接收各种命令并读写数据。下面具体介绍两线式串行接口方式。
①开始条件:当SCL处于高电平时,SDA由高电平变成低电平构成一个开始条件。对SD2300的所有操作均必须由开始条件开始。
②停止条件:当SCL处于高电平时,SDA由低电平变成高电平构成一个停止条件。此时SD2300所有的操作均停止,系统进入待机状态。
③数据传输:当SCL为低电平,且SDA电平变化时,数据由C8051F021传输给SD2300;当SCL为高电平,且SDA电平不变时, C8051F021读取SD2300 E2PROM发送来的数据;当SCL为高电平,且SDA电平变化时,SD2300收到一个开始或停止条件。
④确认:数据传输以8位序列进行。SD2300在第9个时钟周期时将SDA置位为低电平,即送出一个确认信号,标明数据被其收到。