⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prac13_exdata flash.asm

📁 MSP430F449的AQ430 Practice Code
💻 ASM
字号:
#include  "msp430x44x.h"

.iar
;*********************************************************************
;MSP-Test44x Demo    LCD DISPLAY 
;
;                  MSP430F449
;             -----------------
;         /|\|              XIN|-  
;          | |                 |
;          --|RST          XOUT|-   ________
;            |                 |   |        |
;            |             P6.0|-->|   A    |
;            |             P6.1| . |   T    |
;            |             P6.2| . |   4    |
;            |             P6.3| . |   5    |
;            |             P6.4| . |   D    |
;            |             P6.5| . |   B    |
;            |             P6.6|-->|   0    |
;            |                 |   |   4    |        
;            |                 |   |   1    |
;                                  |________|
;
;//本实验是将TAB中的数据写入AT45DB041中
;//在将数据从AT45DB041读出,
;//并将数据放入250为首地址的RAM中
;----------------------------------------------------------------------------
;//---------RAM初始化----------------------------------------------------------
;----------------------------------------------------------------------------
rxtx12c     equ     301h                                      ;// 要发送的数据缓存
txrx12c     equ     302h                                      ;//要接收的数据缓存
addrpa1     equ     304h                                      ;//页被寻地址高地址字节
addrpa0     equ     303h                                      ;//;页被寻址低地址字节(末位为位地址)
addrba1     equ     305h                                      ;//;位被寻址低地址字节 
bit12c      equ     306h                                      ;//数据位计数寄存器
code        equ     307h                                      ;// 指令代码存储器
pout_data   equ     308h                                      ;// 要发送的数据个数
pin_data    equ     309h                                      ;// 要接收的数据个数
rx_point    equ     310h                                      ;//接收数据存放地址寄存器   
tx_point    equ     312h                                      ;//发送数据存放地址寄存器
  
;-----------------------------------------------------------------------------
;//----------  端口定义----------------------------------------------------------
;-----------------------------------------------------------------------------
wp          equ     001h                                      ;P6.0 WP
rset        equ     002h                                      ;P6.1 RESET                               
rd_busy     equ     004h                                      ;P6.2 RD_BUSY
so          equ     008h                                      ;P6.3 SO
si          equ     010h                                      ;P6.4 SI
sck         equ     020h                                      ;P6.5 SCK
cs          equ     040h                                      ;P6.6 CS
;----------------------------------------------------------------------------- 
;//----------  程序开始处--------------------------------------------------------
;-----------------------------------------------------------------------------
            .pseg code, abs=01100h  
RESET       mov.w   #0a00h,SP                                 ;// 指定堆栈开始处
Init_Sys    mov.w   #WDTPW+WDTHOLD,&WDTCTL                    ;// 禁止看门狗
            bis.b   #SELM_A+FLL_DIV_8,&FLL_CTL1               ;//时钟初始化
main              
            bic.b   #si+so+cs+wp+rset+sck+rd_busy,&P6DIR;     ;//端口初始化
            bic.b   #si+so+cs+wp+rset+sck+rd_busy,&P6SEL
            bis.b   #rset+wp+cs+sck,&P6DIR                    ;//WP,RESET ,cs ,sck置高
            bis.b   #rset+wp+cs+sck,&P6OUT
            clr.b   r14                                    
            
           
            mov.w   #250h,rx_point                            ;//接收数据存放地址首地址为250h
            mov.b   #0fh,pin_data                             ;//要接收数据个数为15个
            mov.b   #0fh,pout_data                            ;//要发送数据个数为15个

;------------------------------------------------------------------------------
;//----------写数据子程序 --------------------------------------------------------
;//将TAB中的15个数据写DATA FLASH--------------------------------------------------
;------------------------------------------------------------------------------ 
           
write_data  mov.b   #84h,code                                 ;//要执行的指令
            mov.b   #00h,addrpa1                              ;//要写入页高地址
            mov.b   #00h,addrpa0                              ;//要写入页低地址
            mov.b   #01ah,addrba1                             ;//要写入位低地址  
            bis.b   #cs,P6DIR                                 ;//选通cs
            mov.b   code,rxtx12c
            bic.b   #cs,P6OUT
            nop
            nop
            call    #DF_star                                  ;//启动AT45DB041      
            mov.b   addrpa1,rxtx12c
            call    #DF_tx                                    ;//写页高地址
            mov.b   addrpa0,rxtx12c
            call    #DF_tx                                    ;//写页低地址
            mov.b   addrba1,rxtx12c                           ;//写段地址(起始地址)
            call    #DF_tx
            mov     #tab,tx_point                             ;//要发送数据表格的首地址
            mov     &tx_point,R14                             ;//将首地址给R14
loop_tx1    
            mov.b   0(r14),&rxtx12c                           ;//将发送数据送入发送缓存
loop_tx2    
            call    #DF_tx                                    ;//发送数据 
            inc.w   r14
            dec.b   pout_data                                 
            jnz     loop_tx1                                  ;//判断是否发送完了                                
            call    #DF_stop                                  ;//完了,停止数据传输
;------------------------------------------------------------------------------------
;//-----------延时子程序----------------------------------------------------------------
;------------------------------------------------------------------------------------            
            mov     #0ffffh,r15
delay       dec.b   r15
            jnz     delay    
                  
;------------------------------------------------------------------------------------
;//读数据子程序

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -