/*********************************************************************
目 的: 建立PCF8591操作库
目标系统: 基于AVR单片机
应用软件: ICCAVR
*********************************************************************/
/*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*/
#include
#define WR_DADR 0x90 //write device-address
#define RD_DADR 0x91 //read device-address
#include "D:ICC_HPCF8591.H"
#define DISP_DDR DDRA
#define DISP_PORT PORTA
/*--------------------------------------------------------------------
函数名称: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);
}
}
设计资源 培训 开发板 精华推荐
- 用于便携式消费电子产品的 3W、1 通道、D 类音频功率放大器
- 具有基于STM8和Triac(美国版)的速度控制的通用电机驱动器
- 使用 ON Semiconductor 的 NCP5010 的参考设计
- 基于STIB1560DM2T-L SLLIMM第二系列MOSFET IPM的1500 W电机控制电源板
- 适用于汽车应用的 LT3973EDD 5V 降压转换器的典型应用
- LTC4367CMS8-1 过压电源保护控制器的典型应用
- ADR5040A 2.048 Vout 负精密基准配置的典型应用
- L7809A 高输入电压电路的典型应用(配置 1)
- LTM8003HY 0.97Vout 3.4 至 40Vin 具有扩频功能的降压转换器的典型应用电路
- 多合一桌面模型车蓝牙接收器