Add ES/Lab/Lab8/7SegUpDown-Switch.c
This commit is contained in:
		
							parent
							
								
									ea1ba0610e
								
							
						
					
					
						commit
						d0d8e949e2
					
				
					 1 changed files with 47 additions and 0 deletions
				
			
		
							
								
								
									
										47
									
								
								ES/Lab/Lab8/7SegUpDown-Switch.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								ES/Lab/Lab8/7SegUpDown-Switch.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
#include <LPC17xx.h>
 | 
			
		||||
 | 
			
		||||
int main(void){
 | 
			
		||||
    unsigned long i, j, n;
 | 
			
		||||
		unsigned int x;
 | 
			
		||||
    unsigned long number = 0;
 | 
			
		||||
    unsigned long count = 0;
 | 
			
		||||
    unsigned char seven_seg[16] = {
 | 
			
		||||
        0x3F, 0x06, 0x5B, 0x4F,
 | 
			
		||||
        0x66, 0x6D, 0x7D, 0x07,
 | 
			
		||||
        0x7F, 0x6F, 0x77, 0x7C,
 | 
			
		||||
        0x39, 0x5E, 0x79, 0x71
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    LPC_PINCON->PINSEL0 = 0;
 | 
			
		||||
    LPC_GPIO0->FIODIR |= (0xFF << 4);
 | 
			
		||||
    LPC_PINCON->PINSEL3 = 0;
 | 
			
		||||
    LPC_GPIO1->FIODIR |= (0x0F << 23);
 | 
			
		||||
    LPC_GPIO0->FIODIR &= ~(1 << 21);
 | 
			
		||||
 | 
			
		||||
    while (1) {
 | 
			
		||||
        n = number;
 | 
			
		||||
				x = LPC_GPIO0->FIOPIN & (1 << 21);
 | 
			
		||||
			
 | 
			
		||||
        for (i = 0; i < 4; i++) {
 | 
			
		||||
            LPC_GPIO1->FIOCLR = (0x0F << 23);
 | 
			
		||||
            LPC_GPIO1->FIOSET = (i << 23);
 | 
			
		||||
            LPC_GPIO0->FIOCLR = (0xFF << 4);
 | 
			
		||||
            LPC_GPIO0->FIOSET = ((unsigned long)seven_seg[n % 10] << 4);
 | 
			
		||||
            n = n / 10;
 | 
			
		||||
            for (j = 0; j < 1000; j++);
 | 
			
		||||
            LPC_GPIO0->FIOCLR = (0xFF << 4);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        count++;
 | 
			
		||||
        if (count == 1000) {
 | 
			
		||||
            count = 0;
 | 
			
		||||
            if (x) {
 | 
			
		||||
                number = (number + 1) % 10000;
 | 
			
		||||
            } else {
 | 
			
		||||
                if (number == 0) number = 9999;
 | 
			
		||||
                else number--;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue