free 8051 Microcontroller Projects AVR PIC Microcontroller Projects Tutorials Ebooks Libraries, interfacing tutorials, lcd tutorial, stepper motor, dc motor 8051 assembly language programming electronics and communication ECE CSE pdf ebooks library BE final year project ideas Embedded systems

 
8051 microcontroller 8051 microcontroller
Forums

8051 Microcontroller Projects AVR PIC Projects Tutorials Ebooks Libraries codes :: Forums :: Project Development :: Project Doubts
 
<< Previous thread | Next thread >>
automatic room light controller with visitor counter
Go to page  1 2 [3] 4
Moderators: Ajay, Junied , abbas1707, Arun Kumar V, pdi33, Shailesh NAYAK, ۞ TPS ۞, shyam, sashijoseph
Author Post
isha
Wed Jul 18 2007, 10:57PM
 User Offline
Registered Member #2094
Joined: Sun Jul 08 2007, 09:48AM

Posts: 15
Thanked 5 times in 5 posts
sir, plz guide me how to start programming the project "digital visitror counter " in C language??????????





isha
Back to top



This post has been thanked 1 time
Ajay
Thu Jul 19 2007, 06:20AM
Rickey's World Admin

 User Offline

Registered Member #1
Joined: Fri Feb 24 2006, 04:56AM

Posts: 4042
Thanked 752 times in 711 posts
hm... before starting that.. i want to ask you some questions.. which IDE (software for compiling) you are using? and are you familiar with that IDE? if yes then how much...
because understanding the IDE is the first important thing.

www.rickeyworld.info
If you feel satisfied with the user's forum reply please click on the thank button.

Obey forum rules!
Respect others!
Back to top



This post has been thanked 2 times
 isha , tienduhieu 
isha
Fri Jul 20 2007, 05:42AM
 User Offline
Registered Member #2094
Joined: Sun Jul 08 2007, 09:48AM

Posts: 15
Thanked 5 times in 5 posts
sir , i'm using keil uvision for the project, and i m familiar with that , i've used that for a counter(0-30) project.....

isha
Back to top



This post has been thanked 1 time
Ritesh
Fri Jul 20 2007, 11:10PM
 User Offline
Registered Member #65
Joined: Tue Aug 29 2006, 03:10AM

Posts: 54
Thanked 10 times in 10 posts
hi isha
please refer the book "Embedded C"
it is used c for programming 8051 with some useful examples suited to your requirement
and most good thing is that it use same keil
the book is already posted in the e-book download section or
click this link
http://www.8051projects.net/forum-t1260.html



[ Edited Sat Feb 16 2008, 01:13AM ]
Back to top



This post has been thanked 1 time
Ajay
Fri Jul 20 2007, 11:32PM
Rickey's World Admin

 User Offline

Registered Member #1
Joined: Fri Feb 24 2006, 04:56AM

Posts: 4042
Thanked 752 times in 711 posts
Thats good if you have already worked on it oce..
so.. simply define the ports which you are using in your project. you can define in two ways...
Fitst:
#include #define port_name port
e.g. #define abc P1
and pin can de defined as..
#define def P2_1

Second:
defining bit-
sbit abc=0x81;
defining port or other sfr
sfr def = 0x90;

after that you start writing your program in C as you write normally. you can make fuctions or simply write the whole program in a single function called main()
please start writing something afterwards i will explain you.. as you go on.

www.rickeyworld.info
If you feel satisfied with the user's forum reply please click on the thank button.

Obey forum rules!
Respect others!
Back to top



This post has been thanked 1 time
isha
Tue Jul 24 2007, 11:19AM
 User Offline
Registered Member #2094
Joined: Sun Jul 08 2007, 09:48AM

Posts: 15
Thanked 5 times in 5 posts
i've defined the ports which are used in the project,
plz tell me how to initialize the timer?
and how to program the ports where transistors are attatced and the ports where ldrs are attatched????
plz reply soon

isha
Back to top



This post has been thanked 1 time
Ajay
Wed Jul 25 2007, 02:19AM
Rickey's World Admin

 User Offline

Registered Member #1
Joined: Fri Feb 24 2006, 04:56AM

Posts: 4042
Thanked 752 times in 711 posts
ok... setting up the timer is very simple. putting value in register is same like moving value to a variable. you can open the file you included "AT89X51.H" and see how the registers have defined in it.
so timer can be set like this way...
TMOD = 0x20; // timer mode setting
TH1 = 20; // put value in Timer 1 high byte
TL1 = 3; // put value in Time 1 low byte
TR1 = 1; // run the timer

this way you can do the same for timer 0 you can do.
you can enable the timer interrupt as..
ET1 = 1; // Timer 1 interrupt
EA = 1; // global interrupt

writing interrupt routine..
void timer1_isr() interrupt 3
{
// your code
TF1 = 0; // clrear Timer overflow flag
//other code
}

Interrupt numbers..
Exter. int 0 - 0
timer int 0 - 1
Exter. int 1 - 2
timer int 1 - 3
RX/Tx int - 4

similar with the ports..
P1 = 0x40; //some value
port... pin..
P1_1 = 1 or 0; // setting or clearing a pin..

checking pin is set or cleared..
if(P1_1){ //execute the code if Port 1 pin 1 is set
//code
}
else{ //execute the code if Port 1 pin 1 is clear
//code
}

or you can sometime have this way too..

if(!P1_1){ //execute the code if Port 1 pin 1 is clear
//code
}
else{ //execute the code if Port 1 pin 1 is set
//code
}

making a port o/p
P1 = 0;

making a port i/p
P1 = 0xFF;

making a port pin i/p
P1_1 = 1;

making a port pin o/p
P1_1 = 0;

Please you can move on with your code now.. if any problem tell me..

www.rickeyworld.info
If you feel satisfied with the user's forum reply please click on the thank button.

Obey forum rules!
Respect others!
Back to top

programming 8051 microcontroller in C   port programming in C   timer programming in C   



This post has been thanked 1 time
isha
Thu Aug 02 2007, 12:23PM
 User Offline
Registered Member #2094
Joined: Sun Jul 08 2007, 09:48AM

Posts: 15
Thanked 5 times in 5 posts
sir, i 've started programming in C language but i'm having problems ...
why four seven segments have been used and why they are all connected to the same port? and what about their common cathodes where transistors are attathed?? how current pass through??? how to program those pins???
plz reply soon...


isha
Back to top



This post has been thanked 1 time
Ajay
Thu Aug 02 2007, 02:45PM
Rickey's World Admin

 User Offline

Registered Member #1
Joined: Fri Feb 24 2006, 04:56AM

Posts: 4042
Thanked 752 times in 711 posts
welcome back isha you came back after a long time..

anyways.. four segments are connected to same port just to save pins. otherwise you need 32 pins to connect four 7-seg but now you are just using 12 pins (4 common control and 8 data).
transistor will switch the seven segments on one by one. As you know the phenomenon "persistence of vision" of human eye.. so the 7-segments are going to be switched one by one so fast that human eye will think all of them as ON!!

this is done in C like this..
CODE:
   7seg_port = 7seg_decode(digit1);
    7seg1_cathode = 1;
    some_delay();
    7seg1_cathode = 0;
    7seg_port = 7seg_decode(digit2);
    7seg2_cathode = 1;
    some_delay();
    7seg2_cathode = 0;
    7seg_port = 7seg_decode(digit3);
    7seg3_cathode = 1;
    some_delay();
    7seg3_cathode = 0;
    7seg_port = 7seg_decode(digit4);
    7seg4_cathode = 1;
    some_delay();
    7seg4_cathode = 0;
 

So the above thing is done continuously..
explaination:
7seg(1,2,3,4)_cathode are the pins connected to transistor. making it 1 will activate the transistor and current flows from power via LED of 7-seg to ground.
7seg_port is the port where all 7-segment displays are connected.
7seg_decode(digit variable) this function gets an input digit which is going to be displayed. for example 0 is the digit to be displayed.. but you cannot directly send 0 to the port. so what you need to do is, get which LED has to glow on 7-seg (a,b,c,d,e,f,g) the dot LED is considered usually always off or as per you need..
e.g 0 is displayed on 7-seg like this..
|¯|
|_|
So to get this u need LED a,b,c,d,e,f as on so the decoded value for zero will be
CODE:

val     a   b  c  d  e  f   g   dot   Decoded
 0      1   1  1  1  1  1   0    0        0x3F

the above value is calculated as.. a is connected to Port pin 0, b with pin 1 and so on.. dot with dot with pin 7 of the port.

So once the decoded value is sent to the port.. switch the 7-seg on by switching the corresponding transistor. and then switch it off after some time.. this delay is provided by some_delay routine and the value of delay is selected according to your need.. just to avoid flickering on the display.
so this step by step switching will display the digits one by one so fast that.. user looking at the display will think that all 7-segments are ON!

I hope i am clear.. how to use 7-segments. If you still have doubt please feel free to ask

www.rickeyworld.info
If you feel satisfied with the user's forum reply please click on the thank button.

Obey forum rules!
Respect others!
Back to top

programming 7-segment display in C   7-segment interfacing with microcontroller   7-segment display   7-seg led display   



This post has been thanked 1 time
isha
Fri Aug 03 2007, 10:51AM
 User Offline
Registered Member #2094
Joined: Sun Jul 08 2007, 09:48AM

Posts: 15
Thanked 5 times in 5 posts
i tried it , but same digit is displayed on all the displays, what should be done if i have to display 11, 12 , or 100 or 1122 etc....

isha
Back to top



This post has been thanked 1 time
Go to page  1 2 [3] 4  

Jump:     Back to top

Syndicate this thread: rss 0.92 Syndicate this thread: rss 2.0 Syndicate this thread: RDF
Powered by e107 Forum System

8051 Microcontroller Projects 8051 AVR tutorials PIC microcontroller, 8051 assembly language programming electronics and communication ECE CSE pdf ebooks library BE final year project ideas Embedded systems