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

📄 uart串口通讯.asm

📁 关于ADUC841(51内核)的各种实验程序,有串口,ADC,DAC,PWM,的应用及基于ADUC841设计的万用表源程序
💻 ASM
字号:
       $MOD841
      SP0    EQU   50H
      CLK81  EQU   P3.5
      DAT81  EQU   P3.3
      SHUZI EQU    31H
      KEYVAL EQU   30H
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      ORG    0000H
      LJMP   MAIN
      ORG    0003H
      LJMP   SERVE1
      ORG    0023H
      LJMP   SERVE2
      ORG    0060H
MAIN:   MOV    R0,#0FH
        CLR    A
QING:   MOV    @R0,A
        DJNZ   R0,QING
        MOV    SP,#SP0
        LCALL  YS
;---------------------------------------
        LCALL  INI8281
        LCALL  INI841
HERE:    LJMP   HERE
;-------------------------------------
INI841: MOV    TMOD,#20H
        MOV    TL1,#0F3H
        MOV    TH1,#0F3H
        SETB   TR1
        SETB   EA
        SETB   EX0
        SETB   ES
        MOV    PCON,#00H
        MOV    SCON,#0D0H
        RET
;----------------------------------
INI8281:SETB   CLK81
        SETB   DAT81
        MOV    A,#12H
        LCALL  WTO81
        MOV    A,#80H
        LCALL  WTO81
        RET
;---------------------------------
SERVE1: MOV  A,#93H
        LCALL WTO81
        LCALL RDKVAL
        LCALL OUTPUT
        RETI
;------------------------------
SERVE2: CLR   TI
        JNB   RI,OVER1
        LCALL  INPUT
        LJMP   OVER1
OVER1:  RETI
OUTPUT: CLR   TI
        MOV   A,KEYVAL
        MOV   C,PSW.0
        MOV   TB8,C
        MOV   SBUF,A
        RET
;----------------------------
INPUT:  LCALL  QINGPING
        CLR    RI
        MOV    A,SBUF
        MOV    SHUZI,A
        JB     PSW.0,NEXT
        JB     RB8,ERR
        LJMP   RIGHT
NEXT:   JNB    RB8,ERR
RIGHT:  LCALL  XIANSHI1
        LJMP   OVER2
ERR:    LCALL  XIANSHI2
OVER2:  RET
;--------------------------
XIANSHI1:MOV   A,#15H
         LCALL  WTO81
         MOV   A,SHUZI
         ANL   A,#0F0H
         SWAP  A
         LCALL  WTO81
         MOV   A,#15H
         LCALL  WTO81
         MOV   A,SHUZI
         ANL   A,#0FH
         ORL   A,#10H
         LCALL  WTO81
         RET
;----------------------------
XIANSHI2:MOV   A,#07H
         LCALL  WTO81
         MOV   A,#89H
         LCALL  WTO81
         RET
;-------------------------
QINGPING:MOV    A,#16H
         LCALL  WTO81
         MOV    A,#00H
         LCALL  WTO81
         RET
;---------------------------
WTO81:	MOV	R6,#08H
WAT:	CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
	JB	DAT81,WAT
	CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
	JNB	DAT81,$
WTB81:	RLC	A
	MOV	DAT81,C
        CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
	LCALL	DELAY
	LCALL	DELAY
	DJNZ	R6,WTB81
	SETB	DAT81
        RET
;-----------------------------------
RDKVAL: CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
	JB	DAT81,$
        CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
        MOV	R6,#08H
RD1:
        LCALL	DELAY
        LCALL	DELAY
        LCALL	DELAY
        MOV	C,DAT81
	LCALL	DELAY
	RLC	A
        CLR	CLK81
	LCALL	DELAY
	SETB	CLK81
        DJNZ	R6,RD1
        MOV	KEYVAL,A
        RET
;---------------------------------
DELAY:  NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        RET
;----------------------------------------
YS:	MOV	R5,#00H
	MOV	R4,#50H
YS1:	DJNZ	R5,$
	DJNZ	R4,YS1
	RET
	END
























⌨️ 快捷键说明

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