pid1.asm

来自「RPR200测电机转速」· 汇编 代码 · 共 62 行

ASM
62
字号
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP JSH
ORG 000BH
LJMP RSH
ORG 001BH
LJMP PWM

MAIN:   MOV  A,#0H                ;初始化转速值
	MOV  R0,A
	MOV TCON,#01H              ;设置外部中断0为边沿触发,
	MOV TMOD,#11H             ;T0,T1工作方式1,定时器
	MOV TL0,#0B0H             ;T0低8位初值
	MOV TH0,#3CH              ;T0高8位初值
	MOV IE,#83H               ;ET0,EX0开中断,并开总中断
	SETB TR0                  ;启动T0,开始计数!!
	MOV R5,#20                ;软件计数器初值,作用即50ms*20
HALT:	SJMP $
JSH:	MOV A,R0
	ADD A,#01H
	MOV R0,A
	RETI
	
RSH:	SETB P1.0
	MOV TL1,#0B0H
	MOV TH1,#6CH
	SETB ET1
	SETB TR1
	DJNZ R5,NEXT      
	CLR EA                   ;关中断
BCD:	MOV A,R0                 ;r3,r2,r1依次为高位到低位
	MOV B,#100
	DIV AB
	MOV R3,A
	MOV A,#10
	XCH A,B
	DIV AB
	ORL A,#10H
	MOV R2,A
	MOV A,B
	ORL A,#20H
	MOV R1,A
	MOV A,#00H
	MOV R0,A
	MOV R5,#20
	ACALL NEXT
	SETB EA
L:	MOV P2,R1
	MOV P2,R2
	MOV P2,R3
	SJMP L     
NEXT:	MOV TL0,#0B0H              ;重新装初值
	MOV TH0,#3CH     
	RETI
	
PWM:	CLR EA
	CLR P1.0
	SETB EA
	RETI
	END 

⌨️ 快捷键说明

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