84
Sesión 3 Sesión 3 Introducción a la programación Introducción a la programación de de Microcontroladores Microcontroladores 1 M.C. Marco A. Ramírez Barrientos

Sesión 3 introduccion a microcontroladores

Embed Size (px)

Citation preview

Page 1: Sesión 3 introduccion a microcontroladores

Sesión 3 Sesión 3 Introducción a la programación Introducción a la programación

de de MicrocontroladoresMicrocontroladores

1M.C. Marco A. Ramírez Barrientos

Page 2: Sesión 3 introduccion a microcontroladores

• Introducción a los sistemas digitales.• Introducción a LabView.• Introducción a la programación de

ContenidoContenido

• Introducción a la programación de Microcontroladores PIC.

• Controladores Lógicos Programables, PLCs.

16, 23, 30 nov. y 7 dic. de 2011

2

Page 3: Sesión 3 introduccion a microcontroladores

OBJETIVO GENERAL

Conocer los conceptos fundamentales para laprogramación de microcontroladores, mediantelenguajes de programación ensamblador y C.lenguajes de programación ensamblador y C.

Page 4: Sesión 3 introduccion a microcontroladores

BIBLIOGRAFIA BÁSICA

1. Microcontrolador PIC16F84; Enrique Palacios, 2006; Alfaomega marcombo; 2ª. edición; 623 páginas.

2. Microcontroladores PIC. Diseño práctico de aplicaciones, Angulo Usategui, José María y Angulo Martínez, Ignacio, McGraw-Hill.Martínez, Ignacio, McGraw-Hill.

3. Advanced PIC Microcontroller Projects in C, Dogan Ibrahim, 2008, Ed. Elsevier.

Page 5: Sesión 3 introduccion a microcontroladores

INTRODUCCION AL MICROCONTROLADOR

• Un poco de historiaUn poco de historiaUn poco de historiaUn poco de historia

Inicialmente cuando no existían los microprocesadores, se requería para el diseño de circuitos electrónicos muchos diseño de circuitos electrónicos muchos componentes y cálculos matemáticos. Un circuito lógico básico requería de una gran cantidad de elementos electrónicos basados en transistores, resistencias, etc,

5

Page 6: Sesión 3 introduccion a microcontroladores

INTRODUCCION AL MICROCONTROLADOR

� Un poco de historiaUn poco de historiaUn poco de historiaUn poco de historia

En el año 1971 apareció el primer microprocesador el cual originó un cambio decisivo en las técnicas de diseño de la decisivo en las técnicas de diseño de la mayoría de los equipos.

Entre los microprocesadores mas conocidos tenemos el popular Z-80 y el 8085.

6

Page 7: Sesión 3 introduccion a microcontroladores

INTRODUCCION AL MICROCONTROLADOR

• Un poco de historiaUn poco de historiaUn poco de historiaUn poco de historia

Los diseñadores de equipos electrónicos ahora tenían equipos que podían realizar mayor cantidad de tareas en menos tiempo y mayor cantidad de tareas en menos tiempo y su tamaño se redujo considerablemente.

sin embargo, después de cierto tiempo aparece una nueva tecnología llamada microcontrolador que simplifica aun mas el diseño electrónico.

7

Page 8: Sesión 3 introduccion a microcontroladores

DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR

• MicroprocesadorMicroprocesadorMicroprocesadorMicroprocesador

Es un sistema abierto con el que puede construirse un computador con las características que se desee, acoplándole características que se desee, acoplándole los módulos necesarios.

La Unidad Central de Proceso (UCP), interpreta las instrucciones y el cambio de datos que las ejecuta.

8

Page 9: Sesión 3 introduccion a microcontroladores

DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR

• MicroprocesadorMicroprocesadorMicroprocesadorMicroprocesador

9

Page 10: Sesión 3 introduccion a microcontroladores

DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR

• MicrocontroladorMicrocontroladorMicrocontroladorMicrocontrolador

Es un sistema cerrado que contiene un computador completo.

Todas las partes del computador están contenidas en su interior y solo salen al exterior las líneas que gobiernan los periféricos.

10

Page 11: Sesión 3 introduccion a microcontroladores

DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR

11

Cada fabricante de microcontroladores oferta un

elevado número de modelos diferentes, desde los

más sencillos hasta los más sofisticados.

Page 12: Sesión 3 introduccion a microcontroladores

ARQUITECTURA INTERNA

Un microcontrolador posee todos los componentes de un computador, pero con unas características fijas que no pueden alterarse:– Procesador– Procesador– Memoria de programa (No volátil)– Memoria datos (lectura y escritura)– Líneas E/S para los controladores de

periféricos– Recursos auxiliares

12

Page 13: Sesión 3 introduccion a microcontroladores

ARQUITECTURA INTERNA

1. Procesador o CPU.2. Memoria no volátil para contener el programa.3. Memoria de lectura y escritura para guardar los datos.4. Líneas de E/S para los controladores de periféricos.5. Recursos auxiliares (Módulos para el control de

periféricos)13

Page 14: Sesión 3 introduccion a microcontroladores

PROCESADOR O CPU

Es el elemento más importante del microcontrolador y determina sus principales características, tanto a nivel de hardware como de software

Existen dos arquitecturas, se diferencian en la forma de conexión de la memoria al procesador y en los buses que cada una necesita:

– Arquitectura Von Neumann– Arquitectura Harvard

14

Page 15: Sesión 3 introduccion a microcontroladores

ARQUITECTURA VON NEUMANN

15

Algunas familias de microcontroladores como la INTEL-51 y la Z80

Page 16: Sesión 3 introduccion a microcontroladores

ARQUITECTURA VON NEUMANN

Existe una sola memoria, donde coexisten las instrucciones de programa y los datos, accedidos con un bus de dirección, uno de accedidos con un bus de dirección, uno de datos y uno de control.

16

Page 17: Sesión 3 introduccion a microcontroladores

ARQUITECTURA VON NEUMANN

Limitación:� Longitud de las instrucciones por el bus de

datos (varios accesos a memoria para instrucciones complejas).instrucciones complejas).

�Velocidad de operación (bus único para datos e instrucciones) e impide superponer ambos tiempos de acceso.

17

Page 18: Sesión 3 introduccion a microcontroladores

ARQUITECTURA HARVARD

18

Utilizada en sistemas embebidos en general.

Page 19: Sesión 3 introduccion a microcontroladores

ARQUITECTURA HARVARD

– Memoria de datos separada de la memoria de instrucciones

– Palabra de datos– Palabra de instrucción

– Conjunto reducido de instrucciones (RISC)– Conjunto reducido de instrucciones (RISC)– Ejecución de instrucciones en un ciclo de

instrucción.– Paralelismo implícito, segmentación del

procesador (pipe-line)

19

Page 20: Sesión 3 introduccion a microcontroladores

• El alto rendimiento que poseen los microcontroladores se debe a tres técnicas:

– Arquitectura Harvard– Arquitectura Harvard– Arquitectura RISC– Segmentación

20

Page 21: Sesión 3 introduccion a microcontroladores

TIPOS DE MEMORIAS

Esta diseñado para que en su memoria de programa se almacenen todas las instrucciones del programa de control.

1. ROM con máscara2. OTP (One Time Programmable)3. EPROM4. EEPROM5. FLASH

21

Page 22: Sesión 3 introduccion a microcontroladores

MEMORIA DE PROGRAMA (ROM)

1.1.1.1. ROM con máscaraROM con máscaraROM con máscaraROM con máscara

Se graba durante el proceso de fabricación mediante el uso de “máscaras”Se aconseja este tipo de memoria cuando Se aconseja este tipo de memoria cuando se precisan series muy grandes

22

Page 23: Sesión 3 introduccion a microcontroladores

MEMORIA DE PROGRAMA (ROM)

2 . OTP (One Time Programmable)2 . OTP (One Time Programmable)2 . OTP (One Time Programmable)2 . OTP (One Time Programmable)

Sólo se puede grabar una vez por parte del usuario.Se aconseja este tipo de memoria para Se aconseja este tipo de memoria para prototipos finales.

23

Page 24: Sesión 3 introduccion a microcontroladores

MEMORIA DE PROGRAMA (ROM)

3. EPROM3. EPROM3. EPROM3. EPROM

En la superficie de la cápsula del microcontrolador existe una ventana de cristal por la que se puede someter al chip de cristal por la que se puede someter al chip de la memoria a rayos ultravioleta para producir su borrado y emplearla nuevamente.

24

Page 25: Sesión 3 introduccion a microcontroladores

MEMORIA DE PROGRAMA (ROM)

4. EEPROM4. EEPROM4. EEPROM4. EEPROM

La grabación es similar a las memorias OTP y EPROM, pero el borrado es mucho más sencillo al poderse efectuar de la misma sencillo al poderse efectuar de la misma forma que el grabado, o sea, eléctricamente.Garantizan 1.000.000 de ciclos de escritura/borrado.

25

Page 26: Sesión 3 introduccion a microcontroladores

MEMORIA DE PROGRAMA (ROM)

5. FLASH5. FLASH5. FLASH5. FLASH

Se puede escribir y borrar en circuito al igual que la EEPROM, pero suelen disponer de mayor capacidad que estas últimas.mayor capacidad que estas últimas.Pueden ser programadas con las mismas tensiones de alimentación del microcontrolador.

26

Page 27: Sesión 3 introduccion a microcontroladores

MEMORIA DE DATOS (RAM)

Es una memoria volátil y se destina a guardar las variables y los datos (SRAM).

Los microcontroladores disponen de Los microcontroladores disponen de capacidades de RAM comprendidas entre 20 y 512 bytes.

Existen microcontroladores que disponen de memoria EEPROM para contener datos.

27

Page 28: Sesión 3 introduccion a microcontroladores

REGISTROS Y BITS

Un registro es una posición de memoria en la cual se puede almacenar un dato. Es decir que la memoria esta dividida en pequeñas partes llamadas “Registros”.

El primer registro de una memoria corresponde a la dirección 00H.

Hay un conjunto de registros que ya vienen “Predefinidos” desde la fábrica.

Cada registro esta dividido en 8 partes, Bits.28

Page 29: Sesión 3 introduccion a microcontroladores

LINEAS DE ENTRADA/SALIDA (PUERTOS)

Los microcontroladores cuentan con una serie de pines destinados a entrada y salida de datos o señales digitales. A estos pines se les denomina “Puerto”.

Los puertos están controlados por los registros.

Entradas salidas de propósito general, trabajo con dispositivos simples como relés, Leds, etc.

29

Page 30: Sesión 3 introduccion a microcontroladores

RECURSOS AUXILIARES

• Circuito de reloj.• Temporizadores y contadores.• Conversores AD y DA.• Comparadores• Modulador de ancho de pulsos (PWM)• Modulador de ancho de pulsos (PWM)• Puerto serie• Otros puertos de comunicación (USB, CAN)• Sistema de protección.• Estado de reposo

30

Page 31: Sesión 3 introduccion a microcontroladores

LOS MICROCONTROLADORES PIC

Los 'PIC' son una familia de microcontroladores tipo RISC (Reduced Instruction Set Computer) fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica desarrollado por la división de microelectrónica de General Instruments.

PIC “Peripheral Interface Controller”.

El PIC de 8 bits se desarrollo para el año 1975

31

Page 32: Sesión 3 introduccion a microcontroladores

LOS MICROCONTROLADORES PIC

Los microcontroladores PIC incorporan en su procesador tres características:� Procesador tipo RISC� Procesador segmentado� Procesador segmentado� Arquitectura HARVARD

Con estos recursos los PIC son capaces de ejecutar en un ciclo de instrucción todas las instrucciones, excepto las de salto que tardan el doble.

32

Page 33: Sesión 3 introduccion a microcontroladores

LA FAMILIA DE LOS PIC

Se divide en cuatro gamas:Gama enana, gama baja, gama media y gama alta.

Sus diferencias radica en:Sus diferencias radica en:El numero de instrucciones y longitudEl número de puertos y funciones.

Lo cual se refleja en el encapsulado, la complejidad interna y de programación, y en el número de aplicaciones.

33

Page 34: Sesión 3 introduccion a microcontroladores

NOMENCLATURA DE LOS PIC’S

PIC nnLLLxxx

nn: Un número propio de la gama del PIC

LLL: Código de letras donde la primera

indica la tensión de alimentación y lasotras dos el tipo de memoria que utiliza

Xxx: Número que indica el modelo del PIC.

34

Page 35: Sesión 3 introduccion a microcontroladores

NOMENCLATURA DE LOS PIC’S

35

Page 36: Sesión 3 introduccion a microcontroladores

GAMA ENANA

PIC 12C(F)XXX, de 8 patas (pines)

Aunque solo tienen 8 pines, pueden destinar hasta 6 como líneas de E/S para los periféricos porque disponen de un oscilador interno R-C.

36

Page 37: Sesión 3 introduccion a microcontroladores

GAMA ENANA

Características de los modelos PIC16C5X

37

Page 38: Sesión 3 introduccion a microcontroladores

GAMA BAJA O BASICA

• Mejores relaciones coste/prestaciones.• Encapsulados con 18 y 28 pines• Pueden alimentarse con una tensión 2.5V• 33 instrucciones con formato de 12bits.

38

Page 39: Sesión 3 introduccion a microcontroladores

GAMA BAJA PIC16C5X

39

Principales características de los modelos de gama baja.

Page 40: Sesión 3 introduccion a microcontroladores

GAMA MEDIA

• Encapsulado desde 18 hasta 68 pines• 35 instrucciones de 14 bits

40

Page 41: Sesión 3 introduccion a microcontroladores

GAMA MEDIA PIC16CXXX

41

Características relevantes de los modelos PIC16X8X de la gama media

Page 42: Sesión 3 introduccion a microcontroladores

GAMA ALTA

• Alcanzan 58 instrucciones de 16 bits• Sistema de gestión de interrupciones

vectorizadas • Incluyen variados controladores de • Incluyen variados controladores de

periféricos, puertas de comunicación serie y paralelo

• Arquitectura abierta.

42

Page 43: Sesión 3 introduccion a microcontroladores

EL PIC16X84

• Pertenece a la familia de la gama media• Tiene solo 18 pines• Tiene solo 18 pines• Posee una memoria de programa de 1K

palabras de 14bits cada una• 64 bytes como memoria de datos

auxiliar y opcional

43

Page 44: Sesión 3 introduccion a microcontroladores

TARJETA DE PRESENTACION DE PIC16X84

• Memoria de programa 1Kx14• Memoria de datos RAM 36 byte-PIC16C84 y

de 68 byte-PIC16F84• Memoria de datos 64bytes/EEPROM• Memoria de datos 64bytes/EEPROM• Pila de 8 niveles• Interrupciones 4 tipos diferentes• Juego de instrucciones 35• Encapsulado Platico DIP de 18 pines• Frecuencia de trabajo 10MHz Máxima

44

Page 45: Sesión 3 introduccion a microcontroladores

TARJETA DE PRESENTACION DE PIC16X84

• Temporizadores : Solo uno TMR0• Líneas E/S digitales : 13 Puerta A y Puerta B• Voltaje de alimentación : VDD de 2 a 6VDC• Voltaje de alimentación : VDD de 2 a 6VDC• Corriente máxima absorbida : 80mA-Puerta A

y 150mA-Puerta B• Corriente máxima suministrada : 50mA-

Puerta A y 100mA-Puerta B

45

Page 46: Sesión 3 introduccion a microcontroladores

ASPECTO EXTERNO

46

Page 47: Sesión 3 introduccion a microcontroladores

FRECUENCIA DE FUNCIONAMIENTO. EL RELOJ

Cuando un PIC16X8X funciona a 10MHz, le corresponde un ciclo de instrucción de 400ns.

Ciclo de instrucción: 4x100ns=400nsCiclo de instrucción: 4x100ns=400ns

Todas las instrucciones del PIC se realizan en un ciclo de instrucción menos las de salto.

Se aplica la técnica de segmentación o Pipeline

47

Page 48: Sesión 3 introduccion a microcontroladores

TIPOS DE OSCILADORES

• OSCILADOR TIPO RC

Un oscilador formado por una resistencia y un condensador

48

Page 49: Sesión 3 introduccion a microcontroladores

TIPOS DE OSCILADORES

• OSCILADOR TIPO HS

Un oscilador que alcanza una alta velocidad entre 4 y 20MHz, basado en un cristal de cuarzo o un resonador cerámicocristal de cuarzo o un resonador cerámico

49

Page 50: Sesión 3 introduccion a microcontroladores

TIPOS DE OSCILADORES

• OSCILADOR TIPO XT

Es un resonador de cristal o resonador para frecuencias estándar, comprendida entre 100KHz y 4MHz.100KHz y 4MHz.

50

Page 51: Sesión 3 introduccion a microcontroladores

TIPOS DE OSCILADORES

• OSCILADOR TIPO LP

Oscilador de bajo consumo con cristal o resonador diseñado para trabajar en un rango de frecuencias de 35 a 200KHz.rango de frecuencias de 35 a 200KHz.

El cristal de cuarzo o el resonador cerámico se coloca entre los pines OSC1 y OSC2

51

Page 52: Sesión 3 introduccion a microcontroladores

REINICIALIZACION O RESET

Con un nivel lógico bajo en MCLR# el microcontrolador se reinicializa:

1. El contador de programa se carga con la 1. El contador de programa se carga con la dirección 0.

2. La mayoría de los registros de estado y control del procesador toman un estado conocido y determinado.

52

Page 53: Sesión 3 introduccion a microcontroladores

ESQUEMA MINIMO DE MONTAJE DEL PIC16F84

53

Page 54: Sesión 3 introduccion a microcontroladores

EN EL INTERIOR DEL PROCESADOR

Los microcontroladores PIC incorporan tres característica:– Procesador tipo RISC– Procesador segmentado– Arquitectura Harvard

Una condición es la simetría y ortogonalidad en el formato de las instrucciones (14bits)

El juego de instrucciones se reduce a 35 y con la estructura segmentada se pueden realizar simultáneamente las dos fases que compone cada instrucción

54

Page 55: Sesión 3 introduccion a microcontroladores

EN EL INTERIOR DEL PROCESADOR

• El manejo intensivo del banco de registros, los cuales participan de una manera muy activa en la ejecución de instrucciones.

• La ALU, efectúa sus operaciones lógico-aritmética con dos operandos, uno es del registro W(Work) y el otro que puede provenir de cualquier registro o del propio código de instrucción.

55

Page 56: Sesión 3 introduccion a microcontroladores

ARQUITECTURA INTERNA DEL PIC16C84

Consta de siete bloques fundamentales:

• Memoria de programa EEPROM 1K x 14bits.

• Memoria de datos formada por dos áreas, una RAM aloja 22 registros de (SFR), 36 registros (GPR) y tipo EEPROM de 64 bytes.

• Camino de datos con la ALU de 8 bits y un registro de trabajo W.

56

Page 57: Sesión 3 introduccion a microcontroladores

Assembly language programming

• In order to function properly, we must define several microcontroller parameters such as: - type of oscillator,- whether watchdog timer is turned on, and

57

- whether watchdog timer is turned on, and- whether internal reset circuit is enabled.All this is defined by the following directive:

_CONFIG _CP_OFF&_WDT_OFF&PWRTE_ON&XT_OSC

Page 58: Sesión 3 introduccion a microcontroladores

58

Page 59: Sesión 3 introduccion a microcontroladores

Clock and Instruction Cycles

•• Instruction ClockInstruction Clock– Clock from the oscillator enters a microcontroller via OSC1 pin where internal circuit of a

microcontroller divides the clock into four even clocks Q1, Q2, Q3, and Q4 which do not overlap.

– These four clocks make up one instruction cycle (also called machine cycle) during which one instruction is executed.

– Execution of instruction starts by calling an instruction that is next in string.– Instruction is called from program memory on every Q1 and is written in instruction register – Instruction is called from program memory on every Q1 and is written in instruction register

on Q4.– Decoding and execution of instruction are done between the next Q1 and Q4 cycles. On the

following diagram we can see the relationship between instruction cycle and clock of the oscillator (OSC1) as well as that of internal clocks Q1-Q4.

– Program counter (PC) holds information about the address of the next instruction.

Page 60: Sesión 3 introduccion a microcontroladores

PIC16F877A Features

High Performance RISC CPU:• Only 35 single word instructions to learn

• All single cycle instructions except for program • All single cycle instructions except for program branches, which are two-cycle

• Operating speed: DC - 20 MHz clock input DC -200 ns instruction cycle

Page 61: Sesión 3 introduccion a microcontroladores

PIC16F877A Pin Layout

PORTA PORTB

PORTE

ADC inputs

Counter

0

external PORTE

PORT

C

PORTC

PORT

D

PORTD

external

input

Page 62: Sesión 3 introduccion a microcontroladores

PIC Memory

� The PIC16F877A has an 8192 (8k) 14bit instruction

program memory

368 Bytes Registers as Data Memory :� 368 Bytes Registers as Data Memory :

�Special Function Registers: used to control peripherals

and PIC behaviors

�General Purpose Registers: used to a normal

temporary storage space (RAM)

� 256 Bytes of nonvolatile EEPROM

Page 63: Sesión 3 introduccion a microcontroladores

PIC Program Memory� The PIC16F877 8192 (8k) 14bit instructions

When the

controller is

reset, program

execution starts

Takes a max of 8 addresses,

the ninth address will write

over the first.

If interrupted, program

execution continues

from here

execution starts

from here

Page 64: Sesión 3 introduccion a microcontroladores

PIC Data Memory

The

most

importa

nt

registers

The data memory is devided into 4 memory banks

registers

have

addresses

in all

the four

banks

Page 65: Sesión 3 introduccion a microcontroladores

Register Addressing ModesImmediate Addressing:

Movlw H’0F’

Indirect Addressing:

• Full 8 bit register address is written the special function

register FSR

• INDF is used to get the content of the address pointed by FSR

• Exp : A sample program to clear RAM locations H’20’ –

H’2F:MOVLW 0x20 ;initialize pointer

MOVWF FSR ;to RAM

NEXT CLRF INDF ;clear INDF register

Direct Addressing:

Uses 7 bits of 14 bit instruction to identify a register file

address 8th and 9th bit comes from RP0 and RP1 bits of

STATUS register.

i.e. Z equ D’2’ ; Z=2

btfss STATUS, Z ; test if the 3rd bit of the

STATUS register is set

Page 66: Sesión 3 introduccion a microcontroladores

PIC Family Control Registers

• Uses a series of “Special Function Registers” for controlling peripherals and PIC behaviors.

� STATUS ���� Bank select bits, ALU bits (zero, borrow,

carry)carry)

� INTCON � Interrupt control: interrupt enables, flags, etc.

� OPTION_REG � contains various control bits to

configure the TMR0 prescaler/WDT postscaler

,the External INT Interrupt, TMR0 and the weak

pull-ups on PORTB

Page 67: Sesión 3 introduccion a microcontroladores

Special Function Register

”STATUS Register“

Page 68: Sesión 3 introduccion a microcontroladores

Special Function Register

”INTCON Register“

Page 69: Sesión 3 introduccion a microcontroladores

PIC Peripherals

� Each peripheral has a set of SFRs to control its operation.

� Different PICs have different on-board peripherals

Page 70: Sesión 3 introduccion a microcontroladores

Peripheral Features

� 5 Digital I/O Ports

� Three timer/counter modules

� Timer0: 8-bit timer/counter with 8-bit pre-scaler

� Timer1: 16-bit timer/counter with pre-scaler, can be incremented during SLEEP via

external crystal/clock

� Timer2: 8-bit timer/counter with 8-bit period register, pre-scaler and post-scaler

� A 10-bit ADC with 8 inputs � A 10-bit ADC with 8 inputs

� Two Capture, Compare, PWM modules

� Capture is 16-bit, max. resolution is 12.5 ns

� Compare is 16-bit, max. resolution is 200 ns

� PWM max. resolution is 10-bit

� Synchronous Serial Port (SSP) with SPI™ (Master mode) and I2C™ (Master/Slave)

� Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI) with 9-

bit address detection

� Parallel Slave Port (PSP) 8-bits wide, with external RD, WR and CS controls

Page 71: Sesión 3 introduccion a microcontroladores

PIC Peripherals: Ports (Digital I/O)

� Ports are basically digital I/O pins which exist in all PICs

� The PIC16F877A have the following ports:

� PORT A has 6 bit wide, Bidirectional

� PORT B,C,D have 8 bit wide, Bidirectional

PORT E has 3 bit wide, Bidirectional� PORT E has 3 bit wide, Bidirectional

� Ports have 2 control registers

� TRISx sets whether each pin is an input (1) or output (0)

� PORTx sets their output bit levels or contain their input bit levels

� Pin functionality “overloaded” with other features

� Most pins have 25mA source/sink thus it can drive LEDs directly

Page 72: Sesión 3 introduccion a microcontroladores

PIC Peripherals: Analogue

to Digital Converter

�Only available in 14bit and 16bit cores

�Fs (sample rate) < 54KHz�Fs (sample rate) < 54KHz

� the result is a 10 bit digital number

�Can generate an interrupt when ADC conversion is

done

Page 73: Sesión 3 introduccion a microcontroladores

PIC Peripherals: Analogue to

Digital Converter

� The A/D module has four registers. These registers are:� A/D Result High Register (ADRESH)

� A/D Result Low Register (ADRESL)

� A/D Control Register0 (ADCON0)

� A/D Control Register1 (ADCON1)

� Multiplexed 8 channel inputs� Must wait Tacq to charge up sampling capacitor� Must wait Tacq to charge up sampling capacitor

� Can take a reference voltage different from that of the controller

Page 74: Sesión 3 introduccion a microcontroladores

PIC Peripherals: USART: UART

� Serial Communications Peripheral:

Universal Synch./Asynch. Receiver/Transmitter

� Interrupt on TX buffer empty and RX buffer full� Interrupt on TX buffer empty and RX buffer full

� Asynchronous communication: UART (RS-232C serial)

� Can do 300bps - 115kbps

� 8 or 9 bits, parity, start and stop bits, etc.

� Outputs 5V so you need a RS232 level converter (e.g.,

MAX232)

Page 75: Sesión 3 introduccion a microcontroladores

PIC Applications

� LED Flasher

Loop:

bsf PORTB, 0

call Delay_500mscall Delay_500ms

bcf PORTB, 0

call Delay_500ms

goto Loop

Page 76: Sesión 3 introduccion a microcontroladores

PIC Applications

� Button Read

Movlw0

movwf TRISD, f

bsf TRISD, 2

Loop:Loop:

btfsc PORTD, 2

goto light

goto No_light

Light:

bsf PORTB,0

goto Loop

No_light:

bcf PORTB,0

goto Loop

Page 77: Sesión 3 introduccion a microcontroladores

mikro C

77

Page 78: Sesión 3 introduccion a microcontroladores

Las variables básicas en este compilador específico son: • bit

• char• char

• short

• int

• long

• float

• double 78

Page 79: Sesión 3 introduccion a microcontroladores

• Las variables bit permiten almacenar un valor lógico es decir verdadero o falso, 0 ó 1.

• Las variables char se utilizan para almacenar caracteres codificados con el código ASCII, son útiles para guardar letras o textos.

• Una variable short almacena un número entero de 8 bits corto puede valer de: -127 a 127.

• Las variables tipo int guardan números enteros de 16 bits, está variable permite guardar números de: -32767 a 32767.

• La variable tipo long almacena números enteros largos de 32 bits, su rango puede ser de:

• -2147483647 a 2147483647. • Las variables tipo float y double permiten guardar números

con punto decimal79

Page 80: Sesión 3 introduccion a microcontroladores

80

Page 81: Sesión 3 introduccion a microcontroladores

• bit VARIABLE1_BIT; //Declaración de una variable tipo bit.

• char CARACTER; //Declaración de una variable tipo char.

• char CARACTER2='J'; //Declaración de una variable tipo char

inicializada con el

• //valor ASCII del carácter J.

• int ENTERO=1234; //Declaración de una variable tipo entera inicializada

con

• //el valor 1234.

• float DECIMAL=-12.45; //Declaración de una variable con punto decimal

• //inicializada con el valor -12,45.

• double DECIMAL2=56.68; //Declaración de una variable con punto

decimal

• //inicializada con el valor 56,68.

• long ENTERO2=-954261; //Demacración de una variable de tipo entero

largo

• //inicializada con el valor -954261.81

Page 82: Sesión 3 introduccion a microcontroladores

• Los siguientes ejemplos muestras como declarar variables sin signo:

• unsigned char CARACTER; //Declaración de una

variable tipo char sin signo.

• unsigned int ENTERO; //Declaración de una variable • unsigned int ENTERO; //Declaración de una variable

tipo entera sin signo.

• unsigned long ENTERO2; //Demacración de una

variable de tipo entero largo sin signo.

82

Page 83: Sesión 3 introduccion a microcontroladores

void main() {

TRISA = 0x00; // set direction to be output

TRISB = 0x00; // set direction to be output

TRISC = 0x00; // set direction to be output

TRISD = 0x00; // set direction to be output

do {

PORTA = 0x00; // Turn OFF LEDs on PORTA

83

PORTA = 0x00; // Turn OFF LEDs on PORTA

PORTB = 0x00; // Turn OFF LEDs on PORTB

PORTC = 0x00; // Turn OFF LEDs on PORTC

PORTD = 0x00; // Turn OFF LEDs on PORTD

Delay_ms(100); // 1 second delay

PORTA = 0xFF; // Turn ON LEDs on PORTA

PORTB = 0xFF; // Turn ON LEDs on PORTB

PORTC = 0xFF; // Turn ON LEDs on PORTC

PORTD = 0xFF; // Turn ON LEDs on PORTD

Delay_ms(100); // 1 second delay

} while(1); // Endless loop

}

Page 84: Sesión 3 introduccion a microcontroladores

84