Mikro licznik poprawiony


org 0000h
ljmp SETUP
org 000Bh
ljmp PRZERWANIE

org 0100h
SETUP:
push ACC
mov th0,#0 ;ustawienie timera na 0
mov tmod,#00001001b ;ustawienie zasad dzialania timera
setb ET0 ;włączenie licznika
setb EA

mov R6,#10 ;ustawienie minut
mov R7,#15 ;ustawienie sekund

mov a,R6
mov R3,a ;tu licze minuty
mov a,R7
mov R4,a ;tu licze sekundy

mov R1,#0 ;punkty 1 druzyny
mov R2,#0 ;punkty 2 druzyny

;;;;;;;;;ustawienie przyciskow;;;;;;;;;;;;;;
setb p1.1 ;ustawienie linii
setb p1.2 ;;;;;;;
setb p1.3 ;;;;;;;;;;ustawieniepojedynczych bitów u nas klawisze 1,5,9
setb p1.4 ;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;WYSWIETLACZ;;;;;;;;;;;;;;;;;;;;;;;


pop ACC
setb p1.2 ;symulacja wciskanego przycisku
ljmp START


START:
jb p1.2,LICZ ;start odliczania czasu
jb p1.3,PAUZA ;pauza w odliczaniu
; jb p1.4,ZERO ;zerowanie odliczania i wpisanie wartosci startowej?????
sjmp START

;;;;;;;;;;;;;;;;;;;;;LICZENIE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LICZ:
clr p1.2 ;symulacja wciskanego przycisku
mov th0,#50 ;ustawienie timera
mov a,#20 ;ustawienie akumulatora
sjmp START

PRZERWANIE:
mov th0,#50; ustawienie znowu timera
djnz ACC,P_END
dec R4 ;odjecie sekundy
cjne R4,#0,START ;jezeli równe zero to skocz
ljmp _MINUTA


P_END:
reti

_MINUTA:
dec R3 ;odejmnij minute
mov R4,#60 ;ustaw sekundy
sjmp START

;;;;;;;;;;;;;;;;;;;;PAUZA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PAUZA:
cpl p1.6; ustaw diode
jb p1.6,_PAUZA
jnb p1.6,END_PAUZA
_PAUZA:
push th0
push acc

mov a,R4;; sekundy
push ACC ;;wartosc sekund na stos
mov a,R3 ;; minuty
push ACC ;; minuty na stos

cpl ET0;wylaczenie timera
ljmp START
END_PAUZA:
pop acc
mov R3,a ; wrzucam minuty
pop acc
mov R4,a ; wrzucam sekundy

pop acc ; to co zdjalem na poczatku _PAUZA ; teraz w akumulatorze znajduje sie liczenie przerwan

sjmp START

;;;;;;;;;;;;;;;;;;;;;;;;;;ZEROWANIE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;ZERO:
; ljmp SETUP



;;;;;;;;;;;;;;;UStawianie LCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LCD_INIT:
push dph
push dpl
push acc

mov dptr,#8010h ;ustawiamy dptr na zapis
mov a,#00111100b
movx @dptr,a ;wysylam instrukcje (dane??)

lcall lcd_busy


pop acc
pop dpl
pop dph

ljmp LCD_WRITE
ret
;czekanie na gotowosc lcd
lcd_busy:
push dph
push dpl
push acc

mov dptr,#8012h
busy:
movx a,@dptr ;odczyt komorki odpowiedzialna za sprawdzanie czy zajety
jb acc.7, busy ;sprawdzenie czy zajety

pop acc
pop dpl
pop dph
ret

LCD_WRITE:
push dph
push dpl

mov dptr,#8011h;ustawiam na zapis danych
movx @dptr,a



pop dpl
pop dph
ret



ljmp START

END

Wyszukiwarka

Podobne podstrony:
Mikro licznik
Mikro licznik
POPRAWIONE RYSUNKI WAŁ A4
Dreamer Przebudzenie poprawki
Kodowanie V A G iem licznika do A4
poprawka 14 StockExchange
warunki dodatkowe mikro lub kwasy
Cwiczenia poprawiajace stabilizacje, równowage i zakres ruchomosci
8 7 liczniki
B2 Poprawność Gramatyczna

więcej podobnych podstron