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

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

文章摘要:OC BIT P1.4 ;OC高阻控制;并行输入/串行输出子程序INPUT:MOV R0,#20H;设置开关量输入缓冲区指针MOV R1,#04H ;设置开关量输入位数SETB A ;选择开关量CLR B ;输入功能CLR LECLR OCSETB I/O ;并行置数CLR I/O ;I0-I31高阻态RCV 1:CLR RI ;清接收结束标志MOV SCON ,#10H ;设串口工作方式0,并启动接收WAIT 1:JNB RI,WAIT 1 ;未接收完等待MOV A,SBUF ;将串行开关量数据送入A中MOV @ R0 ,A ; 开关数据送开关量输入缓冲区INC R0 ;指向下一缓冲区 DJ

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

OC BIT P1.4 ;OC高阻控制

;并行输入/串行输出子程序

INPUT:MOV R0,#20H;设置开关量输入缓冲区指针

MOV R1,#04H ;设置开关量输入位数

SETB A ;选择开关量

CLR B ;输入功能

CLR LE

CLR OC

SETB I/O ;并行置数

CLR I/O ;I0-I31高阻态

RCV 1:CLR RI ;清接收结束标志

MOV SCON ,#10H ;设串口工作方式0,

并启动接收

WAIT 1:JNB RI,WAIT 1 ;未接收完等待

MOV A,SBUF ;将串行开关量数据送入A中

MOV @ R0 ,A ; 开关数据送开关量输入缓冲区

INC R0 ;指向下一缓冲区

DJNZ R1,RCV 1 ;未接收完则继续接收

RET ;返回

;串行输入/并行输出子程序

;将输出口要求的开关状态由输出量缓冲区输出

OUTPUT:MOV R0,#24H ;设置开关量输出缓冲区指针

MOV R1,#05H ;设置开关量输出位数

CLR A ;选择开关输出功能

CLR B

CLR OC

SETB LE ;允许输出数据

CLR I/O

MOV SCON,#00H;设串行口工作方式0

LOOP: MOV A,@ R0 ;取开关量数据

CLR TI ;清发送结束标志

MOV SBUF,A ;发送数据

WAIT2 JNB TI,WAIT 2 ;未发送完等待

INC R0 ;指向下一缓冲区

DJNZ R1,LOOP ;未发送完则继续发送

CLK LE ;锁存O0-O39状态

RET ;返回

开关量输入缓冲区20H~23H中的每一位与输人口引脚10-I31一一对应。开关量输出缓冲区24H~28H中的每一位和输出口引脚O0~O39--一对应,缓冲区长度可根据使用的I/O口数量进行设置,输人口的状态可用位判别指令或字节判别指令来判断,输出口状态可用更新对应口线输出缓冲区字节内容的方法实现并口数据输出或用置位/复位指令来实现位控
输出,限于篇幅,在这里就不详述了。

5 结束语

GM8164串行I/O扩展芯片具有扩展I/O数量多,占用单片机硬件资源较少,接口电路及接口时序简单,数据传送速度快的特点,因而是一种较理想的开关量扩展芯片。

参考文献

1. 国腾微电子.GM8164I/O扩展器使用说明.

2.曹立进,等.具有串行接口的I/O扩展器EM83010及其应用.电子技术应用.2000(7)

3. 力源产品目录.武汉力源信息技术服务有限公司,2002(1).


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


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

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

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