Nazwisko i Imię: …………………………………………………………… Nr Indeksu: ……………… Data: ……………………… Przedmiot: SW 1)……… 2)……… 3)……… 4)……… 5)……… Suma:…………………… Ocena: ………… |
Napisz kod programu dodający dwie liczby 4 bitowe, z których pierwsza podana jest na bitach 0 (młodsza), 1, 6 i 7 (starsza), a druga na bitach 2 (młodsza), 3 , 4, 5 (starsza) portu P1. Wynik dodawania wyświetl na porcie P2.
/10 pkt/
Napisz kod programu zwiększający o jeden liczbę „a” umieszczoną w pamięci zewnętrznej danych pod adresem 8080 Hex. /10 pkt/
Podaj wynik /dziesiętnie/ wykonania programu podanego niżej. Przyjmij, że wartość w porcie P1 wynosi 01010010. /10/
#define <8051.h>
unsigned char bdata a, b;
sbit a0 = a^0; sbit a1 = a^1; sbit a2 = a^2; sbit a3 = a^3;
sbit b0 = b^0; sbit b1 = b^1; sbit b2 = b^2; sbit b3 = b^3;
void main (void)
{
a0 = P1^0; a1 = P1^1; a2 = P1^6; a3 = P1^7;
b0 = P1^2; b1 = P1^3; b2 = P1^4; b3 = P1^5;
P2 = a + b;
while (1) {;}
}
Napisz kod programu (zmieniający na przeciwny 3 bit zmiennej „b” umieszczonej w pamięci wewnętrznej danych. /10 pkt/
Napisz bez użycia dyrektywy sbit program równoważny podanemu: /10 pkt/
sbit W1 = Key^2; sbit W2 = Key^3; sbit W3 = Key^4; sbit W4 = Key^5;
void ISR_Timer1 (void) interrupt 3
{
Key = P0; if ((W1 & W2 & W3 & W4) != 1) {P2 = Key;}
}
Odpowiedzi