




免费预览已结束,剩余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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届深圳市罗湖区高三开学质量检测语物理试题
- 民法总则试题及答案
- 专科生会计教学中的问题及对策思考-论文
- 承德法律知识培训报价课件
- 2025年涉电作业考试题及答案
- 医院锅炉项目
- 慢阻肺护理临床路径课件
- 2025年入学考试计算题及答案
- 护士病历操作考试题及答案
- 慕课不显示课件问题
- 医学教材 变态反应性疾病的诊疗进展标准版资料
- GB/T 44335-2024精细陶瓷涂层试验方法基于Stoney公式的陶瓷涂层内应力测定
- 水电站进水口启闭机排架结构及配筋计算书
- 跖骨骨折护理查房课件
- 癌症患者生活质量量表EORTC-QLQ-C30
- 《全媒体营销与运营》全套教学课件
- 学生心理问题的识别与干预+高中班主任工作培训
- 电解质溶液电导率
- 城市轨道交通车辆电气控制 课件2-4任务4车辆电气原理图识读方法
- DZ∕T 0097-2021 工程地质调查规范(1:50 000)(正式版)
- 2022-2023学年河南省郑州市高一下学期期末考试数学试题(解析版)
评论
0/150
提交评论