Home »
Embedded Systems
Reading and Writing Values in Microcontroller Ports
In this tutorial, we will learn how to read and write values (bytes, bits) in Microcontroller's ports?
By Sudarshan Paul Last updated : May 13, 2023
Reading and Writing Bytes
In this example, we will see how we can read input from one port and copy it to the other port of an 8051 microcontroller.
A simple "Super Loop" application which copies the value from Port 1 (P1) to Port 2 (P2).
#include <Reg52.H>
void main(void) {
unsigned char Port1_value;
// Must set up P1 for reading
P1 = 0xFF;
while (1) {
// Read the value of P1
Port1_value = P1;
// Copy the value to P2
P2 = Port1_value;
}
}
Reading and Writing Bits
In the previous example, we have seen how we can copy the value from one port of microcontroller to the other. In this example, we will refer how we can copy the value from one pin to another pin of the same port in an 8051 microcontroller. This is required in cases when the pins of a particular port are connected to the different input and output devices. Thus in such cases, the code to access the devices will be different as per the companies manufacturing them. So there comes the necessity to read from and write to a particular pin only, rather than the entire port of the microcontroller.
Let's see how this can be achieved,
#include <Reg52.H>
sbit Switch_pin = P1 ^ 0;
sbit LED_pin = P1 ^ 1;
void main(void) {
bit x;
// Set switch pin for reading
Switch_pin = 1;
while (1) {
x = Switch_pin; // Read Pin 1.0
LED_pin = x; // Write to Pin 1.1
}
}