Wyrzuć wywołanie funkcji serial_IT z funkcji main . Funkcja serial_IT jest funkcją obsługi przerwania i wywoływana jest automatycznie w odpowiedzi na sprzętowy warunek przerwania. Standardowo funkcji takiej nie wolno wywoływać jawnie, bo program może zwariować (szczegóły zależą od kompilatora, parametrów kompilacji, itp). W każdym razie u Ciebie wywołanie...
(czyli po prostu dodać), np. jeżeli chciałbyś wpisać wartość początkową 5233h, to wyglądałoby to następująco: ORL TL0, #33 ;mniej znaczący bajt MOV TH0, #52: bardziej znaczący bajt aaaa to ma być w C: TL0 |= 33; TH0 = 52; czyli powinieneś dopisać tylko jeden znak w odpowiednim miejscu "|" ;] Chyba nie przemyślałeś tego do końca. Orowanie to nie dodawanie....
Wielkie dzieki. GienekS: rozumiem, ze reczne skasowanie tej flagi przed obsluga przerwania spowoduje, ze kontroler o calej sprawie zapomni? starob: w momencie wykonywania RETI przerwania sa juz dawno zablokowane. Chodzilo o sytuacje, kiedy przerwanie jest wlaczone w momencie zgloszenia, a wylaczone w momencie przejscia do jego obslugi. Jak widac sytuacje...
No OK. CPWMEQU 500 OPWMEQU 1000 PWM_Out EQU P1.2 dseg PWM:ds 1 PWMLL:ds 1 PWMLH:ds 1 PWMHL:ds 1 PWMHH:ds 1 bseg PWM_State: dbit 1 cseg ORG 0000H ;RESET LJMPINI ORG000BH;T0 overflow LJMP T0ov ORG 100H INI: movTL0,#low(0FFFFH-CPWM) movTH0,#high(0FFFFH-CPWM) setbPWM_Out movPWMHL,TL0 movPWMHH,TH0 movPWMLL,#low(0FFFFH-(OPWM-CPWM&...
Miales racje z tym printf. Wywalilemn z petli przerwania i zaczelo dzialac, chodz nie tak jak bym sobie zyczyl. Za kazdym razem czyta petle przerwania. Nie wiem dlaczego ciagle jest w tym przerwaniu. Jakies pomysly? pozdrawiam MB
Mam pytanie czy jeżeli użyję up 89s52 z kwarcem 33MHz to będę mógł zliczać impulsy np na we przerwania o częstotliwości 30MHz??
wgrałem do 89s52 Twój program oraz kol. Jellyeater zmieniłem tylko port obsługi led na P0 oba programy działają prawidłowo szukaj błędu w sprzęcie , bo programy są dobre , podstawa reset , generator kwarcowy , zasilanie czy sprawdzałeś układ prostym programem wystawiając na port tylko L / H diody lepiej łączyć do plusa zasilania
Umieść LCD również na magistrali adresowej wraz z RAM. Oczywiście LCD musi mieć adres inny niż RAM (wykorzystaj pin A15 do aktywacji LCD'ka i dezaktywacji RAM). I wtedy wysyłasz dane do LCD'ka również rozkazem movx (at)DPTR,A. Musisz tylko zrobić sprzętowo generację ENABLE dla LCD (bramki NAND i sygnały RD i WR). Chyba że masz jakiś niestandardowy LCD...
Cześć. Zrobiłem coś takiego - czyli odczyt stanu klawiatury matrycowej na przerwaniach dla ATMega128. Kod w załączniku. Nie wiem tylko jak zrobić, żeby odczytywał jedno wciśnięcie klawisza. Przy takim programie po wciścnięciu klawisza rombie wykonywanie tego przerwania jak najęty aż do puszczenia klawisza. Mnie chodzi o to, że jak wcisne klawisz ma...
Witam zbudowalem 4 kolowego robota Chcialbym teraz wyposazyc go w czujnik IR. Do generowania sygnalu sterujacego swieceniem diody IR uzylem uC ktory ktory steruje robotem jest on taktowany kwarcem 12MHz dzielac to na 333 otrzymuje 36,036kHz narazie wszytko sie zgadza poniewaz posiadam odbiornik na 36kHz. W funkcji przerwania umiescilem jeszcze kod ktory...
Pomyliłem się w instrukcji. LJMP START dałem na końcu a nie w petli głównej. Może przez to nie chodzi. Dodano po 4 Sprawdziłem przerwanie działa ale program po wykonaniu podprogramu przerwania nie wraca do programu głównego.
i2c chyba najwygodniejszy się wydaje. A pomysł z adresami slave'ów bardzo dobry. Oprócz SCL i SDA możesz dodać jeszcze linię INT - suma logiczna wyjść sygnalizacji przerwania z uP. Transmisję wykonywałbyś tylko wtedy, jeśli którykolwiek z uP zgłosiłby chęć komunikacji.
Aha, a więc będzie podtrzymanie bateryjne ? No, no, projekt wygląda mi coraz lepiej, naprawdę. Nie zorientowałem sam się bo nie ma schematu. Tak, jest detektor braku zasilania sieciowego - wyłączy wszelkie bajery pozostawiając tylko przerwania zegarowe i krótki błysk czasu aktualnego co ok. sekundę - da to redukcję z kilkudziesięciu do kilku mA. Oczywiście...
czemu chcecie dawać dodatkowe drivery do zasilania wyświetlacza? Osobiście zrobiłem projkekt na takim wyświetlaczu- w zasadzie cztery segmenty, bo dodchodzi jeszcze linijka z diod led. Trzy cyfrowe wyświetlacze są np w TME (wpisz w wyszukiwarke BA56). Szeregwe oporniki to 270R-LEDy świecą bardzo mocno. Dodam że nad wyświetlaczem mam jeszcze dwa przerwania...
Witam Zmiana czasu dlugosci wykonania procedury obslugi przerwania niestety nie wystarczyla i uklad dalej co jakis czas sie wysypywal. Zastosowalem wiec "zwykly" atmelowski 89s52 i dostosowalem do niego opoznienie przy komunikacji i2c i uklad o dziwo dziala do dzis. Wszystkim ktorzy mieli jakies pomysly dziekuje. Pozdrawiam Piotrek
Witam! Ustawilem tak, ze /INT0 i /INT1 uruchamia sie zboczem opadajacym. Podlaczylem do tych wyjsc +5V przez rezystor (ok 700ohm) i z zewnatrz np przez wylacznik zwieram wyjscia do masy. I teraz: jesli np. na /int1 zmieni sie stan z "1" na "0" uruchamia sie przerwanie i jesli na /int1 bedzie znowu "1" to wszystko dziala poprawnie, a jesli bedzie "0"...
89s52 - 8kB flash (max 1000 cykli zapisu/kasowania), 256B RAM, max 33Mhz, Ic 25mA(at)12Mhz, programowanie ISP, 3 liczniki 16-bitowe, UART, Watchdog, 2 przerwania zewnętrzne. lpc1111 - 8kB flash (max 100000 cykli zapisu/kasowania), 4kB RAM, max 50MHz, Ic 3mA(at)12MHz, programowanie ISP i IAP (wbudowany bootloader), 2 liczniki 32-bitowe i 2 16-bitowe,...
Witam Jak w temacie mam problem z fałszywym sygnałem wyzwalającym przerwanie. Moje urządzonko przedstawia się następująco: Sercem jest AT89CX051, do którego podłączone dwa przekaźniki oraz 3 pcf'y 8574 - jeden odbiera sygnały z klawiatury(6 przycisków), pozostałe dwa sterują dynamicznie cyfrowym wyświetlaczem LED. Do tego na krańcówkę wyprowadzone jest...
Mój problem wygląda następująco.Program napisany na 89C2051 steruje otwiraniem i zamykaniem bramy. Petla głoówna to kontrola warunków czy mamy otwierac czy zamykać brame. Z tego głównego programu skaczemy do otwiernia lub zamykania.To wszystko dziala ok. W programie wykorzystalem jeszcze przerwanie do odmierzania czasu na miganie lampy i wylaczanie...
Przerwania 89c2051 .asm Witam !!! pytanie dotyczy w zasadzie obsługi przerwań programu w .asm Program oparty na od T0 pomiar czasu-(timer) od T1 wyświetlanie wyniku wyświetlacz led7seg sekwencyjnie na port p1 moje pytanie to: - czy po zgłoszeniu każdego z tych przerwań mam zapisywać na stos psw;acc;cy - czy przy zakończeniu każdego z tych przerwań stosować...
Witam Mam problem z odbiorem zadanego ciągu znaków z portu szeregowego w 89C52. Pojedynczy znak mi śmiga, ale jak chce aby program reagował a odpowiednią sekwencje znaków to się "wykrzacza" (nie reaguje) Funkcja dla przerwania: static void inter_rs() interrupt 4 { if( RI ) { RI = 0; if( ((RxInChar + 1)%BUF_SIZE)...
Witam ponownie, Poniżej zamieszczam kod, który wpalony jest w AT89s52 z przy 12MHz Do Disable Timer2 Went = Not Went 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 250 Waitms 250 Waitms 250 1wreset 1wwrite &HCC 1wwrite &HBE T(1) = 1wread() T(2) = 1wread() 1wreset Cls Lcd T(1) Lowerline Lcd T(2) Wait 2 Loop efektem...
Nie widzę tu żadnego problemu. Dowolne piny na porcie 3 możesz wykorzystać jako we/wy.
Witam !!! Osobiście zrobiłbym to na timerze i sterował wyjściem w przerwaniu ale do tego musiałbym wiedzieć jaki masz kompilator aby odpowiednio napisać funkcję obsługo przerwania. Jeżeli jednak chcesz zrobić to liniowo to kod powiniem wyglądać mniej-więcej tak. ////////////////////////////////////////... #include "89S52.h"...
Licznik T2 to chyba maja tylko wersje 52 (8052, 89S52, 89S8252, 89S53) Bo chyba chodzi ci o ten trzeci tajmer - ma on kilka ciekawych funkcji.
1/ lpt to kontroler równoległy (działa pod bazami 0x378 0x278), a kontroler uart(rs232) jest szeregowy więc niewiem poco nawiązywać do lpt.. 2/ z tego co pamiętam to at90s2313 posiada uart.. opis jak go zaprogramować można znaleźć w dokumentacjach.. 3/ co do programowania rs232 od strony komputera w turbo pascalu - niewidze przeszkód jeśli nieużywasz...
Jeżeli chcesz go obsługiwać w przerwaniu to lepiej nie włączaj go wcale. Podstawowa idea stosowania watch-doga polega natym aby wyrwać procka gdy ten z nieznanych przyczyn "pójdzie w maliny" i przestaje wykonywac prawidłowy(resetujacy watch-doga co jakiś czas) program. Jezeli umieścisz obsługę w przerwaniu to watch-dog wykryje tylko sytuację w której...
markosik20: Aaa widzisz, jednak nie wszystko napisałem: unsigned char znak_klaw = 0x00; sbit dana_klaw = P3^1; sbit zegar_klaw = P3^2; Zmienna zegar_klaw to sygnał zegarowy z klawiatury, a dana_klaw to dana przesyłana z klawiatury. No ale zauważ, że po wywaleniu funkcji inicjalizacja_LCD() program działa prawidłowo więc wszystkie funkcje while() w przerwaniu...
Dobrze by było jak byś napierw miał: org 0000 sjmp start org 000bh ...... ..... ; tutaj ewentualnie obsługa przerwania .... start: ;program główny Dodano po 1 Bedzie bardziej uniwersalnie jak za zamiast sjmp dasz ljmp
Witam Czy z takiego ukladu jak na zalaczniku po przerwaniu wiazki z fotodiody(pierwszej, a po jakims czasie drugiej) dostane na wejsciowym pinie ukladu 89S52 P3.2(zewnetrzene przerwanie) krotkie impulsy L?? Jesli tak to jak obliczyc czas trwania takiego impulsu. A jesli cos jest zle to co. To maja byc impulsy do zalaczenia i zastopowania wewnetrznego...
a jeśli nie sprawdzasz klawiszy w przerwaniu tylko w pętli głównej to możesz użyć zwłoki 25 mS i ponownie sprawdzić stan jeśli zgodny to znaczy że klawisz wciśnięty
Po pierwsze- nie trzema a czterema przewodami. Jak powszechnie wiadomo program nie powinien wykorzystywać opóźnień ale przerwania od timera- ostatecznie po to te timery są. Po natępne- podaj wymiary silnika i oporności uzwojeń- bo istnieje znaczne prawdopodobieństwo że ULN się spali.
Witam! Najpierw ustal schemat ideowy układu! Dla programisty jest istotne, do których pinów przyłączone są wskaźniki i segmenty oraz jakie poziomy (0 czy 1) są aktywne. Obsługę wyświetlacza realizujesz w przerwaniach od timera. Adresy tych procedur są ustalone (000BH dla T0 i 001BH dla T1), dlatego trzeba "przeskoczyć" ten obszar umieszczając na samym...
Witam 1. Jeżeli na jednej linii bezpośrednio podłączysz sygnał sterujący wyświetlaczem i sygnał z układu generującego przerwanie może to powodować pewne komplikacje. Gdyż podczas wysterwowywania wyświetlacza z mikrokontrolera, może pojawić się sygnał z układu generowania przerwań i zakłócić prawidłowe sterowanie wyświetlaczem (zmiana poziomu sygnału)....
Jeżeli chodzi o transmisje danych to radze poczytać dokumentację techniczną procka na rdzeniu '52 (taki ma aduc847) z np. 89s52. Najprościej wygląda to tak musisz wybrać rodzaj transmisji (synchroniczna czy asynchroniczna) a później jej szybkość oczywiście w windowsie musisz mieć tak samo, no i oczywiście procedury odczytu na przez procka najlepiej...
Witam po długiej przerwie. Informacje w wiązce może i są ale rozszyfrowanie transmisji to byłby duży problem. Przez cały ten czas udało mi się napisać prawie cały program do kompa, ale Bascom jest strasznie pamięcio-żerny no i jakoś nie kumam języka basic. Aby z ciągu znaku wciągnąć jedną literkę to się trzeba nakombinować. Więc zmieniłem troszeczkę...
http://obrazki.elektroda.net/5_123810340... Trochę dla sportu bardziej niż z potrzeby chciałem zrobić zegar oparty o procesor 89S52, który byłby zasilany wyłącznie z baterii. Aby projekt miał sens pobór prądu nie może przekroczyć miliampera - tylko wtedy istnieje możliwość nieprzerwanej pracy przez kilka miesięcy. I tak na bazie ErgoClocka...
programowanie 89s52 89s52 programmer 89s52 programator
sagem dekoder cyfry suszarka włos obrót pralka bauknecht blokada drzwi
pompowtryskiwaczy scania pompowtryskiwaczy scania
Jak zresetować nawigację SmartGPS SG 720? Citroen C4: Problemy z zamkiem i lampkami pasów