位置:51电子网 » 技术资料 » 接口电路

I2C总线的程序设计

发布时间:2008/11/24 0:00:00 访问次数:560

  采用i2c总线工作方式驱动max518芯片时,mssp模块在产生启动条件的基础上,连续发送3个字节信息,分别为地址字节、命令字节及所需转换的数椐字节,3个宇节发送完毕后,mssp模块产停止条件,max518才开始进行模/数转换.
因为max518的地址字节为58h,所以只有向其发送58h地址时,才能选通它。命令字节可以为00h或01h 当为00h时,选择out0通逍输出模拟量:当为01h时,选择out1通道输出模拟量。

  本程序中的命令字节为01h,即选择d/a1通道输出正弦波信号.待输出的数据量根掂需耍在00h~ffh间变化。mssp模块产生启动条件后,地址字节、命令字节、待转换的数据发送成功,且产生停止条件时,ssifg都会被置1。

  因此在编写程序时,可以通过查询该标志位来判断相应的步骤是否完成。若该步骤没有完成,则继续等待查询;若已完成,则清除ssifg标志位,继续进行下一步操作。本设计的程序流程如图1和图2所示。

  图1 i2c的初始化程序流程

  图2 主程序流程及i2c发送数据子程序流程

  实现代码如下。

  (1)首先定义数据组存放正弦表,通过在数组名前加const标识,把该数组存放到rom中.

  (2)初始化i2c模块,设置scl为输入口、sda为输出口,通过设hssp7add寄存器来确定i2c的工作频率,最后使能i2c。

  (3)该字函数通过5个do-while语句成i2c的启动、发送地址字节、发送命令字节、发送数据字节和产生停止条件的功能,最后通过对sspif清0,清楚发送标志。

  (4)主函数3完成各个子函数的调用功能,在while循环中调用i2c总线输出数据子函数。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



  采用i2c总线工作方式驱动max518芯片时,mssp模块在产生启动条件的基础上,连续发送3个字节信息,分别为地址字节、命令字节及所需转换的数椐字节,3个宇节发送完毕后,mssp模块产停止条件,max518才开始进行模/数转换.
因为max518的地址字节为58h,所以只有向其发送58h地址时,才能选通它。命令字节可以为00h或01h 当为00h时,选择out0通逍输出模拟量:当为01h时,选择out1通道输出模拟量。

  本程序中的命令字节为01h,即选择d/a1通道输出正弦波信号.待输出的数据量根掂需耍在00h~ffh间变化。mssp模块产生启动条件后,地址字节、命令字节、待转换的数据发送成功,且产生停止条件时,ssifg都会被置1。

  因此在编写程序时,可以通过查询该标志位来判断相应的步骤是否完成。若该步骤没有完成,则继续等待查询;若已完成,则清除ssifg标志位,继续进行下一步操作。本设计的程序流程如图1和图2所示。

  图1 i2c的初始化程序流程

  图2 主程序流程及i2c发送数据子程序流程

  实现代码如下。

  (1)首先定义数据组存放正弦表,通过在数组名前加const标识,把该数组存放到rom中.

  (2)初始化i2c模块,设置scl为输入口、sda为输出口,通过设hssp7add寄存器来确定i2c的工作频率,最后使能i2c。

  (3)该字函数通过5个do-while语句成i2c的启动、发送地址字节、发送命令字节、发送数据字节和产生停止条件的功能,最后通过对sspif清0,清楚发送标志。

  (4)主函数3完成各个子函数的调用功能,在while循环中调用i2c总线输出数据子函数。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!