亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? at45d0xx.inc

?? AT45dbxx data-flash memory routines in asm51
?? INC
?? 第 1 頁 / 共 2 頁
字號:
;  +------------------------------------------------------------------------------+
;  | Rotinas para ler e escrever na Serial Data Flash AT45D0xxA via interface SPI |
;-=| Autor: Bruno Marcio Diogo Venancio -      EMAIL: bruno.marcio@bol.com.br     |=-
;  | Microcontrolador : AT89S8252              Data:20/09/03                v1.0  |
;  |                                                                              |
;  | ESTAS ROTINAS PODEM SER LIVREMENTE DISTRIBUIDAS,DESDE QUE NAO ALTERE O CODIGO|
;  | E QUE SEJA CITADO O NOME DO AUTOR.                                           |
;  +------------------------------------------------------------------------------+


;----{ Comandos e definicoes de bits do AT45D081A }--------------------

;-| Read commands |--

STSR       EQU   57H                ; Status register
;WRSR       EQU
MMPR       EQU   52H                ; Main memory page read
B1RD       EQU   54H                ; Buffer 1 read
B2RD       EQU   56H                ; Buffer 1 read
CARD       EQU   68H                ; Continuous array read

;-| Write commands |--

B1WR       EQU   84H                ; Buffer 1 write
B2WR       EQU   87H                ; Buffer 2 write
PAER       EQU   81H                ; Page Erase
BLER       EQU   50H                ; Block erase
MP2B1      EQU   82H                ; Main memory page program through buffer 1
MP2B2      EQU   85H                ; Main memory page program through buffer 2

B1MPE      EQU   83H                ; Buffer1 to memory page program with built-in erase
B2MPE      EQU   86H                ; Buffer2 to memory page program with built-in erase

B1MP       EQU   88H                ; Buffer1 to memory page program without built-in erase
B2MP       EQU   89H                ; Buffer2 to memory page program without built-in erase

;-| Additional Commands |--

MPB1T      EQU   53H                ; Main Memory Page to Buffer 1 Transfer
MPB2T      EQU   55H                ; Main Memory Page to Buffer 2 Transfer

MPB1C      EQU   60H                ; Main Memory Page to Buffer 1 comapare
MPB2C      EQU   61H                ; Main Memory Page to Buffer 2 comapare

APRB1      EQU   58H                ; Auto Page Rewrite through buffer 1
APRB2      EQU   59H                ; Auto Page Rewrite through buffer 2

;-| Pinos da interface SPI no AT89S82XX

CS_        BIT  P1.4         ; chip select
MOSI       BIT  P1.5         ;
MISO       BIT  P1.6
SCK        BIT  P1.7

;------------------------------------------------------------------------------------


;-| Rotina de inicializacao interface SPI no AT89s82XX

_SPI_INI:


     setb CS_
     setb MISO
     setb MOSI
     setb SCK

     mov SPCR,#01011100B     ; Inicializa o Master SPI, interrupcao
                             ; desabilitada,pino habilitado,MSB primeiro,
                             ; polaridade 1, fase 1 e clock rate /4
     ret


;+------------------------------------------------------------------------------+
;| Rotina: Envia/recebe dados pela porta SPI                                    |
;|        - Byte enviado assim como e' recebido                                 |
;|        - Envio/recebimento simultaneo                                        |
;|        - Espera pelo envio/recebimento seja completado antes de sair         |
;| Entrada/saida: dado no Acc para enviar, retorna dado recebido tambem em Acc  |
;+------------------------------------------------------------------------------+

_AT45_MASTER_IO:
           mov SPDR,a                    ; Carrega dado de saida
MASTER_BBB:
           mov a,SPSR                    ; pega o status
           anl a,#SPIF
           jz MASTER_BBB
           mov   a,SPDR                  ; Ler dado de entrada

           ret


;+---------------------------------------------------------------------------------+
;| Rotina: Recebe status da Flash data                                             |
;| Saida : A                                                                       |
;|                                                                                 |
;| Formato do byte de status:                                                      |
;|  +---------+------+------+------+------+------+------+------+                   |
;|  |Bit7     | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |                   |
;|  |RDY/~BUSY| COMP |   1  |  0   |  0   |  0   |  X   |  X   |                   |
;|  +---------+------+------+------+------+------+------+------+                   |
;|                                                                                 |
;| Descricao dos bits:                                                             |
;| - RDY/~BUSY -> Quando em 0,dispositivo ocupado , quando em 1 esta livre         |
;| - Operacoes que envolvem bit 6 e 7 : MAIN MEMORY PAGE TO BUFFER TRANSFER,       |
;|   MAIN MEMORY PAGE TO BUFFER COMPARE, BUFFER TO MAIN MEMORY PAGE PROGRAM WITH   |
;|   BUILT-IN ERASE, PAGE ERASE, BLOCK ERASE, MAIN MEMROY PAGE PROGRAM , AUTO PAGE |
;|   REWRITE e BUFFER TO MAIN MEMORY PAGE PROGRAM WITHOUT BUILT-IN ERASE.          |
;| - Bit 3,4 e 5 : Densidade da Flash                                              |
;|   Tabela dos modelos:                                                           |
;|                                                                                 |
;|   +------------------------+                                                    |
;|   |Bit  5 4 3 2  Densidade |                                                    |
;|   |                        |                                                    |
;|   |     0 0 1 1     1M     |                                                    |
;|   |     0 1 0 1     2M     |                                                    |
;|   |     0 1 1 1     4M     |                                                    |
;|   |     1 0 0 1     8M     |                                                    |
;|   |     1 0 1 1    16M     |                                                    |
;|   |     1 1 0 1    32M     |                                                    |
;|   |     1 1 1 1    64M     |                                                    |
;|   |     0 1 0 0    128M    |                                                    |
;|   |     0 1 1 0    256M    |                                                    |
;|   |     1 0 0 0    512M    |                                                    |
;|   +------------------------+                                                    |
;|                                                                                 |
;| - Bits X,X : Reservado para uso futuro                                          |
;+---------------------------------------------------------------------------------+



_AT45_GET_STATUS:

           push ACC

           clr CS_                        ; Habilita a Data-Flash

           mov a,#57H
           call _AT45_MASTER_IO

AT45_VERI_LOOP:
           call _AT45_MASTER_IO
           mov a,SPDR
           jnb ACC.7,AT45_VERI_LOOP

           setb CS_                        ; Desabilita a Data-Flash

           pop ACC

           ret



;+-------------------------------------------------------------------------------+
;| Rotina: MAIN MEMORY PAGE READ                                                 |
;| Entradas: DPTR -> Numero da pagina (0 a 4095) , BUFFER_BYTE -> 0 a 255        |
;| Saida: Dado no ACC                                                            |
;| Funcao : Permite a leitura diretamente das 4096 paginas na memoria principal  |
;|          sem precisar usar os buffers e deixando os dados dos buffers intactos|
;+-------------------------------------------------------------------------------+

_AT45_MAIN_PAGE_READ:

           push DPH                       ; salva DPTR
           push DPL

           mov a,DPH                      ; Filtra dptr para ir somente ate 4095
           anl a,#00001111B
           mov DPH,a

           clr C                          ; adequa o dptr da forma exigida pelo AT45cXX
           mov a,DPL
           rlc a
           mov DPL,a

           mov a,DPH
           rlc a
           mov DPH,a
         ;-
           clr CS_                       ; Habilita a Data-Flash

           mov a,#52H                    ; Comando MAIN MEMORY PAGE READ
           call _AT45_MASTER_IO

           mov a,DPH
           call _AT45_MASTER_IO          ; Manda parte alta da pagina

           mov a,DPL
           call _AT45_MASTER_IO          ; Manda parte baixa da pagina

           mov a,BUFFER_BYTE             ; Manda byte buffer
           call _AT45_MASTER_IO

           call _AT45_MASTER_IO          ; 4 Bytes irrelevantes,mas requeridos

           call _AT45_MASTER_IO          ;

           call _AT45_MASTER_IO          ;

           call _AT45_MASTER_IO          ;

           call _AT45_MASTER_IO          ; Dado no ACC

           SETB CS_

           pop DPL                       ; Recupera DPTR
           pop DPH

           ret



;+--------------------------------------------------------+
;| Rotina: BUFFER 1 READ                                  |
;| Entradas: BUFFER_BYTE -> 0 a 255                       |
;| Saida: Dado no Acc                                     |
;| Funcao : Le diretamente no Buffer 1 de 256 bytes       |
;+--------------------------------------------------------+

_READ_BUFFER1:

           clr CS_                        ; Habilita a Data-Flash

           mov a,#54H                     ; Comando:
           call _AT45_MASTER_IO          ; BUFFER 1 READ

           mov a,#0
           call _AT45_MASTER_IO          ; Byte irrelevante


           mov a,#0
           call _AT45_MASTER_IO          ; Byte irrelevante

           mov a,BUFFER_BYTE             ; Endereco do byte
           call _AT45_MASTER_IO

           call _AT45_MASTER_IO          ; Byte irrelevante

           call _AT45_MASTER_IO          ; Pega o byte lido e coloca em A

           setb CS_                      ; Desabilita a Data-Flash

           ret


;+--------------------------------------------------------+
;| Rotina: BUFFER 2 READ                                  |
;| Entradas: BUFFER_BYTE -> 0 a 255                       |
;| Saida: Dado no Acc                                     |
;| Funcao : Le diretamente no Buffer 2 de 256 bytes       |
;+--------------------------------------------------------+

_READ_BUFFER2:

           clr CS_                        ; Habilita a Data-Flash

           mov a,#56H                     ; Comando:
           call _AT45_MASTER_IO          ; BUFFER 2 READ

           mov a,#0
           call _AT45_MASTER_IO          ; Byte irrelevante


           mov a,#0
           call _AT45_MASTER_IO          ; Byte irrelevante

           mov a,BUFFER_BYTE              ; Endereco do byte
           call _AT45_MASTER_IO

           call _AT45_MASTER_IO          ; Byte irrelevante

           call _AT45_MASTER_IO          ; Pega o byte lido e coloca em A

           setb CS_                       ; Desabilita a Data-Flash

           ret



;+-------------------------------------------------------------------------------+
;| Rotina: MAIN MEMORY PAGE PROGRAM THROUGH BUFFER 1 e 2                         |
;| Entradas: DPTR -> Numero da pagina (0 a 4095) , BUFFER_BYTE -> 0 a 255        |
;|           Dado a ser gravado no ACC                                           |
;| Funcao : Permite a escrita diretamente das 4096 paginas na memoria principal  |
;|          passando pelos buffers 1 ou 2                                        |
;+-------------------------------------------------------------------------------+

_AT45_MAIN_PAGE_WRITE_B1:

           push DPL
           push DPH

           push acc                       ; Guarda dado

           mov a,DPH                      ; Filtra dptr para ir somente ate 4095
           anl a,#00001111B
           mov DPH,a

           clr C                          ; adequa o dptr da forma exigida pelo AT45cXX
           mov a,DPL
           rlc a
           mov DPL,a

           mov a,DPH
           rlc a
           mov DPH,a
         ;-
           clr CS_                        ; Habilita a Data-Flash

           mov a,#82H                     ; Comando:
           call _AT45_MASTER_IO          ; MAIN MEMORY PAGE PROGRAM THROUGH BUFFER 1

           mov a,DPH
           call _AT45_MASTER_IO          ; Manda parte alta da pagina

           mov a,DPL
           call _AT45_MASTER_IO          ; Manda parte baixa da pagina

           mov a,BUFFER_BYTE              ; Manda byte buffer
           call _AT45_MASTER_IO

           pop acc                        ; Recupera dado

           call _AT45_MASTER_IO          ; grava na memoria

           setb CS_                       ; Desabilita a Data-Flash


           call _AT45_GET_STATUS         ; Verifica se esta pronto

           pop DPH
           pop DPL

           ret

;+-----------------------------------------------------------+
;| Esta rotina faz o mesmo que a acima, porem com o buffer 2 |
;+-----------------------------------------------------------+

_AT45_MAIN_PAGE_WRITE_B2:

           push DPL
           push DPH

           push acc

           mov a,DPH                      ; Filtra dptr para ir somente ate 4095
           anl a,#00001111B
           mov DPH,a

           clr C                          ; adequa o dptr da forma exigida pelo AT45cXX
           mov a,DPL
           rlc a
           mov DPL,a

           mov a,DPH
           rlc a
           mov DPH,a
         ;-
           clr CS_                        ; Habilita a Data-Flash

           mov a,#85H                     ; Comando:
           call _AT45_MASTER_IO          ; MAIN MEMORY PAGE PROGRAM THROUGH BUFFER 2

           mov a,DPH
           call _AT45_MASTER_IO          ; Manda parte alta da pagina


           mov a,DPL
           call _AT45_MASTER_IO          ; Manda parte baixa da pagina


           mov a,BUFFER_BYTE              ; Manda byte buffer
           call _AT45_MASTER_IO

           pop acc                        ; Recupera dado

           call _AT45_MASTER_IO          ; grava na memoria

           setb CS_                       ; Desabilita a Data-Flash

           call _AT45_GET_STATUS         ; Verifica se esta pronto

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产另类精品专区| 欧美在线观看视频在线| 欧美va亚洲va香蕉在线| 麻豆精品一区二区综合av| 欧美一区中文字幕| 国产美女在线观看一区| 中文无字幕一区二区三区| 成人av中文字幕| 一区二区三区在线免费播放| 欧美日韩国产综合草草| 久久福利视频一区二区| 久久精品一区二区三区av| av高清久久久| 亚洲综合色区另类av| 欧美一区二区精品| 国产成人精品影院| 亚洲欧美精品午睡沙发| 9191精品国产综合久久久久久| 久久精品国产在热久久| 国产精品美女久久久久久2018| 欧美在线影院一区二区| 另类中文字幕网| 亚洲欧美日韩久久精品| 91精品国产一区二区人妖| 国产91精品欧美| 亚洲国产aⅴ天堂久久| 久久影院视频免费| 欧美午夜电影在线播放| 国产精品资源在线看| 亚洲精品第1页| 久久天堂av综合合色蜜桃网| 91小视频免费看| 久久99精品国产.久久久久| 亚洲欧洲精品天堂一级| 日韩一区二区三区电影| 99久久精品久久久久久清纯| 日韩经典中文字幕一区| 自拍av一区二区三区| 日韩精品一区二区三区视频 | 天堂久久久久va久久久久| 久久久国产综合精品女国产盗摄| 欧美在线啊v一区| 成人性生交大片免费看视频在线 | 丰满放荡岳乱妇91ww| 丝袜亚洲另类丝袜在线| 亚洲素人一区二区| 精品国产乱码91久久久久久网站| 色综合天天狠狠| 国产精品99久久久久久久女警| 香蕉成人伊视频在线观看| 国产精品美女一区二区在线观看| 欧美成人a在线| 欧美一区二区视频网站| 日本韩国视频一区二区| 国产成人综合在线观看| 美国三级日本三级久久99| 一区二区三区日韩| 最近日韩中文字幕| 中文字幕巨乱亚洲| 欧美大片拔萝卜| 91精品国产一区二区三区| 欧美色男人天堂| 91美女蜜桃在线| 91年精品国产| 成人听书哪个软件好| 国产白丝网站精品污在线入口| 另类专区欧美蜜桃臀第一页| 日本aⅴ精品一区二区三区| 亚州成人在线电影| 亚洲自拍偷拍av| 亚洲大片精品永久免费| 亚洲自拍另类综合| 亚洲黄色尤物视频| 亚洲丝袜美腿综合| 亚洲乱码国产乱码精品精的特点 | 99久久精品免费| 99国产欧美另类久久久精品| 国产精品一线二线三线精华| 狠狠狠色丁香婷婷综合激情| 精品一区二区av| 美女诱惑一区二区| 精品在线一区二区| 国产麻豆精品在线观看| 粉嫩av亚洲一区二区图片| 国产成人av电影在线观看| 成人av一区二区三区| aaa亚洲精品一二三区| 91丨九色丨尤物| 欧美这里有精品| 制服丝袜中文字幕一区| 欧美不卡一区二区| 国产日产欧美一区二区三区| 国产精品美女一区二区在线观看| 亚洲视频 欧洲视频| 亚洲精品视频自拍| 亚洲国产综合视频在线观看| 亚洲gay无套男同| 免费成人在线视频观看| 国产精品系列在线观看| 成人精品国产一区二区4080| 91视频观看免费| 欧美一区二区免费观在线| 久久久精品综合| 最新高清无码专区| 日韩黄色免费电影| 国产成人av在线影院| 99综合电影在线视频| 国产片一区二区| 亚洲色图清纯唯美| 五月激情综合婷婷| 国产在线播精品第三| 成人一级片网址| 欧美日韩一区二区三区免费看| 日韩免费高清av| 中文字幕视频一区| 亚州成人在线电影| 成人动漫一区二区三区| 欧美视频在线不卡| 国产日韩精品久久久| 亚洲成人免费在线| 成人网页在线观看| 欧美一区二区三区日韩视频| 欧美激情资源网| 毛片一区二区三区| 色综合久久综合网欧美综合网 | 国产三级一区二区| 亚洲成人777| 成人国产精品免费观看视频| 制服丝袜成人动漫| 亚洲欧美另类久久久精品| 久久av中文字幕片| 在线免费观看一区| 国产日韩亚洲欧美综合| 亚洲va欧美va国产va天堂影院| 不卡视频一二三| 久久伊人蜜桃av一区二区| 亚洲福利一区二区| 99精品视频在线免费观看| 精品国产乱码久久久久久久| 一区二区在线观看视频| 成人一级片网址| 久久久国产精品不卡| 热久久久久久久| 欧美视频自拍偷拍| 亚洲日本va在线观看| 国产一区二区三区国产| 欧美一区二区视频观看视频| 亚洲激情图片qvod| 99国内精品久久| 国产精品久久久久久久久免费樱桃 | 日韩精品福利网| 欧美日韩免费在线视频| 亚洲日本在线天堂| 成人av免费在线| 中文字幕第一区综合| 韩国成人福利片在线播放| 欧美日韩性生活| 亚洲综合激情网| 色噜噜久久综合| 中文字幕亚洲区| www.综合网.com| 国产精品动漫网站| 9色porny自拍视频一区二区| 国产精品久久毛片a| 成人精品免费视频| 国产精品青草综合久久久久99| 精品一区二区久久久| xfplay精品久久| 国产精品一区在线观看乱码| 久久久久综合网| 国产成人自拍高清视频在线免费播放| 精品国一区二区三区| 久久成人羞羞网站| 久久综合九色综合欧美就去吻| 精品一二三四区| 国产欧美一区二区三区沐欲| 国产成人综合亚洲91猫咪| 国产精品久久久久久久岛一牛影视 | 久久99久久精品| 久久久午夜电影| 成人一二三区视频| 亚洲嫩草精品久久| 欧美一区二区三区小说| 国产成人免费9x9x人网站视频| 亚洲综合免费观看高清完整版 | 51午夜精品国产| av电影在线观看一区| 91丝袜高跟美女视频| 日韩精品乱码免费| 亚洲欧美日本韩国| 国产精品理论片在线观看| 亚洲欧洲制服丝袜| 久久久久久久综合日本| 成人永久aaa| 亚洲一二三区不卡| 欧美r级在线观看| av一本久道久久综合久久鬼色| 亚洲在线视频一区| 亚洲精品一区二区精华| 99久久综合99久久综合网站|