13.11.2012 Views

Mis primeros programas en assembler - Micros Designs

Mis primeros programas en assembler - Micros Designs

Mis primeros programas en assembler - Micros Designs

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

aritméticas se activa si ocurre acarreo <strong>en</strong>tre el bit 3 y bit 4.-<br />

Código completo:<br />

Código<br />

1. ; **** Encabezado ****<br />

2. list p=16F84A<br />

3. #include P16F84A.inc<br />

4. __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC<br />

5. ;**** Definición de variables ****<br />

6. Contador equ 0x0C ; Seleccionamos posición <strong>en</strong> la memoria RAM<br />

(GPR) para guardar<br />

7. ; registro utilizado para demora.-<br />

8. Contador1 equ 0x0D ; Registro utilizado <strong>en</strong> demora.-<br />

9. Contador2 equ 0x0E<br />

10. Pulsador equ 7 ; Definimos Pulsador como el bit 0, <strong>en</strong> este<br />

caso será para PORTA<br />

11.<br />

12.<br />

13. Reset<br />

14. org 0x00 ; Aquí comi<strong>en</strong>za el micro.-<br />

15. goto Inicio ; Salto a inicio de mi programa.-<br />

16. ;**** Programa principal ****<br />

17. ;**** Configuración de puertos ****<br />

18. Inicio<br />

19. bsf STATUS,RP0 ; Pasamos de Banco 0 a Banco 1.-<br />

20. clrf TRISB ; PORTB como salida.-<br />

21. bcf STATUS,RP0 ; Paso del Banco 1 al Banco 0<br />

22. call Config_Tabla ; Cargamos registros con Código de 7<br />

segm<strong>en</strong>tos.-<br />

23. movfw INDF ; Leemos código de 7 Segm<strong>en</strong>tos para el<br />

CERO.-<br />

24. movwf PORTB ; Mostramos el CERO.-<br />

25. ;**** Testeo de Pulsador ****<br />

26. Bucle<br />

27. call Demora_190ms ; Demora para visualizar Display<br />

28. incf FSR,1 ; Increm<strong>en</strong>tamos Puntero.-<br />

29. movlw 0x1A ; Consultamos si se pide código<br />

para mostrar "10",<br />

30. subwf FSR,0 ; si es así reseteamos FSR, apunta<br />

a 0x10--> "0".-<br />

31. btfss STATUS,Z ; Si Z=1 --> 0x1A - FSR = 0.-<br />

32. goto Muestro_Display ; No, muestro display.-<br />

33. movlw 0x10 ; Si reseteo puntero.-<br />

34. movwf FSR ;<br />

35. Muestro_Display<br />

36. movfw INDF ; Leo Registro que apunta FSR.-<br />

37. movwf PORTB ; Lo cargo <strong>en</strong> PORTB.-<br />

38. goto Bucle ; Continuo conteo.-<br />

39.<br />

40.<br />

41. ;**** Demora ****<br />

42. Demora_190ms<br />

43. movlw 0xFF ;<br />

44. movwf Contador1 ; Iniciamos contador1.-<br />

45. Repeticion1<br />

46. movlw 0xFF ;<br />

47. movwf Contador2 ; Iniciamos contador2<br />

48. Repeticion2<br />

49. decfsz Contador2,1 ; Decrem<strong>en</strong>ta Contador2 y si es 0<br />

sale.-<br />

Autor: Suky Mail: inf.pic.suky@live.com.ar Web: www.micros-designs.com.ar

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!