0% found this document useful (0 votes)
44 views15 pages

Embedded C Programming

This document discusses embedded C programming for the 8051 microcontroller. It covers using C instead of assembly for easier and more portable programming. It also discusses C data types like unsigned char, signed char, unsigned int, and sbit that are useful for 8051 programming. Examples are provided to toggle ports with delays, send values to ports based on conditions, and other common embedded programming tasks.
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
Download as pptx, pdf, or txt
0% found this document useful (0 votes)
44 views15 pages

Embedded C Programming

This document discusses embedded C programming for the 8051 microcontroller. It covers using C instead of assembly for easier and more portable programming. It also discusses C data types like unsigned char, signed char, unsigned int, and sbit that are useful for 8051 programming. Examples are provided to toggle ports with delays, send values to ports based on conditions, and other common embedded programming tasks.
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1/ 15

Embedded C Programming

DR. RITULA THAKUR


Outline
Types of Programming Languages
 Machine language
 Assembly language
 High level language

Programming 8051 in C

Creating hex file using Keil Compiler

Burning hex file into microcontroller


 ISP
 Universal Super-pro programmer
Why program the 8051 in C?
It is easier and less time consuming 2 write
in C than assembly

C is easier 2 modify & update

C code is portable
C data types for the 8051
Since one of the goals of 8051 C programmers is to
create smaller hex files, it is worthwhile to re-examine
C data types for 8051 C
This will help programmers 2 create smaller hex files
Unsigned char
8-bit data type-takes value in the range of 0-255 (00-
FFH)
Most widely data types for the 8051
Signed char is default
Write an 8051 C program to send values 00-FF to
P1

#include<reg51.h>
Void main (void)
{
unsigned char z;
for(z=0;z<=255;z++)
P1=z;
}
Toggle all the bits of P1 continuously
#include<reg51.h>
void main (void)
{
for(; ;) // repeat forever
{
P1=0x55; // 0x indicates data is in hex
P1=0xAA;
}
}
Signed char
8-bit data type dat uses d MBS-D7 to represent – or +
value
Values from -128 to +127
Default is signed char
Unsigned int
16-bit data type
Values in the range 0-65535 (0000-FFFF H)
Used to set counter values of >256
Takes 2 bytes of memory
Sbit data type
Used for a single bit
Format:
sbit name= bit
For ex:
sbit LED =P1^0
Write an 8051 C program to toggle bit D0 of port
P1 50,000 times
#include<reg51.h>
sbit MYBIT=P1^0; //sbit is declared out of main
//program
Void main (void)
{
unsigned int z;
for(z=0;z<50000;z++)
{
MYBIT=o;
MYBIT=1;
}
}
Time delay using C
There are two ways to create a time delay in 8051 C:
1. Using a simple for loop
2. Using the 8051 timers
Three factors that can affect the accuracy of delay
Compiler choice
Crystal frequency
The 8051 design
Original 8051 design used 12 clock periods per m/c cycle
DS5000- 4 clock periods per m/c cycle
DS89C420- 1 clock periods per m/c cycle
Toggle all the bits of P1 continuously with some
delay
#include<reg51.h>
void main (void)
{
unsigned int x;
for(; ;) // repeat forever
{
P1=0x55; // 0x indicates data is in hex
for (x=0;x<40,000;x++); //delay size unknown
P1=0xAA;
for (x=0;x<40,000;x++);
}
}
Get a byte of data from P0. If it is less than 100,
send it to P1; otherwise send it to P2
#include<reg51.h>
void main (void)
{
unsigned int mybyte;
P0=0xFF;
for(; ;) // repeat forever
{
mybyte = P0; // 0x indicates data is in hex
if(mybyte<100)
P1=mybyte; //send it to P1 if less than 100
else
P2=mybyte; //send it to P2 if more than 100
}
}

You might also like