You are on page 1of 21

ACKNOWLEDGEMENT

Apart from the efforts of me, the success of this project depends largely on the encouragement and guidance of many others. I take this opportunity to express my gratitude to the people who have been instrumental in the successful completion of this project. I would like to show my greatest appreciation to Er.Vishu Grover from Innovation Research and Development. I can’t say thank you enough for their tremendous support and help. I feel motivated and encouraged every time. Without their Encouragement and Guidance this project would not have materialized. The guidance and support received from my friend (name) who contributed and are contributing to this project, was vital for the success of the project. I am grateful for their constant support and help.

DECLARATION

We hereby declare that the project work entitled (“Robotic Arm”) is an authentic records of my own work carried out at innovation research and Development. Internship Project for the award of Degree of B.TECH-ECE, (college name) under the guidance of VISHU GROVER, during July to December 2010

Registration Numbe

Name of Student:

ABSTRACT

Security is a prime concern in our day-today life. Everyone wants to be as much secure as possible. An access control for doors forms a vital link in a security chain. The microcontroller based Door locker is an access control system that allows only authorized persons to access a restricted area.

The system is fully controlled by the 8 bit microcontroller AT89C2051 which has a 2Kbytes of ROM for the program memory. The password is stored in the EPROM so that we can change it at any time.

The system has a Keypad by which the password can be entered through it. When the entered password equals with the password stored in the memory then the relay gets on and so that the door is opened. If we entered a wrong password for more than three times then the Alarm is switched on. When we go inside and come back then the microcontroller will sense the person using the Laser light, the microcontroller will automatically open the door for you

SUMMARY:

An electronic lock is a device which has an electronic control assembly attached to it. They are provided with an access control system. This system allows the user to unlock the device with a password. The password is entered by making use of a keypad. The user can also set his password to ensure better protection. The major components include a keypad, LCD and the controller AT89C51 which belongs to the 8051 series of microcontrollers. This article describes the making of an electronic code lock using the 8051 microcontroller.

SUMMARY: An electronic lock is a device which has an electronic control assembly attached to it.keypad , LCD and the controller AT89C51 which belongs to the 8051 series of microcontrollers. This article describes the making of an electronic code lock using the 8051 microcontroller. " id="pdf-obj-3-14" src="pdf-obj-3-14.jpg">

INTRODUCTION

“Password Based Door Security System using Microcontroller” is used in the places where we need more security. It can also used to secure lockers and other protective doors. The system comprises a number keypad and the keypads are connected to the 8 bit microcontroller AT89C2051. This is one of the popular Microcontroller. It has only 20 pins and there are 15 input/output lines. The microcontroller has a program memory of 2 Kilobytes. The microcontroller continuously monitor the keypad and if somebody enters the password it will check the entered password with the password which was stored in the memory and if it they are same then the microcontroller will switch on the corresponding device. The system will allow the person who knows the password and it will not allow who don’t know the password and the system will also show the persons who try to break the protection barrier.

Main concept behind this project is of a door-latch opening using a password entered through keypad. As well as sending this data to a computer through serial port. User can change this password anytime he/she wish using a keypad.

INTRODUCTION “Password Based Door Security System using Microcontroller” is used in the places where we need

It mainly consists of following blocks 1. Microcontroller: This is the CPU (central processing unit) of our project. We are going to use a microcontroller of 8051 family. The various functions of microcontroller are like:

I. Reading the digital input from Keypad II. Sending this data to LCD so that the person operating this project should read the password III. Sensing the password using keypad and to check whether it is a correct password or a wrong password and rotate the stepper motor if the password entered is a correct password. IV. Sending the data to the computer using serial port. This data consist of the status of entered password (Correct/wrong) 2. LCD: We are going to use 16x2 alphanumeric Liquid Crystal Display (LCD) which means it can display alphabets along with numbers on 2 lines each containing 16 characters.

3.

PC Interfacing: We are going to use max 232 IC for pc interfacing, the values of

number of persons inside the room and the status of entered password (Correct/wrong)

will be sent to pc.

  • 4. Keypad: User will enter the password using the keypad. Various keys of keypad are as

following, I. 0 to 9 II. Enter III. Escape

Central Processing Unit The CPU is the brain of the microcontrollers reading user's programs and executing the expected task as per instructions stored there in. Its primary elements are an 8 bit Arithmetic Logic Unit (ALU), Accumulator (Acc), few more 8 bit registers, B register, Stack Pointer (SP), Program Status Word (PSW) and 16 bit registers, Program Counter (PC) and Data Pointer Register (DPTR). The ALU (Acc) performs arithmetic and logic functions on 8 bit input variables. Arithmetic operations include basic addition, subtraction, multiplication and division. Logical operations are AND, OR, Exclusive OR as well as rotate, clear, complement and etc. Apart from all the above, ALU is responsible in conditional branching decisions, and provides a temporary place in data transfer operations within the device. B register is mainly used in multiply and divide operations. During execution, B register either keeps one of the two inputs and then retains a portion of the result. For other instructions, it can be used as another general purpose register.

Timers/Counters

8051 has two 16 bit Timers/Counters capable of working in different modes. Each consists of a `High' byte and a `Low' byte which can be accessed under software. There is a mode control register and a control register to configure these timers/counters in number of ways.These timers can be used to measure time intervals, determine pulse widths or initiate events with one microsecond resolution upto a maximum of 65 millisecond (corresponding to 65, 536 counts). Use software to get longer delays. Working as counter, they can accumulate occurrences of external events (from DC to

500KHz) with 16 bit precision. In our project we are using 8 bit microcontroller AT89C2051, it is the advanced 8 bit microcontroller from ATMEL, which incorporates Flash Rom, and Timer etc.

Description:

A 4x3 matrix keypad and a 16x2 LCD have been used here. Keypad and LCD are very commonly used input & output devices, respectively. A four digit predefined password needs to be specified the user. This password is stored in the system. While unlocking, if the entered password from keypad matches with the stored password, then the lock opens and a message is displayed on LCD. Also an output pin is made high to be used for further purpose. The connections in the circuit are as following: port P2 of microcontroller AT89C51 is used as data input port which is connected to data pins (7-14) of LCD. P3^0, P3^1 and P3^2 pins of microcontroller are connected to control pins RS, RW and EN of LCD. Port P0 is used to take input from keypad. P0^7 has been used as lock output pin of controller.

As the program starts, string ‘Enter Password’ is displayed on LCD. The keypad is scanned for pressed digits one by one. Every time, row and column of the key pressed is detected and a ‘*’ is displayed on LCD corresponding to the entered number. After the four digits are entered, the user is prompted to ‘Confirm Password’ and again the input is taken through LCD. If the passwords do not match, a message is displayed to indicate ‘Wrong Password’; otherwise the user is prompted to unlock the device.

To unlock, user needs to ‘Enter Password’ through keypad. Again the keypad is scanned for pressed keys and corresponding digits are identified. The passkey is displayed as ‘****’ on the LCD screen. After the four digits are entered, they are compared with the pre-set password. If all the four digits match with set password, LCD displays ‘Lock Open’ and the lock output pin goes high. If the security code is wrong, ‘Wrong Password’ is sent to be displayed on LCD. The system gets locked if more than three attempts are made with wrong password to open the electronic lock. The system needs to be reset in such a case.

Description: A 4x3 matrix <a href=keypad and a 16x2 LCD have been used here. Keypad and LCD are very commonly used input & output devices, respectively. A four digit predefined password needs to be specified the user. This password is stored in the system. While unlocking, if the entered password from keypad matches with the stored password, then the lock opens and a message is displayed on LCD. Also an output pin is made high to be used for further purpose. The connections in the circuit are as following: port P2 of microcontroller AT89C51 i s used as data input port which is connected to data pins (7-14) of LCD. P3^0, P3^1 and P3^2 pins of microcontroller are connected to control pins RS, RW and EN of LCD. Port P0 is used to take input from keypad. P0^7 has been used as lock output pin of controller. As the program starts, string ‘Enter Password’ is displayed on LCD. The keypad is scanned for pressed digits one by one. Every time, row and column of the key pressed is detected and a ‘*’ is displayed on LCD corresponding to the entered number. After the four digits are entered, the user is prompted to ‘Confirm Password’ and again the input is taken through LCD. If the passwords do not match, a message is displayed to indicate ‘Wrong Password’; otherwise the user is prompted to unlock the device. To unlock, user needs to ‘Enter Password’ through keypad. Again the keypad is scanned for pressed keys and corresponding digits are identified. The passkey is displayed as ‘****’ on the LCD screen. After the four digits are entered, they are compared with the pre-set password. If all the four digits match with set password, LCD displays ‘Lock Open’ and the lock output pin goes high. If the security code is wrong, ‘Wrong Password’ is sent to be displayed on LCD. The system gets locked if more than three attempts are made with wrong password to open the electronic lock. The system needs to be reset in such a case. " id="pdf-obj-6-16" src="pdf-obj-6-16.jpg">

Schematic Diagram

Schematic Diagram

Components:

1,039-Reads
1,039-Reads

Preset A preset is a three legged electronic component which can be made to offer varying resistance in a circuit. The resistance is varied by adjusting the rotary control over it. The adjustment can be done by using a small screw driver or a similar tool. The resistance does not vary linearly but rather varies in exponential or logarithm ...

3,331-Reads
3,331-Reads

AT89C51 is an 8-bit microcontroller and belongs to Atmel's 8051 family. AT89C51 has 4KB of Flash programmable and erasable read only memory (PEROM) and 128 bytes of RAM. It can be erased and program to a maximum of 10 ...

Components: 1,039-Reads <a href=Preset A preset is a three legged electronic component which can be made to offer varying resistance in a circuit. The resistance is varied by adjusting the rotary control over it. The adjustment can be done by using a small screw driver or a similar tool. The resistance does not vary linearly but rather varies in exponential or logarithm ... 3,331-Reads AT89C51 or 89C51 microcontroller AT89C51 is an 8-bit microcontroller and belongs to Atmel's 8051 family . AT89C51 has 4KB of Flash programmable and erasable read only memory (PEROM) and 128 bytes of RAM. It can be erased and program to a maximum of 10 ... LCD LCD (Liquid Crystal Display) screen is an electronic display module and find a wide range of applications. A 16x2 LCD display is very basic module and is very commonly used in various devices and circuits. These modules are preferred over seven segments and other multi segment LEDs. The reasons being: LCDs are economical; easily programmable; have no limitation of displaying special & even ... COMPONENTS DETAILS Resistor Resistor is a component that resists the flow of direct or alternating electric circuit. Resistors can limit or divide the current, reduce the voltage, protect an electric circuit, or provide large amounts of heat or light. An electric current is the movement of charged particles called electrons from one region to another. Resistors are usually placed in electric circuits. Capacitor " id="pdf-obj-9-18" src="pdf-obj-9-18.jpg">

LCD

LCD (Liquid Crystal Display) screen is an electronic display module and find a wide range of applications. A 16x2 LCD display is very basic module and is very commonly used in various devices and circuits. These modules are preferred over seven segments and other multi segment LEDs. The reasons being: LCDs are economical; easily programmable; have no limitation of displaying special & even ...

COMPONENTS DETAILS

Resistor

Resistor is a component that resists the flow of direct or alternating electric circuit. Resistors can limit or divide the current, reduce the voltage, protect an electric circuit, or provide large amounts of heat or light. An electric current is the movement of charged particles called electrons from one region to another. Resistors are usually placed in

electric circuits.

Capacitor

Capacitor or electric condenser is a device for storing an electric charge. The simplest form of capacitor consists of two metal plates separated by a non touching layer called the dielectric. When one plate is charged with electricity from a direct current or electrostatic source, the other plate have induced in it a charge of the opposite sign; that is, positive if the original charge is negative and negative if the original charge is positive. The electrical size of the capacitor is its capacitance. Capacitors are limited in the amount of electric charge they can absorb; they can conduct direct current for only instances but function well as conductors in alternating current circuits. Fixed capacity and variable capacity capacitors are used in conjunction with coils as resonant circuits in radios and other electronic equipment. Capacitors are produced in a wide variety of forms. Air, Mica, Ceramics, Paper, Oil, and Vacuums are used as dielectrics depending on the purpose for which the device is intended.

Transistor

Transistor is a device which transforms current flow from low resistance path to high resistance path. It is capable of performing many functions of the vacuum tube in electronic circuits, the transistor is the solid state device consisting of a tiny piece of semi conducting material, usually germanium or silicon, to which three or more electrical connections are made.

Diode

Diode is a electronic device that allows the passage of current in only one direction. The first such devices were vacuum-tube diodes, consisting of an evacuated glass or steel envelope containing two electrodes – a cathode and an anode. The diodes commonly used in electronic circuits are semiconductor diodes. There are different diodes used in electronic circuits such as Junction diode, Zener diode, Photo diodes, and tunnel diode.

Integrated Circuits

Timer IC (555) :-

The LM555 is a highly stable device for generating accurate time delays or oscillation. Additional terminals are provided for triggering or resetting if desired. In the time delay mode of operation, the time is precisely controlled by one external resistor and capacitor. For astable operation as an oscillator, the free running frequency and duty cycle are accurately controlled with two external resistors and one capacitor. The circuit may be triggered and reset on falling waveforms, and the output circuit can source or sink up to 200mA or drive TTL circuits.

Regulator IC (LM 7805) The LM7805 monolithic 3-terminal positive voltage regulators employ internal current-limiting, thermal shutdown and safe-area compensation, making them essentially indestructible. If adequate heat sinking is provided, they can deliver over 1.0A output current. They are intended as fixed voltage regulators in a wide range of applications including local (on-card) regulation for elimination of noise and distribution problems associated with single-point regulation.

Relay Driver (ULN 2003)

The ULN2003 are high voltage, high current darlington arrays each containing seven open collector darlington pairs with common emitters. Each channel rated at 500mA and can withstand peak currents of 600mA. Suppression diodes are included for inductive load driving and the inputs are pinned opposite the outputs to simplify board layout.

EEPROM (AT24C02)

The AT24C02 provides 2048 bits of serial electrically erasable and programmable read-only memory (EEPROM) organized as 256words of 8 bits each. The device is optimized for use in many industrial and commercial applications where low-power and low-voltage operation are essential.

Keypad Interfacing

Keypads are a part of HMI or Human Machine Interface and play really important role in a small embedded system where human interaction or human input is needed. Martix keypads are well known for their simple architecture and ease of interfacing with any microcontroller. In this part of tutorial we will learn how to interface a 4x4 matrix keypad with AVR and 8051 microcontroller. Also we will see how to program then in Assembly and C.

Constructing a Matrix Keypad

Constuction of a keypad is really simple. As per the outline shown in the figure below we have four rows and four columns. In between each overlapping row and column line there is a key.

So keeping this outline we can constuct a <a href=keypad using simple SPST Switches as shown below: Now our keypad is ready, all we have to do is connect the rows and columns to a port of microcontroller and program the controller to read the input. Scanning a Matrix Keypad There are many methods depending on how you connect your keypad with your controller, but the basic logic is same. We make the coloums as i/p and we drive the rows making them o/p, this whole procedure of reading the keyboard is called scanning. In order to detect which key is pressed from the matrix, we make row lines low one by one and read the coloums. Lets say we first make Row1 low, then read the columns. If any of the key in row1 is pressed will make the corrosponding column as low i.e if second key is pressed in Row1, then column2 will give low. So we come to know that key 2 of Row1 is pressed. This is how scanning is done. " id="pdf-obj-12-2" src="pdf-obj-12-2.jpg">

So keeping this outline we can constuct a keypad using simple SPST Switches as shown below:

So keeping this outline we can constuct a <a href=keypad using simple SPST Switches as shown below: Now our keypad is ready, all we have to do is connect the rows and columns to a port of microcontroller and program the controller to read the input. Scanning a Matrix Keypad There are many methods depending on how you connect your keypad with your controller, but the basic logic is same. We make the coloums as i/p and we drive the rows making them o/p, this whole procedure of reading the keyboard is called scanning. In order to detect which key is pressed from the matrix, we make row lines low one by one and read the coloums. Lets say we first make Row1 low, then read the columns. If any of the key in row1 is pressed will make the corrosponding column as low i.e if second key is pressed in Row1, then column2 will give low. So we come to know that key 2 of Row1 is pressed. This is how scanning is done. " id="pdf-obj-12-8" src="pdf-obj-12-8.jpg">

Now our keypad is ready, all we have to do is connect the rows and columns to a port of microcontroller and program the controller to read the input.

Scanning a Matrix Keypad

There are many methods depending on how you connect your keypad with your controller, but the basic logic is same. We make the coloums as i/p and we drive the rows making them o/p, this whole procedure of reading the keyboard is called scanning.

In order to detect which key is pressed from the matrix, we make row lines low one by one and read the coloums. Lets say we first make Row1 low, then read the columns. If any of the key in row1 is pressed will make the corrosponding column as low i.e if second key is pressed in Row1, then column2 will give low. So we come to know that key 2 of Row1 is pressed. This is how scanning is done.

So to scan the keypad completely, we need to make rows low one by one and read the columns. If any of the button is pressed in a row, it will take the corrosponding column to a low state which tells us that a key is pressed in that row. If button 1 of a row is pressed then Column 1 will become low, if button 2 then column2 and so on

...

So to scan the keypad completely, we need to make rows low one by one and

LCD INTERFACING

Most projects you create with the 8051 CPU require some form of display. The most common way to accomplish this is with the LCD (Liquid Crystal Display). LCDs have become a cheap and easy way to get text display for an embedded system Common displays are set up as 16 to 20 characters by 1 to 4 lines.

UNDERSTANDING LCD

Pinout

8 data pins D7:D0 Bi-directional data/command pins. Alphanumeric characters are sent in ASCII format.

RS: Register Select RS = 0 -> Command Register is selected RS = 1 -> Data Register is selected

R/W: Read or Write

0 -> Write,

1 -> Read

E: Enable (Latch data) Used to latch the data present on the data pins. A high-to-low edge is needed to latch the data.

VEE : contrast control

NOTE: When writing to the display, data is transferred only on the high to low transition of this signal. However, when reading from the display, data will become available shortly after the low to high transition and remain available until the signal falls low again.

Display Data RAM (DDRAM)

Display data RAM (DDRAM) is where you send the characters (ASCII code) you want to see on the LCD screen. It stores display data represented in 8-bit character codes. Its capacity is 80 characters (bytes). Below you see DD RAM address layout of a 2*16 LCD.

In the above memory map, the area shaded in black is the visible display (For 16x2 display) . For first line addresses for first 15 characters is from 00h to 0Fh. But for second line address of first character is 40h and so on up to 4Fh for the 16th character.

So if you want to display the text at specific positions of LCD , we require to manipulate address and then to set cursor position accordingly .

Character Generator RAM (CGRAM)-User defined character RAM

In the character generator RAM, we can define our own character patterns by program. CG

RAM is 64 bytes ,allowing for eight 5*8 pixel, character patterns to be defined. However how

to define this and use it CGRAM

is out of scope of this tutorial. So I will not talk any more about

Registers

The HD44780 has two 8-bit registers, an instruction register (IR) and a data register (DR).

The IR stores instruction codes. The DR temporarily stores data to be written into DDRAM or CGRAM and temporarily stores data to be read from DDRAM or CGRAM. Data written into the

DR is automatically written into DDRAM or CGRAM by an internal

operation. .

These two

registers can be selected by the register selector (RS) signal. See the table below:

 

Register Selection

RS

R/W Operation

  • 0 IR write as an internal operation (display clear, etc.)

0

  • 0 Read busy flag (DB7) and address counter (DB0 to DB6)

1

  • 1 DR write as an internal operation (DR to DDRAM or CGRAM)

0

  • 1 DR read as an internal operation (DDRAM or CGRAM to DR)

1

Busy Flag (BF)

When the busy flag is 1, the LCD is in the internal operation mode, and the next instruction will not be accepted. When RS = 0 and R/W = 1 (see the table above), the busy flag is output to DB7 (MSB of LCD data bus). The next instruction must be written after ensuring that the busy flag is 0.

LCD Commands

The LCD’s internal controller accept several commands and modify the display accordingly. These commands would be things like:

– Clear screen – Return home

– Shift display right/left

Instruction

Decimal

HEX

Function set (8-bit interface, 2 lines, 5*7 Pixels)

56

38

Function set (8-bit interface, 1 line, 5*7 Pixels)

48

30

Function set (4-bit interface, 2 lines, 5*7 Pixels)

40

28

Function set (4-bit interface, 1 line, 5*7 Pixels)

32

20

Entry mode set

See Below

See Below

Scroll display one character right (all lines)

28

1E

Scroll display one character left (all lines)

24

18

Home (move cursor to top/left character position)

2

2

Move cursor one character left

16

10

Move cursor one character right

20

14

Turn on visible underline cursor

14

0E

Turn on visible blinking-block cursor

15

0F

Make cursor invisible

12

0C

Blank the display (without clearing)

8

08

Restore the display (with cursor hidden)

12

0C

Clear Screen

1

01

Set cursor position (DDRAM address)

128 + addr

80+ addr

Set pointer in character-generator RAM (CG RAM address)

64 + addr

40+ addr

Entry mode set

This command sets cursor move direction and display shift ON/OFF. There are 4 possible function set commands;04, 05, 06, and 07. This command changes the direction the cursor moves by setting the address counter to increment or decrement. This command is very important. If you do not understand it you may not see anything or what you actually wanted to see on LCD screen. I have created 4 animated gifs to demonstrate what the function set command is all about.

Set cursor position (DDRAM address)

As said earlier if we want to display the text at specific positions of LCD , we require to manipulate address and then to set cursor position accordingly. I want to display "MAHESH" in message "Hi MAHESH" at the right corner of first line then I should start from 10th character. So referring to table 80h+0Ah= 8Ah.

INTERFACING LCD TO 8051

The 44780 standard requires 3 control lines as well as either 4 or 8 I/O lines for the data bus. The user may select whether the LCD is to operate with a 4-bit data bus or an 8-bit data bus. If a 4-bit data bus is used, the LCD will require a total of 7 data lines.If an 8-bit data bus is used, the LCD will require a total of 11 data lines.The three control lines are EN, RS, and RW

INTERFACING LCD TO 8051 The 44780 standard requires 3 control lines as well as either 4

Checking the Busy Flag

You can use subroutine for checking busy flag or just a big (and safe) delay.

  • 1. Set R/W Pin of the LCD HIGH(read from the LCD)

  • 2. Select the instruction register by setting RS pin LOW

  • 3. Enable the LCD by Setting the enable pin HIGH

  • 4. The most significant bit of the LCD data bus is the state of the busy flag(1=Busy,0=ready to accept instructions/data). The other bits hold the current value of the address counter.

If the LCD never come out from "busy" status because of some problems ,The program will "hang," waiting for DB7 to go low. So in a real applications it would be wise to put some kind of time limit on the delay--for example, a maximum of 100 attempts to wait for the busy signal to go low. This would guarantee that even if the LCD hardware fails, the program would not lock up.

CODE EXAMPLE

It is easy (and clean tech. ) to make different subroutines and then call them as we need.

Busy flag checking

 

Data write Routine

ready:

data:

setb P1.7 ;D7 as input

mov P1, A ;move acc. data to port

clr P3.6 ;RS=0 cmd

setb P3.6 ;RS=1 data

INTERFACING LCD TO 8051 The 44780 standard requires 3 control lines as well as either 4

setb P3.5 ;RW=1 for read

 

clr P3.5 ;RW=0 for write

 

again:

setb P3.7 ;H->L pulse on E clr P3.7

setb P3.7 ;H->L pulse on E

lcall ready

clr P3.7 jb P1.7, again ret

ret

 

Initialization

 

Display clear

initialization:

clear:

mov A, #38H ; Initialize, 2-lines, 5X7 matrix.

lcall Command mov A, #0EH ; LCD on, cursor on lcall Command mov A, #01H ; Clear LCD Screen lcall Command mov A, #06H ; Shift cursor right lcall Command

setb p3.7 ;enable EN clr 3.6 ;RS=0 for cmd. mov DATA,#01h clr p3.7 ;disable EN lcall ready RET

Note- As we need to clear the LCD frequently and not the whole initialisation , it is better to use this routine separately.

Let's now try code for displaying text at specific positions. I want to display "MAHESH" in message "Hi MAHESH" at the right corner of first line then I should start from 10th character.

setb P3.5 ;RW=1 for read clr P3.5 ;RW=0 for write again: setb P3.7 ;H->L pulse on
ASSEMBLY LANGUAGE lcall Initialization lcall clear mov a,#'H' lcall data mov a,#'I' lcall data
ASSEMBLY LANGUAGE
lcall Initialization
lcall clear
mov a,#'H'
lcall data
mov a,#'I'
lcall data
mov a,#8ah lcall command mov a,#'M' lcall data mov a,#'A' lcall data mov a,#'H' lcall data
mov a,#8ah
lcall command
mov a,#'M'
lcall data
mov a,#'A'
lcall data
mov a,#'H'
lcall data
mov a,#'E'
lcall data
mov a,#'S'
lcall data
mov a,#'H'
lcall data

Overview to Keil compiler

Keil development tools for the 8051 Microcontroller Architecture support every level of software developer from the

Keil development tools for the 8051 Microcontroller Architecture support every level of software developer from the professional applications engineer to the student just learning about embedded software development.

The industry-standard Keil C Compilers, Macro Assemblers, Debuggers, Real-time Kernels, Single-board Computers, and Emulators support all 8051 derivatives and help you get your projects completed on schedule.

mov a,#8ah lcall command mov a,#'M' lcall data mov a,#'A' lcall data mov a,#'H' lcall dataTool Overview The Keil 8051 Development Tools are designed to solve the complex problems facing embedded software developers.  When starting a new project, simply select the microcontroller you use from  the Device Database and the µVision IDE sets all compiler, assembler, linker, and memory options for you. Numerous example programs are included to help you get started with the  most popular embedded 8051 devices. The Keil µVision Debugger accurately simulates on-chip peripherals (I²C,  CAN, UART, SPI, Interrupts, I/O Ports, A/D Converter, D/A Converter, and PWM Modules) of your 8051 device. Simulation helps you understand hardware configurations and avoids time wasted on setup problems. Additionally, with simulation, you can write and test applications before target hardware is available. When you are ready to begin testing your software application with target hardware, use the MON51, MON390, MONADI, or FlashMON51 Target Monitors, " id="pdf-obj-19-13" src="pdf-obj-19-13.jpg">

The Keil 8051 Development Tools are designed to solve the complex problems facing embedded software developers.

When starting a new project, simply select the microcontroller you use from

the Device Database and the µVision IDE sets all compiler, assembler, linker, and memory options for you. Numerous example programs are included to help you get started with the

most popular embedded 8051 devices. The Keil µVision Debugger accurately simulates on-chip peripherals (I²C,

CAN, UART, SPI, Interrupts, I/O Ports, A/D Converter, D/A Converter, and PWM Modules) of your 8051 device. Simulation helps you understand hardware configurations and avoids time wasted on setup problems. Additionally, with simulation, you can write and test applications before target hardware is available. When you are ready to begin testing your software application with target hardware, use the MON51, MON390, MONADI, or FlashMON51 Target Monitors,

the ISD51 In-System Debugger, or the ULINK USB-JTAG Adapter to download and test program code on your target system

References

[1] Mazidi M.A., McKinlay R.D. and Causey D., “PIC Microcontroller and Embedded, Using Assembly and C for PIC18”, 1st ed., Prentice-Hall, 2006 [2] Sedra A.S. and Smith K.C., “Microelectronic Circuits”, 5th ed., 2008 [3] M.H. Rashid, “Power Electronics: Circuits, Devices and Applications,” 3rd Edition,

2004.

Pearson Education, Inc [4] Dorin O. Neacsu, “Power Switching Converters”, 2006 by Taylor & Francis Group, LLC [5] Simone Buso and Paolo Mattavelli,”Digital Control in Power Electronics”, 2006 by Morgan & Claypool [6]Bimal .K. Bose, “Modern Power Electronics and AC Drives,” 2002, Pearson Education [7] N. Mohan T. M. Undeland and W. P. Robbins, “Power Electronics: Converters, [8] Muhammad H. Rashid, “Power Electronics Handbook: Devices, Circuits and Applications”, 2nd Edition, Academic Press, New York, 2006. [9] http://en.wikipedia.org/wiki/Buck_converter [10] http://en.wikipedia.org/wiki/battery(electrical) [11] Proteus VSM official website, http://www.labcenter.co.uk [12] CCS Compiler official website, http://www.ccsinfo.com/ [13] Microchip official website, http://www.microchip.com/