题意:使用竞赛板上RB2电位器输出测试电压信号,信号输出范围为0V-5V,使用数码管显示电压值。

用开发板上的rb2,控制输出电压,用pcf8591,进行A/D转换并且显示在数码管上
IIC.h
#ifndef __IIC_h
#define __IIC_h
void IIC_Delay(unsigned char i);//延时
void IIC_Start(void);//开始
void IIC_Stop(void);//启动
void IIC_SendAck(bit ackbit);//发送应答
bit IIC_WaitAck(void);//等待等待应答
void IIC_SendByte(unsigned char byt);//发送数据
unsigned char IIC_RecByte(void);//从I2C总线上接收数据
#endif
#include <STC15F2K60S2.H>
#include "intrins.h"
#define DELAY_TIME 5
#define SlaveAddrW 0xA0
#define SlaveAddrR 0xA1
//总线引脚定义
sbit SDA = P2^1; /* 数据线 */
sbit SCL = P2^0; /* 时钟线 */
void IIC_Delay(unsigned char i)
{
do{
_nop_();}
while(i--);
}
//总线启动条件
void IIC_Start(void)
{
SDA = 1;
SCL = 1;
IIC_Delay(DELAY_TIME);
SDA = 0;
IIC_Delay(DELAY_TIME);
SCL = 0;
}
//总线停止条件
void IIC_Stop(void)
{
SDA

本文介绍了一个使用STM32微控制器通过I2C通信协议与pcf8591芯片交互的项目。代码实现从pcf8591获取电压数据,经过转换后在数码管上显示。主要涉及I2C总线操作、A/D转换以及数码管显示技术。
最低0.47元/天 解锁文章
2541





