Uploaded August 2012 | Updated September 2026, 1 week ago
LCD stands for Liquid Crystal Display. It can be used to display anything (virtually anything!). They are of many types. The ones we commonly use for embedded systems, robotics, etc are of two types -- character LCD and graphical LCD. We will discuss about character LCDs in this post whereas graphical LCDs will be discussed later.
The most popular type of character LCD is the HD44780 Character LCD. In this post, we will be using the JHD 162A character LCD shown below.
JHD 162A Character LCD
The JHD 162A LCD is fully compatible with the HD44780 LCD. Hence, the same set of codes will work for both. It is a 16×2 LCD module i.e. it has 16 columns and 2 rows for display. It can operate in either 8 bit mode or 4 bit mode. In 8 bit mode, an 8 bit is data is sent to the LCD from the MCU whereas in 4 bit mode, 4 bits of data are sufficient to operate it.
It has 16 pins, the details of which is given below:
JHD 162A Pin Configuration
Now, for the LCD to work in 8 bit mode, it requires the 8 data pins (DB0...DB7) and 3 control pins (RS, R/W, EN) whereas in 4 bit mode, it requires 4 data pins (DB4...DB7, only the upper nibble) and 3 control pins (RS, R/W, EN). Though the 8 bit mode is faster and more accurate, it consumes more pins of the MCU. However, the 4 bit mode is also fast and accurate enough to satisfy most of our need, plus it requires only 7 pins for interfacing. Hence, we will be working in the 4 bit mode. In the 4 bit mode, data pins DB0...DB3 are left open.
Interfacing LCD
First of all, you need to make basic connections of the LCD. You can refer to the following circuit diagram for this. Relate it with the pin configuration given above.
LCD Connector
Before coding, kindly download the LCD library written by Peter Fleury from here. This is an awesome library with predefined codes so that we can ease out a little bit by not breaking our heads upon the coding part. Thus we get to use the library functions instead of going into the depths of programming. This method is much more productive, efficient and time saving.
Configuring the library
Now that we are ready for programming, open up AVR Studio 5 and create new project. If you are new to AVR Studio 5, view this page to get started. Now in the right pane, you will find the Solution Explorer window. There, right click on the project name, go to Add and then choose Existing Item.... Now browse to the folder where you have downloaded the libraries and choose lcd.c and lcd.h.
Adding Libraries
Added Files and Headers
Now you can find the two files (the c file and the header file) listed in your project. Now follow the following steps in order to configure the library.
Double click on the 'lcd.h' file (in the Solution Explorer) to open it. Now make sure that you scroll down very slowly or else you will miss out on some important details.
As you begin to scroll down, you will find some commented text describing the library. Note the line where it says LCD_
-~-~~-~~~-~~-~-
Please watch: "Lifi Communication by Arduino UNO Download Project"
youtube.com/watch?v=c4gC8dbaiZg
-~-~~-~~~-~~-~-
LCD stands for Liquid Crystal Display. It can be used to display anything (virtually anything!). They are of many types. The ones we commonly use for embedded systems, robotics, etc are of two types -- character LCD and graphical LCD. We will discuss about character LCDs in this post whereas graphical LCDs will be discussed later.
The most popular type of character LCD is the HD44780 Character LCD. In this post, we will be using the JHD 162A character LCD shown below.
JHD 162A Character LCD
The JHD 162A LCD is fully compatible with the HD44780 LCD. Hence, the same set of codes will work for both. It is a 16×2 LCD module i.e. it has 16 columns and 2 rows for display. It can operate in either 8 bit mode or 4 bit mode. In 8 bit mode, an 8 bit is data is sent to the LCD from the MCU whereas in 4 bit mode, 4 bits of data are sufficient to operate it.
It has 16 pins, the details of which is given below:
JHD 162A Pin Configuration
Now, for the LCD to work in 8 bit mode, it requires the 8 data pins (DB0...DB7) and 3 control pins (RS, R/W, EN) whereas in 4 bit mode, it requires 4 data pins (DB4...DB7, only the upper nibble) and 3 control pins (RS, R/W, EN). Though the 8 bit mode is faster and more accurate, it consumes more pins of the MCU. However, the 4 bit mode is also fast and accurate enough to satisfy most of our need, plus it requires only 7 pins for interfacing. Hence, we will be working in the 4 bit mode. In the 4 bit mode, data pins DB0...DB3 are left open.
Interfacing LCD
First of all, you need to make basic connections of the LCD. You can refer to the following circuit diagram for this. Relate it with the pin configuration given above.
LCD Connector
Before coding, kindly download the LCD library written by Peter Fleury from here. This is an awesome library with predefined codes so that we can ease out a little bit by not breaking our heads upon the coding part. Thus we get to use the library functions instead of going into the depths of programming. This method is much more productive, efficient and time saving.
Configuring the library
Now that we are ready for programming, open up AVR Studio 5 and create new project. If you are new to AVR Studio 5, view this page to get started. Now in the right pane, you will find the Solution Explorer window. There, right click on the project name, go to Add and then choose Existing Item.... Now browse to the folder where you have downloaded the libraries and choose lcd.c and lcd.h.
Adding Libraries
Added Files and Headers
Now you can find the two files (the c file and the header file) listed in your project. Now follow the following steps in order to configure the library.
Double click on the 'lcd.h' file (in the Solution Explorer) to open it. Now make sure that you scroll down very slowly or else you will miss out on some important details.
As you begin to scroll down, you will find some commented text describing the library. Note the line where it says LCD_
-~-~~-~~~-~~-~-
Please watch: "Lifi Communication by Arduino UNO Download Project"
youtube.com/watch?v=c4gC8dbaiZg
-~-~~-~~~-~~-~-






![TISHITU -3 Microsoft Surface Calibration and application work on table for Restaurant Management
Microsoft Surface History
The earliest ideas that led to Surface originated at Microsoft back in 2001. At that time, researchers envisioned an interactive table that could sense the presence and movement of any objects on its surface. Microsoft founder Bill Gates encouraged the project in early 2003. After 85 prototypes, the project team came up with a design that would eventually become Surface 1.0.
Microsoft first demonstrated Surface at the 2007 All Things Digital (D) conference in Carlsbad, California. During that D conference, known as D5, Surface was far from the first platform making use of touch-screens. Tablet PCs, for example, could already detect a finger or stylus writing directly to the screen. Microsofts vision, though, has been to expand on that touch-screen approach to change the way people interact across the table from each other. The Surface device demonstrated at D5 was a black tabletop with a 30-inch (76.2-centimeter) touch-screen mounted beneath its clear acrylic surface [sources: Mintz, Fost, Microsoft, All Things Digital].
Microsofts first commercial deployment for Surface came nearly a year after this debut. In April 2008, select AT&T retail stores in the U.S. began using Surface computers as a sales tool for showcasing information about its mobile devices. Other corporate partners were in the works throughout 2008, primarily those who could enhance their businesses by using Surface devices and, in turn, show off the wondrous things that Surface could do. At an estimated price of more than $12,000, Microsoft was not targeting the average home consumer during its first Surface release [sources: Microsoft, Microsoft, Foley].
During the Consumer Electronics Show (CES) in early January 2011, Microsoft launched its marketing campaign for Surface 2.0. It also promoted its partnership with Samsung to produce the SUR40: a 4-inch (10.2-centimeter) thick tabletop computer with a 40-inch (1-meter) display running the Surface 2.0 platform. Scheduled to hit the market later in 2011, Microsoft reported that the SUR40 would cost about $7,600 in the United States. The price point, combined with the available software for Surface 2.0, seemed to indicate that Microsoft was still targeting the business owner rather than the home consumer [source: Foley].
Thats the brief history of Surface, though there will likely be many more chapters to come for this innovative new tool. Now, lets look under the hood and see what makes Surface more than just a big touch-screen display.
The Surface has implemented its NUI with a combination of hardware and software all packed inside a single device. The Surface 1.0 hardware features a series of cameras that sense a users touch or other objects placed on the tabletop. The Surface software processes the data from those cameras and then responds as appropriate for the application youre currently using. Surface shows the resulting interaction on its display, which is actually a projection of the screen from underneath the tabletop [source: Microsoft].
As part of its NUI, Surface also includes multi-touch technology. This means that Surface can detect and process several touch points simultaneously. Therefore, if you have several people browsing through pictures at one time, they can each drag, zoom and turn photos at the same time without waiting for each other. Multi-touch technology has been in existence for decades, and Apple made it famous by using it in its iPhone and iPod Touch devices. Surface computing brings that technology into a large, collaborative environment that can fully realize the multi-touch potential [source: Buxton].
40-inch (1-meter) LCD screen
4-inch (10.2-centimeter) unit depth/thickness for easier horizontal mounting
2.9 GHz 64-bit AMD Athlon X2 dual core processor
1 GB AMD Radeon HD graphics processor
4 GB DDR3 RAM
320 GB hard drive
Wired (1 GB Ethernet) and wireless (802.11 and Bluetooth) network hardware
Physical connectors include HDMI, stereo RCA, USB and SD card
Embedded 64-bit Windows 7 Professional operating system
Corning Gorilla Glass to protect the surface
Recognition for more than 50 simultaneous touch points
Weve just looked at the Surface hardware and how Microsoft is leading the way for surface computing. As Microsoft is primarily a software company, you might expect that the software part of the Surface platform is also quite innovative. Lets take a look at that on the next page.
-~-~~-~~~-~~-~-
Please watch: Lifi Communication by Arduino UNO Download Project
https://www.youtube.com/watch?v=c4gC8dbaiZg
-~-~~-~~~-~~-~- TISHITU -3 Microsoft Surface Calibration and application work on table for Restaurant Management](https://i.ytimg.com/vi/a99qXmJH7go/mqdefault.jpg)

![TISHITU Part-3 LM 35 temperature control via RS 232 Protocol By Visual Basic 6.0 , Proteus & Keil
In 1963, IBM produced computers which were specialized for data acquisition. These include the IBM 7700 Data Acquisition System and its
successor, the IBM 1800 Data Acquisition and Control System. These expensive specialized systems were surpassed in 1974 by general
purpose S-100 computers and data acquisitions cards produced by Tecmar/Scientific Solutions Inc. In 1981 IBM introduced the IBM
Personal Computer and Scientific Solutions introduced the first PC data acquisition products.
Data acquisition is the process of sampling signals that measure real world physical conditions and converting the resulting samples
into digital numeric values that can be manipulated by a computer. Data acquisition systems (abbreviated with the acronym DAS or DAQ)
typically convert analog waveforms into digital values for processing. The components of data acquisition systems include:
Sensors that convert physical parameters to electrical signals.
Signal conditioning circuitry to convert sensor signals into a form that can be converted to digital values.
Analog-to-digital converters, which convert conditioned sensor signals to digital values.
Data acquisition applications are controlled by software programs developed using various general purpose programming languages such as
BASIC, C, Fortran, Java, Lisp, Pascal.
Specialized software tools used for building large-scale data acquisition systems include EPICS. Graphical programming environments
include ladder logic, Visual C++, Visual Basic, and LabVIEW.
ISIS Schematic Capture - a tool for entering designs.
PROSPICE Mixed mode SPICE simulation - industry standard SPICE3F5 simulator combined with a digital simulator.
ARES PCB Layout - PCB design system with automatic component placer, rip-up and retry auto-router and interactive design rule checking.
VSM - Virtual System Modelling lets cosimulate embedded software for popular micro-controllers alongside hardware design.
Data acquisition begins with the physical phenomenon or physical property to be measured. Examples of this include temperature, light
intensity, gas pressure, fluid flow, and force. Regardless of the type of physical property to be measured, the physical state that is
to be measured must first be transformed into a unified form that can be sampled by a data acquisition system. The task of performing
such transformations falls on devices called sensors.
A sensor, which is a type of transducer, is a device that converts a physical property into a corresponding electrical signal (e.g., a
acquisition system to measure differing properties depends on having sensors that are suited to detect the various properties to be
measured. Signal conditioning may be necessary if the signal from the transducer is not suitable for the DAQ hardware being used. The
signal may need to be filtered or amplified in most cases. Various other examples of signal conditioning might be bridge completion,
providing current or voltage excitation to the sensor, isolation, linearization. For transmission purposes, single ended analog
signals, which are more susceptible to noise can be converted to differential signals. Once digitized, the signal can be encoded to
reduce and correct transmission errors.
DAQ (Data acquisition )hardware is what usually interfaces between the signal and a PC[1]. It could be in the form of modules that can
be connected to the computers ports (parallel, serial, USB, etc.) or cards connected to slots (S-100 bus, AppleBus, ISA, MCA, PCI,
PCI-E, etc.) in the motherboard. Usually the space on the back of a PCI card is too small for all the connections needed, so an
external breakout box is required. The cable between this box and the PC can be expensive due to the many wires, and the required
shielding.
DAQ cards often contain multiple components (multiplexer, ADC, DAC, TTL-IO, high speed timers, RAM). These are accessible via a bus by
a microcontroller, which can run small programs. A controller is more flexible than a hard wired logic, yet cheaper than a CPU so that
it is permissible to block it with simple polling loops. For example: Waiting for a trigger, starting the ADC, looking up the time,
waiting for the ADC to finish, move value to RAM, switch multiplexer, get TTL input, let DAC proceed with voltage ramp.
-~-~~-~~~-~~-~-
Please watch: Lifi Communication by Arduino UNO Download Project
https://www.youtube.com/watch?v=c4gC8dbaiZg
-~-~~-~~~-~~-~- TISHITU Part-3 LM 35 temperature control via RS 232 Protocol By Visual Basic 6.0 , Proteus & Keil](https://i.ytimg.com/vi/aLrwKLvIHL4/mqdefault.jpg)

