sruthi009
Newbie level 5

Hi,
I wants to get the output of seven segment(0 to 999) multiplexing,thats why i searched in google i got the program for seven segment multiplexing,but in that coding four seven segments are connected to microcontroller directly,but in my board, thery connected seven segment through buffer to miccorcontroller.Now which one i have to change coding part to get the out,i pasted the code below.
I wants to get the output of seven segment(0 to 999) multiplexing,thats why i searched in google i got the program for seven segment multiplexing,but in that coding four seven segments are connected to microcontroller directly,but in my board, thery connected seven segment through buffer to miccorcontroller.Now which one i have to change coding part to get the out,i pasted the code below.
Code C - [expand] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 #include<reg51.h> sbit dig_ctrl_4=P1^0; // Control pins for the seven segments sbit dig_ctrl_3=P1^1; sbit dig_ctrl_2=P1^2; sbit dig_ctrl_1=P1^3; unsigned char dig_disp=0; int min2; int min1; int sec2; int sec1; char digi_val[10]={0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0x00,0x10}; void delay() // Function to provide time delay using Timer 1. { int i; for(i=0;i<20;i++) { TL1=0xFD; TH1=0x4B; TR1=1; while(TF1==0); TR1=0; TF1=0; } } void display() interrupt 1 // Function to display the four digit number using multiplexing on seven segment. It uses Timer 0 interrupt to display the four digits one by one after a time delay of 2.5 milli second { TL0=0x36; TH0=0xf6; P2=0xFF; dig_ctrl_1 = dig_ctrl_3 = dig_ctrl_2 = dig_ctrl_4 = 0; dig_disp++; dig_disp=dig_disp%4; switch(dig_disp) { case 0: P2=digi_val[sec1]; dig_ctrl_1 = 1; break; case 1: P2= digi_val[sec2]; dig_ctrl_2 = 1; break; case 2: P2= digi_val[min1]; dig_ctrl_3 = 1; break; case 3: P2= digi_val[min2]; dig_ctrl_4 = 1; break; } } void main() { TMOD=0x11; // Intialize Timer 0 TL0=0x 36; TH0=0xF6; IE=0x82; TR0=1; //Start timer0 while(1) // Forward counting { min2=min1=sec2=sec1=0; for(min2=0;min2<10;min2++) { for(min1=0;min1<10;min1++) { for(sec2=0;sec2<10;sec2++) { for(sec1=0;sec1<10;sec1++) { delay(); } } } } } }
Last edited by a moderator: