#include "config.h"
#include "iic.h"
#include "main.h"
void nop()
{
_nop_();
_nop_();
}
/////////24C02读写驱动程序////////////////////
void delay1(unsigned int m)
{ unsigned int n;
for(n=0;n<m;n++);
}
void init24c02() //24c02初始化子程序
{
scl=1;
nop();
sda=1;
nop();
}
void start() //启动I2C总线
{
sda=1;
nop();
scl=1;
nop();
sda=0;
nop();
scl=0;
nop();
}
void stop() //停止I2C总线
{
sda=0;
nop();
scl=1;
nop();
sda=1;
nop();
}
void writebyte(unsigned char j) //写一个字节
{
unsigned char i,temp;
temp=j;
for (i=0;i<8;i++)
{
temp=temp<<1;
scl=0;
nop();
sda=CY; //temp左移时,移出的值放入了CY中
nop();
scl=1; //待sda线上的数据稳定后,将scl拉高
nop();
}
scl=0;
nop();
sda=1;
nop();
}
unsigned char readbyte() //读一个字节
{
unsigned char i,j,k=0;
scl=0; nop(); sda=1;
for (i=0;i<8;i++)
{
nop(); scl=1; nop();
if(sda==1)
j=1;
else
j=0;
k=(k<<1)|j;
scl=0;
}
nop();
return(k);
}
void clock() //I2C总线时钟
{
unsigned char i=0;
scl=1;
nop();
while((sda==1)&&(i<255))
i++;
scl=0;
nop();
}
////////从24c02的地址address中读取一个字节数据/////
unsigned char read24c02(unsigned char address)
{
unsigned char i;
start();
writebyte(0xa0);
clock();
writebyte(address);
clock();
start();
writebyte(0xa1);
clock();
i=readbyte();
stop();
delay1(100);
return(i);
}
//////向24c02的address地址中写入一字节数据info/////
void write24c02(unsigned char address,unsigned char info)
{
start();
writebyte(0xa0);
clock();
writebyte(address);
clock();
writebyte(info);
clock();
stop();
delay1(5000); //这个延时一定要足够长,否则会出错。因为24c02在从sda上取得数据后,还需要一定时间的烧录过程。
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于c语言实现STC89C52的超声波测距仪项目源码.zip基于c语言实现STC89C52的超声波测距仪项目源码.zip基于c语言实现STC89C52的超声波测距仪项目源码.zip基于c语言实现STC89C52的超声波测距仪项目源码.zip基于c语言实现STC89C52的超声波测距仪项目源码.zip基于c语言实现STC89C52的超声波测距仪项目源码.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于c语言实现STC89C52的超声波测距仪项目源码.zip (44个子文件)
courses_2786_attachments_1605765047528_3.png 84KB
files
iic.h 369B
key.c 1KB
app.h 69B
dac.c 0B
hcsr04.c 2KB
app.c 2KB
key.h 106B
hcsr04.h 78B
led.h 0B
config.h 2KB
main.h 377B
smg.h 124B
iic.c 2KB
dac.h 0B
smg.c 1KB
led.c 0B
main.c 2KB
courses_2786_attachments_1605765047528_2.png 182KB
output
led.obj 331B
app.obj 8KB
超声波测距 45KB
hcsr04.obj 10KB
smg.obj 5KB
超声波测距.build_log.htm 1KB
dac.obj 331B
超声波测距.hex 12KB
iic.obj 10KB
超声波测距.lnp 248B
main.obj 8KB
key.obj 5KB
courses_2786_attachments_1605765047528_1.png 107KB
project
超声波测距.uvopt 12KB
Listings
dac.lst 812B
app.lst 4KB
main.lst 4KB
key.lst 3KB
超声波测距.m51 35KB
smg.lst 2KB
iic.lst 5KB
hcsr04.lst 4KB
led.lst 812B
超声波测距.uvgui.z'ZY 96KB
超声波测距.uvproj 17KB
共 44 条
- 1
资源评论
z同学的编程之路
- 粉丝: 1811
- 资源: 2129
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- HITK0203MP-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- HITK0202MP-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说
- 电子电气工程师使用的单位和符号
- HITK0201MP-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- MyBatis动态SQL:构建灵活查询的利器.md
- HITJ0303MP-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- tesseract安装包
- 1_32陀螺仪舵机.zip
- HITJ0302MP-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- XILINXFPGA源码PCIExpress标准概述
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功