No :P Ja wywaliłem LCD poza przerwanie, więc się nie zgubi. Najwyżej będzie wyświetlał co drugą szybko zmieniająca sie liczbę. Co nie będzie przeszkadzać bo człowiek i tak by nie zobaczył migoczących cyfr.
Mozna jeszcze zatrudnić zegarek np: PCF-a. Wtedy będziesz miał bardzo dokładnie. Ale tak jak pisałem nie wiesz czy kwarc ma dokładnie 12000000 taktów /s więc przy pomocy stopera możesz sobie dopasować wartości w TH1.
asembler lub bascom(z tym ze bascom dla 8xxx51) ewentulanie c
Z takimi zalozeniami to najlepiej zrobić to na procesorze np. ATMEL 89C2051
dokładnie to o to mi chodzi żeby ten kod zadziałał, analogiczny w asm też nie działa, a właściwie działa tak samo i nie wiem bardzo dlaczego?? 'Timer1 dzia OK, ale timer0 zamiast zliczać p3.4 tylko się tym portem bramkuje??? $sim Config Timer1 = Timer , Gate = Internal , Mode = 0 Config Timer0 = Counter , Gate = Internal , Mode = 1 ' wstawilem też external...
Wykonałem sterownik do silnika krokowego na uP 89C2051 (...) Masz w zapacie nieużywany timer liczący w dół (do 0) ? (...) A czy w 89C2051 jest jakiś timer liczący w dół (a może nie doczytałem datasheet-a :wink:)? Pozdrawiam, jj.
A jak wygenerowac przebieg zegarowy bez użycia timera w 89c2051?
this 4 digit digital clock/programmer timer using 89c2051
jeżeli szukasz gotowego rozwiazania timera na 89c2051 to zobacz ten projekt http://bc107.republika.pl/html/timer.htm...
Jak przyglądałem się TIMER'om w Bascomie to zauważyłem, że coś jest popieprzone z trybami. Jedyny tryb który działa mi jako tako to tryb drugi. W symulacji widać jak są załadowane rejestry i jak się w nich wszystko zmienia. W pozostałych trybach jest coś nie tak. Jeśli ktoś już się z tym spotkał niech coś napisze. Pozdrawiam.
Witam. Looknij tam:http://www.elektroda.pl/rtvforum/top... Czasami warto obejrzec posty zanim sie zada pytanie :) Pozdrawiam
Alana - timer 0-90sek, 89c2051, bascom Alana - czestosciomierz, 89c2051, bascom Alana - czestosciomierz przerobka poprzedniego, 89c2051, asm
Witam Załóżmy że chcemy mieć 50Hz. Teraz trzy wyświetlacze to wychodzi przerwanie 150Hz czyli okres co 0,00666 itd sec. Teraz policz ile cykli przypada przy Twoim zegarku na taki czas. Teraz wystarczy podstawić dane do liczników Timera (pamiętaj że liczą one w górę). Wydaje mi się że ładniej jest przeładować liczniki Timerów przy wejściu do przerwania...
Witam. I przystępuję do rzeczy :wink: Config Timer0 = Counter = Internal , Mode = 1 Co to jest za tryb :?: Chcesz zliczać impulsy na P3.4 czy cykle maszynowe :?: Load Timer0 , S Ta instrukcja nie spowoduje przepełnienia sie T0 po 5000 taktach ale po 34696 ,ponieważ załaduje rejestry TL0 i TH0 wartością 120(Hex 78 ) gdyż stosowana jest tylko w trybie...
tak dla jaj pisze na jego mniejszej wersji- 89C2051, O co konkretnie ci chodzi?. jak ma wyglądać mniej wiecej ten timer i czy musi być na tak "ogromnym" procku?
zdecydowanie najlepiej jak poleca fajfer sprzetowe pwm ale jak masz mikrokntroler bez sprzetowego pwm to praktycznie bedzie pracowal na pwm jak dolozysz jakis wyswietlacz to max wyciagniesz kilkaset kilochercow , kiedys probowalem uzyc timerow niestety wszystko pracuje niestabilnie bo procek obsluguje program sobie a timery wrzucaja przerwania niesynchronicznie...
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...
Pytanie do Autora: w jaki sposób zrealizowałeś PWM dla diod? Z wykorzystaniem timera czy tylko w głównej pętli programu? Możesz przedstawić swoją ideę? Projekcik bardzo ładny. Sam właśnie jestem w trakcie tworzenia czegoś w tym stylu dla mojej panny. Tylko, że w moim przypadku chodzi raczej o bajerancko podświetlaną ramkę do wspólnego zdjęcia. Ja narazie...
Witam może winą jest 89C2051 -poszukuje do niego programu(kodu żródłowego ) lub pliku hex,bin Pozdrawiam
Dobrze podejrzewasz, RTC=Real Time Clock czyli zegar czasu rzeczywistego. Co to jest? To jest uklad licznikowy ktory sluzy do odmierzania czasu czyli prosciej zegarek. Akurat 89C2051 nie ma wbudowanego RTC. Ma zwykle liczniki/timery na ktorych mozesz sobie zrobic zegarek. Pozdro Dexter
to jeszcze zależy co po za plumkaniem ma robić 2051, jak zostanie wykorzystany. Jak będę miał czas to się pobawię timerami (mam 8252) a jak wyjdzie to się podzielę :) Pozdrawiam.
kamyczek: Hmm jak długo Ci trwaja procedury obsługi przerwań??? Że aż drugi tajemer się przepełni 10 razy? To znaczy że po prostu je źle piszesz od tych kilku lat! ".. kto wykorzystuje dwa przerwania do wykonania 2 operacji o czasach wielokrotnych stosuje sie jedem timer.." z tym się zgodze, ale kolega MichalKl chciał to chyba zrobić w celach edukacyjnych.
Jeżeli chodzi o timery to po co je zaprzęgać jeżeli nie ma potrzeby mierzyć dokładnych okresów czasu. Jeżeli chodzi o problem to został rozwiązany.
Dzięki... temat zakończony... robiw
Czy możesz zdradzić w jaki sposób można to zrobić? Czy mam sprawdzać przy każdym przerwaniu timera, czy na którymś z wejść nie pojawił się impuls? Zbyt częste generowanie przerwań jest niewskazane, ponieważ program ma po za tym wykonywać inne instrukcje, a do tego ma być jeszcze pomiar długości impulsu na drugim timerze (w miarę dokładny pomiar). Arek
http://www.atmel.com/dyn/products/datash... - tutaj informacje są dokładniejsze, sciagnij pdf od obu procesorków i porównaj... 80C51 : • Compatible with MCS-51™ Products • 4K Bytes of In-System Reprogrammable Flash Memory – Endurance: 1,000 Write/Erase Cycles • Fully Static Operation: 0 Hz to 24 MHz •...
Czy wie ktoś może jak w prosty sposób regulować jasność żarówki pr. stałego (12V 50W) za pomocą atmelka? Może istnieje jakiś programowany generator PWM? Będę wdzięczny za pomoc :) Witam. Tak może być :?: Const Zakres = 31 Dim Wypelnienie As Byte , Licznik As Byte Config Timer0 = Timer , Gate = Internal Mode 2 On Timer0 Ti0_int Load Timer0 , 50 'tę...
No właśnie miałem problem ze zrozumieniem Twojej ideii. Ale teraz mnie oświeciłeś. Ale powtórzę jeszcze raz - przy każdym przerwaniu timera wykonać procedurę porównania i zwiększyć "licznik", a nie porównać od razy cały licznik.
Witam. Czy można w tym procu skonfigurować timer jako licznik ale tak żeby mozna było liczyć w nim w górę i w dół ? Bo jak na razie to nie znalazłem takiej konfiguracji. Pozdroofka Piotrek
Jak chcesz miec porzadek w programie i jesli procesor ma robić tylko tyle ile musi to : po 1. Powinienes zdefiniowac w RAM bufor wartosci MIERZONEJ po 2. j/w dodatkowo bufor wartosci WYSWIETLANEJ (wyswietlacza) po 3. W przerwaniu (timera) powinna znalezc sie JEDYNIE obsluga wyswietlania poszczególnych cyfr (pozycji) z bufora WYSWIETLANIA - dotyczy to...
Wykorzystaj zewnętrna przerwanie int0 lub int1 i timer i potem jak chcesz mieć wskazanie analogowe do dobrze było by podłączyć przetwornik D/A no i troche kodu do tego napisać.
ja to zrealizowalem dosyc dawno ale gdzies mam w starych projektach przy 1200 bodow procek bez problemu by zrealizowal UART przy 1200 bodach czasy pomiedzy przerwaniami od timera taktujacego w ktorym pobieraloby sie kolejny bit wynosza przy 12MHz 1000000/1200=833us.bez problemu by to sie wyrabialo.wazne jest zeby przerwania od inta i timera taktujacego...
Jak zrobić opóźnienie ok 30min z którego można zrezygnować (anulować) w każdej chwili? Nie znam asm zupełnie i tylko trochę znam Bascom'a (chodzi mi o przykład oczywiście w tym drugim). Oczywiście można wydać polecenie "Wait" kilkakrotnie, ale to sprawy nie załatwia ponieważ nie można tego anulowac - chyba ze ja o czymś nie wiem. Kwarc który użuwam...
Napisałem taki program , który steruje pracą licznika za pomocą dwóch przycisków podłączonych do portów z wykorzystaniem przerwania INT0 , 1 . Naciśnięcie przycisku S1 (P3.2) powoduje rozpoczęcie zliczania impulsów , a S2 (P3.3) zatrzymanie i wyświetlenie wyniku.Wszystko działa bezproblemowo , ale jest jedno ale..... . Naciśnięcie przycisku S1 powoduje...
Ma ktoś może jakieś linki do źródła, albo materiały, gdzie temat byłby wystarczająco jasno i przejrzyście opisany i wytłumaczony? Załóżmy, że chcę uzyskać częstotliwość 60 Hz. 60 Hz :?: Proszę bardzo: $crystal = 11059200 $regfile = "89c2051.dat" Dim L1 As Byte Config Timer0 = Timer , Gate = Internal , Mode = 2 On Timer0 T0_int Load Timer0 , 256 Enable...
Tak tez uwazam ale lepiej spytac. W miedzy czasie wpadl mi do glowy taki pomysl: jeden timer nalicza bardzo krotkie impulsy, natomiast drugi nalicza imp zewnetrzne. Przyczym timer wewnetrzny, programowy wzbudzany jest jednym z imp zewnetrznych. Po wystapieniu pewnej ilosci imp zew, wartosc to porownywana jest z imp wewnetrznymi. Jezeli znamy czas imp...
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...
Musisz tak dobrać częstotliwość przerwań (przy kwarcu 12MHz proponuję 625Hz - tryb 0 i wartość początkowa TH0=206), aby w procedurze obsługi przerwania przeładodywać tylko rejestr TH0. Tylko w ten sposób przerwanie będzie generowane z idealną dokładnością i nie będziesz miał żadnych opóźnień. Błąd w Twoim przypadku spowodowany jest tym, że nie uwzględniłeś...
Witam !! Proszę mnie oświecić, gdyż mam mętlik w głowie. Chciałbym zrealizować generator na 89.. o częstotliwości 100Hz, tak aby ta częst. była dostępna na jednym z portów. Hmm... najlepiej sinusoida. Bascom oczywiście.. Czytałem o timerach, ich przeładowaniach, ale coś się u mnie zablokowało. Dla swojego ułatwienia zastosuję kwarc 12MHz aby po wewn....
Jestem poczatkujący - może jakiś przykład z tym timerem. Procesor to 89c2051.
Zrobilem jakis czas temu zegar na 89C2051 z kwarcem 12Mhz.....w Bascomie (!!!!) i walil sie tylko ok 0,5 sek na dobe! Program byl bardzo prosty i wykorzystywal do odliczania czasu timer 16-bitowy. Wada: koniecznosc ustawiania czasu po oodlaczeniu zasilania i rzeczywiscie lepiej w tym przypadku zastosowac RTC. Ale wykorzystujac korekcje czasu, jak ktos...
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...
Witam ponownie. Twój program się wcale nie kompiluje, ponieważ masz trochę błędów. Nie wiem jak u Ciebie, ale u mnie podświetla na czerwono linię, która jest nieprawidłowa. Trochę zdziwiło mnie, że wyskakuje błąd w linii w której nie można się pomylić i faktycznie ona była ok. Config timer...... Tu wszystko ok tylko dalej popełniłeś duży błąd używając...
z ta kalibracjo to ciekawy temat ,ale jak podepne czujnik do termometru zrobionego na rs232 to temperature pokazuje idealnie,a ten kwarc to faktycznie 12.902400 ,tylko zmieniłem go na 11,059 oczywiscie tez zmieniając w kompilatorze. Wybacz kolego , ale Cię troszkę "obsztorcuje" :D 1)Twierdzisz , że używasz DS1820 (9-bit) , a temperaturę obliczasz jak...
Witam. Robię obrotomierz na 89c2051. Założenie jest takie żeby było jak najmniej elementów. Na wejście timera dałem tranzystor npn. Na jego bazę daje impulsy sterowania cewką zapłonową. Obrotomierz ma być do motocykla 4T 1 cylinder, więc jeden impuls to jeden obrót. Jak układ testuję na transformatorze podpiętym do sieci to ładnie pokazuje wynik "obr...
Tak, można zrobić nawet powyżej 1,2 MHz tylko nie wiem jak uzyskać mały krok rzędi 10 000 Kz na timerze nawet przy kwarcu 24 MHz krok przy wyższych częstotliwościach to ok 800 000 Hz czyli jak dla mnie za dużo . znalazłem układ na dwócj at 89c4051 i 89c2051 ale osiąga za niską częstotliwość pewnie na AVR by poszedł ale mam jeszcze za małą wiedzę może...
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...
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...
Obawiam się, że bez "sił zewnętrznych" typu przycisk może być ciężko... Można próbować poczynając od wystartowania timera połączonego z odczytywaniem wiszącego (nie podciągniętego) pinu albo lepiej odczyt stanu portu analogowego (z podłączonym czujnikiem temperatury, światła czy co tam kto jeszcze wymyślił) i w zależności od jego stanu przemielenie...
Widać teraz jakie ludziom siano w głowie bascom robi. 3 diody o zmiennej częstotliwości? Przecież to można zrobić na PWMach, 2 timery mają PWM, do jednego można dorobić programowo, albo wsadzić atmegę88 która ma ich wystarczająco dużo. Nie trzeba robić żadnych pętli, nic nie puchnie... Na 89C2051 powstało tyle złożonych projektów, mam analizator stanów...
ale nie wiem jak podejsc do przerwan zewnetrznych (przyciski). Przyciski mam podlaczone pod: P3.3 (Int1), P3.5(T1), P3.4 (T0), P3.2 (Int0). Jak to jest mozliwe ze sterujac multiplekserowo wyswietlaczami segmentowymi wysylajac aktywny bit na port P3, moge jednoczesnie zglaszac zewnetrzne przerwania (z przyciskow)?? Możesz. Ale dlaczego przyciski mają...
Witam! Sorry Mariusz Ch. - nie widziałem tego wcześniej. Na tych samych układach scalonych to zrobiłeś, ale to są tak popularne scalaki, że ciężko się od nich uwolnić! ;-) Pozdrawiam PS Nie mniej przy bardziej rozbudowanych układach, warto już użyć procka. 89C2051 kosztuje obecnie grosze. Kiedyś dostępny był w handlu fajny sterownik efektów świetlnych,...
Jeżeli uszkodzony jest jakiś port który nie bierze udziału podczas procesu programowania to program ci tego nie pokaże (tak już miałem ale z ATMEL-em). Zgadzam sie, ale jeśli jest "złośliwie" uszkodzony układ to samo sprawdzenie portów nie pomoże. Najlepiej napisać program co sprawdza wszystkie kombinacje wejsc: ADC, INT, zliczanie timer itp. Na forum...
Ja wczoraj zaczełem programować 89c2051 z ustawionym napięciem vpp 15v teraz poierwszych dwóch bajtó nie da się skasować, programator od bascoma wogule nie rusza tego procka nie może skasować ani zaprogramować, ale willem daje rade nie za każdym razem, ale po kilku próbach wychodzi :-D nawet kasuje czasami te dwa pierwsze bajty, ale chyba timer mi padł...
No to jeszcze dorzucę, to co znalazłem w pewnym pdf-e Motoroli - aplikacja , zresztą bardzo podobna do tej j/w. Legenda : XTAL1 - wejście inwertera generatora XTAL2 - wyjście inwertera generatora Tak przy okazji - AVR - y posiadające wbudowany timer asynchroniczny (np. AT90S8535 , ATmega8535 , ATmega16 , ATmega8 itd.) już są przygotowane do bezpośredniego...
no coz ja bym wolal cos na 89c2051... Hmm... Jak już miałem skończony kod na AVR to czasem go przepisywałem na 2051. Tutaj jest nieco inaczej, bo wykorzystuję to, że ATmega ma na pokładzie ADC i timer z dwoma PWM. Co konkretnie chciałbyś podrasować w tym kodzie? BTW Jak mocnego używasz silnika w swoim układzie z podwajaczem napięcia? Zbudowałem układ...
czy macie moze pomysl jak zrealizowac algorytm sterownia grupowego. np. jezeli cykl sterowania równy by byl Cykl=256 okresow i w tym bysmy chcieli przepuscic X=100 okresow, to przepuszczanie okresow odbywac by mialo sie na przemian np. 1 puscimy a nastepne 2 nie puscimy. X moze przyjmowac watosci od 0 do 256.dzieki Można to zrobić bez synchronizacji...
Proszę o wskazówki dotyczące zaprogramowania tego mikrokontrolera 2051. Pierwsz raz programuję i wyskakuje mi error 8. Nie wiem dlaczego co i po co, nie znam się jeszcze na tym. Program przepisałem z gazety Nowy Elektronik i chyba posiada błędy. Proszę o sprawdzenie programu lub skompilowanie. Dziękuję z góry za pomoc $crystal = 22118400 $regfile =...
W zasadzie łatwo, na poczatku programu wstawiasz tylko konfiguracje portów potem zamiast P0 piszesz PB a zamiat P1 PD, z portami bedzie własnie najwiecej zabawy a sporych fragmentów programu czesto nie trzeba zmieniac, w drugą strone jest trudniej - z AVR na 51 bo mają rózne bajery których 51 nie ma, problem bedzie jeszcze z timerami/licznikami, no...
Witam Obecnie potrzebuję zamówić napisanie prostych programów typu miganie LED, timery, wyświetlacze 7 segmentowe itp. na procesory 89C2051. 51, 52 itp. Chciałbym nawiązać współpracę z elektronikiem hobbystą, który pisze na te procesory. Również na procesory PIC i AVR, ale głównie obecnie potrzebuję na 2051. Osoby zainteresowane zapraszam na PW. S.Ruciński
Witam !!! Linijka 89C2051 Chciałem napisać program sterujący linjką led w .asm z zastosowaniem przerwań i timerów. Program na ogół jest sprawny dopiero po modyfikacji - "Operacje na porcie" sie wykrzacza. Na symulatorze pracuje ok ,jednak w układzie coś nie tak, a zalezało mi na zmianie stanu portu poprzez obrót : RL A proszę o pomoc gdzie robię błąd....
Jak już się zdecydowałeś pokazać do końca program to bym to zapisał tak: iseg ORG 30h GD:DS1 NLed:DS1 cseg ORG0 movGD,#1 ;do testów na symulatorze movNLed,#7 ;j.w. movA,GD cjneA,#0,skok1 movA,NLed jzzapis movR7,A movA,#0FFh nextloop1: clrc rlcA djnzr7,nextloop1 movP1,A sjmpkoniec zapis: movP1,#0FFh sjmpkoniec skok1: movA,NLed jzzapis2...
A moze zaczac od ukladu 89S8252 - układ z rodziny 51 w obudowie 40 pinowej z wbudowanymi timerami, eepromem i vo najwazniejsze programowalny w systemie (w praktyce ma sie cos jak idealny emulator procesora); nie ma koniecznosci co chwile przekladania ukladu do i z programatora. Mozna zastosowac uklad 4053 i wtedy programtor moze byc na stale podlaczony...
No wiec programik jest. Dziala liczy tylko reset nie dziala tak jak powinien. Po nacisnieciu RESET wygaszaja sie 3 ostatnie wyswietlacze a pierwszy wywietla liczbe ktora mial przed wcisnieciem reset. Dop kolejny impuls zliczony powoduje wyswietlenie 1 na pierwszym wyswietlaczu. $regfile = "89c2051.dat" $crystal = 12000000 Config Timer0 = Timer...
Witam wsztstkich, mam taki problem. Zrobiłem zegar i niby wsztstko jest w porządku lecz trochę mi się późni. Opóźnienie wynosi ok 1,5 sek. na godzinę. Wykonałem go na procesorze 89c2051 z 12MHz kwarcem. Program sam do niego pisałem i wydaje mi się że powinno być wszystko dobrze bo wyliczenia się zgadzają a jednak jest chyba coś nie tak. Proszę o pomoc....
Tak się tego nie robi! Do multipleksowania wyświetlaczy użyć timerów. Tutaj masz artykuł który na temat multipleksowania wyświetlaczy napisałem. Jeśli pomógł.. liczę na click: http://wkretak.pl/readarticle.php?articl... W artykule wykorzystuję co prawda wyświetlacze ze wspólną katodą.. ale zasada sterowania jest podobna.. tylko że wspólną anodę...
no i wlasnie uwazam ze twoja metoda zabiera o wiele wiecej czasu procesora jak i kodu. ja tylko w przerwaniu sprawdzam p3.6 i juz wiem czy nastapil zanik zasilania.i nic wiecej w tym przerwaniu sie nie robi.owszem gdy stwierdzam zanik zasilania wtedy zapisuje dane ale wtedy to juz jest sytuacja przy ktorej ma prawo (a nawet musi) nie dzialac wyswietlacz...
Wszystko fajnie ladnie ale co wtedy gdy stracisz na chwile zasilanie albo uklad sie zresetuje z jakiejs innej przyczyny? Wtedy trzeba ustawiac godzine od nowa a to przekresa ten zegarek z praktycznego zastosowania. Uzyj przwdziwego RTC a wtedy pozbedziesz sie zarowno tego problemu No a co jesli spadnie na zegar z RTC cegla w drewnianym kosciele ? tez...
Typowe przerwania arduino ma tylko na wejściach INT. Reszte trzeba sobie dopisać Wystarczy użyć biblioteki timer aby program pracował w przerwaniach od timera. W multipleksowym wyświetla się na bierząco jedną cyfre co ok powiedzmy 1ms Tu nie można przesadzać z częstotliwością odświeżania. Zapis danych do wyświetlacza to nie dwa rozkazy, tylko jakieś...
Witam! Ostatnio zaczolem sie uczyc asemblera na procki 8051. Musze przyznac ze jezyk ten zaczol mi sie bardzo podobac :) Napisalem program zamka szyfrowego na procesor 89C2051, kod zrodlowy podaje w zalaczniku (jest dosc dlugi). Zamek ma dzialac tak: Jesli w pamieci eeprom nie ma zapisanego kodu (w komorce zero wartosc <> 184), zapala sie dioda...
Witam, mam problem z uruchomieniem termometru w układzie jak w temacie. Konkretnie z procedurą odczytu (zapis mi działa). Mianowicie w temperaturze pokojowej otrzymuje wynik 74 (po podzieleniu przez 2). Gdy ogrzeje układ chwytając w palce wynik szybko rośnie o kilka stopni na sekundę. Gdy nie uruchamiam konwersji to po resecie otrzymuje wartość początkową...
Zamieszczony wcześniej kod jest sprawdzony - działa na atmega8 Również po pomyfikacjach portów działa na attiny2313 i zajmuje 65% flash, wiec jest jeszcze miejsce na jakieś "wodotryski". Używam Bascom demo w wersji chyba najnowszej: 1.11.8.7 build 001 MS windows XP SP-2 Program pod attiny2313 na płytce uruchomieniowej ZL11AVR (Płytka ZL2AVR pod megę...
Pomocy, programik nie działa. Zrobiłem projekt sterownika do pompy przy piecu i fajnie działa (zresztą jest na forum). Ale skończyły mi się procesory z zapasów i kupiłem nowe. O tych z TME pisałem ale wczoraj byłem na giełdzie i zrobiłem zakup. Wszyscy mieli takie same jak z TME (co padały po 2-3 programowaniach) ale jeden miał tanio z demontarzu sprawne....
Witam Zrobiłem sobie miernik napięcia , problem mam taki że przy szybko zmieniającym się napięciu wyświetlany wynik jest nieczytelny , próbowałem robić pomiar co 1s ale jest to mało dokładne bo między pomiarami napięcie zmienia się kilkanaście razy i nie zostaje to zmierzone . Czy macie jakiś pomysł na to ? jak to rozwiązać ? oto program : $regfile...
zamierzam mierzyć wypełnienie oraz czestotliwość impulsów generowanej z kostki NE555. Poniżej zamieszczam program do mierzenia częstotliwości $regfile = "89c2051.dat" $crystal = 24000000 Dim A As Byte Dim C As Long , D As Long Dim Count As Word Dim T0ic As Long Dim Delayword As Word Count = 0 T0ic = 0 D = 0 P1 = 0 P3 = 255 Config Lcd = 16...
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,...
nie jestem specem w "c" ale wartosc wpisywana do rejestru licznika T1 ((to chyba ten ktory u Ciebie ciągle odlicza) - powinna być wpisywana odrazu po wejsciu do podprogramu obsługi przerwania a nie na jego koncu. (tym bardziej ze program wykonuje sie rozną liczbę cykil). pamietaj o tym , ze mikrokontroler ma stale adresy wektorów przerwan. Tego nie...
zaraz to napisze tak jak trzeba wszystko sie da pomyliłem sie w zmiennej bo niemozę byc typu byte jeśli wysyłam liczbe 1234 Dodano po 5 prosze oto program wysyłajacy na pin p1.1 daną 16 bitową nic trudnego $regfile = "89c2051.dat" $crystal = 11059200 Dim A As Byte Dim Slowo As Word Slowo = 1234 lub jesli nie jasno można zapisać tak A = &B10011010010...
Z tym wyświetlaczem połączenia segmentów są takie: Wyświetlacz 1-2-3-4 Dla seg. a > a-a-a-a Dla seg. b > b-f-b-f Dla seg. c > c-d-c-d Dla seg. d > d-g-d-g Dla seg. e > e-c-e-c Dla seg. f > f-dp-f-dp Dla seg. g > g-b-g-b Dla seg. dp > dp-e-dp-e Sprawdziłem i w tym tkwi problem, jak poprawię program to go tu wrzucę, spróbuję zastosować przerwania żeby...
$crystal = 12000000 $regfile = 89c2051.dat Dim Pwmcount As Byte , Count As Byte , Vals As Word , Valcount As Word , Countscale As Byte Config Timer0 = Timer , Gate = External , Mode = 0 Config Timer1 = Timer , Gate = Internal , Mode = 2 On Int1 Readint On Timer1 Pwm Load Timer1 , 250 'przeladowanie timerka dla PWM przy 250uS Set Tcon.2 P1 = 3 Count...
Witam, Może wiecie gdzie znajdę opis znaczenia poszczególnych bitów specjalnych rejestrów Atmega8 - chodzi mi przede wszystkim o bity i znaczniki przerwań od USART'a (flagi) i Timerów - w pdf'ie tego nie widziałem? I jeszcze jedno, skoro ta Atmega posiada sprzętowy I2C to czy Bascom korzysta z programowej obsługi tego protokołu tak jak w przypadku 89C2051...
http://obrazki.elektroda.pl/9838687700_1... 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ę:...
Zastosuj gasik w postaci kondensatora podlaczonego do masy rownolegle z wejsciem int0 a szeregowo z wejsciem int0 wstaw opor. Nozka kondensatora idaca do masy niech bedzie jak najblizej nozki masy 89c2051 i mam nadzieje ze masz dobrze odfiltrowane zasilanie i zablokowales kondensatorem zasilanie procka. Powinno pomoc wartosci daj 1k i 1uF lub 2,2uF,...
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. Potrzebuję odczytać kod RC5 z wyprowadzenia INT1 (PD3) Atmega8. Tymczasem w znanym Bardzo ważna uwaga: polecenie GETRC5 jest "fabrycznie" przypisane do wejścia INT0 procesora i NIE MOŻE współpracować z jakimkolwiek innym wejściem, nawet jeżeli jest to wejście przerwania sprzętowego. Dekoder podczerwieni TFMS lub SFH MUSI być dołączony do nóżki...
Jestem nowy i nie wiem czy dobrze myśle (BASCOM8051)Rezonator standardowy 11Mhz konfig T0 ,włączenie przerwań itp.., a następnie on timer0 40khz load timer0 , 23 do loop 40khz: p3.0 = not p3.0 Dobrze czy zle ,pomóżcie :))
Witam. Dzięki,że tyle odpowiedzi się pojawiło. A dokładnie to ma brykać tak. na np.P1.0 (WE1)pojawia się 0 na ok 1s. wtedy ma sie aktywować wyjscie np.P3.0 i dać 1 na 20s Jeśli na P1.0 (WE1)w czasie trwania stanu 1 na P3.0 przyjdzie kolejny impuls to ma aktywować kolejne wyjscie np.P3.1. na 20s niezalżnieod wyjscia P3.0 Żeby było trudniej to jeszcze...
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...
Niedawno miałem podobny problem i kolega ZUMEK mi pomógł przerobił swój program na moje potrzeby może tobie sie przyda do wyciągniecia wniosków u mnie działa bezproblemowo: $regfile = 89c2051.dat $crystal = 11059200 Const Displays = 4 ' liczba wyswietlaczy LED Const Cyclespushall = 45 'ilosc cykli od przepelnienia T0 , do jego "przeladowania" Const...
Dziękuję bardzo za tyle odpowiedzi. do: michalgorny - sorry ale jak jeszcze nie zauważyłeś ja mikrokontrolerami zajmuję się już dłuższy czas i jakoś mi to wychodzi. Dodam może więcej szczegułów. Otóż moj znajomy ma samochód(niestety fiata) i coś ostatnio ten jego samochód wariuje(wolne obroty) i tam jest zawór IAC(elektromagnetyczny). Ponieważ żaden...
witam INT0przerwanie zewnętrzne końcówka INT0 INT1przerwanie zewnętrzne końcówka INT1 TIMER0przerwanie przepełnienia licznika TIMER0 TIMER1przerwanie przepełnienia licznika TIMER1 Gdy używane są przerwania INT0 lub INT1, można określić warunek zgłoszenia tego przerwania. Należy w tym celu użyć instrukcji SET / RESET i ustawić odpowiednie bity w rejestrze...
maclaf : obawiam sie ze linie portow niemoga byc chyba zwarte :? (jesli sie myle to mnie poprawcie :) monte: dzieki za maila ale timerow raczej niebede uzywal (sekwencje na petlach raczej zrobie - mniej zabawy) ale ogolnie to spoko - przyda sie :) GienekS: własnie o takim rozwiązaniu mysłałem :) tylko teraz jakis przyklad :)
Witam. Próbuję złożyć obrotomierz samochodowy na mikrokontrolerze Attiny2313. Wykorzystuję do tego kit z AVT2711. Chciałem wykorzystać program z tego układu. Różnica jest w mukrokontrolerach, a artukule jest 89C2051 a ja chcaiłem to zrobić na attiny i wynik pokazywać na wyświetlaczu alfa numerycznym. Jednak coś mi nie wychodzi. Odpalam układ na sucho...
Brak mi inicjalizacji przerwania - "on serial label". Patrz w pomocy do Bascoma i nie używaj wtedy do niczego timer1. Ponadto nie widzę sensu aby przy inicjalizacji przerwań na RS'ie używać Input..... w ten sposób, no bo po co aktywizować przerwanie od RS, aby je potem blokować, a może sie mylę -gdyż Bascoma używam tylko do prymitywnych testów i nigdy...
Witam! Wczoraj zrobiłem sobie taki mały układzik z wyświetlaczem od nokii 3310 i z atmelkiem jak w tytule. Załadowałem ten programik od Bobera i wszystko chodziło tylko że strasznie wolno, tylko czemu? władowałem ten .bas do bascoma 8051 i w symulatorze na tym timerku pokazało mi wykonanie kodu w niecałą sekundę, a w rzeczywistości atmel wykonywał to...
Przeglądając forum i sieć trudno znaleźć proste sterowniki pod RS 232 , dlatego zbudowałem sterowniki za pomocą których możliwe jest sterowanie silnika krokowego unipolarnego , binarnego oraz 2 silnikami dc Projektując sterowniki wyszedłem z założenia aby były możliwie proste w budowie , funkcjonalne , możliwe do wykonania przez każdego , to samo dotyczy...
Jeśli jest to rzeczywiście kopia '51 to podstawowe rejestry powinny być dokładnie tak samo konfigurowalne i powinieneś korzystać z tych samych wzorów co dla 89c2051. Nie rozumiem tylko po co chcesz wstawiać tam ten zamiennik skoro oryginał jest tani i ogólnodostępny?
No właśnie w 89C2051 są wyjścia pull-up, a w AVR push-pull i życzę powodzenia bez diodek... ;) Ja mam coś, co zajmie mniej miejsca, ale źródełkami w asm jak widzę nie jesteś zainteresowany, w dodatku to jest na przerwaniach Timer0 Overflow. Ewentualnie mogę zaproponować taki układ klawiatury : http://www.elektroda.pl/rtvforum/files-r...
dziękuję ,wszystko jasne :) Układ już śmiga,narazie jedna karta z 16 przekażnikami.Docelowo jeszcze dwie,sa już gotowe tylko muszę polutować płytki dekoderów z PCF8574. Zastanawia mnie jeszcze jeden objaw.Testuję to wszystko na płytce ZL2AVR. Cały procesor jest jakby spowolniony.Testując wcześniej inne programy na tej płytce tez to występowało. Np....
Miałem mały zastój z projektem bo nie miałem sensownego pomysłu na mocowanie elektrod. Zrobiłem fajne mocowania ale z brązu, jednak działało to całościowo słabo. Wymyśliłem takie oto mocowanie elektrod jak na załączonym obrazku. Elektrody mają gwint 8mm otwory w zaciskach nagwintowałem i elektrody fajnie się tam wkręca. Nie jestem jednak przekonany...
89c2051 miernik 89c2051 89c2051 kompilator 89c2051 bascom
micra nissan import danych access klawisz laptop samsung
Radio lampowe Relaks - przepalający się rezystor R9 (2,4 kΩ) i brak dźwięku Błąd techniczny w pralce Miele, Bosch, Samsung, LG