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

📄 0-5v.txt

📁 本程序是单片机课程设计(数字电压表),程序已在硬件上测试通过
💻 TXT
字号:
					
                org     0000h
START:  	;MOV	30h,#00H
		;MOV	31h,#00H
		;MOV	32h,#00H
		MOV	DPTR,#TABLE		;送段码表首地址
                MOV 35H, #00H
		SETB	P3.4
		SETB	P3.5
		CLR	P3.6		 	;选择ADC0808的通道3

WAIT: 	        CLR 	p3.2                    
		SETB 	p3.2                    ;锁存A,B,C上的地址信息(ALE),清除内部寄存器(CLOCK)
		CLR 	p3.2			;启动转换
 		JNB 	p3.1,$		 	;等待转换结束
		SETB 	p3.0 			;允许输出
		MOV 	35h,P1			;暂存转换结果
		CLR 	p3.0			;(OE低电平)关闭输出
		MOV 	R0,#35h                 ;存放AD转换值的首地址
                       
   MOV R1,#38H       ;存放BCD码的首地址
   ;MOV R2,#1        ;要转化的AD转换值的个数

      MOV R4,#0        ;暂存转化结果的低位
   MOV R5,#0         ;暂存转化结果的高位
   CLR C
   MOV A,@R0        ;取要转化的AD转换值
   MOV B,#14H        ;×20
   MUL AB
   MOV R3,A     ;积低位存入TEMPLOW单元
   MOV A,B
   MOV R2,A    ;积高位存入TEMPHIGH单元
   CLR A                 ;转化程序

   MOV R6,A
   MOV R7,#10H
BP1: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      ;把累加和存入R6 对进位操作
   MOV A ,R5
   ADDC A ,R5
   DA A
   MOV R5 ,A      ;累加和存入R5 对进位操作
   MOV  A,R4
   ADDC A,R4
   SWAP A         ;把低4位和高4位交换   先加再换 处理进位 进位为1左移 第一次
   MOV R4,A
   DJNZ R7,BP1    ;循环16次
     MOV 30H,R6
      MOV 31H,R5
      MOV R0,#30H
   MOV R1,#38H
   MOV R7,#02H    ;存地址
  BP2: MOV A,@R0
   ANL A,#0FH    
   MOV @R1,A      
   INC R1
   MOV A,@R0      
   SWAP A
   ANL A,#0FH
   MOV @R1,A      ;取所有位取出 然后逐位显示
  INC R0
  INC R1          ;R1是目的地址,R0是源地址         
  DJNZ R7, BP2    ;循环2次   处理成4个8位数 每个8位数为0xh

     ; RET
   	LCALL	DISP		  	;显示AD转换结果
		SJMP 	WAIT
;*******************
;显示子程序
;*******************
DISP:MOV A,#0FDH       ;先显示整数个位
        MOV P2,A
        MOV A,3BH
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
        ORL A,#80H  ;加小数点
        MOV P0,A
       	CALL DELAY
		MOV A, #0FBH    ;小数部分第一位
        MOV P2,A
        MOV A,3AH
        MOV DPTR, #TABLE
        MOVC A,@A+DPTR
        MOV P0,A
        LCALL DELAY
		 MOV A, #0F7H    ;小数部分第二位    
        MOV P2,A
        MOV A,39H
        MOV DPTR, #TABLE
        MOVC A,@A+DPTR
        MOV P0,A
      LCALL DELAY
	  MOV A, #0FEH            ;整数的十位
        MOV P2,A
        MOV A,38H
        MOV DPTR, #TABLE
        MOVC A,@A+DPTR
        MOV P0,A
      LCALL DELAY
	  	RET
       TABLE:  DB 3FH,06H,5BH,4FH,66H
               DB 6DH,7DH,07H,7FH,6FH  ;LED段选码
DELAY:  MOV 40,#34H
D0:     MOV 41,#19H   
D1:     DJNZ 41,D1     ;从41减
        DJNZ 40,D0     ;从40减
        RET

	END

⌨️ 快捷键说明

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