资源简介
基于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
相关资源
- 基于LCD1602读取DS18B20序列号proteus仿真
- 基于LCD1602与LED同时的proteus仿真温度测
- 《51单片机原理及应用:基于KeilC与
- Proteus8位数码管的动态扫描显示
- 课程设计 51单片机温度PID调节打包k
- 出租车计价器 proteus
- proteus8.6:两片74LS161和门电路设计一个
- Proteus模拟基于51单片机的断电保护实
- proteus仿真--播放音乐
- FM收音机proteus
- 4×4矩阵键盘原理及其在单片机中的简
- 很好的步进电机仿真
- 8086交通灯_基于Proteus仿真.rar
- Proteus中单片机89C51在LCD12864显示
- 两片单片机之间的串行通信(proteus仿
- proteus仿真车速
- Proteus仿真AT89C52——计数
- 汽车尾灯控制电路.zip
- proteus arduino仿真库
- 基于8086的proteus电子时钟系统
- 汇编流水灯 8253+8255+8259.rar
- 51流水灯仿真加代码
- 数字时钟课程设计报告
- 51单片机实现密码锁(带proteus仿真)
- 基于Proteus的温度传感器串口通信仿真
- proteus实验\\数字时钟电路设计proteus仿
- 微机原理PROTUES仿真实现秒表
- 51单片机测量方波频率proteus仿真
- Proteus_H型电机驱动
- 数字逻辑课程设计四路抢答器Proteus设
评论
共有 条评论