Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

NIM1

elektronikopo
-
-
Posty: 160
Rejestracja: 8 lis 2007, o 22:59
Lokalizacja: Poznań

NIM1

Postautor: elektronikopo » 5 sty 2008, o 12:08

Mam napisąc na Dsmie program jakim będzie gra NIM1 narazie napisałem i nie wiem co dalej prosze o pomoc

Kod: Zaznacz cały

LJMP START ORG 100H START: MOV R1,#20 MOV R0,#20H MOVX A,@R0 CPL A MOVX @R1,A JNZ LOP MOV R1,#21 MOV R0,#20H MOVX A,@R0 CPL A MOVX @R1,A JNZ LOP MOV R1,#22 MOV R0,#20H MOVX A,@R0 CPL A MOVX @R1,A JNZ LOP MOV R1,#23 MOV R0,#20H MOVX A,@R0 CPL A MOVX @R1,A JNZ LOP MOV R1,#24 MOV R0,#20H MOVX A,@R0 CPL A MOVX @R1,A JNZ LOP MOV R1,#25 MOV R0,#20H MOVX A,@R0 CPL A MOVX @R1,A JNZ LOP MOV R1,#26 MOV R0,#20H MOVX A,@R0 CPL A MOVX @R1,A JNZ LOP MOV R1,#27 MOV R0,#20H MOVX A,@R0 CPL A MOVX @R1,A JNZ LOP MOV R1,#28 MOV R0,#20H MOVX A,@R0 CPL A MOVX @R1,A JNZ LOP MOV R1,#29 MOV R0,#20H MOVX A,@R0 CPL A MOVX @R1,A JNZ LOP MOV R1,#30 MOV R0,#20H MOVX A,@R0 CPL A MOVX @R1,A JNZ LOP MOV R1,#31 MOV R0,#20H MOVX A,@R0 CPL A MOVX @R1,A JNZ LOP MOV R1,#32 MOV R0,#20H MOVX A,@R0 CPL A MOVX @R1,A JNZ LOP LJMP START LOP: MOV B,#4 MOV A,R1 DIV AB MOV R1,A MOV A,B JNZ START STOP: SJMP STOP
Jak ktoś chce moge przesłać zasady tej na emaila. To jest ta gra z kamieniami.Nie wiem jak zrobic ta gre na dsmie

Jeszcze jeden post z kodem nie ujętym w tagi [ code ] i będzie blokada pisania. radzio
Ostatnio zmieniony 6 sty 2008, o 18:03 przez elektronikopo, łącznie zmieniany 2 razy.

elektronikopo
-
-
Posty: 160
Rejestracja: 8 lis 2007, o 22:59
Lokalizacja: Poznań

Postautor: elektronikopo » 17 sty 2008, o 21:23

Prosze o sprwdzenie i poprawienie programu.Program symyluje gre NIM1 na DSM-51.Na końcu jest intrukcja tej gry :

Kod: Zaznacz cały

R6 ILOSC KAMIENI LJMP START ORG 100H START: MOV R7,#00000001B ; CZYSZCZENIE LCALL LCD_INSTRUKCJA MOV R7,#00001100B ; WYSWIETL WLACZ LCALL LCD_INSTRUKCJA MOV R7,#01000000B ; SET CG_RAM LCALL LCD_INSTRUKCJA MOV DPTR,#KRESKI LCALL LCD_DANE MOV R7,#10000000B ; SET DD_RAM LCALL LCD_INSTRUKCJA ; wyswietlanie instrukcji MOV R7,#10101000B ; SET DD_RAM LCALL LCD_INSTRUKCJA MOV DPTR,#INST1 LCALL LCD_DANE MOV A,#10 LCALL DELAY_100MS MOV R7,#10101000B ; SET DD_RAM LCALL LCD_INSTRUKCJA MOV DPTR,#INST2 LCALL LCD_DANE MOV A,#10 LCALL DELAY_100MS MOV R7,#10101000B ; SET DD_RAM LCALL LCD_INSTRUKCJA MOV DPTR,#INST3 LCALL LCD_DANE MOV A,#10 LCALL DELAY_100MS MOV R7,#10101000B ; SET DD_RAM LCALL LCD_INSTRUKCJA MOV DPTR,#INST4 LCALL LCD_DANE MOV A,#10 LCALL DELAY_100MS MOV R7,#10101000B ; SET DD_RAM LCALL LCD_INSTRUKCJA MOV DPTR,#INST5 LCALL LCD_DANE MOV A,#10 LCALL DELAY_100MS MOV R7,#10101000B ; SET DD_RAM LCALL LCD_INSTRUKCJA MOV DPTR,#INST6 LCALL LCD_DANE MOV A,#10 LCALL DELAY_100MS MOV R7,#10101000B ; SET DD_RAM LCALL LCD_INSTRUKCJA MOV DPTR,#INST7 LCALL LCD_DANE MOV R6,#16 ; LOSOWANIE LOSOWANIE: MOV A,R6 DEC A JNZ L_02 MOV A,#16 L_02: MOV R6,A MOV R0,#21H MOVX A,@R0 CPL A JB ACC.1,L_03 JB ACC.2,L_04 LJMP LOSOWANIE L_03: LCALL OBLICZ LCALL WYS_KAM MOV A,#5 LCALL DELAY_100MS LCALL RUCH_OSOBY LJMP DALEJ L_04: LCALL OBLICZ LCALL WYS_KAM L_05: MOV A,R6 MOV B,#4 DIV AB MOV A,B DEC A JNZ L_06 DEC R6 LCALL WYS_KAM LCALL RUCH_OSOBY LJMP L_05 L_06: MOV A,B SUBB A,#1 MOV R5,A MOV A,R6 SUBB A,R5 MOV R6,A LCALL WYS_KAM DALEJ: LJMP $ INST1: DB 'Zabierz ',0 INST2: DB '1,2,3 kreski. ',0 INST3: DB 'Pamietaj ze ',0 INST4: DB 'OSTATNIA kreska ',0 INST5: DB 'przegrywa... ',0 INST6: DB 'Kto zaczyna? ',0 INST7: DB '1-TY 2-DSM',0 TRUCH_OSOBY: DB 'Nacisnij 1-3 ',0 CZYSC: DB ' ',0 JEDEN: DB 1,0 DWA: DB 2,0 KRESKI: DB 10000000B DB 10000000B DB 10000000B DB 10000000B DB 10000000B DB 10000000B DB 10000000B DB 10000000B DB 10000000B DB 10001000B DB 10001000B DB 10001000B DB 10001000B DB 10001000B DB 10000000B DB 10000000B DB 10000000B DB 10001010B DB 10001010B DB 10001010B DB 10001010B DB 10001010B DB 10000000B DB 10000000B DB 0 ; PODPROGRAMY LCD_DANE: MOV R0,#81H ; ZAPIS DANYCH MOV R1,#82H ; ODCZYT STANU MOV R2,#0 BUSSY1: MOVX A,@R1 JB ACC.7,BUSSY1 MOV A,R2 MOVC A,@A+DPTR MOVX @R0,A MOV A,R2 INC A MOV R2,A MOVC A,@A+DPTR JNZ BUSSY1 RET LCD_INSTRUKCJA: MOV R0,#80H ; ZAPIS INSTRUKCJI MOV R1,#82H ; ODCZYT STANU BUSSY4: MOVX A,@R1 JB ACC.7,BUSSY4 MOV A,R7 MOVX @R0,A RET WYS_KAM: MOV R7,#10000000B ; SET DD_RAM LCALL LCD_INSTRUKCJA MOV DPTR,#CZYSC LCALL LCD_DANE MOV A,R6 MOV B,#2 DIV AB MOV R5,A MOV R7,#10000000B ; SET DD_RAM LCALL LCD_INSTRUKCJA L_01: MOV DPTR,#DWA LCALL LCD_DANE DJNZ R5,L_01 MOV A,B JZ WYS_KAM_RET MOV DPTR,#JEDEN LCALL LCD_DANE WYS_KAM_RET: RET OBLICZ: MOV A,R6 ADD A,#14 MOV R6,A MOV R7,#10000000B ; SET DD_RAM LCALL LCD_INSTRUKCJA RET RUCH_OSOBY: MOV R7,#10101000B ; SET DD_RAM LCALL LCD_INSTRUKCJA MOV DPTR,#TRUCH_OSOBY LCALL LCD_DANE OBLICZ_01: MOV R0,#21H MOVX A,@R0 CPL A JB ACC.1,OBLICZ_02 JB ACC.2,OBLICZ_03 JB ACC.3,OBLICZ_04 LJMP OBLICZ_01 OBLICZ_02: MOV A,R6 SUBB A,#1 LJMP OBLICZ_05 OBLICZ_03: MOV A,R6 SUBB A,#2 LJMP OBLICZ_05 OBLICZ_04: MOV A,R6 SUBB A,#3 OBLICZ_05: MOV R6,A LCALL WYS_KAM RET
Obrazek
Obrazek

Wróć do „8051”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 13 gości