I2C总线的程序设计
时间:07-20
来源:互联网
点击:
采用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总线输出数据子函数。
嵌入式新闻 嵌入式资料 嵌入式培训 嵌入式linux 嵌入式系统 嵌入式开发 嵌入式 相关文章:
- 煤矿井下综合自动化系统中的应用(04-06)
- 软件Overlay:程序编写与调试(01-20)
- USB数据通信接□模块的程序设计(10-17)
- 东江产业园:力争2017年产值达千亿(09-30)
- 硅谷数模的SlimPort扩大了Nexus7的显示屏选择(08-01)
- Lonworks控制网络技术在城市排水泵站自动化中的应用(06-06)