Výsledky 1 až 14 z 14

Téma: ..::ASEMBLER PIC16F84::..

  1. #1

    Standardní ..::ASEMBLER PIC16F84::..

    Potřeboval bych pomoc s jednim program je to jednoduchý ale furt mi to hází chybky a to na konci kdy testuju Carry
    Kód:
    subwf     portA
    btfsc     Carry
    někde v tomhle je zakopanej pes ale nevim... Když to pustim tak běží cykl čísel od 0 do F, ale když na dipu nastavim nějakou hodnotu DIp=portA tak to doběhne do konce a zhroutí se to
    Citace Původně odeslal Zadani
    Sestavte program pro PIC16F84, ktery zobrazi na 7x Segmentovce
    cissla od 0 do N diod, kde N je dano 4 bitovym cislem z DIPu
    Kód:
    ;------------------------------------------------------------------
    ;	PREDDEFINOVANE REGISTRY
    ;------------------------------------------------------------------
    RTCC	     equ		1h			;registr RTCC
    Option_reg  equ		81h			; Option registr
    PCL			equ		2h			;registr PCL (pro BCL code)
    SWR		   equ		3h			;regist stavoveho slova
    portA	    equ		5h			;port A
    portB	    equ		6h			;port B
    
    IntCon	   equ		0Bh			;registr pro preruseni
    w		     equ		0h			;pracovni registr W
    f		 	 equ		1h			;pomocny registr F
    RTIF    	 equ 	  2h
    
    #DEFINE	  Carry	SWR,0		;indikuje preteceni carry flag
    #DEFINE	  Zero	 SWR,2		;indikuje nulu
    #DEFINE     RP0	  SWR,5		    ;banka registru 0
    
    ;-----------------------------------------------------------------
    ;	PROMENNE
    ;-----------------------------------------------------------------
    Krat 		 equ		8h			;pocet cyklu opakovani pro spozdeni
    Citac       equ		10h		        ;adresa citace
    Cislo       equ		11h			;adresa bunky se zobraz. cislem
    Dip			equ		12h
    ;-----------------------------------------------------------------
    ;	OBSLUZNE PODPROGRAMS
    ;-----------------------------------------------------------------
    			org		0	
    			goto	Start		;skok na hlavni telo programu
    ;-------[Zasobnik se zobrazovacem cisel na 7xSeg]-----------------
    Segment
    			addwf	PCL,f		;soucet prg.count a cisla
    			retlw   0C0h		;0
    			retlw   0F9h		;1
    			retlw   0A4h		;2
    			retlw   0B0h		;3
    			retlw   099h		;4
    			retlw   092h		;5
    			retlw   082h		;6
    			retlw   0F8h		;7
    			retlw   080h		;8
    			retlw   090h		;9
    			retlw   088h		;A
    			retlw   083h		;B
    			retlw   0C6h		;C
    			retlw   0A1h		; D
    			retlw   086h		;E
    			retlw   08Eh		;F		
    ;-------[Spozdeni generovane casovace bez preruseni]--------------
    Tdelay
             movwf   Citac
    Tdel0
             clrf    RTCC
             bcf     IntCon,RTIF
    Tdel1 
             btfss   IntCon,RTIF 
             goto    Tdel1
             decfsz  Citac,1
             goto    Tdel0
             return
    ;-----------------------------------------------------------------
    ;	HLAVNI KOD PROGRAMU
    ;-----------------------------------------------------------------
    Start
    		   bsf	  RP0			;prepne na banku registru 1
    			movlw	b'11000111'	;nastavi fosc/4 do RTCC, 111 = 1:256
    			movwf	Option_reg	;presune do Option_reg
    			clrf	 portB		;nastavi port pro vystup	
    			bcf	  RP0			;prepne na banku registru 0
    Opak	
    			clrf	 Cislo		;nastavi pocatecni hodnotu cisla
    Opak1
    			movf	 Cislo,w		;prenos hodnoty v reg. Cislo -> w
    			call	 Segment		;volani pro prevedeni cisla
    			movwf	portB		;zobrazeni cisla na 7xSegment
    			movlw	Krat		;nastaveni poctu cyklu
    			call	 Tdelay		;volani spozdeni	
    			incf	 Cislo,f		;inkrementace reg. Cislo o 1 
    			movf	 Cislo,w		;predani hodnoty z reg. Cislo -> w
    			movf	 portA,f		; nepouzivat pro testovani
    ;----------------------------------------------------------------
    			subwf	portA		; result=f-w, jestlize &#40;result < 0&#41; pak Carry=0
    			btfsc	Carry		; pokud je zaporne tak preskoci
    			goto	 Opak1
    			goto	 Opak		;pokud konec tak zpet do nuly
    ;-------&#91;Konec&#93;---------------------------------------------------
    			end
    ..::SILENT ESPRIT::..
    AMD AthlonXP 2500+@3200+ (11x200)Barton AC Cooler Silent2 TC rev.2 | 512MB RAM 400MHz CL2.5 | Soltek KT600 C1 | Saegate 80GB 2MB cache |ATi R9600XT Fireblade 128MB 500/600MHz@532/650MHz | SAMSUNG 48x24x48x | TEAC 52x | 17\" LG Flatron 710BH | Case Esprit MidiTower |Mandrake 10 Kernel 2.6.3 KDE3.2

  2. #2

    Standardní

    Nikdo neprogramujete v asembleru
    ..::SILENT ESPRIT::..
    AMD AthlonXP 2500+@3200+ (11x200)Barton AC Cooler Silent2 TC rev.2 | 512MB RAM 400MHz CL2.5 | Soltek KT600 C1 | Saegate 80GB 2MB cache |ATi R9600XT Fireblade 128MB 500/600MHz@532/650MHz | SAMSUNG 48x24x48x | TEAC 52x | 17\" LG Flatron 710BH | Case Esprit MidiTower |Mandrake 10 Kernel 2.6.3 KDE3.2

  3. #3

    Standardní

    Programujeme obcas, ale nie PIC.
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  4. #4

    Standardní

    PIC neznam kdysi sem delal neco pro 51 a myslim ze s portem nemuzes provadet nic jineho nez cteni nebo zapis

    takze pak by tohle by neslo

    subwf portA

    musel bys to napred precist do nakyho registru a pracovat s nim


    ale nevim to urcite je to uz davno a byli to 51 a ne PIC.
    Gigabyte EP45-UD3R, Intel Core2Duo E8500@3,16G +Scythe Ninja 2 ,Saphire R 4670HD +Accelero S1,zdroj Antec EarthWatts 500W (ventilator Scythe SFF21D pres redukci 80-120),Case - Sonata Designer,4G DDR2-800 Kingston HX,Seagate 320G 2,5"/7200ot, zvk. MIDIMAN Delta Audiophile 2496 PCI + Marantz PM8000(2x155W,25W A) a BW Speakers 602+Sub ASW1000, Eizo L550 17\" LCD,Logitech MX300, Microsoft Internet Keyboard Pro.

  5. #5

    Standardní

    programuju jenom v x86 assembleru, vubec nevim co PIC je
    AMD Sempron 2500+ 1750MHz | MB ASUS A7N8X-X | RAM Samsung+Kingmax 2x512MB 333DDR CL2 | Gigabyte RADEON 8500 Deluxe MAYA | Lynx L22 | Seagate Barracuda 120GB 7200rpm | DVD-RW LiteOn 812S | Enermax 365W | 17" LCD Acer AL732 | zvuk: Lynx L22+TOPDAC+DISPRE+3xDPA380SSE | ~ WaterCooled: CASCADE CPU blok by Radek-B, radiátor Opel Kadett '87, čerpadlo Eheim 1046 ~

  6. #6

    Standardní

    Citace Původně odeslal mager
    PIC neznam kdysi sem delal neco pro 51 a myslim ze s portem nemuzes provadet nic jineho nez cteni nebo zapis

    takze pak by tohle by neslo

    subwf portA

    musel bys to napred precist do nakyho registru a pracovat s nim


    ale nevim to urcite je to uz davno a byli to 51 a ne PIC.
    Kód:
    subwf portA
    znamená odečte pracovní registr W od portA a pokud budou stejny takze bude 0 neb btfsc Carry testuje kdyz Carry 0 tak preskoci nasledujuci instrukci a kdyz 1 tak provede nasledujici
    ..::SILENT ESPRIT::..
    AMD AthlonXP 2500+@3200+ (11x200)Barton AC Cooler Silent2 TC rev.2 | 512MB RAM 400MHz CL2.5 | Soltek KT600 C1 | Saegate 80GB 2MB cache |ATi R9600XT Fireblade 128MB 500/600MHz@532/650MHz | SAMSUNG 48x24x48x | TEAC 52x | 17\" LG Flatron 710BH | Case Esprit MidiTower |Mandrake 10 Kernel 2.6.3 KDE3.2

  7. #7

    Standardní

    PICe jsme prgali minuly rok a celkem zajimave

    A co se matne pamatuju tak btfsc ma 2 parametry. Resp. nemelo by to byt ?
    Kód:
    btfsc Carry,0

  8. #8

    Standardní

    Citace Původně odeslal gloom
    Citace Původně odeslal mager
    PIC neznam kdysi sem delal neco pro 51 a myslim ze s portem nemuzes provadet nic jineho nez cteni nebo zapis

    takze pak by tohle by neslo

    subwf portA

    musel bys to napred precist do nakyho registru a pracovat s nim


    ale nevim to urcite je to uz davno a byli to 51 a ne PIC.
    Kód:
    subwf portA
    znamená odečte pracovní registr W od portA a pokud budou stejny takze bude 0 neb btfsc Carry testuje kdyz Carry 0 tak preskoci nasledujuci instrukci a kdyz 1 tak provede nasledujici
    u 51 pokud si dobre pamatuju prave s pracovnim registrem brany neslo pracovat ale jen cist nebo zapisovat. ale jak rikam nevim to jiste a PIC sem nevidel ani z dalky.
    Gigabyte EP45-UD3R, Intel Core2Duo E8500@3,16G +Scythe Ninja 2 ,Saphire R 4670HD +Accelero S1,zdroj Antec EarthWatts 500W (ventilator Scythe SFF21D pres redukci 80-120),Case - Sonata Designer,4G DDR2-800 Kingston HX,Seagate 320G 2,5"/7200ot, zvk. MIDIMAN Delta Audiophile 2496 PCI + Marantz PM8000(2x155W,25W A) a BW Speakers 602+Sub ASW1000, Eizo L550 17\" LCD,Logitech MX300, Microsoft Internet Keyboard Pro.

  9. #9

    Standardní

    Citace Původně odeslal jedik
    PICe jsme prgali minuly rok a celkem zajimave

    A co se matne pamatuju tak btfsc ma 2 parametry. Resp. nemelo by to byt ?
    Kód:
    btfsc Carry,0
    Kód:
    #DEFINE    Carry   SWR,0
    [/quote]
    ..::SILENT ESPRIT::..
    AMD AthlonXP 2500+@3200+ (11x200)Barton AC Cooler Silent2 TC rev.2 | 512MB RAM 400MHz CL2.5 | Soltek KT600 C1 | Saegate 80GB 2MB cache |ATi R9600XT Fireblade 128MB 500/600MHz@532/650MHz | SAMSUNG 48x24x48x | TEAC 52x | 17\" LG Flatron 710BH | Case Esprit MidiTower |Mandrake 10 Kernel 2.6.3 KDE3.2

  10. #10

    Standardní

    Citace Původně odeslal gloom
    Citace Původně odeslal jedik
    PICe jsme prgali minuly rok a celkem zajimave

    A co se matne pamatuju tak btfsc ma 2 parametry. Resp. nemelo by to byt ?
    Kód:
    btfsc Carry,0
    Kód:
    #DEFINE    Carry   SWR,0
    Aha sorry, ja to necet cele. Bohuzel k PICu uz nemam pristup takze neporadim

  11. #11

    Standardní

    tyve co u pica znamena zhrouti se to ?
    co to dela nebo nedela? co na to simulator?


    Edit:
    Kód:
             subwf   portA      ; result=f-w, jestlize &#40;result < 0&#41; pak Carry=0
             btfsc   Carry      ; pokud je zaporne tak preskoci
             goto    Opak1
             goto    Opak      ;pokud konec tak zpet do nuly
    nemelo by carry bejt jedna kdyz to vyjde zaporne?(ja uz si to nepamatuju .. naposled jsem to delal pred 1/4 rokem)
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  12. #12

    Standardní

    Citace Původně odeslal Fox!MURDER
    tyve co u pica znamena zhrouti se to ?
    co to dela nebo nedela? co na to simulator?
    simulator používám MPLAB@6.40 a probíhá dobře akorát že nedokáže načíst data s portuA a do pracovniho regustr W to hodí nějaký srač*y a zroutí se to už se v tom hrabu podezřele dlouho a furt s tim nemůžu hnout
    ..::SILENT ESPRIT::..
    AMD AthlonXP 2500+@3200+ (11x200)Barton AC Cooler Silent2 TC rev.2 | 512MB RAM 400MHz CL2.5 | Soltek KT600 C1 | Saegate 80GB 2MB cache |ATi R9600XT Fireblade 128MB 500/600MHz@532/650MHz | SAMSUNG 48x24x48x | TEAC 52x | 17\" LG Flatron 710BH | Case Esprit MidiTower |Mandrake 10 Kernel 2.6.3 KDE3.2

  13. #13

    Standardní

    Na www.hw.cz ti neporadi?
    Gigabyte 965-DS4 v3.3, Q9300, 4x1GB AData EE, Sapphire 4850

  14. #14

    Standardní

    To ti hlásí ten simulátor, nebo výsledný program nahraný v CPU? Ono to může být problém právě toho simulátoru, že nepodporuje dobře všechny instrukce toho CPU. Ve škole máme simulátor pro Motorolu HC11E09 a ten třeba neumí instrukci sečtení akumulátorů A a B, ikdyž je to běžná instrukce. Zato umí instrukci, která pracuje s indexregistrem X, která není popsaná v seznamu instrukcí pro tento typ CPU. Asi tak.
    Gigabyte GA-MA78G-DS3H, Athlon 64 X2 5050+, 6GB RAM, 2X WD6400AAKS 640GB, integrovaný zvuk i grafika, zdroj SEASONIC S12-550 Energy+, AverTV DVB-T Volar X, Samsung SH-203B, Logitech MX-518

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •