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

📄 电动机转速测量与控制.asm

📁 单片机程序具体实现电动机的转速测量.
💻 ASM
字号:
 	org 0000h
	ljmp main
	
	org 0003h
	ljmp in0
	
	org 000bh
	ljmp irt0

	org 0013h
	ljmp in0
;8279初始化
main:mov sp,#60h
	mov dptr,#5fffh
	mov a,#0dch
	movx @dptr,a
LP: MOVX A,@DPTR
    JB ACC.7,LP
	mov a,#00h
	movx @dptr,a
	mov a,#34h
	movx @dptr,a
;8279初始化	
	setb ea     ;开中断

	mov r0,#39h
	mov r7,#06h
 LLP:mov @r0,#0ffh ;0ff->39-3E
	inc r0
	djnz r7,LLP
qc10:lcall DESY  ;显示转速
	 ljmp qc10
;初始化T0'
	mov th0,#3Ch
	mov tL0,#0B0h
	mov tmod,#01h ;使用T0
	mov ip,#02h   ;开T0中断
	mov ie,#87h
	
	mov 30h,#02h
	mov 40h,#14h ;记录T0中断次数,1s
	mov 41h,40h ;调节电压,使达到设定值
	mov 42h,#00h ;存放转速
	mov 31h,#0ah ;每10个脉冲,p1.0求反
	mov 35h,#00h
	

	setb it0
	setb tr0 ;T0运行控制
	setb ex1


;读入键值 每次输入2位

	
;记录转速
IN0:PUSH ACC
	PUSH DPH
	PUSH DPL
    INC 42H
	DJNZ 31H,RT1
 	MOV 31H,#0AH
	CPL P1.0 ;10个脉冲取反一次
RT1:POP DPL
	POP DPH
	POP ACC
	RETI

;求1s内的转速

IRT0:PUSH ACC
	PUSH DPH
	PUSH DPL
	
	MOV TL0,#0b0H
	MOV TH0,#3CH
	
	DJNZ 40H,RT2
	MOV 40H,#14H
	CPL P1.0 ;取反  
	MOV A,42H ;1s内脉冲数送往A
	MOV 42H,#00H
	MOV B,#0AH
	DIV AB    ;除10
	MOV 39H,B ;保存转速低位
	MOV 50H,B
	
	MOV B,#0AH
	DIV AB
	MOV 3AH,B ;保存转速高位 
    CALL DESY
    MOV A,3AH
	SWAP A
  
 ;转速判断
	ORL A,50H
	MOV 45H,A ;45是转速
	MOV A,35H ;35是设定值
	SUBB A,45H
	JC DSP
	JZ RT2
	INC 41H
	LJMP PSD
DSP:DEC 41H
PSD:MOV A,41H
	MOV DPTR,#7FFFH
	MOVX @DPTR,A
	mov 42h,#0
RT2:POP DPL
	POP DPH
	POP ACC
	RETI
	
;七段码显示
DESY:MOV R2,#06H
	MOV A,#92H
	MOV DPTR,#5FFFH
	MOVX @DPTR,A
	MOV R0,#39H
TY11:MOV A,@R0
	MOV DPTR,#TAB1
	MOVC A,@A+DPTR
	MOV DPTR,#5EFFH
	MOVX @DPTR,A
	INC R0
	DJNZ R2,TY11
	RET

delay:	mov r7,#200
DL:		mov r6,#123
		nop
DL1:	djnz	r6,DL1
		djnz	r7,DL				
	
TAB1:DB 0C0H,0F9H,0A4H,0B0H,99H
	DB 92H,82H,0F8H,80H,90H,88H
	DB 83H,0C6H,0A1H,86H,8EH,8CH
	DB 0C1H,89H,0C7H,0BFH,91H
	DB 00H,0FFH

	END
	

⌨️ 快捷键说明

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