微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > DMA异步写汇编程序示例.ASM

DMA异步写汇编程序示例.ASM

时间:10-02 整理:3721RD 点击:

  1. ;-----------------------------------------------------------------------------------------
  2. ;        异步写模块: 从模块读数据从串口发出
  3. ;-------------------------------------------------------------------------------------   
  4.                PWR         EQU     5
  5.            PRD         EQU     6
  6.            PWAIT       EQU     7
  7.            DMAING      EQU     0
  8.            DMADIR      EQU     1
  9.            FIFOEMPTY   EQU     2
  10.            FIFOFULL    EQU     3
  11.            DMACS       EQU     4
  12.            DMAOE       EQU     5
  13.            PKTEND      EQU     6
  14.                    DMAWR       EQU     6
  15.                    DMARD       EQU     7
  16. ;-----------------------------------------------------------------------------         
  17.            ORG      0000H
  18.            AJMP     MAIN
  19.            ORG      0040H
  20. MAIN:      MOV      TMOD,     #20H            ;TIMER1工作与8位自装载模式
  21.            MOV      SCON,     #60H                 ;串口工作与模式1
  22.            MOV      PCON,     #00H
  23.            MOV      TL1,      #0FDH                 ;波特率9600
  24.            MOV      TH1,      #0FDH
  25.            CLR      EA
  26.            MOV      SP,        #70H
  27.            SETB     TR1
  28.                    MOV      DPTR,       #0CFFFH                                  ;为不影响P2口,写地址为0CFFF,此处也可用
  29. ;----------------------------------------------------------
  30. WAITRX:    CLR      P3.DMACS
  31.            JNB      P2.DMAING,  WAITRX
  32.            JB       P2.DMADIR,    WAITRX
  33.            JNB      P2.FIFOEMPTY,  WAITRX
  34.            CLR      P2.DMAOE
  35.            NOP
  36.                    MOVX     A,     @DPTR                                         ;此处也可用 MOVX  A, @R0指令,此时写地址为0FF,
  37.                    NOP
  38.                    MOV      SBUF,   A
  39.                    ACALL    DELAY1MS
  40.                    AJMP     WAITRX
  41. ;---------------------------------------------------------
  42. DELAY1MS:  MOV      R3,   5
  43. DELAY1:    MOV      R4,   100
  44. DELAY0:           DJNZ     R4,   DELAY0
  45.            DJNZ     R3,   DELAY1
  46.                    RET
  47. ;---------------------------------------------------------          
  48.            END

复制代码

支持分享                                    

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top