资源简介
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个文件信息
相关资源
- 最新的北京地铁shp文件75146
- 程序员专用字体YaHei.Consolas.1.11b42517
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- 清翔电子MCS51开发板资料_新版 01_开发
- MCS_51单片机与8255A的接口设计
- Rtx51_tiny_RTOS中文版.pdf
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- proteus仿真 AT89C51输出各种波形
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51模拟SPI读写SD卡(包括Fat和Fat32文件
- NRF24L01实现51与STM32双向通讯
- 基于c8051f020的AD转换程序及LCD显示程序
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 课程设计蔬菜大棚自动控制系统,包
- 基于AT89C51的数据采集系统设计新方法
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 基于89c51的数字钟
- 8251 全双工异步通信
- 8051F040SMBUS多机通信
- 基于单片机交通灯设计
评论
共有 条评论