教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

IO口中断模拟I2C通信方式(2)

来源:网络收集 时间:2026-05-20
导读: { if(F_long==0) { INTbyteflag=0; F_long=32; INT_i2c=1; F_INT_read=1; F_read_ok=1; clk_d=0; INTnum=0; clk_watch=0; } if(clk_over_timer>=2) { INT_i2c=0; INTnum=0; INTbyteflag=0; F_long=32; clk_d=0; clk

{

if(F_long==0)

{

INTbyteflag=0; F_long=32; INT_i2c=1; F_INT_read=1; F_read_ok=1; clk_d=0; INTnum=0; clk_watch=0;

}

if(clk_over_timer>=2) { INT_i2c=0; INTnum=0; INTbyteflag=0; F_long=32; clk_d=0; clk_watch=0; clk_over_timer=0;

}

}

4、

发送一个字节函数

功能:通过I2C发送一个字数据

void send_byte(uchar b ) {

uchar i;

for(i=0;i<8;i++) { b=b<<1; SDA=CY; _nop_();_nop_();_nop_();_nop_();_nop_(); SCL=0; _nop_();_nop_();_nop_();_nop_();_nop_(); SCL=1; delays(1);

} //延时5us //SCL拉低,此时从

机响应中断进入接收 //延时5us //发送完毕后拉高

SCL和SDA

SCL=1; SDA=1; }

5、 发送指令函数

功能:发送一条指令

bit sendbytes(uchar *s,uchar a) {

uchar i;

EX0=0; //接收时关闭外部中断0,即停止I2C接收 for(i=0;i

IE0=0; //中断位请求标志位置0

EX0=1; //接收完毕,开外部中断,即可以接收I2C数据 INT_i2c=0; return TRUE;

}

五、 源代码共享地址

1、 相应的代码都是基于STC15系列单片机

2、 代码所实现的功能是:主单片机发送指令,12864

显示相应内容 3、 源代码所需硬件:

12864液晶一个,STC15w204s一片

有兴趣的童鞋可以自己写个主单片机发送命令的程序测试一下,亲测效果很好,我们公司现在通信方式都用这个,可以节省串口。 共享资料含通信协议: http://pan.http://www.wodefanwen.com//s/1boRjjo7

IO口中断模拟I2C通信方式(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/435229.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)