资源简介
基于IIC总线PCF8591AD转换的仿真测试有仿真图有代码,测试已经通过,自己下载后可修改代码

代码片段和文件信息
/*************************此部分为I2C总线的驱动程序*************************************/
#include
#include
#define NOP() _nop_() /* 定义空指令 */
#define _Nop() _nop_() /*定义空指令*/
#define PCF8591 0x90 //PCF8591 地址
//else IO
sbit LS138A=P2^2;
sbit LS138B=P2^3;
sbit LS138C=P2^4;
//此表为 LED 的字模 共阴数码管 0-9 -
unsigned char code Disp_Tab[] = {0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
unsigned char AD_CHANNEL;
unsigned int LedOut[8];
unsigned int D[32];
sbit SCL=P2^5; //I2C 时钟
sbit SDA=P2^6; //I2C 数据
bit ack; /*应答标志位*/
/*******************************************************************
起动总线函数
函数原型: void Start_I2c();
功能: 启动I2C总线即发送I2C起始条件.
********************************************************************/
void Start_I2c()
{
SDA=1; /*发送起始条件的数据信号*/
_Nop();
SCL=1;
_Nop(); /*起始条件建立时间大于4.7us延时*/
_Nop();
_Nop();
_Nop();
_Nop();
SDA=0; /*发送起始信号*/
_Nop(); /* 起始条件锁定时间大于4μs*/
_Nop();
_Nop();
_Nop();
_Nop();
SCL=0; /*钳住I2C总线,准备发送或接收数据 */
_Nop();
_Nop();
}
/*******************************************************************
结束总线函数
函数原型: void Stop_I2c();
功能: 结束I2C总线即发送I2C结束条件.
********************************************************************/
void Stop_I2c()
{
SDA=0; /*发送结束条件的数据信号*/
_Nop(); /*发送结束条件的时钟信号*/
SCL=1; /*结束条件建立时间大于4μs*/
_Nop();
_Nop();
_Nop();
_Nop();
_Nop();
SDA=1; /*发送I2C总线结束信号*/
_Nop();
_Nop();
_Nop();
_Nop();
}
/*******************************************************************
字节数据发送函数
函数原型: void SendByte(UCHAR c);
功能: 将数据c发送出去可以是地址也可以是数据发完后等待应答并对
此状态位进行操作.(不应答或非应答都使ack=0)
发送数据正常,ack=1; ack=0表示被控器无应答或损坏。
********************************************************************/
void SendByte(unsigned char c)
{
unsigned char BitCnt;
for(BitCnt=0;BitCnt<8;BitCnt++) /*要传送的数据长度为8位*/
{
if((c< else SDA=0;
_Nop();
SCL=1; /*置时钟线为高,通知被控器开始接收数据位*/
_Nop();
_Nop(); /*保证时钟高电平周期大于4μs*/
_Nop();
_Nop();
_Nop();
SCL=0;
}
_Nop();
_Nop();
SDA=1; /*8位发送完后释放数据线,准备接收应答位*/
_Nop();
_Nop();
SCL=1;
_Nop();
_Nop();
_Nop();
if(SDA==1)ack=0;
else ack=1; /*判断是否接收到应答信号*/
SCL=0;
_Nop();
_Nop();
}
/*******************************************************************
字节数据接收函数
函数原型: UCHAR RcvByte();
功能: 用来接收从器件传来的数据并判断总线错误(不发应答信号),
发完后请用应答函数应答从机。
*******************************
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14300 2012-03-15 17:39 基于IIC总线PCF8591AD转换的使用\代码\i2c.LST
文件 13442 2012-03-15 17:39 基于IIC总线PCF8591AD转换的使用\代码\i2c.OBJ
文件 11848 2012-03-15 17:39 基于IIC总线PCF8591AD转换的使用\代码\I2C
文件 1015 2012-03-15 17:40 基于IIC总线PCF8591AD转换的使用\代码\I2C.Opt
文件 13379 2012-03-15 17:40 基于IIC总线PCF8591AD转换的使用\代码\I2C.plg
文件 8135 2012-03-15 17:39 基于IIC总线PCF8591AD转换的使用\代码\i2c.c
文件 38 2012-03-15 17:39 基于IIC总线PCF8591AD转换的使用\代码\I2C.lnp
文件 13539 2012-03-15 17:39 基于IIC总线PCF8591AD转换的使用\代码\I2C.M51
文件 2485 2012-03-15 17:39 基于IIC总线PCF8591AD转换的使用\代码\I2C.hex
....... 0 2012-03-15 00:03 基于IIC总线PCF8591AD转换的使用\代码\I2C_Uv2.Bak
文件 1984 2012-03-15 00:15 基于IIC总线PCF8591AD转换的使用\代码\I2C.Uv2
....... 1011 2012-03-15 00:15 基于IIC总线PCF8591AD转换的使用\代码\I2C_Opt.Bak
文件 278 2012-03-14 20:27 基于IIC总线PCF8591AD转换的使用\8591控制字节定义.txt
文件 1026 2012-03-15 17:40 基于IIC总线PCF8591AD转换的使用\仿真\I2C仿真.PWI
文件 112062 2012-03-15 00:15 基于IIC总线PCF8591AD转换的使用\仿真\Last Loaded I2C仿真.DBK
文件 112060 2012-03-15 17:40 基于IIC总线PCF8591AD转换的使用\仿真\I2C仿真.DSN
目录 0 2012-03-14 16:40 基于IIC总线PCF8591AD转换的使用\代码
目录 0 2012-03-14 22:44 基于IIC总线PCF8591AD转换的使用\仿真
目录 0 2012-03-14 16:39 基于IIC总线PCF8591AD转换的使用
----------- --------- ---------- ----- ----
306602 19
相关资源
- 51单片机PWM程序,占空比、周期可调整
- proteus仿真 AT89C51输出各种波形
- 00
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- proteus_24C08—有注释(proteus里面使用的
- DS18B20分布式多点测温的Proteus仿真
- 基于proteus的单片机仿真--交通灯控制
- 带时间温度显示的室内灯光控制系统
- 51多机通信(内附Proteus及.hex文件)
- IIC proteus仿真实验
- 8086交通灯 Proteus原理图及程序
- 单片机仿真软件proteus6.7免安装绿色版
- 关于proteus仿真arm7出现错误的问题
- 基于PROTEUS的ARM7显示系统设计与仿真实
- STM32+1602液晶proteus仿真.zip
- AT89C51+ADC0808 PROTEUS仿真
- 单片机驱动4相步进电机proteus仿真
- proteus元件库对照表 (整理清晰)
- 微机原理 十字路口交通灯控制 prot
- 中央空调室内智能温控器设计论文、
- 基于51单片机的交通灯设计
- 基于AT89C51的十字路口交通灯设计pro
- Proteus单片机仿真大全几百个part4
- Proteus升压电路仿真
- keil调试仿真技巧-从入门到精通
- 十字路口交通灯.pdsprj
- 12864液晶Proteus模型
- 数电设计 交通灯控制逻辑电路设计
- Proteus仿真的单片机控制步进电机及液
评论
共有 条评论