Skip to main content

sumador con carry a bcd atmel89s51

ini:
mov P1,0aah
Inicio:
mov P1, #095h
mov a, P1
mov b, P1
swap a
anl b, #00001111b
anl a, #00001111b
c0:
cjne a, #00, c1
mov r0, a
mov a, b
jmp fin
c1:
cjne a, #01, c2
mov r0, a
mov a, b
jmp fin
c2:
cjne a, #02, c3
mov r0, a
mov a, b
jmp fin
c3:
cjne a, #03, c4
mov r0, a
mov a, b
jmp fin
c4:
cjne a, #04, c5
mov r0, a
mov a, b
jmp fin
c5:
cjne a, #05, c6
mov r0, a
mov a, b
jmp fin
c6:
cjne a, #06, c7
mov r0, a
mov a, b
jmp fin
c7:
cjne a, #07, c8
mov r0, a
mov a, b
jmp fin
c8:
cjne a, #08, c9
mov r0, a
mov a, b
jmp fin
c9:
cjne a, #09, c0
mov r0, a
mov a, b
jmp fin

jmp Inicio

fin:

mov b, #00

cc0:
cjne a, #00, cc1
add a, r0
jmp fin2
cc1:
cjne a, #01, cc2
add a, r0
jmp fin2
cc2:
cjne a, #02, cc3
add a, r0
jmp fin2
cc3:
cjne a, #03, cc4
add a, r0
jmp fin2
cc4:
cjne a, #04, cc5
add a, r0
jmp fin2
cc5:
cjne a, #05, cc6
add a, r0
jmp fin2
cc6:
cjne a, #06, cc7
add a, r0
jmp fin2
cc7:
cjne a, #07, cc8
add a, r0
jmp fin2
cc8:
cjne a, #08, cc9
add a, r0
jmp fin2
cc9:
cjne a, #09, cc0
add a, r0
jmp fin2

jmp Inicio

fin2:
da A
jmp ini
end

Comments

Popular posts from this blog

Llamar a 1 800 en USA desde Mexico

Cómo llamar números gratis en USA [toll free] desde México Ok, resulta que alguna vez los números gratis, se llamaban números 1- 800 (01-800 desde México). Pero lo malo de los números es que se acaban, Sobre todo en USA que les encanta vender todo. Ahora los Números gratis pueden ser 1 - 800, 1 - 877, 1 - 866 Para los americanos es cuestion de acostumbrarse, pero para nosotros los usuarios de telmex ¿cómo le hacemos si queremos marcar? Pues en primera pagando, los números gratis en USA usualmente no son gratis desde otros paises. Y en segunda, marcando correctamente. Muchos ya se saben el de los 800, es nada mas cuestion de cambiar el 01 - 800 por 001 - 881, pero y los 1 - 866 ? y los 1 - 877 ? Ahhh pues en mi otro blog ya tenía una entrada con una tablita que lo explica: Si el numero comienza con 1 888 se marca: 001 881 Si el numero comienza con 1 877 se marca: 001 882 Si el numero comienza con 1 866 se marca: 001 883 ¿Por qué? No tengo la más mínima idea, supongo que

Cronometro (codigo) vhdl

library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity cronometro is     Port ( display : out  STD_LOGIC_VECTOR (7 downto 0);            clk, reset, enc : in  STD_LOGIC;            An  : out  STD_LOGIC_VECTOR (3 downto 0)); end cronometro; architecture Behavioral of cronometro is signal contador: std_logic_vector  (3 downto 0) :="0000"; signal segundos: std_logic_vector  (13 downto 0) :="00000000000000"; signal contador1: std_logic_vector  (3 downto 0) :="0000"; signal DecSeg: std_logic_vector  (9 downto 0) :="0000000000"; signal contador2: std_logic_vector  (3 downto 0) :="0000"; signal CentSeg: std_logic_vector  (7 downto 0) :="00000000"; signal Anodos: std_logic_vector (1 downto 0 ):="00"; begin Process (clk, reset, contador, segundos) begin if (clk'event and clk = '1') then if reset= '0' then contad

Voltimetro en VHDL

library IEEE; use IEEE.std_logic_1164.all; library work; use work.Estructuras_de_Datos.all; entity Voltimetro is         port (  clock: in std_logic;                         d : in std_logic;                         not_q: out std_logic;                                                  hs,vs: out std_logic;                         r,g,b: out std_logic                                                                      );                          end entity; architecture arc1 of Voltimetro is component Contador_Principal is                  port (  clock : in std_logic;                         q_ffd: in std_logic;                         reset: in std_logic;                         salida: out num_BCD(2 downto 0)                 ); end component; component Sigma_Delta is         port(                         clock: in std_logic;                         d: in std_logic;                         n_q: out std_logic;