كود:
unsigned short mask(unsigned short num);
char Window;
char Num7SegmentU = '*';
char Num7SegmentT = '*';
char Num7SegmentH = '*';
int x = 0 ;
int yy = 0 ;
void interrupt()
{
if(UART1_Data_Ready())
{
trisa.b5 = 0 ;
porta.b5 = 1 ;
yy++;
if (yy==1) {Window = UART1_Read();}
if (yy==2)
{
if (Window == 'a' ) {Num7SegmentU = UART1_Read();Num7SegmentT = '0' ;Num7SegmentH = '0' ;}
}
if (yy==3)
{
if (Window == 'a') {Num7SegmentT = UART1_Read();}
}
if (yy==4)
{
if (Window == 'a') {Num7SegmentH = UART1_Read();}
}
if (yy > 4) yy=0 ;
pir1.f5=0;
trisa.b5 = 0 ;
porta.b5 = 0 ;
return;
}
}
void main()
{
cmcon=0x07;
INTCON.f7=1;INTCON.F6=1;
PIE1.f5=1;
trisb = 0 ;
portb = 0 ;
trisd = 0 ;
portd = 0 ;
UART1_Init (9600) ;
delay_ms(100) ;
for (;;)
{
trisa.b1 = 0 ;
porta.b1 = 1 ;
if (Num7SegmentU == '*' ) {portb = 1 ; portd = 191;}
if (Num7SegmentU == '0' ) {portb = 1 ; portd = mask(0);}
if (Num7SegmentU == '1' ) {portb = 1 ; portd = mask(1);}
if (Num7SegmentU == '2' ) {portb = 1 ; portd = mask(2);}
if (Num7SegmentU == '3' ) {portb = 1 ; portd = mask(3);}
if (Num7SegmentU == '4' ) {portb = 1 ; portd = mask(4);}
if (Num7SegmentU == '5' ) {portb = 1 ; portd = mask(5);}
if (Num7SegmentU == '6' ) {portb = 1 ; portd = mask(6);}
if (Num7SegmentU == '7' ) {portb = 1 ; portd = mask(7);}
if (Num7SegmentU == '8' ) {portb = 1 ; portd = mask(8);}
if (Num7SegmentU == '9' ) {portb = 1 ; portd = mask(9);}
delay_ms(2);
if (Num7SegmentT == '*' ) {portb = 2 ; portd = 191;}
if (Num7SegmentT == '0' ) {portb = 2 ; portd = mask(0);}
if (Num7SegmentT == '1' ) {portb = 2 ; portd = mask(1);}
if (Num7SegmentT == '2' ) {portb = 2 ; portd = mask(2);}
if (Num7SegmentT == '3' ) {portb = 2 ; portd = mask(3);}
if (Num7SegmentT == '4' ) {portb = 2 ; portd = mask(4);}
if (Num7SegmentT == '5' ) {portb = 2 ; portd = mask(5);}
if (Num7SegmentT == '6' ) {portb = 2 ; portd = mask(6);}
if (Num7SegmentT == '7' ) {portb = 2 ; portd = mask(7);}
if (Num7SegmentT == '8' ) {portb = 2 ; portd = mask(8);}
if (Num7SegmentT == '9' ) {portb = 2 ; portd = mask(9);}
delay_ms(2);
if (Num7SegmentH == '*' ) {portb = 4 ; portd = 191;}
if (Num7SegmentH == '0' ) {portb = 4 ; portd = mask(0);}
if (Num7SegmentH == '1' ) {portb = 4 ; portd = mask(1);}
if (Num7SegmentH == '2' ) {portb = 4 ; portd = mask(2);}
if (Num7SegmentH == '3' ) {portb = 4 ; portd = mask(3);}
if (Num7SegmentH == '4' ) {portb = 4 ; portd = mask(4);}
if (Num7SegmentH == '5' ) {portb = 4 ; portd = mask(5);}
if (Num7SegmentH == '6' ) {portb = 4 ; portd = mask(6);}
if (Num7SegmentH == '7' ) {portb = 4 ; portd = mask(7);}
if (Num7SegmentH == '8' ) {portb = 4 ; portd = mask(8);}
if (Num7SegmentH == '9' ) {portb = 4 ; portd = mask(9);}
delay_ms(2);
}
}//end main
unsigned short mask(unsigned short num){
switch(num){
case 0: return 192 ;
case 1: return 249 ;
case 2: return 164 ;
case 3: return 176 ;
case 4: return 153 ;
case 5: return 146 ;
case 6: return 130 ;
case 7: return 248 ;
case 8: return 128 ;
case 9: return 144 ;
}
}
هذا هو الكود الذي أعمل عليه