dma

来自「DMA例程」· 代码 · 共 56 行

TXT
56
字号
;************************************************************
;         以下程序:单片机向主机不断发送88—FF八个字符
;**************************************************************	
		   JISHU      EQU     10H 	 
		   PWR         EQU     5
           PRD         EQU     6
           PWAIT       EQU     7
           DMAING      EQU     0
           DMADIR      EQU     1
           FIFOEMPTY   EQU     2
           FIFOFULL    EQU     3
           DMACS       EQU     4
           DMAOE       EQU     5
           PKTEND      EQU     6
           DMAWR       EQU     6
	   DMARD       EQU     7
         						         						   
;*************************************************************************************
           ORG      0000H
           AJMP     MAIN
		   ORG      0040H
MAIN:      MOV      SP,       #58H
           MOV      DPTR,     #0FFFFH	 //为了不影响P2口,读地址为0FF00—0FFFF
           MOV      JISHU,    #40H
           CLR      P3.DMACS  
WAITTX:    JNB      P2.DMAING,  WAITTX
           JNB      P2.DMADIR,    WAITTX
           JNB      P2.FIFOFULL,  WAITTX
FASONG:    MOV      A,        #88H
           MOVX     @DPTR,      A	 //此处也可用:MOVX  @R0,A 此时读地址为00—FF
		   NOP
		   MOV      A,        #99H
		   MOVX     @DPTR,      A
		   NOP
		   MOV      A,        #0AAH
		   MOVX     @DPTR,      A
		   NOP
		   MOV      A,        #0BBH
		   MOVX     @DPTR,      A
		   NOP
		   MOV      A,        #0CCH
		   MOVX     @DPTR,      A
		   NOP
		   MOV      A,        #0DDH
		   MOVX     @DPTR,      A
		   NOP
		   MOV      A,        #0EEH
		   MOVX     @DPTR,      A
		   NOP
		   MOV      A,        #0FFH
		   MOVX     @DPTR,      A
		   DJNZ     JISHU,    FASONG   ;判断是否发够512个字节
		   AJMP     WAITTX
		   END                

⌨️ 快捷键说明

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