logo

AVR PCF8591 程序

以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!

/*********************************************************************
 微 雪 电 子   WaveShare   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*/

#include <iom16v.h>

#define WR_DADR 0x90 //write device-address
#define RD_DADR 0x91 //read device-address
#include "D:\ICC_H\PCF8591.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);
}
}

 

 相关AVR资料说明

可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162 ATmega169 ATmega169P ATmega8515 ATmega8535

 相关AVR型号资料

ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny26 ATtiny2313
ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32
ATmega64 ATmega128 ATmega162 ATmega169 ATmega8515 ATmega8535

AVR PCF8591 程序

——