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

📄 dianji1.asm

📁 几种实现电机调速方法的源程序
💻 ASM
字号:
       ORG 0000H
       AJMP MAIN
       ORG 0030H
  MAIN:
       ADDR8279_1 EQU    0BFFFH
       ADDR8279_2 EQU    0BFFEH
  
       MOV      DPTR,#ADDR8279_1
       MOV      A,#0D1H
       MOVX     @DPTR,A
  WAIT:MOVX     A,@DPTR
       JB       ACC.7,WAIT
       MOV      A,#00H
       MOVX     @DPTR,A
       MOV      A,#2CH
       MOVX     @DPTR,A
       
       CLR 00H 
       CLR 01H
CHAXUN:LCALL SEACH 
       JBC 00H,MAIN1 
       SJMP CHAXUN 
 MAIN1:SETB IT1
       SETB EA
       SETB EX1
ADC0809:MOV DPTR,#8100H     ;;ADC0809首址
       MOVX @DPTR,A        ;;启动AD转换
  HERE:SETB P1.0
       JNB  P1.0,SEVER1  
       SJMP HERE
SEVER1:MOVX A,@DPTR
       MOV R3,A
       MOV DPTR ,#8000H    ;D/A口地址 
       MOVX @DPTR,A  
       MOV R2,#00H
       MOV R7,#60H
       MOV R6,#09H
       LCALL MULD
       MOV  R7,#0FFH
       LCALL  DV31
       MOV A,R4 
       MOV R6,A 
       MOV A,R5 
       MOV R7,A 
       LCALL HB2
       MOV 35H,R5 
       MOV 34H,R4 
       ACALL TRANS
       LCALL LED
       LCALL SEACH 
       JBC 01H ,NEXT  
       AJMP  ADC0809 
 NEXT:MOV DPTR,#8000H
      MOV A,#00H
      MOVX @DPTR,A
      AJMP MAIN   
   
TRANS: MOV R0,#35H
       MOV R1,#30H
       MOV R6,#02H
  LAST:MOV      A,@R0
       ANL      A,#0FH
       MOV      @R1,A
       MOV      A,@R0
       ANL      A,#0F0H
       SWAP     A
       INC  R1
       MOV      @R1,A
       INC  R1
       DEC R0
       DJNZ R6,LAST
       RET   
   
   KEY:MOV  DPTR ,#ADDR8279_1
       MOV  A,#40H
	   MOVX @DPTR,A
	   MOV DPTR,#ADDR8279_2
	   MOVX A,@DPTR
	   ANL A,#3FH

       CJNE A,#0AH,KEY1             
       SETB 00H
       AJMP RETUN    
      
  KEY1:CJNE A,#0BH,RETUN 
       SETB 01H  
 RETUN:RET   
   
 
  
  
  
   ;;; (5)  标号: MULD    功能:双字节二进制无符号数乘法

;;入口条件:被乘数在R2、R3中,乘数在R6、R7中。
;;出口信息:乘积在R2、R3、R4、R5中。
;;;影响资源:PSW、A、B、R2~R7    堆栈需求:  2字节

MULD:	MOV	A,R3	;;;计算R3乘R7
	MOV	B,R7
	MUL	AB
	MOV	R4,B         ;;	;暂存部分积
	MOV	R5,A
	MOV	A,R3	  ;; ;计算R3乘R6
	MOV	B,R6
	MUL	AB
	ADD	A,R4	   ;;;;累加部分积
	MOV	R4,A
	CLR	A
	ADDC	A,B
	MOV	R3,A
	MOV	A,R2	;;;;计算R2乘R7
	MOV	B,R7
	MUL	AB
	ADD	A,R4	;;;;累加部分积
	MOV	R4,A
	MOV	A,R3
	ADDC	A,B 
	MOV	R3,A
	CLR	A
	RLC	A
	XCH	A,R2	;;;;计算R2乘R6
	MOV	B,R6
	MUL	AB
	ADD	A,R3	;;;;累加部分积
	MOV	R3,A
	MOV	A,R2
	ADDC	A,B
	MOV	R2,A
	RET
   ;; (9)  标号:  DV31    功能:三字节二进制无符号数除以单字节二进制数

;;;入口条件:被除数在R3、R4、R5中,除数在R7中。
;;出口信息:OV=0 时,双字节商在R4、R5中,OV=1 时溢出。
;;影响资源:PSW、A、B、R2~R7    堆栈需求:  2字节

DV31:	CLR	C
	MOV	A,R3
	SUBB	A,R7
	JC	DV30
	SETB	OV	;;;商溢出
	RET
DV30:	MOV	R2,#10H	      ;;;求R3R4R5/R7-→R4R5
DM23:	CLR	C
	MOV	A,R5
	RLC	A
	MOV	R5,A
	MOV	A,R4
	RLC	A
	MOV	R4,A
	MOV	A,R3
	RLC	A
	MOV	R3,A
	MOV	F0,C
	CLR	C
	SUBB	A,R7
	ANL	C,/F0
	JC	DM24
	MOV	R3,A
	INC	R5
DM24:	DJNZ	R2,DM23
	MOV	A,R3	            ;;四舍五入
	ADD	A,R3
	JC	DM25
	SUBB	A,R7
	JC	DM26
DM25:	INC	R5
	MOV	A,R5
	JNZ	DM26
	INC	R4
DM26:	CLR	OV
	RET            ;;; ;商在R4R5中 
  
 
 ;    (17)  标号: HB2   功能:双字节十六进制整数转换成双字节BCD码整数

;入口条件:待转换的双字节十六进制整数在R6、R7中。
;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
;;影响资源:PSW、A、R2~R7    堆栈需求:  2字节

HB2:	CLR	A	    ;;BCD码初始化
	MOV	R3,A
	MOV	R4,A
	MOV	R5,A
	MOV	R2,#10H	       ;;转换双字节十六进制整数
HB3:	MOV	A,R7                   ;	;从高端移出待转换数的一位到CY中
	RLC	A
	MOV	R7,A
	MOV	A,R6
	RLC	A
	MOV	R6,A
	MOV	A,R5	               ;;BCD码带进位自身相加,相当于乘2
	ADDC	A,R5
	DA	A	                  ;;;;;;十进制调整
	MOV	R5,A
	MOV	A,R4
	ADDC	A,R4
	DA	A
	MOV	R4,A
	MOV	A,R3
	ADDC	A,R3
	MOV	R3,A	                    ;;双字节十六进制数的万位数不超过6,不用调整
	DJNZ	R2,HB3                      ;	;处理完16bit
	RET 	
   
 
   LED:MOV      DPTR,#ADDR8279_1
       MOV      A,#90H
       MOVX      @DPTR,A
       MOV      R1,#30H
       MOV      R7,#04H
       MOV      DPTR,#ADDR8279_2
  LOOP:MOV      A,@R1
       ADD      A,#05H
       MOVC     A,@A+PC
       MOVX     @DPTR,A
       INC      R1
       DJNZ     R7,LOOP
       RET
       DB       3FH,06H,5BH,4FH,66H,6DH
       DB       7DH,07H,7FH,6FH  
SEACH:MOV      DPTR,#ADDR8279_1   
       MOVX     A,@DPTR
       ANL A,#07H
       JZ  RETUN4
       LJMP KEY
RETUN4:RET
END        
                      

⌨️ 快捷键说明

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