立即注册 找回密码

微雪课堂

搜索
微雪课堂 首页 AVR AVR单片机笑傲江湖 查看内容

AVR PCF8591 程序

2015-6-2 18:18| 发布者: waveshare-admin| 查看: 2310| 评论: 0

摘要: 目 的: 建立PCF8591操作库 目标系统: 基于AVR单片机 应用软件: ICCAVR

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

#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);
}
}

 

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


250

顶一下

刚表态过的朋友 (250 人)

上一篇:PCF8563子程序下一篇:PCF8563子程序

最新评论

所有教程
AVR

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2019-11-21 18:39 , Processed in 0.018301 second(s), 18 queries .

Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc & Style Design

返回顶部