资源简介
51单片机光敏电阻寻光程序,测试可用,可用数码管显示电阻值大小
代码片段和文件信息
/*************************此部分为I2C总线的驱动程序*************************************/
#include
#include
#include
#define NOP() _nop_() /* 定义空指令 */
#define _Nop() _nop_() /*定义空指令*/
sbit SCL=P2^1; //I2C 时钟
sbit SDA=P2^0; //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();
功能: 用来接收从器件传来的数据并判断总线错误(不发应答信号),
发完后请用应答函数应答从机。
********************************************************************/
unsigned char RcvByte()
{
unsigned char retc;
unsigned char BitCnt;
retc=0;
SDA=1; /*置数据线为输入方式*/
for(BitCnt=0;BitCnt<8;BitCnt++)
{
_Nop();
SCL=0; /*置时钟线为低,准备接收数据
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14702 2012-12-05 12:15 光敏(最终)\AD转换
文件 3052 2012-12-05 12:15 光敏(最终)\AD转换.hex
文件 71 2012-12-05 12:15 光敏(最终)\AD转换.lnp
文件 16307 2012-12-05 12:15 光敏(最终)\AD转换.M51
文件 1106 2012-12-05 13:21 光敏(最终)\AD转换.Opt
文件 205 2012-12-06 12:54 光敏(最终)\AD转换.plg
文件 2198 2012-10-31 23:53 光敏(最终)\AD转换.Uv2
文件 1369 2012-12-05 12:55 光敏(最终)\AD转换_Opt.Bak
文件 2092 2009-06-05 00:01 光敏(最终)\AD转换_Uv2.Bak
文件 3878 2012-11-03 07:36 光敏(最终)\DA-AD.C
文件 7240 2012-11-03 07:36 光敏(最终)\DA-AD.LST
文件 8227 2012-11-03 07:36 光敏(最终)\DA-AD.OBJ
文件 35 2012-11-03 07:36 光敏(最终)\DA-AD.__i
文件 4471 2011-03-28 15:40 光敏(最终)\I2C.c
文件 548 2010-06-15 16:10 光敏(最终)\I2C.H
文件 7920 2012-11-01 20:37 光敏(最终)\I2C.LST
文件 7982 2012-11-01 20:37 光敏(最终)\I2C.OBJ
文件 33 2012-11-01 20:37 光敏(最终)\I2C.__i
文件 907 2008-09-14 21:22 光敏(最终)\main.LST
文件 563 2008-09-14 21:22 光敏(最终)\main.OBJ
文件 5115 2002-04-16 14:32 光敏(最终)\STARTUP.A51
文件 11665 2011-09-29 11:14 光敏(最终)\STARTUP.LST
文件 749 2011-09-29 11:14 光敏(最终)\STARTUP.OBJ
文件 15985 2012-12-07 16:21 寻光\AD转换
文件 2115 2012-12-07 16:21 寻光\AD转换.hex
文件 71 2012-12-07 16:21 寻光\AD转换.lnp
文件 20130 2012-12-07 16:21 寻光\AD转换.M51
文件 1238 2012-12-07 17:18 寻光\AD转换.Opt
文件 199 2012-12-07 17:18 寻光\AD转换.plg
文件 2198 2012-10-31 23:53 寻光\AD转换.Uv2
............此处省略21个文件信息
相关资源
- 基于51单片机的遥控小车设计小车和遥
- 基于51单片机的DDS函数信号发生器的设
- 使用C51实现128位AES加密算法
- 51单片机定时器初值计算器
- 51汇编测量脉冲宽度及周期
- IAR EW8051 7.51A注册机本人试过,绝对是
- 单片机光敏电阻源码
- 基于51单片机的自感应风扇系统prote
- 电子万年历毕业设计基于AT89C51单片机
- 51单片机封装库
- C51单片机密码锁4×4矩阵键盘+LCD1602液
- 基于51单片机的万年历程序
- 基于51单片机的lcd篮球计分器程序
- zengerzheng_1516997.zip
- Hi3516A_V100R001C01SPC040 sdk 百度云 海思开
- 51单片机 等精度测频率 LCD显示 C程序
- 基于51单片机的锯齿波&正弦波发生器
- 利用51单片机实现了红外发射以及接受
- 51单片机LED16X16点阵滚动显示
- Nokia5110的程序在msp430G2553上可以
- 基于AT89C51的八路抢答器
- 基于51单片机的空调遥控器C源程序
- IPC标准封装命名规范7351系列
- 51单片机控制RDA5807收音机模块
- C8051F020单片机驱动CCD 1304
- 基于C51单片机的声光控灯
- 百度云盘地址51b0002.zip
- 51单片机电子门铃设计
- 基于C8051F020的ds18b20的驱动程序,包可
- AD9851 DDS数字频率合成器
评论
共有 条评论