tutorial 2 ccs
Post on 04-Jun-2018
247 Views
Preview:
TRANSCRIPT
-
8/13/2019 Tutorial 2 CCS
1/17
tutorial 2 declaraciones de control(if, else y while)
-
8/13/2019 Tutorial 2 CCS
2/17
Qu son las declaraciones de control?Las declaraciones son usadas para controlar el proceso
de ejecucin del programa.
WHILE
WHILE se utiliza para repetir sentencias.while(expresin)
{
sentencia;
}
La expresin se evala y la sentencia se ejecutamientras la expresin es verdadera, cuando es falsa sesale del WHILE.
-
8/13/2019 Tutorial 2 CCS
3/17
Si se ejecutan las siguientes expresiones se consigue un
BUNCLE SIN FIN:while(1)
{
sentencias;
}
-
8/13/2019 Tutorial 2 CCS
4/17
IF - ELSE
Estas declaraciones de control nos ayuda a tomardecisiones. Por ejemplo prender o apagar un ledcuando se este pulsando un push button.
if(bit_test(porta,0)= =1){ //si RA0=1 entonces
bit_set(portb,0); // el RB0=1
}
else{ // si no se cumple
bit_clear(portb,0); // el if entonces RB0=0
}
-
8/13/2019 Tutorial 2 CCS
5/17
Diagrama de flujo
-
8/13/2019 Tutorial 2 CCS
6/17
Ejemplo 1 encender y apagar un
led con un push button.#include //llamado del fichero donde se especifican las caractersticas del PIC
#fuses xt,nowdt//tipo de cristal a utilizar
#use delay (clock=4000000)//reloj de 4Mhz#byte trisa=0x85//direccin del trisa en la memoria
#byte trisb=0x86
#byte porta=0x05
#byte portb=0x06
void main(){ //funcin principal
trisa=0xff;//se configura el puerto a como entrada
trisb=0x00;//se configura el puerto b como salida
-
8/13/2019 Tutorial 2 CCS
7/17
portb=0x00;//se pone en cero el puerto b
while(true){ //se crea un buncle infinitoif(bit_test(porta,0)= =1){// se evala si esta activado (en 1 lgico) el primer bit del puerto a
bit_set(portb,0); //si esta activado se pone en 1 el portb,
}else{ //si no esta activado se pone en 0 el portb,0.
bit_clear(portb,0);
}
}}
-
8/13/2019 Tutorial 2 CCS
8/17
SIMULACIN 1
-
8/13/2019 Tutorial 2 CCS
9/17
-
8/13/2019 Tutorial 2 CCS
10/17
-
8/13/2019 Tutorial 2 CCS
11/17
-
8/13/2019 Tutorial 2 CCS
12/17
-
8/13/2019 Tutorial 2 CCS
13/17
else{ if((bit_test(portb,0)==1)&&(bit_test(porta,0)==1)&&(bit_test(porta,1)==0)){
bit_clear(portb,5)&bit_clear(portb,6)&bit_clear(portb,7)&bit_set(portb,4); } else{ if((bit_test(porta,1)==1)&&(bit_test(portb,0)==1)&&(bit_test(porta,0)==0)){ bit_clear(portb,4)&bit_clear(portb,6)&bit_set(portb,5)&bit_set(portb,7); } else{
if((bit_test(porta,0)==1)&&(bit_test(porta,1)==1)&&(bit_test(portb,0)==1)){ bit_clear(portb,5)&bit_clear(portb,6)&bit_set(portb,7)&bit_set(portb,4); } else{ portb=0x00; //si no se cumple ningun if se pone en 0 el portb } } } } } } }
-
8/13/2019 Tutorial 2 CCS
14/17
Lo que hace el ELSE- IF es tomar decisiones mltiples es
decir si un el primer IF no se cumple se pasa al siguiente IFhasta que uno de estos se cumpla si no se cumple ningunose ejecuta el ultimo ELSE.
En la lnea:
if((bit_test(porta,0)==1||bit_test(porta,1)==1)&&(bit_test(portb,0)==0))
Significa que si RA0=1 o RA1=1 o ambos son uno y adems
RB0=0 se ejecuta la sentencia. Si el RB0=1 o si RA0=0 yRA1=0 no se cumple esta condicin.
-
8/13/2019 Tutorial 2 CCS
15/17
-
8/13/2019 Tutorial 2 CCS
16/17
-
8/13/2019 Tutorial 2 CCS
17/17
BLOG:
http://microcontroladores-ing-elec-rh.blogspot.mx/
REFERENCIA:
COMPILADOR C CCS Y SIMULADOR PROTEUS PARA
MICROCONTROLADORES PIC.
TUTORIAL REALIZADO POR:
ING. R.H.
http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/http://microcontroladores-ing-elec-rh.blogspot.mx/
top related