PIC16F505
Moderátor: Moderátoři
PIC16F505
Dobrý den...nedávno jsem si poøídil tento procesor a vùbec nevím, jak nastavím jeho nožièky na vstupy a výstupy pomocí pøíkazu TRIS, protože narozdíl od napø.: PIC16F627 výraz TRIS není definován...nemá podle dokumentace žádnou adresu nebo jsem jí nenašel. Rád bych vìdìl, jak mám procesor nadefinovat. Také jsem chtìl použít soubor #include, ale zjistil jsem, že ho nemám k dispozici a tak jsem chtìl promìnné definovat klasicky, ale zjistil jsem že funkce jako MCLRE, CP, OSC nemám zase kam pøidìlit...nenašel jsem jejich pozici v pamìti a v dokumentaci neni definována a dole je pouze odkaz, abych si pøeèetl specifikace pamìti. Prosím pomozte...dìkuji...
U 505ky se vstupy a výstupy nastavují tak, že se do W dá příslušná hodnota 0 pro výstup 1 pro vstup, a pak se zavolá TRIS s operandem 6 pro port B nebo 7 pro port C. Port A 505ka nemá. Takže to vypadá třeba takto:
movlw 0xFF
tris 6
movlw 0x00
tris 7
tím se nastaví celý port B jako vstupní a port C jako výstupní (samozřejmě jde nastavit každý pin jinak, jen ten co se používá pro MCLR jde použít jen jako vstupní)
movlw 0xFF
tris 6
movlw 0x00
tris 7
tím se nastaví celý port B jako vstupní a port C jako výstupní (samozřejmě jde nastavit každý pin jinak, jen ten co se používá pro MCLR jde použít jen jako vstupní)
Naposledy upravil(a) urbanek dne 02 zář 2008, 19:41, celkem upraveno 1 x.
Ještì jedna vìc...mám program, který mi nefunguje...ty pojistky definuji pøi programování, Watchdog je vypnutý, MCLR zapnutý,....interní oscilátor, program je v pøíloze.
- Přílohy
-
- SVETLO.ASM
- (197 bajtů) Staženo 88 x
nic tam není...podle mne procesor nic víc nepotøebuje...potom je konec programu, protože vezme informaci do W potom jí pøemístí na PortC - diody se rozsvítí a potom je konec...vždy mi to fungovalo tím zpùsobem, že to takto fungovalo a svítilo neustále...tedy hlavnì pøes emulátor MUBeta; zkusil jsem dát i GOTO $-1 ale ani to nepomohlo
Procesor bez ohledu na tvoje představy pokračuje ve vykonávání následujících instrukcí. A protože další obsah programové paměti nemusí být definován, může dělat naprosto co ho napadne. Pak se nediv, že ti programek nefunguje.
V úpravě jsem ho ověřil a nenašel jsem problém.
V úpravě jsem ho ověřil a nenašel jsem problém.
Kód: Vybrat vše
list P=PIC16F505 ; list directive to define processor
#include <P16F505.INC> ; processor specific variable definitions
errorlevel -302
__CONFIG _MCLRE_ON&_WDT_OFF&_CP_OFF&_IntRC_OSC_RB4EN
;--------- CONSTANT DEFINITIONS ---------------------------------------
#define RAM_Start 0x10
;--------- VARIABLE DEFINITIONS ---------------------------------------
CBLOCK RAM_Start
ENDC
;--------- ZACATEK PROGRAMU -------------------------------------------
org 0x0000 ; zacatek programu
movwf OSCCAL
movlw B'00000000'
tris PORTB
movlw B'00000000'
tris PORTC
movlw B'00000111'
movwf PORTC
loop goto loop
end ; konec programu