已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I2C接口的输入与输出驱动的PCF8574-pcf8574采用I2C接口,有8个准双向口,可以和外部电路连接,来实现输入输出功能,可以用来对口线进行扩展有几点需要注意1.某位作为输入的时候,必须首先置为高电平2.地址是0100 A2 A1 A0 R/W3.最多可以扩展8片4.低电流损耗,静态电流10uA,驱动电流比较大,而且有索存功能,能够驱动LED发光管5.带有外部中断输出,低电平有效我作了一个电路,其中P7-P4作为输入检测开关状态,P3-P0作为输出来驱动LED灯程序如下#include reg51.h#define SETBIT(VAR,Place) (VAR|=(1Place)#define CLRBIT(VAR,Place) (VAR&=(1Place)255)sbit IC_SCL=P36;sbit IC_SDA=P37;unsigned char IC_Re_Time;unsigned char IC_Err_Flag;void Timer0_Init(void)TMOD=0x00;/timer0工作定时器方式0,13位技术TH0=0x1e;/5msTL0=0x0c;/5msTR0=1;/启动时钟0ET0=1;/允许时钟0进行中断EA=1;/开放所有中断void Delay(void)unsigned char i;for(i=0;i=10;i+);unsigned char VALBIT(unsigned int Val,unsigned char Bit)unsigned int Buf;Buf=0x0001;if(Bit) Buf=Bit;Val&=Buf;if(Val) return(0xff);else return(0x00);/* 下面是PCF8574的操作程序1.通信方式:I2C2.通信端口:IC_SCL(P3.6),IC_SDA(P3.7)3.通信地址:0x0101000x*/void IC_Start(void)/启动IC通信IC_SDA=1;Delay();IC_SCL=1;Delay();IC_SDA=0;Delay();IC_SCL=0;Delay();void IC_Stop(void)/停止IC通信IC_SDA=0;Delay();IC_SCL=1;Delay();IC_SDA=1;Delay();void IC_Receive_Ack(void)/接受ACKIC_SDA=1;IC_SCL=1;Delay();IC_Re_Time=0;while(IC_Re_Time=30)if(IC_SDA=0)IC_Err_Flag=0;break;elseIC_Err_Flag=1;IC_SCL=0;Delay();/void IC_Send_ACK(void)/发送ACK/if read many datas at a time,this can be used/IC_SDA=0;/Delay();/IC_SCL=1;/Delay();/IC_SCL=0;/Delay();/IC_SDA=1;/void IC_Send_NAck(void)/发送NACKIC_SDA=1;Delay();IC_SCL=1;Delay();IC_SCL=0;Delay();void IC_Write_Byte(unsigned char Data)/写数据到8574unsigned char i;for(i=0;i=7;i+)if(VALBIT(Data,(7-i)/data out msbIC_SDA=1;elseIC_SDA=0;IC_SCL=1;Delay();IC_SCL=0;Delay();unsigned char IC_Read_Byte(void)/从8574读取一个数据unsigned char i;unsigned char Data;for(i=0;i=7;i+)IC_SCL=1;Delay();IC_SDA=1;Delay();if(IC_SDA)SETBIT(Data,(7-i);/data in msb tooelseCLRBIT(Data,(7-i);IC_SCL=0;Delay();return(Data);void IC_Write_Data(unsigned char Data)unsigned char write_time;unsigned char write_data;write_data=Data;for(write_time=0;write_time=2;write_time+)IC_Start();IC_Write_Byte(0x40);IC_Receive_Ack();IC_Write_Byte(write_data);IC_Receive_Ack();IC_Stop();if(IC_Err_Flag=0)break;unsigned char IC_Read_Data(void)unsigned char Return_Data;unsigned char read_time;for(read_time=0;read_time=2;read_time+)IC_Start();IC_Write_Byte(0x41);IC_Receive_Ack();Return_Data=IC_Read_Byte();IC_Send_NAck();IC_Stop();if(IC_Err_Flag=0)return(Return_Data);break;void PCF8574_Init(void)IC_Write_Data(0xf0);/输入状态的必须开始的时候置为1,输出为0void main(void)unsigned char temp3;Timer0_Init();PCF8574_Init();while(1)temp3=IC_Read_Data();IC_Write_Data(0x0f);Delay();;中间可以添加你需要的模块,比如显示或者其他的操作等/* 中断服务子程序 */extern void external0_rt(void)interrupt 0/INT0extern void eit0_rt(void)interrupt 1/T0,标准,定时中断TH0=0x1e;TL0=0x0c;IC_Re_Time+;void external1_rt(void)interrupt 2 using 1/INT1void eit1_rt(void)interrupt 3 using 1/T1,标准void sci_rt(void)interrupt 4 using 1/UARTvoid eit2_rt(void)interrupt 5 using 1/T2 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CSAE 423-2025智能网联摩托车和智能网联轻便摩托车 数据平台技术要求及试验方法
- T/UNP 183-2024管道沟槽开挖支护用新型支护系统应用技术规程
- T/GITIF 003-2022基于信息物理系统(CPS)的产线设备故障 预测技术规范
- T/CI 641-2024水生态修复成效评估技术规范
- T/CADERM 6008-2023灾害狭小空间现场伤情评估与急救要求
- T/CSAE 294-2023车载时间敏感网络通讯交换芯片功能和性能要求
- AI在新闻学中的应用
- 2025~2026学年甘肃定西市渭源县度北师大版上册学情练习一年级数学试卷【附答案】
- 2025-2026学年辽宁省辽阳市初中政治八年级期末下册自我评估历年考试题附答案
- 2025-2026学年浙江省富德市初中数学七年级期末上册深度自测核心强化题(附答案)
- 心肺耐力课件
- 医院纪委培训课件
- DB31/T 1128-2019再生骨料混凝土技术要求
- 患者用药指导全国知识技能竞赛考试题库(带答案)
- 公司租赁个人车辆协议书范本
- 2025年中煤电力有限公司招聘笔试参考题库含答案解析
- 中等职业学校英语教学大纲附件五:词汇表
- 【苏泊尔电器营运资金管理问题及完善分析13000字 (论文)】
- 2022年浙江省宁波市慈溪实验中学高一数学文联考试卷含解析
- 天耀中华合唱简谱大剧院版
- 病理学课件:肿瘤-实验课
评论
0/150
提交评论