国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

歷史上的今天

今天是:2025年01月07日(星期二)

正在發(fā)生

2018年01月07日 | AT93C46/56/57/66 EEPROM 芯片通用讀寫程序

發(fā)布者:藝泉閣 來(lái)源: eefocus關(guān)鍵字:AT93C46  EEPROM  讀寫程序 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

AT93C46/56/57/66 EEPROM 芯片通用讀寫程序

; 模塊包含: READ(讀), WRITE(寫), WRAL(片寫), ERASE(擦除), ERAL(片擦除), 
; EWEN(擦寫允許), EWDS(擦寫禁止). 
; 此模塊適用于: AT93C46/56/57/66 EEPROM 芯片, 8位(ORG=0)或16位(ORG=1)的讀、寫、

; 擦除等操作。 
; 8位或16操作,只需置標(biāo)志位SIZE為"0"或?yàn)?1"和設(shè)置NADDR的位即可,非常方便實(shí)用。 
;           93C46       93C56       93C57       93C66 
;---------------------------------------------------------------------------- 
; Data bits:    8    16    8    16    8    16    8    16 
; Address bits:    7    6    9    8    8    7    9    8 
;---------------------------------------------------------------------------- 

NADDR        EQU    7    ;  8-bit data,地址為7位 
;NADDR        EQU    6    ;  16-bit data,地址為6位 


SIZE        EQU    F0    ; 0 = 8-bit data, 1 = 16-bit data 標(biāo)志位 

DATA_LO        EQU    2AH    ; 數(shù)據(jù)低字節(jié) 
DATA_HI        EQU    2BH    ; 數(shù)據(jù)高字節(jié) 
ADDR_LO        EQU    2CH    ; 地址低字節(jié) 
ADDR_HI        EQU    2DH    ; 地址高字節(jié) 

DATA01        EQU    30H    ;數(shù)據(jù)緩存區(qū)首址 

CS    BIT    P1.0        ; AT93Cxx 片選端 
SK    BIT    P1.1        ; 時(shí)鐘信號(hào)輸入端 
DI    BIT    P1.2        ; 串行數(shù)據(jù)輸入端 
DO    BIT    P1.3        ; 串行數(shù)據(jù)輸出端 

    DSEG AT 20H 

    ORG    60H        ; stack origin 
STACK:    DS    20H        ; stack depth 
    CSEG 
    ORG    0000H        ; 
    JMP    ON_RESET 
    ORG    0003H         
    reti             
    ORG    000BH         
    reti             
    ORG    0013H         
    reti             
    ORG    001BH         
    reti             
    ORG    0023H         
    reti             
    ORG    0080H         
    USING    0        ;選擇工作寄存器0         
ON_RESET: 
    MOV    SP, #(STACK-1)     

    CLR    CS        ; LOW 
    CLR    SK        ; LOW 
    SETB    DI        ; HIGH 
    SETB    DO        ; HIGH         

    CLR    SIZE        ; SPECIFY 8-BIT DATA 
;    SETB    SIZE        ; SPECIFY 16-BIT DATA 
     
    JB    SIZE,DATA16    ;SIZE=1時(shí),為16-bit操作 
    AJMP    DATA8 
;========================================================== 
; 8-bit  Byte (SIZE/ORG=0) 程序操作演示     

DATA8: 
    CALL    Byte_read    ;讀出數(shù)據(jù),以便觀察 
     
    CALL    EWEN        ;擦寫允許 
     
    MOV    ADDR_LO, #0    ; 地址 
    MOV    DATA_LO, #33H    ; 數(shù)據(jù) 
    CALL    WRITE        ; 指定地址寫 
     
    CALL    Byte_read 
     
    CALL    ERAL        ;片擦除 (全部單元置"1")     

    CALL    Byte_read 

; 8-bit 片寫,將芯存儲(chǔ)器全部寫入55H的數(shù)據(jù) 

;    CALL    EWDS        ; 擦寫禁止 

    MOV    DATA_LO, #55H    ; 片寫數(shù)據(jù)(片寫之前最好片擦除) 
    CALL    WRAL        ; 片寫         

    AJMP    DATA8 
;========================================================== 
;========================================================== 
; 16-bit  Word (SIZE/ORG=1) 程序操作演示 

DATA16: 
    CALL    Word_read    ;讀8個(gè)單元數(shù)據(jù),觀察 
         
    CALL    EWEN        ;擦寫允許 
     
    CALL    ERAL        ;片擦除 (全部單元置"1")     
     
    CALL    Word_read 
     
    MOV    ADDR_LO, #0    ; 向指定地址寫數(shù)據(jù) 
    MOV    DATA_LO, #55H    ; DATA,數(shù)據(jù)低字節(jié) 
    MOV    DATA_HI, #0AAH    ; DATA,數(shù)據(jù)高字節(jié) 
    CALL    WRITE        ; 指定地址寫 
     
    CALL    Word_read 

; 將芯片存儲(chǔ)器全部寫入0AAH(高)和55H(低)的數(shù)據(jù)  

    MOV    DATA_LO, #55H    ; DATA 
    MOV    DATA_HI, #0AAH    ; DATA 
    CALL    WRAL        ;  

    CALL    Word_read 

;    CALL    EWDS        ; 擦寫禁止 

; 將指定單元的內(nèi)容擦除(置為"1")     
    MOV    ADDR_LO, #0    ;  
    CALL    ERASE        ; 將指定單元(00H 01H)擦為"1" 
         
    AJMP    DATA16 
;========================================================== 
;讀 Read (byte if SIZE/ORG=0, word if SIZE/ORG=1). 
Byte_read:     
    MOV    R0,#DATA01    ;緩存區(qū)首址 
    MOV    ADDR_HI,#0 
    MOV    ADDR_LO,#0    ;指向AT93CXX首址 
    MOV    R7,#8        ;字節(jié)數(shù) 
READ01:             
    CALL    READ 
    MOV    A,DATA_LO 
    MOV    @R0,A 
    INC    R0 
    INC    ADDR_LO 
    DJNZ    R7,READ01 
    RET     
;========================================================== 
;讀 Read ( word if SIZE/ORG=1).低地址為低字節(jié)單元,高地址為高字節(jié)單元 
Word_read:     
    MOV    R0,#DATA01    ;緩存區(qū)首址 
    MOV    ADDR_LO,#0 
    MOV    R7,#8        ;字節(jié)數(shù) 
WORD01:     
    CALL    READ        ;讀數(shù)據(jù) 
    MOV    A,DATA_LO    ;低字節(jié)內(nèi)容 
    MOV    @R0,A     
    INC    R0 
    MOV    A,DATA_HI    ;高字節(jié)內(nèi)容 
    MOV    @R0,A 
    INC    R0 
    INC    ADDR_LO         
    DJNZ    R7,WORD01 
    RET     
;---------------------------------------------------------- 
;========================================================== 
;名稱: 讀指令(READ指令) 
;功能: 從指定的地址單元中把數(shù)據(jù)讀出 
;---------------------------------------------------------- 
READ: 
    SETB    CS        ;片選置1     
    MOV    DPL, #110B    ;起始位和操作碼"110" 
    MOV    B, #3 
    CALL    OUTDATA         
    MOV    DPL,ADDR_LO    ;低字節(jié)地址 
    MOV    DPH,ADDR_HI    ;高字節(jié)地址 
    MOV    B,#NADDR    ;地址位數(shù)(8-bit data,NADDR=7) 
    CALL    OUTDATA        ;輸出讀/寫單元地址         
    CALL    INDATA         
    CLR    CS         
    RET 
;========================================================== 
;名稱: 寫指令(WRITE 指令) 
;功能: 將數(shù)據(jù)寫入到指定的地址單元中 
;---------------------------------------------------------- 
WRITE: 
    SETB    CS        ;     
    MOV    DPL, #101B    ;起始位和操作碼"101B" 
    MOV    B, #3        ;位數(shù) 
    CALL    OUTDATA        ;輸出數(shù)據(jù) 
    MOV    DPL, ADDR_LO     
    MOV    DPH, ADDR_HI     
    MOV    B, #NADDR     
    CALL    OUTDATA     
    MOV    DPL, DATA_LO     
    JB    SIZE, EE61    ;SIZE=0時(shí),8bit; SIZE=1時(shí),16bit; 
    MOV    B, #8 
    JMP    EE62 
EE61: 
    MOV    DPH, DATA_HI     
    MOV    B, #16 
EE62: 
    CALL    OUTDATA 
    CLR    CS             
    CALL    STATUS        ; 延時(shí)10ms 
    RET 
;========================================================== 
;名稱: 片寫指令(WRAL 指令) 
;功能: 將命令中指定的數(shù)據(jù)寫入整個(gè)存貯器陣列 
;---------------------------------------------------------- 
WRAL:     
    SETB    CS        ;片選置1,選中芯片     
    MOV    DPTR, #(10001B SHL (NADDR-2)) 
    MOV    B, #(NADDR+3) 
    CALL    OUTDATA         
    MOV    DPL, DATA_LO 
    JB    SIZE, EE71    ; SIZE=0時(shí),8bit; SIZE=1時(shí),16bit; 
    MOV    B, #8 
    JMP    EE72 
EE71: 
    MOV    DPH, DATA_HI 
    MOV    B, #16 
EE72: 
    CALL    OUTDATA 
    CLR    CS         
    CALL    STATUS        ; 延時(shí)10ms 
    RET 
;========================================================== 
;名稱: 地址擦指令(ERASE 指令) 
;功能: 將指定地址中所有數(shù)據(jù)位都為置為"1" 
;---------------------------------------------------------- 
ERASE: 
    SETB    CS                 
    MOV    DPTR, #111B    ;擦除指令操作碼"111B" 
    MOV    B, #3 
    CALL    OUTDATA                 
    MOV    DPL, ADDR_LO    ;地址低位 
    MOV    DPH, ADDR_HI    ;地址高位 
    MOV    B, #NADDR    ; 
    CALL    OUTDATA 
    CLR    CS                         
    CALL    STATUS        ; 延時(shí)10ms 
    RET 
;========================================================== 
;名稱: 片擦指令(ERAL 指令) ,  
;功能: 將整個(gè)存儲(chǔ)器陣列置為"1" 
;---------------------------------------------------------- 
ERAL: 
    SETB    CS                         
    MOV    DPTR, #(10010B SHL (NADDR-2))    ;左移 
                ; ERAL指令 操作碼和地址為: 10010B 
    MOV    B, #(NADDR+3) 
    CALL    OUTDATA 
    CLR    CS                         
    CALL    STATUS        ; 延時(shí)子程序 
    RET 
;========================================================== 
;名稱: 擦/寫允許(EWEN 指令) 
;功能: AT93CXX在上電復(fù)位后,芯片處于擦/寫不允許狀態(tài), 
;      EWEN 指令將芯片置為可編程狀態(tài),即可擦/寫 
;---------------------------------------------------------- 
EWEN:     
    SETB    CS         
    MOV    DPTR, #(10011B SHL (NADDR-2)) ;將10011B向左移((NADDR-2)位 
                ; EWEN 指令: 操作碼的地址為: 10011B 
    MOV    B, #(NADDR+3) 
    CALL    OUTDATA 
    CLR    CS         
    RET 
;========================================================== 
;名稱: 擦/寫禁止(EWDS 指令) 
;功能: 使用該指令可對(duì)寫入的數(shù)據(jù)進(jìn)行保護(hù),操作步驟與擦/寫允許指令相同. 
;---------------------------------------------------------- 
EWDS: 
    SETB    CS                         
    MOV    DPTR, #(10000B SHL (NADDR-2)) 
    MOV    B, #(NADDR+3) 
    CALL    OUTDATA 
    CLR    CS         
    RET 
;========================================================== 
;延時(shí)子程序 
;---------------------------------------------------------- 
STATUS:     
    PUSH    B 
    SETB    DO        ; FLOAT PIN 
    SETB    CS         
    MOV    B, #220        ; 220 * 50 us = 11 ms             
EE40: 
    PUSH    B        ; 2 us 
    MOV    B, #22        ; 2 us 
    DJNZ    B, $        ; 2 us * 22 
    POP    B        ; 2 us 
    JB    DO, EE41     
    DJNZ    B, EE40         
    SETB    C         
    JMP    EE42         
EE41: 
    CLR    C         
EE42: 
    CLR    CS 
    POP    B 
    RET 
;========================================================== 
INDATA:     
    SETB    DO                         
    CALL    SHIN 
    JNB    SIZE, EE21    ; SIZE=0時(shí),8bit; SIZE=1時(shí),16bit 
    MOV    DATA_HI, A    ; SAVE HIGH BYTE 
                ; SIZE=1時(shí),16bit 
    CALL    SHIN 
EE21:                ; SIZE=0時(shí),8bit 
    MOV    DATA_LO, A    ; SAVE LOW BYTE 
    RET 
;========================================================== 
;讀一個(gè)字節(jié)子程序, 讀回的數(shù)據(jù)在A中 
;---------------------------------------------------------- 
SHIN: 
    PUSH    B 
    CLR    SK         
    MOV    B,#8         
EE30: 
    SETB    SK         
    NOP             
    MOV    C,DO         
    RLC    A         
    CLR    SK         
    DJNZ    B,EE30         
    POP    B 
    RET 
;========================================================== 
;向AT93CXX 寫入地址 
;---------------------------------------------------------- 
OUTDATA: 
    PUSH    B 
    MOV    A,B         
    CLR    C         
    SUBB    A,#8         
    JC    EE6         
    JZ    EE5                 
    MOV    B,A         
    CLR    C         
    SUBB    A,#8         
    JC    EE2         
    JNZ    EE9         
    MOV    A,DPH     
    JMP    EE4 
EE2: 
    PUSH    B         
    MOV    A,DPH         
EE3: 
    RR    A         
    DJNZ    B,EE3         
    POP    B         
EE4: 
    CALL    SHOUT         
    MOV    B,#8         
EE5: 
    MOV    A, DPL     
    JMP    EE8 
EE6: 
    PUSH    B         
    MOV    A,DPL         
EE7: 
    RR    A         
    DJNZ    B,EE7         
    POP    B         
EE8: 
    CALL    SHOUT 
EE9: 
    SETB    DO         
    POP    B 
    RET 
;========================================================== 
; 寫一個(gè)字節(jié)子程序 
; 入口: 寫入數(shù)據(jù)須事先存入A中. 
;---------------------------------------------------------- 
SHOUT:     
EE50: 
    CLR    SK         
    RLC    A         
    MOV    DI,C         
    NOP            ; DELAY MIN 400 ns 
    SETB    SK         
    DJNZ    B,EE50         
    CLR    SK         
    RET 
;========================================================== 
;========================================================== 

END 


關(guān)鍵字:AT93C46  EEPROM  讀寫程序 引用地址: AT93C46/56/57/66 EEPROM 芯片通用讀寫程序

上一篇:利用ds18b20檢測(cè)當(dāng)前溫度isd1420語(yǔ)音芯片的溫度報(bào)警程序
下一篇:AT93C46匯編讀寫示例程序

推薦閱讀

前一段有人在問答網(wǎng)站提問,2017 年汽車圈 / 汽車行業(yè)內(nèi)有哪些事件最讓你記憶猶新?我寫了中國(guó)企業(yè)開始造好車,長(zhǎng)城、領(lǐng)克、蔚來(lái)、甚至倒下的樂視。都不再滿足于逆向車型低水平研發(fā)賺錢的格局,開始向上發(fā)展,造出好車。?我在回答中還展望未來(lái)有一天中國(guó)企業(yè)造出的好車能像其他中國(guó)制造一樣在全球市場(chǎng)舉足輕重。?展望只是展望,中國(guó)企業(yè)能做到嗎?有...
USART串口使用STM8L上有多個(gè)串口,最多可達(dá)5個(gè),分別為USART1~USART5,但依據(jù)型號(hào)不同,搭載數(shù)量并不相同。 以STM8L052R8為例,其只具有USART1~USART3。 因?yàn)镾TM8系列功能眾多,很多Pin都是復(fù)用的,因此使用前必須檢查STML的參考手冊(cè)。 通過手冊(cè)可知,以USART1為例,RX/TX可以使用以下的管腳,默認(rèn)是PC2/PC3,如果要變更,需要修改SYSCFG remap control...
新浪數(shù)碼訊 1月6日消息,在#CES20#上,三星展示了新形態(tài)的電視產(chǎn)品“5G-The Sero”。這是一款能旋轉(zhuǎn)屏幕的電視產(chǎn)品?! ∑鋵?shí)早在去年四月,三星就宣布了一款名為“ The Sero” 的旋轉(zhuǎn)電視,它類似于微軟的Surface Hub 2,屏幕可以在橫向和縱向之間旋轉(zhuǎn),并且橫向設(shè)置針對(duì)Snapchat,Instagram Stories和TikToks等以智能手機(jī)為中心的內(nèi)容進(jìn)行了優(yōu)化...
  近日,自治區(qū)科技重大專項(xiàng)“MW級(jí)先進(jìn)飛輪儲(chǔ)能關(guān)鍵技術(shù)研究”與“單體500MJ儲(chǔ)能飛輪及其集成示范應(yīng)用關(guān)鍵技術(shù)研究”項(xiàng)目分別在北京市與呼和浩特市啟動(dòng)。?   近年來(lái),我國(guó)可再生能源產(chǎn)業(yè)發(fā)展勢(shì)頭迅猛,可再生能源發(fā)電在電網(wǎng)中的比例日益提高。根據(jù)蒙西電網(wǎng)的統(tǒng)計(jì),高比例可再生能源電網(wǎng)每小時(shí)的一次調(diào)頻需求為30-50次,每天的一次調(diào)頻需求約1000...

史海拾趣

問答坊 | AI 解惑

DSP求學(xué)歷程

1. 接觸DSP 在參加過一次社會(huì)上多的盡乎到了泛濫地步的\"DSPxxx\"培訓(xùn)班之后,我\"自信\"已經(jīng)具備DSP工程師資格,便欣喜若狂跑道書店買了一本名為\"DSP xxx應(yīng)用\"的書,作者叫xxx,并且是這個(gè)領(lǐng)域的牛人,這本書確實(shí)是很出色的書籍。但是當(dāng)時(shí),對(duì) ...…

查看全部問答∨

請(qǐng)教方波轉(zhuǎn)正弦波濾波器的設(shè)計(jì)

我想將方波(關(guān)于x軸對(duì)稱,即正負(fù)值各半個(gè)周期)轉(zhuǎn)成正弦波(或類似正弦波),我現(xiàn)在的方法是對(duì)方波加濾波器進(jìn)行多次濾波,但是我發(fā)現(xiàn)輸出的波形在x軸的上方,并不是關(guān)于x軸對(duì)稱。那么我要如何才能得到像標(biāo)準(zhǔn)正弦波那樣嚴(yán)格關(guān)于x軸對(duì)稱的波形呢?因?yàn)?...…

查看全部問答∨

數(shù)字電視和機(jī)頂盒要不要集成在一起?

這個(gè)問題,比較大,爭(zhēng)議很多?!?

查看全部問答∨

關(guān)于晶振?

看datasheet時(shí)經(jīng)常會(huì)遇到晶振的問題,上網(wǎng)查了些資料感覺還是很迷茫,說(shuō)的太理論了,希望高手給予解答,謝謝 1,晶振有什么作用? 2,晶振和時(shí)序有什么關(guān)系? 3,為什么需要有不同的晶振在一個(gè)板子上? 4,在程序中發(fā)現(xiàn)可以用定時(shí)器根據(jù)不同的晶振調(diào)整波特 ...…

查看全部問答∨

寫給同齡電子專業(yè)大學(xué)生(非經(jīng)驗(yàn))

      最近總算是走出了迷茫,所以可以靜下心來(lái)去寫寫自己的打算。長(zhǎng)期以來(lái)自己都是在看別人的文章,然后轉(zhuǎn)載,評(píng)論,的卻學(xué)到了許多的過來(lái)人的經(jīng)驗(yàn)。這幾天每天都要將郭天祥寫得那片文章看幾遍,每次看完之后都會(huì)更加堅(jiān) ...…

查看全部問答∨

【 信號(hào)處理】基于FPGA的RFID系統(tǒng)解碼模塊設(shè)計(jì)

本文要介紹的解碼模塊是基于ISO/IEC15693標(biāo)準(zhǔn)設(shè)計(jì)的,實(shí)現(xiàn)了從帶干擾的返回信號(hào)(此信號(hào)已經(jīng)去掉載波)中精確的提取標(biāo)簽信息的功能。此設(shè)計(jì)直接影響識(shí)別的準(zhǔn)確性。   [ 本帖最后由 hangsky 于 2012-1-27 13:52 編輯 ]…

查看全部問答∨

EE Logic 成本估計(jì)

今天閑著,把邏輯分析儀上要用到的芯片搜了搜價(jià)格。同時(shí)也把板子發(fā)出去打板了。 芯片大致參考價(jià)格如下: FPGA                     40 - 80¥(根據(jù)具體型號(hào),價(jià)格也不太 ...…

查看全部問答∨

【TI首屆低功耗設(shè)計(jì)大賽】msp430fr5969 第二貼+開箱例程

本帖最后由 君羽落 于 2014-9-14 16:57 編輯 很榮幸這個(gè)比賽是第一批入圍的,板子來(lái)的比入圍通知還快~感謝EEWORLD! 拿到板子也有一段時(shí)間了,剛拿到板子那會(huì)兒正準(zhǔn)備電賽呢,所以也沒怎么測(cè)試,試了下開箱Demo,這塊板子的開箱例程有GUI交互的 ...…

查看全部問答∨

labview串口采集數(shù)據(jù)問題

我的串口采集程序,我用串口調(diào)試助手發(fā)送數(shù)據(jù)輸入的字符串是AAAA57EA393F35EAAA82 我采集到的就變成了393F35EAAA82AAAA57EA 有高手知道修改程序嗎,急求 …

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

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