C is general-purpose structured programming language or high level language. It was developed by...

Post on 24-Dec-2015

213 views 0 download

Transcript of C is general-purpose structured programming language or high level language. It was developed by...

Welcome to AMUROBOCLUB

C programming basics

C is general-purpose structured programming

language or high level language.

It was developed by Dennis Ritchie in 1970s at Bell

laboratories.

C supports a large no. of operators and a large no.

of library function.

C is most popular language used for system

programming ,such as development of compilers,

interpreters , assemblers , operating system like

UNIX.

C-Programming:

A typical C program has 3 sections:

#include< stdio.h > //Header file section

#include< stdio.h > void main( )

{int a,b; //Type declaration section//Instruction section

}

C program structure

#include <stdio.h>main(){ printf(“Hello World”);}

A simple Program

A library function is a self-contained program

that carries out some specific as well as

defined tasks.

The function prototype or the reference is

defined in the header files section so we have

to include them in the beginning of program.

Example: #include, #define

Library function:

The statements used to change the control

flow in a program are called the control

statements or control structures in C.

Control statements: Logical if structure

If-else structure

Nested if-else

Unconditional goto statement

Switch structures

Control statements:

The logical if structure checks a given logical condition and transfers the control accordingly.

Syntax:If(condition){

Statement;}

Example: if(x==3){Y=2*x;}

If Statement:

#include <stdio.h>int main(){

int a=1;If(a==1) {

printf(“true logic”); }If(a==0) {

printf(“false logic”); }return 0;

}

Example

The if-else structure is more useful than logical if structure.

Syntax:if(expression){ S1; }

else { S2; }

Example:if(i==0){ s=s+1;}

else { s=s-1; }

If else Statement:

#include <stdio.h>int main(){ int a=1;If(a==1) {printf(“true logic”); }else{printf(“false logic”); }return 0;}

Example

C provides three loop structures to perform

looping operations or iterations, in which a

set of statements can be repeatedly

executed as long as condition is satisfied.

Loops are:

while

Do while

For

Loops:

It is similar to the while-loop structure except that the condition is checked at the end of the loop.Syntax:

do{S1;} while(condition);

Example:do{ i=i+1;} while(i <2);

do-while loop:

#include <stdio.h>int main(){int i=0;do{printf(“value of i=%d”,i);i++;}while(i<10);return 0;}

Example

In while-loop structure condition is checked at the starting of the loop.

Syntax: while(condition)

{ s1;}

Example: while(i>0)

{ j=j+1;}

while loop:

#include <stdio.h>int main(){int i=0;while (i<10){printf(“value of i=%d”,i);i++;} return 0;}

Example

The expr1 is the statement assigning an initial

value to a variable,expr2 is a logical expression

and expr3 is a statement that is used to alter the

value was assigned in the initial expression.

Syntax:

For(expr1;expr2;expr3)

{ statements;

}

Example:

For(i=1;i<=5;i++)

{ j=j+1;}

For loop

#include <stdio.h>int main(){ int i; for(i=0;i<10;i++){printf(“value of i=%d”,i);} return 0;}

0; 1; Binary to Decimal Conversion Decimal to Binary Conversion

Binary Numbers

0-9, A, B, C, D, E, F Conversion Decimal to Hexa decimal and vice versa Binary to Hexa Decimal and vice versa

HexaDecimal Numbers

0-7 Conversion

Octal Numbers

~ One’s Complement (unary operator) >> Right Shift << Left Shift & Bitwise AND | Bitwise OR ^ Bitwise XOR (Exclusive OR) Bitwise Compound Assignment

Operators(eg. <<=, >>=,|=,&=, and ^=)

Bitwise Operators

#include <stdio.h>int main(){ unsigned char ch=32;unsigned char dh;dh=~ch;printf(“~ch=%d\n”,dh);printf(“~ch=%x\n”,dh);printf(“~ch=%X\n”,dh);return 0;}

Example for One’s Complement

Ch=11010111;Ch>>1 gives output 01101011;Ch>>2 gives output 00110101;

Right Shift Operator

#include <stdio.h>void showbits(unsigned char);int main(){ unsigned char num=225,i,k;printf(“\n Decimal %d is same as hexa

%x”,num,num);for(i=0;i<=5;i++){k=num>>i;printf(“\n %d right shift %d gives %x”,num,I,k);//showbits(k);}return 0;}

Example

Same as right shift operator <<

Left Shift Operator

Bitwise OR operator (|) Bitwise AND operator (&) Bitwise XOR operator(^)

void showbits(unsigned char n) { unsigned char i,k,andmask; for(i=7;i>=0;i--) { andmask=1<<i; k=n & andmask; If(k==0) printf(“0”); else printf(“1”); } }

Showbits function

PORTS programming BASICS

ROBOT:

Robot is a machine that gathers information

about its environment(senses) and uses that

information to follow instructions to do work.

MICROCONTROLLERS:

Microcontrollers is a single chip computer

containing a processor core , memory and

programmable input/output peripherals.

Robot & Microcontrollers:

Atmega 16L pin diagram:

DDRX: defines whether the port will act as i/p port or o/p port.

1 use for output 0 use for input

Example: DDRA = 0b11111111; (binary)

DDRA = 0xFF; (hexa decimal)DDRA = 1; (decimal)DDRA = 010; (octal)

Ports programming:

DDRX.Y:

Define individual pin (pin Y of port X) acts

as the i/p pin or the o/p pin

Example:

DDRA.3=1;

pin 3 of port A is o/p port.

PORTX:

Use to assign value to PORTX.

Example:

PORTA=27

decimal value 27 is assigned to the portA.

PORTX.Y:

Use to assign value to individual pins(y) of

any port (X).

Example:

PORTA.0=1

assign value 1 to the pin0 of the port A.

PINX:

Read 8-bit integer value from the port X.

Example:

X=PINA;

Read the 8-bit integer value from the portA.

0<X<255

PINX.Y :

Read 1-bit value (individual pin value) from PORTX.

Example:

X= PINA.2; ( value may be 0 or 1)

PORTA is different from port A:

PORTA

DDRA

PINA

uCExternal

world

Port A

PROGRAMS:

A program to o/p 33 (hex) on Port D.

#include <mega16.h>

void main( ){DDRD=0xFF; PORTD=0x33;}

PROGRAMS:A program read pins 2 and 7 of Port A.

#include <mega16.h>

void main( ){unsigned int x,y;DDRA=0b01111011;

x=PINA.2;y=PINA.7;}

LED:

+

-

+ VE

GND

Longer leg is +ve Terminal

Glowing LED:

PortA

+

-01

PORTA=0b00000010;

PORTA=0x02;

Or

Or

For glowing LEDPORTA.0=0 (GND)PORTA.1=1 (+V)

void main(){

DDRB=0XFF;while(1){

PORTB=0XFF;delay_ms(100);PORTB=0X00;delay_ms(100);

}}

Blinking of led:

THANK YOU