This action might not be possible to undo. Are you sure you want to continue?
The advancement of technology and the evolution of the information home appliances, such as TVs, air conditioners, sound and stereo systems, wireless phones, and so forth, the remote controllers dazzling our eyes still have not reached a unified model or style. In view of this fact, we propose an environment controller combining the Bluetooth technology. Along with Bluetooth transmission via radio wave, we can break through those space barriers existing in our housing structure comprising multiple separating objects. The system design is as follows: microcontroller and Bluetooth module. Bluetooth is a wireless technology that is composed of hardware, software, and interoperability requirements. Bluetooth is “A specification for short-range radio links between mobile computers, mobile phones, digital cameras, and other portable devices.” It has been adopted not only by all major players in the telecom, computer and home entertainment industry, but also in such diverse areas as the automotive industry, health care, automation, and toy industries Bluetooth communication pattern comes with excellent feature of
robust(strong) digital communication. This can enable variable bit rate for desired purposes like voice or data. We are opting for data transmission in the order of 9600 bps which exchange ASCII values.
1. MICROCONTROLLER 89C51
1.1 Introduction of microcontroller:
Fig: 1.1 Basic block diagram of Microcontroller
1.2 Basic microcontroller Block Diagram:
There are three busses involved in accessing memory: Address bus Data bus Control bus
1.3 Read Cycle:
1. CPU places address on address bus. 2. Control signals memory - address on address bus is valid 3. Memory chip fetches data from location specified by the address and places on the data bus 4. Control signals CPU - data on data bus is valid 5. CPU takes data from data bus
1.4 Write Cycle:
1. CPU places address on address bus 2. Control signals memory - address on address bus is valid. 3. CPU places data on the data bus 4. Control signals memory - data on data bus is valid 5. Memory chip takes data from data bus and places it in the Location specified by the address
1.5 Basic difference between microprocessor and Microcontroller:
A microprocessor system consists of a microprocessor with memory, input ports and output ports connected to it externally. A microcontroller is a single chip containing a microprocessor, memory, input ports and output ports. Since all four blocks reside on the one chip, a microcontroller is much faster than a microprocessor system
We can split memory into two types; RAM and ROM. RAM stands for random access memory. The are two features of RAM which distinguish it from ROM RAM is read/write - data can be written to and read from RAM. RAM is volatile - data is lost once the power to a RAM chip is lost Random access refers to the fact that data from any location in the memory chip is accessible at any time (you simply put the desired address on the address bus). ROM stands for read only memory. As with RAM, it is random access but it differs from RAM in two ways: ROM, as the name suggests, is read only. You cannot write to a ROM chip. A ROM chip must be programmed, but once programmed, it cannot be (easily) changed ROM is non-volatile - when power is removed from the chip data is not lost. There are many types of ROM available; PROM, EPROM, EEPROM and Flash are the most common.
1.7 Micro controller 89C51:
The 8051 is just one of the MCS-51 family of microcontrollers developed by intel. The design of each of the MCS-51 microcontrollers are more or less the same. The differences between each member of the family is the amount of on-chip memory and the number of timers. Phillips 89C51 contains a non-volatile FLASH program memory that is parallel programmable. Phillips 89C51, 8-bit Micro controller from MHS-51 Intel family, with 4K bytes of flash and 128 bytes of internal RAM had been used. It has a 40-pin configuration and other components of interfaced to its ports. The Micro controller takes input from the external sources and routes them to the appropriate devices as programmed in it.
1.8 8051 Micro Controller Architecture:
Fig: 1.2 Architecture of Microcontroller 8051
as its name suggests. multiplication and division. parity computation. 6 . a total of 64K bytes of code.1 Accumulator: The Accumulator. The accumulator has several exclusive functions such as rotate. Accumulator holds a source of operand and stores the result of the arithmetic operations such as addition. The Microcontroller can access program addresses 0000 to FFFFH. program may inspect and/or change the operating mode of the 8051 by manipulating the values of the 8051's Special Function Registers. 1. The accumulator can be the source or destination register for logical operations. sign acceptor etc. control and access timers.8. testing for 0. four SFRs permit access to the 8051s 32 input/output lines.9 Special Function Register (SFR) Memory: Special Function Registers (SFRs) are areas of memory that control specific functionality of the 8051 processor. and configure the 8051s interrupt system. As the CPU fetches the opcode from the program ROM. Other SFRs allow the user to set the serial baud rate. It can hold an 8-bit (1-byte) value and is the most versatile register. The Program Counter is special in that there is no way to directly modify its value. the microcontroller has due to the shear number of instructions that make use of the accumulator. When the 8051 is initialized PC always starts at 0000h and is incremented each time an instruction is executed. 1.8. For example. Another SFR allows a program to read or write to the 8051s serial port. is used as a general register to accumulate the results of a large number of instructions. PC is always incremented by one. subtraction.1. the program counter is implemented to point to the next instruction. and so on. Since some instructions require 2 or 3 bytes the PC will be incremented by 2 or 3 in these cases. The SFR is part of Internal Memory.2 Program Counter: The program counter points to the address of the next instruction to be executed.
All other addresses in the SFR range (80h through FFh) are considered invalid. 1.The program may inspect and/or change the operating mode of the 8051 by manipulating the values of the 8051's Special Function Registers.10 The Diagram of the SFR: Fig: 1. SFRs are accessed as if they were normal Internal RAM. Whether a given I/O line is high or low and the value read from the line are controlled by the SFRs in green. The only difference is that Internal RAM is from address 00h through 7Fh whereas SFR registers exist in the address range of 80h through FFh Each SFR has an address (80h through FFh) and a name. The 8051 has four I/O ports of 8 bits. Writing to or reading from these registers may produce undefined values or behavior. 1. there are only 21 SFRs in a standard 8051.3 Memory Diagrams of Special Function Registers Although the address range of 80h through FFh offer 128 possible addresses. for a total of 32 I/O lines. the SFRs that have a blue background are SFRs related to the I/O ports. 7 .11 SFR Types: As mentioned in the chart itself.
the program may read or write to the serial port using the SBUF register. Bit-Addressable): This is input/output port 1. 1. This SFR is modified by all instructions which modify the stack. bit 7 is pin P1. Bit-Addressable): 8 .12.7. 1. are "other SFRs. For example. and whenever interrupts are provoked by the microcontroller. For example. Addresses 98h. Bit-Addressable): This is input/output port 0.7. RET.0. Address 90h. 1. Writing a value of 1 to a bit of this SFR will send a high level on the corresponding I/O pin whereas a value of 0 will bring it to a low level. LCALL. This SFR indicates where the next value to be taken from the stack will be read from in Internal RAM. if SP holds the value 07h. bit 0 of port 0 is pin P0. That is to say. TCON controls the timers. a PUSH instruction will push the value onto the stack at address 08h. the value will be written to the address of SP + 1. Each bit of this SFR corresponds to one of the pins on the microcontroller. SP (Stack Pointer. such as PUSH. The remaining SFRs.12 SFR Descriptions: P0 (Port 0.12. For example. Address 81h): This is the stack pointer of the microcontroller.7 SCON (Serial Control. SCON controls the serial port.0." These SFRs can be thought of as auxiliary SFRs in the sense that they don't directly configure the 8051 but obviously the 8051 cannot operate without them. If you push a value onto the stack. once the serial port has been configured using SCON.6 P1 (Port 1. Each bit of this SFR corresponds to one of the pins on the microcontroller. with green backgrounds. For example. Address 80h. RETI. Writing a value of 1 to a bit of this SFR will send a high level on the corresponding I/O pin whereas a value of 0 will bring it to a low level. POP. bit 0 of port 1 is pin P1.The SFRs with yellow background are SFRs which in some way control the operation or the configuration of some aspect of the 8051. bit 7 is pin P0.
variable baud rate 9. 1 stop bit. Set by hardware halfway through the stop bit time in mode 1. 8H Fig: 1.2: Operating modes of SCON 1. TB 8 not widely used. Set by hardware at the beginning of the stop bit in received interrupts flag. variable baud rate Table 1. RB 8 not widely used. and also contains flags that are set when a byte is successfully sent or received.The Serial Control SFR is used to configure the behavior of the 8051's onboard serial port.bit data.13 IE (Interrupt Enable. It must be cleared by software. It must be cleared by software. 1 stop bit. fixed baud rate 9.bit data. 1 start bit. 1 start bit. mode 1.6 Format of Serial Port Control Register (SCON) REN set or cleared by software to enable or disable reception. Addresses A8h): 9 . This SFR controls the baud rate of the serial port. TI RI transmits interrupt flag. SM0 0 0 1 1 SM1 0 1 0 1 Serial mode 0 Synchronous mode 8-bit data. 1 stop bit. Bit addressable. whether the serial port is activated to receive data. 1 start bit.
Upon receiving an interrupt signal. Two interrupts are set aside for hardware external hardware interrupts. whenever any device needs its service. The Interrupt Enable SFR is used to enable and disable specific interrupts. The low 7 bits of the SFR are used to enable/disable the specific interrupts. the microcontroller interrupts whatever it is doing and serves the device. Serial Communications has a single interrupt (receive and transfer). if the high bit of IE is 0 all interrupts are disabled regardless of whether an individual interrupt is enabled by setting a lower bit. where as the highest bit is used to enable or disable ALL interrupts. each interrupt source is individually enabled or disabled by setting or clearing its enable a lap bit. 3.A single microcontroller can serve several devices. Fig: 1. 10 .7 Format of Interrupt Enable (IE) Special Function Register EA disable all interrupts. Reset. ---ET2 ES Not implemented. The advantageous of interrupts is that the microcontroller can serve many devices based on the priority assigned to it. 2.1 Six interrupts in the 89C51: 1. 4. the device notifies the microcontroller by sending it an interrupt signal. Two interrupts are set aside for the timers. If EA = 1. Thus. enables or disables the serial port interrupt. In the interrupt method. enables or disables timer 2 overflow or capturer interrupt. 1. now interrupt is acknowledged. The program associated with the interrupt is called the interrupt service routine (ISR). If EA = 0.13. reserved for future use.
bit 7 is pin P3. All derivative microcontrollers of the 8051 must support these basic SFRs in order to maintain compatibility with the underlying MSCS51 standard. Each bit of this SFR corresponds to one of the pins on the microcontroller.0. 1.ET1 EX1 ET0 EX0 enables or disables timer 1 overflow interrupt. Bit-Addressable): This is input/output port 3. bit 0 of port 3 is pin P3.15 Other SFRs: The chart above is a summary of all the SFRs that exist in a standard 8051. Address B0h.7. 11 . For example. enables or disables timer 0 overflow interrupt. enables or disables external interrupt 0.14 P3 (Port 3. Writing a value of 1 to a bit of this SFR will send a high level on the corresponding I/O pin whereas a value of 0 will bring it to a low level. enables or disables external interrupt 1. 1.
8 Pin Diagram of Phillips 89C51 Microcontroller Pin 1–8: (Port 1): Each of these pins can be used as either input or output according to your needs. Also. Bringing this pin back to logical state zero starts the program anew as if the power had just been turned on. positive voltage impulse on this pin resets the MCU. In another words.Fig: 1. Pin 9: Reset Signal High logical state on this input halts the MCU and clears all the registers. 12 . pins 1 and 2 (P1.0 and P1.1) have special functions associated with Timer.
From a hardware standpoint.e. each pin of Port 3 has an alternative function. If using other port to a same end. as its pins cannot produce high logical level without an additional resistor connected to +5V. each of these pins can be used as universal input or output.Depending on the device's purpose and environs. the pin in question has to be designated as input. 13 . Pin 11: TXD . they all share highly similar structure. In order to use one of these functions. reset-upon-start circuit or a brown out reset circuit (covered in the previous chapter).signal for writing to external (add-on) RAM memory Pin 17: RD . each pin of Port 3 has an alternate function. Pin 10-17: Port 3 as with Port 1. you need to consider which task should be assigned to which port. As can be seen from the individual descriptions of the ports. For example: if utilizing port as output with high level (5V).clock input of counter 0 Pin 15: T1 .signal for reading from external RAM memory. However. Pin 10:RXD . Port 3 is similar to Port 0. this pin is usually connected to the push-button. Beside its role as universal I/O port. However. It is utilized in situations when power fails to reach its optimal voltage. producing the currents limited to few hundreds of amperes as pin output.input for interrupt 0 Pin 13: INT1 . the appropriate bit of register P3 needs to be set.serial input for asynchronous communication or serial output for synchronous communication.input for interrupt 1 Pin 14: T0 . avoid using Port 0. i.serial output for asynchronous communication or clock output for synchronous communication Pin 12: INT0 .clock input of counter 1 Pin 16: WR . bear in mind that built-in resistors have relatively high values. The image shows one simple circuit for safe reset upon starting the controller.
14 . PSEN is directly connected to its control pins. In this way. and uses it as part of the address for memory chip.28: Port 2 if external memory is not present. and port P0 is used as Data Bus. If external ROM is used for storing the program. New Mucus works at frequencies from 0Hz to 50MHz+. Instead of a quartz crystal. memorizes the state of port P0 upon receiving a signal from ALE pin. manufacturers recommend using somewhat higher capacitances (about 47 puffs).Pin 18-19: X2 and X1: Input and output of internal oscillator. i. this port contains the higher address byte (addresses A8–A15).e. miniature ceramic resonators can be used for dictating the pace. data from port can be multiplexed and the port simultaneously used for transferring both addresses and data. Of the external memory. Otherwise. During the second part of the mechanical MCU cycle. this is the location of the higher address byte. MCU sends the lower byte of the address register (addresses A0 – A7) to port P0 and activates the output ALE. similar to Port 0. If external memory is present. External register (74HCT373 or 74HCT375 circuits are common). addresses A8 – A15. Pin 29: PSEN: MCU activates this bit (brings to low state) upon each reading of byte (instruction) from program memory. pins of Port 2 act as universal input/output.e. In that case. signal on ALE is off. memory is smaller than 64kB). the rest of the unused bits are not available as input/output. Quartz crystal controlling the frequency commonly connects to these pins. It is important to note that in cases when not all the 8 bits are used for addressing the memory (i. by adding only one cheap integrated circuit. Pin 20: GND: Ground Pin 21. When external memory is used. Capacitances within the oscillator mechanism (see the image) are not critical and are normally about 30pF. it can be used as universal I/O port.
Clearing a port bit grounds the appropriate pin on the case (0V).When designated as output.Pin 31: EA Bringing this pin to the logical state zero (mass) designates the ports P2 and P3 for transferring addresses regardless of the presence of the internal memory. first the internal. to get one (5V) on the output. Pin 32-39: Port 0 Similar to Port 2. pin of Port 0 acts as high impedance offering the infinite input resistance with no "inner" voltage. Setting a port bit makes the pin act as high impedance. Port 0 has two-fold role if external memory is used. but the one from the external ROM will be used instead. Another feature of this port comes to play when it has been designated as output. This seemingly insignificant change has the following consequences: When designated as input. otherwise all bits of the port are either input or output. This means that even if there is a program loaded in the MCU it will not be executed. it contains the lower address byte (addresses A0-A7). 15 . and then the external (if present). external "pull up" resistor needs to be added for connecting the pin to the positive pole. Conversely. to get positive logic (5V) at output. Therefore. external "pull up" resistor needs to be added for connecting the pin to the positive pole. Pin 40: VCC: Power +5V.Therefore. bringing the pin to the high logical state causes the controller to use both memories. Port 0 lacks the "pull up" resistor (resistor with +5V on one end). Unlike other ports. pin acts as "open drain".
16 .1. Port 2: When external memory is used this port contains the higher addresses byte (addresses A8-A15).13 Input – Output (I/O) Ports: Every MCU from 8051 families has 4 I/O ports of 8 bits each. This provides the user with 32 I/O lines for connecting MCU to the environs. Port 3: Beside its role as universal I/O port. Another feature of this port comes to play when it has been designated as output. the pin in question has to be designed as input. Port 1: This is “true” I/O port. port1 is fully compatible with TTL circuits. Otherwise it can be used as universal I/O port. Port 0: Port 0 has two-fold role. otherwise all bits of the port are either input or output. similar to port0. if external memory is used. Having the “pull up” resistor. it contains the lower address byte (addresses A0-A7). In order to use one of these functions. each pin of port3 has an alternate function. devoid of dual function characteristics for port 0.
which is 2. such as printers. For these reasons. the information is simply grabbed from the 8-bit data bus and presented to the 8-bit data bus of the printer. The fact that in serial communication a single data line is used instead of the 8-bit data line of parallel communication makes it not only much cheaper but also makes it possible for two computers located in two different cities to communicate over the telephone. Furthermore. and 8-bit data path is expensive. there are special IC chips made by many manufacturers for serial data communications. SERIAL COMMUNICATION When a microprocessor communicates with the outside world. In some cases. 17 . The synchronous method transfers a block of data at a time while the synchronous transfers a single byte at a time.2. serial communication is used for transferring data between two systems located at distances of hundreds of feet to millions of miles apart. when transmitter such as a keyboard may not always have data ready to send Asynchronous may also mean no explicit information about where data bits begin and end. but the programs can be tedious and long. It is mean possible to write software to use either of these methods. Used. Serial data communication uses two methods. The8051 chips has built-in UART. For this reason. it provides data in byte-sized chunks. for example. since long cables diminish and ever distort signals. This can work only if the cable is not too long. a synchronous and asynchronous. Transmitter can wait arbitrarily long between transmissions.1 Asynchronous Serial Communication and Data framing: Transmitter and receiver do not explicitly coordinate each data transmission. These chips are commonly referred to as UART (universal asynchronous discussed receiver-transmitter) and USART (universal synchronous -asynchronous receiver-transmitter).
As far as the conductor wire is concerned. bits per second may be greater than baud rate. This means that for each character we have a single parity bit in addition to start and stop bits. The start bit is always one-bit but the stop bit can be one or two bits. The parity bit is odd or even. the baud rates as bps are the same. 2. 18 . Baud rate is defined as the number of signal changes per second. This is the called framing. and when the data begins and ends. Another widely used terminology for bps is baud rate. stop bit will not be received at the expected time problem is called framing error. the parity bit of the character byte is included in the data frame. a protocol.The data coming in at the receiving end of the data line in a serial data transfer is all 0's and 1's. 2. In case of an odd parity bit the number of data bits of a book of including the parity bit. on how the data is packed. the data. 2. If each signal change represents more than one bit. such as ASCII characters. In data framing for asynchronous communications. it is difficult to make sense of the data unless the sender and receiver agree on a set of rules. If the transmitter and receiver are using different speeds. In the asynchronous method. each character is placed in between start and stop bits. is even. The start bit is always a 0 and the stop bit is 1.3 Parity bit: In some systems in order to maintain data integrity. are packed in between a start bit and a stop bits.2 Start and stop bits: A synchronous serial data communication is widely used for character orientation transmissions.4 Data transfer rate: The rate of data transfer in serial data communication is stated in bps (bits per second). how many bits constitute the character.
2. was set by the electronics industries association (EIA) in 1960.6 Interface for DTE/DCE Connection: Fig: 2.5 RS232 standards: Two allow compatibility among the data communication equipment made by various manufacturers. 2.1 Interfacing between Data Terminal Equipment (DTE) and Data Communication Equipment (DCE) 19 . DTE (Data Terminal Equipment) is a generic term for an item which forms part of the "information processing" portions of a system. Examples are: computer. and terminal. DCE (Data Communications Equipment) is a device. RS 232 is the standard defined for the connection of "Data Terminal Equipment" (DTE) to "Data Communications Equipment" (DCE). an interfacing standard called RS232. which provides an interface between a DTE and a communications link. printer.
from DCE together with RTS DTE---. DSR--. The RS 232 is not compatible with micro controllers.Clear to send. 2. This is standard for transfer of characters across copper wire. indicates to the modem that a DTE is Connected and enabled. Asynchronous communication. In RS 232.Carrier Detect.Transmit and Receive Signal RTS---.7 RS 232 Wiring and Connectors: Fig: 2. indicates that this modem is receiving a signal from the remote modem. MAX 232. so a line driver converts the RS 232's signals to TTL voltage levels. Asynchronous characters can be sent at any time and bits are not individually synchronized. Serial bits are encoded and transmitted one at a time.Data Terminal Ready. To connect any RS 232 to a µc system. from DTE CTS---. a 1 is represented by -3 to -25V which is called Mark.3.All Signals Are “Ground Referenced” to in Pin 7 TXD.8. while a 0 bit is + 3 to + 25V which is called Space. voltage converters such as Max 232are used. Max 232 IC chips are commonly referred to as line drivers.Request to Send.Data Set Ready. 20 . RXD---. indicates to the DTE that the modem is present and turned on CD-.2 Pins of RS232 Serial Port RS-232 Defines Serial.
First we use an editor to type in a program similar to program. Check your assembler for the convention. the file names follow the usual DOS conventions. assembled and made ready to run? The steps to create an executable assembly language program are outlined as follows. 21 . The assembler will produce an object file and a list file. 4. The assembler converts the instructions into machine code. The link program takes one or more objects files and produces an absolute object file with the extension "ABS". Recent Windowsbased assemblers combine steps 2 through 4 into one step. extension for the source file is used by an assembler in the next step. Notice that the editor must be able to produce an ASCII file. Next the "ABS "file is fed into a program called "OH "(Object to Hex Converter) which creates a file with extension "HEX "that these ready to burn into ROM. This program comes with all 8051 assemblers. The "asm ". the next question is: how it is created. 3. The "ASM "source file containing the program code is created in step 1 is fed to an 8051 assembler. but the source file has the extension "ASM "or "SRC ". 1. 2. For many assemblers. depending on which assembler you are using. Assemblers require a third step calling linking. Many excellent editors or word processors are available that can be used to create and/or edit the program. The extension for the object file is "OBJ "by the extension for the list file is "1ST ". 8051 trainers that have a monitor program use this ABS file. BASIC FORM OF ASSEMBLY LANGUAGE PROGRAM Now that the basic form of an assembly language program has been given. which comes with all Microsoft operating systems. A widely used editor is the MS-DOS EDIT program (or notepad in Windows).3.
New Project… from the program menu Give some project name: xxxx. Save… from the program menu The first time you save the program a dialog box will popup and allow you to name your file and file type. The following is an example of a toggle program. Start the µVision Program 2. org 0H mov A.prj 22 . same R3. Save program with filename: xxxxx.asm) means assembly language 4. A acall delay1msec cpl a mov P2. Select File. a acall delay1msec sjmp route delay1msec: mov up: mov same: djnz djnz ret R3.asm The File type is mentioned at last (. #250 R2. #200 R2.3. New… from the program menu Type your assembly file. up end 3. #0ffH route: mov P1. After the program has started: Select File. Select Project.1 Evaluation of keil Software: 1.
so that you can see the how output varies on ports. 7. Click on Save in your Project dialog box. Change the file type to HEX Select your hex file. e. Make: Build Project from the program menu This creates the HEX file you need for the 8051 3. 7.g. you can also select this directly. Click on the Add button then close the Add dialog box. I/O Ports from the program menu. Select Project. Select File. 3. Select your assembly file. 5. load CPU driver from the program menu The debug program will start a new session Choose the 8051.5.dll from the drop down list box. Click on stop when you are finished. 6. Select Port 0. Hex Click OK 4. load object file from the program menu. Port 2 and Port 3 6. dScope debugger… from the program menu Select File. To set a breakpoint. double click on the line. allowing you to add files to the project Change the file type to Assembly. 8. You can also single step through you program or set break points at locations that you want the debugger to stop at. 23 . Click on the Add button A dialog-box appears.2 Using the Keil dScope Debugger 1. 2. Toggle. Select Run. You should now see the source code of the file typed in earlier Select Peripherals. Port 1. Click on go to see the real time update of the I/O ports.
the CPU. must refresh the LED.2 VCC.4. LIQUID CRYSTAL DISPLAY [LCD] As in recent years the LCD is finding widespread use replacing LED this is due to the following reasons: Fig: 4. In contrast. 24 . The function of each pin is given shows the positions for various LCD. 4. characters and graphics. VSS and VEE: While VCC and VSS provide + 5 V and ground respectively. This is in contrast to LED. to keep the data displaying. there by the easy relieving the CPU of the task of refreshing the LCD. 4.1 LCD pin descriptions: LCD has 14 pins.1 Showing LCD Four Line Display The declining prices of LCD The ability to display numbers. VEE is used for controlling LCD contrast. which are limited to numbers and a few characters. Ease of programming for characters and graphics. Incorporation refreshing controller into the LCD.
R/W=1 when reading. the LCD is busy taking care of internal operations and will not accept any new information. 4. 4. the instruction command code register is selected.3 RS (Register Select): There are two very important registers inside LCD. WhenD7=0. Fig: 4.4.To display letters and numbers. as follows: if R/w=1 and RS = 0. When data is supplied to data pins. the LCD is ready to receive new information. This pulse must be a minimum of 450 ns wide. allowing the user to send a command such as clear display. Cursor at home. etc. The busy flag isD7 and can be read when R/W=1 and RS= 0. and numbers 0-9 to these pins while making RS=1. We also use RS= 0to check the busy flag bit to see if the LCD ready to receive. a-z. Is RS= 0.2 Showing a 20x4 Liquid Crystal Display 25 . D0-D7.4 R/W (Read/Write): R/W input allows the user to write information into the LCD or read information from it. 4. R/W=0 when writing.6 D0-D7: The 8-bit data pins. allowing the user to send data to be displayed on the LCD. a high to low pulse must be applied to this pin in order for the LCD to latch in the data present at the data pins. if RS=1 the data register is selected.5 E (Enable): The LCD to latch information presented to its data pins uses the enable pin. When D7 =1. are used to send information to the LCD or read the contest of the LCD internal registers. The RS pin is used for their selection as follows. we send ASCII codes for the letters A-Z.
CODE 1 2 4 6 5 7 8 A C E F 10 14 18 1C 80 C0 38 COMMAND TO LCD INSTRUCTION Clear display screen Return home Decrement cursor (shift cursor to left) Increment cursor (shift cursor to right) Shift Display right Shift display left Display off. cursor off Display on.1 Showing Code to execute particular Instruction 26 . cursor off Display off. cursor blinking Display on. cursor blinking Shift cursor position to left Shift cursor position to right Shift the entire display to the left Shift the entire display to the right Force cursor to beginning of 1st line Force cursor to beginning of 2nd line 2 lines and 5x7 matrix Table: 4. cursor on Display on.
Thus Bluetooth has to be very robust because many users. BLUETOOTH PROFILE Bluetooth is low cost. IBM Corp. Toshiba Corp. install. 27 . plug into. This band is reserved for general purpose usage of Industrial. global specification defining the complete system from the radio right up to the application level. Then they formed Bluetooth Special Interest Group(SIG) to define and promote Bluetooth specification with five key promoters: Ericsson Mobile Communications Intel Corp. Nokia Mobile Phones Bluetooth devices operate at 2. Version 1. This study concluded with radio link as a better option than the optical communication like infrared because of its line of sight limitation. Because numerous corporations are designing and producing vast range of telecom gadgets.5. It is not possible to get universal acceptance for a new technology developed by a single company particularly for blue tooth. The Bluetooth specification is an open. Scientific and Medical applications. enable or configure anything to anything else.0 of the Bluetooth came into existence in 1994 when Ericsson Mobile Communication began its study for alternatives to replace the cable and this technology hit the market in 1999. headsets and portable computers. polluters of this shared spectrum. low power short-range radio technology originally developed as a cable replacement to connect devices such as mobile phone handsets. No longer do people need to connect.4 GHz globally available license free band.
Its modulation scheme is Frequency Shift Keying (FSK). Each Bluetooth timeslot lasts for 625 micro seconds. It is the Master which initiates the transaction. Every Bluetooth device has a unique Bluetooth device address. One Master can have maximum seven slaves thus it has to decide seven different Frequency Hoping Spectrums. Bluetooth devices can operate in two modes for data transfer using Bluetooth devices one has to act as Master and other as Slave. They then use this to calculate the frequency hop sequence. establishes the link with slave. Bluetooth devices has to jump to another frequency continuously within the available bandwidth. Technical robustness is not possible if the Bluetooth devices operate on the constant frequency. The base band part of the Bluetooth specification describes an algorithm. Bluetooth is mainly designed for low power radio frequency link available in the range of 10m. 20m and 100m. Because all Slaves use the Master’s clock and address. Generally Bluetooth devices hop for every packet or every 2 packet or every 5 packets. Bluetooth specification allows three different powers they are referred as three classes of Bluetooth devices. and a Bluetooth clock. The Master controlling the frequency hop sequence. When Slaves connect to a Master. when devices are allowed to transmit. which can calculate frequency hop sequence from a Bluetooth device address and a Bluetooth clock. The number of time slots among multiple devices is called Time Division Multiplexing. After sending a packet both devices has to jump another radio channel effectively which is called Frequency Hopping Spread Spectrum (FHSS).The operating band is divided into 1MHz spaced channels signaling data at 1 mega signals per second for the sake of obtaining maximum available bandwidth. which Slave has to follow. 28 . Most importantly Master decides the Frequency Hoping Spectrum. The Master controls how the total available bandwidth is divided among the Slaves by deciding when and how often to communicate with each Slave. all are synchronized to the Master’s frequency hop sequence. they are told the Bluetooth device address and clock of the Master.
Every Bluetooth device has its unique address. Master tries to connect itself to other devices and slave is waiting to be connected from other devices. Inquiry scan or Page scan mode. Bluetooth device can play a role as a master or slave. called BD (Bluetooth Device) address. A Bluetooth connection can always be made from pair of master and slave devices.4GHz.2 Applications: The kind of range one can get using Bluetooth again depends on the number of physical objects available in the surrounding area which always absorb the microwave frequency there by reducing the distance of propagation. 29 . It uses microwave frequency of about 2. But in real time applications we need to adopt satellite communication to have link with Bluetooth which will be again in microwave band.1 Bluetooth Communication: Bluetooth is the international standard of wireless communication. Mobile cellular phone to notebook PC Mobile cellular phone to headset Communication between laptop to palm top. which is composed of twelve hexadecimal digits which is used frequently while establishing the link among the Bluetooth devices. Bluetooth enables us to work with verity of telephone devices such as Mobile cellular phone to Public Switched Telephone Network (PSTN) through access point . The Bluetooth implemented in this application is belonging to Class 1 giving 100 meters radius.5. A slave can be in two modes.Bluetooth technology uses FHSS as a way to deal with undesired interference. Inquiry scan mode is waiting for a packet of Inquiry from other Bluetooth device and Page scan mode is waiting for the packet of connection from other Bluetooth device. 5.
Parani-ESD provides some expanded AT commands for various functions. Parani-ESD can communicate withother Bluetooth devices that support the Serial Port Profile. The Parani-ESD delivers better quality of communication than a standard RS232 cables. In addition to the basic AT commands. Parani-ESD supports FHSS (Frequency Hopping Spread Spectrum). Its detachable antenna optimizes the quality and distance for wireless communications. Users can easily configure Parani-ESD by using a terminal program such as HyperTerminal and can use Bluetooth wireless communication without modifying user’s existing serial communication program.3 BLUETOOTH MODULE Parani-ESD is a module device for wireless serial communication using Bluetooth technology that is international a standard for short range wireless communications. Parani-ESD can be configured and controlled by typical AT commands. Parani-ESD has a compact design and can be placed conveniently into devices or equipment. Parani-ESD also supports authentication and Bluetooth data encryption.5. native to Bluetooth that allows the Parani-ESD minimize radio interference while decreasing the likelihood of over-air hijacking. 30 . Parani-ESD lineup has several models with different communication ranges from 30m (Parani-ESD200/210) up to 100m (Parani-ESD100/110) for use with various applications. which is a technique. User friendly ParaniWizard and ParaniWIN are also provided for easy setup on Microsoft Windows.
5. 220.127.116.11. Connect the Parani-ESD Series to the Jig Board. 31 . Connect Jig Board for the Parani-ESD Series to a serial device. 5.1 Pannel Layout: Fig: 5.1 The Panel Layout of Jig Board.2 Connecting the Hardware: This section describes how to connect the Parani-ESD Series to the Jig Board and the Jig Board to the serial device for initial testing. Connect a power source to Jig Board for the Parani-ESD Series.3 Connecting Parani-ESD to Jig Board: Connect the Parani-ESD Series to the Jig Board as shown below.
Fig: 5.4 Connecting Power to Jig Board: Connect the power jack to the power connector of the Jig Board for the ParaniESD Series using the DC power adapter or USB power cable that is included in the package. Fig: 5.2 Connecting Parani-ESD to Jig Board 5. If necessary.5 Connecting a Device to Jig Board: Connect the serial data cable between the Jig Board and the serial device.3 Connecting Power to Jig Board 5.3.4 Connecting a Device to Jig Board 32 .3. supply power to the serial device attached to the Jig Board.Fig: 5.
When the radio transmission condition is not good enough to send data promptly. In order to prevent this buffer overflow. Parani-ESD disables RTS so that it stops receiving any further data from the host when the buffer becomes full. For large data transmissions. 33 . RTS will be reenabled again to begin receiving data from the host when the buffer has created more room for more data. When hardware flow control is not being used. the possibility of data loss becomes greater. SERIAL PORTS The applicable settings for serial ports are as follows. Parani-ESD works as follows. As the transmission data becomes large. the Parani-ESD clears the buffer to secure room for the next data when the buffer becomes full. When using hardware flow control.1 Table Showing Settings required for use of Serial Ports 6. Fig: 6.6. the use of hardware flow control is highly recommended. If the host sends more data when the buffer is full. buffer overflow will make Parani-ESD malfunction consequently.1 Hardware Flow Control: Parani-ESD plugged into its host system transmits data from host to the other side Bluetooth device. it can cause a transmission delay. This can mean a loss of data may occur. This data is saved temporarily in the internal buffer of ParaniESD and sent repeatedly until the transmission is completed packet by packet.
2 Pin Assignment: Fig: 6.2 Assignment of Parani-ESD100/110 Fig: 6.3 Table Showing Description of each Pin in Parani-ESD200/210 34 .6.
the ESD will not respond or ‘ERROR’message will appear or an abnormal sequence of strings will appear.Encryp. BLUETOOTH COMMANDS AT↵ : SD Response: Purpose : Description: Check if the connection to host equipment is operating normally.↵: SD Response: 112233445566. Check the connection status with host equipment. If not. and Hardware Flow Control. Display Bluetooth settings Mode Status Auth Encrypt = = = = MODE0/MODE1/MODE2/MODE3 STANDBY/PENDING/CONNECT 0/1 (Authentication is not activated when 0) 0/1 (Encryption is not activated when 0) HWFC/NoFC FlowControl = 35 . Data Encryption.Status. Authentication. Auth. The serial parameters of Parani-ESD must be same as those of host equipment.Operation mode.7. AT+BTINFO?. Device name. FlowControl OK Purpose: Description: The current Bluetooth settings are displayed including BD address. DeviceName. OK. Mode. Operation status.
This has the same effect as AT+BTSCAN. Connect to the last connected Bluetooth device ATH ↵ : SD Response: Purpose: Description: The current Bluetooth connection will be disconnected.3. To convert the operation status to ‘Standby’ AT+BTCANCEL must be used. The operation status will be in ‘Pending’ after this command. the operation status is back to ‘Pending’. When connection is made and released.0. OK/ ERROR. When connection is made with other Bluetooth device. Release the current connection 36 . SD response will be ‘CONNECT’ with its BD address. If it fails to make a connection. SD response will display an ‘ERROR’. OK / DISCONNECT.AT+BTSCAN ↵: SD Response: Purpose: devices Description: This allows the inquiry and connection from the other Bluetooth devices. It takes about 30 seconds to detect an abnormal disconnection such as power off and moving out of service range. OK Wait for inquiry and connection from other Bluetooth ATD <bt address>↵ : SD Response: Purpose : Description : Parani-ESD saves the BD address of the Bluetooth device most recently connected to.
This is given in the line diagram. IDE GVI application Cross compiler Assembler Simulator Debugger Linker Loader Fig: 8. In this application Keil micro vision 2 IDE has been used. This approach directly influences the development productivity. Because of one is dealing with both hardware and software and vast comprehensibility the development process is very complex. The IDE is user friendly software in which one can write the program and see its out come. 37 .8.1 Cross compiler: This tool is required to build the if user adopts high level language for his application development.1 Classification of Integrated Development Environment (IDE) Integrated Development Environment is the first necessity. Cross compiler converts source code into the instructions of the target controller. 8. SOFTWARE REQUIREMENTS In any embedded systems application development life cycle one has to adopt one of the finest hierarchical approach. The developers job becomes easy when necessary soft wares to carry out many phases of development. The IDE will be equipped with many other tools.
Once the code is free from bugs it will be passed to liker.The output of the cross compiler given to an assembler. 8. Assembler is the combination of debugger. 38 . In Keil we have A51 assembler to build our assembly language code. First it has to be tested in our IDE itself.4 Linker: Linking operations like attaching starting address of a subroutine to the main program will be done by liker.2 Assembler: This tool takes instructions and converts into operation code of the target controller. 8. It creates an absolute sequential code which is to be executed.5 Loader: It simply takes liked file and converts into hex code which can be downloaded into the micro controller. All debugger. 8. This process is quite lengthy and carried out phase by phase.6 Simulator: Once the code is ready then it is always not a good idea to dump into micro controller. The tool provided by an IDE which shows an exact replica of micro controllers perception is nothing but our simulator. liker and loader are the part of assembler software. 8. linker and loader. Since it is the programmers choice to go to high level languages Keil offers C51 as the cross compiler it compiles only Embedded C code not other like Embedded C++ and Embedded Java.3 Debugger: As its name itself indicates it is for fixing the bugs that is all syntax errors from the code. 8.
) switch contact and the 'common' switch contact. The metal arm is at its rest position and so there is contact between the Normally Closed (N. as shown in figure 2b.9.) switch contact and the common switch contact.1 Introduction: One simple method of providing electrical isolation between two circuits is to place a relay between them.1 Relay Providing Isolation between two circuits 9. the resulting magnetic field attracts the metal arm and there is now contact between the Normally Open (N. RELAYS 9. A relay consists of a coil which may be energised by the low-voltage circuit and one or more sets of switch contacts which may be connected to the high-voltage circuit.C. If a current is passed through the coil. Fig: 9. Fig: 9.2 Showing Mechanical Operation of Relay 39 .O.2 How Relays Work In figure 2a the relay is off. as shown in the circuit diagram of figure 1.
3 The Latching Relay Circuit If a relay is connected as shown in figure 3.9. Fig: 9. it will become 'latched' on when the coil is energised by pressing the Trigger button. The only way to turn the relay off will then be to cut the power supply by pressing the Reset button (which must be a push-to-break type).3 Showing The Latching Relay Circuit 40 .
7 LCD_DATA EQU P0 SW1 EQU P1.#PLACE ACALL DISPLAY_DATA ACALL DELAY_1SEC ACALL DELAY_1SEC ACALL DELAY_1SEC MOV A.3 SW4 EQU P1.TO DISPLAY COLLEGE PLACE ACALL LCD_CMD MOV DPTR.#01H ACALL LCD_CMD MOV A.#COLL ACALL DISPLAY_DATA MOV A. CODE PROGRAM FOR BLUETOOTH TRANSMITTER LCD_RS EQU P1.#80H .#84H .4 ORG 00H LJMP MAIN ORG 0023H LJMP S_INT MAIN: ORG 100H CALL LCD_INIT MOV A.5 LCD_RW EQU P1.TO DISPLAY COLLEGE NAME ACALL LCD_CMD MOV DPTR.2 SW3 EQU P1. TO DISPLAY WELCOME TO ACALL LCD_CMD MOV DPTR.#0C3H .1 SW2 EQU P1.TO DISPLAY PROJ DEV BY ACALL LCD_CMD MOV DPTR.#99H .#PDV ACALL DISPLAY_DATA 41 .#WEL ACALL DISPLAY_DATA MOV A.10.6 LCD_EN EQU P1.
#NAME3 ACALL DISPLAY_DATA ACALL DELAY_1SEC ACALL DELAY_1SEC ACALL DELAY_1SEC MOV A.#90H SETB TR1 BACK: MOV A.#NAME1 ACALL DISPLAY_DATA MOV A.#NAME2 ACALL DISPLAY_DATA MOV A.#BTOK CALL DISPLAY_DATA CALL DELAY_1SEC CALL DELAY_1SEC 42 .#ATCMD ACALL TRANSMIT_DATA ACALL DELAY_1SEC MOV R0.MOV A.#0D4H .TO DISPLAY ANAD NAME ACALL LCD_CMD MOV DPTR.#94H .#0C4H CALL LCD_CMD MOV DPTR.BT_NOTINIT INC R0 MOV A.#0C0H .#50H MOV TH1.#01H ACALL LCD_CMD MOV R0.#20H MOV SCON.#'K'.BT_NOTINIT MOV A.#-3 MOV IE.TO DISPLAY JUNAID NAME ACALL LCD_CMD MOV DPTR.#'O'.@R0 CJNE A.#85H ACALL LCD_CMD MOV DPTR.#42H MOV A.TO DISPLAY MUSHTAQ NAME ACALL LCD_CMD MOV DPTR.@R0 CJNE A.#40H MOV TMOD.
#12 MOV R0.#0C0H ACALL LCD_CMD 43 .#01H ACALL LCD_CMD MOV A.@R0 ACALL LCD_DATAOUT INC R0 DJNZ R7.#D1OFF ACALL DISPLAY_DATA MOV A.#01H CALL LCD_CMD MOV R0.@R0 CALL LCD_DATAOUT INC R0 MOV A.#ATBTSCAN CALL TRANSMIT_DATA CALL DELAY_1SEC MOV A.#40H MOV A.MOV A.#40H MOV A.#42H MOV A.BTADDR_LOOP ACALL DELAY_1SEC ACALL DELAY_1SEC MOV R0.@R0 CALL LCD_DATAOUT ACALL DELAY_1SEC ACALL DELAY_1SEC ACALL DELAY_1SEC ACALL DELAY_1SEC MOV A.#0C3H ACALL LCD_CMD BTADDR_LOOP: MOV A.#ATBT CALL TRANSMIT_DATA ACALL DELAY_1SEC MOV R7.#83H ACALL LCD_CMD MOV DPTR.#0C3H ACALL LCD_CMD MOV R0.#80H ACALL LCD_CMD MOV DPTR.#01H ACALL LCD_CMD MOV A.#83H ACALL LCD_CMD MOV DPTR.#42H MOV A.
#0C0H ACALL LCD_CMD MOV DPTR.A ACALL DELAY_1SEC MOV A.#D1OFF ACALL DISPLAY_DATA SJMP MAIN_LOOP MOV A.#0C4H ACALL LCD_CMD MOV DPTR.#BTNOTOK ACALL DISPLAY_DATA LJMP BACK /*---------------------------------------*/ SWITCHES: JNB SW1.D2_OFF RET /*----------------------------------------*/ D1_ON: MOV A.D1_OFF JNB SW3.#D2OFF ACALL DISPLAY_DATA MAIN_LOOP: ACALL SWITCHES SJMP MAIN_LOOP BT_NOTINIT:MOV A.#80H ACALL LCD_CMD MOV DPTR.D1_ON JNB SW2.#'1' MOV SBUF.#'3' MOV SBUF.MOV DPTR.#D1ON ACALL DISPLAY_DATA SJMP MAIN_LOOP MOV A.D2_ON JNB SW4.#'2' MOV SBUF.A ACALL DELAY_1SEC MOV A.#D2ON ACALL DISPLAY_DATA SJMP MAIN_LOOP 44 D1_OFF: D2_ON: .#80H ACALL LCD_CMD MOV DPTR.A ACALL DELAY_1SEC MOV A.
A INC R0 RETI TX: RETI /*-----------------------------------------*/ /*LCD DISPLAY*/ DISPLAY_LCD: BACK1: CLR A MOVC A.#0CH CALL LCD_CMD MOV A.#30H CALL LCD_CMD MOV A.RX JBC TI.#06H CALL LCD_CMD RET 45 .#38H CALL LCD_CMD MOV A.#'4' MOV SBUF.@A+DPTR JZ EXIT1 CALL LCD_DATAOUT INC DPTR JMP BACK1 EXIT1: RET /*------------------------------------------*/ LCD_INIT: MOV A.#D2OFF ACALL DISPLAY_DATA SJMP MAIN_LOOP /*----------------------------------------*/ /*SERIAL INTERRUPT*/ S_INT: JBC RI.D2_OFF: MOV A.TX RX: MOV A.#0C0H ACALL LCD_CMD MOV DPTR.SBUF MOV @R0.#01H CALL LCD_CMD MOV A.A ACALL DELAY_1SEC MOV A.
B SUBB A.HERE1 DJNZ R1.#100 AGAIN3: DJNZ R5.HERE2 RET /*---------------------------------------*/ /*TO TRANSMIT DATA*/ TRANSMIT_DATA: CLR A MOVC A.AGAIN3 DJNZ R4.A SETB LCD_RS CLR LCD_RW SETB LCD_EN NOP CLR LCD_EN RET LCD_DATAOUT: DELAY: MOV R4.A ACALL DELAY MOV A.AGAIN1 RET /*--------------------------------*/ /*DELAY OF 1 SECOND*/ DELAY_1SEC: MOV R1.#250 HERE1: MOV R3.A JZ EXIT MOV SBUF.#250 HERE: DJNZ R3.#0DH JZ EXIT 46 .#50 AGAIN1: MOV R5.#4 HERE2: MOV R2.@A+DPTR MOV B.LCD_CMD: CALL DELAY MOV LCD_DATA.HERE DJNZ R2.A CLR LCD_RS CLR LCD_RW SETB LCD_EN NOP CLR LCD_EN RET CALL DELAY MOV LCD_DATA.
0H COLL: DB "S.0DH.0H D2OFF: DB "DEVICE2 OFF".0H NAME2:DB "JUNAID".0H PDV: DB "PROJ DEV BY:".0 ATBT: DB "AT+BTINFO?".0H WEL: DB "WELCOME TO".0H END 47 .0H NAME1:DB "MUSHTAQ".0DH.0 D1ON: DB "DEVICE1 ON ".S.0DH.0 BTNOTOK: DB "BT NOT OK".0H NAME3: DB "ANAND".0H D2ON: DB "DEVICE2 ON ".0H D1OFF: DB "DEVICE1 OFF".0H PLACE:DB "NALGONDA".EXIT: MOV A.T.0 ATBTSCAN: DB "AT+BTSCAN".R.B CALL LCD_DATAOUT INC DPTR JMP TRANSMIT_DATA RET /*----------------------------------------*/ /*DISPLAY OF DATA*/ DISPLAY_DATA: CLR A MOVC A.@A+DPTR JZ EXIT2 ACALL LCD_DATAOUT INC DPTR JMP DISPLAY_DATA RET EXIT2: /*-----------------------------------------*/ /*DATA*/ ATCMD: BTOK: DB "AT".I.T".0 DB "BT OK".
TO DISPLAY COLLEGE NAME ACALL LCD_CMD MOV DPTR.#COLL ACALL DISPLAY_DATA MOV A.#0C3H .#00H CALL LCD_INIT MOV A.1 SW2 EQU P1.3 SW4 EQU P1.#PLACE ACALL DISPLAY_DATA ACALL DELAY_1SEC ACALL DELAY_1SEC ACALL DELAY_1SEC MOV A.TO DISPLAY COLLEGE PLACE ACALL LCD_CMD MOV DPTR.#99H .1 ORG 00H LJMP MAIN ORG 0023H LJMP S_INT MAIN: ORG 100H CLR LED1 CLR LED2 MOV P2.TO DISPLAY PROJ DEV BY ACALL LCD_CMD 48 .#01H ACALL LCD_CMD MOV A.TO DISPLAY WELCOME TO ACALL LCD_CMD MOV DPTR.#80H .7 LCD_DATA EQU P0 SW1 EQU P1.0 LED2 EQU P2.6 LCD_EN EQU P1.4 LED1 EQU P2.#WEL ACALL DISPLAY_DATA MOV A.5 LCD_RW EQU P1.PROGRAM FOR BLUETOOTH RECIEVER LCD_RS EQU P1.2 SW3 EQU P1.#84H .
TO DISPLAY JUNAID NAME ACALL LCD_CMD MOV DPTR.MOV DPTR.#85H ACALL LCD_CMD MOV DPTR.#20H MOV SCON.#NAME3 ACALL DISPLAY_DATA ACALL DELAY_1SEC ACALL DELAY_1SEC ACALL DELAY_1SEC MOV A.#40H MOV TMOD.#BTOK CALL DISPLAY_DATA CALL DELAY_1SEC CALL DELAY_1SEC 49 .#'O'.TO DISPLAY MUSHTAQ NAME ACALL LCD_CMD MOV DPTR.#0D4H .#0C0H .#ATCMD ACALL TRANSMIT_DATA ACALL DELAY_1SEC MOV R0.BT_NOTINIT INC R0 MOV A.@R0 CJNE A.BT_NOTINIT MOV A.#NAME2 ACALL DISPLAY_DATA MOV A.@R0 CJNE A.#0C4H CALL LCD_CMD MOV DPTR.#PDV ACALL DISPLAY_DATA MOV A.#50H MOV TH1.#-3 MOV IE.TO DISPLAY ANAD NAME ACALL LCD_CMD MOV DPTR.#'K'.#NAME1 ACALL DISPLAY_DATA MOV A.#90H SETB TR1 BACK: MOV A.#01H ACALL LCD_CMD MOV R0.#42H MOV A.#94H .
MOV A.#DAIL CALL TRANSMIT_DATA CALL DELAY_1SEC MOV A.#01H CALL LCD_CMD MOV R0.#01H ACALL LCD_CMD MOV A.#42H MOV A.#80H ACALL LCD_CMD MOV DPTR.BTADDR_LOOP ACALL DELAY_1SEC ACALL DELAY_1SEC MOV R0.@R0 CALL LCD_DATAOUT ACALL DELAY_1SEC ACALL DELAY_1SEC ACALL DELAY_1SEC ACALL DELAY_1SEC MOV A.#12 MOV R0.#0C3H ACALL LCD_CMD MOV R0.@R0 ACALL LCD_DATAOUT INC R0 DJNZ R7.#ATBT CALL TRANSMIT_DATA ACALL DELAY_1SEC MOV R7.#D1OFF ACALL DISPLAY_DATA MOV A.#42H MOV A.#0C0H 50 .#40H MOV A.#0C3H ACALL LCD_CMD BTADDR_LOOP: MOV A.#40H MOV A.#01H ACALL LCD_CMD MOV DPTR.#83H ACALL LCD_CMD MOV DPTR.@R0 CALL LCD_DATAOUT INC R0 MOV A.
#80H ACALL LCD_CMD MOV DPTR.#D1ON ACALL DISPLAY_DATA RET 51 .#40H ACALL CHECK SJMP MAIN_LOOP BT_NOTINIT: MOV A.NEXT3 CLR LED2 CALL DEVICE2OFF SJMP MAIN_LOOP RET NEXT: NEXT1: NEXT2: NEXT3: /*----------------------------------------*/ DEVICE1ON: ACALL DELAY_1SEC MOV A.NEXT SETB LED1 CALL DEVICE1ON SJMP MAIN_LOOP CJNE A.#D2OFF ACALL DISPLAY_DATA MAIN_LOOP: MOV R0.NEXT1 CLR LED1 CALL DEVICE1OFF SJMP MAIN_LOOP CJNE A.ACALL LCD_CMD MOV DPTR.#BTNOTOK ACALL DISPLAY_DATA LJMP BACK /*---------------------------------------*/ CHECK: CJNE A.#'1'.#'3'.#'4'.#0C4H ACALL LCD_CMD MOV DPTR.NEXT2 SETB LED2 CALL DEVICE2ON SJMP MAIN_LOOP CJNE A.#'2'.
#D1OFF ACALL DISPLAY_DATA RET ACALL DELAY_1SEC MOV A.#80H ACALL LCD_CMD MOV DPTR.DEVICE1OFF: ACALL DELAY_1SEC MOV A.SBUF MOV @R0.TX MOV A.RX JBC TI.#0C0H ACALL LCD_CMD MOV DPTR.#D2OFF ACALL DISPLAY_DATA RET DEVICE2ON: DEVICE2OFF: /*----------------------------------------*/ /*SERIAL INTERRUPT*/ S_INT: RX: JBC RI.A INC R0 RETI RETI TX: /*-----------------------------------------*/ /*LCD DISPLAY*/ DISPLAY_LCD: BACK1: CLR A MOVC A.@A+DPTR JZ EXIT1 CALL LCD_DATAOUT INC DPTR JMP BACK1 EXIT1: RET /*------------------------------------------*/ 52 .#0C0H ACALL LCD_CMD MOV DPTR.#D2ON ACALL DISPLAY_DATA RET ACALL DELAY_1SEC MOV A.
#0CH CALL LCD_CMD MOV A.#06H CALL LCD_CMD RET LCD_CMD: CALL DELAY MOV LCD_DATA.#01H CALL LCD_CMD MOV A.AGAIN1 RET /*--------------------------------*/ /*DELAY OF 1 SECOND*/ DELAY_1SEC: MOV R1.HERE DJNZ R2.#50 MOV R5.#250 HERE: DJNZ R3.#30H CALL LCD_CMD MOV A.#100 DJNZ R5.A CLR LCD_RS CLR LCD_RW SETB LCD_EN NOP CLR LCD_EN RET LCD_DATAOUT: CALL DELAY MOV LCD_DATA.AGAIN3 DJNZ R4.HERE1 DJNZ R1.HERE2 RET 53 .#250 HERE1: MOV R3.#4 HERE2: MOV R2.A SETB LCD_RS CLR LCD_RW SETB LCD_EN NOP CLR LCD_EN RET DELAY: AGAIN1: AGAIN3: MOV R4.LCD_INIT: MOV A.#38H CALL LCD_CMD MOV A.
B CALL LCD_DATAOUT INC DPTR JMP TRANSMIT_DATA RET EXIT: /*----------------------------------------*/ /*DISPLAY OF DATA*/ DISPLAY_DATA: CLR A MOVC A.A JZ EXIT MOV SBUF.0 DB "BT OK".0 D1ON: DB "DEVICE1 ON "./*---------------------------------------*/ /*TO TRANSMIT DATA*/ TRANSMIT_DATA: CLR A MOVC A.A ACALL DELAY MOV A.0H D1OFF: DB "DEVICE1 OFF".B SUBB A.#0DH JZ EXIT MOV A.@A+DPTR JZ EXIT2 ACALL LCD_DATAOUT INC DPTR JMP DISPLAY_DATA RET EXIT2: /*-----------------------------------------*/ /*DATA*/ ATCMD: BTOK: DB "AT".@A+DPTR MOV B.0H 54 .0 ATBT: DB "AT+BTINFO?".".0H D2OFF: DB "DEVICE2 OFF".0 DAIL: DB "ATD00019505FF5D.0H D2ON: DB "DEVICE2 ON ".0 BTNOTOK: DB "BT NOT OK".0DH.0DH.0DH.
0H PDV: DB "PROJ DEV BY:".0H COLL: DB "S.0H PLACE:DB "NALGONDA".S.R.I.0H END 55 .0H NAME3: DB "ANAND".0H NAME2:DB "JUNAID".WEL: DB "WELCOME TO".T.T".0H NAME1:DB "MUSHTAQ".
Future Scope Bluetooth is also itself getting better. All the while they are keeping it backward compatible with the current version.11. significantly decrease the interference with other technologies. If the technology itself continues to go unchallenged in the market. The Bluetooth SIG (Special Interest Group) is always working on a new version of specifications. and also correct most of the connection setup issues. They are currently on version 1. there will certainly be a future for Bluetooth.1. 56 . Also there is a group called Radio2 that is working on the problems Bluetooth has with bandwidth. If the Radio2 group can significantly increase the bandwidth. based on the evidence from this research that the Bluetooth technology is definitely a technology with valuable uses in today’s world. CONCLUSION In conclusion. Bluetooth will be able to compete well with the performance of new emerging technologies. it will grab a large share of the wireless device market. With the backing of all the companies that have put money into researching and developing Bluetooth products. and connection setup issues. interference. it will be a extremely difficult obstacle for any emerging technology to overcome. If this can be done. even though it possesses its drawbacks.
philips. Websites • • • www.com www. BIBLIOGRAPHY References • The 8051 Microcontroller Architecture. • Bluetooth – Connect without cables by Jennifer Bray and Charles F Sturman.12.projects. Programming & Applications by Kenneth J.wikipedia.org www.Ayala. • 8051 Microcontroller and Embedded systems using assembly & C by Muhammad Ali Mazidi.com 57 .
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue listening from where you left off, or restart the preview.