Attendance Monior System using Smart Cards

71
ATTENDANCE MONITORING SYSTEM USING SMART CARD Project Submitted in Partial fulfillment of the requirements For the degree of BACHELOR OF ENGINEERING BY Amit Ramesh Jain Anand K S Maulik Bharat Gandhi Under the guidance of Prof. SUSHMA S KADGE DEPARTMENT OF ELECTRONICS ENGINEERING K. J. SOMAIYA COLLEGE OF ENGINEERING, MUMBAI 1

Transcript of Attendance Monior System using Smart Cards

Page 1: Attendance Monior System using Smart Cards

ATTENDANCE MONITORING SYSTEM USING SMART CARD

ProjectSubmitted in Partial fulfillment of the requirements

For the degree of

BACHELOR OF ENGINEERINGBY

Amit Ramesh Jain

Anand K S

Maulik Bharat Gandhi

Under the guidance of

Prof. SUSHMA S KADGE

DEPARTMENT OF ELECTRONICS ENGINEERINGK. J. SOMAIYA COLLEGE OF ENGINEERING, MUMBAI

UNIVERSITY OF MUMBAI

2007-2008

1

Page 2: Attendance Monior System using Smart Cards

Attendance monitoring system using smart card

Submitted by:

Amit Ramesh Jain

Anand K S

Maulik Bharat Gandhi

In Partial fulfillment of the degree of B. E. in Electronics Engineering is approved.

Guide Examiners

------------------------ --------------------

--------------------

-------------------------- ---------------------

Head of Department Principal

Date:

2

Page 3: Attendance Monior System using Smart Cards

Index:

I) Introduction 5

II) Why do we need this project? 6

III) Development

a. Basic requirement 8

b. Sample student’s I card 9

c. Sample teacher’s I card 9

IV) Hardware implementation

a. Smart Card reader 11

b. Development board for 89s8252 13

c. LCD interface 14

d. Interfacing computer using RS232 15

V) Software implementation

a. Old R/W on chip eeprom memory function 19

b. Modified R/W on chip eeprom memory function 22

c. Algorithm 23

d. How the attendance record is maintained? 24-31

VI) Microcontroller programming

a. Main programming 33

b. LCD programming 36

c. Serial programming 39

VII) Visual Basic 41

VIII) Summary and future prospects 43

IX) Components Used 45

X) Acknowledgement 47

XI) References 49

3

Page 4: Attendance Monior System using Smart Cards

XII) Appendix 51-57

Introduction

4

Page 5: Attendance Monior System using Smart Cards

INTRODUCTION

A punch card (or Hollerith card or IBM card), is a piece of stiff paper that contains

digital information represented by the presence or absence of holes in predefined

positions. Punched cards were widely used throughout the 19th century for controlling

textile looms and through the 20th century in unit record machines for input, processing,

and data storage. Early digital computers used punched cards as the primary medium for

input of both computer programs and data, with offline data entry on key punch

machines. Some voting machines have used punched cards.

From the 1900s, into the 1950s, punched cards were the primary medium for data entry,

data storage, and processing in institutional computing.

Punch cards can find applications in maintaining the attendance records. This is the main

idea of our project. Each student, as in this case will be having his own unique punch

card. By using this card along with the reader the attendance record can be updated.

The micro controller 89s8252 is interfaced with the card reader. The database of all the

students is maintained in the internal eeprom memory and the micro controller

intelligently updates their status from time to time. A serial communication device

RS232C is used to interface the micro controller with the computer.

5

Page 6: Attendance Monior System using Smart Cards

Why do we need this project?

The traditional procedure for maintaining the attendance record was to pass the

attendance sheet during the lecture. This attendance sheet could constitute the status for

only 4 – 5 sessions. So in order to calculate the attendance for entire term all such

attendance sheets had to be assimilated. This procedure would require a lot of manual

work.

Our project is designed in such a way that the micro controller would automatically

update the status of the attendance when the reader detects the card. By using this system

it is possible to maintain the attendance for duration of 2 – 3 months and it enables the

user to keep a track of his attendance at any point.

This project would be user friendly as the student is only required to zip his card in order

to mark his attendance. This system will also minimize the malpractice of proxy

attendance.

6

Page 7: Attendance Monior System using Smart Cards

Development

Basic requirement

Sample student’s I card

Sample teacher’s I card

7

Page 8: Attendance Monior System using Smart Cards

Development:

The basic requirement of this project is to design a system that would keep a track of attendance of all the students for a given number of subjects and given number of days.

We are using a punch card i.e. a card with holes at different locations. The card is inserted into the card reader. The reader consists of infra-red sensors i.e. transmitters and receivers. The card is inserted in between the transmitter and receiver. The circuit would break when there are no holes and the resultant output would be logic 0. The slots that are punched would let the rays to reach the receiver and hence close circuit i.e. the output would be logic 1. Thus different sensors in the reader circuit would give different outputs depending on whether the card is punched or not.

Different students will have different I-cards i.e. holes would be punched at different unique locations and thus unique reader output.

The reader is now interfaced with a micro controller. Each student is given a standard memory space inside the internal eeprom which would contain the attendance record. As and when the student enters the class for the lecture and inserts the card in the reader, his/her attendance is marked. The attendance of all the students can be tracked whenever required after a month or so by using serial cable on HyperTerminal. A report consisting of necessary information like a student’s name along with roll no, total number of lectures attended, total number of lectures conducted in a particular month, etc. The percentage present for a student can be calculated and the ones below a particular limit can black listed. No paper work. Reports would be ready on the click of a mouse.

Basic requirements:

The most important requirement was to develop an ID card unique for each student. The

card has to be prepared by us since such cards available in the market won’t necessarily

suit our requirement.

8

Page 9: Attendance Monior System using Smart Cards

The ID card would be unique for each student and teachers. The eeprom memory is

segmented into two parts: student’s space and teacher’s space based upon their unique

ID.

Sample Student’s I-card:

Sample Teacher’s I-card:

0

0

0

10

0

9

Page 10: Attendance Monior System using Smart Cards

Hardware implementation

Smart Card reader

Development board for 89s8252

LCD interface

Interfacing computer using RS232

1

1

1

01

1

10

Page 11: Attendance Monior System using Smart Cards

Hardware implementation:

>> Smart card reader:

The reader consists of a simple IR transmitter receiver circuit, the output of which is

directly given to port 0 of the microcontroller. Initially we had designed the following

circuit with an op amp (LM 324)

11

Page 12: Attendance Monior System using Smart Cards

The above circuit was turning out to be complex as we had to integrate 6 pairs of transmitter & receiver along with an op amp. Moreover as a single IC of LM 324 does not have 6 o/p pins we had to use 2 of them.

So we switched over to a simpler resistance divider network as shown.

12

Page 13: Attendance Monior System using Smart Cards

For this circuit we used a 330Ω resistance in series with the LEDs for their conduction.

As we also knew that the resistance of the IR receiver decreases on sensing the IR signal

we had to select a high valued resistor so as to get the required voltage level for the micro

controller. After trying out different combinations we finally decided to select 5.6k Ω as

the series resistor for the receiver.

Now in case of presence of a hole the IR signal from the transmitter reaches the receiver.

As a result, the receiver offers very low resistance and a desired voltage level for the

microcontroller is achieved (logic 1). When a block is placed in the path of IR signal the

receiver acts as an open circuit and negligible voltage is achieved (logic 0).

>>Development board for 89s8252

13

Page 14: Attendance Monior System using Smart Cards

The second step of hardware implementation was to prepare a development board for our

Microcontroller 89s8252. This development board was easily available in the market

along with the required components. After integrating these components on the

development board we had to make some necessary modifications to suit our

microcontroller. The first step was to isolate Vcc pin of port1 (programming port) and

connect it to reset point of microcontroller (PIN 9). The other necessary precaution we

had to take is to ensure that the other Vcc connections remain undisturbed.

>>LCD interface

14

Page 15: Attendance Monior System using Smart Cards

• 8 data pins D7:D0

Bi-directional data/command pins.

Alphanumeric characters are sent in ASCII format.

 

• RS:  Register Select

RS = 0 -> Command Register is selected

RS = 1 -> Data Register is selected

 

• R/W: Read or Write

0 -> Write,  1 -> Read

 

• E: Enable (Latch data)

Used to latch the data present on the data pins.

A high-to-low edge is needed to latch the data.

• VEE : contrast control

>>Interfacing with computer using RS232:

RS-232 Voltage levels

15

Page 16: Attendance Monior System using Smart Cards

 1. +3 to +25 volts to signify a "Space" (Logic

0)                                                                                           

 2.  -3 to -25 volts for a "Mark" (logic 1).

 3.  Any voltage in between these regions (i.e. between +3 and -3 Volts) is undefined.

The data byte is always transmitted least-significant-bit first.

The bits are transmitted at specific time intervals determined by the baud rate of the

serial signal.

 

This is the signal present on the RS-232 Port of your computer, shown below.

RS-232 Logic Waveform

RS-232 LEVEL CONVERTER:

Standard serial interfacing of microcontroller (TTL)  with  PC or any  RS232C Standard

device , requires TTL to RS232 Level converter . A MAX232 is used for this purpose. It

provides 2-channel RS232C port and requires external 10uF capacitors.

The driver requires  a single supply of +5V .

16

Page 17: Attendance Monior System using Smart Cards

 MAX-232  includes a Charge Pump, which generates +10V and -10V from a single 5v

supply.

MICROCONTROLLER INTERFACING WITH RS-232 STANDARD DEVICES

MAX232 (+5V -> +-12V converter)

Serial port male 9 pin connector (SER)

                                                                   

SETTING SERIAL PORT.

SCON

8 bit UART ,RN enabled , TI & RI operated by program. - 50hex

 

Timer 1 Count

TH1 = 256 - ((Crystal / 384) / Baud) -PCON.7 is clear.

17

Page 18: Attendance Monior System using Smart Cards

TH1 = 256 - ((Crystal / 192) / Baud)-PCON.7 is set.

 

so with PCON.7 is clear we get timer value = FDhex

Software implementation

Old R/W on chip eeprom memory function

Modified R/W on chip eeprom memory function

Algorithm

How the attendance record is maintained?

18

Page 19: Attendance Monior System using Smart Cards

Software implementation:

One of the most crucial part of the project was to read and write data in real time even

with power supply disconnected.

RAM wasn’t the option, as its content would be washed as soon as the power supply is

gone. EEPROM was the only option. At the very beginning we started with Phillips

micro controller P89v51RD52 with external EEPROM that would be interfaced in

parallel. But then we had limited port pins. One more idea that came to our mind was of

using a master/slave configuration. The slave micro controller would be assigned the job

of interfacing with the eeprom and lcd display. The master would take care of all other

functions.

As we researched into the matter we found a better option than the above:

Using I2C protocol for interfacing the eeprom. This would consume only two port pins

and the protocol is widely accepted and plenty of I2C based micro controllers and eeprom

was available.

There was still one limitation to this architecture i.e. the eeprom required a power source.

Flash memory was an option but it would increase complexity.

19

Page 20: Attendance Monior System using Smart Cards

We started learning the protocol and almost selected an eeprom based on I2C protocol

when a friend suggested a micro controller with an internal eeprom. Finally we selected

Atmel’s 89s8252 micro controller as our project’s sole controller cum memory.

>>Read/Write 2k On-chip EEPROM function (KEIL C51 V7.5)

#include<reg8252.h>

void WriteEEP(unsigned char xdata * ADDR,unsigned char EEP_Data);

unsigned char ReadEEP(unsigned char xdata * ADDR);

//---------------------------------------

// Write EEPROM funcrion

// Input : ADDR = address 000h-7FFh

// EEP_Data = Data

//---------------------------------------

void WriteEEP(unsigned char xdata * ADDR,unsigned char EEP_Data)

{

EA=0; // disable Interrupts during write

WMCON|=EEMEN_ | EEMWE_;

*ADDR=EEP_Data;

WMCON &= ~EEMEN_;

20

Page 21: Attendance Monior System using Smart Cards

WMCON &= ~EEMWE_;

while((WMCON&WDTRST_)==0);// wait until write is complete

EA=1;

}

//---------------------------------------

// Read EEPROM function

// Input : ADDR = address

// Output: unsigned char (8bit)

//---------------------------------------

unsigned char ReadEEP(unsigned char xdata *ADDR)

{

unsigned char EEP_DATA;

EA=0; // disable Interrupts during write

WMCON|=EEMEN_;

EEP_DATA = *ADDR;

WMCON &= ~EEMEN_;

EA=1;

return EEP_DATA;

}

-------------------------------------------------------------------------------------------------------

To use the above function just call like this

WriteEEP(0x123,0xAA); // Write data 0xAA to EEPROM at address 0x123

unsigned char MyByte;

21

Page 22: Attendance Monior System using Smart Cards

MyByte = ReadEEP(0x123); // Read EEPROM at address 0x123 and return unsigned

char

-------------------------------------------------------------------------------------------------------

However these functions never performed to our expectations. The eeprom write was

executed properly but whenever a read operation was carried out it would show some

garbage value or probably the address of the data.

We didn’t give up and continued searching for some other way to access the internal

eeprom. Soon we got positive result.

Modified Read/Write 2K On-chip EEPROM function(KEIL C51 V7.5)

#include <AT898252.H>

#include <absacc.h>

/*

* Return EEPROM Byte at address 'adr'

*/

unsigned char ReadEEP (unsigned int adr)

{

unsigned char v;

WMCON |= EEMEN_; // enable EEPROM

v = XBYTE[adr]; // read value

WMCON &= ~EEMEN_; // disable EEPROM

22

Page 23: Attendance Monior System using Smart Cards

return (v);

}

/*

* Write EEPROM Byte 'val' at address 'adr'

*/

void WriteEEP (unsigned int adr, unsigned char val)

{

WMCON |= (EEMEN_ | EEMWE_); // enable EEPROM and set write bit

XBYTE[adr] = val; // write value

while ((WMCON & EERDY_) == 0); // wait until value programmed

WMCON &= ~(EEMWE_ | EEMEN_); // disable EEPROM and write strobe

}

To use the above function just call like this

WriteEEP(0x123,0xAA); // Write data 0xAA to EEPROM at address 0x123

unsigned char MyByte;

MyByte = ReadEEP(0x123); // Read EEPROM at address 0x123 and return data

The above functions worked well.

23

Page 24: Attendance Monior System using Smart Cards

Algorithm:

Initially we are allocating four bytes of memory locations for each student.

How these bytes are allocated?

The reader output is nothing but a roll no. of a particular student. Now this roll no. is used

as an index or a memory pointer which is pointing to a specific location in internal

EEPROM.

The roll no. is multiplied by 4 i.e. we are allocating 4 bytes of memory for each student.

This memory will represent student’s attendance profile.

AT 89S8252 provides 2k internal EEPROM i.e. 000-7FF

We are using 256 bytes of EEPROM which will provide us with 60 unique ID for each

student and one unique ID for teacher.

24

Page 25: Attendance Monior System using Smart Cards

>>How the attendance record is maintained?

When the teacher enters her ID in the card reader all the bits of the byte which is pointed

by the data pointer gets rotated to the left by one place.

Now if the student enters the card, the data pointed by the data ptr gets ORed with 01H

i.e. the student is present

If the student is absent his data will not be ORed i.e. his attendance won’t be marked

------------------------------------------------

Roll No. 2

Roll No. 61

Roll No. 1

00F8H

DPH=00HDPL=[P3]*04H

P3.7=P3.6=0

DPH DPL

DPTR register

16bits

0000H-00FFH

0004H

0008H

0001H*04H=

25

Page 26: Attendance Monior System using Smart Cards

Here when the lecture started teacher swiped her card:

The program identifies that it is teacher’s card and performs an internal fixed

routine

The memory locations of all the student’s are updated

They are all rotated once left as shown above

There is a counter which keeps track of the number of times rotate performed and

this counter keeps the count on the number of lectures conducted

Algorithm for attendance record

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

OR 01H

Present Absent

NOP

Student’s ID

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0000H0001H0002H0003H

Roll No 1Memory Space

dptr

26

Page 27: Attendance Monior System using Smart Cards

Example:

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 0

OR

0 0 0 0 0 0 0 1 =

Student Present

0 0 0 0 0 0 0 0

27

Page 28: Attendance Monior System using Smart Cards

What happens when a student swipe his/her I Card?

The contents in the student’s memory are ORed with 01h

The result indicates 1 in the last bit i.e. lecture attended as shown

0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 1

0 0 0 0 0 0 1 0

OR

0 0 0 0 0 0 1 1 =

Student Present:

28

Page 29: Attendance Monior System using Smart Cards

What happens if the student is absent?

The above operation of ORing won’t be performed

This means that there is a zero in place of 1 in the last bit indicating that the

student is absent

Student Absent:

0 0 0 0 0 0 1 1

0 0 0 0 0 0 1 1

0 0 0 0 0 0 0 1

0 0 0 0 0 1 1 0

OR

0 0 0 0 0 1 1 0 =

29

Page 30: Attendance Monior System using Smart Cards

Counter1=8HCounter2=4H

0 0 0 0 0 0 0 0

Student’s ID

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0000H0001H0002H0003H

Counter1=8HCounter2=3H

0 1 1 0 0 0 1 0

Student’s ID

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0000H0001H0002H0003H

After 8 lectures

dptr

dptr

Lectures Attended=3

30

At the very beginning

Page 31: Attendance Monior System using Smart Cards

The above algorithm maintains record for 32 lectures after which the memory can be

reset.

31

After 32 lectures

Counter1=0HCounter2=0H

0 1 1 0 0 0 1 0

Student’s ID

1 0 0 1 1 0 1 1

0 1 0 1 0 1 1 1

0 1 1 1 1 0 1 0

0000H0001H0002H0003H

dptr

Counter1=8HCounter2=4H

0 0 0 0 0 0 0 0

Student’s ID

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0000H0001H0002H0003H

dptr

In the 33rd lecture

Page 32: Attendance Monior System using Smart Cards

Results:

No. of RLC operations=Lectures conducted

No. of 1’s in a byte=Lectures present

Percentage present =Lectures present*100

Lectures conducted

32

Page 33: Attendance Monior System using Smart Cards

Microcontroller programming

Main programming

LCD programming

Serial programming

33

Page 34: Attendance Monior System using Smart Cards

Micro controller Programming:

We wrote a program for the above algorithm in Keil. Keil was preferred over assembly

language programming because we were much acquainted with C and Keil provided us

with much more beneficial tools.

>>Main Program

#include <AT898252.H>

#include <absacc.h>

#include <stdio.h>

void main (void)

{

unsigned char rollno,attd[60]=0,d=0,lectr=0;

unsigned int memloc;

unsigned char MyByte=0,i,v;

unsigned char x,y,z;

while(1)

{

//rollno=P0;

if(P0==0xFF) //Reset=A card to reset all student's attendance

{

for(i=0x001;i<=0x0FF;i++)

{

WMCON |= (EEMEN_ | EEMWE_); // enable EEPROM and set write bit

XBYTE[i] = 0x00;

34

Page 35: Attendance Monior System using Smart Cards

while ((WMCON & EERDY_) == 0) ;

WMCON &= ~(EEMWE_ | EEMEN_); //disable EEPROM and write strobe

}

}

else if(P0==0x3D) //Teacher Icard=Mark lecture conducted

{

for(i=0x01;i<=0x3C;i++)//60 students=everyone’s memory updated

{

memloc=(i*0x04)+d;

//Read the record of each student and modify accordingly

WMCON |= EEMEN_; // enable EEPROM

MyByte = XBYTE[memloc]; // read value

WMCON &= ~EEMEN_; // disable EEPROM

MyByte<<=1; //Rotate left once

WMCON |= (EEMEN_ | EEMWE_); // enable EEPROM and set write bit

XBYTE[memloc] = MyByte;

while ((WMCON & EERDY_) == 0) ;

WMCON &= ~(EEMWE_ | EEMEN_); //disable EEPROM and write strobe

}

lectr++; //Lectr=Total no. of lectures conucted

}

else //Student

{memloc=(P0*0x04)+d;

//Read student's record and mark his attendance

WMCON |= EEMEN_; // enable EEPROM

35

Page 36: Attendance Monior System using Smart Cards

MyByte = XBYTE[memloc]; // read value

WMCON &= ~EEMEN_; // disable EEPROM

MyByte|=1; //OR operation for marking attendance

WMCON |= (EEMEN_ | EEMWE_); // enable EEPROM and set write bit

XBYTE[memloc] = MyByte;

while ((WMCON & EERDY_) == 0) ;

WMCON &= ~(EEMWE_ | EEMEN_); //disable EEPROM and write strobe

attd[rollno]+=1; //Lectures attended by a student

}

if((lectr & 0x08)!=0)//Byte Full

{

d+=1;

}

if(d==0x04)//Needs Reset

{

d=0;

}

}

}

36

Page 37: Attendance Monior System using Smart Cards

>>LCD interfacing program

#include <reg8252.h>

#include <stdio.h>

sfr ldata = 0x80;

sbit rs = P2^1;

sbit rw = P2^2;

sbit en = P2^3;

void lcdcmd(unsigned char);

void lcddata(unsigned char);

void msdelay(unsigned int);

void lcdcmd(unsigned char value)

{

ldata=value;

rs = 0;

rw = 0;

en = 1;

msdelay(1);

en = 0;

return;

}

void lcddata(unsigned char value)

{

ldata=value;

rs = 1;

37

Page 38: Attendance Monior System using Smart Cards

rw = 0;

en = 1;

msdelay(1);

en = 0;

return;

}

void msdelay(unsigned int itime)

{

unsigned int i, j;

for(i=0;i<itime;i++)

for(j=0;j<1275;j++);

}

void main()

{

unsigned char x,y,z;

P0=0x05;

x=P0;

y=(x/0x0A);

z=(x%0x0A);

lcdcmd(0x38);

msdelay(250);

lcdcmd(0x0E);

msdelay(250);

lcdcmd(0x01);

msdelay(250);

38

Page 39: Attendance Monior System using Smart Cards

//lcdcmd(0x86);

//msdelay(250);

lcddata('R');

msdelay(50);

lcddata('o');

msdelay(50);

lcddata('l');

msdelay(50);

lcddata('l');

msdelay(50);

lcddata(' ');

msdelay(50);

lcddata('N');

msdelay(50);

lcddata('o');

msdelay(50);

lcddata(' ');

msdelay(50);

lcddata(y+0x30);

msdelay(50);

lcddata(z+0x30);

msdelay(50);

}

39

Page 40: Attendance Monior System using Smart Cards

>>Serial Communication program

#include<reg51.h>

void trans(unsigned char);

void main()

{

unsigned char p,q;

TMOD=0x20;

TH1=0xFD;

TL1=0xFD;

SCON=0x50;

TR1=1;

p=(25/10);

q=(25%10);

trans('R');

trans('O');

trans('L');

trans('L');

trans(' ');

trans('N');

trans('O');

trans(p);

trans(q);

}

40

Page 41: Attendance Monior System using Smart Cards

void trans(unsigned char x)

{

SBUF=x;

while(TI==0);

TI=0;

}

<<HyperTerminal>>

Serial communication is used to get the attendance record of all the students.

41

Page 42: Attendance Monior System using Smart Cards

<<Visual Basic

The complete attendance record is available in the eeprom memory of the micro

controller. This data can be made more readily available on demand by using Visual

Basic. We can go one step further and make the data available online so that the students

can refer to their latest attendance record whenever they wish.

The following diagram depicts how visual basic would help in simplifying things.

The attendance record of any student for any month is just a click

away…

42

``̀`

January February March

April May June

July August September

October November December

EnterName

Attendance Monitoring System!!

Exit

Update

Page 43: Attendance Monior System using Smart Cards

Summary and future prospects

43

Page 44: Attendance Monior System using Smart Cards

Summary:

The idea behind our project was to simplify the tedious job of tracking student’s

attendance record by our teachers. This would not only reduce the paper work but also

save valuable lecture’s time. The students could refer to their latest attendance record

whenever required if the data is made available online.

Also the students won’t be able to put proxies if adequate measures are taken.

Our system is presently made only for one subject and one class. The teacher would enter

the class with a reader and initially swipe her card. The students would then one by one

swipe their cards, thus marking their attendance. This would take just a few minutes. No

attendance sheet to be passed in the class and no roll calls to be taken. No late entries

would be allowed. Meager chances of proxies.

Future Prospects:

One of the most urgent and crucial need is to upgrade the current one subject scheme to

more number of subjects. This is important while implementing the project in colleges.

The current project, however, will work absolutely fine in schools where the attendance

are marked only once in a day.

In addition, the punch card technology which we are using for reading has certain

limitations. The card could be easily fiddled with. Also the total number of unique IDs

that could be prepared depends on the number of holes on the card.

Suppose if the punch card technology is replaced by Barcodes all the limitations would

be overcome.

Also Visual Basic can be used on a larger scale to get user friendly results on the

computer.

Once the database of all students is stored in the computer, the card can be used for

different other purposes e.g. automatic railway concession

44

Page 45: Attendance Monior System using Smart Cards

Components used

45

Page 46: Attendance Monior System using Smart Cards

Components used:

Component Specification Quantity

Micro Controller AT 89s8252 1

Resistors 330ohms 7

5k6 6

IR Led 3mm 6

IR Receiver 3mm 6

LED 3mm 6

46

Page 47: Attendance Monior System using Smart Cards

Acknowledgement

47

Page 48: Attendance Monior System using Smart Cards

ACKNOWLEDGEMENT

We are elated to present this project and would like to take this opportunity to express our

sincere thanks to all, who by their direct or indirect contribution have helped us make it

possible.

We thank Mrs Sushma S Kadge, our internal project guide for her assistance. Without

her constant support and motivation this project would not have been possible. We would

also like to express gratitude towards Mr Sameer Mhatre for imparting his knowledge

and experience in helping us to design the Micro controller aspect of this project.

We also thank Mamta Mam, the lab assistant of micro controller lab for her kind support

and co-operation.

We also thank Department of Electronics Engineering, K. J. Somaiya C.O.E. which

let us avail the instruments, equipments and other infrastructure, necessary for our work.

We look forward to be associated with this team and to carry on the successful

completion of this project.

Thanking you.

48

Page 49: Attendance Monior System using Smart Cards

References

49

Page 50: Attendance Monior System using Smart Cards

References: www.embeddedsystems.com www.keil.com www.wankhedetutorials.com Embedded Systems Development by Mazidi

50

Page 51: Attendance Monior System using Smart Cards

Appendix

51

Page 52: Attendance Monior System using Smart Cards

Appendix:

Features Description• Compatible with MCS®51 Products • 8K Bytes of In-System Reprogrammable Downloadable Flash Memory – SPI Serial Interface for Program Downloading – Endurance: 1,000 Write/Erase Cycles • 2K Bytes EEPROM – Endurance: 100,000 Write/Erase Cycles• 4V to 6V Operating Range• Fully Static Operation: 0 Hz to 24 MHz• Three-level Program Memory Lock• 256 x 8-bit Internal RAM• 32 Programmable I/O Lines• Three 16-bit Timer/Counters• Nine Interrupt Sources • Programmable UART Serial Channel• SPI Serial Interface • Low-power Idle and Power-down Modes• Interrupt Recovery from Power-down • Programmable Watchdog Timer

52

Page 53: Attendance Monior System using Smart Cards

• Dual Data Pointer • Power-off Flag

The AT89S8252 is a low-power, high-performance CMOS 8-bit microcontroller with 8K bytes of downloadable Flash programmable and erasable read-only memory and 2K bytes of EEPROM. The device is manufactured using Atmel’s high-density nonvolatile memory technology and is compatible with the industry-standard 80C51 instruction set and pinout. The on-chip downloadable Flash allows the program memory to be reprogrammed In-System through an SPI serial interface or by a conventional nonvol-atile memory programmer. By combining a versatile 8-bit CPU with downloadable Flash on a monolithic chip, the Atmel AT89S8252 is a powerful microcontroller, which provides a highly-flexible and cost-effective solution to many embedded control applications. The AT89S8252 provides the following standard features: 8K bytes of downloadable Flash, 2K bytes of EEPROM, 256 bytes of RAM, 32 I/O lines, programmable watchdog timer, two data pointers, three 16-bit timer/counters, a six-vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator, and clock circuitry. In addition, the AT89S8252 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The Power-down mode saves the RAM contents but freezes the oscillator, disabling all other chip functions until the next external interrupt or hardware reset. The downloadable Flash can be changed a single byte at a time and is accessible through the SPI serial interface. Holding RESET active forces the SPI bus into a serial programming interface and allows the program memory to be written to or read from unless lock bits have been activated.

Pin Configurations

Pin DescriptionVCC Supply voltage

GND Ground

Port 0 Port 0 is an 8-bit open drain bi-didirectional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as highimpedance inputs.

53

Page 54: Attendance Monior System using Smart Cards

Port 0 can also be configured to be the multiplexed low-order address/data bus during accesses to external program and data memory. In this mode, P0 has internal pull-ups. Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification. External pull-ups are required during program verification.

Port 1 Port 1 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 1 pins that are exter-nally being pulled low will source current (IIL) because of the internal pull-ups.

Port 2 Port 2 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 2 output buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 2 pins that are exter-nally being pulled low will source current (IIL) because of the internal pull-ups. Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX @ DPTR). In this application, Port 2 uses strong internal pull-ups when emitting 1s. During accesses to external data memory that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register. Port 2 also receives the high-order address bits and some control signals during Flash programming and verification.

Port 3 Port 3 is an 8-bit bi-directional I/O port with internal pull-ups. The Port 3 output buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins, they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 3 pins that are exter-nally being pulled low will source current (IIL) because of the pull-ups. Port 3 receives some control signals for Flash programming and verification.

Special Function Registers A map of the on-chip memory area called the Special Function Register (SFR) space is shown in Table 1. Note that not all of the addresses are occupied, and unoccupied addresses may not be implemented on the chip. Read accesses to these addresses will in general return random data, and write accesses will have an indeterminate effect. User software should not write 1s to these unlisted locations, since they may be used in future products to invoke new features. In that case, the reset or inactive values of the new bits will always be 0.

54

Page 55: Attendance Monior System using Smart Cards

Watchdog and Memory Control Register The WMCON register contains control bits for the Watchdog Timer (shown in Table 3). The EEMEN and EEMWE bits are used to select the 2K bytes on-chip EEPROM, and to enable byte-write. The DPS bit selects one of two DPTR registers available. Table 3. WMCON—Watchdog and Memory Control Register

55

Page 56: Attendance Monior System using Smart Cards

Data Memory – EEPROM and RAM The AT89S8252 implements 2K bytes of on-chip EEPROM for data storage and 256 bytes of RAM. The upper 128 bytes of RAM occupy a parallel space to the Special Function Registers. That means the upper 128 bytes have the same addresses as the SFR space but are physically separate from SFR space. When an instruction accesses an internal location above address 7FH, the address mode used in the instruction specifies whether the CPU accesses the upper 128 bytes of RAM or the SFR space. Instructions that use direct addressing access SFR space. For example, the following direct addressing instruction accesses the SFR at location 0A0H (which is P2). MOV 0A0H, #data Instructions that use indirect addressing access the upper 128 bytes of RAM. For exam-ple, the following indirect addressing instruction, where R0 contains 0A0H, accesses the data byte at address 0A0H, rather than P2 (whose address is 0A0H). MOV @R0, #data Note that stack operations are examples of indirect addressing, so the upper 128 bytes of data RAM are available as stack space. The on-chip EEPROM data memory is selected by setting the EEMEN bit in the WMCON register at SFR address location 96H. The EEPROM address range is from 000H to 7FFH. The MOVX instructions are used to access the EEPROM. To access off-chip data memory with the MOVX instructions, the EEMEN bit needs to be set to “0”. The EEMWE bit in the WMCON register needs to be set to “1” before any byte location in the EEPROM can be written. User software should reset EEMWE bit to “0” if no fur-ther EEPROM write is required. EEPROM write cycles in the serial programming mode are self-timed and typically take 2.5 ms. The progress of EEPROM write can be moni-tored by reading the RDY/BSY bit (read-only) in SFR WMCON. RDY/BSY = 0 means programming is still in progress and RDY/BSY = 1 means EEPROM write cycle is completed and another write cycle can be initiated. In addition, during EEPROM programming, an attempted read from the

56

Page 57: Attendance Monior System using Smart Cards

EEPROM will fetch the byte being written with the MSB complemented. Once the write cycle is com-pleted, true data are valid at all bit locations.

Interrupts The AT89S8252 has a total of six interrupt vectors: two external interrupts (INT0 and INT1), three timer interrupts (Timers 0, 1, and 2), and the serial port interrupt. These interrupts are all shown in Figure 10. Each of these interrupt sources can be individually enabled or disabled by setting or clearing a bit in Special Function Register IE. IE also contains a global disable bit, EA, which disables all interrupts at once. Note that Table 10 shows that bit position IE.6 is unimplemented. In the AT89C51, bit position IE.5 is also unimplemented. User software should not write 1s to these bit posi-tions, since they may be used in future AT89 products. Timer 2 interrupt is generated by the logical OR of bits TF2 and EXF2 in register T2CON. Neither of these flags is cleared by hardware when the service routine is vec-tored to. In fact, the service routine may have to determine whether it was TF2 or EXF2 that generated the interrupt, and that bit will have to be cleared in software. The Timer 0 and Timer 1 flags, TF0 and TF1, are set at S5P2 of the cycle in which the timers overflow. The values are then polled by the circuitry in the next cycle. However, the Timer 2 flag, TF2, is set at S2P2 and is polled in the same cycle in which the timer overflows.

57

Page 58: Attendance Monior System using Smart Cards

58