日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年01月25日(星期六)

2018年01月25日 | HT48R50A的 AT24C02 IIC 示例程序

發(fā)布者:Howard_Sun 來源: eefocus關(guān)鍵字:HT48R50A  AT24C02  IIC 手機看文章 掃描二維碼
隨時隨地手機看文章

基于HT48R50A的 AT24C02 IIC 示例程序

 

; ************************************************* 
; Function :基于HT48R50A的 AT24C02 IIC 示例程序   * 

; MicroProcessor : HT48R50A-1/28SKDIP-A           * 

; Author:         www.picavr.com                  * 
Crystal :       4MHz                            * 
; ************************************************* 
#INCLUDE                HT48R50A-1.INC 
OK                      EQU     0CCH 
ERROR                   EQU     0DDH 
;-------------------------------------------------------------------- 
PUBLIC                  HT_DEVICE_ADD 
PUBLIC                  HT_DATA 
PUBLIC                  HT_DATA_ADD 
;-------------------------------------------------------------------- 
EXTERN                  LCD_RESET:NEAR 
EXTERN                  LCD_CURSOR:NEAR 
EXTERN                  LCD_PUT_A_CHAR:NEAR 
EXTERN                  DELAY_LONG:NEAR 

EXTERN                  KEY_GET:NEAR 
EXTERN                  KEY_IN_ADDRESS:NEAR 
EXTERN                  KEY_IN_DATA:NEAR 

EXTERN                  BYTE_WRITE:NEAR 
EXTERN                  PAGE_WRITE:NEAR 
EXTERN                  CURRENT_READ:NEAR 
EXTERN                  RANDOM_READ:NEAR 
EXTERN                  SEQUENTIAL_READ:NEAR 

EXTERN                  MESSAGE_01:NEAR 
EXTERN                  MESSAGE_02:NEAR 
EXTERN                  MESSAGE_03:NEAR 
EXTERN                  MESSAGE_04:NEAR 
EXTERN                  MESSAGE_05:NEAR 
EXTERN                  MESSAGE_06:NEAR 
EXTERN                  MESSAGE_07:NEAR 
EXTERN                  MESSAGE_08:NEAR 
EXTERN                  MESSAGE_09:NEAR 
EXTERN                  MESSAGE_10:NEAR 
EXTERN                  MESSAGE_11:NEAR 
EXTERN                  MESSAGE_12:NEAR 
EXTERN                  MESSAGE_13:NEAR 
EXTERN                  MESSAGE_14:NEAR 
EXTERN                  MESSAGE_15:NEAR 
EXTERN                  MESSAGE_16:NEAR 
EXTERN                  MESSAGE_17:NEAR 
EXTERN                  BIN_TO_HEX_TABLE:NEAR 
EXTERN                  DEC_TO_HEX_TABLE:NEAR 
EXTERN                  HEX_TO_TEXT_TABLE:NEAR 
;-------------------------------------------------------------------- 
EXTERN                  KEY_DATA:BYTE 
EXTERN                  KEY_IN_ADD_BUFFER:BYTE 
EXTERN                  KEY_IN_DATA_BUFFER:BYTE 
EXTERN                  SEQUENTIAL_READ_BUFFER:BYTE 
;-------------------------------------------------------------------- 
DATA_9724               .SECTION        AT 60H          ’DATA’ 
HT_DEVICE_ADD           DB      ? 
HT_DATA                 DB      ? 
HT_DATA_ADD             DB      ? 
COUNTER                 DB      ? 
DATA_REGISTER           DB      ? 
ADDRESS_REGISTER        DB      ? 
SEQ_COUNTER             DB      ? 
;-------------------------------------------------------------------- 
CODE                    .SECTION        AT 00H          ’CODE’ 
                        ORG     00H 
                        JMP     START 
START: 
                        SET     PBC 
                        SET     PB 

                        CALL    LCD_RESET 

                        CALL    MESSAGE_01 
                        CALL    KEY_GET 
;-------------------------------------------------------------------- 
SELECT_12: 
                        CALL    MESSAGE_02 
                         MOV      A,4FH 
                        CALL    LCD_CURSOR 
AGAIN_12: 
                        CALL    KEY_GET 
                         MOV      A,KEY_DATA 
                        SUB     A,0DH 
                        SZ      ACC 
                        JMP     COMPARE_12_1 
                        JMP     SELECT_34 
COMPARE_12_1: 
                         MOV      A,KEY_DATA 
                        SUB     A,01H 
                        SZ      ACC 
                        JMP     COMPARE_12_2 
                        JMP     FUNCTION_1 
COMPARE_12_2: 
                         MOV      A,KEY_DATA 
                        SUB     A,02H 
                        SZ      ACC 
                        JMP     AGAIN_12 
                        JMP     FUNCTION_2 
                        RET 
;-------------------------------------------------------------------- 
SELECT_34: 
                        CALL    MESSAGE_03 
                         MOV      A,4FH 
                        CALL    LCD_CURSOR 
AGAIN_34: 
                        CALL    KEY_GET 
                         MOV      A,KEY_DATA 
                        SUB     A,0CH 
                        SZ      ACC 
                        JMP     COMPARE_34_D 
                        JMP     SELECT_12 
COMPARE_34_D: 
                         MOV      A,KEY_DATA 
                        SUB     A,0DH 
                        SZ      ACC 
                        JMP     COMPARE_34_3 
                        JMP     SELECT_56 
COMPARE_34_3: 
                         MOV      A,KEY_DATA 
                        SUB     A,03H 
                        SZ      ACC 
                        JMP     COMPARE_34_4 
                        JMP     FUNCTION_3 
COMPARE_34_4: 
                         MOV      A,KEY_DATA 
                        SUB     A,04H 
                        SZ      ACC 
                        JMP     AGAIN_34 
                        JMP     FUNCTION_4 
                        RET 
;-------------------------------------------------------------------- 
SELECT_56: 
                        CALL    MESSAGE_04 
                         MOV      A,4FH 
                        CALL    LCD_CURSOR 
AGAIN_56: 
                        CALL    KEY_GET 
                         MOV      A,KEY_DATA 
                        SUB     A,0CH 
                        SZ      ACC 
                        JMP     COMPARE_56_D 
                        JMP     SELECT_34 
COMPARE_56_D: 
                         MOV      A,KEY_DATA 
                        SUB     A,0DH 
                        SZ      ACC 
                        JMP     COMPARE_56_5 
                        JMP     SELECT_7 
COMPARE_56_5: 
                         MOV      A,KEY_DATA 
                        SUB     A,05H 
                        SZ      ACC 
                        JMP     COMPARE_56_6 
                        JMP     FUNCTION_5 
COMPARE_56_6: 
                         MOV      A,KEY_DATA 
                        SUB     A,06H 
                        SZ      ACC 
                        JMP     AGAIN_56 
                        JMP     FUNCTION_6 
                        RET 
;-------------------------------------------------------------------- 
SELECT_7: 
                        CALL    MESSAGE_05 
                         MOV      A,4FH 
                        CALL    LCD_CURSOR 
AGAIN_7: 
                        CALL    KEY_GET 
                         MOV      A,KEY_DATA 
                        SUB     A,0CH 
                        SZ      ACC 
                        JMP     COMPARE_7_7 
                        JMP     SELECT_56 
COMPARE_7_7: 
                         MOV      A,KEY_DATA 
                        SUB     A,07H 
                        SZ      ACC 
                        JMP     AGAIN_7 
                        JMP     FUNCTION_7 
                        RET 
;-------------------------------------------------------------------- 
FUNCTION_1: 
                        CALL    MESSAGE_08 
                         MOV      A,4FH 
                        CALL    LCD_CURSOR 
F_1_AGAIN: 
                        CALL    KEY_GET 
                         MOV      A,KEY_DATA 
                        SUB     A,01H 
                        SZ      ACC 
                        JMP     F_1_COMPARE_2 
                        CALL    MESSAGE_09 
                        SET     PC.4            ;WRITE PROTECT 
                        CALL    KEY_GET         ;ENABLE 
                        JMP     F_1_END 
F_1_COMPARE_2: 
                         MOV      A,KEY_DATA 
                        SUB     A,02H 
                        SZ      ACC 
                        JMP     F_1_AGAIN 
                        CALL    MESSAGE_10 
                        CLR     PC.4            ;WRITE PROTECT 
                        CALL    KEY_GET         ;DISABLE 
F_1_END: 
                        JMP     SELECT_12 
                        RET 
;-------------------------------------------------------------------- 
FUNCTION_2: 
                        CALL    MESSAGE_06 
                         MOV      A,41H 
                        CALL    LCD_CURSOR 
                        CALL    KEY_IN_ADDRESS 
                        CALL    BIN_TO_HEX 
                        SUB     A,OK 
                        SZ      ACC 
                        JMP     F_2_ERROR 
                        CALL    MESSAGE_07 
                        CALL    KEY_GET 
                        JMP     F_2_END 
F_2_ERROR: 
                        CALL    MESSAGE_15 
                        CALL    KEY_GET 
F_2_END: 
                        JMP     SELECT_12 
                        RET 
;-------------------------------------------------------------------- 
FUNCTION_3: 
                        CALL    MESSAGE_11 
                         MOV      A,41H 
                        CALL    LCD_CURSOR 
                        CALL    KEY_IN_ADDRESS 
                        CALL    DEC_TO_HEX 
                        SUB     A,OK 
                        SZ      ACC 
                        JMP     F_3_ERROR 

                        CALL    MESSAGE_12 
                         MOV      A,42H 
                        CALL    LCD_CURSOR 
                        CALL    KEY_IN_DATA 
                        CALL    HEX_TO_HEX 
                        CALL    BYTE_WRITE 

                        CALL    MESSAGE_16 
                        CALL    KEY_GET 
                        JMP     F_3_END 
F_3_ERROR: 
                        CALL    MESSAGE_15 
                        CALL    KEY_GET 
F_3_END: 
                        JMP     SELECT_34 
                        RET 
;-------------------------------------------------------------------- 
FUNCTION_4: 
                        CALL    MESSAGE_11 
                         MOV      A,41H 
                        CALL    LCD_CURSOR 
                        CALL    KEY_IN_ADDRESS 
                        CALL    DEC_TO_HEX 
                        SUB     A,OK 
                        SZ      ACC 
                        JMP     F_4_ERROR 
                        CALL    MESSAGE_12 
                         MOV      A,42H 
                        CALL    LCD_CURSOR 
                        CALL    KEY_IN_DATA 
                        CALL    HEX_TO_HEX 
                        CALL    PAGE_WRITE 
                        CALL    MESSAGE_17 
                        CALL    KEY_GET 
                        JMP     F_4_END 
F_4_ERROR: 
                        CALL    MESSAGE_15 
                        CALL    KEY_GET 
F_4_END: 
                        JMP     SELECT_34 
                        RET 
;-------------------------------------------------------------------- 
FUNCTION_5: 
                        CALL    CURRENT_READ 
                        CALL    MESSAGE_13 
                        CALL    ADDRESS_DATA_DISPLAY 
                        CALL    KEY_GET 
                        JMP     SELECT_56 
                        RET 
;-------------------------------------------------------------------- 
FUNCTION_6: 
                        CALL    MESSAGE_11 
                         MOV      A,41H 
                        CALL    LCD_CURSOR 
                        CALL    KEY_IN_ADDRESS 
                        CALL    DEC_TO_HEX 
                        SUB     A,OK 
                        SZ      ACC 
                        JMP     F_6_ERROR 
                        CALL    RANDOM_READ 
                        CALL    MESSAGE_13 
                        CALL    ADDRESS_DATA_DISPLAY 
                        CALL    KEY_GET 
                        JMP     F_6_END 
F_6_ERROR: 
                        CALL    MESSAGE_15 
                        CALL    KEY_GET 
F_6_END: 
                        JMP     SELECT_56 
                        RET 
;-------------------------------------------------------------------- 
FUNCTION_7: 
                        CALL    MESSAGE_11 
                         MOV      A,41H 
                        CALL    LCD_CURSOR 
                        CALL    KEY_IN_ADDRESS 
                        CALL    DEC_TO_HEX 
                        SUB     A,OK 
                        SZ      ACC 
                        JMP     F_7_ERROR 
                        CALL    SEQUENTIAL_READ 
                        CALL    MESSAGE_13 
                        CALL    SEQ_READ_BUFFER_DISPLAY 
                        JMP     F_7_END 
F_7_ERROR: 
                        CALL    MESSAGE_15 
                        CALL    KEY_GET 
F_7_END: 

                        JMP     SELECT_7 
                        RET 
;-------------------------------------------------------------------- 
BIN_TO_HEX              PROC 
                        CLR     HT_DEVICE_ADD 
                         MOV      A,OFFSET BIN_TO_HEX_TABLE + 2 
                         MOV      TBLP,A 
                         MOV      A,OFFSET KEY_IN_ADD_BUFFER + 2 
                         MOV      MP0,A 
                         MOV      A,03H 
                         MOV      COUNTER,A 
BIN_LOOP: 
                         MOV      A,R0 
                        SUB     A,01 
                        SZ      ACC 
                        JMP     BIN_BIT_X_0 
                        TABRDL  ACC 
                        ADDM    A,HT_DEVICE_ADD 
                        JMP     BIN_NEXT 
BIN_BIT_X_0: 
                         MOV      A,R0 
                        SZ      ACC 
                        JMP     BIN_ERROR 
BIN_NEXT: 
                        DEC     TBLP 
                        DEC     MP0 
                        SDZ     COUNTER 
                        JMP     BIN_LOOP 
                         MOV      A,OK 
                        JMP     BIN_END 
BIN_ERROR: 
                         MOV      A,ERROR 
BIN_END: 
                        RET 
BIN_TO_HEX              ENDP 
;-------------------------------------------------------------------- 
DEC_TO_HEX              PROC 
                         MOV      A,HT_DATA_ADD 
                         MOV      ADDRESS_REGISTER,A 
                        CLR     HT_DATA_ADD 
                         MOV      A,OFFSET DEC_TO_HEX_TABLE 
                         MOV      TBLP,A 
                         MOV      A,OFFSET KEY_IN_ADD_BUFFER + 2 
                         MOV      MP0,A 
                         MOV      A,R0 
                        ADDM    A,HT_DATA_ADD 
                        DEC     MP0 
                         MOV      A,R0 
                        ADDM    A,TBLP 
                        TABRDL  ACC 
                        ADDM    A,HT_DATA_ADD 
                        DEC     MP0 
                         MOV      A,R0 
                        SNZ     ACC.0 
                        JMP     CHECK_ZERO 
                         MOV      A,64H 
                        ADDM    A,HT_DATA_ADD 
                        JMP     CHECK_ERROR 
CHECK_ZERO: 
                         MOV      A,R0 
                        SZ      ACC 
                        JMP     DEC_TO_HEX_ERROR 
                        JMP     DEC_TO_HEX_OK 
CHECK_ERROR: 
                         MOV      A,7FH 
                        SUB     A,HT_DATA_ADD 
                        SNZ     ACC.7 
                        JMP     DEC_TO_HEX_OK 
DEC_TO_HEX_ERROR: 
                         MOV      A,ADDRESS_REGISTER 
                         MOV      HT_DATA_ADD,A 
                         MOV      A,ERROR 
                        JMP     DEC_TO_HEX_END 
DEC_TO_HEX_OK: 
                         MOV      A,OK 
DEC_TO_HEX_END: 
                        RET 
DEC_TO_HEX              ENDP 
;-------------------------------------------------------------------- 
HEX_TO_HEX              PROC 
                        CLR     HT_DATA 
                         MOV      A,OFFSET KEY_IN_DATA_BUFFER + 1 
                         MOV      MP0,A 
                         MOV      A,R0 
                        ADDM    A,HT_DATA 
                        DEC     MP0 
                         MOV      A,R0 
                        SWAP    ACC 
                        ADDM    A,HT_DATA 
                        RET 
HEX_TO_HEX              ENDP 
;-------------------------------------------------------------------- 
ADDRESS_DATA_DISPLAY    PROC 
                         MOV      A,OFFSET KEY_IN_ADD_BUFFER + 2 
                         MOV      MP0,A 
                        CLR     R0 
                        DEC     MP0 
                        CLR     R0 
                        DEC     MP0 
                        CLR     R0 
                         MOV      A,HT_DATA_ADD 
                        SZ      ACC 
                        JMP     TRANSFER_BEGIN 
                        JMP     ADDRESS_DISPLAY_BEGIN 
TRANSFER_BEGIN: 
                         MOV      A,HT_DATA_ADD 
                         MOV      COUNTER,A 
TRANSFER: 
                         MOV      A,OFFSET KEY_IN_ADD_BUFFER + 2 
                         MOV      MP0,A 
                         MOV      A,R0 
                        SUB     A,09H 
                        SNZ     ACC.7 
                        JMP     BYTE_1 
                        INC     R0 
                        JMP     TRANSFER_END 
BYTE_1: 
                        CLR     R0 
                        DEC     MP0 
                         MOV      A,R0 
                        SUB     A,09H 
                        SNZ     ACC.7 
                        JMP     BYTE_2 
                        INC     R0 
                        JMP     TRANSFER_END 
BYTE_2: 
                        CLR     R0 
                        DEC     MP0 
                        INC     R0 
TRANSFER_END: 
                        SDZ     COUNTER 
                        JMP     TRANSFER 
ADDRESS_DISPLAY_BEGIN: 
                         MOV      A,OFFSET KEY_IN_ADD_BUFFER 
                         MOV      MP0,A 
                         MOV      A,08H 
                        CALL    LCD_CURSOR 
                         MOV      A,7FH 
                        DAA     ACC 
                         MOV      A,03H 
                         MOV      COUNTER,A 
ADDRESS_DISPLAY: 
                         MOV      A,OFFSET HEX_TO_TEXT_TABLE 
                         MOV      TBLP,A 
                         MOV      A,R0 
                        ADDM    A,TBLP 
                        TABRDL  ACC 
                        CALL    LCD_PUT_A_CHAR 
                        INC     MP0 
                        SDZ     COUNTER 
                        JMP     ADDRESS_DISPLAY 

                         MOV      A,OFFSET KEY_IN_DATA_BUFFER + 1 
                         MOV      MP0,A 
                         MOV      A,HT_DATA 
                        AND     A,0FH 
                         MOV      R0,A 
                        DEC     MP0 
                         MOV      A,HT_DATA 
                        SWAP    ACC 
                        AND     A,0FH 
                         MOV      R0,A 

                         MOV      A,48H 
                        CALL    LCD_CURSOR 
                         MOV      A,02H 
                         MOV      COUNTER,A 
DATA_DISPLAY: 
                         MOV      A,OFFSET HEX_TO_TEXT_TABLE 
                         MOV      TBLP,A 
                         MOV      A,R0 
                        ADDM    A,TBLP 
                        TABRDL  ACC 
                        CALL    LCD_PUT_A_CHAR 
                        INC     MP0 
                        SDZ     COUNTER 
                        JMP     DATA_DISPLAY 
                         MOV      A,50H 
                        CALL    LCD_CURSOR 
                        RET 
ADDRESS_DATA_DISPLAY    ENDP 
;-------------------------------------------------------------------- 
SEQ_READ_BUFFER_DISPLAY PROC 
                         MOV      A,HT_DATA 
                         MOV      DATA_REGISTER,A 
                         MOV      A,HT_DATA_ADD 
                         MOV      ADDRESS_REGISTER,A 

                         MOV      A,HT_DATA_ADD 
                        SUB     A,07H 
                        SNZ     ACC.7 
                        JMP     SEQ_DATA_ADD_CHANGE 
                         MOV      A,HT_DATA_ADD 
                        ADD     A,80H 
                        SUB     A,07H 
                         MOV      HT_DATA_ADD,A 
                        JMP     SEQ_DISPLAY_BEGIN 
SEQ_DATA_ADD_CHANGE: 
                         MOV      A,HT_DATA_ADD 
                        SUB     A,07H 
                         MOV      HT_DATA_ADD,A 

SEQ_DISPLAY_BEGIN: 
                         MOV      A,OFFSET SEQUENTIAL_READ_BUFFER 
                         MOV      MP1,A 
                         MOV      A,08H 
                         MOV      SEQ_COUNTER,A 
SEQ_LOOP: 
                         MOV      A,40H 
                        CALL    LCD_CURSOR 
                         MOV      A,SEQ_COUNTER 
                        ADD     A,30H 
                        CALL    LCD_PUT_A_CHAR 

                         MOV      A,R1 
                         MOV      HT_DATA,A 
                        CALL    ADDRESS_DATA_DISPLAY 
                        INC     MP1 
                         MOV      A,HT_DATA_ADD 
                        SUB     A,7FH 
                        SZ      ACC 
                        JMP     SEQ_NOT_ZERO 
                        CLR     HT_DATA_ADD 
                        JMP     SEQ_END 
SEQ_NOT_ZERO: 
                        INC     HT_DATA_ADD 
SEQ_END: 
                         MOV      A,40H 
                        CALL    LCD_CURSOR 
                        CALL    KEY_GET 
                        CALL    DELAY_LONG 
                        SDZ     SEQ_COUNTER 
                        JMP     SEQ_LOOP 
                         MOV      A,DATA_REGISTER 
                         MOV      HT_DATA,A 
                         MOV      A,ADDRESS_REGISTER 
                         MOV      HT_DATA_ADD,A 
                        RET 
SEQ_READ_BUFFER_DISPLAY ENDP 
;-------------------------------------------------------------------- 
                        END 


關(guān)鍵字:HT48R50A  AT24C02  IIC 引用地址:HT48R50A的 AT24C02 IIC 示例程序

上一篇:HT48R50A的 RS232串口示例程序
下一篇:HT48R50A的 93C46示例程序

推薦閱讀

紅外一開始發(fā)送一段13。5ms的引導(dǎo)碼,引導(dǎo)碼由9ms的高電平和4。5ms的低電平組成,跟著引導(dǎo)碼是系統(tǒng)碼,系統(tǒng)反碼,按鍵碼,按鍵反碼,如果按著鍵不放,則遙控器則發(fā)送一段重復(fù)碼,重復(fù)碼由9ms的高電平,2。25ms的低電平,跟著是一個短脈沖,本程序是免費給大家,版權(quán)所有,不得用于商業(yè)目的,如需用到本程序到商業(yè)上請與本人聯(lián)系jiang_xi_sheng@163.com,經(jīng)...
琳瑯滿目、顏色各異的車輛和穿梭如流的人群構(gòu)成了一幅動感的城市畫卷,但是當(dāng)你開車在路上,是否也曾經(jīng)遇到過,或“閑庭信步”或“行色匆匆”的橫穿馬路。當(dāng)你路邊停車,是否也遇到過,快遞小哥在你開門的瞬間,飛奔疾馳,一閃而過,這些不和諧,增加了事故率,也讓你的駕駛充滿了慌張。近日,貓哥有幸參加了名爵HS ADAS主動安全測試活動,今天我們就帶大...
國家電網(wǎng)有限公司日前印發(fā)了2020年1號文件《國家電網(wǎng)有限公司關(guān)于全面深化改革奮力攻堅突破的意見》(以下簡稱《意見》),強調(diào)要深入踐行能源清潔低碳轉(zhuǎn)型發(fā)展要求,緊緊圍繞“三型兩網(wǎng)、世界一流”戰(zhàn)略目標(biāo),以打造“兩網(wǎng)融合”業(yè)務(wù)新體系為主軸,奮力推進“三大改革攻堅”(混合所有制改革、集團管理體制變革、電力市場建設(shè)),加快建設(shè)世界一流能源...
醫(yī)療器械巨頭的收購動向可以說是觀察手術(shù)機器人領(lǐng)域的“時刻表”,在紛繁復(fù)雜的手術(shù)機器人的研發(fā)賽道中,被巨頭相中的賽道,或許在未來更具爆發(fā)潛力。從近年來全球巨頭在手術(shù)機器人這一賽道中的布局中,我們可以發(fā)現(xiàn)包括骨科手術(shù)機器人、腹腔鏡手術(shù)機器人等剛性機器人在全球已經(jīng)進入白熱化的商業(yè)化階段,包括美敦力、捷邁、直覺外科、史塞克都在這些領(lǐng)域商...

史海拾趣

小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved