逃逸电子的笔记 https://bbs.21ic.com/?107509 [收藏] [复制] [RSS] 在飞扬的电子尘埃中,寻找自己的天空.  QQ:41140388  EMAIL:zj_sx8192@yahoo.com.cn

日志

ri-r6c-001的驱动

已有 747 次阅读2007-4-17 18:48 |个人分类:单片机|系统分类:单片机| 坚持原创

以前做过的一个读卡器


 

 

 

程序是用51的汇编写的

 

SOCK            BIT     P1.1

DIN                BIT     P1.2
DOUT            BIT     P1.3

;----------------------------------
;INPUT :        A
;OUTPUT:        NONE
;SEND A COMMAND
;----------------------------------
SN_CMD:
                MOV    R2, #008H
                CLR    C
SN_LOOP:   

                RLC    A
                MOV    DIN, C
                NOP
                NOP
                SETB   SOCK
                NOP
                NOP
                CLR    SOCK
                NOP
                NOP
                DJNZ   R2,SN_LOOP
                RET
;-----------------------------------------
; INPUT  : A
;OUTPUT  : NONE
;SEND BYTE
;-----------------------------------------
S_BYTE:
                MOV    R2,#008H   ;数据是8位
SBYTE1:
                JB     DOUT ,$
                RRC    A
                MOV    DIN, C            ;发送一位
                NOP
                NOP
                SETB   SOCK
                NOP
                NOP
                CLR    SOCK
                DJNZ   R2, SBYTE1
                RET
;-----------------------------------------
; INPUT  : @R0---30H
;OUTPUT  : A
;RECEIVE A BYTE
;-----------------------------------------
R_BYTE:
                JB     TIMER_FLAG,R_BYTE_ERR  ;TIMER_FLAG超时标志               
                JNB    SOCK, R_BYTE
R1_1:
                JB     DOUT,R1_22
                JNB    TIMER_FLAG,R1_1
                SJMP   R_BYTE_ERR
R1_22:        
                JNB    SOCK ,R1_2
                JNB    TIMER_FLAG,R1_22
                SJMP   R_BYTE_ERR
R1_2:
                JNB    SOCK,$               
R1_3:
                MOV    C,DOUT
                RRC    A
                JB     SOCK,$
                DJNZ   R2, R1_2
                MOV    @R0,A
                INC    R0
                MOV    R2,#008H
                CJNE   R0,#03CH,R1_2 
R_BYTE_END:
                SETB   C
                RET
R_BYTE_ERR:
                CLR    C
                RET               

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)