8.1. P0 általános port

A P0 általános port kivezetéseinek funkciói külön-külön programból beállíthatók és minden kivezetés megszakítás jelforrásként is használható.

Az I/O kivezetések vezérlésére 6 regiszter szolgál. Az általános modul regiszterek címtartománya az alsó periféria címtartományban van, ahová a byte-os modulok tartoznak. Abszolút címzéssel és byte-os utasításokkal érhetők el. A port áttekintő blokkvázlata a 8.1 ábrán látható.

8.1. ábra: A P0 port felépítése.

 

A P0 port vezérlő regiszterei

A P0 port a 8 bites MDB és MAB buszokon keresztül csatlakozik a CPU-hoz. Byte utasításokkal érhető el.

A hat vezérlő regiszter maximális flexibilitást eredményez:

Minden I/O bit egyenként programozható:

Mindenféle input, output és megszakítás kombináció lehetséges.

A külső események megszakításos kezelése a P0 port mind a 8 bitjével lehetséges.

A regiszterek az alábbiak:

 

 

 

 

Regiszter Név Típus Cím Kezdeti állapot

Input regiszter P0IN olvasás 010h -----

Output regiszter P0OUT olvasás/írás 011h változatlan

Irány regiszter P0DIR olvasás/írás 012h reset

Megszakítás jelző bit-ek P0IFG olvasás/írás 013h reset

IT. él kiválasztás P0IES olvasás/írás 014h változatlan

IT. engedélyezés: P0IE olvasás/írás 015h reset

A PIFG és a PI0E regiszterek kivételével minden regiszter 8 bites. Ezek alsó két bitje az SFR regiszterekben található.

 

Input Regiszter P0IN

Az input regiszter csak olvasható regiszter, és az I/O kivezetések jeleinek a lekérdezésére szolgál. A kivezetések irányát inputként kell definiálni.

Output Regiszter P0OUT

Az Output Regiszter az output buffer tartalmának tárolásárs szolgál. Ez az adat kerül az I/O lábakra, ha azokat outputként használjuk. Az output buffer tartalma írható és olvasható. A kivezetések irányának megváltoztatása nem módosítja a buffer tartalmát.

Irány Regiszter P0DIR

A regiszter nyolc bitje az I/O lábak irányát definiálja. A biteket a PUC jel reseteli:

Bit = 0: Az I/O láb input irányú

Bit = 1: Az I/O láb output irányú.

 

Megszakítás Jelzőbit regiszter P0IFG

A regiszter hat jelzőbitet tartalmaz, amelyek jelzik a megszakítás kérelmeket a megfelelő I/O lábakon:

Bit = 0: nincs megszakítás kérelem

Bit = 1: Megszakítás kérelem történt az I/O lábon történő jelszint átmenettel.

A megszakítás jelzőbit nullázása törli a megszakítás kérelmet.

A P0IFG.7 - P0IFG.2 jelzőbitek a P0IFG regiszterben, aPOIFG.0 és P0IFG.1 bitek pedig az SFR regiszterben vannak.

Megjegyzés:

A P0FLG.2 - P0FLG.7 megszakítás jelző bitek egy megszakítás vektort használnak, azaz többszörös megszakítás vektor források. A P0IFG.2 - P0IFG.7 megszakítás jelzőbitek nem resetelődnek automatikusan, ha megszakítás kiszolgálásra kerül A szoftver dönti el, melyik megszakítás kerül kiszolgálásra, és a megfelelő jelzőbitet törölnie kell. A külső megszakítás eseménynek 1.5 x MCLK vagy hosszabbnak kell lenni, hogy a megfelelő jelzőbit bebillenjen.

 

Megszakítás él kiválasztás P0IES

A regiszter minden I/O kivezetéshez tartalmaz egy bitet, amely kiválasztja, milyen átmenet kezdeményezzen megszakítást. A P0.7 - P0.0 nyolc bit található e regiszterben. A bitek jelentése:

Bit = 0: A megszakítás jelzőbit LO/HI átmenet esetén billen be.

Bit = 1: A megszakítás jelzőbit HI/LO átmenet esetén billen be.

A P0IES bitek átírása a megfelelő megszakítás jelzőbiteket beállíthatja.

 

Megszakítás Engedélyezés P0IE

A regiszter a P0.7 - P0.2 I/O lábak megszakítás engedélyező bitjeit tartalmazza. A P0.0 és P0.1 megszakítás engedélyező bitek az IE1.2 és IE1.3. speciális funkciójú regiszterben vannak.

A bitek jelentése:

Bit = 0: Az megszakítás kérelem tiltott

Bit = 1: Az megszakítás kérelem engedélyezett

Megjegyzés: a P0 porton csak jelátmenet okoz megszakítást.

Az megszakítás rutinnak törölni kell a P0IFG.2. P0IFG.7 megszakítás jelzőbitet. A P0IFG.0 és P0IFG.1 jelzőbitek automatikusan törlődnek a kiszolgálás alatt.

Ha egy megszakítás jelzőbit még bebillent állapotban van, (mert a jelátmenet megszakítás kiszolgáló rutin alatt történt), a RETI utasítás végrehajtása alatt, új megszakítás keletkezik a RETI befejezése után. Ez biztosítja, hogy minden átmenetet (megszakítás kérelmet lásson a szoftver.

8.1.2. A P0 port felépítése.

A porthoz 3 megszakítás vektor tartozik.

Az alsó két bithez, P0.0 és P0.1 hez külön-külön vektor van hozzárendelve. Ezek megszakítás flagjei és engedélyező bitjei az SFR-ben találhatók. A flag-ek a megszakítás elfogadásakor automatikusan törlődnek.

A P02-P07 lábak közös megszakítás vektorral rendelkeznek. Ezért a megfelelő megszakítás flag-ek nem törlődnek. Azokat a felhasználó programja kell, hogy törölje.

8.2. ábra: A P0.3-P0.7 portok áramköri vázlata.

A P0 port P0.2. bitje egy kicsit eltér ettől. ( 8.3. ábra)A TXE modul engedélyező jel és a TXD modul jel a 8 bites timer modul jelei. A 8 bites timer soros kommunikációra használja P0.2. és P0.1. lábat. P02 az adó, P01. Pedig a vevő kivezetés. (lásd 10.5. ábra).

8.3. ábra: A P0 port P0.2 bitje blokkvázlata.

A P0.1 bit a P03-P07. bitektől kissé eltér. A megszakítás jel forrása választható. Lehet a P0.1. kivezetés, vagy a 8 bites számláló-időzítő áramkör Carry jele. Valahányszor a 8 bites számláló-időzítő áramkör TCCTL vezérlő regiszterében az ISCTL bitet bebillentjük 1-be, a megszakítás forrásjel a P0.1 kivezetésről átkapcsolódik a Carry jelre. A P0IFG.1 flag automatikusan törlődik az IRQA jelről. A P0.1. bit felépítése a 8.4. ábrán látható.

8.4. ábra: A P0.1 bit felépítése.

A P0.0 bit felépítése megegyezik a P0.3-P0.7 bitek felépítésével, de külön megszakítás vektorral rendelkezik, lásd 8.5. ábra.

8.5. ábra: A P0.0 bit felépítése.

A P0 porthoz tehát a három hozzárendelt megszakítás vektor:

P0.0

P0.1/RXD

P0.2-P0.7

P1 és P2 port

A portok felépítése azonos és a 8.6. ábrán látható.

Minden bit külön-külön programozható IT vektorral rendelkezik a 8-8 bit.

Hét –hét regisztert tartalmaznak

8.6. ábra: A P1 (és P2) digitális I/O port blokkvázlata.

A portok regiszterei:

P1IN (P2IN) Input regiszter

P1OUT (P2OUT) Output regiszter

P1DIR (P2DIR) Irány regiszter

P1IFG (P2IFG) Megszakítás flag regiszter

P1IES (P2IES) megszakítás él kiválasztó regiszter

P1IE (P2IE) Megszakítás engedélyezés regiszter

P1SEL P2SEL) Modul funkció kiválasztó regiszter

Az első hat regiszter funkciója azonos a P0 portnál elmondottakkal. A P1SEL regiszter bitjeinek megfelelően a kivezetések vagy port funkciót töltenek be, vagy valamely modul csatlakozik hozzájuk.

8.7. ábra: P1 és P2 portok felépítése.

 

P3 és P4 portok

A P3 és P4 portok azonos felépítésűek. Blokkvázlatuk a 8.8. ábrán látható. Négy regiszterrel rendelkeznek, ezek az input, output, irány és funkció kiválasztás regiszterek. A funkció kiválasztó regiszter, P3SEL, P4SEL bitjeivel kiválasztható, hohy a port bitje normál I/O bit legyen, vagy valamelyik modul kivezetéseként működjön. Ha a megfelelő bit 0, port funkció, ha a bit 1, modul funkció van kiválasztva. A modul lehet a TimerA vagy az UART modul. Ezt konkrét típusonként kell ellenőrizni.

 

 

8.8. ábra: P3, P4 portok felépítése.

A P3 és P4 modulok részletesebb felépítése a 8.9. ábra szerinti.

A PnSEL.x jel választja ki a modul funkciót. Ekkor a bemeneti jel a modulban kerül tárolásra, illetve a modul jele kerül ki a kivezetésre.

A PnDIR.x jel jelöli ki a kivezetés irányát normál I/O port üzemmódban.

A Direction Control from Module jel a kivezetés irányát állítja be modul funkció üzemmódban.

A PnOUT.x a z I/O port üzem vemenő jele.

Module X OUT jel a modul kimenő jele modul funkció üzemmódban.

A PnIN.x jel a bemenő jel normál I/O port üzemmódban.

Module X In a bemeneti jel modul üzemmódban.

8.9. ábra: a P3 és P4 portok áramköri felépítése.

8.4. LCD portok

Az LCD portok LCD kijelzőt hajtanak meg, vagy statikus digitális kimentként működnek. Az LCD kijelző meghajtásához közös és szegmens kimenetek szükségesek, amelyek a lépcsős analóg jeleket szolgáltatják a 2x-es vagy többszörös multiplexelt üzemmódhoz, lásd hétszegmens kijelzők.

LCD kimenetek

Az LCD kimenetek transzmissziós kapukat használnak az analóg jelek átvitelére a kimeneti lábakra. Szoftverből programozottan digitális kimenetekként is működhetnek. A 8.10. ábrán látható a kimenetek blokkvázlata.

8.10. ábra: LCD kimenetek.

 

 

Az LCD vezérlő regiszter LCDM5, LCDM6 és LCDM7 bitjei vezérlik a jelek funkcióit.

8.5. LCD port-Timer port komparátor

A timer-port modulban található komparátor bemenetként egy szegmens vonalat használ. A PUC jel hatására a szegmens vonal funkció ki választást történik. . A komparátor bemenetként történő kiválasztás a Timer-port modulban lévő CPON bittel lehetséges. A komparátor funkció kiválasztása A következő PUC jelig megmarad.

8.11. ábra: Az LCD kivezetés Timer/port komparátor üzeme.