PTM materiały 2


2014-12-04
System dwójkowy (binarny)
Dwójkowy system liczbowy to pozycyjny system liczbowy,
w którym podstawą jest liczba 2. Do zapisu liczb potrzebne
Podstawy techniki
są więc tylko dwie cyfry: 0 i 1.
mikroprocesorowej
110012 = 1*24 + 1*23 + 0*22 + 0*21 + 1*20 = 2510
Część 2. Systemy liczbowe
Typy danych
Operatory języka C
Powszechnie jest używany w elektronice cyfrowej, do
Wybrane instrukcje języka C
reprezentacji poziomów (zakresów) napięć na liniach
Instrukcje logiczne na portach sygnałowych:
dr inż. Marcin Pawlak
Stan  0" : <0.8V (0 ÷ 0,4V)
Kontakt:
TTL
Pokój 320 bud. A10
Stan  1" : >2V (2.4 ÷ 5V)
Tel. 320 3253
marcin.pawlak@pwr.wroc.pl
Kod BCD Kod uzupełnień do dwóch
Kod uzupełnień do dwóch (w skrócie U2 lub ZU2) jest obecnie
Kod BCD (ang. Binary-Coded Decimal czyli dziesiętny zakodowany
najpopularniejszym sposobem zapisu liczb całkowitych. Operacje
dwójkowo)  stosowany w elektronice i informatyce sposób zapisu liczb
dodawania i odejmowania sÄ… w nim wykonywane tak samo jak dla liczb
polegający na zakodowaniu kolejnych cyfr dziesiętnych liczby dwójkowo
binarnych bez znaku. Ponadto, zaletÄ… tego kodu jest tylko jedna
przy użyciu czterech bitów. Taki zapis pozwala na łatwą konwersję liczby
reprezentacja  zera (00000000).
do i z systemu dziesiętnego.
Liczby dodatnie reprezentuje się przez zwykłe liczby binarne bez znaku.
2 5 7 1
Liczbę ujemną reprezentuje liczba binarna, którą trzeba dodać do liczby
dodatniej o tym samym module, aby otrzymać zero.
257110 = 0010 0101 0111 0001 BCD
Bit
znaku
Kod BCD jest obecnie stosowany głównie w urządzeniach
n-1 n-2 3 2 1 0
elektronicznych z wyświetlaczem cyfrowym (np. w kalkulatorach,
Zapis w kodzie U2:
-2 2 2 2 2 2
miernikach cyfrowych)
7 6 5 4 3 2 1 0
-2 2 2 2 2 2 2 2
-10010 = 1 0 0 1 1 1 0 0 U2
Zamiana liczby w kodzie U2 na przeciwnÄ… System szesnastkowy
Szesnastkowy system liczbowy (czasem nazywany
heksadecymalnym, skrót HEX)  pozycyjny system liczbowy, w
Aby zamienić liczbę w kodzie U2 na przeciwną należy:
którym podstawą jest liczba 16. Do zapisu liczb w tym systemie
- dokonać inwersji bitów
potrzeba szesnastu cyfr:
- zwiększyć wynik o 1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 A B C D E F
+2210 = 0 0 0 1 0 1 1 0 2
inwersja
163 162 161 160
1 1 1 0 1 0 0 1 INV 2
F C 1 5
+1
1 1 1 1 1 1 0 0 0 0 0 1 0 1 0 1
1 1 1 0 1 0 1 0 U2 = -2210
FC1516 = 15*163 + 12*162 + 1*161 + 5*160 = 6453310
1
2014-12-04
Bajt  podstawowa komórka pamięci ATmega32  wewnętrzna pamięć danych
liczba = { 0 ... 255 }
128 64 32 16 8 4 2 1
0 1 0 1 0 1 1 1
7 6 5 4 3 2 1 0
liczba = 1*26 + 1*24 + 1*22 + 1*21 + 1*20 = 87
Øð liczba = 87;
Øð liczba = 0b01010111;
Øð liczba = 0x57;
Øð liczba =  W
Typy danych w języku C Operatory w języku C
Wartość Wartość
Operatory arytmetyczne
Typ Rozmiar (bitów)
minimalna maksymalna
char 8
dodawania
+
signed char 8 -128 127
odejmowania
-
unsigned char 8 0 255
mnożenia
*
short int 16 -32768 32767
dzielenia
unsigned short int 16 0 65535 /
int 16 -32768 32767
dzielenia modulo (reszta z dzielenia całkowitego)
%
unsigned int 16 0 65535
Inkrementacji (zwiększenia o 1)
++
long int 32 -231 231-1
Dekrementacji (zmniejszenia o 1)
unsigned long int 32 0 232-1 --
long long int 64 -263 263-1
unsigned long long
Op. przyrównania
64 0 264-1
int
np.:
równy
float 32 Ä…1.18·10-38 Ä…3.4·1038 ==
if (a == 5) { ... }
double 32 Ä…1.18·10-38 Ä…3.4·1038
różny
!=
if (c != 0) { ... }
long double 32 Ä…1.18·10-38 Ä…3.4·1038
Operatory  c.d. Operatory przypisania
Podstawowym operatorem przypisania jest  =
Operatory relacji Operatory bitowe
unsigned char a, b;
Przykład:
większy bitowe OR
> |
a = 5;
b = 0x0F;
większy równy bitowe AND
>= &
mniejszy bitowe XOR
< ^
Oprócz tego, w języku C stosuje się rozszerzone operatory przypisania,
mniejszy równy przesunięcie w prawo które stanowią skróconą formę wyrażenia arytmetycznego lub
<= >>
logicznego, np:
przesunięcie w lewo
<<
a += 5 Ä…ð a = a + 5
negacja bitów
~
Operatory logiczne b -= 7 Ä…ð b = b  7
c *= 10 Ä…ð c = c * 10
AND d /= 2 Ä…ð d = d / 2
&&
e |= 0xF0 Ä…ð e = e | 0xF0
OR
||
f &= 128 Ä…ð f = f & 128
operator negacji g <<= 2 Ä…ð g = g<<2
!
h %= 5 Ä…ð h = h % 5
i ^= 0x0A Ä…ð i = i ^ 0x0A
2
2014-12-04
Pętla warunkowa  while Pętla iteracyjna  for
for (wyraż_1 ; wyraż_2 ; wyraż_3)
while (wyrażenie) instrukcja;
{
instrukcje;
Przykład:
}
while (a < 16)
{
Przykład:
tab[a] = 2*a + 4;
a++;
for (i = 0 ; i < 100 ; i++)
}
{
lub:
tab1[i] = 100  2 * i;
tab2[i] = i + 1;
do instrukcja; while (wyrażenie);
}
Instrukcja wyboru  if Instrukcja wyboru  switch
switch (zmienna typu całkowitego) {
if (wyrażenie) instrukcja; else instrukcja;
case (wariant 1): instrukcja; break;
...
case (wariant n): instrukcja; break;
Przykład:
default: instrukcja; break;}
if (ADC > 0)
{
Przykład:
wynik = ADC;
switch (klawisz)
znak_minus = 0;
{
}
case 0: display = 0x01; break;
else
case 1: display = 0x1B; break;
{
case 2: display = 0xF0; break;
wynik = -ADC
case 3: display = 0x2E; break;
znak_minus = 1;
default: display = 0xFF; break;
}
}
Instrukcje logiczne AND, OR, XOR Instrukcja AND
a = 0x0F
0 0 0 0 1 1 1 1
0x0F
Wej 1 Wej 2
AND OR XOR
AND
0 0 0
0 0
0 0 1 1 0 0 1 1
0x33
0 1 0 1 1
1 0 0 1 1
0 0 0 0 0 0 1 1
0x03
1 1 1 1 0
a = 0x03
a = 0x0F; a = 0x0F;
LUB
a = a & 0x33; a &= 0x33;
3
2014-12-04
Instrukcja OR Instrukcja XOR
a = 0x0F a = 0x0F
0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0x0F 0x0F
OR XOR
1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1
0xC3 0x33
1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0
0x03 0x3C
a = 0xCF a = 0x3C
a = 0x0F; a = 0x0F; a = 0x0F; a = 0x0F;
LUB LUB
a = a | 0xC3; a |= 0xC3; a = a ^ 0x33; a ^= 0x33;
Program przykładowy  sterowanie portów Program przykładowy, cz.1
DDRB = 0xFF; //Port B jako wyjście
#include
//instrukcje przypisania
PORTB = 0x00; //HEX
int main(void)
PORTB = 0xAA;
{
PORTB = 0x55;
DDRB = 0xFF; //Port B jako wyjście
PORTB = 128; //DEC
PORTB = 7;
PORTB = 'p'; //ASCII( p ) = 70h
while (1)
{
PORTB = 0b10000000; //BIN
PORTB = 0x0F;
PORTB = 0xF0;
//instrukcje logiczne
}
PORTB |= 0b00001111; //OR
}
PORTB &= 0b11111100; //AND
Program przykładowy, cz.2
PORTB = 0x00;
PORTB ^= 0x0F; //XOR
PORTB ^= 0x0F;
PORTB = 0xFF;
PORTB &= 1;
PORTB = 0xFF;
PORTB &= ~1;
PORTB = 0;
PORTB = (1 << 3) | (1 << 5); //0b00101000
PORTB = _BV(1); //makro Bit Value
unsigned char a = 1;
PORTB = a;
a <<= 1;
PORTB = a;
4


Wyszukiwarka

Podobne podstrony:
PTM materiały 5
PTM materiały 4
PTM materiały 6
PTM materiały 1
PTM materiały 3
CHEMIA materiały dodatkowe
Analiza samobójstw w materiale sekcyjnym Zakładu Medycyny Sądowej AMB w latach 1990 2003
1 Materiały tymczasowe
Materiały pomocnicze Krzysztof Żywicki
MaterialyWyklad6,7Geologia
materials
notatek pl dr in Jaros aw Chmiel, Nauka o materia ?h, Przemiany podczas odpuszczania
Nauka o materiałach 2 VI
12 Wykonywanie sterylizacji instrumentów, materiałów
exams materials?emstr tb05
material

więcej podobnych podstron