Top Banner
Presented by - Nandan Desai Department of Electrical Engineering (FOE) MEFGI 1
22
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Embedded c

Presented by

-Nandan DesaiDepartment of Electrical Engineering (FOE)

MEFGI

1

Page 2: Embedded c

To let the microcontroller do any task, we need to

program it.

The 8051 microcontroller can be programmed in 2ways:

1. Using Assembly Language

2. Using Embedded C language

We, today, are going to concentrate on programmingof 8051 microcontroller using Embedded C.

AN OBVIOUS QUESTION :

Programming the 8051 Microcontroller

2

Page 3: Embedded c

Advantages of C language:

1. Comparatively, modification is easy.

2. The code developing time is less.

Disadvantages/Limitations:

1. Memory requirement is more.

2. More execution time is required.

So, the reason is…

3

Page 4: Embedded c

For programming the embedded hardware devices,

we need to use Embedded C language instead of ourconventional C language.

The key differences between conventional C andEmbedded C are:

1. Embedded C has certain predefined variables forregisters, ports etc. which are in 8051 e.g. ACC, P1,P2, TMOD etc.

2. We can run super loop (infinite loop) in embeddedC language.

Embedded C

4

Page 5: Embedded c

We know that the programming in C language is

solely done by dealing with different variables.

In case of Embedded C, these variables are nothingelse but the memory locations of different memoriesof the microcontroller like code memory(ROM), datamemory (RAM), external memory etc.

To use these memory locations as variables, we needto use data types.

There are 7 different data types in embedded C for8051… Lets go through them

Data types in Embedded C

5

Page 6: Embedded c

There are 7 data types in Embedded C for 8051:

1. unsigned char

This data type is used to define an unsigned 8-bitvariable. All 8-bits of this variable are used to specify data.Hence the range of this data type is (0)10 𝑡𝑜 255 10.

e.g. unsigned char count;

2. signed char

This data type is used to define a signed 8-bit variable.Here MSB of variable is used to show sign (+/-) while rest 7bits are used to specify the magnitude of the variable. Hencethe range of this data type is (−128)10 𝑡𝑜 127 10.

e.g. signed char temp;

7 Data types

6

Page 7: Embedded c

3. unsigned int

This data type is used to define a 16-bit variable.Hence from this we can comment that this data typescombines any 2 memory locations of the data memoryas one variable. Here all 16 bits are used to specify data.So the range of this data type is (0)10 𝑡𝑜 (65535)10.

4. signed int

This data type is used to define a signed variablelike signed char but of 16-bit size. Hence its range is(−32768)10 𝑡𝑜 (32767)10.

continued...

7

Page 8: Embedded c

5. sfr

This is an 8-bit data type used for defining names ofSpecial Function Registers (SFR’s) that are located inRAM memory locations 80 H to FF H only.

e.g. sfr P0 = 0x80;

6. bit

This data type is used to access single bits from thebit-addressable area of RAM.

e.g. bit MYBIT = 0x32;

continued...

8

Page 9: Embedded c

7. sbit

The sbit data type is the one which is used to defineor rather access single bits of the bit addressable SFR’sof 8051 microcontroller.

e.g. sbit En = P2^0;

continued...

9

Page 10: Embedded c

The decision control structures are used to decide

whether to execute a particular block of codedepending on the condition specified.

Following are some decision control structures:

1. if statement

2. if…else statement

3. elseif ladder

Decision control structures

10

Page 11: Embedded c

if and if...else statement

if statement

if(condition)

{

statement-1;

statement-2;

……..

}

if...else statement

if(condition)

{

statement-1;

statement-2;

………

}

else

{

statement n;

} 11

Page 12: Embedded c

The loop statements are the one which are used

when we want to execute a certain block of code formore than one times either depending on situationor by a predefined number of times.

Embedded C is basically having two loopstatements:

1. for loop

2. while loop

Let us see on their formats:

Loop statements

12

Page 13: Embedded c

for loops are used to repeat any particular piece of code a predefined number of times.

for(initializations ; conditions ; updates)

{

statement-1;

statement-2;

………

}

for loop

13

Page 14: Embedded c

while loop also has the provision to repeat a certain

block of code but here the block is repeateddepending on the condition specified.

The loop keeps on repeating until the conditionbecomes false.

Format of while loop is:

while(condition)

{

statement-1;

statement- 2;

………

}

while loop

14

Page 15: Embedded c

break

The break statement, whenever is encountered in theloop, it forces the control to terminate the loop in whichit is written.

continue

Whenever this statement is encountered in any loop,the statements in the loop after it won’t be executed i.e.will be skipped and again control will be transferred tocheck the condition of the loop.

break & continue statements

15

Page 16: Embedded c

#include <reg51.h> header file

sbit <name>=<bit address>; sfr bit definitions

sfr <name>=<sfr address>; sfr definition

Data-type udf1(data-type var_name); User defined function

Data-type udf2(data-type var_name);

void main(void) main function

{

statement-1;

statement-2;

…….. ;

Format of any C Program

16

Page 17: Embedded c

………;

udf1(value);

………; User defined function call

udf2(value);

}

Data-type udf1(data-type var_name)

{ statement-block;

return(ret_value);

}

Similarly 2nd function udf2 is defined…

continue…

17

Page 18: Embedded c

Sometimes, there comes a situation in which in a

program a group of statements is used frequently.

Writing these statements again & again makes ourprogram clumsy to write as well as it consumes morememory space.

To overcome this problem there is a facility in Clanguage to define a function. In function we canwrite the particular group of statements which isgetting repeated continuously.

Now anytime when we want to use that code group,we just have to call the function and its done.

Functions

18

Page 19: Embedded c

1. No arguments, no return values

2. With no arguments and a return value

3. With arguments but no return value

4. With arguments and return value

Types of functions

19

Page 20: Embedded c

There are 3 ways to deal with a function:

1. Define first, then use

2. Do prototyping (i.e. Define first, use after main() )

3. Do prototyping in header file

Let us see all the 3 in brief:

Define first, then use

In this case, before writing the main function, we define the user-defined function and then use it in main() function whenever required.

Using a function

20

Page 21: Embedded c

Do prototyping and define after main function

In this case the function name, data type andargument data type are specified before writing mainfunction to declare that we’ll later implement thisfunction.

Do prototyping in header file

In this case, define the function in a (user defined)header file and then just include that header file in yourprogram.

continued…

21

Page 22: Embedded c

22