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

📄 testdj.asm

📁 上课老师给的8086仿真器
💻 ASM
字号:
 ;P1.0为控制制电机转速,接电机输入端DJ,P3.4为转速测量端接DJ_OUT
 ;50H 设 转速,若设2000转/分,则输入20H
 ;内程序内数据下运行
 ORG 0000H
 AJMP CONT
 ORG 001BH
 AJMP T1_INT
 ORG 0030H
CONT:	MOV SP,#53H
	MOV TMOD,#15H
	MOV TH0,#00H
	MOV TL0,#00H
        MOV TH1,#0FFH         ;0.5MS
        MOV TL1,#06H
        MOV 30H,#0H
	SETB TR0
        SETB TR1
        SETB ET1
        SETB EA

        MOV 79H,#00H
        MOV 7AH,#00H
        MOV 7BH,#00H
        MOV 7CH,#00H
        MOV 7DH,#00H
        MOV 7EH,#00H
CONT1:
       LCALL DISP
       SJMP CONT1
;****************************************
CONT2:	CLR A                        ;二进制转十进制
	MOV R4,A
	MOV R5,A
	MOV R6,A
	MOV R7,#10H
CONT3:	CLR C
	MOV A,R3
	RLC A
	MOV R3,A
	MOV A,R2
	RLC A
	MOV R2,A
	MOV A,R6
	ADDC A,R6
	DA A
	MOV R6,A
	MOV A,R5
	ADDC A,R5
	DA A
	MOV R5,A
	MOV A,R4
	ADDC A,R4
	DA A
	MOV R4,A
	DJNZ R7,CONT3
	RET
PWOR:	MOV R1,A                      ;送显示缓冲
	LCALL PWOR1
	MOV A,R1
	SWAP A
PWOR1:	ANL A,#0FH
	MOV @R0,A
	INC R0
	RET
;*****************************************************
T1_INT: PUSH ACC
        PUSH PSW
        MOV TH1,#0FFH
        MOV TL1,#06H

        ;CLR P1.0
        ;CPL P1.0
        INC 30H
       INC 31H

        MOV A,31H

        CJNE A,40h,Q1
        CLR P1.0
Q1:     CJNE A,41h,Q2
        SETB P1.0
        MOV 31H,#00H
Q2:     MOV A,30H
        CJNE A,#0C8H,QUIT       ;200
        MOV 30H,#0H
        INC 32H
        MOV A,32H
        CJNE A,#10,QUIT         ;10

RDT0:   CLR TR0               ;  读计数器值
        MOV A,TH0
        MOV R3,TL0
        CJNE A,TH0,RDT0
        MOV R2,A
        CLR C
        LCALL X5
        CPL P1.1
        LCALL CONT2
        MOV R0,#79H
	MOV A,R6                 ;
	LCALL PWOR
	MOV A,R5             ;为实际转速中间二位
        mov 51h,a
        CJNE A,50H,Q3

        AJMP Q5
        ;SETB C
 Q3:    JC Q4          ;<=50H         (50HX100)为设置转速
        DEC 40H
        AJMP Q5
Q4:     INC 40H
Q5:    	LCALL PWOR
	MOV A,R4                  ;转速的低二位
	LCALL PWOR
        MOV TH0,#0H
        MOV TL0,#0H
        MOV 32H,#0H
        SETB TR0
  QUIT: POP PSW
       POP ACC
       RETI
 ;*********************************
 X5:    CLR C                     ;将R2,R3中的计数值X5
        MOV A,R3
        RLC A
        MOV R5,A
        MOV A,R2
        RLC A
        MOV R4,A
        CLR C
        MOV A,R5
        RLC A
        MOV R5,A
        MOV A,R4
        RLC A
        MOV R4,A
        MOV A,R5
        ADD A,R3
        MOV R3,A
        MOV A,R4
        ADDC A,R2
        MOV R2,A
        RET
;*****************************************

;*****************************************
DISP:	SETB 0D4H
	MOV R1,#7EH
	MOV R2,#20H
	MOV R3,#00H
DISP1:	MOV DPTR,#0FF21H
	MOV A,R2
	MOVX @DPTR,A
	MOV DPTR,#CDATA
	MOV A,@R1
	MOVC A,@A+DPTR
	MOV DPTR,#0FF22H
	MOVX @DPTR,A
DISP2:	DJNZ R3,DISP2
        DEC R1
	CLR C
	MOV A,R2
	RRC A
	MOV R2,A
	JNZ DISP1
	MOV A,#0FFH
	MOV DPTR,#0FF22H
	MOVX @DPTR,A
	CLR 0D4H
	RET
CDATA:	DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
	DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
	END

⌨️ 快捷键说明

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