12-bitowy DAC pracuje z napięciem odniesienia 4.096 V. Proszę podać jakie napięcie pojawi się na analogowym wyjściuDAC jeśli jego rejestry danych DACDATAH oraz DACDATAL zostaną wypełnione wartością odpowiadającą 2000 + ostatnie trzy cyfry Twojego numeru albumu.
//1
D = 2007
N = 12
Uref = 4,096
Uout=Uref*D/2N
Uout = 4,096 * (2007 / (2^12) = 2,007
//2
(2000+xyz/)1000 = 2.xyz V
Sześć urządzeń o adresach: U1: 100, U2: 96, U3: 64, U4: 60+dzieńTwojegoUrodzenia, U5: 87 i U6: 107 dołączono do magistrali I2C. W pewnym momencie urządzenia U1 i U6 zaczynają nadawać sekwencję START, a następnie adresy. Urządzenie U1 adresuje się do U2, a U6 do U4. Które uzyska dostęp do magistrali i dlaczego.
U1: 1100100 -> U2: 1100000
U2: 1100000
U3: 1000000
U4: 1010010
U5: 1010111
U6: 1101011 -> U4: 1010010
Nie wiem do końca, czy o to chodzi (czy porównuję dobre wartości), ale: jeśli dwa układy master zainicjują cykl transmisji w tej samej chwili, przy najbliższej różnicy w treści wysyłanych bitów układ, który wysyłał zero uzyska kontrolę nad magistralą, a układ, który wysyłał jedynkę będzie zmuszony do czekania na jej zwolnienie. Stąd wynika, że U6 powinien przejąć kontrolę, co by się zgadzało.
Procesor 8-bitowy z 8-mio bitowymi rejestrami ma wykonać następuyjący rachunek: WYNIK =4*(rokTwojegourodzenia+miesiącTwojegourodzenia)–rokTwojego urodzenia/2. Proszę napisać fragment kodu używając instrukcji znanego Ci procesora (8051, AVR lub ARM)
Dla przykładu 1992+11 (1992 to 7C8 i trzba to rozlozyc na 2 rejestry)
MOV R2,#07H
MOV R3,#0C8H
ADD R3,#11
MOV R4,#4
MUL R3,R4 --- > wyniki będą w R0 i R1
MOV R7,R0 //w tej linijce jest blad i dalej już jest zryte
MUL R2,R4
ADD R7,R0
MOV R3,R7
ADDC R6,R1
MOV R2,R6
Podaj interpretację każdej linii poniższego kodu oraz funkcję tego fragmentu programu
start:
MOV SP,#STACK ; USTAWIENIE SP PRZEZ WARTOSC STACK
MOV R0,#050H ; R0 USTAWIAMY A WARTOSC 50H
CLR A ; ZERUJ A
zero:
MOV @R0,A ;PRZENOSIMY AKUMULATOR DO ADRESU W R0 INC R0
CJNE R0,#STACK+1,zero ; JEŚLI R0 JEST ROWNE STACK+1 TO IDZIEMY DO ZERO
;
Funkcja czyści pamięć od adresu 0x50 do adresu zapisanego pod STACK+1.
Napisz podprogram obsługi przerwania od czasomierza T0, w którym za każdym wywołaniem zmniejsza się o jeden zmienną ROK, aż osiągnie wartość zero. Początkowo ROK ma wartość równą Twojemu wiekowi. // to tez jest zle
ROK DATA 0
CSEG AT 0h
JMP start
CSEG AT 0Bh
JMP timer_int
start:
MOV ROK, #21d ; laduj Twój wiek
MOV TMOD, #00000001b
SETB TR0
SETB ET0
SETB EA
SJMP $
timer_int:
DJNZ ROK, dalej
CLR TR0
dalej:
RETI
END
Poznaj poniższy program i podaj jaki protokół komunikacyjny realizuje
; SUBROUTINE RELAYS
sets relays which allow powering of given channels according to bits
in ACC bit0 is for channel 0 etc. COMPLEMENT acc for shift register
//////////////////////////////////////////////////////////////////////////////////////// JEST TO INTERFERSJ SPI /////////////////////////////////////////////////
RELAYS:
|
|
||
|
|
|
|
|
|
||
|
|
||
l0: |
|
|
|
|
|
||
|
skocz | ||
|
|
||
skocz: | |||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|