Witam, aktualnie na pracowni wałkujemy DSM-51 i jest dla mnie sporo niewiadomych i prosiłbym o wyjaśnienie/pomoc. Do rzeczy, pierwsza sprawa;
- sterowanie diodą i brzęczykiem, korzystałem z poniższego kodu:
LED EQU P1.7
BUZZER EQU P1.7
LJMP START
ORG 100H
START:
LOOP:
CPL LED
CPL BUZZER
MOV A,#10 ;czekaj czas 10*100ms=1s
LCALL DELAY_100MS
LJMP LOOP
Opis: definicja portów, włącz diodę/brzęczyk, powtórz to wiem. Pierwsze pytanie to jak jest odmierzany czas, przez który czeka 1s?
Kolejna sprawa. Na ćwiczeniu miałem podany poniższy kod:
LCALL LCD_CLR
LCALL WAIT_KEY
SWAP A
MOW R0,A
LCALL WAIT_KEY
XRL A,R0
LCALL WRITE_HEX
MOV A,R0
Program czeka na wybranie liczby heksadecymalnych z klawiatury i wynik podaje na LCD.
Pierwsza część dotyczyła dodawania liczb całkowitych, 8-bitowych. Miałem dodać 2 liczby binarne i program wykonywać krokowo by zaobserwować wynik dodawania. Mam podane liczby 239 i 114. Po prostu je zamienić na heksalne, dodać i zamienić na binarne?
Druga część to odejmowanie liczb całkowitych z użyciem kodu U2. U2 to kod uzupełnień do 2. Program ten samo co poprzednio. Czyli jak mniemam mam wykonać dodawanie liczby ujemnej: A+(-B). Mam 105+(-122).
Kod U2 liczby to 01101001 a -122 to 10000110. Jednak do zamiany -B na dodatnią potrzebne są odpowiednie rozkazy, własnie nie wiem jakie i jak je użyć oraz jak dodaje się w U2. Mam też podać wartości wskaźników C AC OV P. OV- przeniesienie, AC przeniesienie pomocnicze. Pozostałe nie kojarze. Jak się je wyznacza te wskaźniki?
Na ten czas to tyle. Z góry dziękuję za pomoc
- sterowanie diodą i brzęczykiem, korzystałem z poniższego kodu:
LED EQU P1.7
BUZZER EQU P1.7
LJMP START
ORG 100H
START:
LOOP:
CPL LED
CPL BUZZER
MOV A,#10 ;czekaj czas 10*100ms=1s
LCALL DELAY_100MS
LJMP LOOP
Opis: definicja portów, włącz diodę/brzęczyk, powtórz to wiem. Pierwsze pytanie to jak jest odmierzany czas, przez który czeka 1s?
Kolejna sprawa. Na ćwiczeniu miałem podany poniższy kod:
LCALL LCD_CLR
LCALL WAIT_KEY
SWAP A
MOW R0,A
LCALL WAIT_KEY
XRL A,R0
LCALL WRITE_HEX
MOV A,R0
Program czeka na wybranie liczby heksadecymalnych z klawiatury i wynik podaje na LCD.
Pierwsza część dotyczyła dodawania liczb całkowitych, 8-bitowych. Miałem dodać 2 liczby binarne i program wykonywać krokowo by zaobserwować wynik dodawania. Mam podane liczby 239 i 114. Po prostu je zamienić na heksalne, dodać i zamienić na binarne?
Druga część to odejmowanie liczb całkowitych z użyciem kodu U2. U2 to kod uzupełnień do 2. Program ten samo co poprzednio. Czyli jak mniemam mam wykonać dodawanie liczby ujemnej: A+(-B). Mam 105+(-122).
Kod U2 liczby to 01101001 a -122 to 10000110. Jednak do zamiany -B na dodatnią potrzebne są odpowiednie rozkazy, własnie nie wiem jakie i jak je użyć oraz jak dodaje się w U2. Mam też podać wartości wskaźników C AC OV P. OV- przeniesienie, AC przeniesienie pomocnicze. Pozostałe nie kojarze. Jak się je wyznacza te wskaźniki?
Na ten czas to tyle. Z góry dziękuję za pomoc