原创 基于PCF8574的USB2ISP-DIP28的并行IO扩展实验

2010-8-30 22:59 4353 10 9 分类: 通信

范例五 基于PCF8574USB2ISP-DIP28的并行IO扩展实验<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


l        硬件平台:USB2ISP-DIP28PCF8574


PCF8574是一款I<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2C串行总线转并行IO输出的扩展芯片,带漏极开电路的中断输出,可以兼容大部分的微控制器,完成数据的输入输出,IO带锁存输出,并具有较大的电流驱动能力,可以直接驱动LED。本范例将利用USB2ISP-DIP28适配器的USBI2C接口功能,完成从I2C总线接口到并行IO的扩展。


l        硬件连线


如下图所示给出了PCF-8574USB2ISP-DIP28的电路原理图。


968532c5-5774-4cdc-91b1-e78b7a7961cd.jpg


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


5.18 PCF-8574I2C-并口的扩展电路原理图


本例令I2C器件片选引脚A0,A1,A2接地,因此PCF8574的设备地址为0x40,下面是实验搭建的电路。


b294a788-db9c-4bfa-8e14-56c083490db6.jpg



5.19 PCF-8574I2C-并口的扩展实验电路


5.19中,P0P1P4,P5分别接了25V直接驱动的发光二极管L1,L2的负正极,用以观察并口的输出电平。INT中断引脚接微控制器的INT端,当外部数据通过P0-P7口输入的时候,PCF8574产生一个边缘信号触发微控制器的中断,在中断服务程序中完成I2C数据的读取。本范例未采用微控制器,INT中断未接,采用手动I2C读取数据。


l        范例步骤


按图5.185.19所示,搭建好实物电路,启动USB-ezIO,这里选用I2C接口菜单下的I2C测试模块来完成PCF8574I2C-并口功能演示,如下所示:


f5707dc9-583b-4523-a794-be7edbd8d9ac.jpg



5.20 I2C协议测试模块


数据输出实验


首先,完成PCF8574IO的数据输出实验,即通过PCF8574I2C的串行数据通过P0-P7并行输出。下面是PCF8574的写模式下的时序图。


74a0799a-ce66-4dc4-858c-97ebb03261e7.jpg



5.21 PCF8574I2C写模式下的时序


从时序图中可以得到第一个指令字节为0x40(写模式),第二、三字节为数据,测试表明PCF8474可以支持连续多字节的输出。这里需要注意的是时序中第一个数据字节的P51,而时序图表明P5输出一直为低电平,而事实的测试表明,P5在输出的时候和其他输出位是一样的,因此这个时序图有些问题。我们来看几个例子。例如使得L1,L2均点亮, L2L1灭,L1L2灭,设置分别如下:


b4a63254-39a8-4c16-9dd7-719cfb1619a9.jpg



a



70769d59-2173-44e9-b4d0-908c3247aac1.jpg



(b)


37cfc55d-f73f-433a-9d6a-ff1539919267.jpg



(c)


5.22 (a)(b)(c)I2C协议测试模块的IO输出设置


得到的实验结果分别如下所示:


        bfcb2cbf-96ed-4723-8ed5-1e37023cdfb4.jpg


a1               (b1)                        (c1)


5.23 (a1)(b1)(c1)PCF8574IO输出结果


数据读取实验


为了读取P0-P7口的电平,将P0P1接高电平,P2,P3接低电平,其余的引脚悬空,来读取PCF8574P0-P7的电平值,PCF8574I2C的读时序如下所示:


644e99c5-c012-4a4d-a7b5-99b2380a88c8.jpg



5.24 PCF8574读模式下的时序


从时序图可以看到,PCF8574读模式下的设备地址为0x41,因此USB-ezIO模块设置和读取的结果如下:


f508fbc8-072e-4f24-bd45-c673fa53ca0d.jpg



5.25 PCF8574的端口数据读取结果


读取的结果是3,P0,P1高电平,P2,P3低电平,P4-P7低电平,这里注意,P4-P7悬空为什么是低电平,这是因为PCF8574是带锁存输出,当读取输入电平时,读取的是端口的锁存器内部的电平,而不是引脚电平,由于最后一次输出操作输出为0x02,因此,P4-P7的锁存器内的电平均为0,所以读取的结果为3

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条