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