Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

How to add a new 7 seg display with unique pattern changeable by interrupt?

Status
Not open for further replies.

Narendra1190

Member level 2
Joined
Jan 23, 2014
Messages
44
Helped
6
Reputation
12
Reaction score
6
Trophy points
1,288
Activity points
1,666
hii frds..
need your help.working on 89s52 project.there are already SIX 7-seg dislplay. i want to add one more 7-segment display controlled by an interrupt.when i m doing it is affecting switching of other six display..how can i do multiplexing with two differnt pattern such that one numerical pattern for six 7-seg. and the other symbolic pattern for seventh seg. display controlling with interrupt.
how shld i add code?

the working code of six 7 seg. display is 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
void seven_seg_disp (void) interrupt 1  //timer 0 isr
{
    EA = 0;
    TR0 = 0;
    if(i == 1)
    {
        P0_1 = 1;P0_2 = 1;P0_3 = 1;
        P0_4 = 1;P0_5 = 1;//P0 = 0xFE;  //1add   //1111 1110
        P2 = lcddata[Li[0]];    //0
        P0_0 = 0;
        i++;
    }
    else if(i == 2)
    {
        P0_0 = 1;P0_2 = 1;P0_3 = 1;
        P0_4 = 1;P0_5 = 1;//P0 = 0xFD; //2add    //1111 1101
        P2 = lcddata[Li[1]];    //1
        P0_1 = 0;
        i++;
    }
    else if(i == 3)
    {
        P0_0 = 1;P0_1 = 1;P0_3 = 1;
        P0_4 = 1;P0_5 = 1;//P0 = 0xFB; //3add   //1111 1011
        P2 = lcddata[Li[2]]; //2
        P0_2 = 0;
        i++;
    }
    else if(i == 4)
    {
        P0_0 = 1;P0_1 = 1;P0_2 = 1;
        P0_4 = 1;P0_5 = 1;//P0 = 0xF7; //4add    //1111 0111
        P2 = lcddata[Li[3]]; //3
        P0_3 = 0;
        i++;
    }
    else if(i == 5)
    {
        P0_0 = 1;P0_1 = 1;P0_2 = 1;P0_3 = 1;
        P0_5 = 1;//P0 = 0xEF; //5add    //1110 1111
        P2 = lcddata[Li[4]]; //4
        P0_4 = 0;
        i++;
    }
    else if(i == 6)
    {
        P0_0 = 1;P0_1 = 1;P0_2 = 1;P0_3 = 1;
        P0_4 = 1;//P0 = 0xDF; //6add  // 1101 1111
        P2 = lcddata[Li[5]]; //5
        P0_5 = 0;
        i = 1;
    }
    }
    TH0 = 0xFC;
    TL0 = 0xEC;//   TL0 = 0xBE;
    TR0 = 1;
    EA = 1;
}
 
void appetizers (void)
{
     P1 = 0x00;      //to disable stapper motor
     P0 = 0xFF;
     TMOD = 0x11;    //timer 0 and timer 1 both used
     EA = 1;
     ET0 = 1;
     EX0 = 1;        //enables external int0
     IT0 = 1;        //ex interrupt0 in falling edge mode
     TH0 = 0xFC;     
     TL0 = 0xEC;//TL0 = 0xBE;
     TR0 = 1;        //timer0 is used for refreshing 7seg array.
}

 
Last edited:

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top