/*
程序说明: IIC总线驱动程序
软件环境: Keil uVision 4.10
硬件环境: CT107单片机综合实训平台 8051,12MHz
日 期: 2011-8-9
*/
#include "iic.h"
#define somenop Delay5us();
#define SlaveAddrW 0xA0
#define SlaveAddrR 0xA1
//总线引脚定义
sbit SDA = P2^1; /* 数据线 */
sbit SCL = P2^0; /* 时钟线 */
//总线启动条件
void IIC_Start(void)
{
SDA = 1;
SCL = 1;
somenop;
SDA = 0;
somenop;
SCL = 0;
}
//总线停止条件
void IIC_Stop(void)
{
SDA = 0;
SCL = 1;
somenop;
SDA = 1;
}
//应答位控制
void IIC_Ack(bit ackbit)
{
if(ackbit)
{
SDA = 0;
}
else
{
SDA = 1;
}
somenop;
SCL = 1;
somenop;
SCL = 0;
SDA = 1;
somenop;
}
//等待应答
bit IIC_WaitAck(void)
{
SDA = 1;
somenop;
SCL = 1;
somenop;
if(SDA)
{
SCL = 0;
IIC_Stop();
return 0;
}
else
{
SCL = 0;
return 1;
}
}
//通过I2C总线发送数据
void IIC_SendByte(unsigned char byt)
{
unsigned char i;
for(i=0;i<8;i++)
{
if(byt&0x80)
{
SDA = 1;
}
else
{
SDA = 0;
}
somenop;
SCL = 1;
byt <<= 1;
somenop;
SCL = 0;
}
}
//从I2C总线上接收数据
unsigned char IIC_RecByte(void)
{
unsigned char da;
unsigned char i;
for(i=0;i<8;i++)
{
SCL = 1;
somenop;
da <<= 1;
if(SDA)
da |= 0x01;
SCL = 0;
somenop;
}
return da;
}
uchar PCF8591_adc(uchar addr) //模拟量转换为数字量
{
uchar dat;
IIC_Start();
IIC_SendByte(0x90);
IIC_WaitAck();
IIC_SendByte(addr);
IIC_WaitAck();
IIC_Stop();
IIC_Start();
IIC_SendByte(0x91);
IIC_WaitAck();
dat=IIC_RecByte();
IIC_Ack(0);
IIC_Stop();
return dat;
}
//void PCF8591_dac(uchar dat) //转数字量换为模拟量
//{
//
//
// IIC_Start();
// IIC_SendByte(0x90);
// IIC_WaitAck();
// IIC_SendByte(0x40);
// IIC_WaitAck();
// IIC_Start();
// IIC_SendByte(dat);
// IIC_WaitAck();
// IIC_Stop();
//
//
//
//}
没有合适的资源?快使用搜索试试~ 我知道了~
蓝桥杯模块练习-PCF8591--模数转换器
共52个文件
c:9个
h:9个
lst:8个
需积分: 46 17 下载量 168 浏览量
2019-03-11
17:25:02
上传
评论 2
收藏 71KB ZIP 举报
温馨提示
蓝桥杯单片机设计与开发————蓝桥杯模块练习————PCF8951_模数转换器 1.实现AD转换,在数码管上显示。 2.实现DA转换,通过引脚体现
资源推荐
资源详情
资源评论
收起资源包目录
PCF8591-模数转换器.zip (52个子文件)
PCF8591-模数转换器
output
iic.__i 124B
iic.obj 10KB
key.obj 6KB
main.__i 124B
onewire.__i 136B
ex.plg 185B
key.__i 123B
nixie.__i 129B
common.obj 5KB
onewire.obj 8KB
interrupt.__i 141B
common.__i 132B
nixie.obj 7KB
ex 46KB
interrupt.obj 6KB
main.obj 7KB
STARTUP.obj 789B
ex.lnp 249B
ex.hex 4KB
project
ex_uvproj.bak 580B
common.lst 1KB
ex.plg 2KB
key.lst 2KB
iic.lst 6KB
ex_uvopt.bak 63KB
STARTUP.A51 6KB
interrupt.lst 2KB
STARTUP.LST 14KB
ex.c 0B
onewire.lst 4KB
main.lst 2KB
ex.m51 28KB
ex.uvproj 15KB
nixie.lst 2KB
ex.uvopt 63KB
library
ds1302.c 1KB
onewire.c 1KB
onewire.h 167B
ds1302.h 215B
iic.c 2KB
iic.h 321B
system
STC15F2K60S2.H 13KB
interrupt.c 388B
common.h 360B
nixie.c 749B
key.h 107B
key.c 635B
interrupt.h 164B
nixie.h 170B
common.c 197B
main
main.h 244B
main.c 670B
共 52 条
- 1
资源评论
Mr__boring
- 粉丝: 2
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功