DIGITAL FUEL METER

74
Table of Contents CHAPTER 1.................................................... 2 INTRODUCTION................................................2 1.1 PROJECT BACKGROUD....................................2 1.2 PROBLEM STATEMENT....................................4 1.3 OBJECTIVES...........................................5 1.4 SCOPE................................................ 6 CHAPTER 2.................................................... 7 LITERATURE REVIEW...........................................7 2.1 WHY USE PIC16F877A...................................7 2.2 WHY USE ULTRASONIC SENSOR HC - SR04..................8 2.3 WHY USE LCD-DS-LCD-162A..............................9 CHAPTER 3................................................... 10 METHODOLOGY................................................10 3.1 WORK PROGRESS FLOW..................................10 3.2 METHODS (PROGRAM USED)..............................11 3.3 HARDWARE DEVELOPMENT................................16 3.4 SOFTWARE DEVELOPMENT................................21 CHAPTER 4................................................... 29 RESULT AND ANALYSIS:.......................................29 CHAPTER 5................................................... 35 COST EVALUATION…………………………………………………………………….35 5.1 BILLS OF MATERIALS AND COMPONENTS……………………………….35 5.2 OVERALL PROTOTYPE PRICE……………………………………………….36 CHAPTER 6………………………………………………………………………………….37 CONCLUSION.................................................37 6.1 RECOMMENDATION....................................... 38 2

description

A system using PIC16F877A and assembly language

Transcript of DIGITAL FUEL METER

Page 1: DIGITAL FUEL METER

Table of Contents

CHAPTER 1...............................................................................................................................2

INTRODUCTION..................................................................................................................2

1.1 PROJECT BACKGROUD......................................................................................2

1.2 PROBLEM STATEMENT......................................................................................4

1.3 OBJECTIVES..........................................................................................................5

1.4 SCOPE.....................................................................................................................6

CHAPTER 2...............................................................................................................................7

LITERATURE REVIEW.......................................................................................................7

2.1 WHY USE PIC16F877A.........................................................................................7

2.2 WHY USE ULTRASONIC SENSOR HC - SR04..................................................8

2.3 WHY USE LCD-DS-LCD-162A............................................................................9

CHAPTER 3.............................................................................................................................10

METHODOLOGY...............................................................................................................10

3.1 WORK PROGRESS FLOW..................................................................................10

3.2 METHODS (PROGRAM USED).........................................................................11

3.3 HARDWARE DEVELOPMENT..........................................................................16

3.4 SOFTWARE DEVELOPMENT...........................................................................21

CHAPTER 4.............................................................................................................................29

RESULT AND ANALYSIS:...............................................................................................29

CHAPTER 535 COST EVALUATION…………………………………………………………………….355.1..................BILLS OF MATERIALS AND COMPONENTS……………………………….35

5.2 OVERALL PROTOTYPE PRICE……………………………………………….36

CHAPTER 6………………………………………………………………………………….37

CONCLUSION....................................................................................................................37

6.1 RECOMMENDATION..............................................................................................38

REFERENCES.........................................................................................................................40

APPENDICES..........................................................................................................................41

2

Page 2: DIGITAL FUEL METER

CHAPTER 1

INTRODUCTION

1.1 PROJECT BACKGROUD

For this project, ‘Digital Car's Fuel Detector’ has been picked as the main application

regarding the ultrasonic sensors. This is due to the aspects that the technology can be used for

measuring wind speed and direction (anemometer), tank or channel level, and speed through

air or water. This ultrasonic criterion perfectly fixes the need of sensor to detect the fuels

level in the car tank. When measuring the tank or channel level, the sensor measures the

distance to the surface of the fluid.

Ultrasonic sensors work on a principle which evaluates attributes of a target by

interpreting the echoes from radio or sound waves respectively. Ultrasonic sensors functioned

particularly similar to radar or sonar. Besides that, it is also known as transceiver where they

both transmit and receive signal. Ultrasonic sensors generate high frequency sound waves

and evaluate the echo which is received back by the sensor. Sensors calculate the time

interval between sending the signal and receiving the echo to determine the distance to an

object. The illustration on how the ultrasonic sensor works based on its wave propagated is

shown in Figure 1 and Figure 2. When the wave is propagated back the time taken is recorded

and produced by the ultrasonic to be inserted in the calculation below to obtain the exact

distance travelled by the wave.

Distance ¿object=T × speed of sound2

T = time between when an ultrasonic wave is emitted and when it is received Division by 2 is

because the sound wave has to travel to the object and back.

3

Page 3: DIGITAL FUEL METER

Figure 1: wave is transmitted and reflected back

Figure 2 : the distance is determined based on time elapsed

This principle is being used to detect the indicator in the container and display back the value

of the remaining fuel in the tank. This application is suitable with the project as the sensor is

also propagated its wave and will always remind the user about the fuel level in the tank.

4

Page 4: DIGITAL FUEL METER

1.2 PROBLEM STATEMENT

This project acts as an effort to overcome the running out of the fuel in the vehicles’

fuel tanks. ‘Digital Car's Fuel Detector’ is invented to detect the fuel level in the car tank as

the input and the percentage of the tank from its full capacity will be displayed on the LCD

screen. This eventually should ease the user to estimate the fuel that they need to have for

their journey. At the same time this type of product will save the fuel from being wasted and

in another way consume the cost of the user itself. As for now it may seem useless but this

product is somehow will benefits the user in the future as the value of fuel is unstable and that

will affect the amount that we used every day as it will not be the same as before.

5

Page 5: DIGITAL FUEL METER

1.3 OBJECTIVES

1. To design a digital fuel detector for cars which is assembly based program using PIC.

2. To implement the function of ultrasonic sensor to detect the level of the fluid in the

tank.

3. To develop a digital fuel detector that is able to show car’s fuel percentage on LCD

screen as the output.

6

Page 6: DIGITAL FUEL METER

1.4 SCOPE

The scope of the project has been narrowed to specific functions and capabilities. The

proposed title for the project capped around few limitations. The project is based on

Programmable Integrated Circuit PIC 16F877A where LCD screen and ultrasonic sensor will

be equipped together. The chosen PIC is used since the course for “Microprocessor and

Microcontroller” only covers PIC16 areas. Besides that, PIC16 is a widely used

microcontroller and its instruction set, tutorials and examples are easy available especially on

the internet.

This fuel tanks detector is suitable to be applied on anything that used a covered top

container or oblique material tank where the quantity or volume inside it cannot be seen

through from the outside. For this project, a fuel tank such as vehicles is used as an

inspiration to this idea, where the detector will display how many percentage of the material

inside it has being used. Therefore, the customer scope of this project mainly focusing on

people with vehicles such as motors, cars, lorries and others.

An LCD display which is one of the products of Cytron Technologies model DS-

LCD-162A will be used as a display output device. The LCD display also is widely used in

electronic projects and easily available at any electronic stores. The sensor that will be used

are limited to Ultrasonic sensor which also a Cytron Technologies product model HC-SR04.

These are the sensor that will be used in the project to sense the fuel’s level in a container.

Some of applications can be used for light or heavy usage. Robust Digital Fuel Level

is Sensor is an example which is suitable for standard and heavy application. The project that

will be built are more to standard use since the system are expected will be running with low

5V DC power supply. At the end of the project, the location involved for testing the project

only in Universiti Tun Hussein Onn Malaysia (UTHM) Batu Pahat, Johor and nearby area.

7

Page 7: DIGITAL FUEL METER

CHAPTER 2

LITERATURE REVIEW

2.1 WHY USE PIC16F877A

For years, ultrasonic sensors have been used in a wide range of applications including

fish finders, parking sensors in cars and burglar alarms. There are some others

ultrasonic application of ultrasonic sensor that can benefits the mankind. These are

some of the important review regarding of the Digital Car’s Fuel Detector.

Figure 3 : Microcontroller of PIC16F877A

A microcontroller is a compact microcomputer designed to govern the operation of

embedded systems in motor vehicles, robots, office machines, complex medical

devices, mobile radio transceivers, vending machines, home appliances, and various

other devices. A typical microcontroller includes a processor, memory, and

peripherals. As for this project microcontroller of PIC16F877A is used. This PIC acts

as the brain of this project as it will conduct what particular components action during

the particular time.

8

Page 8: DIGITAL FUEL METER

2.2 WHY USE ULTRASONIC SENSOR HC - SR04.

Figure 4 : Ultrasonic sensor of HC - SR04.

Ultrasonic sensor comes from two different words, which are ultrasonic (ultrasound)

and sensor. Ultrasound is an acoustic wave with a very high frequency, beyond

human hearing. Since the audible frequency range is said to be between 20Hz and 20

kHz, ultrasound generally means acoustic waves above 20 kHz. Bats, with their echo-

location (biological ultrasonic radar), can hear sounds up to 200 kHz, way above the

capabilities of the human ear. Whereas sensor can be define as a device that detects

and responds to some type of input from the physical environment. The specific input

could be light, heat, motion, moisture, pressure, or any one of a great number of other

environmental phenomena.

Ultrasonic ranging module HC - SR04 is used as the input in this project as it

provides 2cm - 400cm non-contact measurement function, the ranging accuracy can

reach to 3mm. The modules includes ultrasonic transmitters, receiver and control

circuit.

9

Page 9: DIGITAL FUEL METER

2.3 WHY USE LCD-DS-LCD-162A.

Figure 5 : Liquid Crystal Display of LCD-DS-LCD-162A.

LCD (liquid crystal display) is the technology used for displays in notebook and other

smaller computers. LCD also comes as a separate component which is portable and

suitable to be used in all electrical projects that needs a display as the output. A

specific LCD is picked to display the output for this project, which is LCD-DS-LCD-

162A.

10

Page 10: DIGITAL FUEL METER

CHAPTER 3

METHODOLOGY

3.1 WORK PROGRESS FLOW

11

Page 11: DIGITAL FUEL METER

Figure 6 : The progress flowchart

3.2 METHODS (PROGRAM USED)

Throughout the process of making the project prototype, a number of methods are

used to make the project prototype complete successfully. In a group with four members,

individual skills such as circuit designing, soldering and prototype modelling on each group

members are shown during the process of making the prototype. As for technical part, the

main circuit and power supply circuit are designed by using Proteus 7.8 software.

Applications such as ISIS Professional 7 and ARES Professional 7 are provided by Proteus

12

Page 12: DIGITAL FUEL METER

7.8. ISIS Professional 7 is used for circuit schematic designing and analyzing purposes while

ARES Professional 7 is used for designing printed circuit board layout. The body of the

prototype are made from scratch by using unused polystyrene blocks, plastic board and

unused bottle flask. As the conclusion the software that is being used to accomplished this

project are:

1. Proteus Professional 7.8

2. ARES Professional 7

3. ISIS Professional 7

4. MPLAB IDE

13

Page 13: DIGITAL FUEL METER

3.2.1 Proteus Professional 7.8

Figure 3.2.1: Proteus 7.8 software loading screen

Proteus Professional 7.8 is an application framework that enables users to edit current

schematic or design files also with creating a new one between schematic and PCB. The

Proteus Professional 7.8 is casually intended for prospective customers who wish to evaluate

professional level products. It differs from Proteus Lite or other kind of free circuit schematic

designer where it does not allow users to save, print or design their own microcontroller

based, electronics and electric circuit. Proteus Professional 7.8 does include all features

offered by the other professional system including net list based PCB design with auto-

placement, auto-routing and graph based simulation. The Proteus Design Suite combines

schematic capture, SPICE circuit simulation, and PCB design to make a complete electronics

design system. Throughout of project process, two of Proteus Professional 7.8 applications

used are ARES Professional 7 and ISIS Professional 7.

14

Page 14: DIGITAL FUEL METER

3.2.2 ARES Professional 7:

Figure 3.2.2: ARES Professional 7 application icon

ARES Professional 7[1] is a high performance net list based PCB design packages

where is it perfectly complements with their ISIS schematic capture software. Any schematic

circuit designed can be easily converted into PCB layout. Auto router and components auto

placer tools are provided for easy components placing and copper routing. Other than that,

options such as copper route size and wire grid size can be adjusted according to user’s

choice.

3.2.3 ISIS Professional 7:

Figure 3.2.3: ISIS Professional application icon

ISIS [2] one of the main part in Proteus system, and is far more advance than just

another schematics package. It combines a powerful design environment with the ability to

define most aspects of the drawing appearance. Flexible schematic designing with various

lists of components such as resistors, sensors, LCDs, capacitors and many more are granted

by ISIS. The flexibility of circuit designing comes when components and wires can be easily

dragged and dropped onto the schematic workspace. Assembly program are uploaded into

this application for circuit simulation.

15

Page 15: DIGITAL FUEL METER

3.2.4 MPLAB IDE

MPLAB IDE software are produced by Microchip Company and it is used to write

assembly language program. Since the project program are written is assembly language, any

process related with assembly programming such as writing assembly codes, program

executing and debugging are done by using MPLAB IDE software. Microchip has a large

suite of software and hardware development tools integrated within one software package.

MPLAB IDE is a free, integrated toolset for the development of embedded applications on

Microchip's PIC and dsPIC microcontrollers. It is called an Integrated Development

Environment (IDE) as it provides a single integrated environment to develop code for

embedded microcontrollers.

Figure 3.2.4.1: Microchip MPLAB IDE log

MPLAB IDE are easy to be used and a host of free software components are included

for fast application development and debugging. MPLAB IDE are served as single, unified

graphical user interface for additional Microchip and third party software and hardware

development tools. Assembler, debugger, editor, project manager and execution engines are

the main components of MPLAB IDE.

16

Page 16: DIGITAL FUEL METER

Figure3.2.4.2: Some of MPLAB IDE components

The project manager provides integration and communication between the IDE and

the language tools. The editor is a full-featured programmer's text editor that also serves as a

window into the debugger. The assembler can be used stand-alone to assemble a single file,

or can be used with the linker to build a project from separate source files, libraries and

recompiled objects. The linker is responsible for positioning the compiled code into memory

areas of the target microcontroller. The Microchip debugger allows breakpoints, single

stepping, watch windows and all the features of a modern debugger for the MPLAB IDE. It

works in conjunction with the editor to reference information from the target being debugged

back to the source code. There are software simulators in MPLAB IDE for all PICmicro

MCU and dsPIC DSC devices. These simulators use the PC to simulate the instructions and

some peripheral functions of the PICmicro MCU and dsPIC DSC devices. Optional in-circuit

emulators and in-circuit debuggers are also available to test code as it runs in the applications

hardware [3].

17

Page 17: DIGITAL FUEL METER

3.3 HARDWARE DEVELOPMENT

POWER SOURCE

To make a controller function, a power source of 5V is needed to power up the PIC.

Therefore, a 5VDC power supply is built up using the current from the power adapter. Power

adapter is chosen to replace the transformer function. This is because of the safety reason and

materials expenditures. When an adapter is used as a power source to generate 5V power

supply, the probability of the circuit to damage or exploded is decreases as power adapter is

more reliable than the transformer that is known as its complication to stable the

performance. Beside that the expenditures that need to be calculated when a transformer

exploded is much higher whereas an adapter seldom undergone such problem. Figure 9 is the

power source circuit that has been tested and worked properly.

Figure 7 : Schematic diagram of power source

18

Page 18: DIGITAL FUEL METER

Figure 8 : Power source circuit board

Figure 9 : The circuit tested

19

Page 19: DIGITAL FUEL METER

LCD

In this project, the most commonly used character based LCD, which is based on

Hitachi’s HD44780 controller, has been used. The HD44780 standard requires 3 control lines

as well as 8 I/O lines for the data bus for the 8-bit LCD interface. For an 8-bit data bus, it will

require a total of 11 data lines (3 control lines plus the 8 lines for the data bus). The data bus

consists of 8 lines. In the case of an 8-bit data bus, the lines are referred to as

DB0, DB1, DB2, DB3, DB4, DB5, DB6, and DB7. The three control lines are referred to

as EN, RS, and RW.

The EN line is called “Enable.” This control line is used to instruct the LCD that the

data is sending to it. Initially, this line is low (0) and then set the other two control lines

and/or put data on the data bus. When the other lines are completely ready, bring EN high (1)

and wait for the minimum amount of time required by the LCD datasheet, and end by

bringing it low (0) again.

Next, the RS line is the “Register Select” line. When RS is low (0), the data is to be

treated as a command or special instruction, such as clear screen and position cursor. When

RS is high (1), the data being sent is text data which should be displayed on the screen. For

example, to display the letter “S” on the screen the RS line has been set high. Lastly,

the RW line is the “Read/Write” control line. When RW is low (0), the information on the

data bus is being written to the LCD. When RW is high (1), the program is effectively or

reading the LCD.

20

Page 20: DIGITAL FUEL METER

Pin No. Name Description

1 Vss Power Supply (GND)

2 Vcc Power Supply (+5V)

3 Vee Contrast Adjust

4 RS 0 = Instruction Input

1 = Data Input

5 R/W 0 = Write to LCD Module

1 = Read from LCD Module

6 EN Enable Signal

7 DB0 Data bus line 0 (LSB)

8 DB1 Data bus line 1

9 DB2 Data bus line 2

10 DB3 Data bus line 3

11 DB4 Data bus line 4

12 DB5 Data bus line 5

13 DB6 Data bus line 6

14 DB7 Data bus line 7 (MSB)

Table 1: The character of the LCD pins

Figure 10: The LCD circuit connection

21

Page 21: DIGITAL FUEL METER

ULTRASONIC SENSOR

The sensor has two opening on its front; one opening emits ultrasonic waves, while the other

receives them. The ultrasonic Sensor measures the distance by timing how long it takes for an

ultrasonic wave sent out by the emitter to bounce off an object and come back to the receiver.

The speed of the sound is approximately 341m/s in air. The sensor uses this information,

along with the time difference between sending and receiving the sound pulse, to determine

distance to an object using this equation:

Figure 11 : HC-SR04 Ultrasonic sensor on the breadboard

Distance ¿object=T × speed of sound2

T = time between when an ultrasonic wave is emitted and when it is received Division by 2 is

because the sound wave has to travel to the object and back.

22

Page 22: DIGITAL FUEL METER

3.4 SOFTWARE DEVELOPMENT

The Figure 12 shows the overall view on how the program should work. Whereas the Figure2

until Figure19 is how the LCD program is being generated in the PIC itself. Lastly, the

Figure20 and Figure21 describe the flow of the ultrasonic sensor in the program.

Figure 12 : Program flowchart

23

Page 23: DIGITAL FUEL METER

LCD INTERFACE:

24

Figure 13: Flow chart of the assembly code for the LCD interface (main)

Page 24: DIGITAL FUEL METER

Figure 14 : Flow chart of the assembly code for the LCD interface (initialisation)

25

Page 25: DIGITAL FUEL METER

Figure 15 : Flow chart of the assembly code for the LCD interface (M1 subroutine)

Figure 16 : Flow chart of the assembly code for the LCD interface (LINEA2 subroutine)

26

Page 26: DIGITAL FUEL METER

Figure 17 : Flow chart of the assembly code for the LCD interface (M2 subroutine)

Figure 18 : Flowchart of the assembly code for the LCD interface (continue)

27

Page 27: DIGITAL FUEL METER

Figure 19 : Flow chart of the assembly code for the LCD interface (continue)

28

Page 28: DIGITAL FUEL METER

ULTRASONIC SENSOR INTERFACE:

Figure 20 : Ultrasonic interface flowchart_1

29

Page 29: DIGITAL FUEL METER

Figure 21 : Ultrasonic flowchart_2

30

Page 30: DIGITAL FUEL METER

CHAPTER 4

RESULT AND ANALYSIS:

Before the controller part is being developed, the power source that needed to power up the

PIC is being built and tested. The ideal voltage that needs to be produced by the power source

circuit in order to operate the PIC is 5V. Analysing of circuits is done by using 2 methods

which are by using ISIS Professional 7 application and testing with multimeter. Before PCB

being printed out, the designed circuit are tested on breadboard for functionality test. Both

power supply circuit and main application circuit are tested by using this method. Voltage

flow in the circuit is measured by using ISIS and multimeter. Figure 22 is the result when the

power source circuit is being testes\d, the value of the output is exactly 5V.

Figure 22: Power supply output voltage analysis at 5V

31

Page 31: DIGITAL FUEL METER

In order to retrieve the result, the PIC16F877A microcontroller at the schematic circuit in the

Proteus software has been edited by selecting the .HEX program file of the assembly codes

that has been built previously. After the schematic circuit has been simulated with the

assembly codes generated in the PIC16F877A, the output display has shown “SALAM

DR.SHAMIAN” strings, based on Figure 23.

Figure 23: The window view for editing the component of PIC16F877A

Figure 24: The output display on the schematic circuit

Finally, the assembly code has been downloaded into the PIC16F877A and the output display

has been produced as shown in Figure 24. This is the step where the LCD is has been

successfully configured and tested by a simple program without the interference of the

ultrasonic sensor.

32

Page 32: DIGITAL FUEL METER

Figure 25: The output display on LCD screen

The interfacing of HC-SR04 Ultrasonic sensor with PIC16F877A has successfully displaying

measurement of an object. The measurement displayed on the LCD is a little bit different

from the measurement obtained by using ruler.

Figure 26: Object at a distance of 18 cm from the HC-SR04 Ultrasonic sensor.

33

Page 33: DIGITAL FUEL METER

Figure 27: Top view of an object at a distance of 18 cm from the HC-SR04 Ultrasonic sensor

Figure 28: Measurement LCD-display

Measurement displayed on the LCD when an object is at 18.5 cm of distance away from the

HC-SR04 Ultrasonic sensor as shown in Figure 27. The distance displayed is changed

sometimes to 18.0 cm, 19.0 cm and more when a little disturbance applied on the measured

object. Uncertainty of +- 5 cm of measurement displayed are obtained when the object being

measured. Lastly, the circuit is being assembly on the prototype that has been build up to

show the function of the project itself. The ultrasonic sensor will be placed at the bottom of

the water container’s cover like shown in Figure 28. The cover will be placed on the

prototype later on. From Figure 29 the connection from the breadboard to the ultrasonic

sensor can be seen. As the prototype is placed and functioning the result of the output as in

Figure 30 will be displayed on the LCD.

34

Page 34: DIGITAL FUEL METER

Figure 29: Ultrasonic sensor

Figure 30: Circuit connection

35

Page 35: DIGITAL FUEL METER

Figure 31: LCD Display

36

Page 36: DIGITAL FUEL METER

CHAPTER 5

COST EVALUATION

5.1 BILLS OF MATERIALS AND COMPONENTS

Power Supply

No. Items Quantity Price for Each Unit (RM) Total Price (RM)1. IC 7805 Voltage Regulator 1 2.00 2.002. Ceramic Capacitor 100 µF 2 0.65 1.303. Ceramic Capacitor 0.01 µF 2 0.15 0.304. Resistor 220 Ω 1 0.05 0.055. 1N4007 1 0.20 0.206. Light Emitting Diode (LED) 1 0.40 0.407. 2 Pin Terminal Block 2 1.20 2.408. DC Jack 1 2.00 2.009. DC Power Adapter (Variable) 1 18.00 18.0010. Printed Circuit Board 1 * *

Overall Price (RM) 26.65*Components/materials are obtained from laboratory

Table 2: Bills of materials and components for 5V power supply circuit

Main Circuit

No. Items Quantity Price of Each Unit (RM) Total Price (RM)1. 16X2A LCD 1 18.00 18.002. Potentiometer 5k Ω 1 1.20 1.203. PIC16F877A 1 17.00 17.004. Jumpers 1 12.00 12.005. 4 MHz Crystal Oscillator 1 2.00 2.006. 22 pF Ceramic Capacitor 2 0.15 0.307. 40-Pin IC Socket 1 0.70 0.708. Straight 2mm Female Header 1x40 Ways 2 1.20 2.409. HC-SR04 Ultrasonic Sensor 1 39.00 39.0010. Printed Circuit Board 1 * *

Overall Price (RM) 92.60*Components/materials are obtained from laboratory

Table 3: Bills of materials and components for main circuit

37

Page 37: DIGITAL FUEL METER

Prototype

No. Items Quantity Price of Each Unit (RM) Total Price (RM)1. Plastic Board 1 4.00 4.002. Polystyrene Blocks 1 * *3. Water Flask 1 4.00 4.004. Small Screws 8 0.05 0.40

Overall Price (RM) 8.40*Components/materials are obtained unused items

Table 4: Bills of materials and components for prototype

.

5.2 OVERALL PROTOTYPE PRICE

The overall price for the whole prototype is the sum total price for power supply circuit, main

circuit and prototype. The calculation of the product’s price are shown in the calculation

below:

A=Overall Price for Power Supply CircuitB=Overall price for MainCircuit

C=Overall price for Prototype

Produc t' s Price=A+B+CProduc t' s Price=RM 26.65+RM 92.60+RM 8.40

Produc t' s Price=RM 127.65

38

Page 38: DIGITAL FUEL METER

CHAPTER 6

CONCLUSION

As a conclusion, a prototype of ‘Digital fuel tank detector’ is successfully developed. This

prototype used an ultrasonic sensor as it input and the output will be displayed at LCD

display. Throughout this project, the LCD display is managed to display the output where the

percentage of the fuel tank is being calculated and the ultrasonic sensor is able to detect the

obstacle that is in it range. Most important is that, the PIC is successfully configured and all

the error is fixed in order to achieve all the objectives and to come out with a fully working

prototype.

39

Page 39: DIGITAL FUEL METER

6.1 RECOMMENDATION

Although this project has been successfully build with its application. There is still space to

improve this project. This recommendation is made up based on the suitability for this

product to be marketed in the future. This idea can be manipulated to produce a product that

can be commercialized in order to improve the lifestyle of human being in this modern-

technologies world. These are some of the recommendation that is suggested for further

improvement:

1. Modified the application.

Besides fuel tank, this project can be modified to use in other environment, such as a

detector to alert the user if the water tank is almost run out of water. This is quite

useful as the main water tank is at the rooftop. It is difficult if the user need to check

the water tank regularly especially to some places than undergoes water restriction.

This will ease the user to be in a standby mode if the water ran out.

2. Use M-Series Fuel Level Sensors from Gill Sensors.

Figure 32: M-Series fuel level sensor

M-Series fuel level sensors are custom designed using capacitive technology; the

sensors have no moving parts and are extremely accurate. They can be designed to fit

40

Page 40: DIGITAL FUEL METER

within the tightest of space envelopes and withstand the harshest of environments.

This type of sensors has a few additional characteristic make it the best sensor to

replace the ultrasonic sensor for the application regarding fuel.

These sensors are compatible with all petroleum/gasoline fuels and are offered with

totally configurable outputs and onboard multiple fuel calibration functions. The

additional characteristics are:

i. Fully immersible

ii. Custom designed to specific requirements

iii. Super –lightweight versions available

41

Page 41: DIGITAL FUEL METER

REFERENCES

[1] http://www.labcenter.com/products/pcb/pcb_intro.cfm. Retrieved on 19th May 2014.

[2] http://www.labcenter.com/products/pcb/schematic_intro.cfm. Retrieved on 19th May

2014.

[3] http://www.element14.com/community/docs/DOC-39318/l/microchip-mplab-

integrated-development-environment-ide-overview. 11th November 2011 by Ankur

Tomar. Retrieved on 18th May 2014.

[4] http://tutorial.cytron.com.my/2012/02/04/lcd-interfacing-with-pic-microcontrollers-

part-1/ . Retrieved on 20/3/2014.

[5] http://tutorial.cytron.com.my/2012/03/14/lcd-interfacing-with-pic-microcontrollers-

part-2/ .Retrieved on 20/3/ 2014.

[6] http://www.pyroelectro.com/tutorials/pic_lcd/software.html (retrieved on 21/3/2014).

[7] http://www.datasheetarchive.com/lcd%20162A-datasheet.html (retrieved on

21/3/2014).

[8] http://www.circuitstoday.com/interfacing-16x2-lcd-with-8051 (retrieved on

21/3/2014).

[9] Azosensor, 200-2014, Retrieved at http://www.azosensors.com/equipment-

details.aspx?EquipID=271

[10] Sapcon Instrument, FLY ASH Level Detection in ESP Hoppers, 2013.

Retrieved at http://www.sapconinstruments.com/articles.

[11] Datasheet, Retrieved at http://www.datasheetarchive.com/lcd%20162A-

datasheet.html

[12] Interfacing LCD, Retrieved at http://www.circuitstoday.com/interfacing-16x2-

lcd-with-8051

42

Page 42: DIGITAL FUEL METER

APPENDICES

LCD INTERFACE

;########################################################################

LIST P=16F877A

INCLUDE "P16F877A.INC"

ERRORLEVEL 0,-302

__CONFIG 0X3F32

;########################################################################

CBLOCK 0X20

LCOUNT

HCOUNT

Timer1

ENDC

;########################################################################

ORG 00h ; Started at address 0

GOTO MAIN ; Jumps to MAIN

ORG 5

;########################################################################

M1:

MOVLW 'S'

MOVWF PORTD

CALL ENVIA

MOVLW 'A'

MOVWF PORTD

CALL ENVIA

MOVLW 'L'

43

Page 43: DIGITAL FUEL METER

MOVWF PORTD

CALL ENVIA

MOVLW 'A'

MOVWF PORTD

CALL ENVIA

MOVLW 'M'

MOVWF PORTD

CALL ENVIA

RETURN

M2:

MOVLW 'D'

MOVWF PORTD

CALL ENVIA

MOVLW 'R'

MOVWF PORTD

CALL ENVIA

MOVLW '.'

MOVWF PORTD

CALL ENVIA

MOVLW 'S'

MOVWF PORTD

CALL ENVIA

MOVLW 'H'

MOVWF PORTD

CALL ENVIA

MOVLW 'A'

MOVWF PORTD

CALL ENVIA

44

Page 44: DIGITAL FUEL METER

MOVLW 'M'

MOVWF PORTD

CALL ENVIA

MOVLW 'I'

MOVWF PORTD

CALL ENVIA

MOVLW 'A'

MOVWF PORTD

CALL ENVIA

MOVLW 'N'

MOVWF PORTD

CALL ENVIA

RETURN

Onems

MOVLW D'249'

MOVWF Timer1

Loop1

DECFSZ Timer1,F

GOTO Loop1

RETURN

INITIAL_LCD:

BCF PORTB,6 ; Set RS=0

MOVLW 0x01 ; Set D0=1, the command control code is '00000001'

MOVWF PORTD ; Therefore it clears screen

CALL COMMAND ; Jumps to COMMAND

MOVLW 0x0C ;

45

Page 45: DIGITAL FUEL METER

MOVWF PORTD

CALL COMMAND ;

MOVLW 0x3C ;

MOVWF PORTD

CALL COMMAND ;

BSF PORTB,6 ;

RETURN

COMMAND:

BSF PORTB,7 ; Enable pin is set

CALL DELAY ; Jumps to DELAY

CALL DELAY ; Jumps to DELAY

BCF PORTB,7 ; Enable pin is clear

CALL DELAY ; Jumps to DELAY

RETURN

ENVIA:

BSF PORTB,6 ;

CALL COMMAND ;

RETURN

LINEA2:

BCF PORTB, 6 ; RS=0

MOVLW 0xC0 ;

MOVWF PORTD

CALL COMMAND ; Jumps to COMANDO

RETURN

DELAY:

46

Page 46: DIGITAL FUEL METER

MOVLW 0xFF

MOVWF LCOUNT

MOVLW 0xFF

MOVWF HCOUNT

DELAY_LOOP:

DECFSZ LCOUNT,1

GOTO DELAY_LOOP

DECFSZ HCOUNT,1

GOTO DELAY_LOOP

RETURN

MAIN:

BSF STATUS,RP0

BCF STATUS,RP1

CLRF TRISB

CLRF TRISD

BCF STATUS,RP0

CLRF PORTB

CLRF PORTD

START_LCD:

CALL INITIAL_LCD

CALL M1

CALL LINEA2

CALL M2

NOP

GOTO $-1

END

47

Page 47: DIGITAL FUEL METER

THE FULL PROTOTYPE SOURCE CODE

LIST P=16f877a

INCLUDE "P16F877A.INC"

ERRORLEVEL 0,-302

__CONFIG 0X3F32

;****************************************************************

CBLOCK 0X20 ; Start of general purpose registers

LCOUNT

HCOUNT

TIME1

TIME2

ONE

TEN

HUNDRED

TIMES

VALUE

DEC_POINT

COUNTER

STORE

ENDC

;****************************************************************

ORG 0X00

GOTO MAIN

;****************************************************************

DELAY MOVLW 0XAF

MOVWF LCOUNT

48

Page 48: DIGITAL FUEL METER

MOVWF HCOUNT

DELAY_LOOP DECFSZ LCOUNT,F

GOTO DELAY_LOOP

MOVLW 0XAF

MOVWF LCOUNT

DECFSZ HCOUNT,F

GOTO DELAY_LOOP

RETURN

;****************************************************************

SHORT_DELAY MOVLW 0X02

MOVWF LCOUNT

MOVWF HCOUNT

DELAY_LOOP2 DECFSZ LCOUNT,F

GOTO DELAY_LOOP2

MOVLW 0X02

MOVWF LCOUNT

DECFSZ HCOUNT,F

GOTO DELAY_LOOP2

RETURN

;****************************************************************

LCD MACRO DATA1

MOVLW DATA1

MOVWF PORTD

BSF PORTD, 7

CALL DELAY

BCF PORTD, 7

CALL DELAY

ENDM

;****************************************************************

49

Page 49: DIGITAL FUEL METER

LCD2 MOVWF PORTD

BSF PORTD, 7

CALL DELAY

BCF PORTD, 7

CALL DELAY

RETURN

;****************************************************************

MOVLF MACRO DATA2,FILE1

MOVLW DATA2

MOVWF FILE1

ENDM

;****************************************************************

MOVFF MACRO FILE2,FILE3

MOVFFILE2, W

MOVWF FILE3

ENDM

;****************************************************************

SUB1 MACRO VALUE1,FILE4

MOVLW VALUE1

SUBWF FILE4, W

ENDM

;****************************************************************

TABLE ADDWF PCL

RETLW '0'

RETLW '1'

RETLW '2'

RETLW '3'

RETLW '4'

RETLW '5'

50

Page 50: DIGITAL FUEL METER

RETLW '6'

RETLW '7'

RETLW '8'

RETLW '9'

;****************************************************************

STAY MOVLW D'10'

MOVWF COUNTER

LOOP CALL DELAY

DECFSZ COUNTER, F

GOTO LOOP

RETURN

;****************************************************************

DISPLAY MOVFF TEN, STORE

SUB1 0X03, TEN

BTFSC STATUS, 0

GOTO LINE1_A

MOVFF STORE, TEN

SUB1 0X02, TEN

BTFSC STATUS, 0

GOTO LINE1_D

MOVFF STORE, TEN

SUB1 0X01, TEN

BTFSC STATUS, 0

GOTO LINE1_B

GOTO LINE1_C

;*****************************************************************

51

Page 51: DIGITAL FUEL METER

LINE1_A BSF PORTD, 6

LCD 'E'

LCD 'S'

LCD 'T'

LCD ':'

LCD ' '

LCD '2'

LCD '5'

LCD '%'

BCF PORTD, 6

LCD 0XC0

BSF PORTD, 6

LCD 'F'

LCD 'U'

LCD 'E'

LCD 'L'

LCD ' '

LCD 'W'

LCD 'A'

LCD 'R'

LCD 'N'

LCD 'I'

LCD 'N'

LCD 'G'

LCD ' '

LCD '!'

MOVLF B'00000001', PORTE

CALL STAY

GOTO START

52

Page 52: DIGITAL FUEL METER

;*****************************************************************

LINE1_B BSF PORTD, 6

LCD 'E'

LCD 'S'

LCD 'T'

LCD ':'

LCD ' '

LCD '5'

LCD '0'

LCD '%'

BCF PORTD, 6

LCD 0XC0

BSF PORTD, 6

LCD 'B'

LCD 'E'

LCD 'W'

LCD 'A'

LCD 'R'

LCD 'E'

LCD '!'

LCD '!'

LCD ' '

CALL LINE2

MOVLF B'00000010', PORTE

CALL STAY

GOTO START

;*********************************************************************

LINE1_C BSF PORTD, 6

LCD 'E'

53

Page 53: DIGITAL FUEL METER

LCD 'S'

LCD 'T'

LCD ':'

LCD '1'

LCD '0'

LCD '0'

LCD '%'

BCF PORTD, 6

LCD 0XC0

BSF PORTD, 6

LCD 'F'

LCD 'U'

LCD 'E'

LCD 'L'

LCD ' '

LCD 'M'

LCD 'A'

LCD 'X'

LCD 'E'

LCD 'D'

CALL LINE2

MOVLF B'00000100', PORTE ; Red LED "ON"

CALL STAY

GOTO START

;*********************************************************************

LINE1_D BSF PORTD, 6

LCD 'E'

LCD 'S'

LCD 'T'

54

Page 54: DIGITAL FUEL METER

LCD ':'

LCD ' '

LCD '7'

LCD '5'

LCD '%'

BCF PORTD, 6

LCD 0XC0

BSF PORTD, 6

LCD 'F'

LCD 'U'

LCD 'E'

LCD 'L'

LCD ' '

LCD 'A'

LCD 'T'

LCD ' '

LCD 'B'

LCD 'E'

LCD 'S'

LCD 'T'

LCD '.'

LCD '.'

MOVLF B'00000001', PORTE ; Green LED "ON"

CALL STAY

GOTO START

LINE2 ; Display the distance

NEXT MOVFTEN, W

XORWF 0X00, W

BTFSC STATUS, 2 ; TEN=0?

55

Page 55: DIGITAL FUEL METER

GOTO NEXT2 ; Yes, no display tens unit

WORD2 MOVFTEN, W ; No, display tens unit

CALL TABLE

CALL LCD2

NEXT2 MOVFONE, W ; Display ones unit

CALL TABLE

CALL LCD2

LCD '.' ; No, display '.' and decimal point

MOVFDEC_POINT, W

CALL TABLE

CALL LCD2

LCD 'c' ; Display "cm"

LCD 'm'

RETURN

;****************************************************************

MAIN BSF STATUS, RP0 ; Bank 1

CLRF TRISB ; Set PORTB as the output (LCD command)

CLRF TRISD ; Set PORTD as the output (LCD data)

CLRF TRISE ; Set PORTE as the output (LED)

MOVLF B'00000100', TRISC ; Set RC2 as input (Echo of ultrasonic)

; Set RC1 as output (Trigger of ultrasonic)

BCF STATUS, RP0 ; Bank 0

START MOVLF 0X05, CCP1CON ; Set Capture mode in every rising edge

MOVLF 0X11, T1CON ; Enables Timer 1

CLRF PORTC

56

Page 56: DIGITAL FUEL METER

LCD_SETTING BCF PORTD, 6 ; Set RS=0 for LCD receiving command

LCD 0X01 ; LCD command code='00000001' for clear screen

LCD 0X3C ; Set 8 bit interface,2 line mode and 5x10 dot format

LCD 0X0C ; Display ON and no cursor

CLEAR_FILES CLRF DEC_POINT ; Clear all the files

CLRF ONE

CLRF TEN

CLRF HUNDRED

CLRF TIME1

CLRF TIME2

HC_SR04 BSF PORTC, 6 ; Trigger pin is high to emitted sonar pulse

CALL SHORT_DELAY ; at least 10us for emitting sonar pulse

BCF PORTC, 6 ; Stop emitted pulse

AGAIN CLRF TMR1H ; Clear Timer 1

CLRF TMR1L

ECHO_HIGH BTFSSPIR1, CCP1IF ; Is it ECHO raising? (ECHO=1)

GOTO AGAIN ; No, clear Timer 1

BCF PIR1, CCP1IF ; Yes, clear the CCP1 flag

BCF CCP1CON, 0 ; Set Capture mode in every falling edge

ECHO_LOW BTFSSPIR1, CCP1IF ; Is it ECHO falling? (ECHO=0)

57

Page 57: DIGITAL FUEL METER

GOTO ECHO_LOW ; No, increase the content in Timer 1

MOVFF TMR1L, TIME1 ; Store period of ECHO=1 into TIME1

MOVFF TMR1H, TIME2 ; Store period of ECHO=1 into TIME2

BCF PIR1, CCP1IF ; Clear the CCP1 flag

DIVISION1 SUB1 D'58', TIME1 ; Start the division TIME1/58 using subtraction

BTFSSSTATUS, 0 ; Is TIME1 > 58?

GOTO CHECK ; No, check TIME2=0 or not?

MOVWF TIME1 ; Yes, result of (TIME1-58) stored in TIME1

INCF ONE, F ; The times of the operation (TIME-58) will

; stored in temporary file, ONE

GOTO DIVISION1 ; Subtraction again

CHECK MOVLW 0X00

XORWF TIME2, W ; Compare TIME2 and zero

BTFSSSTATUS, 2 ; TIME2=0?

GOTO ADDITIONAL ; No, goto ADDITIONAL because TIME2 has value

GOTO DIVISION2 ; Yes, goto DIVISION2

; to assign result in hundreds, tens and ones unit

ADDITIONAL DECF TIME2, F ; TIME2=1 is same as TIME1=255, TIME2-1 until TIME2=0

MOVLW 0X04 ; 255/58=4.39, so taking 4

ADDWF ONE, F ; Add 4 into the result

MOVLW D'24' ; 4x58=232, 256-232=24

58

Page 58: DIGITAL FUEL METER

ADDWF TIME1, F ; remaining values (23) stored in TIME1

GOTO DIVISION1 ; Subtraction again

DIVISION2 MOVLF D'10', TIMES ; TIMES=10 used for addition of TIME1 10 times (TIME1x10)

MOVFF TIME1, VALUE ; Remaining value in TIME1 stored in VALUE

CHECK2 DECFSZ TIMES, F ; Decrement of 1 in TIMES and then TIME1=0?

GOTO AGAIN1 ; No, subtraction again

GOTO SEPARATION1 ; Yes, separate result

AGAIN1 MOVFVALUE, W ; W=VALUE

ADDWF TIME1, F ; TIME1+VALUE

SUB1 D'58', TIME1 ; TIME1-58

BTFSSSTATUS, 0 ; TIME1 > 58?

GOTO CHECK2 ; Check the TIMES=0 or not?

MOVWF TIME1 ; Result (TIME1-58) store in TIME1

INCF DEC_POINT, F ; Increment of 1 in decimal point *DEC_POINT=1 means 0.1*

GOTO CHECK2

SEPARATION1 SUB1 D'100', ONE ; Start seperate result in hundreds unit (ONE-100)

BTFSSSTATUS, 0 ; ONE > 100?

GOTO SEPARATION2 ; No, for separate result in tens unit

MOVWF ONE ; Yes, result (ONE-100) stored in ONE

59

Page 59: DIGITAL FUEL METER

INCF HUNDRED, F ; Inceament of 1 in hundreds unit *HUNDRED=1 means 100*

GOTO SEPARATION1 ; Separate result in hundreds unit again

SEPARATION2 SUB1 D'10', ONE ; Start separate result in tens unit (ONE-10)

BTFSSSTATUS, 0 ; ONE > 10?

GOTO FINISH_CALC ; No, goto FINIFH_CALC

MOVWF ONE ; Yes, result (ONE-10) stored in ONE

INCF TEN, F ; Increment of 1 in tens unit *TEN=6 means 60*

GOTO SEPARATION2 ; Separate result in tens unit again

FINISH_CALC GOTO DISPLAY ; Display result

END

60