Witajcie. Proszę o pomoc w sprawie odmierzenia czasu za pomocą Licznika. Licznik pracuje w trybie 0 Program ma co sekunde zmieniać stan wyprowadzenia do którego podpięta jest dioda (wizualizacja pracy licznika) modyfikowałem wartość R1-pośredniego licznika ale bez skutków. po zmianie wartości TH nie ma efektów co zmienić? Grzegorz. $include(at89s8252.inc)...
Napisałem program obsługi licznika T0 z obsługą przerwań co 10ms. Proszę o sprawdzenie czy wszystko jest ok. Dodano po 22 Po zdebugowaniu i wciśnięciu run wyskakuje taki błąd: *** error 65: access violation at C:0x0020 : no 'execute/read' permission
Witam! Potrzebuję pomocy odnośnie programu w asemblerze pod DSM 8051. Mam wykonać program, który będzie liczył na wyświetlaczu LCD od 0 do 9 z przyśpieszeniem po każdej cyfrze o 900 ms do 90 ms. Po skończonym odliczaniu pojawia się napis Stop. Z tego co rozumie z polecenia to odliczanie czasowe powinno się rozpocząć od wartości 8190 ms przy cyfrze 9...
Witam, wlacze dalej z 8051 jako licznikiem kilometrów. Ktos doradzil mi abym poszukal procedur ALU ktore wykonuja obliczenia na 16 bitowej liczbie w 2 rejestrach. Znalazlem dodawanie odejmowanie konwersje etc. Nie znalazlem nigdzie mnozenia dzielenia itd. Moze zaczne od problemu, napisalem program ktory w ciagu sekundy zlicza impulsy na T0(P3.4) w ciagu...
Mam do wykonania następujący projekt. Muszę napisać program w asemblerze, który będzie tworzył 16-bitowy licznik liczący binarnie na układzie 8051.. Osiem diód mogę zapalić za pomocą polecenia MOV P1, #0b00000000 natomiast za dwie pozostałe odpowiadają bity w P3 (P3.4 i P3.5). Ponieważ zostałem rzucony na głęboką wodę, gdyż sam muszę nauczyć się asemblera...
Witam Mam do napisania program do licznika T1 ze zliczaniem impulsów zewnętrznych z obsługą przerwań. Bez NPM tylko jako przerwanie. Proszę o pomoc.
Witam mam male pytanko odnosnie programowania mikrokontrolerow , bo jestem nowa :) i mam taki problem : chcialabym aby mikrokontroler 8051 sterowal licznikiem asynchronicznym polaczonmym szeregowo z odpowiednim portem. Moglby mi ktos pomoc? Z gory dzieki P.S. programuje w C
Witam wszystkich!!! Mam programik na którym próbuje zrozumieć przerwania zewnętrzne i nie moge pojąć :D . #include <REG420.H> #include <stdio.h> #define OKRES (-46080) unsigned char volatile tim = 0; unsigned char volatile licznik0 = 0, licznik1 = 0, licznik2 = 0; void main(void) { ET0=1; //zezwolenie dla przerwań od...
Witam serdecznie, borykam się ze zrealizowaniem zadania o poniższej treści: Zaprojektować w asemblerze system mikroprocesorowy złożony z mikrokontrolera 8051. System ma realizować licznik modulo 100 generujący skalę czasową co 1s. Uruchomienie licznika i start od zera następuje poprzez podanie sygnału 1 na przycisku, wyłączenie przycisku (zero) powoduje...
witam a ja jezeli nie ma ograniczenia co do wyboru kontrolera to polecam st62xx tez ma przetwornik a/d (8bit) z multiplekserem na 4/8 wejsc. no i co najwazniejsze oprogramowanie do niego za free. w elektronice praktycznej byl programator do niego (bardzo prosty). wracajac do oprogramowania jest bardzo przyjazne. chodzi mi o realizera bronze. uP programujesz...
A ktorych portow i jak uzywac 8051 jako licznik(jak go wykorzystac jako zwykly 14bitowy licznik). Układy licznikowe w trybie 1 liczą jako 16 bitowe liczniki/timery, po ustawieniu źródła impulsów na zewnętrzne będą Ci zliczać impulsy na wejściu T0 lub T1. W przypadku wolniejszych sekwencji możesz wykorzystać wejścia przerwania zewnętrznego, albo dowolny...
Drodzy użytkownicy: Prosiłbym o pomoc odnośnie kilku pytań dotyczących rodziny procesorów 8051: 1. W jaki sposób można zatrzymać licznik? 2. Jaki jest maksymalny czas opóźnienia pomiędzy przerwaniami jaki można uzyskać wykorzystując licznik T0 w mikrokontrolerze 80C51 (12MHz)? 3. Czy jest możliwe wygenerowanie opóźnienia większego niż 1 sekunda z wykorzystaniem...
Rozumiem ze chodzi Ci o roznice miedzy C51 a C52 ?? Roznice sa niewielkie. C52 ma 256 RAM vs. 128 w C51, 8kB FLASH vs. 4kB, dodatkowy licznik/timer T2. Reszta bez zmian. Pozdro Dexter
witam czy moze mi ktos powiedziec jak odczytac w bascomie flage TR0 chodzi mi o to ze dalsza praca programu ma byc uzalezniona od tego czy licznik dzial czy nie moze w bascomie jest inny sposob zeby odczytac stan licznika dal przypomnienia dodam ze flaga ta znajduje sie w rejestrze Tcon a adres rejestru jest podzielny przez 8 wiec mozna go adresowac...
dzielisz ustawiając licznik dla oscylatora, po przepełnieniu licznika masz przerwanie wywołane, licznik 16bitowy np. sąchyba takie w AVRkach, a jeśli nie to masz przynajmniej 2 8 bitowe, a co za kłopot je połączyć? przepełnienie pierwszegi inkrementuje drugi. co do tv, to mam nadal 29cali 50Hz i migotania nie widać jeśli się nie przyglądasz :P a co...
Przy 12MHz kwarcu częstotliwość pracy timerów wynosi 1MHz, w trybie 13 bitowym przerwanie timera będzie generowane z częstotliwością 1000000/8192 = 122Hz. W procedurze obsługi przerwania robisz dodatkowy licznik, który zwiększa się o 1, i kiedy "doliczy" do 122 (znaczy że minęła sekunda) zerujesz go i jednocześnie negujesz stan portu P1.1 żeby zmienić...
Hmmm... trochę nie rozumiem pytania. Z jednej strony mówisz o dsm-8051, który jest zestawem dydaktycznym i na którym prawdopodobnie uczyłeś się programować mikrokontrolery a kawałek dalej określasz go jako mikroprocesor?! Mylisz pojęcia. W zestawie tym pracuje mikrokontroler 8052 i możesz użyć do zbudowania takiego zestawu dowolnego mikrokontrolera...
Dzięki za pomoc, to trzebaby zrobić jakoś tak: [syntax=c]#include <8051.h> unsigned int licznik=0; int main(void) { TMOD=0x11; //ustawienie trybu timera TL0=0x01; TH0=0x4C; TR0=1; ET0=1; EA=1; while(1); } void Tim0(void)__interrupt(1)__using(1) { TH0=0x4C; TL0=0x01; if(licznik==0) P2=255; else if(licznik>0&&licznik<20) P2=0; else...
Masz narzucony zegar 12MHz i on jest podstawą do obliczeń. Timer będzie taktowany zegarem 1/12 Fosc czyli 1MHz i tego nie zmienisz. Masz do odmierzenia 2 czasy 3360us i 10640us. Wybierając tryb 2 Timera utrudniłeś sobie sprawę bo maksymalny okres który możesz zliczyć do 256us. W takim przypadku musisz zrobić dodatkowy programowy licznik. Największy...
Zauważ że aby na kolektorze tego tranzystora podniosło się napięcie czyli napięcie na bazie spadło poniżej 0,7 V to napięcie na wyjściu transformatora by musiało też spaść bardzo poważnie, mało to sam transformator jest z definicji dolno przepustowy awięc przejście jakiejś szpilki jest też utrudnione. A co do pomiaru to ma on mieżyć częstotliwość sieci...
Hmm. Dziwne pytanie. Na zasadniczą część odpowiedziałeś sobie sam. Pozostają kwestie dodatkowe typu tryb obsługi, sposób ładowania wartości początkowej etc. Temat umieściłeś w dziale "mikrokontrolery". Ja mogę Ci napisać, jak to działa w stareńkim 8051. Niestety nie napisałeś, o jaki licznik i gdzie umieszczony chodzi. Pozdrawiam.
#include "8051.h" #define 500ms 0x2000 //np: 2000 to jest 500ms unsigned int licznik,Czas_Minal; void przerwanieINT0 (void) interrupt 0 using 1 { licznik++; Delay(); //jakieś opoźnienie bo uP może być za szybki do tego poruszjącego się koła } void przerwanieTR0 (void) interrupt 1 {TH0=TL0=0; if(Czas_Minal<500ms){Cza...
Witam wszystkich, otrzymałem na zajęciach do napisania program w assemblerze dla układu dsm-51 oto jego treść: Napisz program który, przeszukuje tekst zapisany w pamięci programu, odnajduje i wyświetla na LCD słowo najmłodsze w kolejności alfabetycznej (z pośród wszystkich składających się na tekst). Tekst zajmuje ciągły obszar pamięci i zakończony...
Nie pisałem jeszcze w C pod 8051 (jak narazie tylko asm) , ale ja bym zrobił tak: Umieściłbym w pamięci to co ma być wyświetlane na wyświetlaczach, czyli 1. Krok LED1 equ 7Fh ; zmienna LED1 pod adresem 7Fh LED2 equ 7Eh LED3 equ 7Dh LED4 equ 7Ch 2. W main uruchamiam timer w trybie 16 bitowym z odpowiednim nastawem, aby odpowiednio przemiatać pozycje...
Można zrobić prosty generator szumu i podłączyć go jako źródło impulsów dla licznika.
Witam! Muszę napisać program (a nie jestem specjalnie w tym biegły) do obsługi licznika gora/dół na wyświetlaczy 7-segmentowym. Tutaj chodzi mi jednak o samego procka- wciśnięcie przycisku dołączonego do P1.0 ma zwiększać natomiast na P1.1 zmniejszać stan dwucyfrowego licznika. Efekt zwiększania/zmniejszania wysyłany jest pod adres 01h (dziesiątki)...
Za sterowanie wyjściem odpowiedzialny jest układ czasowo licznikowy T1. Generuje on cykliczne przerwanie, którego czas obliczany na podstawie częstotliwości ustawianej za pomocą klawiatury. Za sterowanie wyjściem odpowiedzialny jest układ czasowo licznikowy T1. Generuje on cykliczne przerwanie, którego czas obliczany jest na podstawie częstotliwości...
witam Mam takie pytanie dotyczące uruchamiania zliczania licznika. Gdy bawiłem się 8051 to tam po dokonaniu ustawień licznika (tryb itd) zliczanie uruchamiało się poprzez setb TR0 (czyli ustawieniu bitu TR0 na poziom logicznej jedynki). Od tej pory licznik 0 po prostu zliczał. A jak to się ma w AVR np ATMedze32? Dokonuje ustawień dla licznika (np. ustawienie...
Mam do zrobienia program, który będzie zliczać czas trwania programu. Zmienna sekund ma być prezentowana w postaci binarnej za pomocą diod świecących podłączonych do portu P2. Mam użyć systemu przerwań i odpowiedni licznik-timer w wybranym trybie wiedząc, że mikrokontroler jest taktowany zegarem 11.0592MHz, a zatem jeden cykl maszynowy trwa około 1,08507...
Nie wiem dlaczego ale nie potrafie poprawnie uruchomic Timer w Bascomie. W efekcie mojej konfiguracji Timer uruchamia sie z jakąś losową ( wg mnie ) częstotliowścią i nie potrafie go zmienić na np 1HZ Kwarc 3.6864 MHz Czy ktoś mógłby podesłać lub umieścić gotowy plik bascoma 8051 z uruchomionym timerem ( obojętnie którym ) w trybie autoreload który...
POMOCY !!! Dostalem za zadanie napisac oraz zaprojektowac sygnalizacje swietlna na mcs 8051 a, ze nie jestem pojetnym ucznie bede mial z tym problemy wiec jak mozesz pomoz mi. Tresc zadania brzmi: Zaprojektowac, wykonac i zaprogramowac układ współpracujący z systemem mikroprocesor. *Połącznie systemu z płytką wykonawczą przez taśme 40 pin *dostempne...
Witam wszystkich!!! Piszę program do wiatromerza(prędkość wiatru) który zlicza impulsy z kontaktronu(ilość obrotów) i zamienia na km/h. I kto mi powie co tu jest źle bo nie ma bata żeby mi to działało :D Mikrokontroler DS89C450. Ogólnie to ma działać tak, że leci sobie Timer 2 i przerwnie od niego jest co 1ms. jesli nie ma przerwania zewnętrznego od...
Wykorzystując posiadany kod emulatorów DSM-51 oraz CA80 postanowiłem napisać na własne potrzeby eksperymentalny interpreter 8051 i Z80 w jednym. Interpreter jest uproszczony, nie ma kontroli cykli zegarowych, a w przypadku 8051 nie ma emulacji układów licznikowych, transmisji szeregowej itp. Z grubsza ma działać tak, że piszę pewien program w C, kompiluję...
Jak miło, że ktoś tu pisze w ASM bo mam problem. Otóż piszę sobie programik, który ma gadać z PC po RS. Niby nic wielkiego, literatury mnóstwo, przykładów jeszcze więcej tylko, że.... Programik (a właściwie tylko istotny fragment, który zamieszczam) działa pięknie w środowidku Keil -> pokazuje jak pięknie tyka zegarak i jak ślicznie zasuwają "iksy"...
KUPIE wojskowy rengenoradiometr DP66M z 73r za 130zł morze być ta kwota Dodano po 2 Czy mógł byś "bruns" podać mi swój tel.kom no pw to pogadamy na temat licznika Geigera
gazetka jest ta sama co autora tematu tylko urządzenie jest o dwie strony wcześniej. oto cały kod $regfile = "89C2051.DAT" $crystal = 12000000 Seg_a Alias P1.5 Seg_b Alias P1.4 Seg_c Alias P1.2 Seg_d Alias P1.0 Seg_e Alias P1.1 Seg_f Alias P1.6 Seg_g Alias P1.7 Seg_h Alias P1.3 Seg_all Alias P1 Anod_kathod Alias P3.7 Led1 Alias P3.5 Sw1 Alias...
Witam, mam problem z podłączeniem klawiatury PS/2 do 8051 i wyświetlenie na LCD 2x16 odebranych znaków. Póki co odebrane kody nie są zamieniane na kody ASCII ponieważ i tak nic nie wyświetla się na LCD (LCD działa, wyświetla napis "Znaki:" Który wyświetlam mu na początku). Obstawiam, że nie rozumiem do końca obsługi klawiatury. Pisząc kod wzorowałem...
Ma ktoś z Was może jeszcze archaicznego Bascoma 8051 i mógłby potwierdzić problem występowaniem takiego błędu: Dodatkowo w pliku bascom32.log znajduję: 05.02.2024 00:44:52 Access violation at address 0051AD31 in module 'Bascom.exe'. Read of address 30202C4E 05.02.2024 00:44:56 Access violation at address 0051DFB4 in module 'Bascom.exe'....
Mam parę pytań odnośnie 8051. Pytania wymagają praktyki(której jeszcze nie posiadam) więc pytam was, którzy takową posiadają. Jeśli uznasz że pytanie jest nieżyciowe i nie znasz na nie odpowiedzi- nawet nie zastanawiaj się nad ich zasadnością, po prostu darujcie sobie. jeśli jednak jesteście na tyle dobrzy to pomóżcie... Niektóre pytania są tylko pytaniami...
Proponuję tak: READ_KEY: MOV R0, #CSKB0 MOVX A, (at)R0 CPL A MOV R0,#0FFh JNZ PRESSED ;;jeśli naciśnięty MOV R0, #CSKB1 MOVX A, (at)R0 CPL A JZ READ_KEY ;;jeśli nie naciśnięty MOV R0,#7 ; to bedzie nasz licznik PRESSED: INC R0 RRC A ; przesuwamy ACC w prawo JNC PRESSED MOV A,R0 ; kod klawisza w ACC RET A działa to tak: jak wykryjesz, że to klawisz z...
Z realniejszych propozycji. Zastosowal bym timer i wpisal do niego wartosc poczatkowa mniejsza o 10 od maksymalnej. W przerwaniu licznika dyrektywe wpisania znow tej samej wartosci i zrestartowania licznika. Takie cos czesto przerywalo by aktualne zadanie procka, ale jesli nie masz scisle okreslonych zaleznosci czasowych w programie, to od biedy moznaby...
Witam !!! 3. Co to są banki rejestrów jak je zmieniać. - w 8051 sa cztery banki rejestrow (po 8 rejestrow w kazdym banku) zmienia sie je (banki) poprzez odpowiednie ustawienie bitow RS1 i RS0 rejestru statusowego PSW. Bank rejestrow najprosciej mowiac to zbior wlasnie 8 rejestrow w ktorych mozemy przechowywac argumenty (dane ) dla wykonywanych instrukcji...
Wykorzystaj np. 74HCT138 na sztywno górną i dolną część adresu + bramki AND. Dodano po 7 Według mnie to w pytaniu nr 2 jest za mało danych. UART wymaga ustawienia trybu pracy: synchroniczny czy asynchroniczny; źródła taktowania UARTU : Liczniki czy Zegar/12. Format słowa 8 czy 9 bitów, szybkosć transmisji , parzystość itd. Samo wysłanie znaku to po...
Wiem szanownych forumowiczów Mam do zrealizowania projekt woltomierz cyfrowy na module szkolnym DSM-51. Niestety nie posiadam takiego cuda w domu i mogę na nim robić cokolwiek tylko na uczelni. Piszemy w srodowisku Keil językiem C i ni cholery nie mogłem znaleźć żadnego symulatora. Ale do rzeczy. Projekt to woltomierz cyfrowy. Cyferki wyświetlają się...
aja mam inny pomysl, robilismy cos takiego w szkole, dziala swietnie, otoz zrob sobie jakis generatorek RC, najlepiej na bramce negujacej schmitta(nie wiem czy tak sie to dokladnie pisze), i podlacz sobie do to jakiejs nozki w scalaku(najlepiej pod jendo z przerwan), teraz wewnatrz uruchom sobie licznik(jakis timer badz tez wlasny program) i jak przyjdzie...
Witam mysle ze moge poruszyc tu kolejny watek programu na 8051 Prosil bym o pomoc potrzebuje programu napisanego a asemblerze na 8051 ktory ma zliczac impulsy zewnetrzne do 10 pozniej sie resetowac i od nowa. Wykorzystac ma on licznik T0 ktory trzeba jakos ustawic w odpowiedni tryb pracy tylko nie bardzo wiek jak ustawic te znaczniki.
Witam! to wszystko bedzie najprościej zeralizować zadania. Ja bym zrobił to tak: 1) Uruchomi układ przerwań dla licznika np T0. Ustawić licznik w tryb pierwszy. Licznik w trybie 1 przy f=12MHz przepełni się conajwyżej ≈65ms dlatego trzeba by zliczać te przepełnienia, czym mógłby się zająć wcześniej odblokowany układ przerwań tego licznika ...ale...
Po pierwsze jaki kwarc niech bedzie np.12 MHz wtedy masz 1cykl=12 taktow czyli wszytko w ukladzie lazi jakbys wsadzil kwarc 1MHz. Bierzesz licznik np. T0 moze on zliczyc od 0 do 0FFFFH w ktoryms trybie (czyli licznik 16-bitowy). Jak doliczy do 0FFFFH to przy przekreceniu do 0 wygeneruje przerwanie jak je ustawisz i tak se generujesz zadany przebieg....
Witam Proponuję zrobić to troszkę inaczej. Przerwanie zaprogramuj tak aby ustawiało jakiś bit co jedną sekundę. Program główny ma mieć taką konstrukcje. czy sekunda: jeżeli tak to mrugnąć 5x diodą wyzerować czy sekunda jeżeli nie skok na czy sekunda czy sekunda 2: jeżeli tak to buzer 4x wyzerować czy sekunda jeżeli nie to skok do czy sekunda...
Jeśli rzeczywiście ma być to dzwonek to zwróć uwagę na hasło polifoniczny :) Dowcip polifoniczny polega na tym, że jest kilka źródeł (generatorów m.cz.), które są sumowane na wejściu miksera , to sumowanie może być analogowe lub cyfrowe, co w efekcie daje to poli. To troszkę tak jak w gitarze, akordy etc. sześć strun itd. Na jednym pwm uzyskasz co najwyżej...
Znaczy się tacka po każdej spadającej kropelce uchyla się i kontaktron kasuje pulsa. Kropelka ścieka z tacy i taca wraca do poprzedniego położenia :) Fajna metoda :) Cóż typowy pomiar częstotliwości :) czyli doświadczalnie złap jakiś odcinek czasu, który wyniknie z pomiarów zwykłym stoperem, tzn czas odniesienia i graniczne możliwości pomiarowe urządzenia....
witam tak jak w temacie potrzebuje pomocy do zaprojektowania układu do pomiaru częstotliwości układu napięciowego na układzie 8051 mam podać schemat układu oraz schemat blokowy programu(ram i Rom zew. ) DANE: 1.procesor up 8051 , 2.zakres f. 1Hz-100Hz; 3.pomiar w podzakresach dziesiętnych, ustawiane ręcznie; 4.dokładność pomiaru 0,01%; 5.wynik wyświetlany...
jestem początkujący Przerabiam temat od ponad roku oczywiście amatorsko z doskoku 1. wybrałem 8051 - prosty wiele opisów warto poznać 2. asembler 8051 - poznanie zawiłości rejestrów liczników portów itc 3. kompilator - dostępny 4. symulator - dostępny 5. programator - i tu wiele miesięcy jak co i dlaczego 6. mam programator - sam zmontowałem (programowanie...
Kolego jacynka84 . Układy MCS-51 nie posiadają konfigurowalnego preskalera. Jest tylko dzielnik przez 12. 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. Gdyby BASCOM był idealny to działałoby to porawnie - z błędem...
Witam Próbuje napisać program w języku C przy pomocy kompilatora Keil i urządzenia dydaktycznego (chyba mikron) dokładną nazwę podam jutro, podobny do DSM -51 tylko taki trochę większy. Mój program musi po odpaleniu go na stanowisku dydaktyczny i po naciśnięciu jednego przycisku (np. P3^5) odpalać licznik zliczający sekundy a po naciśnięciu przycisku...
Zaczynam przygodę z assemblerem. Chcę zapisać dane z uartu do bufforu, a następnie po otrzymaniu konkretnego znaku wyrzucić cały buffor jako echo. Naskorbałem następujący kod: org 0100H DSEG LINE_SIZES: DS 5 BUFFER: DS 55 CSEG main: mov SCON,#01010000b ;konfiguracja portu szeregowego ;tryb 1, uaktywniony odbiornik mov TMOD,#00100000b ;tryb...
Miałem napisać program który zlicza impulsy zewnętrzne za pomocą licznika T1. Ściągnąłem symulator "jagoda" i na podstawie gotowych programów stworzyłem coś takiego: KEY_COD EQU00111111B ;wszystkie klawisze ;Odpowiednie ustawienie T1 ;TIMER 1 T1_GEQU0;GATE T1_CEQU1;COUNTER/-TIMER T1_MEQU0;MODE (0..3) TIM1EQUT1_M+T1_C*4+T1_G*8 TMOD_SETEQUTIM1*16...
Witam, mam na zadanie domowe napisać program pod dsm-51 który będzie wyświetlał liczby od 0 do 9 (00010203040506070809), napisałem program jednak wyświetla mi on tylko do 04:-( oto on: LJMP START ORG 100H START: LCALL LCD_CLR MOV A,#0 LCALL WRITE_HEX MOV 1H,#9H MOV A,#1H LCALL WRITE_HEX MOV R0,#1H MOV R2,#9 ;licznik petli - nie dziala;/ PETLA: MOV (at)R0,0...
Asemblera 8051 chyba nie pamiętam, ale był tam rozkaz dzielenia, nie wiem czy z resztą czy bez DIV się nazywał. Mogę się mylić bo 8051 już dawno się nie bawiłem. Lub możesz to zrobić po chłopsku jeżeli liczba jest mniejsza od 10 to odejmij od niej 10 (zwiększ licznik) i znów sprawdź czy jest mniejsza, jeśli nie to to co zostało to jest właśnie reszta...
mam za zadanie napisać kod który na wyświetlaczu będzie wyświetlał kolejno liczby od 01 do np 30 utworzyłem takie cudo: SEG_ON EQU P1.6 ;włączenie wyświetlacza 7-segm. ;Stałe używane w programie ZERO EQU 03FH;kod cyfry 0 ONE EQU 006H ;kod cyfry 1 TWOEQU 05BH;kod cyfry 2 THREE EQU 04FH ;kod cyfry 3 FOUREQU 066H;kod cyfry 4 FIVE EQU 06DH ;kod cyfry 5...
Witam, dostałem projekt w którym mam do zaprojektowania układ mikroprocesorowy mierzący częstotliwość sygnału okresowego za pomocą licznika T1. Zakładamy, że procesor to pamięć programu. Wyniki pomiaru przesyła łączem szeregowym do PC. 1. Potrzebuję kompletnego schematu elektrycznego, w którym zawarte są wszystkie elementy, które są potrzebne by układ...
Witam, mam pewien problem z programem na avt-2250 licze wyrazenie (x-3):2 = y x pobieram z portu rs232 y wyswietlam na hyperterminalu oraz na wyswietlaczu 8 segmentowy avt-2250. Teraz sedno problemu program liczy dobrze gdy wstawie za x liczbe parzysta, w przypadku nie parzystej juz nie. Moglby ktos pomoc ? Mam jeszcze jedno pytanie , jak wyswietlic...
Witam. Wróciłem do poprawiania programu w moim wzmacniaczu z powodu problemów wynikających z różnic w kwarcach/rezonatorach stosowanych w różnych pilotach. Metoda odbioru sygnałów polegająca na zaprogramowaniu ustalonych czasów pomiędzy odczytami stanu portu działa idealnie, ale tylko w przypadku gdy program jest dokładnie dostrojony do rezonatora w...
Witam Potrzebuje waszej pomocy, musze napisac stoper w asm. Już sie męcze z tym troche i nie chce działac tak jak powinno, więc prosze was o naproawdzenie/poprawienie błedów w kodzie ponizej. I chcialbym rowniez wiedziec, czy moja interpretacja polecen w tym kodzie jest poprawna. Sam Timer działa poprawnie. Chcialbym aby sterowanie stoperem odbywalo...
Witam, napisałem program w assemblerze pod mikroprocesor 8051, który wyświetla na LCD godziny, minuty, lata, miesiące i dni. Można modyfikować te wartości za pomocą trzech klawiszy (z klawiatury * - set,0 - <,# - >). Program został skrupulatnie przetestowany na symulatorze edsim51di - program uwzględnia lata przestępne a także walidacje dni miesiąca...
Witam, mam problem z prostym programem który będzie zapalał mi diode na 1sekunde a jak ona będzie gasła to będziemy słyszeć dźwięk. To zadanie z zajęć z programowania mikroprocesorów a kompletnie nie wiem jak to zrobić, bo pierwszy raz mam do czynienia z tym programem. Do zadania został załączony taki rysunek od wykładowcy: Mam dwa programy na których...
Zagląda ktoś do tego tematu?? Może ktoś zagląda, ale Ty na pewno nie zastosowałeś wiedzy którą dostałeś. Z tego powodu zostaną tylko rady w stylu Zaquadnik , którego pomysł jest idiotyczny. BlueDraco powiedział Ci co zrobić, aby obsłużyć przełączanie/wybór programów. Ty zrobiłeś obsługę przycisku w funkcji obsługi przerwania generowanego przez drgające...
Piszesz, że wiesz jak działa multiplekser, a w algorytmie ani śladu tej wiedzy. Już na początku włączasz przerwania od !INT0. Na schemacie ten pin nie jest do niczego podłączony. Gdzie tu logika? Co do samego MPXa, jeżeli chcesz skanować kanały, to potrzebujesz licznik, który będzie generował sygnał przerwania i adresował kolejny kanał MPXa z określonym...
Co do rozkazów, to moim zdaniem jest to mało istotny element w przypadku, gdy układ programuje się w C. Język C został wymyślony właśnie po to, żeby program tworzyło się łatwo i szybko i prawie niezależnie od procesora. Jak się zmienia typ rdzenia, np. z 8051 na AVR, to tylko zmienia się sposób obsługi peryferiów takich, jak układ licznikowy lub sterownik...
Dzień dobry. Mam problem, gdyż napisałem program generujący sygnał o częstotliwości rezonatora kwarcowego, czyli 12MHz i chciałbym go przerobić na program, w którym mogę generować przebiegi o zadanej częstotliwości. Wydaje mi się, że pierwszą zmianą powinien być rejestr TMOD na: mov TMOD, #00000101b. Mój kod generujący przebieg o częstotliwości 12 MHz: [syntax=x86asm] led0...
Dzień dobry, mam problem z zadeklarowaniem klawiatury do następującego programu: [syntax=x86asm] start: org 0h mov R2,#34h ; zapis zawartości komórki 34h do rejestru R2 mov SCON,#01010000b ; struktura portu szeregowego mov TMOD,#00100000b; tryb 1, uaktywniony odbiornik mov TH1,#0FAH ; tryb 2 licznika T1 setb TR1 ; wartość początkowa dla licznika T1...
EdSim to prosty symulator programowania mikrokontrolera 8051. Zaproponowany przeze mnie tryb licznika (jest ich 3) to tryb 2. Jest to tryb 8 bitowego licznika, o funkcji automatycznego resetu. Po przepełnieniu (wartości maksymalna to 255), rozpoczyna zliczanie od stanu przypisanego z rejestru TH0 (starszy). Zliczanie impulsów to 1/12 częstotliwości...
Cześć! Potrzebuję zrozumieć zasadę tworzenia algorytmów programów z obsługą systemu przerwań. Chodzi mi głównie o to gdzie i jak wpisać tę obsługę, żeby to miało ręce i nogi? Muszę zrobić algorytm programu do obsługi wyświetlacza 7-mio segmentowego 4 cyfrowego sekwencyjnego za pomocą 8051, który będzie działał jak minutnik. Program ma działać następująco:...
tzn że jak licznik się "przerwie" to załaduje w siebie zero i napewno nie będzie to chodziło jak ma tj co 1 sekunde. ZbeeGin napisał o czym zapomniałeś.
Sam bzdety piszesz. Skoro inaczej nie pojmujesz to Ci to łopatolignie napisze: W czasie pracy procka w liczniku T0 jest np. 3FA1h czyli w TH 3Fh a w TL A1h, wpisujesz do TL 66h to Ci licznik zacznie teraz zliczać od 3F66h a nie od 0066h I mówisz co wiesz, choć nie wiesz co mówisz. Bo skąd się niby ma wziąc to 0 w TH? Krasnoludki je tam zaniosą? A nie...
Wlasnie dorwalem ten temat w swoje lapki, widze ze znajacy sie na rzeczy ludzie tutaj rozwazaja temat mojej pracki dyplomowej :D Tak to dziwnie, ze fachowcy rozwazaja, a amator (przynajmniej jako konstruktor, bo programowanie uP lubie i uprawiam od juz jakiegos czasu). Od roku juz prawie pracka jest w fazie koncepcyjnej, ostatnio bardzo zaawansowanej,...
No to faktycznie przyda się jakiś PLD... Można by też zrobić coś takiego: licznik (conajmniej 12 bitów), komparator (też 12). Z jednej strony na komparator z procka zadajesz liczbę (0..3600), z drugiej wporwadzasz liczbę z licznika. Licznik taktujesz odpowiednią częstotliwośćią i wyzwalasz zmianą stanu na wyjściu 1. Liczik liczy aż doliczy do tego co...
mariooo: niby jak hcesz przehować zmienną zmienno-przecinkową w 51? avr'y mają bit carry dzięki czemu idzie sobie liczyć zmienne bardzooo duże.. co do metody liczenia są 2 inne metody: 1: puścić timer. programowo odliczyć 200 impulsów.. po tych 200 impulsach sprawdzić jaki czas upłynoł (wartość licznika) 2: puścić timer. programowo zliczać impulsy podczas...
Witam, od jakiegos czasu walcze z projektem graficzny licznik predkosci lcd w samochodzie. Napisalem juz kawalek kodu odpowiedzialny za zliczanie ilosci impulsow w jednostce czasu i przekladaniu tego na kilometry/h. Dlubie to w C Keil'a. Moje pytanie teraz jest takie jak najoptymalniej polaczyc procek z prockiem LCD ? uzyje matrycy LCD wyposazonej we...
Aby nie było widać migotania zaleca się żeby częstotliwość wybierania wynosiła min. 75Hz na jedną cyfrę, czyli trzeba użyć przerwań z częstotliwością min. 600Hz. Tak to lechoo napisales jakby byl to dogmat. Tymczasem pobranie kolejnej cyfry z bufora, jej konwersja na kod 7-segmentowy, przelaczenie katody i wyswietlenie cyfry to jakies 15 us. Jesli...
Czy ktos moglby mi napisac przykladowa obsluge przerwania od timera, bo ja napisalem ale dziala to dziwnie.Za pierwszym razem obsluguje przerwanie i skacze do podprogramu a potem jak wraca to juz do sjmp $ na koncu i licznik sie nie laduje do zadanej wartosci i liczy od zera, ale problem wiekszy w tym ze jak juz sie przepelni to nie obsluguje przerwania...
Po pierwsze to jaki to jest procesor? Bo standardowy '52 nie ma 6 cykli na rozkaz, a na początku napisałeś 8051. ATMEL TS80C32X2 Po drugie to to o co Ci chodzi z tym zatrzaskiwaniem? zatrzaskiwanie wartosci licznika 16 bitowego jednym rozkazem. Liczniki maja taki tryb, ale w przypadku T2 (tylko t2 zatrzaskuje 16 bit) sa do tego uzywane rejestry rcpa2H...
Przyszły mi do głowy 3 sposoby: - duża dokładność - wczytujesz hex do jakiegoś debugera, wykonujesz pętlę krok po kroku. Następnie spisujesz na kartce (porównując z dokumentacją) ile cykli procesora trwa każdy rozkaz. Jeśli Twój procesor wykonuje rozkaz w 6 taktach, to jeden cykl będzie trwał 6/11059200s. Cykle sumujesz. Oczywiście na czas pomiaru musisz...
1. Algorytm: Założenia : - w bajcie "A" mamy kod ASCII cyfry jedności - w bajcie "B" mamy kod ASCII cyfry dziesiątek Start: -od A odejmij kod ASCII "0" (0x30) -od B odejmij kod ASCII "0" (0x30) -przesuń w lewo 4 razy B -OR A, B -koniec 2. wyświetlić ciąg 0-1-dynkowy z bajtu ? algorytm: Start: -Załaduj licznik bitów na 8 Kręć: -obróć bajt z liczbą w...
Potrzeba mi dokładny opis najlepiej na schemacie blokowym lub tylko opis taki np podczas wykonywania funkcji mv ad1, ad2 procesor pobiera rozkaz z licznika rozkazów następnie wysyła go na szynę danych gdzie zostaje dekodowany i przesłany.... itd to jest tylko przykład poniżej jest cześć mojego już oprjby ktoś mógł sprawdzić i ocenicz czy to jest dobrze...
Witam ponownie 1) Co do trybów polecam poczytanie rozdziału 2.9 z [url=]manuala 2) Patrz manual 3) Właściwie nic nie trzeba robic po prostu go nie uruchamiasz, np używasz tylko T0 to go uruchamiasz TR0=1, a dla licznika T1 robisz TR1=0 (poczytaj manuala) 4) Można 5) Przepełnienie licznika następuje gdy wszystkie wartości licznika zmianią się z 1 na...
W lekcjach ze strony www.micromade.com.pl jest taki przykład na transmisję: ;***************************************... ;LEKCJA 15- STEROWNIK PRZERWAŃ DSM-51 ;PRZYKŁAD 1- NADAWANIE RS-485 ;***************************************... ;********* Ustawienie TIMERów ********* ;TIMER 0 T0_GEQU0;GATE T0_CEQU0;COUNTER/-TIMER T0_MEQU2;MODE (0..3)...
Witam Panowie, mam problem piszę programiki pod mikrokontrolery 8051 co prawda proste ale działają. Myślę iż najwyższy czas nauczyć się obsługi Timer-ów ale wszelkie opisy wskazują tylko na to że to licznik a ja bym chciał umieć go zastosować a o tym nie piszą. Mój problem polega na tym iż program po wejściu w pętle programu miałby zacząć mierzyć czas...
Chyba najprostszym i najszybszym sposobem obslugi enkodera jest exor odczytu aktualnego i przesunietego o 1 bit w lewo odczytu poprzedniego. W asemblerze zajmuje to zaledwie kilka linijek kodu i zajmuje 1 bajt pamieci RAM do pamietania poprzedniego odczytu. Aktualnie mam taki kawalek programu tylko na AVR ale mysle ze nie bedzie problemu z zalapaniem...
Czy 8051 ma preskaler na licznik? Napisałem programik pod AT89S8252 w C pod Keila uVision. Ledy zapalają się na zmianę a ja bym chciał żeby zapalały się wolniej. Oto działający kod: #include <AT898252.h> sbit LED0 = P0^0; sbit LED3 = P0^3; void main (void) { LED0 = 0; LED3 = 1; TMOD = 0x01;//Rodzaj pracy TRYB1 EA = 1; //globalne wlaczenie przerwan...
Witam uczę się w szkole o elektronicznej , ucza nas duzo teori , troche mniej praktyki , dostalem zadanie zeby wysterowac diodę led stanem niskim z wyjscia jednego z portów wyjsciowych MCS 8051... Hmm myslalem sporo nad tym , i stwierdzilem ze przu uzyciu kwarcu 12Mhz jeden takt trwa 1us wiec zeby zliczyc jedna sekunde potrzebuje wpisac np. 1 000 000...
Witam. Chciałbym Was prosić o pomoc w sprawie działania portu szeregowego uK8051 w trybie pierwszym. W trybie pierwszym port szeregowy jest taktowany przepełnieniami licznika. Chodzi o to, by każdy bit danej był przesyłany portem szeregowym co 100 taktów zegarowych, wysyłamy kolejno zawartość pamięci IRAM o adresach od 20H do 30H Nie mogę znaleźć błedu...
Ostatnio musiałem odtworzyć w 10 egzemplarzach układ z '51 sprzed lat ośmiu. W oryginale miałem watch doga własnego pomysłu na liczniku 4060. Po gruntownej, dwuminutowej analizie stwierdziłem, ze najprościej będzie zastosować normalny układ resetu RC i procesor z wbudowanym watch dogiem - proponuję ATMEL AT89S8252 . Migracja na ten procesor jest niemal...
Mam na swoim składziku licznik rozmów te. na takim wyświetlaczu... ;)
Było, szukaj. Po wpisaniu hasła "prędkościomierz" znajdziesz sporo postów w tym dziale. A jaki mikrokontroler ? Posiadający 2 liczniki, w tym jeden liczący impulsy zewnętrzne, a drugi czas (timer). Praktycznie każdy AVR, a i podejrzewam, że i sporo rodzajów 8051 się nada.
Można też zrobić to tak: start: mov C,P3.5 mov P3.0,C ljmp start ljmp jest rozkazem skoku bezwzględnego, co oznacza, że do rejestru PC (licznika rozkazów) wpisywany jest bezpośrednio adres etykiety start. Natomiast sjmp spowoduje dodanie do PC wartości z zakresu <-128;127>, co przy dłuższych programach spowoduje błąd kompilacji "address out...
Witam. Temat trochę dziwny ale już wszystko wyjaśniam: Mam trenażer rowerowy ( takie coś, na co stawia się normalny rower i kręci kołami nie ruszając się nawet z miejsca - symulator jazdy rowerem ). Nie chcę zrobić zwykłego licznika bo taki już mam i się sprawdza. Potrzebuję zrobić jednak takie coś, co mierzy prędkość roweu (a raczej koła) i przekazuje...
Prosze o pomoc w sprawie programu w Asemblerze. Zadanie jakie ma spelniac to zlicznie impulsów pojemnosc 2 do 24 licznik T0 + rejestr B i do tego zerowanie dane jak na rys (zalacznik). Start i stop zliczania zwiazany jest z syg zewnetrznym W miare mozliwosci prosze o szybka pomoc
Najlepiej w tym przypadku włączyć przerwanie od T0 i po każdym przepełnieniu licznika zwiększać o jeden rejestr B org 0 sjmp start org 000bh ;wektor przerwania od T0 inc b cjne b,0,koniec ;tu jakieś instrukcje po odliczeniu 2^24 koniec: reti start: mov b,#0 ;konfiguracja T0 ;program główny end To jest mały zarys zliczania 2^24, należy jeszcze odpowiednio...
... EDIT: dodam tylko, że wszystko dobrze działa, jeśli urzyję rejestru DPTR do przesyłania do zewnętrznego RAM. Niestety zmienna DPTR w tym programie jest wykorzystywana do pobierania znaku z wewnnętrznego ROM dlatego chcę wykorzystać ten drugi sposób z rejestrem R0 oraz P2 do wyslania znaku do RAM korzystam z symulatora Sim8051 Skoro symulator potrzebuje...