Académique Documents
Professionnel Documents
Culture Documents
Entrada-Salida
Esquema de pines de E/S
Para la familia HC9S08
(HC9S08JM60 - HC9S08JM32
•Dirección
•Pull Up/Down
•Drive Strenght
•Slew rate
Registros de Configuración:
Multiplexado de funciones
(pines con funciones compartidas por distintos módulos)
Prioridad
MC9S08JM60/JM32
Registros de Configuración:
•Dirección
•Pull Up/Down
•Drive Strenght
•Slew rate
Características Eléctricas (Hoja de Datos):
Drive Strength
High drive
Low drive
Características Eléctricas (Hoja de Datos):
Drive Strength
High Drive (PTxDSn = 1) Low Drive (PTxDSn = 0)
High drive
Low drive
Slew Rate
Slew Rate
Registros a utilizar:
Procedimiento de Utilización:
1. Limpiar KBIE en KBISC (para no tener falsas interrupciones)
2. Habilitar polaridad seteando KBEDGn en KBIES
3. Configurar Modo y Pull Up o Pull Down en PTxPE
4. Habilitar los pines KBI a utilizar seteando KBIEPEn en
KBISC
5. Poner KBACK =1 en KBISC (por si se está ejecutando otra
KBIE)
6. Setear KBIE en KBISC para habilitar las interrupciones
7. Una vez atendida la interrupción, al final de ella se debe poner
KBACK en 1.
INTERRUPCIÓN POR TECLADO MC9S08JM60
(S08KBIV2)
Procedimiento de Utilización:
/* ### Init_KBI init code */
/* KBISC: KBIE=0 */
KBISC &= (unsigned char)~0x02;
/* KBIES: KBEDG7=0,KBEDG6=0,KBEDG5=0,KBEDG4=0,KBEDG3=0,KBEDG2=0,KBEDG1=0,KBEDG0=0 */
KBIES = 0x00;
/* KBISC: KBMOD=1 */
KBISC |= (unsigned char)0x01;
/* KBIPE: KBIPE7=0,KBIPE6=0,KBIPE5=0,KBIPE4=0,KBIPE3=0,KBIPE2=1,KBIPE1=0,KBIPE0=0 */
KBIPE = 0x04;
/* KBISC: KBACK=1 */
KBISC |= (unsigned char)0x04;
/* KBISC: KBIE=1 */
KBISC |= (unsigned char)0x02;
/* ### */
VECTORES DE INTERRUPCIÓN
ORG $FFC4 ; Interrupt vector table
_vect:
DC.W UNASSIGNED_ISR ; Int.no. 29 Vrtc (at FFC4) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 28 Viic (at FFC6) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 27 Vacmp (at FFC8) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 26 Vadc (at FFCA) Unassigned
DC.W isrVkeyboard ; Int.no. 25 Vkeyboard (at FFCC) Used
DC.W UNASSIGNED_ISR ; Int.no. 24 Vsci2tx (at FFCE) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 23 Vsci2rx (at FFD0) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 22 Vsci2err (at FFD2) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 21 Vsci1tx (at FFD4) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 20 Vsci1rx (at FFD6) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 19 Vsci1err (at FFD8) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 18 Vtpm2ovf (at FFDA) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 17 Vtpm2ch1 (at FFDC) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 16 Vtpm2ch0 (at FFDE) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 15 Vtpm1ovf (at FFE0) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 14 Vtpm1ch5 (at FFE2) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 13 Vtpm1ch4 (at FFE4) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 12 Vtpm1ch3 (at FFE6) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 11 Vtpm1ch2 (at FFE8) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 10 Vtpm1ch1 (at FFEA) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 9 Vtpm1ch0 (at FFEC) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 8 VReserved (at FFEE) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 7 Vusb (at FFF0) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 6 Vspi2 (at FFF2) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 5 Vspi1 (at FFF4) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 4 Vlol (at FFF6) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 3 Vlvd (at FFF8) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 2 Virq (at FFFA) Unassigned
DC.W UNASSIGNED_ISR ; Int.no. 1 Vswi (at FFFC) Unassigned
DC.W _Startup ; Int.no. 0 Vreset (at FFFE) Reset vector
VECTORES DE INTERRUPCIÓN
/* Interrupt vector table */
#ifndef UNASSIGNED_ISR
#define UNASSIGNED_ISR ((void(*near const)(void)) 0xFFFF) /* unassigned interrupt service routine
*/
#endif
Display de 7 segmentos
Matriz de teclado
APLICACIONES BÁSICAS
Rebote en pulsadores