ch12_s5.asm

来自「51单片机基础篇 对于有一定基础的人看看 包含书中所以的源代码」· 汇编 代码 · 共 55 行

ASM
55
字号
     ;FILENAME S5.ASM
     ;
     BUZZER  REG     	P3.4
     LED     REG     	P3.7
     ;
             ORG     	0000H
             LJMP    	RESET
             ORG     	0023H
             LJMP    	SIOISR
     ;
     RESET   MOV     	R0,#00H
             DJNZ    	R0,$
             CLR     	LED
             CLR     	BUZZER
     ;
     START   MOV     	SP,#3FH
             LCALL   	INIT_SIO
     STEP1   MOV     	20H,#00H
             CLR     	F0
     STEP2   SETB    	REN             	;SET RECEIVE ENABLE
     STEP3   SETB    	PS              	;SERIAL INTERRUPT HIGHER PRIORITY
             SETB    	ES              	;ENABLE SERIAL INTERRUPT
     STEP4   CLR     	RI              	;CLEAR RI
             CLR     	TI              	;CLEAR TI
     STEP5   SETB    	EA              	;ENABLE SYSTEM INTERRUPT
     ;
     MAIN                            		;MAIN ROUTINE START
             INC     	20H
             LCALL   	DELAY
             JNB     	F0,MAIN         	;LOOP AGAIN
     ;
     STOP    SETB    	BUZZER
             SJMP    	STOP            	;DISABLE SERIAL INTERRUPT
     ;
     SIOISR  JNB     	RI,ISREND
             MOV     	A,SBUF          	;READ CHARACTER FROM SBUF
             CLR     	RI
             CLR     	TI
             MOV     	SBUF,A          	;ECHO BACK
             CJNE    	A,#'!',ISREND
             SETB    	F0
     ISREND RETI
     ;
     INIT_SIO
             MOV     	TMOD,#00100000B	        ;TIMER 1 MODE 2
             MOV     	TH1,#FDH        	;BAUD RATE=9600b/s
             SETB    	TR1             	;START TIMER 1
             MOV     	SCON,#01010000B	        ;ENABLE RECEIVE
             RET                     		;1 START,8 BITDATA,1 STOP BIT
     ;
     DELAY  MOV     	R0,#04H
             MOV     	R1,#00H
     DLY1   DJNZ    	R0,$
             DJNZ    	R1,DLY1
             RET

⌨️ 快捷键说明

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