|||
;***********************************************************************************
; 公司名称:
; 模块名称:INPUT_165.ASM
; 功 能:外部I/O口扩展 扩展芯片型号:74XX165
; 说 明:无
; 程序设计:李尚
; 设计时间:2005.03.10
; 版 本 号:20050310
;***********************************************************************************
;管脚定义:
;CI BIT P0.2 ;165_15
;SL BIT P0.6 ;165_1
;CLK BIT P0.5 ;165_2
;SDA BIT P0.4 ;165_9
;***********************************************************************************
;子程序名:READ_BURST165
;功 能:读取165的I/O口状态(多片级连方式)
;说 明:连续读取多片165的I/O口状态
;调 用:无
;堆栈需求:两字节
;入口参数:R0: 存放读取数据的首地址 R6: 165的级连个数
;修 改 值:A,R0,R6,R7
;返 回 值:以@R0为首地址的寄存器单元中
;程序设计:李尚
;设计时间:2005.03.10
;版 本 号:20050310
;***********************************************************************************
READ_BURST165:
SETB CI
SETB SL
CLR SL
SETB SL
CLR CI
INPUT_BYTE:
MOV R7,#08H
READ_BIT:
MOV C,SDA
CLR CLK
SETB CLK
RLC A
DJNZ R7,READ_BIT
MOV @R0,A
INC R0
DJNZ R6,INPUT_BYTE
SETB CI
RET
;***********************************************************************************
;子程序名:READ_ONE165
;功 能:读取165的I/O口状态(单片方式)
;说 明:读取单片165的I/O口状态
;调 用:无
;堆栈需求:两字节
;入口参数:无
;修 改 值:A,R7
;返 回 值:读取的数据放在累加器ACC中
;程序设计:李尚
;设计时间:2005.03.10
;版 本 号:20050310
;***********************************************************************************
READ_ONE165:
SETB CI
SETB SL
CLR SL
SETB SL
CLR CI
MOV R7,#08H
READ_ONE_BIT:
MOV C,SDA
CLR CLK
SETB CLK
RLC A
DJNZ R7,READ_ONE_BIT
SETB CI
RET
配套的硬件连接图