Académique Documents
Professionnel Documents
Culture Documents
El microprocesador
UNIDAD DE CONTROL
MEMORIA
ALU
DATOS
INSTRUCCIONES
SEALES DE CONTROL
Operando 1
Direccin de memoria
La Frecuencia de bus (FBUS) es la frecuencia efectiva de ejecucin de instrucciones. Si un microprocesador tiene un FBUS de 10MHz, es muy probable que ejecute 10MIPS (siempre y cuando todas sus instrucciones tarden un ciclo de bus).
La seal de reloj se obtiene de un cristal externo conectado a dos pines del C.
Arquitectura Harvard
PIC16F7XX
Todo microcontrolador consta bsicamente de: * CPU * RAM / FLASH / EEPROM * I/O ( puertos de entrada y salida) Adems pueden contener de perifricos programables, como: * Temporizadores / Contadores * Controlador de interrupciones * Comunicacin Serial (RS232, I2C, USB-Slave) * Mdulo de entrada de captura y generador de PWM * Convertidor A/D Los modelos ms potentes incluyen adems: * Conversor D/A. * USB-Host (OTG). * Bus CAN * DSP * Ethernet
C = 49
............
............
A, B
Microcontrolador Perifricos
C
7 6 5 4 3 2 1 CP
............
Arquitectura Harvard
Mag. Ing. Sergio Salas A.
1. Procesador de arquitectura RISC. 2. Set de instrucciones de 77. Todas se ejecutan en un ciclo de instruccin, menos las de salto y algunas de direccionamiento de memoria. 3. Frecuencia de reloj mximo de 48 MHz. 4. Posee 32Kx16 palabras en la memoria FLASH. 5. Hasta 2KBytes en la memoria de datos SRAM. 6. Hasta 256 bytes en la memoria EEPROM. 7. Multiplicador de operandos de 8 bits con registro de resultado de 16 bits en un solo ciclo de instruccin. 8. 20 fuentes de interrupcin internas y externas. 9. Pila con 32 niveles. 10. Modos de direccionamiento directo, indirecto y relativo. 11. Perro guardian (Watchdog timer). 12. Modo Sleep (bajo consumo). 13. Mdulos internos: a. Timer0, Timer1, Timer2 y Timer 3. b. Dos mdulos de captura y comparacin y PWM. c. Convertidor AD. d. Mdulo serial sncrono y asncrono. Mag. Ing. Sergio Salas A.
La familia PIC18F45XX/PIC18F25XX
El registro de estado STATUS se encuentra ubicado en la memoria de datos y trabaja como indicador de los resultados generados por la ALU del procesador.
N: Bit negativo. Se pone a 1 para indicar que el resultado de una operacin se encuentra en valor negativo (Formato Complemento a 2).
OV: Bit indicador de Overflow. Se considera un OV cuando el bit MSB del resultado cambia de valor (pasando de positivo a negativo y viceversa). Z: Bit Zero. Si el resultado de cualquier operacin da 0, entonces el bit Z se pone a 1 lgico. DC: Bit Carry Decimal. Es un bit de Carry para operaciones en BCD. Cualquier operacin de suma que supere el valor de 15 se considerar como un DC = 1 lgico. C: El bit Carry se pone a 1 lgico cada vez que una operacin de suma supera el valor de 255. En caso la operacin sea de resta y se tenga un nmero menor a 0, el bit C se pone a 0 lgico.
La Pila es una memoria voltil. Su contenido se elimina con una operacin de Reset o simplemente des energizando al microcontrolador.
Q1 Se decodifica la instruccin. Q2 Se lee el registro involucrado en la instruccin. Q3 Se procesa la operacin. Q4 El resultado se guarda en el registro destino. Si la frecuencia de reloj es de 4 MHz. Entonces la frecuencia de bus es de 4MHz/4 ciclos = 1MHz. Mag. Ing. Sergio Salas A.
El contador de programa
El byte de menos peso del PC se corresponde con el contenido del registro PCL El Byte ms significativo (bits <15:8> se corresponde con el registro PCH. Finalmente, el Byte de mayor peso: PCU se corresponde con los 5 bits de ms peso (bits <20:16>)
GOTO SALTO
Los registros PCU y PCH no pueden ser accedidos directamente por el procesador. Para esto, se utilizan los registros Latch PCLATU y PCLATH que se cargan con el valor de dichos registros. Cualquier lectura del registro PCL automticamente carga PCLATU con el valor de PCU y PCLATH con el valor de PCH. Por otro lado, cualquier escritura en el registro PCL carga PCU con el valor de PCLATU y PCH con el valor de PCLATH.
El puntero de Tabla
El puntero de Tabla permite grabar y leer datos de la FLASH en tiempo de ejecucin como si fuera una memoria SRAM, pero, con un acceso ms complejo.
La memoria de datos
Tienen 8 bits de longitud. Organizada en 16 bancos de 256 bytes cada uno. Los RPG son registros de propsito general. Los RFE son registros de funcin especfica y se usan para configurar los perifricos y funciones del procesador. El PIC18F4550 solo posee 8 bancos, por lo cual tiene una capacidad total de 2KB de SRAM. Es posible acceder a un registro de la memoria SRAM mediante dos formas: 1. Usando su direccin absoluta (12 bits) 2. Con su direccin relativa al banco El registro BSR permite seleccionar el banco a acceder. Los registros FSRx (donde x = 0, 1 o 2) permiten apuntar a una direccin dentro del banco. Los registros INDFx (donde x = 0, 1 o 2) permiten obtener el contenido del registro apuntado por FSRx
El set de instrucciones
Orientadas a operaciones con bytes
Mnemnico ADDWFf,d,a ADDWFCf,d,a ANDWFf,d,a CLRFf,a COMF f,d,a CPFSEQ f,a CPFSGT f,a CPFSLT f,a DECFf,d,a DECFSZf,d,a DCFSNZf,d,a INCFf,d,a INCFSZf,d,a INFSNZf,d,a IORWFf,d,a MOVFf,d,a MOVWFf,a MULWFf,a NEGFf,a RLCFf,d,a RLNCFf,d,a RRCFf,d,a RRNCFf,d,a SETFf,a SUBFWBf,d,a SUBWFf,d,a SUBWFBf,d,a SWAPFf,d,a TSTFSZf,a XORWFf,d,a Descripcin Sumar el registro W con f Sumar el registro W + el bit Carry con f Operacin AND entre el registro W y f f = 0x00 Obtener el complemento de f Comparar f con el registro W y saltar si son iguales Comparar f con el registro W y saltar si f es mayor Comparar f con el registro W y saltar si f es menor Decrementar f Restar f, saltar si es 0 Restar f, saltar si no es 0 Incrementar f Incrementar f, saltar si es 0 Incrementar f, saltar si no es 0 OR inclusive entre el registro W y f Mover f Mover el registro W a f Multiplicar el registro W con f Negar f Rotar f a la izquierda y cargar el bit MSB con el Carry Rotar f a la izquierda (sin Carry) Rotar f a la derecha y cargar el bit LSB con el Carry Rotar f a la derecha (sin Carry) Poner f a 0xFF Restar fdel registro W con prstamo Restar el registro W de f Restar el registro W de f con prstamo Intercambiar nibbles Analizar f y saltar si es 0x00 OR Exclusiva entre el registro W y f
El set de instrucciones
Orientadas a operaciones con bits
Mnemnico BCF f,b,a BSF f,b,a BTFSC f,b,a BTFSS f,b,a BTG f,b,a Descripcin Bit b de f a 0 lgico Bit b de f a 1 lgico Analizar el bit b de f y saltar si es 0 lgico Analizar el bit b de f y saltar si es 1 lgico Negar el estado del bit b de f
El set de instrucciones
Orientadas a operaciones con literales y de configuracin
Mnemnico ADDLW k ANDLW k IORLW k LFSR f,k MOVLB k MOVLW k MULLW k RETLW k SUBLW k XORLW k Descripcin Sumar el valor literal k con el registro W Operacin AND entre el registro W y el valor literal k Operacin OR entre el registro W y el valor literal k Mover el valor literal k de 12 bits a FSR(f) Mover el valor literal k a BSR Mover el literal k al registro W Multiplicar el valor literal k con el registro W Retornar con el valor literal k en el registro W Restar el registro W del valor literal k OR Exclusiva entre el valor literal k y el registro W
El set de instrucciones
Orientadas a operaciones de control
BC BN BNC BNN BNOV BNZ BOV BRA BZ CALL Mnemnico n n n n n n n n n n,s Descripcin Salta a la direccin n si Carry = 1 lgico Salta a la direccin n si el bit N = 1 lgico Salta a la direccin n si el bit Carry = 0 lgico Salta a la direccin n se el bit N = 0 lgico Salta a la direccin n si no ha ocurrido un Overflow Salta a la direccin n si el bit Z = 0 lgico Salta a la direccin n si ha ocurrido un Overflow Salta a la direccin n Salta a la direccin n si el bit Z = 1 lgico Salta a la direccin n. El PC se guarda en la pila. S indica que tambin se almacena en una pila el registro W, el STATUS y BSR Inicializar el WatchdogTimer Ajuste decimal del registro W Saltar a la direccin n Ninguna operacin Retornar el ltimo valor de la pila Guardar el PC en el ltimo valor de la pila Salto relativo a n Generar un Reset por software del microcontrolador Retorno de la rutina de interrupcin Retorno de un rutina con el valor literal k en el registro W Retorno de la subrutina. S indica si se rescatan de la pila el registro W, el STATUS y BSR Colocar el microcontrolador en modo de bajo consumo
CLRWDT DAW GOTO n NOP POP PUSH RCALL n RESET RETFIE s RETLW k RETURN s SLEEP
Existe un total de 5 puertos de entrada y salida: A, B, C, D y E. Cada uno de ellos puede operar de tres formas: Entrada digital, salida digital o como funcin especfica de un mdulo interno. El control de modo de operacin de un pin de un puerto se configura mediante el registro TRISx. La lectura del valor de un pin configurado como entrada se realiza mediante el registro PORTx. Le escritura de un valor de un pin configurado como salida se realiza mediante el registro LATx.
Modos de direccionamiento
Direccionamiento indirecto
Modos de direccionamiento
Direccionamiento indirecto
En el siguiente ejemplo se carga las direcciones 0x100 y 0x101 de la memoria SRAM con el valor ASCII a y b respectivamente. El cdigo es el siguiente manera: movlw 0x00 movwf FSR0L movlw 0x01 movwf FSR0H movlw 'a' movwf INDF0 incf FSR0L movlw 'b' movwf INDF0 CONTINUAR: ;continuar con el programa...
RAM
INDF
0x100
a b
FSR
0x101
Modos de direccionamiento
Direccionamiento directo
En este tipo de direccionamiento, el valor con el que operar la Unidad de control est contenido en el Opcode.
RAM
Ejemplo: registro EQU 0x070 ORG 0x00 goto MAIN ORG 0x020 MAIN: movlw 'K'; movwf registro,1 movff registro,0x104 CONTINUAR: ;continuar con el programa...
0x70
0x104
Modos de direccionamiento
Direccionamiento inherente
En este tipo de direccionamiento la instruccin no presenta operando. Este se sobre entiende de la misma instruccin.
Ejemplo:
Direccionamiento literal
En este tipo de direccionamiento el operando viene dado de forma explcita en la misma instruccin.
Ejemplo: