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

📄 413.asm

📁 用汇编语言编写的基于单片机的温度测控程序
💻 ASM
字号:
ADC		EQU		30h
CLOCK	BIT		P2.7			;定义ADC0808时钟位
ST 		BIT 	P2.4
EOC 	BIT 	P2.6
OE 		BIT 	P2.5
PWM		BIT		P3.7
		ORG 	00H
		SJMP	START1
		ORG		0BH
		LJMP	INT_T0
		ORG     1BH
		LJMP    TNT_T1

START1:
		MOV ACC,#28H
		PUSH ACC
    	MOV		TMOD,#12H	  
		MOV		TH0,#20
		MOV		TL0,#00H
		MOV TH1,#3CH
		MOV TL1,#0B0H
		MOV		IE,#8AH
		SETB	TR0
		SETB    TR1

WAIT: 
		CLR 	ST			  	
		SETB 	ST
		CLR 	ST				;启动AD转换
 		JB 	EOC,$			;等待转换结束
		SETB 	OE 
		MOV 	ADC,P0			;读取AD转换结果
		CLR 	OE
		SETB	PWM			
		clr c                            ;判断是否到了一百度,到了100度或以上,停止加热
		mov r7,adc
		cjne  r7,#0FCH,out
pwmout:		jnc  out
					   	;PWM输出
		MOV 	A,ADC
		LCALL	DELAY
		CLR		PWM
		MOV		A,#255
		SUBB	A,ADC
		LCALL	DELAY
out:            jc   pwmout
                clr c
		
		SJMP 	WAIT

INT_T0:	CPL		CLOCK		 	;提供ADC0808时钟信号
		RETI
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;40H是用来存放要定时的循环次数 
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
TNT_T1:	
		POP 40H
        PUSH ACC
		PUSH PSW
		MOV R0,40H	 
        DJNZ R0,FANHUI

;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;显示程序
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

START:
        mov a,#00h                                ;初始化



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
go:							   ;取数程序

        	LCALL   zhuanhuan                            ;转到 数据转换程序(一)
		;	setb st 
        	lcall  loop                                 ;转到 数据转换程序(二)
            lcall  DISPLAY                              ;转到 从译码管显示
			LJMP   FANHUI
FANHUI: POP PSW
		POP ACC 
		PUSH  40H
       RETI



 zhuanhuan :
	  mov a,adc
        subb a,#1
	    ; mov A,ADC		            ;这里把数据 X 4
		 MOV B,#4
		 MUL AB
		 MOV  31H,B			
		 MOV  32H,A			   ;低位暂存区

		 MOV A,31H			    ;处理高位
	
		RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;数据转换程序(二)
;;标号: HB2功能:双字节十六进制整数转换成四字节十进制整数
;;入口条件:待转换的双字节十六进制整数在R6(高位)、R7中。
;;出口信息:转换后的三字节十进制整数在R2(高位) 、R3、R4、R5中。
;;影响资源:PSW、A、R2~R7 堆栈需求: 2字节
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


loop:
 MOV A,32h
 MOV R7,A
 MOV A,31h
 MOV R6,A

   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,R4 ;BCD码带进位自身相加,相当于乘2
   ADDC A,R4
   DA A ;十进制调整
   MOV R4,A
   MOV A,R3
   ADDC A,R3
   DA A
   MOV R3,A
   

   DJNZ R2,HB3 ;处理完16bit 

  MOV A,R3           ;将数放到指定的单元格里面   
   SWAP A
   ANL A,#0FH
   MOV R2,A 

 MOV A,R3
   ANL A,#0FH
   MOV R3,A 


   MOV A,R4
   ANL A,#0FH
   MOV R5,A


   MOV A,R4
   SWAP A
   ANL A,#0FH
   MOV R4,A
  
mov 33h,r5             ;存放个位
mov 34h,r4             ;存放十位
mov 35h,r3             ;存放百位
mov 36h,r2             ;存放千位
      ret



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示程序
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DISPLAY:
		 	
              ;百位的管子显示
        MOV A,36h
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
	   MOV P1,A
		   lcall aa3

             ;十位的管子显示
        MOV A,35h
        MOV DPTR, #TABLE
        MOVC A,@A+DPTR
        MOV P1,A
		lcall aa2

            ;个位的管子显示
     
        MOV A,34h
        MOV DPTR, #TABLE
        MOVC A,@A+DPTR
        ORL A,#80H  ;加小数点
        MOV P1,A
		lcall aa1
   
            ;小数点后一位的管子显示
        MOV A,33h
        MOV DPTR, #TABLE
        MOVC A,@A+DPTR
        MOV P1,A 
		lcall aa0
     	ret  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	   aa3:
	   		clr p2.0
setb p2.0
clr p2.0
ret
	   aa2:
	   		clr p2.1
setb p2.1
clr p2.1
ret
	   aa1:
	   		clr p2.2
setb p2.2
clr p2.2
ret

	   aa0:
	   		clr p2.3
setb p2.3
clr p2.3
ret

;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\



        
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

DELAY:	MOV		R6,#1
D1:		DJNZ	R6,D1
		DJNZ	ACC,D1
		RET
 TABLE:     DB 3FH,06H,5BH,4FH,66H
            DB 6DH,7DH,07H,7FH,6FH
		END

⌨️ 快捷键说明

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