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

📄 电压频率vf转换应用.txt

📁 是我在电子竞赛期间写的一些单片机汇编程序
💻 TXT
字号:
 电压频率VF转换应用
             ORG    0000H
            LJMP   MAIN               ;转主程序
            ORG    001BH
            LJMP   TIME               ;转中断服务子程序
            
            ORG    0100H
    MAIN   MOV    SP,#53H            ;设堆栈指针
            MOV    TMOD,#15H
            MOV    TH1,#3CH
            MOV    TL1,#0B7H          ;定时器1初始化
            MOV    TL0,#00H
            MOV    TH0,#00H           ;计数器0初始化
            MOV    23H,#14H    
            ORL    IE,#8AH
            MOV    TCON,#50H          ;启动T0、T1
    LOOP1  LJMP   LOOP1
            
            ORG    0200H
    TIME   DJNZ   23H,LOOP2          ;1秒不到退出
            MOV    23H,#14H
            MOV    40H,TH0
            MOV    41H,TL0            ;取出TH0.TL0内容
            MOV    R2,40H    
            MOV    R3,41H             ;计数脉冲取出
            LCALL  ZOYO               ;调二转十进制子程序
            LCALL  SSEE               ;调用显示子程序
            MOV    TL0,#00H
            MOV    TH0,#00H           ;重新计数
    LOOP2  MOV    TL1,#0B7H    
            MOV    TH1,#3CH           ;恢复初值
            RETI
    
            ORG    0300H
    ZOYO   CLR    A
            MOV    R4,A
            MOV    R5,A
            MOV    R6,A               ;0送R4 R5 R6
            MOV    R7,#10H            ;16送位计数器R7
     LO3O  CLR    C                  ;R2 R3左移.移出的 
            MOV    A,R3               ;最高位送CY
            RLC    A
            MOV    R3,A
            MOV    A,R2
            RLC    A
            MOV    R2,A
            MOV    A,R6
            ADDC   A,R6               ;(R4 R5 R6)﹡2+CY送R4 R5 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,LO3O            ;循环16次
            RET

            ORG    0400H
    SSEE   MOV    A,R6
            ANL	    A,#0FH         
			    ACALL	DSEND			     ;取个位数并显示
		 	    MOV	 A,R6
			    SWAP	 A
			    ANL	 A,#0FH			
			    ACALL	 DSEND			     ;取十位数并显示
             MOV    A,R5
             ANL	 A,#0FH         
			    CALL	 DSEND			     ;取百位数并显示	
		 	    MOV	 A,R5
			    SWAP	 A
			    ANL	 A,#0FH				
		        ACALL	 DSEND			     ;取千位数并显示
             MOV    A,R4
             ANL	 A,#0FH             
			     ACALL	 DSEND			     ;取万位数并显示
		 	     MOV	 A,R4
			     SWAP	 A
			     ANL	 A,#0FH			
			     ACALL  DSEND		        ;取十万位数并显示
			     RET

   DSEND    MOV	 DPTR,#DTAB
			     MOVC	 A,@A+DPTR			  ;取字符
			     MOV	 SBUF,A			  ;发送字符		
			     JNB	 TI,$				   ;等待串口发送完
			     CLR	 TI
			     RET
      
DTAB	  DB	     3FH         		;0
	   		     DB	     06H         		;1
	   		     DB	     5BH         		;2
	   		     DB	     4FH         		;3
	  	 	     DB	     66H          	;4
	 	  	     DB	     6DH          	;5
	 	  	     DB	     7DH          	;6
	 	  	     DB	     07H         		;7
	   		     DB	     7FH          	;8
	  	 	     DB	     6FH   			;9      
END

注意:执行程序用连续运行,不能使用全速运行。

⌨️ 快捷键说明

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