START CALL LEDON CALL DELAY CALL LEDOFF CALL DELAY GOTO START DELAY ; cca 1s MOVLW 5 MOVWF COUNT3 D0 MOVLW 255 MOVWF COUNT2 D1 MOVLW 255 MOVWF COUNT1 D2 DECFSZ COUNT1,F GOTO D2 D3 DECFSZ COUNT2,F GOTO D1 DECFSZ COUNT3,F GOTO D0 RETURN
[syntax=x86asm] list p=10F200 #include ;***** CONFIGURATION __CONFIG _MCLRE_OFF & _CP_ON & _WDT_ON ;***** VARIABLE DEFINITIONS UDATA dc1 res 1 ;***** RESET VECTOR ****************************************... RESET CODE 0x000 movwf OSCCAL movlwb'10111111' option movlwb'1000' ; configure GP0-2 (only) as an output trisGPIO nop nop nop nop nop...
Program miga wszystkim, co ma:) #include p16f84a.inc __config H'3F72' reg_loop_1 equ 0x0C reg_loop_2 equ 0x0D reg_loop_3 equ 0x0E ORG 0 goto myprog ORG 10 myprog: banksel TRISA movlw d'0' movwf TRISA;ustaw jako wyjscia movwf TRISB ; banksel PORTA movwf PORTA movwf PORTB loop: comf PORTB, 1 comf PORTC, 1 call delay goto loop delay: movlw...
Sprobuj tego : list p=12f509 include p12f509.inc __CONFIG _CP_OFF & _WDT_OFF & _IntRC_OSC & _MCLRE_OFF org 0x0000 goto Start org 0x0020 Start movlw b'101010' tris GPIO movlw b'00000000' movwf GPIO movlw b'11111111' Petla xorwf GPIO,1 goto Petla end
Możemy sobie darować tego Pana. Powinno być INIT_ADC MOVLW B'10000000' ; Set output to left justified ; Select AN<0> (RA<0>) as input ; Internal Vref ; MOVWF ADCON1 MOVLW B'10100010' ;Set Clock TACQ = 8 * TAD, TAD = 1.6us (Fosc/32) MOVWF ADCON2 RETURN Zweryfikuj wszystkie zapisy do rejestrów sterujących z datasheet'em.
Masz tu program obsługi SPI, trochę go przystosowałem do 10F206 i Twoich potrzeb, ostateczne "szlify" zrób sam. W razie co, służę pomocą. (nowy, zmieniony) ;zapis danych opadajacym zboczem zegara, do rejestrow AD9843 processor 10F206 #include <P10F206.INC> __CONFIG _MCLRE_OFF&_CP_OFF&_WDT_OFF #define SPI_SDO GPIO,0 ; szereg.wyjscie danych...
Zrobilam cos takiego: list p=10f222 ; list directive to define processor #include <p10F222.inc> ; processor specific variable definitions ; ;***** VARIABLE DEFINITIONS ;w_temp EQU 0x7E ; variable used for context saving ;#DEFINE STAT POTRB,0 ;***************************************... ORG 0x000 ; processor reset vector...
Program w tym miejscu zapętla się dlatego ze BTFSC PLY ;CHECK IF 2 BUTTON PRESSED AT ONCE nie odczytuje stanu z PORTC,5 lecz z TRISC,5 Po dodaniu ostatniej linijki ORG 0 BANKSEL TRISC MOVLW 21h MOVWF TRISC BANKSEL ANSEL CLRF ANSEL BANKSEL ADCON1 MOVLW 0x06 ; Turn off A/D MOVWF ADCON1 ;########################### bcf STATUS,RP0 będzie już czytał z PORTC
Podczas obslugi przerwania wykonuje inkrementacje jakiegos tam rejestru GPR, ale czemu podczas obslugi kolejnych przerwan rejestr ten nie zwieksza sie ? Dodam ze jak wpisze konkretna wartosc to podczas przerwania wpisuje sie ona do rejestru, ale jak juz z kazdym przerwaniem chce zwiekszac zawartosc rejestru to nie da rady :( (programowalem kilka razy...
Mam problem ze skonfigurowaniem bitow dla pic16f883. ;program testowy, anna wesolowska list p=16f883 ; list directive to define processor #include<p16f883.inc>; processor specific variable definitions __CONFIG_INTOSC & _LVP_ON & _DEBUG_OFF & _WDT_OFF ;***** VARIABLE DEFINITIONS d1EQU20H d2EQU21H d3EQU22H ;***************************************...
Witam!!! Mam problem z inicjalizacją wyswietlacza.Używam PIC'a 16F628,wewnętrzny oscylator 4MHz, bity konfiguracyjne:tylko PWRT. Wykorzystuje tryb 4bit.Podłączone mam: PB7->DB7,PB6->DB6,PB5->DB5,PB4->DB4,PB3-... do wysyłania komendy na LCD wygląda tak: SEND_CMD movlw 0xf0 andwf LCDWORD,0 movwf PORTB bsf PORTB,1 bcf PORTB,1...
moze sie zle wyraziłem dokładnie chodzi mi o to ze np sms o tresci czesc po zakodowaniu przyjmie postac: 07911356131313F311000B918416325476F80000... i teraz czy mam pokolei brac po znaku i wysyłac z pica na telefon czy musze to jeszcze jakoś zamieniac MOVLW 0x07 MOVWF TXREG MOVLW 0x91 MOVWF TXREG MOVLW 0x13 MOVWF TXREG itd
Mam problem z symulowaniem niektorych portow w prcoesorze PIC16F877. Wpisuje do TRISA wartosc 0x00, do PORTA wartosc 0xFF a w symulacji i tak mi pokazuje ze w rejestrze PORTA jest wartosc 0x10.Dla portu E podobnie sie dzieje.Wszystkie uklady peryferyjnre sa wylaczone. Nadmieniam ze fizycznie na pinach pojawiaja sie odpowiendie stany. Sprawdzilem to...
witam BCF STATUS,RP0 BCF STATUS,RP1 CLRF 0x05 CLRF 0x06 BSF STATUS,RP0 MOVLW 0x0F MOVWF 0x1F MOVLW 0x00 MOVWF 0x05 BCF STATUS,RP0 MOVLW 0x00 MOVWF 0x06 MOVLW 0x00 MOVWF 0x05 BSF STATUS,RP0 MOVLW 0x04 GOTO L1 MOVWF 0x05 <--tu powina być pętla /slok by program nie wlazł do L1/ L1:ADDWF PCL,W <-- tu zapomniałeś o W RETLW 0x7B RETLW 0x28 RETLW...
PICe programuję w C więc wybacz jeśli się mylę. http://obrazki.elektroda.pl/8256208800_1... ...powinien być BSF a nie BCF przy ustawianiu Banku. Więcej w dokumencie dot. tej rodziny: http://ww1.microchip.com/downloads/en/de... no i PSPMODE
Witam Napisałem program w asemblerze na PIC16F84A. Przetestowałem go tylko w MPLAB'ie i PIC Simuator. Wszystko działa bez zarzutu. Miałem pod ręką tylko PIC16F628A 20MHz wiec zaprogramowałem go.Uprzednio zmieniwszy procedurę inicjalizacjii procka(w sumie wyłączyłem komparator i lekko zmieniłem CONFIGURATION BIT). Niestety nie chce działać prawidłowo,ani...
Robisz skoki do podprogramów CALL init CALL initLCD CALL delay a nigdy z nich nie powracasz - brak return. A "najfajniejszy" jest ten kawałek goto $+1 end. Pominąwszy powyższe i tak nie zadziała BSF PORTC,2;E=1 MOVLW B'00111001';Function Set MOVWF PORTB MOVLW B'00001000';Display Off MOVWF PORTB MOVLW B'00000001';Display Clear MOVWF PORTB MOVLW B'00000111';Entry...
Program mimo malej czytelności działa, także nie wiem w czym pomóc. Kilka moich wskazówek : stosuj nazwy symboliczne zamiast adresów rejestrów, zamiast nieczytelnych bloków bsf/bcf wpisuj żadane wartości wprost do rejestrów, nie musisz pisać 0x05 tylko zwyczajnie 5, przy tym programie, nie ma żadnego powodu podłączać RA4 do masy. processor 16F84A #include...
Witam. Mam taki problem, wyświetlacz lcd 1602,po zainicjowaniu,ustawi kursor na 00(dotąd działa jak należy,jedna linia ,dwie ,migający kursor). Po wysłaniu bajtu 'litera' przestawi kursor do tego adresu np 48 i dalej nic. Co robię nie tak gdzie jest błąd. Dzięki wszystkim za pomoc. [syntax=avrasm] ;***************************************...
zmieniłem troche program i wyrzuciłem drugi kanał a do wyników wpisałem stałe wartości czyli MOVLW .3 MOVWF LINIAH_1 MOVLW .255 MOVWF LINIA_1 i działa ale jak zrobie : MOVLW .3 MOVWF LINIAH_1 MOVLW .254 MOVWF LINIA_1 to już kicha wykona tylko jedną transmisje do PCta i potem "wisi" czyli wykonuje pomiary ,ale nie ma przerwania ,czyli nie reaguje na...
Witajcie, pisze program na PIC16f84A na obsługę zegarka na 4 wyświetlaczach 8 segmentowych LED. Wyświetlacze 1-4 wybierane są 4 liniami portu A (aktywne 0), natomiast 4 liniami portu B idzie sygnał do scalonego dekodera BCD. Problem jest w tym że program (jest jeszcze nie ukończony) po włączeniu zasilania startuje może w 10 % przypadków, w pozostałych...
Witam wszystkich, Dopioro zaczynam z transmisją pomiędzy PC a mikrokontrolerem za pomoca rs. Na razie chciałem napisac program który, zapali kawałek wyświetlacza 7seg jeżeli pojawi się flaga o odbiorze danych z rs. Uzywam PIC16F76(z wbudowanym USART). Korzystam z zewnętrznego oscylatora(4MHz). Dane z PC wysyłam z 1200BPS(BaudRate=CBR_1200) Korzystając...
silnik steruje z 5v bo na wiekszym tranzystory robia sie piekielnie gorace... ale nie w tym problem bo nawet przy takim napieciu powinien sie plynnie krecic a moj chodzi na 3 skoki, problem i blad jest w programie !! dlatego prosze o jakas podpowiedz jak zrealizowac powyzszy przebieg lub jakis przykladowy kod pod uC pod kroka... ok doszedlem, jakos...
A czy według kolegi to działało by tak samo [syntax=c] for(;;){ asm ("movlw 0xff"); asm ("movwf PORTE"); asm ("movlw 0x00"); asm ("movwf PORTE"); } [/syntax] czy szybciej?
Witam Szanownych kolegów. Zwracam się z prozbą o przekompilowanie pliku dla pica 508 .Moje próby z programem Protona się nie powiodły a procesor jest jednokrotnego programowania ,dlatego chciałbym aby zrobił to fachowiec. Program dla układu znalazłem na stronie http://marmur99.webpark.pl/ele/picus2/. i jest on własnością osoby prowadzącej tą strone....
movlw dlugosc obszaru movwf dlug movlw koniec obszaru movwf FSR czysc clrf INDF decfFSR,F decfsz dlug,F goto czysc clrf INDF
Witam. Próbuję już od dwóch tyg. zmusić wspomniany w temacie mikrokontroler do zapalanie diody. Napisałem kilka linijek kodu C/Asm #include "16F877A.H" void main() { #asm movlw0x07 movwfCMCON bsf STATUS,RP0 movlw b'00000000' movwfTRISD bcfSTATUS,RP0 Loop movlw0xff movwfPORTD nop nop movlw0x00 movwfPORTD gotoLoop end #endasm }...
Jeżeli chodzi o pica to ja co prawda piszę tylko w basicu, ma on jednak możliwość generowania innych kodów jak asm, i inne wpisanie wartości 200 pod adres 8 w eepromie dało mi następujący kod: F1_000001 equ $ ; in [NO_NAME.BAS] EWRITE 8 ,[200] Movlw 8 Movwf EEADR Movlw 200 Call Ee_wr END ee_wr ee_wr(at)w movwf 8 bsf 3,5 bsf 136,WREN movlw 85 movwf 137...
Witam, potrzebuje zmienic ten program zeby dioda zapalała sie i gasła co 5s a ktoś ma jakies propozycje? Aktualnie jest co 0,5s a mi potrzebne 5s ProgramGlowny ; Inicjalizacja ; Przelacz ; DziesiecMS ; ;///////////////////////////////////////... list C=160, N=80, ST=OFF,...
Niestety, pojawia sie blad: ERROR -> Writing address 0x000000 Written : 0x0185 Read : 0x3FFF Nie wiem czy tak powinno byc, ale pokazuje mi takie cos: [b]Detected -> UNKNOWN[/b] Device Erased .: Ok [ Veryfying during programming ] Programming Code - 1024 word Error ... Tutaj prosty testowy programik ktory chcialem...
Witam Zaciekawił mnie ten temat .Też ciekaw jestem jak inne kompilatory to rozwiążą. int a=-34; long b; b=(long)a>>4; [syntax=asm] dim intxxx as integer dim longxx as longint main: intxxx = -34 longxx=intxxx >> 4 end. _main: MOVLW 222 MOVWF _intxxx+0 MOVLW 255 MOVWF _intxxx+1 MOVLW 4 MOVWF R0 MOVF _intxxx+0, 0 MOVWF _longxx+0 MOVF _intxxx+1, 0 MOVWF...
Witam piszę tutaj gdyż chciałbym zasięgnąć opinii specjalistów. Mógłby ktoś zerknąć okiem? Pracuje na kontrolerze PIC16F1517. Dostałem zadanie do wykonania gdzie musiałem zrobić program w którym(Diody są na wejscie a przyciski na wyjscie): 1) Jeżeli wciśniemy tylko przycisk UP to miga LED1 2) Jeżeli wciśniemy tylko przycisk DOWN to miga LED2 3) Jeżeli...
witam, po przerobieniu kilku tutoriali i sprawdzeniu ich poprawnego działania za pomocą MPLAB SIM, mam cholerny problem z uruchomieniem nawet najprostszego programu dającego na wyj. 1010 1010 Programator bez błędu programuje PIC'a ale od ponad tygodnia nie mogę uruchomić PIC'a, możliwe że chodzi o oscylator (p18f4550 posiada takowy wew) ktory jakos...
wielkie dzieki chlopaki, co do mojego korzystania z tego kodu co zamiescielem to robilem to tak: movlw h'00' movwf Mem_loc movlw A'8' movwf Data_Buf call WriteEPROM jezeli chodzi o pull-up, to stosowałem zewnetrzne rezystory 4,7k.
Mam problem z obsługą transmisji asynchronicznej, tzn. podczas symulacji w MPLAB na wyjściu U1TX w Logic Analyzerze nie można zaobserwować zmian. W tym przypadku jest to wysłanie ciągu bitów 10101010. Fosc=4MHz, prędkość transmisji =31250 kbit/s. Za pomoc z góry dziękuję! bsf STATUS, RP0 movlw b'00100110' movwf TXSTA movlw d'8' movwf SPBRG bcf STATUS,...
Hej Jestem osobą rozpoczynającą pracę z mikrokontrolami pic. Do nauki programowaniu w pic, zainstalowałem sobie środowisko mplab ide v8.36. Przy debugowaniu chciałbym "podglądać" co siedzi w rejestrach (lub i w pamięci), niestety albo ja nie potrafie z tego korzystac albo mam jakiś bug. Mianowicie po poprawnym skompilowaniu następującego kodu: #include...
Spróbuj podmienić ten blok programu i zobacz co się będzie działo. [syntax=avrasm]LADR_0x029B MOVF LRAM_0x21,W SUBLW 0x03 BTFSS STATUS,C GOTO LADR_0x02C7 MOVLW 0x01 MOVWF LRAM_0x3C CALL LADR_0x0055 MOVLW 0x64 MOVWF LRAM_0x3D CALL LADR_0x0040 MOVLW 0x01 MOVWF LRAM_0x3C CALL LADR_0x0055 BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select BSF PORTA,0 ; !!Bank!!...
Witam mam pewien problem. Znalazłem interesujący program, Lecz kompletnie nie znam się na programowaniu... TurnOnPwmPeripheral macro banksel PR2 movlw 18 movwf PR2 ^ 0x80 banksel CCPR1L movlw 9 movwf CCPR1L movlw 0x0c ; Pwm mode, MSBs clear movwf CCP1CON bsf T2CON, 2 ; T2 on endm TurnOffPwmPeripheral macro clrf CCP1CON bcf T2CON, 2 ; T2 off endm Obecnie...
Witam Napisalem sobie programik do wysylanie jakiegos textu po RS232: NAPIS ADDWFPCL, F DT"ATD 112;" ; tezt do wyslania po rs232 retlwd'13' ;znak konca transmisji( dla telefonu)!!! retlw0 ;Znak konca transmisji( dla mikrokontrolera) return "NAPIS to edykieta :)" i wszystko dziala tylko jest problem po zmodyfikowaniu bo chce...
Witam. Składam sobie klawiaturę midi (robię już którąś z kolei na tym samym projekcie i oczywiście wszystko działa) jednak mam do Was kilka spraw związanych z tym tematem. Otóż po pierwsze: - mam plik asm, który jak pisałem działa, jednak w projekcie brakuje mi złącza midi IN - jest ono w innych projektach (z podłączeniem sobie poradzę bez problemu),...
A może by tak jednak w "asm": [syntax=asm] ; ========================================... ; Deklaracje zmiennych ... ; ========================================... cblock 020h key_state ; stan switcha/y R1 ; endc ; ========================================...
Pod koniec listingu, znajdź te miejsce : BSF GPIO,5 ; wlaczenie przekaznika MOVLW 0x28 ; b'00101000' d'040' "(" MOVWF LRAM_0x3B LADR_0x02B3 MOVLW 0xFA ; b'11111010' d'250' MOVWF LRAM_0x3D Zastąp 28 liczbą 14 , i będziesz miał 5 sekund włączenie przekaźnika
Wystarczy przykład 16F628 i 16F628A czy kolega może nam opowiedzieć o różnicach w budowie tych procków? i dlaczego "A" jest tańszy? kolego... zadałem to pytanie ponieważ komega gummis jeszcze dwa miesiące temu ( poszukajcie sobie na forum ) nie wiedział, że w pic jest rejestr ADCON1 a teraz zrobił się lepszy znawca niż moi znajomi w Gammie, która wam...
a żebym to ja wiedział, chyba ma resetować jakiś wektor ; Reset-Vector MOVLW 0x3F MOVWF EEADR ; !!Bank!! EEADR - EECON2 BSF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select BSF EEDATA,0 ; !!Bank!! EEDATA - EECON1 ; Interrupt-Vector BCF STATUS,RP0 ; !!Bank Register-Bank(0/1)-Select MOVF EEDATA,W ; !!Bank!! EEDATA - EECON1 MOVWF LRAM_0x34 MOVLW 0x3F MOVWF...
Witam mam problem z zapisem i odczytem pamięci wewnętrznej eeprom przepisałem procedure asm z microchipa i nic nie zapisuje do eeproma. [syntax=asm] odczyt bcf status, rp0 movlwad movwfeeadr bsf status, rp0 bsfeecon1, rd movfeedata, w bcf status, rp0 return zapis movfad, w movwfeeadr movfb'10101010', w movwfeedata bsfstatus, rp0 bsfeecon1, wren bcfintcon,...
Witam! mam taki program: PROCESSOR 16f84 #include "p16f84.inc" __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ORG0x00 gotoMain ORG0x00 gotoMain #include "bank.inc" Main BANK1 movlw 0xff movwf TRISA movlw 0x00 movwf TRISB BANK0 movlw 0xff movwf PORTB Loop goto Loop End chce go skompilowac za pomoca MPASM 5.01 microchip, ale niestety...
Hej Uczę się od bardzo niedawna PIC i środowiska MPLAB. Mam także programator/debugger MPLAB ICD2. Wykonując debugowanie za pomocą MPLAB SIM mam inne wskazania rejestrów (WATCH) niż, gdy używam "na żywo" debugowania za pomocą ICD2. O czym powinienem pamiętać, aby nie było różnic? Czy ktoś ma jakieś doświadczenie w tej materii? Mój program nie jest skomplikowany...
Problem był w procedurze WR_CMD, chodziło o zapis najpierw starszego potem młodszego nibla. Zapis pierwszej czwórki bitów był prawidłowy, jednak druga czwórka nie była zapisywana poprawnie. Należy dokonać następującej modyfikacji kodu: WR_CMD ;zapis instrukcji do wyswietlacza (w trybie 4-bitowym) bcf RS ET_WR bsf E movwf TMP swapf TMP,0 movwf...
jest sobie taki kawalek kodu i chodzi mi przerwanie od T1 bo sie nie wykonuje po przepelnieniu symuluje to w MPLAB niewiem czy to wina tego ze nieumiem pisac program jest sfakany czy tego ze jestem pijny PROSZE O POMOC!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!... POTZREBNE NA JUTRO I NIE PYTAJCIE CZEMU TAKI GLUPI KAWALEK KODU I CZEMU SLUZY list p=18f452 include...
Witam, Próbuje zaprogramować PIC16f84A. Są do niego podłoczone 4 LEDy na RA0, RA1, RA2 i RA3 jako wyjścia i przycisk na RB0 jako wejście , które ma kontrolować zachowanie LEDów. Jeżeli przycisk nie jest wciśnięty mają migać od RA0 do RA3 a jak jest wciśnięty to od RA3 do RA0. Przy wciśniętym przycisku jest ok, ale w drugą stronę świecą jak chcą. Oto...
Tak wiem, że do watchdoga. Zmieniłem koncepcje, nie chciałem mieć dołączonego preskalera żeby mieć jak najwyższą częstotliwość. Przepraszam, że błędny komentarz pozostał. Oto cały kod obsługi przerwania: ORG 0x00 goto START ORG 0x04 movwf W_TEMP ;kopia rejestrow swapf status,W movwf STATUS_TEMP btfsc T0IF goto TIMER btfsc INTF goto INTEF goto WYJSCIE...
Witam Kupilem 2 sztuki tych procesorow i dzieja sie rzeczy ktore doprowadzaja mnie do szalu:evil: . Mianowicie, programowanie idzie bez problemu (tryb LVP, weryfikuje sie wszystko bez problemow, slowo konfiguracyjne "3F90", a tak na marginesie: oprogramowanie "FPP" i schematy programatorow http://people.man.ac.uk/~mbhstdj/piclink... natomiast w...
Nie potrafię w prosty sposób, przekształcać otrzymanych wyników i proszę o pomoc. movlw.15 ;RB0...RB3 wejscia trisPORTB;RB4...RB7 wyjscia movlw 4 movwfliczn movlw10h movwf PORTB powt movfw PORTB movwf wynik andlw0Fh btfssSTATUS,Z gotowcisk;wcisniety klawisz rlf PORTB,f decfszliczn gotopowt wciskmovfwwynik takie wyniki otrzymuje gdy nacisne jeden z szesnastu...
ok thx... nie poradzilem sobie z problmem na tyle na ile bym chcial ale moze komus sie przyda takie cos... program dziala ale nie tak jak bym chcial, czyli szybko odejmuje (probojac zwiekszyc predkosc silnka, przez co silnik sie wysypuje i nastepuje wpisanie max wartosci do rejestru...) LIST P=16F84 INCLUDE "p16f84a.inc" __CONFIG _PWRTE_ON...
co moze byc z tym programem nie tak, idea jest taka ze zaleznie od wcisnietego przycisku zapala mu odpowiadająćą diode. programuje juz na lajcie lecz nie wiem czy cos nie tak z programem ORG 010H BSF STATUS,RP0 MOVLW 0xF0 MOVWF PORTB MOVLW 0xFF MOVWF PORTA BCF STATUS,RP0 CLRF PORTB L6: CALL L1 BTFSC PORTA,0 CALL L2 CALL L1 BTFSC PORTA,1 CALL L3 CALL...
czołem właśnie sie ucze PICa i wymłodziłem z pomocą książki program na 16F628 co by napisał coś na LCD. ale jest problem bo on nawet nie inicjuje LCD :( list p=16f84 __CONFIG h'3f10' ERRORLEVEL -302 ; RA0 D4 ; RA1 D5 ; RA2 D6 ; RA3 D7 ; RA4 EN ; RA5 RS TMR0 EQU 01H PORTA EQU 05H PORTB EQU 06H TRISA EQU 85H TRISB EQU 86H STATUS EQU 03H CMCON EQU 1FH...
Jak potrzebujesz masz tu ten sam program który działa z MPLABem: LIST P=16F84 include <p16f84.inc> BSF STATUS,5 MOVLW B'11111110' MOVWF TRISA BCF STATUS,5 STARTBTFSC PORTA,1 CALL DIODA BTFSSPORTA,1 CALLDIODA2 GOTO START DIODAMOVLW B'00000001' MOVWF PORTA RETURN DIODA2MOVLW B'00000000' MOVWF PORTA RETURN END; Dając stan wysoki na RA1 świeci sie...
Witam jestem początkujący w programowaniu uP PIC. Zmontowałem układ testujący AVT 873. Napisałem bardzo prosty program (taki jak w EdW ), wystaw stan niski na linii RA0 (czyli zapal diodę). Używam programatora K149-BC V141204 oraz programu do programowania MicrPro. Programator połączony z komputerem przez USB, jak podaje autor programatora dodatkowe...
WITAM na wstepie chcialbym zaznzczyc ze jestem poczatkujacy mam program napisany w asm i potrzebuje "przetlumaczyc" go na język C++... jest to rozruch silnika... zwracam sie do ludzi znajacych oydwa jezyki Ja troszke znam C++ ale nie znam asemblera .... wiec proszę o pomoc... potrzebuje także dopisać do tego programu ŁAGODNY rozruch tzn. silnik sie...
jesli dam w printf'ie %f to nie wyswietla nic, a jesli dam %d lub %i to wyswietla liczbe 16285 a jesli chodzi o kod: 249: nap3=256*0.0048; 1782 0E52 MOVLW 0x52 1784 6EF3 MOVWF 0xff3, ACCESS 1786 0E0E MOVLW 0xe 1788 CFF3 MOVFF 0xff3, 0xfdb 178A FFDB NOP 178C 0E49 MOVLW 0x49 178E 6EF3 MOVWF 0xff3, ACCESS 1790 0E0F MOVLW 0xf 1792 CFF3 MOVFF 0xff3,...
Co jest w tym programie źle? Układ teraz wchodzi w uśpienie, nie mogę go wybudzić(dotykając PORTEM RB7 do zasilania)chyba,że ja coś źle robię.Program przerabiałem setki razy i nic, to jest ostatnia znana mi kombinacja. [syntax=asm] ORG 0x000 goto main ORG 0x004 retfie main bsf STATUS,RP0 movlw 0xFF movwf TRISB movlw 0x1C movwf TRISA ;movlw 0x7F ;0111...
;movlwb'101111' ;portA 5-0 5Analog-input, 1Dig-output movwfTRISA . . . . ;---------------------------------------... tepl_t1 movlwb'01000001' ;fosc/8, kanal 0, A/D on movwfADCON0 callANALOG_1 . . tepl_t2 movlwb'01001001' ;fosc/8, kanal 1, A/D on movwfADCON0 callANALOG_1 . . tepl_t3 movlwb'01010001' ;fosc/8, kanal 2, A/D on movwfADCON0...
Dzięki, już przeszukiwałem forum i widziałem ten temat - rzecz w tym, że dostęp do programatora mam 1 godz w tygodniu i zbieram wszelkie sugestie.. jeśli dobrze rozumiem to umieszczając na początku kod : [syntax=asm] movlw .15 ;RB0...RB3 wejscia tris PORTB ;RB4...RB7 wyjscia movlw 4 movwf liczn movlw 10h movwf PORTB powt movfw PORTB movwf wynik andlw...
Dzięki, miałem ustawionego TRISA, i o bankowaniu pamiętam.. ale jednak coś jest nie tak. Udało mi się zamrugać diodą przez pętle.. ale wszystko jest jakieś takie dziwne. Czy przypadkiem nie trzeba wyłączyć jeszcze przetworników A/D? A żeby było śmieszniej to załączam kod, gdy są dwie linijki, które wskazałem - dioda mruga, gdy nie ma, nie mruga... ja...
Koledzy pomozcie ! Podczas jednoczesnego pomiaru przez RA0 i RA1, wyniki mieszaja sie ze soba (jeden ma wplyw na drugi), natomiast jesli mierze tylko przez RA0 lub RA1 wynik pomiaru jest prawidlowy. Co takiego zrobie zle ? http://obrazki.elektroda.net/94_12162841... STARTmovlw 7 movwf CMCON ;wylacz komparator movlw 3 ;RA0,RA1 wejscia , reszta wyjscia...
Witam Stworzyłem w Realizerze nowy krótki program na próbę.Jego działanie to migotanie diody led po aktywowaniu wejścia RB5 wyj. toRB6 Poniżej plik.asm.; Realizer Gold (V4.00g) : generated PIC16F874 Code ; File : D:\ProjREALIZER\Proj2\sch2.asm ; Scheme Version : 1.00 ; Date : Sun Mar 15 18:41:09 2009 ; Used variables : 3 ; Used functions : 5 list p=16F874,r=dec...
Taki kod asemblerowy generuje ten kompilator niby wygląda normalnie ale kto wie ORG 0 NOP MOVLW HIGH START(at) MOVWF 10 GOTO START(at) <- idzie na początek programu Tak wygląda context restore ORG 4 MOVWF WSAVE MOVFW 3 CLRF 3 <- po co to MOVWF SSAVE MOVFW 10 MOVWF PSAVE MOVFW 4 MOVWF FSRSAVE MOVLW HIGH PFG <- nie wiem co to jest i po co (chyba...
mam teraz cos takiego ; Generated by WinDis84, (c) Nigel Goodwin 1998. LIST P=16F84, F=INHX8M include "P16FXX.inc" ORG 0x0000 CLRF STATUS CLRF INTCON CLRF PCLATH CLRF PORTA CLRF PORTB CLRF 0x0C CLRF 0x1D CLRF 0x0F CLRF 0x10 CLRF 0x11 CLRF 0x12 CLRF 0x13 CLRF 0x14 CLRF 0x15 CLRF 0x18 CLRF 0x19 CLRF 0x1A BSF STATUS , RP0 MOVLW 0x10 MOVWF...
Tak z ciekawości, jaka częstotliwośc zegara udało ci sie uzyskać na PIC'u i jaką metodą? Domyślam się iż chodzi o zegar matrycy (bo zegar procesora łatwo obliczyć znając f kwarcu). Zegar matrycy przy kwarcu 33.86MHz wynosi 10.456kHz. A metoda wygląda tak: list p=16f628a, r=hex #include p16f628a.inc ;__config b'11111100010000' __config b'11111100000010'...
Witam, list p=16f628a, r=dec #include p16f628a.inc __config b'11111100010000' errorlevel -302 cblock h'20' Zmienna endc movlw b'00000111' movwf CMCON clrf PORTA clrf PORTB bsf STATUS, RP0 bsf PCON, OSCF movlw b'00000011' movwf TRISB movlw b'00001000' movwf TRISA bcf OPTION_REG, 7 bcf STATUS, RP0 clrf Zmienna bsf STATUS, C btfsc PORTB, 6 goto $+4 rlf...
Też kiedyś pisałem w asm ale to było w czasach gdy kompilatory C były drogie i niezbyt inteligebntne. Teraz czasem robię wstawki w asm ale to bardzo rzadki przypadek. Dlaczego wolę C? Np taki kod: [syntax=avrasm]b2d ; konwersja 16-bit bin na dec ; dzielenie przez 1000d = 0x03E8 movlw0x03 movwfxw1 movlw0xE8 movwfxw0 callb2da movwfst1 ; dzielenie przez...
Hej napsiałem taki oto program, który ma mi włączać i wyłączać diodę. Srodowisko to MPLAB, kompilator asemblerowy. Problem polega na tym, iż wg debugera program dziala znakomicie, zaś w rzeczywistosci dioda nie chce sie zgasic :?: oto kod: #include p16f684.inc COUNT1 equ 20H COUNT2 equ 21H PORTC equ 07H CMCON0 equ 19H TRISC equ 87H bcf STATUS, RP0 ;...
list p=18f2550 #include <p18F2550.inc> CONFIG WDT=OFF CONFIG MCLRE = ON CONFIG DEBUG = ON CONFIG LVP = OFF CONFIG FOSC = INTOSCIO_EC org 0 Delay1 equ 0x23 Delay2 equ 0x24 Start: movlw 0FH movwf ADCON1 movlw 07H movwf CMCON CLRF PORTC CLRF TRISC CLRF Delay1 CLRF Delay2 MainLoop: BSF PORTC,RC1 Delay: DECFSZ Delay1,1 GOTO Delay DECFSZ...
LIST P=16F84 INCLUDE "p16f84a.inc" __CONFIG _PWRTE_ON & _LP_OSC & _WDT_OFF #define W1OUT PORTB #define W1IN PORTB,1 #define W1UP PORTB,6 #define W1DOWN PORTB,5 #define W1LED PORTA,0 #define W2OUT PORTB,2 #define W2IN PORTB,3 #define W2UP PORTB,7 #define W2DOWN PORTB,4 #define W2LED PORTA,1 #define W_TRIS TRISB licznik equ h'0C' w1stop equ...
Kod dla funkcji Delay10KTCYx() wygląda następująco: [syntax=asm] EXTERN DelayCounter1, DelayCounter2 D10KTCYXCODE CODE Delay10KTCYx FUSTART movlw 0xff stkadj 1 ; added STKADJ PSEUDO-INSTRUCTION for stack analysis movf PLUSW1,0 movlb DelayCounter1 movwf DelayCounter1 movlw 0xee bra D10K_1 D10Kx movlw 0xf2 nop D10K_1 movwf INDF1 decfsz INDF1,1 goto $-2...
Witaj, Jeśli twój program podczas odliczania czasu nie musi nic robić to wystarczy wpisać do kilku rejestrów odpowiednie wartości i potem odejmując je rekursywnie obliczyć czas. Wiedząc ile czasu zajmuje jedna instrukcja. Np dla 8MHz 1 instrukcja zajmuje 1/2 000 000 sekundy czyli 0,5us musiałbyś wykonać 2 miliony instrukcji aby minęła sekunda movlw.93...
SPI nie znam wcale, kombinowałem i udało się (nawet nie wiem dlaczego) przesłać dane z mastera do slave'a przy pomocy tych kilkunastu linijek kodu. Procesory do symulacji użyłem inne , najprostsze z interf. SPI - 16F87, ale jako przykład , może będzie pomocny. processor 16F87 #include <P16F87.INC> __config _CONFIG1, 0x3F1C __config _CONFIG2, 0x3FFC...
Witam, podałeś tylko część kodu, trudno więc powiedzieć. Spróbój w programie umieścić tylko włączenie portu B i wpisz - raz 00, potem ff, lub bcf/bsf. 2. sprawdź Configurations Bits, bywało, że po zmianie katalogu zaponinałem np ustawić generator lub config wpisz do programu. ewentualnie: ;PIC18f455006.VII.2009 list p=18f4550 #include <P18f4550.INC>...
Witam. Próbuję uruchomić coś w rodzaju filtra danych GPS, układ przedstawia się następująco: - odbiornik GPS - pic16f628 - max232 - PC Napisałem program na PIC'a, tak by filtrował dane z GPS i wystawiał tylko to co mnie interesuje. Po uruchomieniu układu podglądam dane na PC w HyperTerminal i okazuje się że dane filtrowane są prawidłowo, układ działa...
Napisałem w asemblerze procedurę do odczytywania kodu rc5 i działa ale nie do końca tak jak to być powinno. Z tego co znalazłem w necie kod rc5 składa się z 14 bitów (2*start,toggle,5 adres,6 komenda). Używam odbiornika TSOP1736 podłączonego do zewnętrznego przerwania int2. Przerwanie ustawione na opadające zbocze. Poniżej procedura obsługi: rcallDelay04;czekm...
Prośba do bardziej doświadczonych kolegów. Posiadam programator PICKIT2, który nie ma możliwości programowania PIC12C509. Czy da się zmienić program na PIC12F509 lub 12F629 ? Zaczynam dopiero przygodę z mikrokontrolerami i nie wiem czy jest to możliwe. W załączniku plik ZIP. Proszę o pomoc :!: Program napisany jest dla PIC12C509, posiadam 12F509 oraz...
Dzięki za odpowiedz Jeszcze mam takie pytanie Czy w tym PIC rezonator jest konieczny? Czy można go zaprogramować bez niego? Mieszkam w mieście gdzie takich rzeczy nie kupie więc bym musiał trochę na ten rezonator czekać a chce sprawdzić ten programator czy mogę nim zaprogramować. Wystarczy że ta dioda będzie się świecić. zmieniłem program na taki bsf...
Przykładowy program: ; very simple PIC16F877A program ; Autor: macbed ; migajace dioda led processor 16f877a include <p16f877a.inc> ;__config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _LVP_ON __config _BOREN_OFF & _CP_OFF & _LVP_ON & _PWRTE_OFF & _WDT_OFF & _HS_OSC & _DEBUG_ON org0 ;clrfPORTB;all outputs :=0 COUNT1equ20h;...
Witam wszystkich Od jakiegos czasu próbuje uruchomic procka, nie mam pojecia w czym jest blad - hardware/software. Pisze w MPLAB IDE v8.10, kompiluje w MPASMWIN i programuje w IC-Prog 1.06B. Oto kod: list P=PIC16f84A #include p16f84a.inc __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_OFF & _HS_OSC CNTMSEC equ 8 org0x0000 CODE bsf STATUS,5 movlw 00h movwf TRISA...
Witam, mam taki nie typowy problem, dlatego jego rozwiązania nie mogę znaleźć przy pomocy Google. Jest to mój pierwszy post na tym forum, gdyż zawsze korzystam z porad w istniejących już tematach i staram się nie zaśmiecać forum i dlatego jak już wspomniałem potrzebuję pomocy indywidualnej. Przechodząc do meritum. Piszę pracę magisterską, znam języki...
hmm, przerwania co 20 instrukcji procesora ;-) Wydaje mi się, że nie uwzględniasz czasu pomiędzy wywołaniem przerwania a ustawieniem timera. Dla przykładu ; INTERRUPT ORG0x004 ; interrupt vector location btfscINTCON,T0IF; TMR0 overflow gotoserv_t0 retfie ; return from interrupt serv_t0 bsfPORTC,0 movlw.256 - (.20 - X) movwfTMR0 bcfINTCON,T0IF;...
Przerwania z RB0 i RB1, oraz poprawione odtwarzanie rejestru W, przy zakończeniu jego obsługi. org0 goto start org4 movwf w_copy ;zachowaj rejestr W movfwSTATUS movwfs_copy ;zachowaj rejestr STATUS ;---------------------------------------... movfPORTB,F btfssINTCON,INTF ;nacisniety przycisk na RB0 ? gotoBUTT_1 ;nie !, przycisniety na RB1 ; obsluga przerwania...
Czy należy się przejmować takimi informacjami od kompilatora: Make: The target "D:\PIC_proj\didoda\didoda.o&qu... is out of date. Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F84A "didoda.asm" /l"didoda.lst" /e"didoda.err" Message[302] D:\PIC_PROJ\DIDODA\DIDODA.ASM...
Miałem działające urządzenie (zauważcie czas przeszły ;(). Postanowiłem dać prosty bajer. I się zaczęło: pod port e są podłączone kolumny klawiatury matrycowej i pic po prostu przestał na nie dawać impulsy do skanowania przycisków. W akcie ostatecznej desperacji wpisałem mu prosty program: movlw 0 movwf TRISE movlw 7 movwf PORTE Może i jest jakieśtam...
zapis konkretnej liczby (n.p. 100dec=64hex) do TMR0 movlw 0x64,W movwf TMR0
Wszystko jest podłączone. Poniżej program: ;-------------------------------------IN... PORTU------------------------- #include 16f84.h msek equ 10h ; TMP equ 11h ; ADRESY POMOCNICZE adres equ 12h ; #define E porta,1 ; nozka 18 pica leci do koncowki E wysw.... #define RS porta,0 ;a pin 17 leci do RS..... org 0 bsf RP0 movlw 0f0h movwf trisb movwf...
O kurde ale bomba!! Programik super ustawiłem opóźnienie na 50milisekund i otrzymałem kodzik który takie opóźnienie generuje :) movlw .221 movwf Reg_1 movlw .130 movwf Reg_2 decfsz Reg_1,F goto $-1 decfsz Reg_2,F goto $-3 nop nop z tego co wnioskuje to goto $-1 oznacza skok o jeden rozkaz do tyłu a goto $-3 o 3 instrukcje do tyłu. Nie wiem natomiast...
No więc po kilkunastu próbach coś zaczyna procek robić :D Ale nie za bardzo to co trzeba :cry: Po pierwsze po skonfigurowaniu oscylatora jako wewnętrzny RC procek nie działa gdy nie podciągnę rezystorem GP5 do +Vcc i zależenie od wartości tej rezystancji częstotliwość jest różna :/ Po drugie: jeżeli już dobiorę odpowiednią rezystancję tak ze na wyjściu...
Witam, na początku chciałem zaznaczyć, że jestem początkującym elektronikiem. Staram się zrobić sterowanie (za pomocą uniwersalnego pilota i układu PIC16f84a) typu włącz, wyłącz około 5 rzeczy (5 kanałów). Przykładowy program jaki mam do odbioru jest dość skomplikowany i tu proszę o pomoc. Czy ktoś może zaznaczyć cała część programu odpowiedzialną za...
Zestaw taki: ICD 2 na usb. Demo board 2. MPlab 8.10. Pic16F887A wlozony prawidlowo. Prawidlowo zasilone. Chcialam zrobic program ktory na wszystkie porty mikrokontrolera poda 1. Odpalam MPlab. Programator - wybieram ICD 2. Wybieram moj microcontroler. Project - new project, dodaje plik header: pic16f887.inc, dodaje kod: 16f887.asm. Kasuje jego zawartosc...
Ok dziekuje juz sprawdzam Co do R/W to tak na stale do GND dalem Dziekuje za odpowiedz include <p16F876.inc> list p=16F876 __config _HS_OSC & _PWRTE_ON & _WDT_OFF & _LVP_OFF ADR_RESET EQU 00h #define E PORTC,0 #define RS PORTC,2 ;---------------------------------------... ;---------DEKLARACJA ZMIeNNYch ----------- ;---------------------------------------...
Cóż, ja bym szybko zmienił kompilator, który generuje takie kwiatki. Nie wiem co wygeneruje promowany przez Microchipa XC8, ale darmowy SDCC v3.3 daje:[syntax=asm] ; .line 150; "c.c" dig_1=1; 000039 3001 movlw 0x1 MOVLW 0x01 00003a 0020 movlb 0 BANKSEL _dig_1 00003b 00cc movwf 0x4c MOVWF _dig_1 ; .line 151; "c.c" dig_2=1; 00003c 3001 movlw 0x1 MOVLW...
Witam, od kilku dni "męczę" się w dosłownym tego słowa znaczeniu z implementacją KEELOQ'a w swoim urządzeniu. Pomęczył bym się jeszcze kilka dni ale gonią mnie terminy i dlatego chciałbym poprosić o pomoc bardziej doświadczonych kolegów. Buduję układ z sercem Atmela gdyż z tymi procesorami miałem do tej pory najwięcej do czynienia. Niestety nie mam...
Witam! Jako, że jestem zielony;) w programowaniu mikrokontrolerów PIC a dokładniej w asemblerze prosze pomoc. Podczas kompilacji w programie MPASM otrzymuje nastepujace bledy: Warning[205] C:\1\L.ASM 217 : Found directive in column 1. (error) Error[128] C:\1\L.ASM 217 : Missing argument(s) Message[302] C:\1\L.ASM 222 : Register in operand not in bank...
Może dlatego, że poprawiłem tylko część odpowiedzialną za wyświetlanie na wyświetlaczu ze wspólną anodą. Poniżej cały poprawiony kod: ;woltomierz 0-99.9V, pomiar co ~0.5s ;wyswietlacz ze wsp.katoda RA3 - do gnd ;wyswietlacz ze wsp.anoda RA3 - do vcc processor 16F676 #include <P16F676.INC> __config _BODEN_OFF & _MCLRE_OFF & _PWRTE_OFF &...
nissan primera rozrusznik przykładowe programy atmega pomiar prędkości indukcyjnym
obdii interfejs obdii interfejs
Technics magnetofon – ślizgające sprzęgło, naprawa, wymiana filcu i sprężyny Windows Defender, Avast, Chrome – błąd „niepowodzenie – skanowanie antywirusowe nie powiodło się” podczas pobierania plików