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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? at45d0xx.inc

?? AT45dbxx data-flash memory routines in asm51
?? INC
?? 第 1 頁 / 共 2 頁
字號(hào):
;  +------------------------------------------------------------------------------+
;  | 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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品va在线观看| 亚洲国产日产av| 色综合夜色一区| 蜜桃精品视频在线| 日韩美女久久久| 26uuuu精品一区二区| 欧美亚洲动漫精品| 成人精品电影在线观看| 香蕉成人伊视频在线观看| 欧美国产亚洲另类动漫| 91精品国产一区二区人妖| 波多野洁衣一区| 国内成人自拍视频| 免费在线观看视频一区| 怡红院av一区二区三区| 国产精品美女久久久久久久 | 日欧美一区二区| 最新热久久免费视频| 久久久久国产精品厨房| 日韩精品一区在线| 欧美区一区二区三区| 色综合久久99| av激情成人网| www.成人网.com| 国产成人精品午夜视频免费| 精品一区免费av| 日本成人在线网站| 香蕉乱码成人久久天堂爱免费| 亚洲日本在线a| 国产精品视频你懂的| 国产午夜精品久久久久久免费视| 日韩欧美在线观看一区二区三区| 欧美久久久久免费| 欧美日本在线视频| 欧美日韩一区在线| 欧美日韩卡一卡二| 欧美日本一道本在线视频| 欧美色图激情小说| 欧美色老头old∨ideo| 欧美主播一区二区三区| 欧美视频一区在线观看| 欧美日韩免费电影| 3751色影院一区二区三区| 这里只有精品免费| 日韩免费一区二区| 国产亚洲美州欧州综合国 | 亚洲福利视频一区| 亚洲成人午夜影院| 日本不卡在线视频| 国产一区二区在线观看免费 | av亚洲精华国产精华| 91在线国产福利| 色94色欧美sute亚洲13| 欧美视频一区二区三区| 欧美男人的天堂一二区| 欧美一区二区网站| 久久综合久色欧美综合狠狠| 久久久久久久久蜜桃| 中文字幕 久热精品 视频在线| 中日韩av电影| 一区二区日韩av| 日本不卡一二三| 国产美女主播视频一区| aaa欧美色吧激情视频| 欧美性一二三区| 日韩视频在线观看一区二区| 国产亚洲精品中文字幕| 亚洲久草在线视频| 日韩成人精品在线| 大尺度一区二区| 欧美亚洲一区二区在线观看| 日韩一区二区影院| 国产精品免费人成网站| 一区二区三区不卡视频| 精品一区二区日韩| 99r国产精品| 91精品国产综合久久久蜜臀图片| 国产亚洲短视频| 亚洲久本草在线中文字幕| 日韩电影一二三区| 99精品国产热久久91蜜凸| 日韩一区二区影院| 国产精品第四页| 视频一区二区欧美| eeuss鲁一区二区三区| 91精品国产手机| 国产精品天干天干在线综合| 亚洲高清久久久| 丁香婷婷综合网| 欧美日韩激情一区二区| 欧美极品美女视频| 日本不卡高清视频| 色94色欧美sute亚洲线路一ni| 久久在线免费观看| 亚洲高清免费视频| www.在线成人| 欧美猛男gaygay网站| 国产精品黄色在线观看| 蜜臀99久久精品久久久久久软件| 91免费在线看| 久久久国产午夜精品| 五月天激情小说综合| 91免费观看国产| 久久久久久久电影| 麻豆精品在线视频| 欧美日韩一本到| 专区另类欧美日韩| 国产成人av影院| 日韩免费视频一区| 成人av电影在线观看| 精品日韩一区二区| 亚洲成人av免费| 在线观看网站黄不卡| 亚洲欧洲av另类| 丰满少妇在线播放bd日韩电影| 精品黑人一区二区三区久久 | 亚洲综合在线第一页| 成人免费视频播放| 久久亚区不卡日本| 人人狠狠综合久久亚洲| 欧美精品高清视频| 亚洲成av人片一区二区梦乃| 色老汉一区二区三区| 中文字幕在线观看不卡| 国产成人午夜99999| 久久色成人在线| 麻豆国产精品官网| 欧美va在线播放| 免费成人在线观看| 欧美一级久久久| 免费高清视频精品| 制服.丝袜.亚洲.中文.综合| 日日欢夜夜爽一区| 69久久99精品久久久久婷婷 | 亚洲国产综合视频在线观看| 色综合久久综合中文综合网| 亚洲男人的天堂av| 色综合激情五月| 亚洲一区二区五区| 欧美日韩中文字幕一区| 亚洲国产精品一区二区www| 欧美日韩电影在线播放| 午夜精品一区二区三区三上悠亚| 北条麻妃国产九九精品视频| 亚洲色图在线播放| 欧洲国内综合视频| 亚洲一区二区三区在线| 69p69国产精品| 麻豆成人久久精品二区三区红| 精品处破学生在线二十三| 国产一区欧美日韩| 国产精品免费久久久久| 在线观看国产一区二区| 午夜视频一区二区| 欧美一级二级在线观看| 国内精品伊人久久久久av影院 | 99精品视频免费在线观看| 99久久99久久精品免费看蜜桃 | 亚洲aaa精品| 国产成a人亚洲| 亚洲精品中文在线影院| 欧美日韩另类一区| 国产中文字幕精品| 国产精品久久久久久久久免费桃花| 99久久综合狠狠综合久久| 夜夜亚洲天天久久| 日韩精品一区二区三区swag| 国产成人福利片| 亚洲福利视频一区| 久久亚洲一区二区三区四区| 成人黄色777网| 亚洲成a人片在线观看中文| 欧美电影免费观看高清完整版在线 | 欧美电影在哪看比较好| 国产精品自拍网站| 依依成人精品视频| 555www色欧美视频| 大尺度一区二区| 日韩和的一区二区| 久久色在线观看| 欧美日韩一区二区在线观看视频 | 激情综合色综合久久综合| 国产精品欧美久久久久无广告| 欧美日韩在线播| 国产精品香蕉一区二区三区| 18涩涩午夜精品.www| 日韩欧美亚洲国产另类| 99久久免费视频.com| 看片的网站亚洲| 亚洲一区免费观看| 中文字幕巨乱亚洲| 制服.丝袜.亚洲.另类.中文 | 成人性生交大片免费看中文 | 视频一区免费在线观看| 中文字幕人成不卡一区| 日韩午夜在线播放| 欧美午夜理伦三级在线观看| 国产v综合v亚洲欧| 蜜桃久久av一区| 一区二区成人在线视频|