AVR PCF8591 程序
/********************************************************************* 微 雪 电 子 WaveShare <a class="Blue_2_12px_" href="http://www.waveshare.net/" style="color: rgb(7, 66, 184);">http://www.waveShare.net 目 的: 建立PCF8591操作库 目标系统: 基于AVR单片机 应用软件: ICCAVR 版 本: Version 1.0 圆版时间: 2005-06-25 开发人员: SEE 说 明: 若用于商业用途,请保留此段文字或注明代码来源 深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权
/*01010101010101010101010101010101010101010101010101010101010101010101 版本更新记录: 实验内容: 初始化、读取AD、输出DA,使用PA口的LED指示获取的AD数据,使用万用表测量DA的输出电压。 硬件连接: 将PA口的LED指示灯使用短路帽短接; PCF8591:VCC、GND、SDA、SCL | | | | SMK1632:VCC、GND、SDA、SCL 注意事项: (1)若有加载库函数,请将光盘根目录下的“库函数”下的“ICC_H”文件夹拷到D盘 (2)请详细阅读“使用必读”及相关资料。 10101010101010101010101010101010101010101010101010101010101010101010*/
/*-------------------------------------------------------------------- 函数名称:PCF8591 函数功能: 注意事项: 提示说明: 输 入: 返 回: */ void errDisp() { DISP_PORT = 0X55; delay50ms(4); DISP_PORT = 0X00; delay50ms(4); DISP_PORT = 0XAA; delay50ms(4); DISP_PORT = 0X00; delay50ms(4); } /*-------------------------------------------------------------------- 函数全称:PCF8591 函数功能: 注意事项:最好不要将 TWBR 的值改太小,否则可能出错 提示说明:假设系统时钟为16M,则TWI波特率=CLK/(16+2*(TWBR)*4)=400K 输 入: 返 回: */ void twi_init() //TWI(I2C)初始化 { TWBR = 0X12; //设置TWI波特率 TWSR &= 0XFC; //设置TWI预分频 为 1 } /*-------------------------------------------------------------------- 函数名称:PCF8591 函数功能: 注意事项: 提示说明: 输 入: 返 回: */ void main() { uint8 DAval=0,t; uint8 *pGetDat=&t; //随便给"pGetDat"一个地址以防内存错误 DISP_DDR = 0XFF; twi_init(); while(1) { PCF8591_getAD(MODE0,CHNL0,pGetDat); DISP_PORT = *pGetDat; PCF8591_setDA(DAval++); delay50ms(4); } } |
---|