Voltímetro digital adc0809, usando lenguaje ensamblador, solicite el código
Código de montaje:
Código de programa
LED_0?EQU?30H
LED_1?EQU?31H
LED_2?EQU?32H ?
ADC?EQU?35H
RELOJ?BIT?P2.4
ST?BIT?P2.5
EOC?BIT?P2.6
OE?BIT?P2.7
ORG?00H ?
SJMP?START ?
ORG?0BH ?
LJMP?INT_T0 ?
INICIO:?MOV?LED_0,?#00H
MOV?P2,?#0FFH
MOV?LED_1,?#00H
MOV?LED_2,?#00H
MOV?DPTR,?#TABLE ?
MOV ?TMOD,?#02H ?
MOV?TH0,?#245H ?
MOV?TL0,?#00H
MOV?IE,?#82H
SETB?TR0
ESPERAR:?CLR?ST
?SETB?STH
?CLR?ST
?JNB?EOC, ?$ ?
?SETB?OE
?MOV?ADC, ?P1
? >
?MOV?A, ?ADC ?
? MOV?B, ?#51
?DIV?AB
? ?A ?
? MOV?A, ?B
? MOV?B, ?#5
? > ? MOV?LED_1,?A
? MOV?LED_0,?B
? LCALL?DISP ?
? p>INT_T0: ?CPL, ?RELOJ ?
?RETI
DISP: ?MOV?A, ?LED_0 ?
?MOVC?A, ?@ ¿Un DPTR
? CLR?P2.3
? ¿MOV?P0,?A
? P2.3
? MOV?A, ?LED_1 ?
? MOVC?A, @A DPTR ?
? p>
?MOV?P0,?A?
?LCALL?DELAY
?SETB?P2.2
? LED_2
> ? MOVC?A,?@A DPTRL
? CLR?P2.1
? ORL?A,?#80H
? ?A
? LCALL?DELAY
? SETB?P2.1
? RET
DELAY: ?MOV?R6,? #10
D1: MOV?R7,?#250
?DJNZ?R7, ?$
?DJNZ?R6, ?D1
?RET
TABLA: ?DB?3FH, ?06H, ?5BH, ?4FH, ?66H ?
DB?6DH, ?7DH, ?07H, ?7FH ,?6FH
FIN