Course Name: Embedded Systems
Course Code: EEE 221
Course Level: Year 2 Semester 1
Contact Hours: 60 Credit Units: 4
Brief Description of Course: Embedded Systems are programmed to control the functionality of various
machines and devices. They offer reliability, cost-effectiveness, and flexibility for control applications.
Embedded Systems are prevalent in machines, domestic appliances, automobiles, and more.
This Embedded Systems course will provide hands-on experience in programming microcontrollers using
C/C++, interfacing with external devices, and developing embedded applications
Course Objectives:
1. Introduce students to the concepts and principles of Embedded Systems.
2. Familiarize students with the architecture and instruction set of the ATmega328P
microcontroller.
3. Develop skills in C/C++ programming for embedded systems using the Arduino IDE.
4. Explore interfacing techniques for connecting external devices to microcontrollers.
5. Implement practical applications of embedded systems in the local community.
Learning Outcomes: By the end of this course, students should be able to:
1. Apply the concepts and principles of Embedded Systems.
2. Describe the architecture and instruction set of the ATmega328P microcontroller.
3. Develop embedded system applications using C/C++ and the Arduino development
environment.
4. Implement interfacing techniques to connect sensors, actuators, and other devices to
microcontrollers.
Detailed Course Description:
1. Introduction (8 Lectures + 4 Practicals):
o Embedded Systems Fundamentals: An overview of embedded systems, their
applications, and design considerations.
o Microcontroller vs. Microprocessor: Comparison of key features and functionalities.
o ATmega328P Architecture: Memory organization, registers, and I/O ports.
o Introduction to the Arduino development board and IDE.
o Practical applications of embedded systems in the local community.
2. C/C++ Programming for Embedded Systems (8 Lectures + 4 Practicals):
o Introduction to C/C++: Basic syntax, data types, variables, operators, control flow
statements, and functions.
o Pointers and Memory Management: Understanding pointers, memory allocation, and
management techniques.
o Interfacing with Hardware: C/C++ constructs for accessing microcontroller peripherals
like I/O ports and timers.
o Arduino-specific programming techniques.
3. ATmega328P Programming and Interfacing (8 Lectures + 4 Practicals):
o Basic I/O Programming: Blinking LEDs, reading button presses, and interfacing with
sensors.
o Timers and Delays: Generating time delays and implementing periodic tasks using
timers.
o Serial Communication: Implementing UART communication using the ATmega328P.
o Interrupts: Understanding interrupt handling and priority in embedded systems.
o Bit Math and Direct Register Manipulation.
4. Advanced Interfacing Techniques (8 Lectures + 4 Practicals):
o Digital Input/Output (GPIO): Programming I/O ports for digital input and output
operations.
o Analog-to-Digital Converters (ADCs): Interfacing with analog sensors and converting
analog signals to digital values.
o Liquid Crystal Displays (LCDs): Controlling LCD displays for text and graphics output.
o Communication Protocols: I2C, SPI, and their applications.
o (Optional) Additional Interfacing Topics: Keypads, stepper motors, DC motors, real-time
clocks (RTCs).
Study Materials:
• Relevant textbooks, online resources, lecture slides, and development tools (C/C++ compiler,
ATmega328P development board, Arduino IDE).
Mode of Delivery: Blended learning combining online and in-person components:
• Online modules: Pre-recorded lectures, tutorials, and quizzes.
• In-person sessions: Interactive lectures, class discussions, hands-on laboratory exercises, project
presentations.
Mode of Assessment:
• Coursework (Assignments = 20%, Midterm Exam = 20%) = 40%
• Final Exam (60%)
• Total = 100%
Reading List:
1. Starting with Microcontrollers using C++ by JeeLabs (available online)
2. AVR Programming by Elliot Williams (available online)
Embedded System Introduction
Dr. I. Arul Rayappan
Associate Professor of Physics,
St. Joseph’s College (Autonomous),
Tiruchirappalli-620 002.
1
What is an embedded system?
According to the Institution of
Electrical Engineers, "A general
purpose definition of embedded
systems is that they are devices used
to control, monitor or assist the
operation of equipment, machinery,
or plant. 'Embedded' reflects the fact
that they are an integral part of the
system..." An embedded system is a
special-purpose computer system,
which is completely encapsulated by
the device it controls. An embedded
system has specific requirements
and performs pre-defined tasks,
unlike a general-purpose personal
computer.
2
Microcontrollers and Embedded System
Embedded Systems are a combination of Hardware
(microcontrollers) and Software (developed in
assembler, c, c++…) designed to perform a specific
function
An embedded product uses microcontrollers to do one
task and one task only.
3
What is a Microcontroller?
A microcontroller (often abbreviated MCU) is a single computer
chip (integrated circuit) that executes a user program, normally for
the purpose of controlling some device, hence the name
microcontroller.
The program is normally contained either in a second chip, called an
EPROM, or within the same chip as the microcontroller itself.
A microcontroller is normally found in devices such as microwave
ovens, automobiles, keyboards, CD players, cell phones, VCRs,
security systems, time & attendance clocks, etc.
4
Microprocessor Vs Microcontroller
Microcontrollers are used in devices that require some amount of
computing power but donot require as much computing power as that
provided by a complex (and expensive) 486, Pentium, i3 .. system
which generally requires a large amount of supporting circuitry (large
motherboards, hundreds of megabytes of RAM, hard drives, hard drive
controllers, video cards, etc).
A microwave oven just does not need that much computing power.
Microcontroller-based systems are generally smaller, more reliable,
and cheaper. They are ideal for the types of applications described
above where cost and unit size are very important considerations. In
such applications it is almost always desirable to produce circuits that
require the smallest number of integrated circuits, that require the
smallest amount of physical space, require the least amount of energy
, and cost as little as possible.
5
Microcontrolle
Ext int
r
interrupt
Address Bus (Uni dirctional)
CPU
Data Bus (Bi directional)
Control Lines
OSC
6
Microcontrolle
Ext int
r
interrupt
Timer0
Timer1
ROM RAM
CPU
Bus 4 I/o
control Serial
ports port
OSC
7
Simple comparison: Pentium vs. 8051
FEATURE 8051 PENTIUM COMMENT
Clock Speed 12Mhz. typical 1,000 MHz. 8051 internally divides
but 60MHz. ICs (1GHz.) clock by 12 so for 12MHz.
clock effective clock rate
available
is just 1MHz.
Address bus 16 bits 32 bits 8051 can address 216, or
64Kbytes of memory.
Pentium can address 232,
or
4 GigaBytes of memory.
Data bus 8 bits 64 bits Pentium’s wide bus
allows very fast data
transfers.
ALU width 8 bits 32 bits But - Pentium has
multiple 32 bit ALUs –
along with floating-point
units.
Applications Domestic Personal
appliances, Computers
Peripherals, And other high
automotive etc. performance
areas.
8
Power Small fraction of Tens of watts Pentium runs hot as
power consumption
Microcontroller Manufacturing Companies
There are FOUR major companies manufacturing
8 bit controllers
1. Motorola (6811)
2. Intel (8051 MCS51)
3. Zilog (Z8)
4. PIC (16X____) Microchip
9
Port Organization of MCS51
Port 1
Port 0
P1.0 – P1.7
P0.0 – P0.7
P1 P0
Port 3
Port 2
P3.0 – P3.7
P2.0 – P2.7
P3 P2
10
Port Assignments
Port 0 : Input/Output Port & AD0-AD7 for ext memory
Port 1 : Input/Output Port
Port 2 : Input/Output Port & A8-A15 for ext Memory
Port 3 : Input/Output Port
P3.0 : RxD
P3.1 : TxD
P3.2 : INTO’
P3.3 : INT1’
P3.4 : T0
P3.5 : T1
P3.6 : WR’
P3.7 : RD’
11
Simple Experiment in
Embedded system
12
A Circuit using 89c51
40
+5V
Pin 40 +vcc
9 20 Gnd
89c51 31
9 Reset
18 OSC1
19 OSC2
31 Ext Access
18
19 GND
20
13
Burglar alarm system hardware
14
Input circuit Output circuit
+ 5 volts a
f
b
g
input x
e c
d
normally closed
Switches are
e.g. 200 Ohm
If any switch is opened
Internal circuit within 7-segment
Input x goes high to indicate an display device. (Common cathode
alarm condition i.e. +5v input causes LED to light)
15
ALARM_1 Program flow chart
I ni ti al i se I /O
ports P 1 and P 3
R ead port P3
Y ES
A re al l
P 3 i nputs at 0
NO
S ound al ar m
B el l
16
ALARM_1 Program source code
ORG 0000h ; define memory start address 000
; Initialise the I/O ports
MOV P3, #0ffh ; write all ones to P3 to use as an input port
MOV P1, #00 ; all zeros to put P1 in a known output state
POLL:
MOV A, P3 ; read P3 to accumulator
CJNE A, #00h, ALARM ; if not all zeros then jump to ALARM
LJMP POLL ; else loop back to POLL
ALARM:
SETB P1.7 ; enable the BELL by setting P1.7 high
END_LOOP:
LJMP END_LOOP ; program just loops around here
END ; end of program
17
Hardware circuit with timing diagram for sound
18
Interactive Vehicle Tracking System
It is a system which can track the vehicles for its movement
through out the trip with GPS And GPRS.
The data collected at different data points are stored at the vehicle
itself and in the computers of respective data points then to the
server.
The Data are
vehicle number, started time, stop time, Fuel at, Date, Fuel
type, Qty, Amount, Balance, Driver ID …..
The Data Points are
the places where the interactive RF transmitter and
receivers are fixed say BPCL fuel stations.
19
At the data points
GPS & GPRS based RF transmitter and receivers (RF System) are
connected to a computers
GPS system is capable of interacting over area of 1 square metre
The GPS will transmit the data in
a periodic interval continuously
from the data point
20
Server
Block diagram of data locker
Receiver Memory
D i s p l a y
GPS & GPRS
Micro
Controller
Transmitter
sensors
Start/stop alarm
Load
Fuel
21
Block diagram of data point
Server
Receiver
GPS & GPRS SMS
Micro
Controller Printer
Transmitter
Pump
Pump link
circuit 22
Advantages
• Compatible with any SMART cards
• Data is stored at data point (fuel station computer) and at the vehicle
•Vehicle owners can verify trip data from their office
• Data can be online with server
• Data can be on auto SMS from vehicle(GSM/CDMA/GPRS)
• Owners of the vehicles and dealers are not at the dark, but given with lot of
information about their vehicles for analysis
• 100% automated system
23
Thank you
24
Microcontroller vs. Microprocessor & ATmega328P Architecture
Microcontroller vs. Microprocessor Comparison
Definition and Core Differences
• Microprocessor: A CPU on a single integrated circuit that requires external components
(memory, I/O interfaces) to function as a complete computer system
• Microcontroller: A complete computer system on a single chip, containing CPU, memory,
and I/O peripherals
Key Feature Comparison
Feature Microprocessor Microcontroller
Integration CPU only CPU + Memory + I/O
System Complexity Requires external components Self-contained system
Processing Power Higher Lower to moderate
Power
Higher Lower
Consumption
Cost Higher Lower
General computing, complex Embedded systems, specific
Application
calculations tasks
Memory External, typically larger Internal, limited
Size Larger system footprint Compact
Examples Intel Core i7, AMD Ryzen ATmega328P, PIC16F877A
Functionalities
• Microprocessor:
o High-performance computing
o Multi-tasking capabilities
o Complex data processing
o Used in personal computers, servers
• Microcontroller:
o Real-time control systems
o Dedicated task execution
o Low power consumption
o Used in embedded systems, IoT devices
ATmega328P Architecture
Overview
• 8-bit AVR RISC-based microcontroller
• Popular in Arduino boards (Arduino Uno)
• Manufactured by Atmel (now Microchip Technology)
Memory Organization
• Flash Memory: 32KB programmable flash memory
o Program storage
o Self-programmable
• SRAM: 2KB Static Random-Access Memory
o Data variables
o Stack and heap
• EEPROM: 1KB Electrically Erasable Programmable Read-Only Memory
o Non-volatile data storage
o ~100,000 write/erase cycles
Memory Map
• 0x0000 - 0x7FFF: Flash Program Memory
• 0x0060 - 0x00FF: I/O Registers
• 0x0100 - 0x08FF: SRAM
• Separate address space for EEPROM
Register Structure
General Purpose Registers
• 32 8-bit general purpose working registers (R0-R31)
• Fast access (single clock cycle)
• Last 6 registers (R26-R31) can be used as three 16-bit address pointers (X, Y, Z)
Special Function Registers
• Status Register (SREG): Contains flags (Zero, Carry, etc.)
• Stack Pointer (SP): Points to the stack in SRAM
• Program Counter (PC): Points to next instruction
I/O Ports
• Port B: 8-bit bidirectional port with internal pull-up resistors (pins 8-13 on Arduino Uno)
• Port C: 7-bit bidirectional port with internal pull-up resistors (analog inputs on Arduino
Uno)
• Port D: 8-bit bidirectional port with internal pull-up resistors (pins 0-7 on Arduino Uno)
I/O Port Structure
• Each port has three associated registers:
o Data Direction Register (DDRx): Sets pin as input or output
o Port Register (PORTx): Sets output value or activates pull-up resistor
o Pin Register (PINx): Reads input value
Peripheral Features
• Two 8-bit timers/counters (Timer0, Timer2)
• One 16-bit timer/counter (Timer1)
• Six PWM channels
• 6-channel 10-bit ADC
• Programmable Serial USART
• SPI Serial Interface
• Two-wire Interface (I²C compatible)
• Watchdog Timer
• Analog Comparator
• Interrupt capability on I/O pins
Clock and Timing
• Multiple clock sources: internal 8MHz RC oscillator, external crystal/resonator
• Default factory setting: 1MHz internal clock
• Arduino Uno configuration: 16MHz external crystal
These lecture notes cover the fundamental differences between microprocessors and
microcontrollers, as well as the detailed architecture of the ATmega328P microcontroller,
focusing on its memory organization, registers, and I/O ports.
Lecture 1: Introduction to C/C++ for Embedded Systems (Arduino Uno - ATmega328P)
1. Introduction
Embedded systems are specialized computing systems designed for dedicated functions. The
Arduino Uno, powered by the ATmega328P microcontroller, is widely used for embedded
applications due to its simplicity and versatility. C and C++ are the primary programming
languages used for Arduino development.
Why Use C/C++ for Arduino?
• Direct hardware access via registers and pointers.
• Efficient memory and resource management.
• High performance with a small footprint.
• Extensive libraries and community support.
• Compatible with embedded toolchains and microcontrollers.
2. Basic Syntax and Structure of an Arduino Sketch
A simple Arduino program (sketch):
void setup() {
[Link](9600);
[Link]("Hello, Arduino!");
void loop() {
// Main program execution (repeats indefinitely)
Key Components:
• void setup() – Runs once at the start of the program.
• void loop() – Runs repeatedly after setup() completes.
• [Link](9600); – Initializes serial communication at 9600 baud rate.
• [Link]() – Prints text to the serial monitor.
3. Data Types and Variables in Arduino (ATmega328P)
Basic Data Types
Data Type Size (Bytes) Description
char 1 Stores a single character (ASCII)
int 2 Stores integer values (-32,768 to 32,767)
long 4 Stores larger integers (-2,147,483,648 to 2,147,483,647)
float 4 Stores decimal numbers (single precision)
double 4 Same as float in ATmega328P
bool 1 Stores true or false values
byte 1 Stores values from 0 to 255
Variable Declaration
int sensorValue = 100;
float voltage = 3.3;
char letter = 'A';
bool isOn = true;
Constants in Arduino
#define LED_PIN 13 // Preprocessor constant
const int MAX_SPEED = 255; // Constant variable
4. Operators in C/C++ (Arduino)
Arithmetic Operators
+, -, *, /, %
int sum = 5 + 3; // 8
int remainder = 10 % 3; // 1
Comparison Operators
==, !=, >, <, >=, <=
if (sensorValue > 500) {
[Link]("High value detected");
Logical Operators
&& (AND), || (OR), ! (NOT)
if (sensorValue > 100 && isOn) {
[Link]("Condition met");
Bitwise Operators
&, |, ^, ~, <<, >>
int x = 5; // 0101 in binary
int y = x << 1; // Left shift (1010 in binary, which is 10 in decimal)
5. Control Flow Statements in Arduino
Conditional Statements
if (sensorValue > 500) {
[Link]("Sensor triggered");
} else {
[Link]("Normal state");
Switch Case
int mode = 2;
switch (mode) {
case 1:
[Link]("Mode 1");
break;
case 2:
[Link]("Mode 2");
break;
default:
[Link]("Unknown mode");
Loops in Arduino
For Loop
for (int i = 0; i < 5; i++) {
[Link](i);
While Loop
int count = 0;
while (count < 5) {
[Link](count);
count++;
Do-While Loop
int counter = 0;
do {
[Link](counter);
counter++;
} while (counter < 5);
6. Functions in Arduino (C/C++)
Functions help modularize code, making it more readable and reusable.
Function Declaration and Definition
int add(int a, int b) {
return a + b;
void setup() {
[Link](9600);
int sum = add(5, 3);
[Link](sum);
void loop() {}
Function Prototypes (Declaration Before Main Code)
int multiply(int, int);
void setup() {
[Link](9600);
int result = multiply(4, 2);
[Link](result);
int multiply(int x, int y) {
return x * y;
}
void loop() {}
7. Summary
• Arduino programs (sketches) are written in C/C++.
• A program consists of setup(), loop(), variables, and functions.
• Operators and control flow statements manage logical execution.
• Functions help in code reuse and organization.
Next Lecture: Memory management, pointers, and arrays in embedded C/C++ for Arduino.
8. Practical Exercise
Task 1: Read an analog sensor and print its value to the serial monitor.
void setup() {
[Link](9600);
void loop() {
int sensorValue = analogRead(A0);
[Link](sensorValue);
delay(1000);
Task 2: Control an LED using a button.
#define BUTTON_PIN 2
#define LED_PIN 13
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
void loop() {
if (digitalRead(BUTTON_PIN) == LOW) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
³
Complete List of ASCii codes [Link]
Format: PDF file
symbol
ascii code 0 NULL (Null character)
ascii code 1 SOH (Start of Header)
ascii code 2 STX (Start of Text)
ascii code 3 ETX (End of Text)
ascii code 4 EOT (End of Transmission)
ascii code 5 ENQ (Enquiry)
ascii code 6 ACK (Acknowledgement)
ascii code 7 BEL (Bell)
ascii code 8 BS (Backspace)
ascii code 9 HT (Horizontal Tab)
ascii code 10 LF (Line feed)
ascii code 11 VT (Vertical Tab)
ascii code 12 FF (Form feed)
ascii code 13 CR (Carriage return)
ascii code 14 SO (Shift Out)
ascii code 15 SI (Shift In)
ascii code 16 DLE (Data link escape)
ascii code 17 DC1 (Device control 1)
ascii code 18 DC2 (Device control 2)
ascii code 19 DC3 (Device control 3)
ascii code 20 DC4 (Device control 4)
ascii code 21 NAK (Negative acknowledgement)
ascii code 22 SYN (Synchronous idle)
ascii code 23 ETB (End of transmission block)
ascii code 24 CAN (Cancel)
ascii code 25 EM (End of medium)
ascii code 26 SUB (Substitute)
ascii code 27 ESC (Escape)
ascii code 28 FS (File separator)
ascii code 29 GS (Group separator)
ascii code 30 RS (Record separator)
ascii code 31 US (Unit separator)
ascii code 32 (Space)
ascii code 33 ! (Exclamation mark)
ascii code 34 " (Quotation mark ; quotes)
ascii code 35 # (Number sign)
ascii code 36 $ (Dollar sign)
ascii code 37 % (Percent sign)
ascii code 38 & (Ampersand)
ascii code 39 ' (Apostrophe)
ascii code 40 ( (round brackets or parentheses)
ascii code 41 ) (round brackets or parentheses)
ascii code 42 * (Asterisk)
ascii code 43 + (Plus sign)
³
ascii code 44 , (Comma)
ascii code 45 - (Hyphen)
ascii code 46 . (Dot , full stop)
ascii code 47 / (Slash)
ascii code 48 0 (number zero)
ascii code 49 1 (number one)
ascii code 50 2 (number two)
ascii code 51 3 (number three)
ascii code 52 4 (number four)
ascii code 53 5 (number five)
ascii code 54 6 (number six)
ascii code 55 7 (number seven)
ascii code 56 8 (number eight)
ascii code 57 9 (number nine)
ascii code 58 : (Colon)
ascii code 59 ; (Semicolon)
ascii code 60 < (Less-than sign)
ascii code 61 = (Equals sign)
ascii code 62 > (Greater-than sign ; Inequality)
ascii code 63 ? (Question mark)
ascii code 64 @ (At sign)
ascii code 65 A (Capital A)
ascii code 66 B (Capital B)
ascii code 67 C (Capital C)
ascii code 68 D (Capital D)
ascii code 69 E (Capital E)
ascii code 70 F (Capital F)
ascii code 71 G (Capital G)
ascii code 72 H (Capital H)
ascii code 73 I (Capital I)
ascii code 74 J (Capital J)
ascii code 75 K (Capital K)
ascii code 76 L (Capital L)
ascii code 77 M (Capital M)
ascii code 78 N (Capital N)
ascii code 79 O (Capital O)
ascii code 80 P (Capital P)
ascii code 81 Q (Capital Q)
ascii code 82 R (Capital R)
ascii code 83 S (Capital S)
ascii code 84 T (Capital T)
ascii code 85 U (Capital U)
ascii code 86 V (Capital V)
ascii code 87 W (Capital W)
ascii code 88 X (Capital X)
ascii code 89 Y (Capital Y)
ascii code 90 Z (Capital Z)
ascii code 91 [ (square brackets or box brackets)
³
ascii code 92 \ (Backslash)
ascii code 93 ] (square brackets or box brackets)
ascii code 94 ^ (Caret or circumflex accent)
ascii code 95 _ (underscore , understrike , underbar or low line)
ascii code 96 ` (Grave accent)
ascii code 97 a (Lowercase a )
ascii code 98 b (Lowercase b )
ascii code 99 c (Lowercase c )
ascii code 100 d (Lowercase d )
ascii code 101 e (Lowercase e )
ascii code 102 f (Lowercase f )
ascii code 103 g (Lowercase g )
ascii code 104 h (Lowercase h )
ascii code 105 i (Lowercase i )
ascii code 106 j (Lowercase j )
ascii code 107 k (Lowercase k )
ascii code 108 l (Lowercase l )
ascii code 109 m (Lowercase m )
ascii code 110 n (Lowercase n )
ascii code 111 o (Lowercase o )
ascii code 112 p (Lowercase p )
ascii code 113 q (Lowercase q )
ascii code 114 r (Lowercase r )
ascii code 115 s (Lowercase s )
ascii code 116 t (Lowercase t )
ascii code 117 u (Lowercase u )
ascii code 118 v (Lowercase v )
ascii code 119 w (Lowercase w )
ascii code 120 x (Lowercase x )
ascii code 121 y (Lowercase y )
ascii code 122 z (Lowercase z )
ascii code 123 { (curly brackets or braces)
ascii code 124 | (vertical-bar, vbar, vertical line or vertical slash)
ascii code 125 } (curly brackets or braces)
ascii code 126 ~ (Tilde ; swung dash)
ascii code 127 DEL (Delete)
ascii code 128 Ç (Majuscule C-cedilla )
ascii code 129 ü (letter "u" with umlaut or diaeresis ; "u-umlaut")
ascii code 130 é (letter "e" with acute accent or "e-acute")
ascii code 131 â (letter "a" with circumflex accent or "a-circumflex")
ascii code 132 ä (letter "a" with umlaut or diaeresis ; "a-umlaut")
ascii code 133 à (letter "a" with grave accent)
ascii code 134 å (letter "a" with a ring)
ascii code 135 ç (Minuscule c-cedilla)
ascii code 136 ê (letter "e" with circumflex accent or "e-circumflex")
ascii code 137 ë (letter "e" with umlaut or diaeresis ; "e-umlaut")
ascii code 138 è (letter "e" with grave accent)
³
ascii code 139 ï (letter "i" with umlaut or diaeresis ; "i-umlaut")
ascii code 140 î (letter "i" with circumflex accent or "i-circumflex")
ascii code 141 ì (letter "i" with grave accent)
ascii code 142 Ä (letter "A" with umlaut or diaeresis ; "A-umlaut")
ascii code 143 Å (Capital letter "A" with a ring)
ascii code 144 É (Capital letter "E" with acute accent or "E-acute")
ascii code 145 æ (Latin diphthong "ae" in lowercase)
ascii code 146 Æ (Latin diphthong "AE" in uppercase)
ascii code 147 ô (letter "o" with circumflex accent or "o-circumflex")
ascii code 148 ö (letter "o" with umlaut or diaeresis ; "o-umlaut")
ascii code 149 ò (letter "o" with grave accent)
ascii code 150 û (letter "u" with circumflex accent or "u-circumflex")
ascii code 151 ù (letter "u" with grave accent)
ascii code 152 ÿ (Lowercase letter "y" with diaeresis)
ascii code 153 Ö (letter "O" with umlaut or diaeresis ; "O-umlaut")
ascii code 154 Ü (letter "U" with umlaut or diaeresis ; "U-umlaut")
ascii code 155 ø (slashed zero or empty set)
ascii code 156 £ (Pound sign ; symbol for the pound sterling)
ascii code 157 Ø (slashed zero or empty set)
ascii code 158 × (multiplication sign)
ascii code 159 ƒ (function sign ; f with hook sign ; florin sign )
ascii code 160 á (letter "a" with acute accent or "a-acute")
ascii code 161 í (letter "i" with acute accent or "i-acute")
ascii code 162 ó (letter "o" with acute accent or "o-acute")
ascii code 163 ú (letter "u" with acute accent or "u-acute")
ascii code 164 ñ (letter "n" with tilde ; enye)
ascii code 165 Ñ (letter "N" with tilde ; enye)
ascii code 166 ª (feminine ordinal indicator )
ascii code 167 º (masculine ordinal indicator)
ascii code 168 ¿ (Inverted question marks)
ascii code 169 ® (Registered trademark symbol)
ascii code 170 ¬ (Logical negation symbol)
ascii code 171 ½ (One half)
ascii code 172 ¼ (Quarter or one fourth)
ascii code 173 ¡ (Inverted exclamation marks)
ascii code 174 « (Angle quotes or guillemets)
ascii code 175 » (Guillemets or angle quotes)
ascii code 176 ░
ascii code 177 ▒
ascii code 178 ▓
ascii code 179 │ (Box drawing character)
ascii code 180 ┤ (Box drawing character)
ascii code 181 Á (Capital letter "A" with acute accent or "A-acute")
ascii code 182 Â (letter "A" with circumflex accent or "A-circumflex")
ascii code 183 À (letter "A" with grave accent)
ascii code 184 © (Copyright symbol)
ascii code 185 ╣ (Box drawing character)
ascii code 186 ║ (Box drawing character)
³
ascii code 187 ╗ (Box drawing character)
ascii code 188 ╝ (Box drawing character)
ascii code 189 ¢ (Cent symbol)
ascii code 190 ¥ (YEN and YUAN sign)
ascii code 191 ┐ (Box drawing character)
ascii code 192 └ (Box drawing character)
ascii code 193 ┴ (Box drawing character)
ascii code 194 ┬ (Box drawing character)
ascii code 195 ├ (Box drawing character)
ascii code 196 ─ (Box drawing character)
ascii code 197 ┼ (Box drawing character)
ascii code 198 ã (Lowercase letter "a" with tilde or "a-tilde")
ascii code 199 Ã (Capital letter "A" with tilde or "A-tilde")
ascii code 200 ╚ (Box drawing character)
ascii code 201 ╔ (Box drawing character)
ascii code 202 ╩ (Box drawing character)
ascii code 203 ╦ (Box drawing character)
ascii code 204 ╠ (Box drawing character)
ascii code 205 ═ (Box drawing character)
ascii code 206 ╬ (Box drawing character)
ascii code 207 ¤ (generic currency sign)
ascii code 208 ð (Lowercase letter "eth")
ascii code 209 Ð (Capital letter "Eth")
ascii code 210 Ê (letter "E" with circumflex accent or "E-circumflex")
ascii code 211 Ë (letter "E" with umlaut or diaeresis ; "E-umlaut")
ascii code 212 È (letter "E" with grave accent)
ascii code 213 ı (lowercase dot less i)
ascii code 214 Í (Capital letter "I" with acute accent or "I-acute")
ascii code 215 Î (letter "I" with circumflex accent or "I-circumflex")
ascii code 216 Ï (letter "I" with umlaut or diaeresis ; "I-umlaut")
ascii code 217 ┘ (Box drawing character)
ascii code 218 ┌ (Box drawing character)
ascii code 219 █ (Block)
ascii code 220 ▄
ascii code 221 ¦ (vertical broken bar )
ascii code 222 Ì (letter "I" with grave accent)
ascii code 223 ▀
ascii code 224 Ó (Capital letter "O" with acute accent or "O-acute")
ascii code 225 ß (letter "Eszett" ; "scharfes S" or "sharp S")
ascii code 226 Ô (letter "O" with circumflex accent or "O-circumflex")
ascii code 227 Ò (letter "O" with grave accent)
ascii code 228 õ (letter "o" with tilde or "o-tilde")
ascii code 229 Õ (letter "O" with tilde or "O-tilde")
ascii code 230 µ (Lowercase letter "Mu" ; micro sign or micron)
ascii code 231 þ (Lowercase letter "Thorn")
ascii code 232 Þ (Capital letter "thorn")
ascii code 233 Ú (Capital letter "U" with acute accent or "U-acute")
ascii code 234 Û (letter "U" with circumflex accent or "U-circumflex")
³
ascii code 235 Ù (letter "U" with grave accent)
ascii code 236 ý (Lowercase letter "y" with acute accent)
ascii code 237 Ý (Capital letter "Y" with acute accent)
ascii code 238 ¯ (macron symbol)
ascii code 239 ´ (Acute accent)
ascii code 240 - (Hyphen)
ascii code 241 ± (Plus-minus sign)
ascii code 242 ‗ (underline or underscore)
ascii code 243 ¾ (three quarters)
ascii code 244 ¶ (paragraph sign or pilcrow)
ascii code 245 § (Section sign)
ascii code 246 ÷ (The division sign ; Obelus)
ascii code 247 ¸ (cedilla)
ascii code 248 ° (degree symbol )
ascii code 249 ¨ (Diaeresis)
ascii code 250 · (Interpunct or space dot)
ascii code 251 ¹ (superscript one)
ascii code 252 ³ (cube or superscript three)
ascii code 253 ² (Square or superscript two)
ascii code 254 ■ (black square)
ascii code 255 nbsp (non-breaking space or no-break space)
visit : [Link]