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

📄 text1.asm

📁 本科优秀毕业设计,倒车雷达,用单片机和c51实现的!
💻 ASM
字号:
        VOUT   EQU   P3.0
;
;***************************************************
;*           中断入口
;***************************************************
;

		ORG  0000H
      	     LJMP  START
		ORG  0003H
      	     LJMP  PINT0


;**************************************************
;                  主程序
;**************************************************
START: MOV  SP, #4FH
	   MOV  R0, #40H          ;40~47H为显示数据存放单元(40为最高位)
	   MOV  R7,#0FH
CLEARDISP:  MOV  @R0, #00H
            INC   R0
            DJNZ  R7, CLEARDISP
            


			MOV  20H, #00H
		    

			
			MOV  P0, #0FFH
			MOV  P1, #0FFH
            MOV  P2, #0FFH
            MOV  P3, #0FFH

			SETB  PX0
			SETB  EX0
			SETB  EA

		
START1:  LCALL  DISPLAY     
         JNB   00H, START1	  ;收到反射信号时标志位为1
		 CLR  EA
         LCALL  WORK		  ;计算距离子程序
		 



;

;
;外中断0,收到回波时进入
;
PINT0:     	CLR   EA								           
            CLR   EX0
            MOV  4AH, #069H	  ;将计数值移入处理单元
			MOV  4BH, #096H
            SETB  00H		  ;接收成功标志
            RETI

;**********************************
DISPLAY:    MOV R1,#40H 
			MOV R5,#07FH
PLAY:       MOV A,R5     
            MOV P0,#0FFH
			MOV P1,A
			MOV A,@R1

			MOV DPTR,#TABLE
            MOVC A,@A+DPTR 
            MOV P0,A   
			CALL DL1MS
            INC R1            
            MOV A,R5 
			JNB ACC.0,ENDOUT
            RR A                  
            MOV R5,A              
           	JMP PLAY
ENDOUT:     MOV P1,#0FFH
			MOV P0,#0FFH            
            
			RET                      ;显示完成,返回
;
TABLE:DB 03H,9FH,25H,0DH,99H,49H,41H,01FH,01H,09H,03H

;********************************
;延时程序
;********************************

DL1MS:      MOV R6,#14H
DL1:		MOV R7,#19H
DL2:  		DJNZ R7,DL2
			DJNZ R6,DL1

			RET

;**************************************************
;*     距离计算程序(=计算值×17/1000cm)  近似	  *
;**************************************************

WORK:PUSH	ACC
	 PUSH	PSW
     PUSH	B
	 MOV	PSW, #18H			;RS1=1,RS0=1
	 MOV	R3, 4BH
	 MOV	R2, 4AH
	 MOV	R1, #00D 
	 MOV	R0, #17D		    ;与17相乘
	 LCALL  MUL2BY2				;R7R6R5R4<=R3R2*R1R0
	 MOV	R3, #03H
	 MOV	R2, #0E8H
  	 LCALL	DIV4BY2				;R7R6R5R4/R3R2=R7R6R5R4(商)......R1R0(余数)
	 LCALL	DIV4BY2				;R7R6R5R4/R3R2=R7R6R5R4(商)......R1R0(余数)
	 MOV	44H, R4	
	 MOV	A, 44H
	 JNZ	JJ0					;A不等于0时,跳转
	 MOV	44H, #0AH           ;最高位为0,不点亮

JJ0: MOV	A,  R0
	 MOV	R4, A
	 MOV	A,  R1
	 MOV	R5, A
	 MOV    R3, #00D
	 MOV	R2, #100D
	 LCALL	DIV4BY2
	 MOV	45H, R4
	 MOV	A, 45H
 	 JNZ	JJ1
	 MOV	A, 44H              ;此高位为0,先看最高位是否为不亮
 	 SUBB	A, #0AH
	 JNZ	JJ1
	 MOV	45H, #0AH           ;最高位不亮,次高位也不亮

JJ1: MOV	A, R0
	 MOV	R4, A
	 MOV	A, R1
	 MOV	R5, A
	 MOV	R3, #00D
	 MOV	R2, #10D
	 LCALL DIV4BY2
	 MOV	46H, R4
	 MOV	A,  46H	
	 JNZ	JJ2
	 MOV	A, 45H         ;次高位为0,先看次高位是否为不亮
 	 SUBB	A, #0AH
	 JNZ	JJ2
	 MOV	46H, #0AH      ;次高位不亮,次高位也不亮

JJ2: MOV	47H, R0
	 POP	B
	 POP	PSW
	 POP	ACC
	
	RET  

;************************************
;*      两字节无符号数乘法程序		*
;************************************
;R7R6R5R4<=R3R2*R1R0
;16次叠加R3R2运算,主要是移位
MUL2BY2: CLR	A
	     MOV	R7, A
		 MOV	R6, A
		 MOV    R5, A
		 MOV	R4, A
		 MOV	4CH, #10H
MULLOOP1:CLR	C
		 MOV	A, R4
		 RLC	A
		 MOV	R4, A
		 MOV	A,	R5
		 RLC	A
		 MOV	R5, A
		 MOV	A, R6
		 RLC	A
		 MOV	R6, A
		 MOV	A, R7
		 RLC	A
		 MOV    R7, A
		 MOV    A, R0
		 RLC    A
		 MOV	R0, A
		 MOV	A, R1
		 RLC	A
		 MOV	R1, A
		 JNC	MULLOOP2
		 MOV	A, R4
		 ADD	A, R2
		 MOV	R4, A
		 MOV	A, R5
		 ADDC	A, R3
		 MOV	R5, A
		 MOV	A, R6
		 ADDC	A, #00H
		 MOV	R6, A
		 MOV	A, R7
		 ADDC	A, #00H
		 MOV	R7, A
MULLOOP2:DJNZ	4CH, MULLOOP1
	
	RET


;**************************************
;*   四字节/两字节无符号数除法程序	  *
;**************************************
;R7R6R5R4/R3R2=R7R6R5R4(商)......R1R0(余数)

DIV4BY2: MOV	4CH, #20H
		 MOV	R0,	#00H
		 MOV	R1, #00H

DIVLOOP1:MOV	A, R4
         RLC	A
		 MOV	R4, A
		 MOV	A, R5
		 RLC	A
		 MOV	R5, A
		 MOV	A, R6
		 RLC	A
		 MOV	R6, A
		 MOV	A, R7
		 RLC	A
		 MOV	R7, A
		 MOV	A, R0
		 RLC	A
		 MOV	R0, A
		 MOV	A, R1
		 RLC	A
		 MOV	R1, A 
		 CLR	C
		 MOV	A, R0
		 SUBB	A, R2
		 MOV	B, A
		 MOV    A, R1
	 	 SUBB	A, R3
		 JC		DIVLOOP2
		 MOV	R0, B
		 MOV	R1, A
	
DIVLOOP2:CPL	C
	 	 DJNZ	4CH, DIVLOOP1
		 MOV	A, R4
		 RLC	A
		 MOV	R4,	A
		 MOV	A,	R5
		 RLC	A
		 MOV	R5,	A
		 MOV	A, R6
         RLC	A
		 MOV	R6, A
		 MOV	A, R7
		 RLC	A
		 MOV	R7, A
	
	RET
END

⌨️ 快捷键说明

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