Es Record Final
Es Record Final
DATE:
AIM:
To write an assembly language program using simulator.
APPARATUS REQUIRED:
1. 8051-Microcontroller Kit - 1.
2. DC Power supply – 5V.
PROGRAM:
ORG 0000H
MOV R0,#30H; get memory location in memory pointer R0
MOV dptr,#1000h;
MOV R2,#0AH
REPEAT:MOVX A,@DPTR;
XCH A,@R0;
MOVX @dptr,A;
INC R0;
INC DPTR;
DJNZ R2,REPEAT;
END
OBSERVATION:
Before Execution
1000h:0BH,17H,2DH,41,4AH,53,52H,0FH,1CH,0AH
30H: 01H,02H,3H,4H,5H,6H,7H,8H,9H,0AH
After Execution:
30H: 0BH, 17H, 2DH, 41, 4AH, 53, 52H, 0FH, 1CH, 0AH
1000H:01H,02H,3H,4H,5H,6H,7H,8H,9H,0AH
RESULT:
Thus the an assembly language program using simulator are performed using 8051 was
executed and verified successfully.
1
EX No .2 TEST DATA TRANSFER BETWEEN REGISTERS AND MEMORY.
DATE:
AIM:
To write an assembly language program to perform ALU operation two 8-bit numbers
using 8051.
APPARATUS REQUIRED:
8051-Microcontroller Kit - 1.
DC Power supply – 5V.
PROGRAMMING STEPS:
1. Take a two address pointer for source and address memory.
2. Load counter from first source memory.
3. Get the first data from source memory into accumulator.
4. Exchange the content of A and destination memory pointer.
5. Increment source and destination memory pointer.
6. Decrement the counter.
7. If the counter is not zero repeat the sequence.
8. End the program.
PROGRAM
ORG 4000H
MOV R0,#40H
MOV R1,#41H
MOV A,@R0
MOV R2,A
INC R0
BACK:MOV A, @R0
XCH A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,BACK
END
2
OBSERVATION:
Before Execution:
After Execution:
RESULT:
Thus the program for 8-bit data transfer between the register and memory are
performed using 8051 was executed and verified successfully.
3
EX N0 .3 PERFORM ALU OPERATIONS
DATE:
AIM:
To write an assembly language program to perform ALU operation two 8-bit numbers
using 8051.
APPARATUS REQUIRED:
8051-Microcontroller Kit - 1.
DC Power supply – 5V.
PROGRAM:
ORG 4100H
MOV A, #DATA1
ADD A, #DATA2
MOV DPTR, #4500
MOVX @DPTR, A
HERE: SJMP HERE
OBSERVATION:
Input Output
Data 1 Data 2 Address Data
04 4500
4
PROGRAM:
ORG 4100H
MOV A, #DATA1
SUBB A, #DATA2
MOV DPTR, #4500
MOVX @DPTR, A
HERE: SJMP HERE
OBSERVATION:
Input Output
Data 1 Data 2 Address Data
06 4500
PROGRAM:
ORG 4100H
MOV A, #DATA1
MOV B, #DATA2
MUL AB
MOV DPTR, #4500
MOVX @DPTR, A
INC DPTR
MOV A, B
MOVX @DPTR, A
HERE: SJMP HERE
OBSERVATION:
Input Output
Data 1 Data 2 Address Data
04 4500
4501
5
(IV) DIVISION OF 8 BIT NUMBERS
ALGORITHM:
PROGRAM:
ORG 4100H
MOV A, #DATA1
MOV B, #DATA2
DIV AB
MOV DPTR, #4500
MOVX @DPTR, A
INC DPTR
MOV A, B
MOVX @DPTR, A
HERE: SJMP HERE
OBSERVATION:
Input Output
Data 1 Data 2 Address Data
06 4500
4501
RESULT:
Thus the program for 8-bit arithmetic operations are performed using 8051 was
executed and verified successfully.
6
Logical Manipulations (AND, OR, XOR, NOT)
ALGORITHM:
1. Initialize the SI register and store the data.
2. Move the contents from memory to AH and AL registers.
3. Perform AND, OR, NOT and XOR operations based on the values stored in AH and AL
register.
4. Store the results in the memory location.
PROGRAM:
MOV SI, 1200H
MOV AX, [SI]
MOV BX, [SI+2]
MOV CX, AX
OR AX,BX
AND CX,BX
XOR DX,BX
MOV DI, 1500H
MOV [DI], AX
MOV [DI+2], CX
MOV [DI+4], DX
HLT
OBSERVATION:
Input Output
Address Data Address Data
1200 FF 1500 FF
1201 FF 1501 FF
1202 00 1502 00
1203 00 1503 00
1504 FF
1505 FF
RESULT:
Thus the assembly language program for performing various logical operations
using 8086 was executed and verified successfully.
7
EX No .4 WRITE BASIC AND ARITHMETIC PROGRAMS USING EMBEDDED C
DATE:
AIM:
Software required: -
Keil u vision 5
Theory: -
This experiment aims to perform basic arithmetic operation using the software keil u vision 5. The
program is by default present after installation of this software. Firstly the header files REG52.H,
stdio.h are declared for the intended 8051. Programming for debugging with Monitor-51is made.
Now the main function starts. The serial port for 1200 baud at 16MHz is set up. An embedded
program never exits (because there is no operating system to return to).
Program:-
#include <REG52.H>
void main(void)
#addition
x=0*12;
y=0*34;
P0=0*00;
z=x+y;
P0=z;
#substraction
a=0*12;
b=0*34;
P1=0*00;
c=a-b;
8
P0=c;
#multiplication
d=0*12;
e=0*34;
P2=0*00;
f=e*d;
P0=f;
#division
p=0*12;
q=0*34;
P2=0*00;
r=p%q;
P0=r;
9
Select Keil_v5 present in Local Disk (C:)
10
OBSERVATION:
Result:
DATE:
AIM:
To learn the basics of Arduino Platform and its Programming.
HARDWARE & SOFTWARE
1. Arduino board
2. USB Cable
3. Arduino IDE software
ARDUINO PLATFORM:
The USB connection with the PC is necessary to program the board and not just to
power it up. The Uno automatically draw power from either the USB or an external
power supply. Connect the board to computer using the USB cable. The green power
LED (labelled PWR) should go on.
PROCEDURE:
Open sketch
Open the LED blink example sketch: File > Examples >01.Basics > Blink.
12
Select board type and port
Select the entry in the Tools > Board menu that corresponds to your Arduino board.
Select the serial device of the board from the Tools | Serial Port menu. This is likely to be
COM3 or higher (COM1 and COM2 are usually reserved for hardware serial ports). To
find out, disconnect the board and re-open the menu; the entry that disappears should
be the Arduino board. Reconnect the board and select that serial port.
13
Upload the program
Now, simply click the "Upload" button in the environment. Wait a few seconds - the RX
and TX leds on the board flashing. If the upload is successful, the message "Done
uploading." will appear in the status bar.
14
I2C Communication
I2C is short for Inter-IC. And it is a type of BUS. This is designed by Philips
semiconductors. I2C is a synchronous, multi slave, multi master packet switched, single-
ended serial bus. ie. multiple chips can be connect to the same bus.I2C uses only two
bidirectional open collector or open drain lines, Serial Data Line (SDA) and Serial Clock
Line (SCL), pulled up with resistors. Typical voltages used are +5 V or +3.3 V, although
systems with other voltages are permitted. I2C Serial Interface Adapter
15
It is also known as I2C Module. It has total of 20 male pins. 16 pins are faced to rear side
and 4 pins faced towards front side. The 16 pins for connect to 16x2 LCD and the 2 pins
out of 4 pins are SDA and SCL. SDA is the serial data pin and SCL is the clock pin. The rest
2 pins for power supply (Vcc and ground).There is a POT on the I2C Module. We can
control the contrast of the LCD display by rotating this POT. And there is a jumber fixed
on the module. When we remove the jumber, the backlight of the LCD display will go
OFF.
Connection
First solder the I2C Module. There is no label on the I2C Module for connecting to 16x2
LCD. So solder it with the help of the image given below
5V - Vcc
GND - GND
Add library
16
17
Interface I2C 16x2 LCD with Arduino Uno
18
PROGRAM
#include <Arduino.h>
#include <Wire.h>
#include
<LiquidCrystal_PCF8574.h
Serial.begin(115200
);
Serial.println("LCD...
Wire.begin();
Wire.beginTransmission(0
x27); error =
Wire.endTransmission();
Serial.print(
"Error: ");
Serial.print(
error); if
(error == 0)
19
Serial.println(": LCD
found."); show = 0;
lcd.begin(16, 2); //
} else {
} // if
} // setup()
void loop() {
if (show == 0)
lcd.setBackligh
t(255);
lcd.home();
lcd.clear();
lcd.print("Hell
o LCD");
delay(1000);
20
OUTPUT:
RESULT:
Thus the Program to Display in LCD is executed successfully using Arduino
Platform & IDE.
21
EX NO: 6 EXPLORE DIFFERENT COMMUNICATION METHODS WITH IOT DEVICES
(ZIGBEE, GSM, BLUETOOTH)
DATE:
AIM:
To Explore different communication methods with IoT devices (Zigbee, GSM, Bluetooth)
HARWARE REQUIRED:
Connecting wires
22
Connection diagram
PROGRAM
#include "painlessMesh.h"
#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>
LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2
painlessMesh mesh;
23
// User stub void sendMessage() ; // Prototype so
{ Serial.printf(" msg=%s\n",msg.c_str());
datar=msg.c_str();
nodeId); }
void changedConnectionCallback() {
Serial.printf("Changed connections\n");
24
}
mesh.getNodeTime(),offset); }
void setup() {
Serial.begin(
9600); int
error;
Wire.begin();
Wire.beginTransmission(0x27);
error = Wire.endTransmission();
Serial.print("Error: ");
Serial.print(error);
if (error == 0) {
Serial.println(": LCD
found."); show = 0;
the lcd
25
} else {
lcd.setBacklight(255);
lcd.home();
mesh.setDebugMsgTypes( ERROR | STARTUP ); // set before init() so that you can see
startup messages
mesh.onReceive(&receivedCallback);
mesh.onNewConnection(&newConnectionCallback);
mesh.onChangedConnections(&changedConnectionCallback);
mesh.onNodeTimeAdjusted(&nodeTimeAdjustedCallback);
userScheduler.addTask( taskSendMessage );
taskSendMessage.enable();
void loop() {
mesh.update();
lcd.clear();
lcd.print("data:")
26
;
lcd.setCursor(0,
1);
lcd.print(datar);
delay(1000);
BLUETOOTH:
27
Wiring diagram
PROGRAM
#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>
LiquidCrystal_PCF8574 lcd(0x27);
String data;
Serial.begin(
28
9600); int
error;
Serial.println("welcome!");
Serial.println("Hello, world?");
if (error == 0) {
Serial.println(": LCD
found."); show = 0;
the lcd
} else {
lcd.setBackligh
t(255);
lcd.home();
lcd.print("Bluetooth");
delay(2000);
29
Serial.println("Bluetooth OK");
delay(3000);
delay(3000);}
GSM MODULE
AT COMMAND: BASIC
Command Description Response
AT Checking communication OK
CALL COMMAND:
Command Description Response
30
SMS COMMAND:
Command Description Response
Connection diagram
GSM PROGRAM
#include <Wire.h>
#include
<LiquidCrystal_PCF8574.h>
LiquidCrystal_PCF8574
void setup() {
Serial.be
31
gin(9600)
; int
error; if
(error ==
0) {
Serial.println(": LCD
found."); show = 0;
the lcd
} else {
lcd.setBackligh
t(255);
lcd.home();
lcd.clear();
lcd.setCursor(0,
1);
lcd.print(data);
delay(10000);
32
lcd.clear();
lcd.print("CHECK
GSM STATUS");
lcd.setCursor(0, 1);
lc
d.
cl
r(
);
delay(5000);
lcd.clear();
lcd.print("sms
mode");
1 second Serial.println("AT+CMGF=1");
delay(2000);
33
Serial.println("AT+CMGS=\"7708954811\"\r"); // Replace x with mobile number
delay(2000);
delay(1000);
delay(3000);
RESULT:
Thus the different methods of communication with IoT devices were explored successfully.
34
EX NO .7 INTRODUCTION TO RASPBERRY PI PLATFORM & PYTHON PROGRAMMING
DATE:
AIM:
PROCEDURE:
To get started with the Raspberry Pi Pico and the Thonny Python IDE, which has out-of-
thebox support for Micropython and Pico.
We'll install Thonny, configure for Pico and write our first script. To follow along we'll
need:
• A Raspberry Pi Pico
• A USB micro B
lead Contents
• Install Thonny
• Set up Thonny
• REPL interface
• Writing a Script
• Installing a Package
Install Thonny
Thonny comes pre-installed. For those on another operating system, download Thonny
here and run the installer.
Set up Thonny
Hold the BOOTSEL button on your Pico, and connect your Pico to your computer via USB.
We can immediately start executing code in the REPL - Enter this code in the shell tab:
print("Hello, World!")
The command will be sent to the Pico, which will execute the command and display back
the message.
We can also take control of the on-board LED by executing the following code:
36
from machine
Pin(25, Pin.OUT)
led.toggle()
This code will toggle the LED. If you keep executing led.toggle() the LED will keep changing
state.
37
Writing a Script
Create a new script with File > New and paste in the following code:
from machine
led = Pin(25,
Pin.OUT) n = 0;
while True:
led.toggle()
print("13 x {} =
{}".format(n,
thirteen-times
table n=n+1
sleep(0.5)
Save the script - you will be prompted to save to computer OR the pico. Select save to Pico
and name the file main.py
Return to the REPL and press Ctrl+D (or use the Stop/Restart button) to restart your Pico.
The LED should flash at a steady rate and the shell should begin printing multiples of
thirteen.
38
Installing a Package
Packages are reusable pieces of code that another programmer has written for a
common task, such as interfacing with a specific piece of hardware. Thonny has support
for installing micropython packages from the Python Package Index - aka 'PyPI'
directly onto the Raspberry Pi Pico.
To install a package, ensure the Pico is plugged in and go to Tools > Manage Packages,
which will show the Manage Packages dialog.
39
Enter the name of the package, would like to install into the search bar and click 'Search
on PyPI'.
In the search results list, click the title of the package would like to install. A title that's in
bold simply indicates a direct search match on the text that entered in the search bar.
The Manage Packages dialog will show an overview of the package have clicked. Click
Install to install the package on the Pico.
Confirm the package has been installed by checking the 'Raspberry Pi Pico' section of the
File View in Thonny. The view should show a new folder named 'lib', and inside this
folder will be one or more folders containing the metadata and source code of the
library you just installed.
RESULT:
40
EX NO .8 INTERFACEING SENSORS WITH RASPBERRY PI
DATE:
AIM:
HARDWARE REQUIRED
DHT11
Sensor
16*2 LCD
Display
Raspberry Pi Pico
Wiring diagram
PROGRAM
#if !( defined(ARDUINO_RASPBERRY_PI_PICO_W) )
#define _RP2040W_AWS_LOGLEVEL_ 1
#include <pico/cyw43_arch.h>
#include <AsyncWebServer_RP2040W.h>
#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>
LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2 line
display
#include "DHTStable.h"
DHTStable DHT;
#define DHT11_PIN 3
void setup()
// ThingSpeak.begin(client);
Serial.begin(115200);
Wire.begin();
Wire.beginTransmission(0x27);
// error = Wire.endTransmission();
Serial.print("Error: ");
//Serial.print(error);
42
lcd.begin(16, 2); //
lcd.setBacklight(255);
lcd.home(); lcd.clear();
lcd.print("welcome");
delay(1000);
void loop()
// check_status();
delay(1000);
Serial.print("DHT11, \t");
int chk =
DHT.read11(DHT11_PIN);
switch (chk)
case DHTLIB_OK:
Serial.print("OK,\t");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.print("Checksum
error,\t"); break;
case DHTLIB_ERROR_TIMEOUT:
43
Serial.print("Time out
error,\t"); break;
default:
Serial.print("Unknown
error,\t"); break;
// DISPLAY DATA
Serial.print(DHT.getHumidity(), 1);
Serial.print(",\t");
Serial.println(DHT.getTemperature(), 1);
lcd.clear();
lcd.print("Temperature
lcd.print(" ");
lcd.print(DHT.getTempera
ture()); delay(1000);
RESULT:
Thus the sensor is interface with Raspberry pi and verified successfully.
44
EX NO .9 COMMUNICATION BETWEEN RASPBERRY PI AND
ARDUINO USING WIRELESS MEDIUM
DATE:
AIM:
HARDWARE REQUIRED:
Arduino Uno
Bluetooth
HC-05
Raspberry PI pico
POWER ADAPTER
Connecting wires
PROCEDURE
45
Connection for Arduino
PROGRAM
/*
The circuit:
46
*/
#include <SoftwareSerial.h>
#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>
#include <SoftwareSerial.h>
LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2
line display int show = -1;
String data;
Serial.println("Goodnight moon!");
SoftwareSerial port
mySerial.begin(9600);
mySerial.println("Hello, world?"); if
(error == 0) {
Serial.println(": LCD
found."); show = 0;
the lcd
} else {
47
}
lcd.setBackligh
t(255);
lcd.home();
over while
(mySerial.available()) {
inChar =
(char)mySerial.read();
inputString += inChar;
// if the incoming character is a newline, set a flag so the main loop can
// do something
about it: if
(inChar == '\n') {
stringComplete =
true;
} if
(stringComplete) {
Serial.println(input
String);
data=inputString;
48
inputString = "";
stringComplete =
false;
lcd.clear();
lcd.print("data:");
lcd.setCursor(0, 1);
lcd.print(data);
delay(1000);
RESULT:
Thus the Arduino and Raspberry pi is communicated through Wireless medium and it is
verified successfully.
49
EX NO: 10 SETUP A CLOUD PLATFORM TO LOG THE DATA
DATE:
THINGSPEAK
1. Introduction:
To setup account with Thing Speak and basics. Thing Speak is an open cloud data platform
where you can store and retrieve data.
URL: https://thingspeak.com/
Create an account in Thing Speak. Once have a Thing Speak account login to the account.
Create a new channel by clicking on the button as shown in below image – A channel is
the source for your data. Where we can store and retrieve data. A channel can have
maximum 8 fields. It means you can store 8 different data to a channel.
50
Enter basic details of the channel
Here we are creating channel to store data from DHT11 temperature and humidity sensor
so we need two fields.
51
Channel ID
API Keys
API (Application Programming Interface) keys are the keys to access to specific channel.
In simple language can understand that these are password to access the channel. The
access of channel in two ways-
1. To update channel / data logging : API Write Key will be used to access in this mode.
2. To retrieve data : API Read Key will be used to access in this mode.
Click on the API tab to know your API keys. We have blurred our API Keys for security
reasons.
52
3. Accessing Channel:
URL: http://api.thingspeak.com/update?api_key=YOUR-API&field1=VAR-
1&field2=VAR-2 make the following replacements in
Response : If we get a positive number that means the data has been uploaded to the
channel.
The number is index of the last entry have made.
URL: http://api.thingspeak.com/channels/YOUR-CHANNEL-
ID/fields/FIELD.json?results=NOS-OF-RESULTS&api_key=YOUR-API
2. FIELD – Field you want to retrieve. Write 1 for Field1, 2 for Field2
Login to account. Select the channel and click on the Private view as shown in the
following image.
RESULT:
54
EX NO .11 LOG DATA USING RASPBERRY PI UPLOAD TO CLOUD
DATE:
AIM:
HARDWARE REQUIRED
DHT11 Sensor
Raspberry PI Pico
CONNECTION
PROGRAM
#if !( defined(ARDUINO_RASPBERRY_PI_PICO_W) )
55
#error For RASPBERRY_PI_PICO_W only
#endif
#define _RP2040W_AWS_LOGLEVEL_ 1
#include <pico/cyw43_arch.h>
#include <AsyncWebServer_RP2040W.h>
#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>
LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2 line
display
#include "DHTStable.h"
DHTStable DHT;
#define DHT11_PIN 1
char pass[] = "12345678"; // your network password (use for WPA, or use as key for
WEP), length must be 8+
#include "ThingSpeak.h"
WiFiClient client;
56
const char * myWriteAPIKey = "VE9ODLVKN2O12KYK"; // Your Write API Key here
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
IPAddress ip = WiFi.localIP();
Serial.println(ip);
void setup()
ThingSpeak.begin(client);
Serial.begin(115200);
Wire.begin();
Wire.beginTransmission(0x27);
// error = Wire.endTransmission();
Serial.print("Error: ");
//Serial.print(error);
lcd.home(); lcd.clear();
lcd.print("welcome");
delay(1000);
57
// check for the WiFi module:
if (WiFi.status() == WL_NO_MODULE)
Serial.println(ssid);
delay(1000);
WL_CONNECTED)
del
ay(
50
0);
status = WiFi.status();
} lcd.clear();
lcd.print("wifi
connected");
58
delay(1000);
printWifiStatus();
void loop()
// check_status();
delay(1000);
Serial.print("DHT11, \t");
int chk =
DHT.read11(DHT11_PIN);
switch (chk)
case DHTLIB_OK:
Serial.print("OK,\t");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.print("Checksum
error,\t"); break;
case DHTLIB_ERROR_TIMEOUT:
Serial.print("Time out
error,\t"); break;
default:
59
Serial.print("Unknown
error,\t"); break;
// DISPLAY DATA
Serial.print(DHT.getHumidity(), 1);
Serial.print(",\t");
Serial.println(DHT.getTemperature(), 1);
lcd.clear();
lcd.print("Temperature ");
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.print(DHT.getTempera
ture()); delay(1000);
RESULT:
Thus the DHT11 Sensor data is read. data is uploaded in cloud and verified successfully.
60
EX NO .12 DESIGN A IOT BASED SYSTEM
DATE:
AIM:
HARDWARE REQUIRED:
Gas Sensor
PROCEDURE:
The Wifi module can be programmed with the Arduino software (download).
STEP 5: Connect the USB cable to WiFi module through USB Socket.
STEP 6: Select tools -> select board -> Generic ESP8266 -> select port.
61
CONNECTION
PROGRAM
#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>
LiquidCrystal_PCF8574 lcd(0x27); // set the LCD address to 0x27 for a 16 chars and 2 line
display
#include <WiFiClient.h>;
#include <ThingSpeak.h>;
#include
<ESP8266WiFi.h>;
62
unsigned long myChannelNumber = 2228779; //Your Channel Number (Without
WiFiCli
ent
client;
void
setup(
) { int
error;
Serial.begin(115200);
Serial.println("LCD..."
); while (!Serial);
Wire.begin();
Wire.beginTransmission(0x2
7); error =
Wire.endTransmission();
Serial.print("Error: ");
Serial.print(error);
if (error == 0) {
Serial.println(": LCD
found."); show = 0;
the lcd
63
} else {
} // if
lcd.setBackligh
t(255);
lcd.home();
lcd.clear();
ThingSpeak.begin(client); if
(WiFi.status() !=
WL_CONNECTED)
Serial.print("Attempting to connect to
lcd.clear();
lcd.print("con..project");
WiFi.begin(ssid,
pass);
Serial.print(".");
delay(5000);
Serial.println("\nConne
cted."); lcd.clear();
lcd.print("wifi
64
connected");
delay(1000);
} // setup()
void loop() {
Int
h=analogRea
d(A0);
lcd.clear();
lcd.print("lpg");
lcd.print(h);
delay(1000);
ThingSpeak.setField( 1, h);
ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
RESULT:
65