您当前的位置:五五电子网电子知识单片机-工控设备综合-其它实现2051对X25045的写入和读出 正文
实现2051对X25045的写入和读出

实现2051对X25045的写入和读出

点击数:7570 次   录入时间:03-04 12:03:00   整理:http://www.55dianzi.com   综合-其它

;*************************************************************
;* title:     X25045
;*实现2051对X25045的写入和读出,及看门狗超时周期的设置。
;* version:   1.0
;* last date: 01.03.27
;* target:    At89c2051 at 12Mhz
;* design by: Heyuesheng 010-64889568
;*************************************************************
;**** define register ****

;**** code


        ORG     0000H
        AJMP    START

        ORG     0040H
START:  MOV     SP,#60H
        MOV     R0,#10H;将状态寄存器置为00010000(即无写保护,看门狗超时周期为600毫秒)
        ACALL   WRSR

TEST:
        MOV     R0,#89H;定义R0为写入的数据(89H) 
        MOV     R1,#00H;定义R1为写入数据的地址(00H) 
        ACALL   WRITE

        MOV     R0,#51H;定义R0为写入的数据(51H) 
        MOV     R1,#01H;定义R1为写入数据的地址(01H) 
        ACALL   WRITE
    
        MOV     R1,#00H;定义R1为读出数据的地址(00H) 
        ACALL   READ
        MOV     R4,A;将读出的数据存入R4
        
        MOV     R1,#01H;定义R1为读出数据的地址(01H) 
        ACALL   READ
        MOV     R5,A;将读出的数据存入R5
  
        SJMP     TEST
        

;*******本子程序写状态寄存器
;*入口参数:R0 
WRSR:   SETB    P1.4     
        MOV     R7,#10H
        ACALL   DELAY
        CLR     P1.4

        MOV     A,#01H;写状态寄存器指令
        ACALL   SIN

        MOV     A,R0;将状态寄存器置为R0的值
        ACALL   SIN

        SETB    P1.4
        RET


;*******写使能子程序
;*入口参数:无
WREN:   SETB    P1.2 ;将WP写保护管脚置高,打开写保护。
        SETB    P1.4
        MOV     R7,#10H
        ACALL   DELAY
        CLR     P1.4

        MOV     A,#06H;写使能指令
        ACALL   SIN

        SETB    P1.4
        RET

;*******写入子程序
;*入口参数:
;*R0 要写入的数据
;*R1 要写入的地址
WRITE:  ACALL   WREN      

        SETB    P1.4
        MOV     R7,#10H
        ACALL   DELAY
        CLR     P1.4

        MOV     A,#02H;写指令
        ACALL   SIN

        MOV     A,R1;写入数据的开始地址
        ACALL   SIN

        MOV     A,R0;将RO的值写入地址为R1的单元  
        ACALL  SIN

        SETB    P1.4
        RET


;*******读出子程序
;*R1 要读出数据的地址
READ:   SETB    P1.4
        MOV     R7,#10H
        ACALL   DELAY
        CLR     P1.4

        MOV     A,#03H;读指令         
        ACALL   SIN
        MOV     A,R1;读以R1为地址的数据
        ACALL   SIN

        ACALL   SOUT
        MOV     R0,A

        SETB    P1.4
        RET

;*******串行写入
SIN:    MOV     R3,#8
LOOP1:  RLC     A
        MOV     P1.1,C
        SETB    P1.0
        CLR     P1.0
        DJNZ    R3,LOOP1
        RET
;*******串行读出
SOUT:   MOV     R3,#8
        MOV     A,#00H
LOOP2:    CLR     C
        MOV     C,P1.3
    RLC     A

[1] [2]  下一页


本文关键字:暂无联系方式综合-其它单片机-工控设备 - 综合-其它

《实现2051对X25045的写入和读出》相关文章>>>