带大量I/O口扩展的串行芯片GM8164及其应用

[09-12 17:58:17]   来源:http://www.88dzw.com  单片机学习   阅读:8126

文章摘要:(1)串行输入、并行输出工作方式在OC=0、I/O=0时,如果LE为"1",则并行数据输入口10-I31为高阻态,此时在 CPU输出指令时钟CLK的上升沿作用下,串行数据将从DIN口输入,并在内部寄存器中 完成数据从低位向高位的移动,而后从O0-O39输出口输出。而当LE=0时锁存O0-O039。(2)并行输入、串行输出工作方式当LE=0、OC二0时,若I/O为"1",则并行置数,此时并行数据从10-I31输入至内部寄存器。若将I/0置"0"并断开输入端,那么在CPU输出指令时钟CLK上升沿的作用下,内部寄存器中的数据将从串行数据输出

带大量I/O口扩展的串行芯片GM8164及其应用,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

(1)串行输入、并行输出工作方式

在OC=0、I/O=0时,如果LE为"1",则并行数据输入口10-I31为高阻态,此时在 CPU输出指令时钟CLK的上升沿作用下,串行数据将从DIN口输入,并在内部寄存器中 完成数据从低位向高位的移动,而后从O0-O39输出口输出。而当LE=0时锁存O0-O039。

(2)并行输入、串行输出工作方式
当LE=0、OC二0时,若I/O为"1",则并行置数,此时并行数据从10-I31输入至内部寄存器。若将I/0置"0"并断开输入端,那么在CPU输出指令时钟CLK上升沿的作用下,内部寄存器中的数据将从串行数据输出端DOUTA、DOUTB或DOUTC输出。

(3)级联工作方式

GM8164JN芯片有三个串行数据输出端DOU-TA、DOUTB、DOUTC,它们分别为内部16位、32位、40位移位寄存器O15、O31、O39(O37)所对应的内部寄存器。当用户系统所需要的输入输出口数量较少时(如分别少于16个),可以只使用10-I15、O0-O15,此时DOUTA则可作为串行数据输出端。而当系统需要的I/0口数量很多时,则可通过DOUTC再级联一片GM8164芯片,以扩展I/O数量。

GM8164在使用时应注意以下几点。

●并行输出口受输出允许控制端OC和输出锁存控制端LE的控制,当OC=1时,输出O0-O39为高阻态禁止并行数据输出,但此时器件的串行输入、并行置数及串行输出功能不受影响。当OC=0时,若LE=1,则在O0-O39输出数据,而LE=0时,则将O0-O39的数据锁存。

●当进行输出口控制时,无论改变多少个输出口的状态(即使是一位),也必须把所有的输出口状态按照一定的顺序重新输出一次,且当所有输出口都应置成所需的状态后,方能置锁存端为"1",然后再置"O"锁存。

●由于O0-O7为OC门输出结构,可驱动电压较高的非TTL型负载(电压不得超过15V),因此当O0-O7用于普通输出口时,应外接上拉电阻。

●读入输入口状态时,不能打开锁存端,需要读入的次数由输入端所处的位置决定,而不一 定要把所有的输入口状态都读入到CPU。

●当用户系统输入口数量在16个以下而又使用DOUTB及DOUTC做输出口时,会出现2个(DOUTB端)或3个字节(DOUNTC端)的无效数据;当用户的输入端口数目在32个以下时,DOUTC端会产生一个字节的无效数据,而且在多片级联时也会产生无效数据,因此在软件编程时应将无效数据舍弃。

4 应用

GM8164非常适合于非总线单片机扩展I/O接口使用,这里以AT89C2051单片机为例来说明GM8164的具体应用电路。AT89C2051与GM8164的硬件连接电路如图3所示。

 

GM8164适合与单片机的UART相连,也可用I/O口线来模拟UART。为了提高数据传送速度,本设计使用了单片机的异步串行口,并使之工作于方式0(即移位寄存器方式),此时波特率为fosc/12,如采用12MHz晶振,则GM8164的fcLK=1MHz,完全可满足GM8164对时钟频率的要求。为了不影响单片机的串口通信功能,电路中使用了一片74HC4052双4 选一模拟开关来实现串行通信、输出口控制和并口数据输入的功能切换,并使用AT89C2051的P1.0、P1.1口实现A、B通道的选择。当P1.1P1.0=00时选择串行输入/并行输出;P1.1P1.0=01时选择并行输入/串行输出;P1.1P1.0=10时为串口通信功能;P1.1P1.0=11时禁止所有功能,同时使用单片机的P1.2-P1.4口来分别作为I/O控制、锁存控制 和高阻输出控制口。

以下给出串行输入/并行输出方式和并行输入/串行输出工作方式的子程序,本程序假设使用了全部32个输入口和40个输出口,并用DOUTC端输出串行数据,开关量输入缓冲区设在具有位寻址功能的20-23H,开关量输出缓冲区设在24-28H,并使用串口工作方式0。发送和接收数据采用等待查询方式。具体程序如下:

;位定义

A BIT P1.0 ;4052通道选择低位

B BIT P1.1 ;4052通道选择高位

I/O BIT P1.2 ;I/O控制

LE BIT P1.3 ;LE锁存控制

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《带大量I/O口扩展的串行芯片GM8164及其应用》相关文章

分类导航
最新更新
热门排行