历史上的今天
今天是:2024年11月23日(星期六)
2019年11月23日 | AVR单片机PCF8591转换实例源程序操作库
2019-11-23 来源:51hei
目标系统: 基于AVR单片机
应用软件: ICCAVR
版 本: Version 1.0
实验内容:
初始化、读取AD、输出DA,使用PA口的LED指示获取的AD数据,使用万用表测量DA的输出电压。
----------------------------------------------------------------------
硬件连接:
将PA口的LED指示灯使用短路帽短接;
PCF8591:VCC、GND、SDA、SCL
| | | |
SMK1632:VCC、GND、SDA、SCL
----------------------------------------------------------------------
注意事项:
(1)若有加载库函数,请将光盘根目录下的“库函数”下的“ICC_H”文件夹拷到D盘
(2)请详细阅读“使用必读”及相关资料。
#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); } }
史海拾趣
|
经过本人的改造,友善之臂的qtopia自带的浏览器终于支持中文网页了,也就是,如果能把应用程序再汉化下,就可以应用到开发中。空说无凭,先给大家上几张图。(X86-qtopia在PC上运行) … 查看全部问答> |
|
安装好后(SYSTEM中有红色控件)把SPCOMM控件放入窗体,没写一行代码直接编译弹出SPCOMM单元文件,编译不过,好像内嵌了一个代码单元,怎么回事?… 查看全部问答> |
|
大学刚毕业就直奔人才市场,很不错的在这家公司面试,当时说好了刚毕业工资会低点2200,包吃住的,转正3000.总体觉得还可以吧,就很高兴的周一去公司签了,可是谈工资的时候却说吃住要扣400也就是说工资1800了,当时真的很郁闷吧。说了包吃住结果这 ...… 查看全部问答> |
|
商品化STM32系列ISP软件和ISP-STM32F编程器上市啦! 新颖、快速、方便、实用的商品化STM32系列ISP软件和ISP-STM32F编程器上市啦!产品特点:易学易用:连接方便、操作简单、提示全面- 高速编程:(4秒/32K,7秒/64K,14秒/128K;高速读取:1秒/32K,2秒/64K,4秒/128K- 操作简便:自动识别 ...… 查看全部问答> |
|
对于晶振来讲,我查询过很多厂家,其最次的精度都≤50PPM,也就是说2万个脉冲,才误差1个脉冲,对于32.768kHz的晶振来说,在STM32上也就是1秒钟差1个半脉冲了,也就是1天才能差4秒。 然而ST公司却在芯片中添加了晶体的校正程序,为晶体脉冲在 ...… 查看全部问答> |
|
最近向商家买几片ATMEL的存储器,我要的是128K,可是用起来总觉得好象不像,跟原来要的32K差不多大,我现在的片子上写的是:ATMEL316 24C256N SI27A 底面写的是 2E4476 请问专家,到底怎么来区分他们的大小?24系列的地址应该都是15位的吧 ...… 查看全部问答> |
|
在protues仿真中,用AD0804采集数据后,直接赋给SBUF,然后通过虚拟终端显示,但是不能显示出来,该怎么写?谢谢! SBUF=P2; while(!TI); TI=0;这个是参照郭天翔那个写的 但是虚拟终端显示 ...… 查看全部问答> |
|
本帖最后由 langmanhengxing 于 2014-7-17 17:27 编辑 我用UART-GPS-NEO-7M-C模块,通过杜邦线连接stm32f103r8t6核心板,通过串口usart GPS 定位的信息都能够通过板子传输到电脑上。(我用sscom 串口工具观看定位数据) 但是定位误差 ...… 查看全部问答> |




