Witam proszę o pomoc w związku z małym kalkulatorem chodzi mi wyłącznie o dodawanie. Ale do rzeczy na zdjęciu mam cztery wyświetlacze LED każdy wyświetla inna liczbę umiem zmieniać te liczby na każdym wyświetlaczu i wyświetlić natomiast chce aby zsumować te liczby i wyświetlić sumę dodawania tych liczb w tym przypadku jak ustawiłem to tylko przykład suma wynosi 18. oczywiście przy każdej zmianie dowolnej liczby suma ma się zmieniać automatycznie, każdy wyświetlacz liczy tylko do 10 potrzebuje tylko wskazówki jak mam to zrobić kawałek przykładu gdyż i tak będę powiększał liczbę wyświetlaczy na razie zrobiłem 4 a będzie ze 10. Oczywiście rozumiem większa ilość wyświetlaczy inny procesor będzie zaranie próbuje z czterem i na atinny. a tu kawałek kodu $regfile = "attiny2313.dat" $crystal = 4000000 Dim Kro As Byte , Cela As Byte , Cela1 As Byte , Cela2 As Byte Dim Cela3 As Byte , Cela4 As Byte , Mux As Byte Config Portb = 255 : Portb = &B255 : Config Portd = &B1111100 : Portd = &B1111111 Config Timer0 = Timer , Prescale = 64 : Config Timer1 = Timer , Prescale = 64 Enable Interrupts : Enable Timer0 : Enable Timer1 On Timer0 Co4ms 'po przepełnieniu licznika T/C0 skocz do etykiety o nazwie Co4ms On Timer1 Co1s 'po przepełnieniu licznika T/C1 skocz do etykiety o nazwie Co1s Do Waitms 200 If Pind.1 = 0 Then If Kro = 4 Then Incr Cela : If Cela = 10 Then Cela = 0 End If If Pind.1 = 0 And Kro = 3 Then Incr Cela1 : If Cela1 = 10 Then Cela1 = 0 End If If Pind.1 = 0 And Kro = 2 Then Incr Cela2 : If Cela2 = 10 Then Cela2 = 0 End If If Pind.1 = 0 And Kro = 1 Then Incr Cela3 : If Cela3 = 10 Then Cela3 = 0 End If End If Loop End Co4ms: ' obsługa wyświetlaczy co 4,096ms Incr Mux : If Mux = 4 Then Mux = 0 : Portd = &B1111111 Select Case Mux ' obsługa wyświetlacza Case 0: Portb = Lookup(cela , Tabela) : Portd.3 = 0 : If Kro = 4 Then Portb.7 = 0 Case 1: Portb = Lookup(cela1 , Tabela) : Portd.4 = 0 : If Kro = 3 Then Portb.7 = 0 Case 2: Portb = Lookup(cela2 , Tabela) : Portd.5 = 0 : If Kro = 2 Then Portb.7 = 0 Case 3: Portb = Lookup(cela3 , Tabela) : Portd.6 = 0 : If Kro = 1 Then Portb.7 = 0 End Select Return Co1s: Timer1 = 3036 If Pind.0 = 0 Then Incr Kro : If Kro = 5 Then Kro = 0 End If Return 'koniec procedury obsługi przerwania od T/C1 Tabela: Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144
|
|||
Re: Suma
A gdzie chcesz wyświetlać tą sumę jak 4 wyświetlacze masz zajęte?
Tak czy inaczej poprostu sumujesz wartości
A potem dzielisz na cyfry, jak masz 4 wyświetlacze 0-9 to max suma < 100 więc potrzebujesz 2 cyfry:
Polecenie mod daje resztę z dzielenia przez 10 - cyfrę jedności, a podział przez 10 daje cyfrę dziesiątek
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.