新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 2051對X25045的寫入和讀出匯編程序

        2051對X25045的寫入和讀出匯編程序

        作者: 時間:2012-10-12 來源:網絡 收藏
        ;*************************************************************
        ;* title:
        ;*實現,及看門狗超時周期的設置。
        ;* version: 1.0
        ;* last date: 01.03.27
        ;* target: At89c 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
        SETB P1.0
        CLR P1.0
        DJNZ R3,LOOP2
        RET
        ;*******延時子程序
        ;*入口參數:R7
        DELAY: MOV R6,#0FFH
        DJNZ R6,$
        DJNZ R7,DELAY
        RET

        END


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 辰溪县| 晋江市| 宁强县| 诸暨市| 台州市| 绥江县| 沈丘县| 于田县| 阿瓦提县| 会理县| 临沧市| 萨迦县| 民勤县| 安龙县| 岳阳市| 宜春市| 鱼台县| 武城县| 永嘉县| 视频| 莫力| 上栗县| 文成县| 突泉县| 徐闻县| 肥西县| 凤台县| 科尔| 慈溪市| 高州市| 定西市| 普兰店市| 壤塘县| 廊坊市| 宜城市| 库车县| 鹤峰县| 昌吉市| 图木舒克市| 且末县| 石阡县|