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
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...
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.
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
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...
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
[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...
Zamiast na początek ćwiczyć 'mieszańce' w C, lepiej spróbować rasowo: [syntax=asm] ; ========================================... ; Inicjalizacja MPU i peryferii ... ; ========================================... org 000h clrf STATUS ; set known status clrf INTCON ; clear all interrupts...
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...
Oto Twój program po zoptymalizowaniu i usunięciu zbędnych (dla tego przypadku) linii , powinien działać, a więc po odebraniu znaku zapalić diodę. bsf STATUS,RP0 clrf TRISB ;PORTB - wyjscia movlw .51 ;baud rate 1200 / 4MHz movwf SPBRG bcf STATUS,RP0 bsf RCSTA,CREN bsf RCSTA,SPEN clrfPORTB ; wyzerowanie portu btfss PIR1, RCIF ;bit 2 nie 5 goto $-1 ;czeka...
Nie wiem, czy chodzi o pamięć programu Flash EEPROM, czy o EEPROM na dane. Pamięć danych zaprogramujesz wczytując plik bin/hex do IC-Proga (menu File->Open Data File...) przed programowaniem. Odczyt z EEPROMu (pic16f84a) BCF STATUS, RP0 ; Bank 0 MOVLW adres_bazowy_tablicy ; ADDLW indeks_tablicy ; albo odpowiednie ADDWF MOVWF EEADR ; BSF STATUS, RP0...
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;...
(at)acctr miałem chwilę i sprawdziłem to co napisałeś. Po sprawdzeniu dochodzę do wniosku, że byłem też wcześniej w błędzie. Z const byte sine_table __code __at (0x200) const byte sine_table[32] = { 128,152,176,198,218,234,246,254, 255,254,246,234,218,198,176,152, 128,104, 80, 58, 38, 22, 10, 2, 1, 2, 10, 22, 38, 58, 80,104 };...
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...
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
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 ;***************************************...
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...
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...
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...
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...
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
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] ;***************************************...
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...
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...
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...
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 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 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....
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, 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,...
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...
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...
movlw dlugosc obszaru movwf dlug movlw koniec obszaru movwf FSR czysc clrf INDF decfFSR,F decfsz dlug,F goto czysc clrf INDF
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),...
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 }...
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, 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...
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 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 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...
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,...
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.
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...
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 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...
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 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,...
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,...
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...
pomiar prądu magazynu energi ładowanie sprinter zliczać impuls arduino
mikrokomputer cobra1 mikrokomputer cobra1
Błąd E17 w pralkach Bosch, Beko, zmywarkach i falownikach Megmeet – interpretacja i diagnostyka BME280 vs IMGW Radawiec – różnice w ciśnieniu, kalibracja, przeliczanie hPa i mm Hg