Академический Документы
Профессиональный Документы
Культура Документы
and Arrays
• Arrays are:
– Closely related values that share the same name
and are indexed by a number
– Can be stored in RAM, Flash or EEPROM
Array Element
ECET 209 Purdue University 3
Arrays
• Accessing Arrays
– Arrays are accessed by their name and an index
– The index is held inside of square brackets
– The index starts at zero
– The final element is then the length of the array
minus 1
Array Name
ECET 209 Purdue University 10
Example Array with ASCII
Characters
Data Type
ECET 209 Purdue University 11
Example Array with ASCII
Characters
Number of
Elements
ECET 209 Purdue University 12
Example Array with ASCII
Characters
Assignment Operator
Braces
2
2
0
Ω
ATmega16
2
2
0
Ω
ATmega16 VCC
2
2
0
Ω
ECET 209 Purdue University 26
Arrays with 7-segment display
VCC
2
2
0
Ω
ATmega16
};
VCC
BCD
8 2
4 2
2 7447 0
1 Ω
BCD
8 2
4 2
2 7447 0
1 Ω
+5
Select digit
BCD 4 3 2 1
8 2
4 2
2 7447 0
1 Ω
+5
4
3 +5
2 +5
1
+5
ECET 209 Purdue University 33
Select digit
Multiplexing Details
BCD 4 3 2 1
0 8 2
0 4 2
0 2 7447 0
1 1 Ω
+5
0 4
1 3 +5
1 2 +5
1 1
+5
ECET 209 Purdue University 36
Select digit
To display 1957
BCD 4 3 2 1
1 8 2
0 4 2
0 2 7447 0
1 1 Ω
+5
1 4
0 3 +5
1 2 +5
1 1
+5
ECET 209 Purdue University 37
Select digit
To display 1957
BCD 4 3 2 1
0 8 2
1 4 2
0 2 7447 0
1 1 Ω
+5
1 4
1 3 +5
0 2 +5
1 1
+5
ECET 209 Purdue University 38
Select digit
To display 1957
BCD 4 3 2 1
0 8 2
1 4 2
1 2 7447 0
1 1 Ω
+5
1 4
1 3 +5
1 2 +5
0 1
+5
ECET 209 Purdue University 39
Select digit
To display 1957
BCD 4 3 2 1
0 8 2
0 4 2
0 2 7447 0
1 1 Ω
+5
0 4
1 3 +5
1 2 +5
1 1
+5
ECET 209 Purdue University 40
Select digit
ECET 209 Purdue University 41
7-Segment Display Board
Digit 4 PORTA.7
Digit 3 PORTA.6
Digit 2 PORTA.5
Digit 1 PORTA.4
BCD 8 PORTA.3
BCD 4 PORTA.2
BCD 2 PORTA.1
BCD 1 PORTA.0
ECET 209 Purdue University 44
ECET 209 Purdue University 45
Array Usage
• What if …
BCD_data
1
9
5
7
BCD_data
1 index 0
9 index 1
5 index 2
7 index 3
Digit_Select
0x70 index 0
0xB0 index 1
0xD0 index 2
0xE0 index 3
while (1)
{
for ( index = 0 ; index < 4; index++)
{
PORTA = Digit_Select[index] | BCD_data [index ];
delay( 4 );
}
}
BCD 4 3 2 1
0 8 2
0 4 2
0 2 7447 0
1 1 Ω
+5
0 4
1 3 +5
1 2 +5
1 1
+5
ECET 209 Purdue University 51
Select digit
To display 1957
BCD 4 3 2 1
1 8 2
0 4 2
0 2 7447 0
1 1 Ω
+5
1 4
0 3 +5
1 2 +5
1 1
+5
ECET 209 Purdue University 52
Select digit
To display 1957
BCD 4 3 2 1
0 8 2
1 4 2
0 2 7447 0
1 1 Ω
+5
1 4
1 3 +5
0 2 +5
1 1
+5
ECET 209 Purdue University 53
Select digit
To display 1957
BCD 4 3 2 1
0 8 2
1 4 2
1 2 7447 0
1 1 Ω
+5
1 4
1 3 +5
1 2 +5
0 1
+5
ECET 209 Purdue University 54
Select digit
Questions?