① 软件包组成。为模拟I2C总线的操作时序,软件包中包括了2个宏定义和12个子函数。

(a)时序模拟子程序

Sendb--发送起始标志,启动I2C总线;senda--发送确认标志;

Sendna--发送非确认标志;Sende--发送结束标志。

(b)操作模拟子程序

geta--接收确认标志;sendd--发送8位数据;

getd--接收1个字节数据。

(c)数据读写子程序

wrnbyte--写入N字节;rdnbyte--读取N字节。

(d)其它宏及子函数

subsendd--根据标志位C设置模拟数据口线的状态;toggleclk--切换模拟时钟口线状态;

Xdelay--延时子程序;Sdainm--将模拟数据口线A配置为输入口线;

sdaoutm--将模拟数据口线配置为输出。

因DSP的工作频率一般远高于I2C总线的操作频率,因而这里需专用的延时子程序降低模拟时钟口线频率。本文所给出的源程序为F206采用40 MHz晶振时的情况,用户使用时可随实际情况调整延时时间。

② 软件包符号定义。软件包中包括如下符号定义:

VSDA、VSCL--分别定义了模拟数据口线和模拟时钟口线对应的屏蔽位,因DSP中对通用I/O口线的操作不能通过位操作来实现,因而仅能屏蔽位来定义,如采用IO3模拟数据线、IO2模拟时钟线,则可定义IO3为08h、IO2为04h;

RAM0--为数据暂存用的临时存储单元;

RIO--为用于保存I/O口线当前状态的存储单元;

SLA--用于保存总线上节点地址并确定传输方向的存储单元;

NUMBYTE--待发送或接收的字节数存储单元;

MTD--发送数据缓冲区;

MRD--接收数据缓冲区。

以上符号中RAM0、RIO、SLA、NUMBYTE为页内地址,与当前的页指针DP内容设置有关;MTD、MRD为绝对地址,与DP内容无关。

③ 资源占用。使用了辅助寄存器AR0、AR1、AR2、AR6、ACC、ASPCR、IOSR等资源。

④ 应用接口。软件包将wrnbyte、rdnbyte作为唯一的出口接口,用户仅需正确设置对应储存单元的内容,调用相应子函数即可:

splk #SLAR/ SLAW,SLA;写入传输节点地址及传输方向

splk #N,NUMBYTE ;写入待传输字节数

;若输出,设置输出缓冲区内容

call wrnbyte/rdnbyte

3 应用实例

3.1 器件相关功能简介

X1203是带时钟/日历电路和两个闹钟(报警)的低功耗CMOS实时时钟芯片。提供了双埠时钟和报警寄存器,在读写操作期间也能精确工作。其工作电压从2.5~6 V均可,工作电流小于1uA。时钟使用低成本的32.768 kHz晶体输入,以秒、分、时、日、星期、月和年为单位记录时间,具有闰年自动矫正功能,并对少于31天的月份自动调整;可通过设置中断标志按指定时间激活中断引脚,满足大多数用户对定时器编程的需要。该芯片引脚结构如图1所示(SOIC封装)。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查