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
上一篇:利用ds18b20檢測(cè)當(dāng)前溫度isd1420語(yǔ)音芯片的溫度報(bào)警程序
下一篇:AT93C46匯編讀寫示例程序
推薦閱讀
史海拾趣
近年來(lái),Aptos將業(yè)務(wù)重心逐漸轉(zhuǎn)向區(qū)塊鏈領(lǐng)域。在經(jīng)過長(zhǎng)時(shí)間的研發(fā)后,公司成功推出了主網(wǎng)測(cè)試環(huán)境。在測(cè)試中,Aptos實(shí)現(xiàn)了驚人的3萬(wàn)TPS峰值以及超20億筆日交易的處理能力,這一性能突破在行業(yè)內(nèi)引起了廣泛關(guān)注。
Falco Electronics始終將產(chǎn)品質(zhì)量放在首位。公司建立了嚴(yán)格的質(zhì)量控制體系,從原材料采購(gòu)到產(chǎn)品生產(chǎn),每一個(gè)環(huán)節(jié)都嚴(yán)格把關(guān)。這種對(duì)質(zhì)量的堅(jiān)持讓Falco Electronics的產(chǎn)品在市場(chǎng)上贏得了良好的口碑。越來(lái)越多的客戶選擇Falco Electronics的產(chǎn)品,公司的市場(chǎng)份額也逐漸擴(kuò)大。
隨著全球?qū)Νh(huán)保和可持續(xù)發(fā)展的重視,ELNA也開始關(guān)注綠色制造和環(huán)保產(chǎn)品。公司積極采用環(huán)保材料和清潔能源,減少生產(chǎn)過程中的污染和排放。同時(shí),ELNA還加強(qiáng)了對(duì)廢舊產(chǎn)品的回收和再利用,推動(dòng)循環(huán)經(jīng)濟(jì)的發(fā)展。
Corsair深知品質(zhì)是企業(yè)生存和發(fā)展的關(guān)鍵。因此,公司建立了嚴(yán)格的質(zhì)量管理體系,從原材料采購(gòu)、生產(chǎn)加工到產(chǎn)品出廠,每一個(gè)環(huán)節(jié)都進(jìn)行嚴(yán)格的質(zhì)量控制。Corsair還引入了先進(jìn)的質(zhì)量檢測(cè)設(shè)備和方法,確保每一件產(chǎn)品都符合客戶的要求和行業(yè)標(biāo)準(zhǔn)。這種對(duì)品質(zhì)的執(zhí)著追求使得Corsair的產(chǎn)品在市場(chǎng)上贏得了良好的聲譽(yù)。
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)?...… 查看全部問答∨ |
看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 編輯 ]… 查看全部問答∨ |
今天閑著,把邏輯分析儀上要用到的芯片搜了搜價(jià)格。同時(shí)也把板子發(fā)出去打板了。 芯片大致參考價(jià)格如下: FPGA 40 - 80¥(根據(jù)具體型號(hào),價(jià)格也不太 ...… 查看全部問答∨ |
每次用中斷都出現(xiàn)Error[Pe065]: expected a ";" 不是缺符號(hào)的問題?。?/a> 用的IAR FOR MSP430 軟件編程,求助是為何。。。 … 查看全部問答∨ |
【TI首屆低功耗設(shè)計(jì)大賽】msp430fr5969 第二貼+開箱例程 本帖最后由 君羽落 于 2014-9-14 16:57 編輯 很榮幸這個(gè)比賽是第一批入圍的,板子來(lái)的比入圍通知還快~感謝EEWORLD! 拿到板子也有一段時(shí)間了,剛拿到板子那會(huì)兒正準(zhǔn)備電賽呢,所以也沒怎么測(cè)試,試了下開箱Demo,這塊板子的開箱例程有GUI交互的 ...… 查看全部問答∨ |
我的串口采集程序,我用串口調(diào)試助手發(fā)送數(shù)據(jù)輸入的字符串是AAAA57EA393F35EAAA82 我采集到的就變成了393F35EAAA82AAAA57EA 有高手知道修改程序嗎,急求 … 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級(jí)數(shù)字信號(hào)控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無(wú)線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁(yè)和arduino的通訊
- ESP32 freeRTOS使用測(cè)試
- BOE(京東方)聯(lián)合榮耀打造榮耀Magic V5 以領(lǐng)先LTPO技術(shù)打造行業(yè)新標(biāo)桿
- 華為ADS 4發(fā)布:多傳感器融合,提升自動(dòng)駕駛安全性
- 曉鶯說(shuō):線控制動(dòng)變革風(fēng)云
- 大眾商用車推出AirConsole 將其信息娛樂系統(tǒng)擴(kuò)展為游戲機(jī)
- 福州大學(xué)發(fā)明新機(jī)器視覺傳感器 可使機(jī)器人對(duì)極端光照做出超快反應(yīng)
- 蘋果獲沉浸式虛擬顯示器相關(guān)的專利
- 英特爾汽車“折戟”,十年布局一夜歸零
- 寶馬自動(dòng)充電機(jī)器人概念驗(yàn)證成功,引領(lǐng)無(wú)人充電新時(shí)代
- 智駕模式下LQR最優(yōu)算法在EPS中的應(yīng)用研究
- 6月超17款人形機(jī)器人新品推出
- 與PI一起探索 LinkSwitch-TN2 的秘密看視頻答題贏好禮!
- 下載MPS汽車電機(jī)控制技術(shù)干貨,贏【Keep體脂秤、自動(dòng)洗手機(jī)套裝、小米保溫杯】,開啟汽車技術(shù)進(jìn)階之旅!
- 分享你遇到的那些bug和解決技巧,贏萬(wàn)圣節(jié)小驚喜!
- 泰克任意波形發(fā)生器,跨越成本極限,克服挑戰(zhàn)
- 今日競(jìng)拍:TI SimpleLink Wifi CC3220S
- TI毫米波雷達(dá)技術(shù)在工業(yè)上的應(yīng)用
- TI C2000TM的信號(hào)鏈實(shí)時(shí)性評(píng)測(cè)和使用教程
- “泰”想開車 智能篇:智能網(wǎng)聯(lián)汽車,實(shí)現(xiàn)無(wú)憂駕駛
- TI 樣片免費(fèi)申請(qǐng),曬樣片贏好禮!
- TE智能工廠解決方案,助力工業(yè)數(shù)字化轉(zhuǎn)型
- 英偉達(dá)轉(zhuǎn)單三星代工了,但對(duì)臺(tái)積電影響有限!
- 華為被禁后,致使三星Q2利潤(rùn)下降6成?
- 在4G奔向5G緊要關(guān)頭,英國(guó)Three棄三星用華為
- 英偉達(dá)下單給三星?摩根士丹利:報(bào)道太夸大
- 光刻機(jī)領(lǐng)域ASML研發(fā)新代機(jī)型,預(yù)計(jì)2025年1納米工藝
- 自動(dòng)駕駛讓傳感器變得越來(lái)越聰明
- 基于壓力傳感觸控技術(shù)的室內(nèi)定位地板
- 基于LabVIEW平臺(tái)車載電磁閥自動(dòng)測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 利用Python語(yǔ)言實(shí)現(xiàn)實(shí)驗(yàn)室自動(dòng)化
- HH52P型電磁繼電器動(dòng)態(tài)特性監(jiān)測(cè)方法的研究
- msp430G2452的啟動(dòng)問題
- 【LPC54100】LPC54102 讓M0+間歇性的采集傳感器
- wifi實(shí)時(shí)定位 實(shí)時(shí)監(jiān)控
- EDB的CeWriteRecordProps的相關(guān)問題(麻煩高手指點(diǎn))
- Flash下運(yùn)行變慢帶來(lái)的困惑
- 關(guān)于用icl7135做A/D的NTC溫度傳感器的意見
- 有沒有做傳感器數(shù)據(jù)測(cè)試的,想問點(diǎn)事啊
- 利爾達(dá)專賣 LSD-STBD-A010-A2 音頻編解碼實(shí)驗(yàn)板開發(fā)板
- SDI接口的開發(fā)
- 【MSP430共享】基于MSP430F149的電動(dòng)轎車電控系統(tǒng)設(shè)計(jì)