四海电子的笔记 https://bbs.21ic.com/?552178 [收藏] [复制] [RSS]

日志

读74XX165 IO口的子程序(ASM)

已有 1706 次阅读2008-8-19 20:04 |个人分类:51单片机程序(ASM)|系统分类:单片机| 74HC165程序, 74LS165程序

;***********************************************************************************
; 公司名称:
; 模块名称: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


 


配套的硬件连接图



路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)