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.

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. ;**** Definicion de variables ****<br />

6. Display1 equ 0x0C ; Valor que luego de convertido se <strong>en</strong>viara al<br />

Display 1<br />

7. Display2 equ 0x0D ; Valor que luego de convertido se <strong>en</strong>viara al<br />

Display 2<br />

8. Display3 equ 0x0E ; Valor que luego de convertido se <strong>en</strong>viara al<br />

Display 3<br />

9. DataEnviar equ 0x0F ; Dato convertido a codigo 7 Segm<strong>en</strong>tos a <strong>en</strong>viar<br />

10. ContBits equ 0x10 ; Para controlar el <strong>en</strong>vio de bits<br />

11.<br />

12. Desc equ 0 ; Definimos Pulsador desc<strong>en</strong>d<strong>en</strong>te.-<br />

13. Asc equ 1 ; Definimos Pulsador asc<strong>en</strong>d<strong>en</strong>te.-<br />

14. BClock equ 0 ; Pin reloj del 74LS164<br />

15. BData equ 1 ; Pin data del 74LS164<br />

16. BReset equ 2 ; Pin Reset del 74LS164<br />

17. Pto equ 0 ; Bit punto, Con este indicamos si se<br />

muestra punto.-<br />

18.<br />

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

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

21.<br />

22. ;**** Tabla de conversion BCD a 7 Segm<strong>en</strong>tos ****<br />

23. ; Se coloca al inicio para asegurar ubicacion <strong>en</strong> Pagina.-<br />

24. org 0x05 ; Orig<strong>en</strong> del código de tabla.-<br />

25. BCD7SEG: ; retlw b'abcdefg0'<br />

para display catodo comun<br />

26. addwf PCL,1 ; Se increm<strong>en</strong>ta el contador del programa.-<br />

27. DT 0xFC , 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xF6<br />

28.<br />

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

30. ;**** Configuracion de puertos ****<br />

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

32. movlw b'11111000' ; RB7 como <strong>en</strong>trada y los demas como<br />

salida.-<br />

33. movwf TRISB<br />

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

35. clrf Display1<br />

36. clrf Display2<br />

37. clrf Display3<br />

38. bsf PORTB,BReset ; Habilitamos 74LS164.-<br />

39. bcf PORTB,BData<br />

40. bsf PORTB,BClock ; Seteamos Clock.-<br />

41. goto ActualizoDisplays<br />

42.<br />

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

44. Testeo<br />

45. btfss PORTA,Desc ; Testeamos si esta a 1 logico.-<br />

46. goto Desc<strong>en</strong>der ; No<br />

47. btfss PORTA,Asc ; Testeamos si esta a 1 logico.-<br />

48. goto Asc<strong>en</strong>der<br />

49. goto Testeo ; Si, Testeamos nuevam<strong>en</strong>te.-<br />

50.<br />

51.<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!