4. Programando el microcontrolador AT89C52    A. /* en este primer ejercicio se observan una serie de instrucciones que no...
ORG 0X00   RGS:          MOV A,P0                 ADD A,P2                 ADD A,P3                 MOV B,#3              ...
mayor el primero que el segundo hay carry cuando es menor el primero que el segundo hay un 1en el registro P y si es igual...
termina de contar se va a última línea y compara uno por uno con el CJNE para que transforme elincremento a un dato que le...
MOV P2,#0X1F                          JMP INFINITONP6:                      CJNE A,#07H,NP7                          MOV P...
Upcoming SlideShare
Loading in …5
×

Taller de microcontroladores i

809 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
809
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Taller de microcontroladores i

  1. 1. 4. Programando el microcontrolador AT89C52 A. /* en este primer ejercicio se observan una serie de instrucciones que no van a ningún lado supongo que con este ejercicio se pretende saber y conocer las aplicaciones de el KEIL UVISION y el ATMEL AT89C52*/ ORG 0X00 W EQU 1FHREGRESAR: MOV 35H,#35H MOV 81H,#45H MOV A,81H SUBB A,35H MOV W,#56H MOV 20H,W MOV A,#45H SUBB A,83H MOV A,84H MOV A,25H ADD A,P1 MOV 26H,A JMP REGRESAR END B.1 /* En este programa se pone a parpadear dos diodos LED mediante unas combinacionesbinarias importándolas al p1 y el salto para que lo haga indefinidamente*/ ORG 0X00 REPETIR: MOV P1,#00000010b MOV P1,#00000100b JMP REPETIR END B.2 /* En este ejercicio realice algo muy interesante leí los números a promediar desde lospuertos y el p2-p3 y la salida quedo en p1*/
  2. 2. ORG 0X00 RGS: MOV A,P0 ADD A,P2 ADD A,P3 MOV B,#3 DIV AB MOV P1,A JMP RGS END B.3 /* Aquí es hallar la pendiente de la recta también las estoy leyendo desde los puertos y elpuerto 1 lo tengo como entrada y salida la formula de la pendiente es la siguiente:M=Y2-Y1/X2-X1*/ ORG 0X00 REGRESAR: MOV A,P2 SUBB A,P1 MOV B,A MOV A,P3 SUBB A,P0 DIV AB MOV P1,A JMP REGRESAR ENDC. /* Se requiere leer lo del puerto P1 que aparesca en p2 pero invertido aquí con la instrucciónCPL es para complementar y aparecer invertido en el otro puerto*/ ORG 0X00REGRESAR: MOV A,P1 CPL A MOV P2,A JMP REGRESAR ENDE. /* Aquí se están comparando en mayor que menor que e igual que con la instrucción CJNE quees un principio básico de un comparador utilizando el registro PSW bit del carry y el bit P cuando el
  3. 3. mayor el primero que el segundo hay carry cuando es menor el primero que el segundo hay un 1en el registro P y si es igual no hay desbordamiento osea es un cero el SETB se utiliza paraaumentar un bit puerto p3 en posicion*/ ORG 0X00RPT: MOV A,P1 MOV 35H,P2 CJNE A,35H,NPREGUNTA JMP IGUALNPREGUNTA: JNC P2_MENOR JMP P2_MAYORIGUAL: SETB P3.1 JMP FINP2_MAYOR: SETB P3.0 JMP FINP2_MENOR: SETB P3.2 JMP FINFIN: JMP RPT END F. /*en este la instrucción DJNZ decremento a p2 de uno en uno y salta hasta que llegue a cero yel salto lo manda al SETB para aumente un bit al Puerto 1 cuando llega a cero salta a pulso y no sevuelve a activar hasta que p3.0 reciba un bit alto.*/ ORG 0X00VOLVER: DJNZ P2,SALTO JMP PULSOSALTO: SETB P1.0 CLR P1.0 JMP VOLVERPULSO: JB P3.0,VOLVER JMP PULSO ENDG. /* En este se requiere contar el numero de unos que se colocan en puerto p3 con el JBC lo hacebit por bit salta si hay uno y lo borra para que continue con el siguiente bit cuando salta a sumahay una especie de contador con INC que va contando el numero de 1 que hay luego el cuándo
  4. 4. termina de contar se va a última línea y compara uno por uno con el CJNE para que transforme elincremento a un dato que lea el display 7 segmentos*/ ORG 0X00INFINITO: MOV A,0X00 JB P3.0,VOLVER JMP INFINITOVOLVER: JBC P1.0,SUMA JBC P1.1,SUMA JBC P1.2,SUMA JBC P1.3,SUMA JBC P1.4,SUMA JBC P1.5,SUMA JBC P1.6,SUMA JBC P1.7,SUMA JMP FINALSUMA: INC A JMP VOLVERFINAL: CJNE A,#00H,NP MOV P2,#0X7E JMP INFINITONP: CJNE A,#01H,NP1 MOV P2,#0X30 JMP INFINITONP1: CJNE A,#02H,NP2 MOV P2,#0X6D JMP INFINITONP2: CJNE A,#03H,NP3 MOV P2,#0X79 JMP INFINITONP3: CJNE A,#04H,NP4 MOV P2,#0X33 JMP INFINITONP4: CJNE A,#05H,NP5 MOV P2,#0X5B JMP INFINITONP5: CJNE A,#06H,NP6
  5. 5. MOV P2,#0X1F JMP INFINITONP6: CJNE A,#07H,NP7 MOV P2,#0X70 JMP INFINITONP7: CJNE A,#08H,NP8 MOV P2,#0XFFNP8: JMP INFINITO END4. analizando código para en el AT89C52A. /* corre un bit a la derecha de puerto p1 y carga los registros r2 r1 r0 y los decremento, elcorre el bit cuando el decremento de los registros llegue a 0*/ ORG 0X00 MOV A,#0FEHCICLO: MOV P1,A RL A MOV R0,#3CICLOA: MOV R1,#2CICLOB: MOV R2,#1CICLOC: DJNZ R2,CICLOC DJNZ R1,CICLOB DJNZ R0,CICLOA SJMP CICLO END

×