Mis primeros programas en assembler - Micros Designs
Mis primeros programas en assembler - Micros Designs
Mis primeros programas en assembler - Micros Designs
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