Witam Jestem początkującym w dziedzinie mikrokontrolerów ale chciałem zbudować moduł CDI oparty na kontrolerku jak w temacie. Mam tylko mały problem. Mianowicie nie mogę poradzić sobie z kompilacją kodu wsadu. Kod wygląda następująco: ;Programm for 89c2051 as CDI ignition TT600R ;Important: Chrystal 24MHz !!!!!!!!!!!!! ;Trigger by Comparator input...
Zamieszczam caly program i prosiłbym oprzerobienie pod moje wytyczne. Przerasta mnie to . 'sterownik do pieca at89c2051 ' wyświetlacz 2*16, poprawione zachowanie po zaniku napięcia $large $crystal = 12000000 Config Lcd = 16 * 2 Cursor Off Cls Config Sda = P3.1 Config Scl = P3.0 Config Timer0 = Timer , Mode = 1 , Gate = Internal Config Timer1 = Timer...
Witam, robię sterownik wyświetlacza 4xled7seg, z obsługą odbioru z pilota podczerwieni i mam dziwny problem z tym układem TSOP1736, otóż na przerwaniach timera1 (16bit) jest procedura dla multipleksowaniem wyświetlacza led a przerwanie dla RC5 zrobiłem na ext0 a całość jest taktowana kwarcem 12MHz z procesorem at89c2051 i gdy przerwanie Timera działa...
Mapę SFR znajdziesz w notce katalogowej do AT89C2051. Tak, mam to, ale nie ma tam opisu konkretnych bitów w poszczególnych rejestrach, a z tego co sie dowiedziałem to trzeba coś zrobić w rejestrze Th1 bo o ile mi wiadomo timer1 odpowiada za prękość UARTu. Ze strony atmela sciągnąłem programik ktory liczy co tam trzeba wpisać, ale po wpisaniu i tak...
Witam mam takie pytanie : czy dało by się przerobić program który jest poniżej żeby chodził na atmedze32 zamiast na at89c2051 a o to program : $crystal = 11059200 Config Lcd = 16 * 1a Cursor Off Config Timer1 = Timer , Gate = Internal , Mode = 1 Config Timer0 = Counter , Gate = Externel , Mode = 1 Dim Temp As Byte Dim R As Byte Dim Freq_compare As Word...
Musze zaprogramować w Bascomie AT89C2051 Jak to zrobic ? i czy da rade pod XP tego dokonac ? Config Timer1 = Timer, Gate = Interial, Mode = 1 Config Timer0 = Counter, Gate = External, Mode = 1 On Timer0 Frequency Enable Interrupts Enable Timer0 Enable Timer1 Start Timer0 Start Timer1 pzdr. A.
; AT89C2051 processor definition file ; =================================== SPDATA081H DPLDATA082H DPHDATA083H PCONDATA087H TCONDATA088H TMODDATA089H TL0DATA08AH TL1DATA08BH TH0DATA08CH TH1DATA08DH P1DATA090H SCONDATA098H SBUFDATA099H IEDATA0A8H P3DATA0B0H IPDATA0B8H PSWDATA0D0H ACCDATA0E0H BDATA0F0H IT0BIT088H IE0BIT089H IT1BIT08AH IE1BIT08BH TR0BIT08CH...
Witam Chciałem zrobić prostu generator przebiegu prostokątnego. uP AT89C2051 kwarc 11059200. częstotliwość generowana około 38 kHz czyli czas impulsu około 0,013 ms. Napisałem taki programik: Config Timer1 = Timer , Mode = 2 , Gate = Internal counter0 = 242 On timer0 impuls Enable Interrupts Enable Timer0 start timer0 do loop impuls: P3.2 = not P3.2...
witam ! '2 wyświetlacze LED 7segmentów 'fusebity ustawione fabrycznie $regfile = "attiny2313.dat" $crystal = 1000000 Config Portb = Output 'katody segmentów LED Config Portd = Output Anoda1 Alias Portd.0 Anoda2 Alias Portd.1 Dim Nr_wysw As Byte Dim Cyfra2 As Byte Dim Cyfra1 As Byte Dim Temp_liczba_1 As Word Dim Temp_liczba_2 As Word Config...
Trudno wlasciwie okreslic, czy jest to caly ciag, czy pojedynczy bajt, bo przez lacze wysylam pakiety z dana z bajtem z A/C, z predkoscia 512 probek/s, jest to odliczane przez timer1 (drugi w kolejnosci) AT, z poczatku myslalem ze to wina tego, ale przeciez u mnie chodzi. Nie jest to wiec pojedynczy bajt, ani caly ciag, bo pomiedzy kolejnymi transmisjami...
czesc w bascomie moze byc? jak tak to: :) Config Timer0 = Timer , Gate = Internal , Mode = 1 ' Configuracja timera Config Lcd = 16 * 2 ' ..wyswietlacza, przykladowa Dim Temp As Byte 'zmienne Dim Temp_2 As Byte Dim Temp_3 As Byte Dim Sekundy As Byte Dim Silna As Single Dim N As Byte Enable Interrupts 'wlaczenie przerwan Enable Timer0 Enable Int0 Enable...
Przerwanie z INT0 ma wyzszy priorytet. Po skonczeniu wykonywania przerwania RETI zostanie wykonany 1 rozkaz z petli glownej i spowrotem do przerwania z INT0. A to już działa, czy nie? Bo ja się w tym temacie pogubiłem :D Na wszelki wypadek: obsługa przerwania zajmuje za dużo czasu, już w trakcje wykonywania przerwania ustawiana jest flaga żądania przerwania...
74121 to moze byc rozwiazanie, ale... Zalozmy taka sytuacje. Nastapilo zawisniecie procka. Jeden z portow nie przedluza impulsu na 74121 i nastepuje podanie "1" na reset... i dalej jest ta "1" i procek czeka, az przestanie tam byc ta jedynka, aby w koncu mogl ruszyc od adresu $0. Ale on nie ruszy, bo caly czas jest ta cholerna "1" na nozce reset. Zgadzam...
Witam !! Musze napisac nowy programik dla mikroprocesiorka, dla istniejacego kitu z istniejacym oprogramowaniem, ale program musze wgrac nowy, wlasny :-) Wyswietlanie na segmenty dzialaja mi, obsluga przerwan obydwoch timerow dziala tak samo dobrze, ale nie wiem jak podejsc do przerwan zewnetrznych (przyciski). Przyciski mam podlaczone pod: P3.3 (Int1),...
Witam. Jestem nowy na forum i nie mam zbyt duzego doświadczenia w programowaniu mikrokontrorów wiec z gory przepraszam za błedy. Otóż mam do napisania projekt w którym mam DS18B20i za nic w swiecie nie moge dokonać odczytu z czujnika. Analizowałem datasheeta dosc dlugo i nie widze błedu.Przegladałem również tematy na forum, próbowałem różnych rzeczy...
WYjasnienie jest bardzo proste. druga pętla for pracująca na zmiennej 'y' nie powoduje wykonanie zadnej instrukcji w ciele fora, a jedynie modyfikuje ten 'y'. Kompilator optymalizując kod na siłe wywali tego drugiego fora, bo de facto nie robi on nic. Ale jednak jesli uzyje sie przed forem zmiennej 'y', kompilator domysla sie ze ta zmienna do czegoś...
No i mnie się to nie uda, bo albo trzeba by dołożyć czujników albo zastosować koło z większą ilością szczelin, zapłon stanie się zbyt skomplikowany mechanicznie do wykonania. Ja mam jeden czujnik na jeden cylinder (jest ich dwa) i umieszczony jest 50 stopni przed GMP, mierzę czas obrotu (RPM) i program wybiera odpowiednie wyprzedzenie i przelicza na...
Witam, jeżeli używasz rezonatora 11.0592 MHz to możesz przerobić mój program na swoje potrzeby. Mój zegar spóźnia się jakiś 8 sekund na dobę, więc można dodatkowo napisać linijkę: If G1 = 2 And G2 = 3 Then S2 = S2 + 8 End if Cały program zegara: Config Timer0 = Timer , Gate = Internal , Mode = 1 Dim A As Byte Dim G1 As Byte Dim G2 As Byte Dim M1 As...
Myślę, że można bez problemów ten program przerobić. Będzie jednak kilka problemów. 1. Maksymalny zegar dla układów serii L to chyba 8MHz, chociaż mogę się mylić. W oryginale uC chodzi na 12MHz. 2. Trzeba zmienić konfigurację TIMER0 i TIMER1 które w AVR Bascom sa "trochę" inne. Ale w ogóle sądzę, że jest to do zrobienia.
Mam nadzieję że to nie pójdzie do kosza: $crystal = 4000000 '4MHz $regfile = "attiny2313.dat" Config 1wire = Portd.5 Config Timer0 = Timer , Prescale = 64 On Timer0 Przerwanie0 Enable Interrupts Enable Timer0 Start Timer0 Porta = 0 Portb = 0 Portd = 0 Config Porta = 0 Config Portb = 0 Config Portd = 0 '**************************** 'Zmienne...
...Spróbowałem własnymi siłami zmienić ten kod, ale nie dałem rady(błędy kompilacji)... Aby to zrobić bezbłędnie, należy znać oba proce na "tip-top" :D Ja zrobiłbym to tak: 'Termometr Domowy' $regfile = "attiny2313.dat" $crystal = 8000000 'Config Timer0 = Timer , Gate = Internal , Mode = 2 'okres Timera0 250*12*Tosc=250us Config Timer0 =...
Urządzenie jakie chciałbym dziś zaprezentować jest naprawdę trywialne, jednak być może ktoś na tym skorzysta. Przejdźmy jednak do rzeczy. Schemat układu znajduje się poniżej. Niestety sporządziłem tylko odręczny szkic. T1 i T2 pracują tu w układzie oscylatora. Wymyśliłem ten układ kiedyś, na poczekaniu. Prawdopodobnie jest to oscylator Butlera. T3...
Najprościej takie urządzenie zrobić na jakimś małym procku np at89c2051. Potrzeba do tego tylko kwarc w zasadzie o dowolnej częstotliwości i parę mikroprzełączników (np w obudowie DIP) do nastawiania czasu załączania i wyłaczenia. Jesli nie robiłeś jeszcze nic na prockach mogę Ci taki program napisać i wgrać w procka. Ty będziesz musiał tylko to zmontowac,...
"Error 13: Unknown interrupt in file..." No przecież pisze o co chodzi! Nieznane przerwanie, nieznane bo go nie określiłeś. UART musi mieć chociaż kawałek Timera... Masz tu fragment helpa do bascoma: Przykład: Priority Set Serial 'ustaw UART na wyższym poziomie Enable Serial 'włącz przerwanie Int0 Enable Timer0 'włącz przerwanie Timer0 Enable Interrupts...
Witam. Czy posiada ktoś jakieś materiały, e-booki dotyczące wykorzystania timerów i przerwań od nich, dla programowania w języku C? Chcę wykonać następującą rzecz: W chwili wciśnięcia przycisku podpiętego do jakiegoś tam portu uruchamiam timer0 (tryb 1), który po 10ms sie przepełnia i wywoływane jest przerwanie. Za każdym razem w przerwaniu, tj. co...
Dokładnie tak jak piszesz nie zwróciłęm uwagi na typ procesora, pisząc odpowiedz myślałem raczej o procesorac z serji AVR a zapomnialem ze MSC51 ma możliwośc bramkowania timera.
Witam !! czy ktos moze zrobil i dziala mu uklad timera na at89c2051 opublikowany a Re 9/2001 jest to projekt Pana Mariusza Janikowskiego ?? Mam prosbe apropos tego projektu poniez posiadam tylko programator do bascoma8051 NE-k136 i nie bardzo potrafie przekonwertowac hex na bin czy ktos moglby to dla mnie zrobic z gory dzieki !!
Znalezione na www.8052.com :) INCLUDE 89C51.MC ;---------------------MAX232------------... ; Register definitions. rBUFFEREQU00h ; read data register wBUFFEREQU01h ; send data register ;---------------------------------------... (0000H): JMP on_reset ;-----------------------Serial Interrupt-------------------...
Czy tam (c2051) nie ma przypadkiem 2 liczników? Jeśli są zajęte to sterowanie silnikami przerób na opcje bez użycia timerów. A na przyszłość jak coś robisz z mozliwościa późniejszego upgrade'u to nie wykorzystuj 100% peryferiów, unikaj przerwań, i rób maksymalnie z użyciem oprogramowania nie peryferiów. BTW można cały ten projekt zrobić bez przerwań...
Procek to At89C2051 (89C4051) . Przerwamiua moga byc co dowlny czas byle regularny np 1 sekunda czy nawet mniej
da się, da. choć na AT89C2051 to nie najlepiej działa (i zresztą wszystkich 51 bez PWM), ale ja (kiedyś) napisałem procedurki które pozwalają na płynną regulację silnika SPS: W C: unsigned char licz,predkosc; #define silnikP10 #define wlacz 1 #define wylacz 0 void pwm (void) interrupt 1 { if (licz<predkosc) silnik=wlacz; else silnik=wylacz; if (++licz>64)...
Witam wszytsich chcialem sie zapytac jak mozna zrobic prosty generatoreg z popularnego procesorka AT89C2051(taki obecnie posiadam) o zadanej czestotliwosci, dodam, ze czestotliwosc ta bedzie niezmienna, raz ustawiona na etapie programowania az przez caly czas dzialania, chce zrobic generatorek o f=50hZ, mam kwarc 12MHz, ma to byc przebieg prostokatny...
Cos takiego na szybko napisalem: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;definicje wgore equ p3.2 wdol equ p3.3 licznik equ 30h timerek0equ 31h ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; org 00h jmp start ;przeskakuje obszar wektorow przerwan org 50h start: mov licznik,#0h ;na dziendobry zeruje licznik main_loop: ;w tej petli sprawdzam tylko czy ktorys z...
Jakie operacje są wykonywane przez mikrokontroler po wykryciu przerwania np. od T0 czy odkładany jest na stos tylko PC czy coś jeszcze, i co dzieje się po komendzie RETI. Chodzi mi o pisanie w assemblerze. W Basscom mi to działa ale wtedy gdy przy poleceniu ON TIMER0 dopiszę NOSAVE wtedy w symulatorze widzę że SP zwiększa się o 2 natomiast bez NOSAVE...
Oczywiście, że lepiej procesor poradzi sobie (bez dodatkowych przetworników) z sygnałem częstotliwościowym. '51 ma w sobie dwa timery 16-bitowe które mogą pracować jako liczniki lub czasomierze. Do zliczania impulsów użyj jednego timera pracującego jako licznik, a drugiego użyj jako czasomierza do generowania przerwań w których odczytywana będzie wartość...
include reg_c51.INC code at 0000h ljmp start code at 000Bh ljmp timer code at 0100h start:mov TMOD, #00000001b mov TH0, #11101010b mov TL0, #01111001b setb TR0 setb ET0 setb EA mov R0, #0d mov R1, #85d mov R2, #170d mov P2, #11111111b mov a, #255d poczatek:inc a mov b,R0 cjne a, b, dalej1 clr P2.0 dalej1:mov b,R1 cjne a, b, dalej2 clr P2.1 dalej2:mov...
Jak napisać program w bascomie do pomiaru czasu trwania impulsu wejsciowego ?Prosze o konkretny przyklad listingu takiego programu ponieważ jestem początkującym programistą w bascomie i nie znam wielu możliwości.Domyślam sie ze należałoby wykorzystać któryś z timerów i poprzez start timera za pomocą przerwania i jego zatrzymanie a następnie odczyt...
Już się uporałem, zrobiłem to tak: $regfile = "89c2051.dat" Const Cyfra0 = &B11000000 Const Cyfra1 = &B11111001 Const Cyfra2 = &B10100100 Const Cyfra3 = &B10110000 Const Cyfra4 = &B10011001 Const Cyfra5 = &B10010010 Const Cyfra6 = &B10000010 Const Cyfra7 = &B11011000 Const Cyfra8 = &B10000000 Const Cyfra9...
Jak wykryjesz wciśnięcie przycisku to uruchom timer w trybie zliczania taktów zegara. Po wykryciu puszczenia zatrzymaj timer i sprawdź do ilu doliczył na tej podstawie wyliczysz czas. A dalej to już chyba wiadomo. To tak w telegraficznym skrócie.
tu mozna zablokować wygaszanie ;---- UWAGA modyfikacja----- ;setb bPowerSave ;ustawienie tego bitu powoduje przejście ;w tryb oszczędzania energii(wygaszenie wyswietlaczy) ;średnik na początku spowoduje pominięcie tego polecenia ;tym samym nie będzie włączany tryb "Power Save" tu można zmienić tryb wyświetlania po włączeniu zasilania...
Mój kod /* UART Buffer Defines */ #define UART_RX_BUFFER_SIZE 4 /* 2,4,8,16,32,64,128 or 256 bytes */ #define UART_TX_BUFFER_SIZE 16 #define UART_RX_BUFFER_MASK ( UART_RX_BUFFER_SIZE - 1 ) #if ( UART_RX_BUFFER_SIZE & UART_RX_BUFFER_MASK ) #error RX buffer size is not a power of 2 #endif #define UART_TX_BUFFER_MASK ( UART_TX_BUFFER_SIZE...
mogą się czymkolwiek różnić? Jasne, czasem literka na końcu może zmienić niektóre rzeczy w sposób zasadniczy. Czasem nawet te same oznaczenia ale inny producent, chociaż przeważnie każdy dodaje tam swoje literki. . 8051 to nie AVR czy tym bardziej ARM. W samym CPU od strony języka maszynowego, nie ma różnic. Pomiędzy różnymi uC różnice są w wielkości...
Jeśli mamy doczynienia z transmisją synchroniczną ( a taką zazwyczaj wykorzystują wszelkie układy scalone typu PLL,DAC itp - czyli szyna danych i szyna zegarowa,czasami jeszcze strobowania) to procedura jest bardzo prosta ,żadnych przerwań,timerów.Generujemy dowolny przebieg zegarowy i tym przebiegiem są synchronizowane wszelkiej maści urzadzenia podrzędne)...
Moze to glupie pytanie, ale czy jest mozliwosc podpiecia takiego zwyklego LCD z kalkulatora do procka 89C2051.....chodzi o to zeby byly uzywane dwie cyfry, chce zrobic taki prosciutki timer i program napisac w bascomie, przykladowo: dim a as integer dim b as integer for a=0 to 99 b=99-a wait 1 xxx next a end w polu xxx potrzebuje cos co wyswietli mi...
Ad 1. Nie że chce jednocześnie INT0 i Timer0 wykożystać do liczenia tych samych impulsów. Tylko jak wpisuje: config Timer=counter gate=internal mode=1 enable interrupts enable timer0 a impulsy podaje na P3.4 to timer nie liczy nic. Dla pewności załączałem też dodatkowo przerwanie INT0 (rozumiem że to bez sensu). Chyba że ustawienie na zliczanie zbocza...
Do kolegi Goldfire.... Ja odbieram kelloq na 2051 w następujący sposób: odbiornik podłączony do P3.4 timer0 ustawiony na zliczanie sygnału zegarowego jeżeli na wejsciu "1" to czekaj jezeli "0" to zliczaj impulsy generatora potem analizujesz czy owe "0" trwało +- tyle ile powinno trwać "header" tu należy zrobić pewien margines ( szersze widełki) W ten...
Sprawa jest dość prosta. Trzeba zrobić układ wykrywający moment przejścia przez zero napięcia zasilania. Układ ten powinien wyzwalać przerwanie. W procedurze obsługi przerwania wyzwalamy odliczanie timera. Maksymalny czas pracy timera musi być trochę mniejszy niż połowa okresu. Należy go też uzależnić od jakiejś zmiennej której wartość będziemy zmieniać...
Witam, przebiegi sinika krokowego mam, chodzi mi o idee programu, ktos mi poradził, ze na poczatku musze sprawdzic w jakiej pozycji jest głowny przełacznik ( albo tryb1 albo tryb2), potem sprawdzac czy wcisniete sa pozostałe mikroprzełaczniki i w zaleznosci, ktory został wcisniety skakac do odpowiedniej procedury sterowania silnikiem. Inny sposok,ktory...
W sprawie postu Przebiegi sinika krokowego mam, chodzi mi o idee programu, ktos mi poradził, ze na poczatku musze sprawdzic w jakiej pozycji jest głowny przełacznik ( albo tryb1 albo tryb2), potem sprawdzac czy wcisniete sa pozostałe mikroprzełaczniki i w zaleznosci, ktory został wcisniety skakac do odpowiedniej procedury sterowania silnikiem. Inny...
kilka uwag: 1 :jak 2 kB to za mało to zmień układ na 89c4051 sprzętowo to samo tylko na soft masz 4 a nie 2kB 2 :mam zrodlo na 89c51 z wykorzystaniem uarta i 12 klawiszy kodowanych 4x3 na p1 plus 4cyfry led na p0 sterowane timerem.Układ troche inny niż twój ale możesz wykorzystać z niego obsługe uarta i klawiszy(mam zrobione rozróżnianie kiedy wciśnięty...
A czemu nie tak: do 'główna pętla ... if p1.3=0 then gosub cos_tam ... loop Witam ponownie :) Dlaczego nie? Ponieważ pod wpływem drgań styków podprogram będzie wywoływany kilkadziesiąt (kilkaset) razy na sekundę :P (zależy to od prędkości pracy procesora, rozbudowania programu głównego, itp.). Można takie polecenie użyć nie bezpośrednio w pętli głównej,...
Nie znoszę Basica i na ten temat nic nie powiem, ale w C popełniasz podstawowy błąd - chcesz pracować na przerwaniach, a w kodzie ich nie ma. Uaktywniasz timer i jego przerwanie, ale nie masz ustawionych przerwań od portu szeregowego i globalnych. Na koniec mam wrażenie, że program się natychmiast wykrzaczy - w pętli while raz za razem wywołujesz putchar,...
hunterhouse W AVR-ach sprzętowo można zatrzasnąć zawartość timera , ale uruchomić zliczanie trzeba programowo.Natomiast w 51-ce można uruchomić i zatrzymać timer sprzętowo.Jeśli na P3.3 jest stan wysoki i flaga GATE timera1 jest ustawiona , to timer zlicza doputy , dopuki stan na P3.3 nie zmieni się na niski.Problem jest tylko z tym , że Charly chce...
jeśli chodzi o obsługe timera to przed etykietą START wpisz: MOV IE, #10000010B;AKTYWACJA PRZERWAN OD T0 + GLOBALNE ZEZWOLENIE MOV TMOD, #0001B;TIMER MODE=1 (16 BITOW) MOV TH0, #0H ; TIMERA odlicza 65535 cykli zegara MOV TL0, #0H ; SETB TR0 To spowoduje uruchomienie timera T0. Jest to dobre miejsce do sprawdzenia klawiatury... Ale trzeba jeszcze...
Możesz liczyć impulsy na podstawie przerwań zewnętrznych wyzwalanych zboczem, a nie na liczniku sprzętowym. W tym przypadku powinno być to lepsze rozwiązanie, bo będziesz mógł zastosować prosty algorytm, który zaproponowałem i uzyskasz kolejne cyfry wyniku bezpośrednio w oddzielnych rejestrach. Zliczanie binarne w kilku rejestrach, a potem podział...
Cześć jak zwykle metod jest wiele - sprzętowa i programowa. Programowa jest gorsza bo nic innego nie daje się wtedy zrobić mov R0, #255 skocz_tu: djnz R0, skocz_tu lub dłuższa czyli 255*255 mov R0, #255 skocz_tu: mov R1, #255 skocz_tam: djnz R1, skocz_tam djnz R0, skocz_tu Co do sprzętowej realizacji to niestety dłużej czyli ustawienie timer...
Pierwsze co mi przychodzi do glowy to zmien ustawienie preskalera timera, bo wyglada to tak jak by ci zakres przekraczal...
No to trzeba zaprząc do pracy któryś timer. Robisz tak, że znając częstotliwość taktowania procka i mając docelową długość impulsu możesz wyliczyć (w dokumentacji powinien być wzór) ilość "tyknięć" timera. Należy pamiętać, że zlicza on w górę od zadanej wartości do 0xFFFF i przy jej osiągnięciu generuje przerwanie. W procedurze obsługi przerwania przeładowujesz...
Witam i dzięki za odpowiedź. Właśnie tej bezkarności nie byłem pewien. Różna obsługa przerwań wynika z chęci wykorzystywania timerów do różnych zadań w zależności od akurat występującej potrzeby-mam kilka podprogramów-funkcji nie nakładających się na siebie czasowo, którym pasowałoby odmierzać czas. Może Kolega parę słów by bliżej o swojej koncepcji,...
Mogę ci taki zaprojektować (wykonać) ,bądź dostarczyć zaprogramowany procesor np At89c2051 jeśli resztę złożysz sam.:idea:
Witam wszystkich forumowiczów ;) Czy można zaprogramować procesor at89c2051 razem z pcf 8583 aby zliczał czas do 60s od momentu wciśnięcia przycisku, a następnie, gdy pojawi się stan wysoki na trzech pinach w różnym czasie ,pokazał w sekundach w ten czas i zapamiętał ? P3.0- czas ...s p3.1-czas....s pin3.2-czas...s męczę się z tym od kilku dni i jakoś...
(at)zielonykosmita Wcześniej sam napisałeś „nie musimy się spieszyć z ładowaniem nowych wartości ponieważ mamy na to 256 cykli” i masz rację pod warunkiem, że Timer pracuje w trybie 1. Natomiast gdy Timer pracuje w trybie 0 (P. Gałka „Podstawy programowania mikrokontrolera 8051” str. 160) przeniesienie z rejestru TL do TH jest...
Dzięki za odpowiedź. Posiedziałem trochę i napisałem takie coś: [syntax=basic4gl]$crystal = 12000000 $regfile = "89C2051.DAT" Config Timer0 = Timer , Gate = Internal , Mode = 2 On Timer0 Przerwanie0 Load Timer0 , 250 Enable Timer0 Start Timer0 Dim przycisk1 As Bit Dim przycisk2 As Bit Dim przycisk3 As Bit led1 ALIAS P1.1 led2 ALIAS P1.2 'petla glowna...
Szukam SPRAWDZONEGO praktycznie układu timera mikroprocesorowego / do ok. 99 min/ najlepiej na AT89C2051 w postaci kompletnej dokumentacji i wsadu do AT. Znalazłem taki "komplet" w necie, ale nie chodzi. :cry: Ew. zapłacę rozsądną cenę za dobre rozwiązanie :D
Przy kwarcu 12MHz dźwiek minutnika z buzera jest bardzo niskotonowy, parametry polecenia sound też nie regulują częstotliwości, przy 11,59200MHz jest oki. Dodano po 1 Proszę o sugestie/pomoc... Dodano po 4 Konfiguracja timer0: Config Timer0 = Timer , Gate = Internal , Mode = 2 Load Timer0 , 39150 Enable Timer0 Enable Interrupts Reset Odliczanie On Timer0...
Napisze krotko "C51 Timer0 Code Examples " Tam powinienes znalesc cos dla siebie.
Przykład timera zrelizowanego na Atmelu AT89C2051 umożliwiający zliczanie czasu w zakresie od 30 sekund do 90 minut. Za pomocą S1 ustawiamy czas, natomiast S2 służy do wystartowania/zatrzymania timera. Zastosowano wyświetlacze LED. Załączony program w assemblerze ma walory edukacyjne, poprzez wprowadzone zamiany w programie możemy dostosować timerek...
Witam, przedstawiam nowy projekt - timer/stoper - czyli minutnik kuchenny. Możliwości : - odliczanie czasu wg zapisanych presetów z eeprom - odliczanie czasu ustawionego ręcznie - 16 zapisanych ustawień - funkcja zapisu ustawionego czasu do eeprom - funkcja liczenia czasu + możliwość zapisu do eeprom Podzespoły: - At89c2051 - At24c04 - Kwarc 12Mhz...
Excray: Prędkość 250k, nie 256K. Taka prędkość jest dla transmisji DMX. JrekC: A mógłbyś trochę jaśniej to opisać. Zdecydowanie wolałbym takie rozwiązanie niż wymiana 20 kwarców. Dla trybu 3 znalazłem takie wzory: baud=(2^smod/32)*timer1 overflow lub baud=(2^smod/32)*brt overflow gdzie: timer 1 overflow=(sysclk/12)/(256-th1) brt overflow=(sysclk/2)/(256-brt)...
Do tej pory troszkę bawiłem się AT89C2051. Wykonałem pewien układzik który za pomocą Timera0 zliczał impulsy na wejściu T0 podczas 1sekundy którą odmierzałem Timerem1. Jako, że musiałem przeprogramować 51 do innych celów chciałbym go zastąpić Attiny2313 bo mam dwie sztuki. Zacząłem czytać książkę Dolińskiego aby wykonać program ale mam pewne problemy....
Trochę z obawą prezentuję kolejny już na elektrodzie sterownik oświetlenia, no bo ileż tego już tutaj było? A jednak nie znalazłem rozwiązania mnie zadowalającego, dlatego też powstał niżej prezentowany układ, powstał ponieważ klasyczne lampy z czujnikami ruchu mają pewną zasadniczą wadę: nie dają się w żaden sposób sterować, a ja chciałem mieć możliwość...
Witam Dzisiaj prosilbym bym o pomoc w kwesti zaprogramowania mikrokontrolera AT89C2051. Posiadam programik ktory ma mi obsluzyc wyswietlacz dwusegmentowy LED i inkrementowac od zera do 99 "w kolko". Napisalem sobie taki programik: Dim T333us As Byte , T2ms As Byte , T25ms As Byte Dim Jedsek As Byte , Dziesek As Byte , Jedmin As Byte , Dziemin As Byte...
witam Nie znam sie dobrze na programowaniu w bascom a chcialem zbudowac sterownik do pieca co, w EDW byl taki projekt i zbudowalem uklad ale temperature pokazuje z 3 czujnikow a jest mozliwosc podlaczenia 4 Mozecie mi pomoc i powiedziec co trzeba zmienic w programie aby sterownik pokazywal temp. z 4 czujnikow? Zalaczam listing. 'czerwiec 2002 'sterownik...
Powiem szczerze, że nie zabardzo tam widzę działanie tego PWM jaki starasz sie generowac. Przynajmniej na filmiku widać jedynie migajace diody. A teoretycznie diody te powinny płynnie przygasać lub płynnie się rozjaśniać. Właśnie jestem na etapie tworzenia prezentu pod choinkę dla dziewczyny i w nim zastosowałem swojego pomysłu sposób generowania PWM....
Witam, cel pozostał ten sam, lecz zmienił się kod, tym razem bez Lcd, więc jako zadanie dostałem opisanie krok po kroku otrzymanego kodu oraz przeniesienie kodu z języka Bascom na kod Asemblera i C. Jako, że programowanie nie jest moją mocną stroną, prosiłbym o pomoc (rady, sugestie najlepiej w sposób tzw. łopatologiczny jak można osiągnąć postawiony...
Witam Zbudowałem termometr na AT89C2051 z czujnikiem LM335 i przetwornikiem U/f LM331. Termometr działa, ale pomiar częstotliwości (3-5 kHz) odbywa się przy pomocy procedury Wait, wiem że nie nadaje się ona do takich rzeczy i aby uzyskać w miarę równe i poprawne wyniki musiałem zmniejszyć czas z 1 s do 780 ms i brać średnią z 10 pomiarów. Mimo to termometr...
Mam już program napisany w Bascomie obliczający czestotliwość a z częstotliwości okres jednak nie bardzo mam pomysł jak moge wychwycić koniec impulsu(zbocze opadające)...Reszta to pikuś następnie obliczam procent wypełniania impulsu do całego okresu...ma ktoś pomysł jak zrealizować czas trwania impulsu w Bascomie? Dodam tylko że impulsy zliczam poprzez...
Witam, Napotkałem drobny problem podczas pisania programu w C (Keil) dla AT89C2051. Otoż chciałbym napisać program, w którym w określonych przez mnie momentach będę wysyłał dane przez łącze szeregowe, natomiast odbiór danych będę realizował w podprogramie obsługi przerwania od SIO. Może zamieszczę kawałek kodu aby Wam to uzmysłowić: #define LED P1_3...
Witam forumowiczów. Mam mały problem z przerobieniem programu do mierzenia temperatury wzmacniacza 2x200W, problem polega na tym że mam program pod kostkę AT89C2051 a obecnie dysponuje tylko atmegą 16. Oryginalny program jest użytkownika "lechoo". Byłbym bardzo wdzięczny gdybyście pomogli mi przy tym programie. [syntax=basic4gl]'----------------------...
Przedstawiam efekty mojej próby zmierzenia się z tematem sterowania bramą garażową. Taka potrzeba pojawiła się po awarii oryginalnej elektroniki napędu. Zamiast kupować następną identyczną płytkę sterującą (która znowu padnie po jakimś czasie), można przecież zrobić swoją, prostszą, i potem tanio ją serwisować we własnym zakresie. (I to by było na...
Podam na AT89C2051, ale to jest to samo, trochę inne liczby tylko $regfile = "89c2051.DAT" $crystal = 12000000 Dim T1ov As Word , Cnt1 As Word On Timer1 T1_int Nosave Enable Interrupts Enable Timer1 Impuls Alias P3.5 'tu podłączamy impulsy wtryskiwacza Dim Liczba As Long Cursor Off Noblink Cls '***************Pomiar czasu trwania impulsu ujemnego...
Witam. Buduje sobie pseudo skaner dyskotekowy znalezion w EdW (wiem że tego nie można w stu procentach nazwać skanerem) i mam problem. Potrzebuje pomoc w napisaniu / przepisaniu programu z języka Asembler na C++. Program jest pobrany ze strony EdW, jednak nic z niego nie rozumiem i przystosowany jest do AT89C2051. Ma on być wrzucony na Atmege8. Pinologia...
Witam! Próbuje zrobić zegar binarny wg projektu ze strony: ale jest maly problem...nie moge uzyc kontrolera jaki jest w tym projekcie (at89c2051)..mam tylko attiny2313 , czy moglby mi ktos pomoc zmienic program (bascom) tak zeby dzialal na attiny? Za pomoc oferuje 15 pkt na zachete ;) Oto kod programu: $large 'Zmienne '***************************************...
Chciałbym zaprezentować prosty licznik Geigera, jaki ostatnio wykonałem. Urządzenie oparte jest o powszechnie znaną radziecką tubę STS-5. Lampa ta jest ciekawa, ponieważ jest stosunkowo czuła. Jako element sterujący zastosowałem mój ulubiony mikrokontroler rodziny 8051 typu AT89C2051 z typowym rezonatorem kwarcowym 12MHz. Oprogramowanie zostało napisane...
Qrcze a jednak :( :( :( :cry: ... jeszcze pamiętam jak Raabe pisał w którejś elektronice że taka emulacja nie jest mozliwa. Robie układ ochrony dostępu do pomieszczeń i myślałem że kopiowanie kluczy bedzie niemożliwe... jak widać teraz juz tak :cry: A może istnieje jakiś pewny sposób na odróżnienie takiej skopiowanej pastylki od oryginału? ; ------...
To chyba już niewiwle pamiętasz bo mówimy o procku AT89C2051 a nie PIC-ujemy.Mniejsza o to. Można też podłączyć przez dzielnik napięcie zmienne z transformatorka zasilacza do końcówki np. INT1 i w ten sposób wykrywać czy występują impulsy 50 Hz w sieci energetycznej.To jest dosyć często stosowana metoda no i można wykorzystać jako mniej lub bardziej...
Z tego co czytam to można zrobić to następująco: 1. wycofałbym się z obu procesorów bo są za duże jak na ten projekt wystarczyłby w zasadzie jakiś malutki procesorek powiedzmy ATTINY12 (8pin) ale jest on droższy od np. AT89C2051. 2. sygnał z pedału hamulca podałbym poprzez rezystor a za rezystorem dioda zenera 4.7V (do tej diody równolegle też można...
Witam Jeśli chodzi o rozwiązanie to każde z trzech podanych jest dobre aczkolwiek przy zasilaniu ~230V wystąpi pewne ograniczenie. Ograniczenie będzie wynikało z faktu iż do bezpośredniego sterowania triakami bedziesz potrzebował tyle timerów ile chcesz mieć niezależnie sterowanych żarówek. W przypadku 6-ciu żarówek potrzebowałbyś 6 timerów a to jest...
Witam. Postanowiłem wreszcie zrobić sobie zegarek do pokoju. Wybór pał na PCF8583 bo już kiedyś z niego korzystałem i wspominam bardzo pozytywnie - nie było żadnych problemów z odpaleniem i komunikacją tylko że to były czasy AT89C2051 i bascoma 8051. Teraz mam w układzie atmege8515 i są spore "jaja" co jakiś czas (godzina czasem pół czasem dwie) dostaje...
Witam. Jestem już dawno zalogowany na elektrodzie ale jeszcze nic nie napisałem więc czas zacząć. Odnośnie programu w BASCOM'ie to mogę z przyjemnością pomóc rozwiązać kilka problemów. Sam wykonywałem podobny układ dla znajomego (timer fotograficzny) było to na mikrokontrolerz AT89C2051. Nie jest zbyt dokładny ale takie miał założenia. Jeśli się na...
To już na pewno nie wchodzi w grę, pisanie od początku. Jutro zrobię programator do 2051 i teraz pytanie czy mógł by ktoś przekompilować ten program do pliku HEX, ponieważ nie znam się wogóle na asemblerze a wyskakuje jakiś błąd: [syntax=asembler]Program pre AT89C2051: $MOD51 $TITLE(E-MI - DMX to RGB PWM converter for LED driver V 3.0) $NOPAGING $DEBUG...
Pamiętam, że kiedyś miałem spory problem w Keil'u z zasymulowaniem przerwnia od timera dla AT89C2051. Skończyło się na testach w układzie. Program był pisany w Assemblerze, ale dla symulatora nie powinno mieć to znaczenia. Nie twierdzę jednoznacznie, że symulator posiada błąd (mogło to być jakieś moje niedopatrzenie), ale de facto problem taki u mnie...
Witam Jak zwykle mam problem z konfiguracją timera i prosze o pomoc Potrzebuje wykonać stoper z dkładnością 0,1 s Jak skonfigurować timer0 i jakiego kwarcu urzyć w procku AT89c2051 Prosiłbym o jakiś przykład :(
9V kolego, a stabilizator w układzie jest, tylko kwestia czy go nie spali przy 12 V czekam na odpowiedz na moje zasadnicze pytanie, mianowicie, uruchomienie drugiej linijki w lcd 2x16 przy zastosowaniu drugiego układu, co trzeba zmienic w programie (drugiego programu, dla drugiej linijki) prócz tego ze zmienic 1x16a na 2x16: 'Termometr 2-kanałowy DS18B20,...
Witam wszystkich mam dostęp do programu sterownika + płytka .Sterownik był przeznaczony do innego urządzenia jednak sposób działania odpowiada sterowaniu bramy,są trzy przyciski ,góra ,dół,stop,możliwość zatrzymania w dowolnej chwili.Problem w tym że program jest pod AT89C2051 a prościej programuje się Attiny2313.Jak ktoś dałby radę przerobić ten program...
Ostatni raz '51 (konkretnie at89c2051) programowałem jakieś 7 lat temu i nie pamiętam już nazw rejestrów itp. Twój program działa tak: MOV TMOD, #02H; //ustawiasz timer w odpowiedni typ pracy MOV TH0, #0FAH; //ladujesz starsza czesz rejestru timera wartoscią początkową NOP; //nie robisz nic CPL P1.0; //zmieniasz stan pinu na przeciwny MOV TL0, #0EBH;...
Witam znalazłem bardzo interesujący schemat dekodera RC5 na µP AT89C2051 , mam jednak problem przy kompilacji programu (wyskakują błędy :( ) i proszę o pomoc. ;) Oto link: A tutaj schemat i listing ;) 8051 ASSEMBLY CODE ; ÛÛÛÛÛÛ... ÜÛÛÛÛÛÜ ÛÛÛÛÛÛ...
Witam, Programuję sobie procesorek AT89C2051 i magistralę 1-Wire. O ile z odczytem danych z magistrali nie było problemów, o tyle z wysłaniem tego przez RS-232 jest problem. Czy ktoś z użytkowników ma jakieś gotowe procedury zapisu i odczytu do porty RS232? W BASCOM wszystko działa, ale chcę to zrobić w C. Na razie doszedłem do: //funkcja obsługująca...
Programator umożliwia: programowanie i zrzucanie zawartości pamięci mikrokontrolerów jednoukładowych Atmel AT89 C X051 programowanie i zrzucanie zawartości pamięci EEPROM I2C AT24C02 komunikację z urządzeniami slave 1-wire generowanie sygnału zegarowego dla Atmela, wystawianie i pobieranie wartości portów (coś jakby zalążek interfejsu debuggera) Programator...
Ja dałem przykład tylko. Posiadam w domu trzy sterowniki każdy z innej firmy i wszystkie mają ten sam problem. Wątpię aby jakakolwiek firma stosowała u siebie przy produkcji jakichkolwiek sterowników oprogramowanie bascom. No ale może się mylę. Robiłem na zamówienie sterownik temperatury jeszcze na rodzinie 51. Aby rozwiazać problem z obsługą 1-wire...