AVR PCF8591 程序

发布者:光速思考最新更新时间:2020-06-28 来源: eefocus关键字:AVR  PCF8591  程序  ICCAVR 手机看文章 扫描二维码
随时随地手机看文章

/*********************************************************************       

目    的:   建立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);

}

}

关键字:AVR  PCF8591  程序  ICCAVR 引用地址:AVR PCF8591 程序

上一篇:基于AVR单片机的DS1302子程序
下一篇:基于AVR单片机的PCF8563子程序

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved