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

📄 ha.asm

📁 这是一个课程设计---数字电压表基于MCS51和AD0809的源码
💻 ASM
字号:
COM EQU 50H
DAT EQU 51H
RS EQU P2.1
RW EQU P2.2
E EQU P2.3

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP BT0

ORG 0030H
MAIN:    MOV SP,#60H
         LCALL INT
	 MOV 30H,#30H
	 MOV 31H,#0A5H;小数点
	 MOV 32H,#30H
	 MOV 33H,#30H
	 MOV 34H,#30H
	 MOV R7,#30H
	 LCALL N1
	
;*************************定时器初始化*******************************************
	 MOV TMOD,#00H;T0方式0
	 MOV TH0,#00H ;初值0
	 MOV TL0,#00H
	 SETB TR0    ;开始计数
	 MOV 35H,#05H;中断次数
	 MOV IE,#82H ;开中断
	
;********************************************************************************
LP:;MOV R7,#30H ;显示
   LCALL DISPLY
   SJMP LP

;***********************转换为显示数据*******************************************
BT0:
        PUSH ACC
	PUSH PSW
        mov psw,#18h
	CLR TR0       ;新计数
	MOV TH0,#00H
	MOV TL0,#00H
	DEC 35H       ;是否中断够次数
	MOV A,35H
        JNZ EXIT      ;判断是否中断够五次
        MOV 35H,#05H  ;重新装入初值次数
	MOV DPTR,#0f6ffH
	MOV A,#00H    ;转换0通道
        MOVX @DPTR,A  ;启动AD
        MOV R3,#40H   ;等待
        DJNZ R3,$
	MOVX A,@DPTR  ;读取转换结果
        
	MOV B,#5    ;个位A*5/256
	MUL AB
	MOV 30H,B
        
	MOV B,#10   ;小数点后第一位(余数*10)
	MUL AB
	MOV 32H,B

        MOV B,#10   ;小数点后第二位(余数*10)
	MUL AB
	MOV 33H,B

	MOV A,30H   ;转换成显示码
	ADD A,#30H
	MOV 30H,A
        
	MOV A,32H   ;转换成显示码
	ADD A,#30H
	MOV 32H,A
 
	MOV A,33H   ;转换成显示码
	ADD A,#30H
	MOV 33H,A

	MOV 31H,#0A5H
	MOV 34H,#30H
	   
EXIT:   SETB TR0
        POP PSW
        POP ACC
        RETI
;**********************************************************************************
DISPLY:    
    MOV COM,#0CAH
    LCALL PR1
    MOV R1,#05H
    MOV R0,#30H
L:  MOV DAT,@R0
    LCALL PR2
    INC R0	
    DJNZ R1,L
    RET

TAB2:DB"XG1041 JIANGMINGLIANG"
N1:MOV COM,#01H
   LCALL PR1
   MOV COM,#06H
   LCALL PR1
   MOV COM,#0C0H
   LCALL PR1
   MOV DPTR,#TAB1
   MOV R2,#10H
   MOV R3,#00H
WRIN1:
   MOV A,R3
   MOVC A,@A+DPTR
   MOV DAT,A
   LCALL PR2
   INC R3
   DJNZ R2,WRIN1

   MOV COM,#06H
   LCALL PR1
   MOV COM,#080H
   LCALL PR1
   MOV DPTR,#TAB2
   MOV R2,#10H
   MOV A,R3
WRIN2:
   MOV A,R4
   MOVC A,@A+DPTR
   MOV DAT,A
   LCALL PR2
   INC R4
   DJNZ R2,WRIN2
   RET
TAB1:DB"Voltage="


INT:
   LCALL DELAY
   MOV COM,#38H
   LCALL PR1
   MOV COM,#01H
   LCALL PR1
   MOV COM,#06H
   LCALL PR1
   MOV COM,#0EH
   LCALL PR1
   RET
DELAY:MOV R6,#0FH
   MOV R7,#00H
   DELAY1:NOP
   DJNZ R7,DELAY1
   DJNZ R6,DELAY1
RET
PR0:
   PUSH ACC
   MOV P0,#0FFH
   CLR RS
SETB RW
SETB E
LCALL DELAY
MOV COM,P0
CLR E
POP ACC
RET


PR1:PUSH ACC
CLR RS 
SETB RW
PR11:MOV P0,#0FFH
     SETB E
     LCALL DELAY
     NOP 
     MOV A,P0
     CLR E
     JB ACC.7,PR11
     CLR RW
     MOV P0,COM
     SETB E
     CLR E
     POP ACC
RET


PR2:PUSH ACC
    CLR RS
    SETB RW
PR21:MOV P0,#0FFH
SETB E
LCALL DELAY
MOV A,P0
CLR E
JB ACC.7,PR21
SETB RS
CLR RW
MOV P0,DAT
SETB E
;CLR RS
CLR E
POP ACC
RET

PR3:PUSH ACC
    CLR RS
    SETB RW
PR31:MOV P0,#0FFH
SETB E
LCALL DELAY
MOV A,P0
CLR E
JB ACC.7,PR31
SETB RS
SETB RW
MOV P0,#0FFH
SETB E
MOV DAT,P0
CLR E
POP ACC
RET
END

⌨️ 快捷键说明

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