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ę

Zegarek - jak napisac.

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

Zegarek - jak napisac.

Postautor: elektronikopo » 8 lut 2008, o 13:02

Umiec ktos pisać dobrze programy na DSmie

Kod: Zaznacz cały

Ja 12:39:50 LJMP START ORG 100H START: MOV TMOD,#00010001B MOV TH0,#76 MOV TL0,#0 SETB TR0 MOV TH1,#76 MOV TL1,#0 SETB TR1 MOV R0,80H MOV R1,82H LCALL LCD_CLR CLR A MOV A,#'9' LCALL WRITE_DATA MOV A,#':' LCALL WRITE_DATA MOV A,#'5' LCALL WRITE_DATA MOV A,#'9' LCALL WRITE_DATA MOV A,#9 SUBB A,#1 MOV R1,A LCALL LCD_CLR CLR A MOV A,#'9' LCALL WRITE_DATA MOV A,#':' LCALL WRITE_DATA MOV A,#'5' LCALL WRITE_DATA INC R0 MOV DPTR,#TEXT LOP: LCALL LCD_CLR CLR A MOV A,#'9' LCALL WRITE_DATA MOV A,#':' LCALL WRITE_DATA MOV A,#'5' LCALL WRITE_DATA CLR A MOVC A,@A+DPTR LCALL WRITE_DATA INC DPTR MOV A,#20 TIME_N50: JNB TF0,$ MOV TH0,#76 CLR TF0 DJNZ ACC,TIME_N50 MOV A,R1 JNZ LOP STOP: SJMP STOP TEXT: DB '8' DB '7' DB '6' DB '5' DB '4' DB '3' DB '2' DB '1' DB '0'

Napisałem program i nie wiem jak go dalej dokonczyc bo nic mi nie wychodzi
Program ma obliczać 10 minut ma zaczynać się od 9.59
Ma najpirw sie pojawic na wyswietlaczu LCD 9.59 nastepnie 9.58 9.57 9.56 9.55 9.54 9.53 9.52 9.51 9.50 9.49 .........9.39 .... 9.29 .....9.19 ...9.09 9.08 9.07 9.06 9.05 9.04 9.03 9.02 9.01 9.00 ...............8.00 ......7.00 ....6.00 .....5.00 .....4.00...... 3.00 ... 2.00 .....1.00 .... 0.00

Edit, dodano po jakimś czasie:

Mam program , który odlicza czas 10 minut tyle sekundy zmieniają się nie co sekunde tylko co dłuższy czas co zmienić w programie żeby sekundy zmieniały się co sekunde

Kod: Zaznacz cały

LJMP START ORG 100H START: mov r4, #9 mov r3, #59 MOV TMOD,#00010001B MOV TH0,#76 MOV TL0,#0 SETB TR0 MOV TH1,#76 MOV TL1,#0 SETB TR1 MOV R0,80H MOV R1,82H MOV A,#9 SUBB A,#1 MOV R1,A INC R0 LOP: LCALL LCD_CLR MOV A, r4 ;wyswietlenie minut LCALL BIN_BCD LCALL WRITE_HEX MOV A, #':' ;wyswietlenie dwukropka LCALL WRITE_DATA MOV A, r3 ;wyswietlenie sekund LCALL BIN_BCD LCALL WRITE_HEX DEC r3 ;Dekrementacja CJNE r3, #255, TIME_N50 mov r3, #59 DEC r4 CJNE r4, #255, TIME_N50 LJMP STOP ; LCALL WRITE_DATA ; INC DPTR ; MOV A,#20 TIME_N50: JNB TF0,$ MOV TH0,#76 CLR TF0 DJNZ ACC,TIME_N50 MOV A,R1 JNZ LOP STOP: lcall wait_key ljmp start SJMP STOP BIN_BCD: ;konwersja bin -> bcd MOV B, #10 DIV AB SWAP A ADD A, B RET
Ostatnio zmieniony 25 wrz 2008, o 21:39 przez elektronikopo, łącznie zmieniany 2 razy.

Wróć do „8051”

Kto jest online

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