You are on page 1of 1

This project mimics an ATM machine.

Typically, when a customer comes to an ATM machine to


withdraw or deposit money, first he is requested to insert an ATM card and type a PIN code. If
the PIN code is correct, then the customer can withdraw amount of money that is less than his
balance and that is multiple of 5. Also, he can deposit amount of money in his account. If the
customer typed a wrong PIN code for three consecutive times, then the card is locked.

In this project, we assume a single customer for this bank. Therefore, it is not required to insert
an ATM card. The customer should just type a PIN code. If the customer inserted the PIN code
incorrectly for three consecutive times, the program exits. The project is composed of two PIC
16F84A microcontrollers, one PIC resides on the customer side and the other resides on the
bank side. You can use also any extra hardware you may need it.

When the program starts, there will be an initial PIN code for the customer which is stored on
the customer’s PIC and initial balance which is stored on the bank’s PIC.

First, the customer should insert a PIN code, if the PIN is correct, the customer can deposit an
amount of money or withdraw amount of money that is multiple of 4. If the amount of money to
withdraw is less than the customer balance or if it is not multiple of 4, then the customer
should know that (by flashing a LED that is connected to the customer’s PIC for three times)
and the customer must try again.

If the transaction was performed correctly, then the balance of the customer must be updated
on the bank’s PIC. Additionally, the customer must know that by just turning on a LED that is
connected to the customer’s PIC.

The maximum amount of money the customer can deposit or withdraw is JD 16.

The maximum Balance for the customer is JD 255.

The customer can only deposit or withdraw amounts of money which are

multiples of 4.

The bank PIC should keep the balance of the customer permanently even

after the power is down (therefore, it is preferable to store it on the

EEPROM)

The bank PIC should store the last 10 transactions in the data memory of the

bank’s PIC. You should use indirect addressing for this.

After each transaction, the bank’s PIC informs the customer’s PIC whether

the transaction is correct or not. Then the customer’s PIC either turns on a LED if it is correct or
flash the LED for three times if it is incorrect.

No switch, push button, or LED is allowed to be connected to the two PICs at the same
time.

Policy:

You should use MBLAP and PROTEUS to do the project. Hardware implementation is
bonus as shown below.

You should submit a report along with the project. The report, should have: abstract,
introduction, design and description of what you did, discussion, and conclusion. There will be
part of the grade on writing the report. The report should facilitate the role of each member in
the group.

Use two PIC 16F84A microcontrollers and any extra hardware you need.

Submit the ASM files, the Hex files, the Proteus project file and the report in one

Bonus parts:

2 extra points if you use keypad on the customer’s PIC.

2 extra points if you submitted a working hardware.

2 extra point for the first 7 groups who submit the project working fine.

You might also like