Discussion in "Project Doubts" started by    isha    Jul 13, 2007.
Thu Jul 19 2007, 05:57 AM
sir, plz guide me how to start programming the project "digital visitror counter " in C language??????????

 tienduhieu like this.
Thu Jul 19 2007, 01:20 PM
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.
 ishatienduhieu like this.
Fri Jul 20 2007, 12:42 PM
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.....
 tienduhieu like this.
Sat Jul 21 2007, 06:10 AM
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

[ Edited Sat Feb 16 2008, 09:13 AM ]
 tienduhieu like this.
Sat Jul 21 2007, 06:32 AM
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...
#include #define port_name port
e.g. #define abc P1
and pin can de defined as..
#define def P2_1

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. :-)
 tienduhieu like this.
Tue Jul 24 2007, 06:19 PM
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
 tienduhieu like this.
Wed Jul 25 2007, 09:19 AM
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
else{ //execute the code if Port 1 pin 1 is clear

or you can sometime have this way too..

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

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..
 tienduhieu like this.
Tags programming 8051 microcontroller in Cport programming in Ctimer programming in C
Thu Aug 02 2007, 07:23 PM
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...
 tienduhieu like this.
Thu Aug 02 2007, 09:45 PM
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..

    7seg_port = 7seg_decode(digit1);
    7seg1_cathode = 1;
    7seg1_cathode = 0;
    7seg_port = 7seg_decode(digit2);
    7seg2_cathode = 1;
    7seg2_cathode = 0;
    7seg_port = 7seg_decode(digit3);
    7seg3_cathode = 1;
    7seg3_cathode = 0;
    7seg_port = 7seg_decode(digit4);
    7seg4_cathode = 1;
    7seg4_cathode = 0;

So the above thing is done continuously..
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
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
 tienduhieu like this.
Tags programming 7-segment display in C7-segment interfacing with microcontroller7-segment display7-seg led display
Fri Aug 03 2007, 05:51 PM
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....
 tienduhieu like this.

Get Social


Powered by e107 Forum System


Fri Jul 19 2019, 10:33 AM
Thu Jul 11 2019, 07:55 PM
@ramos https://www.theengineeringprojects.com/2017/09/l298-motor-driver-library-proteus.html
Thu Jul 11 2019, 07:44 PM
@praveen123. Can you give a link to the project ?
Thu Jul 11 2019, 04:47 PM
buenos dias alguien podria ayudarme necesito saber como descargar la libreria del l298n para proteus
Thu Jul 11 2019, 11:11 AM
anyone can help me
Thu Jul 11 2019, 11:11 AM
i need source code for 8051 -smart trolley rfid
Thu Jul 11 2019, 11:10 AM
Thu Jun 27 2019, 09:14 PM
Hi.. good to see you again
۞ TPS ۞
Thu Jun 27 2019, 07:31 AM
Tue Jun 18 2019, 11:21 AM
Hlo Dear , I've to program AT89C51AC3 RT-LUM using flip but I'm getting time out error for RS232. Will you please suggest me which programmer will be supportable to program this Chip.



Fri Jul 19 2019, 11:31 AM
Fri Jul 19 2019, 07:36 AM
Thu Jul 18 2019, 11:39 AM
Sat Jul 13 2019, 07:09 AM
Wed Jul 10 2019, 01:17 PM
Fri Jul 05 2019, 04:25 AM
Sat Jun 29 2019, 05:02 PM
Tue Jun 18 2019, 11:15 AM


Guests: 39, Members: 0 ...

most ever online: 182184
(Members: , Guests: 182184) on 06 Aug 2010: 05:37 AM

Members: 38080
Newest member: rpels7707
Forum Activity
ameya123 Avatar
Posted By ameya123
Fri Jul 19 2019, 07:42 AM
Hello,Please share 8051 Assembly language code for...
figureyang Avatar
Posted By figureyang
Fri Jul 05 2019, 04:37 AM
here is the source code prepared for you download ...
figureyang Avatar
Posted By figureyang
Fri Jul 05 2019, 04:30 AM
Cheap_Flash_FS(Normal Version)--Embedded FAT16/32 ...
wimac Avatar
Posted By wimac
Sat Jun 22 2019, 01:26 PM
I’ve use the AT89C51ED2 which has a similar progra...
ExperimenterUK Avatar
Posted By ExperimenterUK
Thu Jun 20 2019, 10:08 PM
baud rate is 9600 at stop bits of 2. AdiGhaziThe u...
AdiGhazi Avatar
Posted By AdiGhazi
Thu Jun 20 2019, 05:24 AM
Dear,I'm using RS232 serial port cable to use flip...
ExperimenterUK Avatar
Posted By ExperimenterUK
Tue Jun 18 2019, 10:19 PM
Okay.. I have never programmed the AT89C51AC3 or ...
AdiGhazi Avatar
Posted By AdiGhazi
Tue Jun 18 2019, 11:20 AM
Hlo Dear ,I've to program AT89C51AC3 RT-LUM using ...
ExperimenterUK Avatar
Posted By ExperimenterUK
Thu May 30 2019, 08:32 PM
It occurs to me that although the P89LPC921 and P8...
ExperimenterUK Avatar
Posted By ExperimenterUK
Wed May 29 2019, 09:05 PM
I would suggest a fresh approach.The Keil compile...