Upload
vinay-vittal-karagod
View
27
Download
1
Tags:
Embed Size (px)
Citation preview
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �������
�
CONTENTS Page No.
ABSTRACT 3
CHAPTER 1: INTRODUCTION 5
1.1 Introduction 6
1.1.1 Information 6
1.1.2 Information Transfer 6
1.2 Broadcast 7
1.3 Problem faced in the present display systems 7
1.4 Aim of the project 7
CHAPTER 2: DESIGN OVERVIEW AND GENERAL WORKING 8
2.1 Design on Paper 9
2.2 General working of the model 11
CHAPTER 3: HARDWARE PROFILE 13
3.1 GSM Model 14
3.1.1 Introduction to SIM300 14
3.1.2 SIM300 Functional diagram 16
3.1.3 Accessing GSM MODEM using Microsoft HyperTerminal 17
3.1.4 Testing of GSM MODEM 17
3.1.5 List of Important AT Commands 21
3.2 ARM Controller 22
3.2.1 General Description 22
3.2.2 Features 22
3.2.2.1 Enhanced Features 22
3.2.2.2 Key Features 23
3.2.3 Block Diagram 25
3.2.4 Pin Diagram 26
3.2.5 Pin Description 27
3.2.6 Functional description 30
3.2.6.1 Architectural Overview 30
3.2.6.2 On-chip flash program memory 31
3.2.6.3 On-chip Static RAM 31
3.2.6.4 UARTs 32
3.2.6.5 I2C-bus serial I/O controllers 33
3.2.6.6 Watchdog timer 34
3.2.6.7 Real-time clock 34
3.2.6.8 Crystal oscillator 35
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �������
�
3.3 DOT MATRIX LED DISPLAY 35
3.3.1 Characteristics 35
3.3.2 Features 36
3.3.3 Applications 36
3.3.4 Description 37
CHAPTER 4: SOFTWARE PROFILE 38
4.1 KEIL Development tool 39
4.1.1 How to create a new project 39
4.1.2 Selecting the device 40
4.1.3 Configuring the essentials 41
4.1.4 Addition of files in source group 42
4.1.5 Running the program 43
4.1.6 Target program execution and debugging 44
4.1.7 Watch Window 44
4.2 FLASH MAGIC 45
4.2.1 General description 45
4.2.2 LPC flash utility tool 46
4.3 Programming 48
4.3.1 flowchart for sending the message 48
4.3.2 flowchart for receiving the message 49
CHAPTER 5: DESIGNING AND INTERFACING 50
5.1 Power supply 51
5.1.1 Description 51
5.2 HXD Buzzer 53
5.3 RS-232 54
5.3.1 RS-232 Signals 55
5.3.2 RTS/CTS Handshaking 55
5.4 MAX 232 56
5.5 Various interfacing circuits 57
CHAPTER 6: CONCLUSION 59
6.1 Conclusion 60
6.2 Future Implementations 61
APPENDIX 62
BIBLIOGRAPHY 80
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ����� �
�
ABSTRACT
Wireless communication has announced its arrival on big stage and the world is going mobile.
We want to control everything and without moving an inch. This remote control of appliances is
possible through Embedded Systems. The use of “Embedded System in Communication” has
given rise to many interesting applications that ensures comfort and safety to human life.
The main aim of the project will be to design a SMS driven LED Notice Boards which
can replace the conventional Notice Boards. It is proposed to design receive cum display Notice
boards which can be programmed from an authorized mobile phone. The message to be
displayed is sent through a SMS from an authorized transmitter. The LED Notice Board receives
the SMS, validates the sending Mobile Identification Number (MIN) and displays the desired
information after necessary code conversion. The system is made efficient by using ‘clone’ SIMs
of same MIN in a geographical area so that the same SMS can be received by number of display
boards in a locality using techniques of time division multiple access. Started of as an
instantaneous News display unit, we have improved upon it and tried to take advantage of the
computing capabilities of microcontroller.
Looking into current trend of information transfer in the campus, it is seen that important
notice take time to be displayed in the notice boards. This latency is not expected in most of the
cases and must be avoided.
It is proposed to implement this project at the institute level. It is proposed to place
display boards in major access points. The electronics displays which are currently used are
programmable displays which need to be reprogrammed each time. This makes it inefficient for
immediate information transfer, and thus the display board looses its importance. The GSM
based display toolkit can be used as a add-on to these display boards and make it truly wireless.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����!�
�
The display board programs itself with the help of the incoming SMS with proper validation.
Such a system proves to be helpful for immediate information transfer.
The system required for the purpose is nothing but a Microcontroller based SMS box.
The main components of the toolkit include microcontroller, GSM modem. These components
are integrated with the display board and thus incorporate the wireless features. The GSM
modem receives the SMS. The AT commands are serially transferred to the modem through
MAX232. In return the modem transmits the stored message through the COM port. The ARM
controller validates the SMS and then displays the message in the LED display board. Various
time division multiplexing techniques have been suggested to make the display boards
functionally efficient. The ARM controller used in this case is Philips ARM7TDMI LPC2103.
SIM300 is used as the GSM modem. In implementation this can be replaced by actually display
boards like LED dot matrix displays.
BASIC BLOCK DIAGRAM OF SMS BASED NOTICE BOARD USING GSM AND ARM
CONTROLLER
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����"�
�
Chapter 1
INTRODUCTION
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����#�
�
1.1 INTRODUCTION
Presently, the United States is the most technologically advanced country in the area of
telecommunications with about; 126 million phone lines, 7.5 million cellular phone users, 5
thousand AM radio broadcast stations, 5 thousand FM radio stations, 1 thousand television
broadcast stations, 9 thousand cable television systems, 530 million radios, 193 million
television sets, 24 ocean cables, and scores of satellite facilities! This is truly an "Information
Age" and sometimes, you need to look at where we've been in order to see the future more
clearly!
1.1.1 Information
---“A message received and understood” --- Princeton
---“Information is a term with many meanings depending on context, but is as a rule closely
related to such concepts as meaning, knowledge, instruction, communication, representation, and
mental stimulus ” --- Wikipedia
--- “any communication or representation of knowledge such as facts, data, or opinions in any
medium or form, including textual, numerical, graphic, cartographic, narrative, or audiovisual
forms (OMB Circular A-130). ” --- Gils.net
--- “Facts, concepts, or instructions; any sort of knowledge or supposition which can be
communicated. “ --- cedar.web.cern
--- “Is organized data that has been arranged for better comprehension or understanding. What is
one person's information can become another person's data.” --- earthlink.net
1.1.2 Information Transfer
A coordinated sequence of user and telecommunications system actions that cause information
present at a source user to become present at a destination user.
Note: An information-transfer transaction usually consists of three consecutive phases called the
access phase, the information-transfer phase, and the disengagement phase.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����$�
�
1.2 Broadcast
It is a term to describe communication where a piece of information is sent or transmitted from
one point to all other points. There is just one sender, but the information is simultaneously sent
to all connected receivers. In networking, a distinction is made between broadcasting and
multicasting. Broadcasting sends a message to everyone on the network whereas multicasting
sends a message to a select list of recipients.
1.3. PROBLEM FACED IN THE PRESENT DISPLAY SYSTEM IN CAMPUS
Looking into current trend of information transfer in the campus, it is seen that important notice
take time to be displayed in the notice boards. This latency is not expected in most of the cases
and must be avoided.
1.4. AIM OF THE PROJECT:
The project mainly focuses on transmission of textual data through air interface by the use of
GSM through asynchronous serial communication .The data will be processed by the
microcontroller on both ends. The data will be displayed on LED only after entering unique pass
key. In addition to that address matching is done and data can be received only by the dedicated
receiver.
Actually what happens is, sending sms through phone has become very popular and if we
can use this sms to control devices and in displaying data. It is possible to receive or decode the
sms globaly by using gsm , by the any part of world we can control and display data on LED
board .
In this project we not only send the data but send the data with pass code also. Which
enables us to prevent the unauthorized use of LED display board and only the person who have
pass code can have access to LED board . Important feature of thesis is we are using gsm
network by which we can control LED display board by the any part of globe. If we must have
the respected pass code. And the pass code is ok then the correct data is to be displayed on LED.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����%�
�
Chapter 2
DESIGN OVERVIEW AND
GENERAL WORKING
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����&�
�
2.1. Design on Paper As explained in the introduction chapter, the realization of complete potential of the display
boards and the wireless medium in information transfer is the major issue that the following
thesis of the following project deals with.
Figure 2.1. Design Overview
As we see in the above figure, there are at least three interfacing circuits, MAX-232 with
microcontroller, LED display with microcontroller, and MAX-232 with GSM MODEM. The
display boards used commercially can be as follows:
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ������'�
�
Figure 2.2 Commercially used display boards
The input requirement for such kind of display boards are 120/240 VAC 50//60 Hz with
Internal circuit breaker sized per sign layout.
The display boards are usually huge in size and cannot be used for simulation purpose. So
LED displays are used for testing.
It is not a hidden fact that interfacing a MODEM with a normal PC is quite easy with the
help of the AT commands sent to it from the Hyper Terminal window. But we must take into
account the fact that the MODEM requires a wired connection at one end and wireless at the
other. Dedicating a general purpose computer at each and every site of the display boards,
although makes the task a lot easier but is too expensive to be a possibility. Hence we employ
Philips LPC2103 ARM controller with 64 Kb EEROM storage memory. The complexity of
coding substantially increases, but once programmed the module works at its robust best since it
is a dedicated embedded system and not a general purpose computer. The design procedure
involves identifying and assembling all the required hardware and ensuring fail safe interfacing
between all the components. Then we have the coding process which has to take care of the
delays between two successive transmissions and most importantly the validation of the sender’s
number. The number of valid mobile numbers can be more than one. The limiting constraint is
the RAM of the microcontroller rather than the coding complexity.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ��������
�
2.2 General working of the model:
Fig 2.3: BASIC BLOCK DIAGRAM OF SMS BASED NOTICE BOARD USING GSM AND
ARM CONTROLLER
The Basic block diagram of the SMS Based Notice Board is shown in the figure above. The
Transformer provides the 12v AC supply, it is then converted to 5v DC power supply by means
of the AC to DC converter. This 5v DC supply is used to power up all the other circuits like the
GSM module, Arm board ,Buzzer and the LED display unit.
Whenever the GSM module is powered up and after it catches the signal, it sends a
message as “SYSTEM STARTS” to the authorized person. This indicates that the system is now
ready to receive the SMS and to put it on the moving display unit.
As the GSM module receives the message it is given to the ARM processor for further
processing of the received message. It carries out various processing actions such as checking for
the length of the received massage, acknowledges the sender that the message is received. Once
the processing is done the buzzer is powered up to indicate that there is a new massage for the
display.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ��������
�
Processed message is then passed through the MAX232 , which converts the RS232
levels into TTL/CMOS levels required for the display. The message is now stored on the
EPROM and given to the display unit. The display unit keeps displaying the same message until
a new message is received. The message should not exceed 35 characters. The display unit used
in this project is LED DOT MATRIX, where each character is of 5x7.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ������ �
�
Chapter 3
HARDWARE PROFILE
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ������!�
�
3.1. GSM MODEM
3.1.1 Introduction to sim300
A GSM modem is a wireless modem that works with a GSM wireless network. A wireless
modem behaves like a dial-up modem. The main difference between them is that a dial-up
modem sends and receives data through a fixed telephone line while a wireless modem sends and
receives data through radio waves. Like a GSM mobile phone, a GSM modem requires a SIM
card from a wireless carrier in order to operate. SIM300 is a Tri-band GSM/GPRS engine that
works on frequencies EGSM 900 MHz, DCS 1800 MHz and PCS 1900 MHz. SIM300 features
GPRS multi-slot class 10/ class 8 (optional) and supports the GPRS coding schemes CS-1, CS-2,
CS-3 and CS-4.
You can use AT Command to get information in SIM card. The SIM interface supports
the functionality of the GSM Phase 1 specification and also supports the functionality of the new
GSM Phase 2+ specification for FAST 64 kbps SIM (intended for use with a SIM application
Tool-kit).Both 1.8V and 3.0V SIM Cards are supported. The SIM interface is powered from an
internal regulator in the module having nominal voltage 2.8V. All pins reset as outputs driving
low.
• Reading, writing and deleting SMS messages.
• Sending SMS messages.
• Monitoring the signal strength.
• Monitoring the charging status and charge level of the battery.
• Reading, writing and searching phone book entries.
����������ABCD���A�E��F�C������
�
���B�������������
�
Fig
Designed for global market, SIM
nSM 900 MHz, DCS 1800 MHz
10/ class 8 (optional) and suppor
a tiny configuration of 40mm
requirements in your application
The physical interface to the m
connector, which provides all ha
except the RF antenna interface.
�F�C����������������A�BEA���E�
�
igure 3.1. Sim300 Evaluation Board
M300 is a Tri-band GSM/GPRS engine that work
Hz and PCS 1900 MHz. SIM300 features GPRS
orts the GPRS coding schemes CS-1, CS-2, CS-3
x 33mm x 2.85mm , SIM300 can fit almo
ons, such as smart phone, PDA phone and other
mobile application is made through a 60-pin
hardware interfaces between the module and cu
e.
������"�
rks on frequencies
RS multi-slot class
3 and CS-4.nWith
ost all the space
er mobile devices.
pin board-to-board
customers’ boards
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ������#�
�
The SIM300 provides RF antenna interface with two alternatives: antenna connector and antenna
pad. The antenna connector is MURATA MM9329-2700. And customer’s antenna can be
oldered to the antenna pad. The SIM300 is designed with power saving technique, the current
consumption is as low as 2.5mA in SLEEP mode. The SIM300 is integrated with the TCP/IP
protocol; extended TCP/IP AT commands are developed for customers to use the TCP/IP
protocol easily, which is very useful for those data transfer applications. In order to help you to
develop the SIM300 application, SIMCOM can supply an Evaluation Board (EVB) that
interfaces the SIM300 directly with appropriate power supply, SIM card, RS232 serial port,
handset port, earphone port, antenna and all GPIO of the SIM300.
3.1.2 SIM300 functional diagram
Fig 3.2 : SIM300 Functional Diagram
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ������$�
�
The following figure shows a functional diagram of the SIM300 and illustrates the mainly
functional part:
1. The GSM baseband engine
2. Flash and SRAM
3. The GSM radio frequency part
4. The antenna interface
5. The board-to-board interface
3.1.3 Accessing GSM MODEM using Microsoft HyperTerminal
Microsoft HyperTerminal is a small program that comes with Microsoft Windows. We
use it to send AT commands to the GSM modem. It can be found at Start -> Programs ->
Accessories -> Communications -> HyperTerminal.
Before programming our SMS application, it is required to check if the GSM modem and SIM
card are working properly first. The MS HyperTerminal is a handy tool when it comes to testing
the GSM device. It is a good idea to test the GSM devices beforehand. When a problem occurs,
sometimes it is difficult to tell what causes the problem. The cause can be the program, the GSM
device or the SIM card. If GSM device and SIM card with MS HyperTerminal and they operate
properly, then it is very likely that the problem is caused by the program or other hard wares. For
Linux users, Mincom can be used instead of HyperTerminal.
3.1.4 Testing of GSM MODEM
To use MS HyperTerminal to send AT commands to the GSM modem, the following procedure
is followed
1. We put a valid SIM card into the GSM modem. We can obtain a SIM card by subscribing to
the GSM service of a wireless network operator.
2. Since in our case the modem drivers were pre installed, we need not to install any such
drivers.
3. Then we start up MS HyperTerminal by selecting Start -> Programs -> Accessories ->
Communications -> HyperTerminal.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ������%�
�
4. In the Connection Description dialog box (as shown in the screenshot given below), we enter
any name and choose an icon we like for the connection. Then we click the OK button.
Figure. 3.3. The screenshot of MS HyperTerminal's Connection Description dialog box
5. In the Connect To dialog box, choose the COM port that your mobile phone or GSM modem
is connecting to in the Connect using combo box. For example, choose COM1 if your mobile
phone or GSM modem is connecting to the COM1 port. Then click the OK button.(Sometimes
there will have more than one COM port in the Connect using combo box. To know which COM
port is used by your mobile phone or GSM modem, follow the procedure below.
In Windows XP:
Go to Control Panel -> Phone and Modem Options. Then click the Modems tab. In the list box,
you can see which COM port the mobile phone or GSM modem is connected to.)
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ������&�
�
Figure. 3.4. The screenshot of MS HyperTerminal's Connect to dialog box
6. The Properties dialog box comes out. Enter the correct port settings for your mobile phone or
GSM modem. Then click the OK button. (To find the correct port settings that should be used
with your mobile phone or GSM modem, one way is to consult the manual of your mobile phone
or GSM modem. Another way is to check the port settings used by the wireless modem driver
that you installed earlier.
To check the port settings used by the wireless modem driver on Windows XP, follow these
steps:
a. Go to Control Panel -> Modem.
b. Select your mobile phone or GSM modem in the list box.
c. Click the Properties button.
d. The Properties dialog box appears. The Maximum speeds field on the General tab corresponds
to HyperTerminal's Bits per second field. Click the Connection tab and you can find the settings
for data bits, parity and stop bits. Click the Advanced button and you can find the setting for flow
control. To check the port settings used by the wireless modem driver on Windows 2000 and
Windows XP, follow these steps:
a. Go to Control Panel -> Phone and Modem Options -> Modems tab.
b. Select your mobile phone or GSM modem in the list box.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ������'�
�
c. Click the Properties button.
d. The Properties dialog box appears. Click the Advanced tab and then click the Change Default
Preferences button.
e. The Change Default Preferences dialog box appears. The Port speed field on the General tab
corresponds to HyperTerminal's Bits per second field. You can also find the setting for flow
control on the General tab. On the Advanced tab, you can find the settings for data bits, parity
and stop bits.)
Figure. 3.5. The screenshot of MS HyperTerminal's Properties dialog box
7. Type "AT" in the main window. A response "OK" should be returned from the mobile phone
or GSM modem. Type "AT+CPIN?" in the main window. The AT command "AT+CPIN?" is
used to query whether the mobile phone or GSM modem is waiting for a PIN (personal
identification number, i.e. password). If the response is "+CPIN: READY", it means the SIM
card does not require a PIN and it is ready for use. If your SIM card requires a PIN, you need to
set the PIN with the AT command "AT+CPIN=<PIN>".
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ��������
�
Figure. 3.6. The screenshot of MS HyperTerminal's main window in Windows XP.
If you get the responses above, your mobile phone or GSM modem is working properly. You can
start typing your own AT commands to control the mobile phone or GSM modem.
3.1.5 List of Important AT Commands
COMMANDS DESCRIPTION POSSIABLE RESPONSES
AT+CPIN? It just verifies the detection of
the signal
OK
CME: Error 10
AT+CMGS=”mobile no ” It is used to send the message
to the particular mobile no.,
>message
AT+CNMI=2,2,0,0,0 It is used to receive message
from the user and display.
>message received
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ��������
�
3.2 ARM Controller
3.2.1 General Description
The LPC2103 microcontrollers are based on a 32-bit ARM7TDMI-S CPU with real-time
emulation with 32 kB of embedded high-speed flash memory. A 128-bit wide memory interface
and a unique accelerator architecture enable 32-bit code execution at the maximum clock rate.
For critical performance in interrupt service routines and DSP algorithms, this increases
performance up to 30 % over Thumb mode. For critical code size applications, the alternative
16-bit Thumb mode reduces code by more than 30 % with minimal performance penalty.
Due to their tiny size and low power consumption, the LPC2103 are ideal for applications
where miniaturization is a key requirement. A blend of serial communications interfaces ranging
from multiple UARTs, SPI to SSP and two I2C-buses, combined with on-chip SRAM of 8 kB,
make these devices very well suited for communication gateways and protocol converters. The
superior performance also makes these devices suitable for use as math coprocessors. Various
32-bit and 16-bit timers, an improved 10-bit ADC, PWM features through output match on all
timers, and 32 fast GPIO lines with up to nine edge or level sensitive external interrupt pins
make these microcontrollers particularly suitable for industrial control and medical systems.
3.2.2. Features
3.2.2.1 Enhanced features
Enhanced features are available in parts LPC2103 labelled Revision A and higher:
• Deep power-down mode with option to retain SRAM memory and/or RTC.
• Three levels of flash Code Read Protection (CRP) implemented.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ������ �
�
3.2.2.2 Key features
• 32-bit ARM7TDMI-S microcontroller in tiny LQFP48 and HVQFN48 packages.
• 8 kB of on-chip static RAM and 32 kB of on-chip flash program memory.
• 128-bit wide interface/accelerator enables high-speed 70 MHz operation.
• ISP/IAP via on-chip bootloader software. Single flash sector or full chip erase in 100
ms and programming of 256 bytes in 1 ms.
• Embedded ICE-RT offers real-time debugging with the on-chip Real Monitor
software.
• The 10-bit ADC provides eight analog inputs, with conversion times as low as 2.44
ms per channel and dedicated result registers to minimize interrupt overhead.
• Two 32-bit timers/external event counters with combined seven capture and seven
compare channels.
• Two 16-bit timers/external event counters with combined three capture and seven
compare channels.
• Low power Real-Time Clock (RTC) with independent power and dedicated 32 kHz
• clock input.
• Multiple serial interfaces including two UARTs (16C550), two Fast I2C-buses
• (400 kbit/s), SPI and SSP with buffering and variable data length capabilities.
• Vectored interrupt controller with configurable priorities and vector addresses.
• Up to thirty-two, 5 V tolerant fast general purpose I/O pins.
• Up to 13 edge or level sensitive external interrupt pins available.
• 70 MHz maximum CPU clock available from programmable on-chip PLL with a
• possible input frequency of 10 MHz to 25 MHz and a settling time of 100 ms.
• On-chip integrated oscillator operates with an external crystal in the range from 1
MHz
• to 25 MHz.
• Power saving modes include Idle mode, Power-down mode with RTC active, and
• Power-down mode.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ������!�
�
• Individual enable/disable of peripheral functions as well as peripheral clock scaling
for
• additional power optimization.
• Processor wake-up from Power-down and Deep power-down (Revision A and higher)
• mode via external interrupt or RTC.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ������"�
�
3.2.3 BLOCK DIAGRAM OF LPC2103
Fig 3.7: BLOCK DIAGRAM OF LPC2103
����������ABCD���A�E��F�C������
�
���B�������������
�
3.2.4 PIN DIAGRAM :
Fig
�F�C����������������A�BEA���E�
ig 3.8: PIN DIAGRAM OF LPC2103
������#�
����������ABCD���A�E��F�C������
�
���B�������������
�
3.2.5 PIN DESCRIPTION:
�F�C����������������A�BEA���E�
������$�
����������ABCD���A�E��F�C������
�
���B�������������
�
�F�C����������������A�BEA���E�
������%�
����������ABCD���A�E��F�C������
�
���B�������������
�
�F�C����������������A�BEA���E�
������&�
����������ABCD���A�E��F�C������
�
���B�������������
�
[1] 5 V tolerant pad providing d
slew rate control.
[2] 5 V tolerant pad providing d
slew rate control. If configured
blocks pulses shorter than 3 ns.
[3] Open-drain 5 V tolerant digita
external pull-up to provide an out
[4] 5 V tolerant pad providing d
control) and analog input functio
glitch filter that blocks pulses s
section of the pad is disabled.
[5] Pad provides special analog fu
3.2.6 Functional description
3.2.6.1 Architectural overview
The ARM7TDMI-S is a general
and very low power consumptio
Computer (RISC) principles, an
simpler than those of micropro
simplicity results in a high instr
from a small and cost-effective p
Pipeline techniques are employed
�F�C����������������A�BEA���E�
g digital I/O functions with TTL levels and hyst
g digital I/O functions with TTL levels and hyst
d for an input function, this pad utilizes built-in
ital I/O I2C-bus 400 kHz specification compatibl
output functionality.
digital I/O (with TTL levels and hysteresis and
tion. If configured for an input function, this pad
s shorter than 3 ns. When configured as an AD
functionality
al purpose 32-bit microprocessor, which offers h
tion. The ARM architecture is based on Reduced
and the instruction set and related decode mech
programmed Complex Instruction Set Compute
struction throughput and impressive real-time in
processor core.
ed so that all parts of the processing and memory
����� '�
steresis and 10 ns
steresis and 10 ns
in glitch filter that
ible pad. It requires
nd 10 ns slew rate
ad utilizes built-in
DC input, digital
high performance
ced Instruction Set
chanism are much
ters (CISC). This
interrupt response
ry systems
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ����� ��
�
can operate continuously. Typically, while one instruction is being executed, its successor is
being decoded, and a third instruction is being fetched from memory. The ARM7TDMI-S
processor also employs a unique architectural strategy known as Thumb, which makes it ideally
suited to high-volume applications with memory restrictions, or applications where code density
is an issue. The key idea behind Thumb is that of a super-reduced instruction set. Essentially, the
ARM7TDMI-S processor has two instruction sets:
• The standard 32-bit ARM set.
• A 16-bit Thumb set.
The Thumb set’s 16-bit instruction length allows it to approach twice the density of standard
ARM code while retaining most of the ARM’s performance advantage over a traditional 16-bit
processor using 16-bit registers. This is possible because Thumb code operates on the same 32-
bit register set as ARM code. Thumb code is able to provide up to 65 % of the code size of
ARM, and 160 % of the performance of an equivalent ARM processor connected to a 16-bit
memory system. The particular flash implementation in the LPC2103 allows for full speed
execution also in ARM mode. It is recommended to program performance critical and short code
Sections in ARM mode. The impact on the overall code size will be minimal but the speed can
be increased by 30 % over Thumb mode.
3.2.6.2 On-chip flash program memory
The LPC2103 incorporate a 32 kB flash memory system respectively. This memory may be used
for both code and data storage. Programming of the flash memory may be accomplished in
several ways. It may be programmed in system via the serial port. The application program may
also erase and/or program the flash while the application is running, allowing a great degree of
flexibility for data storage field firmware upgrades, etc. The entire flash memory is available for
user code as the bootloader resides in a separate memory.The LPC2103 flash memory provides a
minimum of 100,000 erase/write cycles and 20 years of data-retention memory.
3.2.6.3 On-chip static RAM
On-chip static RAM may be used for code and/or data storage. The SRAM may be accessed as
8-bits, 16-bits, and 32-bits. The LPC2103 provide 8 kB of static RAM.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ����� ��
�
Fig 3.9: Block diagram of ARM memory
3.2.6.4 UARTs
The LPC2103 each contain two UARTs. In addition to standard transmit and receive data lines,
UART1 also provides a full modem control handshake interface. Compared to previous
LPC2000 microcontrollers, UARTs in LPC2103 include a fractional baud rate generator for both
UARTs. Standard baud rates such as 115200 can be achieved with any crystal frequency above 2
MHz.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ����� �
�
Features
• 16 byte Receive and Transmit FIFOs.
• Register locations conform to 16C550 industry standard.
• Receiver FIFO trigger points at 1, 4, 8, and 14 bytes
• Built-in fractional baud rate generator covering wide range of baud rates without a need for
external crystals of particular values.
• Transmission FIFO control enables implementation of software (XON/XOFF) flow control on
both UARTs.
• UART1 is equipped with standard modem interface signals. This module also provides full
support for hardware flow control (auto-CTS/RTS).
3.2.6.5 I2C-bus serial I/O controllers
The LPC2103 each contain two I2C-bus controllers. The I
2C-bus is bidirectional, for inter-IC
control using only two wires: a Serial Clock Line (SCL), and a Serial Data Line (SDA). Each
device is recognized by a unique address and can operate as either a receiver-only device (e.g.,
LCD driver) or a transmitter with the capability to both receive and send information such as
serial memory. Transmitters and/or receivers can operate in either master or slave mode,
depending on whether the chip has to initiate a data transfer or is only addressed. The I2C-bus is
a multi-master bus, it can be controlled by more than one bus master connected to it. The I2C-bus
implemented in LPC2101/02/03 supports bit rates up to 400 kbit/s (Fast I2C-bus).
Features
• Compliant with standard I2C-bus interface.
• Easy to configure as Master, Slave, or Master/Slave.
• Programmable clocks allow versatile rate control.
• Bidirectional data transfer between masters and slaves.
• Multi-master bus (no central master).
• Arbitration between simultaneously transmitting masters without corruption of serial
data on the bus.
• Serial clock synchronization allows devices with different bit rates to communicate via one
serial bus.
• Serial clock synchronization can be used as a handshake mechanism to suspend and resume
serial transfer.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ����� !�
�
• The I2C-bus can also be used for test and diagnostic purpose
3.2.6.6 Watchdog timer
The purpose of the watchdog is to reset the microcontroller within a reasonable amount of time if
it enters an erroneous state. When enabled, the watchdog will generate a system reset if the user
program fails to ‘feed’ (or reload) the watchdog within a predetermined amount of time.
Features
• Internally resets chip if not periodically reloaded.
• Debug mode.
• Enabled by software but requires a hardware reset or a watchdog reset/interrupt to be disabled.
• Incorrect/Incomplete feed sequence causes reset/interrupt if enabled.
• Flag to indicate watchdog reset.
• Programmable 32-bit timer with internal pre-scaler.
• Selectable time period from (TPCLK ´ 256 ´ 4) to (TPCLK ´ 232 ´ 4) in multiples of
TPCLK ´ 4.
3.2.6.7 Real-time clock
The Real-Time Clock (RTC) is designed to provide a set of counters to measure time when
normal or idle operating mode is selected. The RTC has been designed to use little power,
making it suitable for battery powered systems where the CPU is not running continuously (Idle
mode).
Features
• Measures the passage of time to maintain a calendar and clock.
• Ultra-low power design to support battery powered systems.
• Provides Seconds, Minutes, Hours, Day of Month, Month, Year, Day of Week, and Day of
Year.
• Can use either the RTC dedicated 32 kHz oscillator input or clock derived from the external
crystal/oscillator input at XTAL1. The programmable reference clock divider allows fine
adjustment of the RTC.
• Dedicated power supply pin can be connected to a battery or the main 3.3 V.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ����� "�
�
3.2.6.8 Crystal oscillator
The on-chip integrated oscillator operates with external crystal in range of 1 MHz to 25 MHz.
The oscillator output frequency is called fosc and the ARM processor clock frequency is referred
to as CCLK for purposes of rate equations, etc. fosc and CCLK are the same value unless the
PLL is running and connected. Refer to Section 6.17.2 “PLL” and Section 10.1 “XTAL1 input”
for additional information.
3.3 DOT MATRIX LED DISPLAY
A dot matrix display is a display device used to display information on machines, clocks, railway
departure indicators and many other devices requiring a simple display device of limited
resolution. The display consists of a matrix of lights of mechanical indicators arranged in a
rectangular configuration (other shapes are also possible, although not common) such that by
switching on or off selected lights, texts or graphics can be displayed. A dot matrix controller
converts instructions from a processor into signals which turns on or off lights in the matrix so
that the required display is produced.
3.3.1 CHARACTERISTICS:
� Long lasting
� Highly effective
� Low power consumption
� High luminance
� White day light (6500K)
� Robustness
� No resistors needed
� Viewing angle 160 degrees
� Low price
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ����� #�
�
Fig 3.10 : 5x7 Dot Matrix LED
The Flexibility of having a vero-board included in the AVR Project Board make it ideal for
developing code library for the basic building block of a big application. 5 x 7 Dot-matrix LED
Display is one of the example.
Dot Matrix Display used in this example is a 7 Rows by 5 Column single colorLED Matrix
Display. LEDs in the Module is arranged in the way that the Row Lines are connected to the
Cathodes of the LEDs and the Column Lines are connected to the Anodes. In order to display
any character on the display specific pattern is required to be updated on Row lines while the
column lines are to be scanned in a timely manner so that the scanning is not visible to the
viewer. A timer is usually used to do it (Timer 0 is used in this example) to maintain the strict
timing requirements.
We use 74HC595 to drive the continuous display. The description of 74HC595 is given below:
3.3.2 FEATURES
• 8-bit serial input
• 8-bit serial or parallel output
• Storage register with 3-state outputs
• Shift register with direct clear
• 100 MHz (typical) shift out frequency
• ESD protection: HBM EIA/JESD22-A114-A exceeds 2000 V, MM EIA/JESD22-A115-
A exceeds 200 V.
3.3.3 APPLICATIONS
• Serial-to-parallel data conversion
• Remote control holding register.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ����� $�
�
3.3.4 DESCRIPTION
The 74HC/HCT595 are high-speed Si-gateCMOSdevices and are pin compatible with low power
Schottky TTL (LSTTL). They are specified in compliance with JEDEC standard no. 7A. The
74HC/HCT595 is an 8-stage serial shift register with a storage register and 3-state outputs. The
shift register and storage register have separate clocks. Data is shifted on the positive-going
transitions of the SH_CP input. The data in each register is transferred to the storage register on a
positive-going transition of the ST_CP input. If both clocks are connected together, the shift
register will always be one clock pulse ahead of the storage register. The shift register has a
serial input (DS) and a serial standard output (Q7’) for cascading. It is also provided with
asynchronous reset (active LOW) for all 8 shift register stages. The storage register has 8 parallel
3-state bus driver outputs. Data in the storage register appears at the output whenever the output
enable input (OE) is LOW.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� ����� %�
�
Chapter 4
SOFTWARE
PROFILE�
����������ABCD���A�E��F�C������
�
���B�������������
�
4.1 KEIL Development Tool
Keil software provides th
ASSEMBLY. U-VISION 2,
management, Source Code Editin
environment. It acts as a CROSS
4.1.1 How to Create a New Pro
1. Select the Project from th
2. Select New Project.
3. Give the File Name. A pr
�F�C����������������A�BEA���E�
the ease of writing the code in
, the new IDE from Keil Software co
ting and Program Debugging in one powerful
S-COMPILER.
roject
the menu bar.
project with extension of .uv2 will be created
����� &�
either C or
combines Project
����������ABCD���A�E��F�C������
�
���B�������������
�
4.1.2 Selecting the Device
1. After giving the file name
2. Select the respective com
hardware.
3. From the drop down a
manufacturer. Choose the
4. Now the target is ready.
5. The data sheets and user m
�F�C����������������A�BEA���E�
me the device list windows opens.
ompany’s microcontroller IC that is going to be
arrow, we get a list of all the chips from
he appropriate one.
r manuals are automatically added.
�����!'�
be implemented in
m that particular
����������ABCD���A�E��F�C������
�
���B�������������
�
4.1.3 Configuring the essentials
1. Right Click on Target to v
2. The Target tab enables to
have to specify the freque
3. The Output tab has the op
it.
4. The A166 and C51 tabs s
�F�C����������������A�BEA���E�
als
o view the options for Target 1.
to give the Starting address and size of RAM and
uency of the crystal used which in our case is 11.0
option to create the HEX file. Confirm the check
shows the compiler options.
�����!��
nd ROM. We also
1.0592Hz.
k box given beside
����������ABCD���A�E��F�C������
�
���B�������������
�
4.1.4 Addition of files in Source
1. After the Target is created
2. Select the file menu and c
.a51 or .asm extension. Th
3. Right click on source g
assembler files created e
left-hand side project win
4. These files will contain yo
5. Options for source group
�F�C����������������A�BEA���E�
ce group
ted the source group is added to it.
d choose the ‘New’ option in it to get a page. Save
These assembler files are the ones recognized by
group and select add files to include the prog
earlier and confirm the action. The selected fil
indow.
your actual program in assembly or in embedded
p includes the compilers C51 and A51 paths.
�����!��
ve the same with a
y the compiler.
rogram. Select the
files appear in the
ed C language
����������ABCD���A�E��F�C������
�
���B�������������
�
4.1.5 Running the program
1. Any number of sub progr
2. To run the program rig
application with syntax er
Output Window – Build p
the correct location in a µ
3. Then select rebuild all th
files are translated, regard
4. After the target is built, de
5. After all the debugging th
used to download to the m
�F�C����������������A�BEA���E�
grams can be added to source group.
right click on it and select Build Target. Whe
errors, µVision2 will display errors and warning
d page. A double click on a message line opens t
µVision2 editor window.
the target files too. With the Rebuild Target com
rdless of modifications.
debugging is done.
the file is built again which creates a hex file. Thi
microcontroller using a programmer kit.
�����! �
hen you build an
g messages in the
s the source file on
mmand, all source
his hex file is then
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����!!�
�
4.1.6 Target Program Execution & Debugging
µVision2 lets execute your application program in several different ways:
� With the Debug Toolbar buttons and the “Debug Menu and Debug Commands”.
� With the Run till Cursor line command in the local menu. The local menu opens with a
right mouse click on the code line in the Editor or Disassembly window.
� In the Output Window – Command page you can use the Go, Ostep, Pstep, and Tstep
commands.
4.1.7 Watch Window
The Watch window lets you to view and modify program variables and lists the current function
call nesting. The contents of the Watch Window are automatically updated whenever program
execution stops. You can enable View Periodic Window Update to update variable values while
a target program is running.
The Locals page shows all local function variables of the current function. The
Watch pages display user-specify program variables. You add variables in three different ways:
� Select the text <enter here> with a mouse click and wait a second. Another mouse click
enters edit mode that allows you to add variables. In the same way you can modify
variable values.
� In an editor window open the context menu with a right mouse click and use Add to
Watch Window. µVision2 automatically selects the variable name under the cursor
position, alternatively you may mark an expression before using that command.
� In the Output Window – Command page you can use the Watch Set command to enter
variable names.
To remove a variable, click on the line and press the Delete key. The current function call
nesting is shown in the Call Stack page. Double clicking on a line shows the invocation an editor
window.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����!"�
�
4.2 FLASH MAGIC:
4.2.1 General description
‘ 8051 Development Board support major chips From Philips For programming that are flash
programmable microcontrollers that supports serial programming of devices. Flash
microcontroller can be erased and re-written as many times as possible. Flexibility to reprogram
number of times and its low cost make it ideal for use in a wide areas of applications.This
product is a combination of intelligent hardware and software. Bootloader Inside the Chip that
understands a protocol received from computer through serial port . On computer side software
called ‘Flash Magic’ is started that identifies the hardware and the chip inserted. Program for the
target microcontroller can be now either read back or sent as Intel format HEX file. Support
locking of devices to prevent reading back of programmed chip. After locking the chip can still
be erased and used again for loading new programs.Atmel series can only test in this
Development Board.
Features
• Support major Philips devices
• Lock of programs in chip supported to prevent program copying
• ZIF socket on-board Compatible 40 pin Microcontrollers
• Auto Erase before writing and Auto Verify after writing
• Informative status bar and access to latest programmed file
• Simple and Easy to use
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����!#�
�
4.2.2 LPC FLASH UTILITY TOOL:
The flash utility tool is used to burn the code into the ARM processor.The snapshot of the tool
being used to burn the code is shown below
Using the Compare Flash:
The below steps need not be carried out if the checksum is part of the code before it is compiled.
This would mean that checksum would be part of the hex file been created. For more detailed
information on the checksum calculation please refer to the “Flash Memory System and
Programming” chapter in the respective device User Manual. In this case, the hex file can be
directly loaded using the “Upload to Flash” button and then the “ Compare Flash” button can be
used to compare the Flash contents with the hex file. This direct operation is possible since the
signature (or checksum) is part of the hex file already.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����!$�
�
Now we will show the path of hex file to be burned to the processor and uploaded to the
flash.The program is now burnt into the procesor and is ready to executed.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����!%�
�
4.3 PROGRAMMING:
4.3.1 FLOWCHART FOR SENDING THE MESSAGE:
�
�
�
����������������������������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������������������������������
��������������������������������������������������������������������������������������������������
������������������������������������������������������������������������������������
�
������������������������������������������������ �
�����������������������������������������������������������������������������������������������������������������
�����������������������������������������������������������������������������������������������
����������������������������������
������������������������������������
�
�����������������������������������������������������������������������������������������������������
�����������������������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������������
�
�
�
�
�
�
�
������
�����
��AB�
CDE�
��
ABF����E�
�����E�
A���
������E�
AB�F�������������������
��������� !���"�
B�����#��!��$�����
����F%�
&�� $��#��������
&�� $������'�����
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����!&�
�
4.3.2 FLOWCHART FOR
RECEIVING MESSAGE :�������������������������������������������������������������������������������������������������
�������������������������������������������������������������������������������������������������
��������������������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������
����������������������������������������������������������������������������������������
� ��
�
� ��
�
� ��
�
�
� ��
�
�
�
�
� ��
�
�������������������������������������������������������������������������������
�
�
�
� �
�
������
���$������'��(���
���������)�� !����
��'#�'*���+���(��������
��AB�
�*E�
&�� $��#��
�����'�����
Is
AT+CPIN?
Ready��
Is
AT+CNMI
=2,2,0,0�,�
�*E�
��� !����
(����E��$������#��!��$��
D������������$�
���(�� �!��$��
&�������#��!��$��
���-�&��������
�����
&�� $��#��
������
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����"'�
�
�
�
�
Chapter 5
DESIGNING
AND INTERFACING
�
����������ABCD���A�E��F�C������
�
���B�������������
�
5.1 POWER SUPPLY
• LM7805 is used for 5V re
Features
• Output current in excess o
• It accepts input voltage ra
• No external components
• Internal thermal overload
• Internal short circuit curre
• Output transistor safe-are
• Output voltages of 5V, 12
5.1.1 Description
The LM341 and LM78MXX ser
current limiting, thermal shutd
virtually immune to damage from
With adequate heatsinkin
applications would include local
performance associated with sing
Fig 5
�F�C����������������A�BEA���E�
regulated supply.
s of 0.5A
range from 7V to 15V
ad protection
rrent-limiting
rea compensation
12V, and 15V
eries of three-terminal positive voltage regulators
tdown, and safe-operating area protection whi
om output overloads.
king, they can deliver in excess of 0.5A output
al (on-card) regulators which can eliminate the no
ngle-point regulation.
g 5.1 Circuit diagram of Power supply
�����"��
ors employ built-in
hich makes them
ut current. Typical
noise and degraded
����������ABCD���A�E��F�C������
�
���B�������������
�
DESIGNING:
Vm=12V, RL= 10 to 12�, f=50H
Vrms=Vm/��, Irms=Im/�� =V
Vdc=2Vm/�, Idc=2Vm/(RL�)
Ripple Factor=�=sqrt((Vrms/Vdc
=sqrt((�/(2��))
�=0.482
also we know that
�=1/(4��*f*C3*RL)
C3=1/(4��*0.482*50*12)
C3=499.09�F� 470 �F
Before regulating Vdc
Vdc=2Vm/��
=2*12/1.41
Vdc=7.6394V
After passing through regulator 7
Vdc=5V
C1=0.1 �F , C2=10 �F , are us
7805.
�F�C����������������A�BEA���E�
0Hz
Vm/(RL��)
dc)2-1)
))2-1)
7805
used as coupling and decoupling capacitors resp
Fig 5.2 Circuit diagram of LED
�����"��
spectively with IC
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����" �
�
LED Specifications:
610nm<�<760nm
Voltage range 1.8V to 3.3V
And Circuit current I= 3.4mA
By Kirchoff’s voltage law
Vs=VR+VL
Vs=I*RL+VL
RL=5-1.8/3.4m
RL=941��1K�
5.2 Hxd buzzer
Product Description:
Fig 5.3 Hxd buzzer
Rated Voltage: 1. 5~12V DC
Operation Voltage: 1. 2~16V DC
Rated Current: � 40mA
Rated Current: 6. 5± 1. 0 45± 5 140± 14(� )
Coil Impedance: 16~240�
Sound Output: � 85DB
Resonant Freq: 2400HZ
Operating Temp: -20º C~+65º C
Storage Temp: -20º C~+70º C
Weight: 2g
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����"!�
�
5.3 RS-232
In telecommunications, RS-232 is a standard for serial binary data signals connecting between a
DTE (Data terminal equipment) and a DCE (Data Circuit-terminating Equipment). It is
commonly used in computer serial ports. In RS-232, data is sent as a time-series of bits. Both
synchronous and asynchronous transmissions are supported by the standard. In addition to the
data circuits, the standard defines a number of control circuits used to manage the connection
between the DTE and DCE. Each data or control circuit only operates in one direction that is,
signaling from a DTE to the attached DCE 23 or the reverse. Since transmit data and receive data
are separate circuits, the interface can operate in a full duplex manner, supporting concurrent
data flow in both directions. The standard does not define character framing within the data
stream, or character encoding.
Figure 5.4 Female 9 pin plug
Table5.1 RS-232 Signals
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����""�
�
5.3.1 RS-232 Signals
Transmitted Data (TxD)
Data sent from DTE to DCE.
Received Data (RxD)
Data sent from DCE to DTE.
Request To Send (RTS)
Asserted (set to 0) by DTE to prepare DCE to receive data. This may require action on the part of
the DCE, e.g. transmitting a carrier or reversing the direction of a half-duplex line.
Clear To Send (CTS)
Asserted by DCE to acknowledge RTS and allow DTE to transmit.
Data Terminal Ready (DTR)
Asserted by DTE to indicate that it is ready to be connected. If the DCE is a modem, it should go
"off hook" when it receives this signal. If this signal is deasserted, the modem should respond by
immediately hanging up.
Data Set Ready (DSR)
Asserted by DCE to indicate an active connection. If DCE is not a modem (e.g. a null-modem
cable or other equipment), this signal should be permanently asserted (set to 0), possibly by a
jumper to another signal.
Carrier Detect (CD)
Asserted by DCE when a connection has been established with remote equipment.
Ring Indicator (RI)
Asserted by DCE when it detects a ring signal from the telephone line.
5.3.2 RTS/CTS Handshaking
The standard RS-232 use of the RTS and CTS lines is asymmetrical. The DTE asserts RTS to
indicate a desire to transmit and the DCE asserts CTS in response to grant permission. This
allows for half-duplex modems that disable their transmitters when not required, and must
transmit a synchronization preamble to the receiver when they are reenabed. There is no way for
the DTE to indicate that it is unable to accept data from the DCE. A non-standard symmetrical
alternative is widely used: CTS indicates permission from the DCE for the DTE to transmit, and
RTS indicates permission from the DTE for the DCE to transmit. The "request to transmit" is
implicit and continuous. The standard defines RTS/CTS as the signaling protocol for flow
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����"#�
�
control for data transmitted from DTE to DCE. The standard has no provision for flow control in
the other direction. In practice, most hardware seems to have repurposed the RTS signal for this
function. A minimal “3-wire” RS-232 connection consisting only of transmits data, receives data
and ground, and is commonly used when the full facilities of RS-232 are not required. When
only flow control is required, the RTS and CTS lines are added in a 5-wire version. In our case it
was imperative that we connected the RTS line of the microcontroller (DTE) to ground to enable
receipt of bit streams from the modem.
5.4 MAX 232
The MAX232 is a dual driver/receiver that includes a capacitive voltage generator to supply
EIA-232 voltage levels from a single 5-V supply. Each receiver converts EIA-232 inputs to 5-V
TTL/CMOS levels. These receivers have a typical threshold of 1.3 V and a typical hysteresis of
0.5 V, and can accept ±30-V inputs. Each driver converts TTL/CMOS input levels into EIA-232
levels.
Fig 5.5: MAX-232
Features
• Meet or Exceed TIA/EIA-232-F and ITU Recommendation V.28
• Operate With Single 5-V Power Supply
• Operate Up to 120 Kbit/s
• Two Drivers and Two Receivers
• ±30-V Input Levels
����������ABCD���A�E��F�C������
�
���B�������������
�
• Low Supply Current . . .
• Designed to be Interchan
• ESD Protection Exceeds
• Applications
o TIA/EIA-232-F
o Battery-Powered S
o Terminals
o Modems
o Computers
5.5 VARIOUS INTERFACING
MAX232 and RS232 Interfacing:
Fig 5
�F�C����������������A�BEA���E�
. . 8 mA Typical
angeable With Maxim MAX232
ds JESD 22 – 2000-V Human-Body Model (A114
d Systems
G CIRCUITS:
ng:
5.6: MAX232 and RS232 Interfacing
�����"$�
14-A)
����������ABCD���A�E��F�C������
�
���B�������������
�
Fig 5.
Fig 5.8
�
�
�F�C����������������A�BEA���E�
5.7 DB male to male socket connection
.8 DB socket female to GSM connection
�����"%�
�
�
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����"&�
�
�
�
�
Chapter 6
CONCLUSION �
�
�
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����#'�
�
6.1 CONCLUSION:
The SMS based display board has been designed successfully. This display board is made
wireless by using GSM technology, that is the SMS is used to update the information on the
display. Only the authorized person can have the access to update the information.
Various software tools like KEIL,FLASH MAGIC are used for coding and burning the
same into the processor. The advanced ARM processor is used for faster processing of data. The
display unit being used is DOT MATRIX LED display. It is found to be the most efficient
display unit as it gives the good resolution and consumes less power. Intensity of the LEDs can
be varied since the transformer is used to drive the current to the LEDs making it far more
efficient.
Coding has been made flexible in order to incorporate any of the modifications if required.
With all the above features being implemented conveniently and low price it is a promising
application most likely to replace the conventional notice boards in various campuses. Thus it
would reduce the manual intervention seen in conventional notice boards.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����#��
�
6.2 FUTURE IMPLEMENTATION:
In future the display board can be made more sophisticated by allocating the authority to the
selected authorized persons to drive the display. Number keys can be provided to update the
phone numbers of the authorized persons so that a flexible mode of operation can be obtained.
The message on the notice display can be sent to any person by entering their number through
the key pad.
Muliple message display board can be conceived by enabling the messages to scroll as they
come in
Even voice messages can be made to drive the display board by converting the voice to text and
displaying them.
The display can be interfaced with the computer and hard copy of any display message can be
obtained.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����#��
�
APPENDIX THE CODE
//----------------------------------------------------------------------------------------
//GLNB_Main.c
//----------------------------------------------------------------------------------------
//SMS BASED NOTICE BOARD USING GSM AND ARM CONTROLLER
// Target: NSK Development Board for Philips ARM LPC2103
// Tool chain: KEIL Eval 'c'
//----------------------------------------------------------------------------------------
// Includes
//----------------------------------------------------------------------------------------
#include<LPC2103.h>
#include<GLNB_UART0_Func.c>
#include<GLNB_UART1_Func.c>
#include<GLNB_GSM_Func.c>
//----------------------------------------------------------------------------------------
// 16-bit SFR Definitions for "LPC2103"
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// Global VARIABLES
//----------------------------------------------------------------------------------------
unsigned char GSM_SMS_Rx_Data[100];
unsigned int LED_Delay_Count = 0;
//--------------------------------------------------------------------------------------------------------------------
// Global CONSTANTS
//--------------------------------------------------------------------------------------------------------------------
unsigned char Project[] = "LED DISPLAY"; //Array For Storing 18 Bits 8x8 Fonts for the GLCD
unsigned char SMS_Sent[] = "TEST SMS SENT"; //Array For Storing 18 Bits 8x8 Fonts for the GLCD
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����# �
�
unsigned char SMS_Rx_Enabled[]="SMS RX ENABLED";
unsigned char SMS_Rx_Mode[]="SMS RECEIVE MODE";
unsigned char SMS_Received[]="SMS RECEIVED";
unsigned char Test[]="TEST";
unsigned char S_Count[]="S WAIT COUNT";
unsigned char S_Rx[]="S RECEIVED";
//----------------------------------------------------------------------------------------
// Function PROTOTYPES
//----------------------------------------------------------------------------------------
void Device_Init( void );
//----------------------------------------------------------------------------------------
// void main (void)
//----------------------------------------------------------------------------------------
void main (void)
{
unsigned char i, j;
Device_Init( );
MSDelay( 500 );
// UART0_Start( Project );
MSDelay( 500 );
//UART1_Start( Project );
GSM_Send_SMS( Mb_Num1, GSM_SMS1 ); // Testing
MSDelay( 2000 );
// UART0_Start( SMS_Sent ); // Setting to be in SMS receive mode
GSM_Rx_SMS( ); // To Set Receive SMS command
MSDelay(1000); // 1 sec delay
// UART0_Start( SMS_Rx_Enabled );
while(1)
{
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����#!�
�
for( i=0; i<99; i++ )
GSM_SMS_Rx_Data[i] = ' ';
// UART0_Start( SMS_Rx_Mode );
MSDelay( 100 ); // Testing
for( i=0; i<110; i++ )
{
while(!(U1LSR & RDR ))
{
}
Rx_data_arr[i] = U1RBR;
}
Rx_data_arr[i] = '\0';
MSDelay(100); // Testing
// UART0_Start( SMS_Received );
U1FCR=0x07;
i = 0;
while(1)
{
if((Rx_data_arr[i]=='2')&&(Rx_data_arr[i+1]=='2')&&(Rx_data_arr[i+2]=='"'))
break;
i++;
}
i = i+5;
j = 0;
while( i<110 )
{
GSM_SMS_Rx_Data[j] = Rx_data_arr[i];
i++;
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����#"�
�
j++;
}
GSM_SMS_Rx_Data[j] = '\0';
// UART0_Start( GSM_SMS_Rx_Data );
MSDelay( 500 ); // Testing
// CODE FOR LED DISPLAY
while(1)
{
U0THR = '1';
while(!(U0LSR & TEMT))
{
;
}
MSDelay( 10 ); // Testing
LED_Delay_Count = 0;
while(!(U0LSR & RDR ))
{
MSDelay( 100 ); // Testing
LED_Delay_Count++;
if( LED_Delay_Count >= 200 )
{
break;
}
}
Rx_data_arr[0] = U0RBR;
// UART0_Start( S_Count );
if( Rx_data_arr[0] == 'S' )
{
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����##�
�
IOSET0 = 0x00000010;
GSM_Send_SMS( Mb_Num1, S_Rx ); // Testing
MSDelay( 500 ); // Testing
U0THR = '*';
while(!(U0LSR & TEMT))
{
;
}
MSDelay( 10 ); // Testing
U0THR = '1';
while(!(U0LSR & TEMT))
{
;
}
MSDelay( 10 ); // Testing
UART0_Start( GSM_SMS_Rx_Data );
U0THR = '~';
while(!(U0LSR & TEMT))
{
;
}
MSDelay( 10 ); // Testing
U0THR = 0x0D;
while(!(U0LSR & TEMT))
{
;
}
MSDelay( 10 ); // Testing
IOCLR0 = 0x00000010;
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����#$�
�
break;
}
}
// UART0_Start( S_Rx );
MSDelay( 5000 ); // Testing
U0THR = 0x0D;
while(!(U0LSR & TEMT))
{
;
}
MSDelay( 10 ); // Testing
}
while(1)
{
;
}
}
void Device_Init( void )
{
IODIR0 = 0x00000010;
IOCLR0 = 0x00000010;
UART0_Init( );
UART1_Init( );
PINSEL0=0x00050005;
}
//-----------------------------------------------------------------------------------------------------------
// void MSDelay( unsigned int Milli_Sec )
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����#%�
�
//-----------------------------------------------------------------------------------------------------------
// Function Name: void MSDelay( unsigned int Milli_Sec )
// Arguments:
// Return Value:
// Description:
void MSDelay( unsigned int Milli_Sec )
{
unsigned int x,y;
for(x=0;x<Milli_Sec;x++)
{
for(y=0;y<250;y++)
{
;
}
}
}
//----------------------------------------------------------------------------------------
//GLNB_GSM_Func.c
//----------------------------------------------------------------------------------------
// Includes
//----------------------------------------------------------------------------------------
#define TEMT (1<<6)
#define RDR (1<<0)
//----------------------------------------------------------------------------------------
// 16-bit SFR Definitions for "P89V51RD2"
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����#&�
�
// Global VARIABLES
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// Global CONSTANTS
//----------------------------------------------------------------------------------------
unsigned char GSM_Init_Comm[]="AT\r";
unsigned char GSM_Send_SMS_Comm[]="AT+CMGS=";
unsigned char GSM_Rx_SMS_Comm[]="AT+CNMI=2,2,0,0,0\r";
char GSM_SMS1[]="SYSTEM STARTS";
// char Mb_Num1[]="9845843843";
char Mb_Num1[]="7760401217";
//----------------------------------------------------------------------------------------
// Function PROTOTYPES
//----------------------------------------------------------------------------------------
void MSDelay( unsigned int Milli_Sec );
void GSM_Init( void );
void GSM_Send_SMS( char *Mb_Num, char *SMS );
//--------------------------------------------------------------------------------------------------------------------
// void GSM_Init( void )
//--------------------------------------------------------------------------------------------------------------------
// Function Name: void GSM_Init( void )
// Arguments: No arguments
// Return Value: No return value
// Description: This function is used to test the GSM module. If we send a command AT then
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����$'�
�
// the GSM module will reply OK.
void GSM_Init( void )
{
unsigned char i;
for( i=0; GSM_Init_Comm[i] != '\0'; i++ )
{
U1THR = GSM_Init_Comm[i];
while(!(U1LSR & TEMT))
{
;
}
MSDelay( 10 ); // Testing
}
/*
for( i=0; GSM_Init_Comm[i] != '\0'; i++ )
U1THR = GSM_Init_Comm[i];
U1THR = 0x0D; // ASCII value of CARRIAGE RETURN
*/
// Wait till U0THR and U0TSR are both empty
while(!(U1LSR & TEMT))
{
} //
UART_Tx_char( 'A' );
//
UART_Tx_char( 'T' );
//
UART_Tx_char( 0x0D ); // ASCII value of CARRIAGE RETURN
}
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����$��
�
//--------------------------------------------------------------------------------------------------------------------
// void GSM_Send_SMS( char *Mb_Num, char *SMS )
//--------------------------------------------------------------------------------------------------------------------
// Function Name: void GSM_Send_SMS( char *Mb_Num, char *SMS )
// Arguments:2 arguments
// *Mb_Num -> it receives a base address of a string which contains a mobile number.
// *SMS -> it receives a base address of a string which contains a text message.
// Return Value: No return value
// Description: This function is used to send an SMS.
void GSM_Send_SMS( char *Mb_Num, char *SMS )
{
unsigned char i; // SMS send command is sent through
UART
for( i=0; GSM_Send_SMS_Comm[i] != '\0'; i++ )
{
U1THR = GSM_Send_SMS_Comm[i];
while(!(U1LSR & TEMT))
{
;
}
MSDelay( 10 ); // Testing
}
// GLCD_1pagefont( Welcome1, 2, 15, 0);
/*
for( i=0; GSM_Send_SMS_Comm[i] != '\0'; i++ )
U1THR = GSM_Send_SMS_Comm[i];
*/
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����$��
�
U1THR = 0x22; // ASCII value of "
while(!(U1LSR & TEMT))
{
;
}
MSDelay( 10 ); // Testing
// GLCD_1pagefont( Welcome1, 3, 15, 0);
/*
U1THR = 0x22; // ASCII value of "
// Wait till U0THR and U0TSR are both empty
while(!(U1LSR & TEMT))
{
}
MSDelay(100); // Testing
*/
// Mobile number is sent through UART
for( i=0; *Mb_Num != '\0'; i++ )
{
U1THR = *Mb_Num++;
while(!(U1LSR & TEMT))
{
;
}
MSDelay( 10 ); // Testing
}
// GLCD_1pagefont( Welcome1, 4, 15, 0);
/*
while( *Mb_Num != '\0' )
U1THR = *Mb_Num++;
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����$ �
�
*/
U1THR = 0x22; // ASCII value of "
while(!(U1LSR & TEMT))
{
;
}
MSDelay( 10 ); // Testing
// GLCD_1pagefont( Welcome1, 5, 15, 0);
U1THR = 0x0D; // ASCII value of CARRIAGE RETURN
while(!(U1LSR & TEMT))
{
;
}
MSDelay( 10 ) // Testing
// GLCD_1pagefont( Welcome1, 6, 15, 0);
/*
// Wait till U0THR and U0TSR are both empty
while(!(U1LSR & TEMT))
{
}
MSDelay(100); // Testing
*/
// Text message is sent through UART
for( i=0; *SMS != '\0'; i++ )
{
U1THR = *SMS++;
while(!(U1LSR & TEMT))
{
;
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����$!�
�
}
MSDelay( 10 ); // Testing
}
// GLCD_1pagefont( Welcome1, 7, 15, 0);
/*
while( *SMS != '\0' )
U1THR = *SMS++;
*/
U1THR = 0x1A; // ASCII value of
CTRL + Z
while(!(U1LSR & TEMT))
{
;
}
MSDelay( 10 ); // Testing
// GLCD_1pagefont( Welcome1, 0, 15, 0);
// Wait till U0THR and U0TSR are both empty
/*
while(!(U1LSR & TEMT))
{
}
MSDelay(100); // Testing
*/
}
void GSM_Rx_SMS( void )
{
unsigned char i; // SMS send command is sent through UART
for( i=0; GSM_Rx_SMS_Comm[i] != '\0'; i++ )
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����$"�
�
{
U1THR = GSM_Rx_SMS_Comm[i];
while(!(U1LSR & TEMT))
{
;
}
MSDelay( 10 ); // Testing
}
/*
Rx_count = 0; // Take UART Receiver array to zeroth
location
for( i=0; GSM_Rx_SMS_Comm[i] != '\0'; i++ )
UART_Tx_char( GSM_Rx_SMS_Comm[i] );
//
Rx_ALCD( );
Rx_count = 0; // Take UART Receiver array to zeroth
location
UART_Tx_char( 0x0D ); // ASCII value of CARRIAGE
RETURN
//
Rx_ALCD( );
*/
}
//----------------------------------------------------------------------------------------
//GLNB_UART0_Func.c
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// Includes
//----------------------------------------------------------------------------------------
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����$#�
�
#define TEMT (1<<6)
#define RDR (1<<0)
//----------------------------------------------------------------------------------------
// 16-bit SFR Definitions for "P89V51RD2"
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// Global VARIABLES
//----------------------------------------------------------------------------------------
unsigned char Rx_data_arr0[160]=" ";
//----------------------------------------------------------------------------------------
// Global CONSTANTS
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// Function PROTOTYPES
//----------------------------------------------------------------------------------------
void UART0_Init( void );
void UART0_Start( unsigned char *Str_Print );
void MSDelay( unsigned int Milli_Sec );
//--------------------------------------------------------------------------------------------------------------------
// void UART0_Start( void )
//--------------------------------------------------------------------------------------------------------------------
// Function Name: void UART0_Start( void )
// Arguments: No arguments
// Return Value: No return value
// Description: This function is used to test the GSM module. If we send a command AT then
// the GSM module will reply OK.
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����$$�
�
void UART0_Start( unsigned char *Str_Print )
{
unsigned char i;
for( i=0; *Str_Print != '\0'; i++ )
{
U0THR = *Str_Print++;
while(!(U0LSR & TEMT))
{
;
}
MSDelay( 1 ); // Testing
}
// Wait till U0THR and U0TSR are both empty
/*
while(!(U0LSR & TEMT))
{
}
U0THR = 0x0A; // ASCII value of Line Feed
while(!(U0LSR & TEMT))
{
;
}
MSDelay( 1 ); // Testing
U0THR = 0x0D; // ASCII value of Carriage return
while(!(U0LSR & TEMT))
{
;
}
MSDelay( 1 ); // Testing
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����$%�
�
*/
}
//-----------------------------------------------------------------------------------------------------------
// void UART1_Init( void )
//-----------------------------------------------------------------------------------------------------------
// Function Name: void UART1_Init( void )
// Arguments:
// Return Value:
// Description :
void UART0_Init( void )
{
// Initialize Pin Select Block for Tx and Rx
PINSEL0=0x00000005;
// Enable FIFO's and reset them
U0FCR=0x06;
// Set DLAB and word length set to 8bits
U0LCR=0x83;
// Baud rate set to 9600
U0DLL=0x13;
U0DLM=0x00;
// Clear DLAB
U0LCR=0x03;
}
//----------------------------------------------------------------------------------------
//GLNB_UART1_Func.c
//----------------------------------------------------------------------------------------
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����$&�
�
//----------------------------------------------------------------------------------------
// Includes
//----------------------------------------------------------------------------------------
// 16-bit SFR Definitions for "P89V51RD2"
//----------------------------------------------------------------------------------------
// Global VARIABLES
//----------------------------------------------------------------------------------------
unsigned char Rx_data_arr[160]=" ";
//----------------------------------------------------------------------------------------
// Global CONSTANTS
//----------------------------------------------------------------------------------------
// Function PROTOTYPES
//----------------------------------------------------------------------------------------
void UART1_Init( void );
//--------------------------------------------------------------------------------------------------------------------
// void UART0_Start( void )
//--------------------------------------------------------------------------------------------------------------------
// Function Name: void UART0_Start( void )
// Arguments: No arguments
// Return Value: No return value
// Description: This function is used to test the GSM module.
If we send a command AT then
// the GSM module will reply OK.
void UART1_Start( unsigned char *Str_Print )
{
unsigned char i;
for( i=0; *Str_Print != '\0'; i++ )
{
U1THR = *Str_Print++;
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����%'�
�
while(!(U1LSR & TEMT))
{
;
}
MSDelay( 1 ); // Testing
}
// Wait till U0THR and U0TSR are both empty
while(!(U1LSR & TEMT))
{
}
U1THR = 0x0A; // ASCII value of Line Feed
while(!(U1LSR & TEMT))
{
;
}
MSDelay( 1 ); // Testing
U1THR = 0x0D; // ASCII value of Carriage return
while(!(U1LSR & TEMT))
{
;
}
MSDelay( 1 ); // Testing
}
//-----------------------------------------------------------------------------------------------------------
// void UART1_Init( void )
//-----------------------------------------------------------------------------------------------------------
// Function Name:void UART1_Init( void )
// Arguments:
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����%��
�
// Return Value:
// Description:
void UART1_Init( void )
{
// Initialize Pin Select Block for Tx and Rx
PINSEL0=0x00050000;
// Enable FIFO's and reset them
//U1FCR=0x06;
U1FCR=0x07;
// Set DLAB and word length set to 8bits
U1LCR=0x83;
// Baud rate set to 9600
U1DLL=0x13;
U1DLM=0x00;
// Clear DLAB
U1LCR=0x03;
}
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����%��
�
BIBLIOGRAPHY
1. “OP-AMPS AND LINEAR INTEGRATED CIRCUITS”
- Ramakanth.A. Gayakwad
-PHI-Third Edition-Nov 1999.
2. “The 8051 MICROCONTROLLER”, Architecture, Programming and Applications
- Kenneth J. Ayala
- Penram International Publishing (I) Pvt. Ltd.(Second Edition)
3. “ELECTRONIC DEVICES AND CIRCUIT THEORY”
- Robert L. Boylestad & Louis Nashelsky
- PHI-Sixth Edition.
4. “8051 MICROCONTROLLER AND EMBEDDED SYSTEMS”
– Muhamed Ali Mazidi & Janice Gillispie Mazidi, Pearson Education, 2003.
5. “EMBEDDED- C” – Michael J. Pont
-Pearson Education, 2002.
6. “ ELECTRONIC DEVICES AND CIRCUITS”
-Bogart, Theodore F
- fourth edition, Prentice Hall, 1977
7. “EMBEDDED SYSTEM DESIGN”
- Frank Vahid and Tony Givargis, John Wiley
8. “ANALOG TO DIGITAL AND DIGITAL TO ANALOG CONVERTER”
- Rudy J. Vande Plassche
9. “WIRELESS TELECOMMUNICATION SYSTEMS AND NETWORKS”
-Mullett, Indian Edition
10. “EMBEDDED SYSTEMS” architecture , programming and design
-Raj Kamal, Second Edition, The McGraw-Hill Companies
����������ABCD���A�E��F�C����������������A�BEA���E�
�
���B������������� �����% �
�
11. “ LOGIC DESIGN”
-A.P.Godse. A.D. Godse
-Technical Publications
12. “PRINCIPLES OF APPLICATIONS OF GSM”
-Vijay K.Garg and Joseph E. Wilkes
-Pearson Eduction/ PHI , 1999
WEBSITES:
• www.keil.com/forum/docs
• http://www.keil.com/support/man/docs/gs/gs_applications.htm.
• http://www.8051.com/codelib.phtml�
• Mitsubishi electric research laboratories. http://www.merl.com
• BOSTON DYNAMICS: www.bostondynamics.com/research
• http://www.alldatasheet.co.kr/datasheetpdf/pdf_kor/ SIM-300/01.htm��
• http://www.alldatasheet.co.kr/datasheetpdf/pdf_kor/PHILIPS/ARM7TDMI-
LPC2103/01.htm��
• http://courses.cit.cornell.edu /ee476/FinalProjects/s2006/kttruong/asl1/index.html
• http://www.futurlec.com /adconv/adc0809.shtml