9 3 SÉRIOVÝ PORT MIKROKONTROLÉRU 8051 Interní sériový port mikrokontroléru 8051 umožòuje jednoduché a bezproblémové spojení mikrokontroléru s poèítaèe

Podobné dokumenty
11 Elektrické specifikace Mezní parametry* Okolní teplota pøi zapojeném napájení 40 C až +125 C Skladovací teplota 65 C až +150 C Napájecí napìtí na V


1.2 Realizace èekání pomocí jednoduché programové smyèky Pøíklad 3: Chceme-li, aby dítì blikalo baterkou v co nejpøesnìjším intervalu, øekneme mu: Roz

3/ %,1'(& 83'1 &( &3 )XQNFH. + ; ; ; ; / ; ; + ; EH]H]PuQ\



VLASTNOSTI PLOŠNÝCH SPOJÙ


Podrobný obsah CHARAKTERISTIKA A POROVNÁNÍ ØADY PIC16F87X A PIC16F87XA TYPY POUZDER A PØIØAZENÍ VÝVODÙ PIC16F87X TYPY POUZDER A PØIØAZENÍ


:5$ =islv GDW V DOWHUQDFt QHMY\ããtKRELWX

Komerèní využití stavebních návodù je povoleno jen s písemným souhlasem autora a nakladatelství. Soubory na CD ROM mající pøímo vztah ke knize, které





Spínaèe jsou elektrické pøístroje, které slouží k zapínání, pøepínání a vypínání elektrických obvodù a spotøebièù. Podle funkce, kterou vykonávají, je


Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Mikrokontroléry. Doplňující text pro POS K. D. 2001

MIKROPOČÍTAČOVÉ SYSTÉMY


9. Harmonické proudy pulzních usměrňovačů

2 PARALELNÍ ROZHRANÍ Paralelní rozhraní realizuje pøenos dat mezi vnitøní sbìrnicí øídicího systému a vnìjším prostøedím po znacích, neboli po slabiká


/2*,.$ 5(6(7 Ë=(1Ë +$/7 *(1(5È ',129é & 6./ $/8. ' /,ý. ýë7$ý 5(*,675 5(*, é. 6e5,29é 5(*,675 * $.808/È725 5:0. %8',ý(/ 45(*,675 5(*


baspelin CPM Popis komunikaèního protokolu CPM KOMPR


28/40VÝVODOVÝ, 8BITOVÝ CMOS MIKROKONTROLÉR S A/D PØEVODNÍKEM, FLASH PAMÌTÍ PRO PROGRAM A SRAM/EEPROM PRO DATA VLASTNOSTI Velmi výkonný kontrolér s arc

12 15 Instalace mikroturbíny v blokové plynové výtopnì " ZADÁNO: Instalace mikroturbíny v blokové plynové výtopnì Zjistìte: 1 Zda je ekonomicky výhodn

Izolaèní zesilovaèe s IL300 Zapojení izolaèních zesilovaèù s IL300 se liší pøedevším režimem v nichž pracují interní fotodiody Podle toho zda interní


Univerzální jednočipový modul pro řízení krokových motorů

Úvod do mobilní robotiky AIL028

DOKOPO. Komunikaèní karta se samostatným procesorem a dual-port pamìtí. Technická pøíruèka. verze 2.0. A plikace Mikroprocesorové Techniky






Vytváøení sí ového diagramu z databáze: pøíklad



Skládaèka Obr 48 G15 VBP Co to dìlá: Naète vybraný obrázek (vybraný pomocí CommonDialog1), vytvoøí MxN komponent PictureBox obsahujících odpovídající


Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

NULOROVÉ MODELY Spokojíme-li se pouze se základní analýzou elektronického obvodu s ideálními prvky, osvìdèuje se èasto užití nulorových modelù aktivní


2.4 Cykly 2. ZÁKLADY JAZYKA C

Přerušovací systém s prioritním řetězem

Vestavné systémy BI-VES Přednáška 5


Dekódování adres a návrh paměťového systému




baspelin KTR baspelin RPS Popis komunikaèního protokolu

4x kombinovaný analogový vstup s vysokou pøesností (0..10V, R, C)

Mikrořadiče řady 8051.

Knihy obsahují základní vlastnosti a souhrnné pøehledy obvodù TTL V hlavní èásti jsou obvody seøazeny vzestupnì, podle èíselného oznaèení. U kaž


nažhavováním elektronek, takže nedochází k neúmìrnému pøetìžování filtraèních kondenzátorù pøi nábìhu anodového proudu. Polovodièový usmìròovaè vytvoø

Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3

Mikroprocesor Intel 8051


3.1 Útlum atmosférickými plyny Rezonance molekul nekondenzovaných plynù obsažených v atmosféøe zpùsobuje útlum šíøících se elektromagnetických vln. Ab

než je cca 5 [cm] od obvodu LT1070, doporučuje se blokovat napětí U IN

Základní uspořádání pamětí MCU

Kapitola 3 UNIPOLÁRNÍ TRNZISTORY 3.1 Obecný popis Unipolární tranzistory s pøechodovým hradlem (JFET) MOSFET MOSFET zvláštní k

velikosti vnitřních pamětí? Jaké periferní obvody má na čipu a k čemu slouží? Jaká je minimální sestava mikropočítače z řady 51 pro vestavnou aplikaci

David Matoušek ÈÍSLICOVÁ TECHNIKA základy konstruktérské praxe Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována ne



Manuál přípravku FPGA University Board (FUB)

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:


PK Design. MB-ATmega16/32 v2.0. Uživatelský manuál. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (21.12.

CTR pro optoèlen s LED a tranzistorem:,& &75 = [%] U, CE = const ) Obvykle CTR urèíme pøi I F = 10 ma a U CE = 5 V. Hodnoty zjistíme z tabulky.,& &75


MU-411/412 MU-811/812. 4x AIN (12 bitù), RS-485

5. A/Č převodník s postupnou aproximací


Principy komunikace s adaptéry periferních zařízení (PZ)




Standardní signál video 1Vpp

Návod k obsluze výukové desky CPLD


2 Základní zapojení èasovaèe 555 Základní zapojení jsou taková zapojení, na kterých se na jedné stranì vysvìtlují základní principy funkce obvodu nebo

PESexcl. PODPORA PRO VÝMÌNU DAT S APLIKACÍ MICROSOFT EXCEL s využitím DDE serveru PESdde

Mikrořadiče pro přístrojovou techniku

KOMUNIKAÈNÍ DDE SERVER PRO AUTOMATY MICROPEL VERZE 2.3 POPIS ROZHRANÍ A OVLÁDÁNÍ

8. ZÁKLADNÍ ZAPOJENÍ SPÍNANÝCH ZDROJŮ

1. MIKROPROCESOR ATMEGA A/D PŘEVODNÍK MÓDY PŘEVODNÍKU Single Conversion Mode Auto Triggering Start...

Mikroprocesory v přístrojové technice

PDWHULiO FS>-NJ ±. FS>NFDONJ ± ƒ& VW teur åhoh]r FtQ KOLQtN N HPtN. OHG DONRKRO ROHM FFD FFD SHWUROHM UWX YRGD Y]GXFK YRGQtSiUD KHOLXP


Univerzální pøevodníky piggy back 6-2. SLC-66/70/71/72 Rozvadìèové pøevodníky 6-4. SLC-67/73/74 Stolní pøevodníky 6-6

Transkript:

Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby ètenáø vidìl, jakým zpùsobem je titul zpracován a mohl se také podle tohoto, jako jednoho z parametrù, rozhodnout, zda titul koupí èi ne). Z toho vyplývá, že není dovoleno tuto ukázku jakýmkoliv zpùsobem dále šíøit, veøejnì èi neveøejnì napø. umis ováním na datová média, na jiné internetové stránky (ani prostøednictvím odkazù) apod. redakce nakladatelství BEN technická literatura redakce@ben.cz

9 3 SÉRIOVÝ PORT MIKROKONTROLÉRU 8051 Interní sériový port mikrokontroléru 8051 umožòuje jednoduché a bezproblémové spojení mikrokontroléru s poèítaèem PC Protože je port navržen jako autonomní hardwarový UART, je procesor volný pro jiné úkoly Pro pøesnìjší pochopení programování je tøeba se podívat na registr speciálních funkcí sériového portu K inicializaci portu se musí naplnit vhodnými parametry registr SCON SCON (SFR 98h) 60 60 60 5(1 7% 5% 7 5L SM0, SM1: Bity sériového režimu (serial mode) urèují pracovní režim: 0 0 režim 0: 8bitový posuvný registr 0 1 režim 1: 8bitový UART, pøenosová rychlost urèená èasovaèem Timer 1 1 0 režim 2: 9bitový UART, 375 kbaudù pøi 12 MHz 1 1 režim 3: 9bitový UART, pøenosová rychlost urèená èasovaèem Timer 1 SM2: vícepoèítaèový režim REN: Receiver Enable, povolení pøijímaèe TB8: Transmitted bit 8, pro 9bitový režim RB8: Received bit 8, pro 9bitový režim TI: Transmitter Interrupt, 1 pøi úspìšném ukonèení pøenosu: RI: Receiver Interrupt, 1 po pøíjmu znaku Datový registr sériového portu je SBUF (SFR 099h) Ve skuteènosti se za SBUF skrývají dva registry, a to vysílací (výstupní) datový registr a pøijímací (vstupní) datový registr Vysílání se prostì zahájí zápisovým pøístupem na registr SBUF Naopak pøijatý byte mùže být ze SBUF pøeèten V 9bitovém režimu je vždy tøeba brát ohled na 9 bit (TB8 nebo TR8) v registru SMOD Ve vìtšinì pøípadù se používá pracovní režim 1, tedy 8bitový UART s pøenosovou rychlostí danou èasovaèem 1 Osmibitový datový tok je zahajován startbitem a uzavøen stopbitem Pøenosová rychlost je 1/16 (SMOD = 1) nebo 1/32 (SMOD = 0) frekvence pøebìhù èasovaèe 1 SMOD je bit s nejvyšší váhou v registru PCON (Power Control, SFR 87h), který je jinak urèen k øízení režimu power-down (snížení napájecího výkonu) PCON (SFR 87h) 602' ± ± ± *) *) 3','/ SMOD: 1 = nízká pøenosová rychlost, 0 = vysoká pøenosová rychlost GF1, GF2: Volnì použitelná návìští (flags) PD: Režim snížení pøíkonu (power-down) IDL: Režim dynamického zastavení (idle modus) A B KAINKA: MÌØENÍ, ØÍZENÍ A REGULACE POMOCÍ PC 199

Výroba hodinového signálu pro sériový port vyžaduje nejprve naprogramování èasovaèe 1 (timer 1) Oba èasovaèe obvodu 8051 mají každý dva 8bitové èítací registry, které je možno plnit a pøeèíst TL0 (SFR 8Ah): èasovaè 0, nižší byte TH0 (SFR 8Ch): èasovaè 0, vyšší byte TL1 (SFR 8Bh): èasovaè 1, nižší byte TH1 (SFR 8Dh): èasovaè 1, vyšší byte Vlastnosti èasovaèù jsou øízeny registry TCON (SFR 88h) a TMOD (SFR 89h) Pomocí TMOD se nastavuje pracovní režim TMOD (SFR 89h) *DWH &7 0 0 *DWH &7 0 0 ýtwdþ ýtwdþ Gate: Pøíslušný èítaè se uvolòuje vývodem INT0, popø INT1 C/T: 0: èasovaè, 1: èítaè M1 a M0: Pracovní režim 0 0 13bitový èasovaè/èítaè 0 1 16bitový èasovaè/èítaè 1 0 8bitový èasovaè/èítaè, automatické plnìní 1 1 Jen pro èítaè 0: dva oddìlení 8bitové èítaèe Èasovaè 1 má jako volnobìžný èítaè naèítat interní hodinové impulsy 8051 Nastavíme jej proto jako èasovaè v režimu 2 Pøi každém pøebìhu se èítaè znovu naplní pøedem nastavenou hodnotou Každý èítaè se startuje svým bitem TR v registru TCON TCON obsahuje i flagy (pøíznaky) pøebìhù obou èasovaèù a ètyøi øídicí bity k øízení pøerušení pomocí vývodù INT0 a INT1 TCON (SFR 88h) 7) 75 7) 75,(,7,(,7 TF1: pøíznak pøebìhu pro èasovaè 1 TR1: zapnutí èasovaèe 1 TF0: pøíznak pøebìhu pro èasovaè 0 TR0: zapnutí èasovaèe 0 IE1: pøerušení na INT1 se spouštìním hranou IT1: pøíznak pøerušení pro INT1 IE0: pøerušení na INT0 se spouštìním hranou IT0: pøíznak pøerušení pro INT0 200 B KAINKA: MÌØENÍ, ØÍZENÍ A REGULACE POMOCÍ PC A

Pro provoz èítaèe ve funkci generátoru pøenosové rychlosti je pouze tøeba nastavit spouštìcí bit TR1 Ten je bitovì adresovatelný a dosažitelný pod bitovou adresou 8 Eh Nejprve se však musí pøi zastaveném èítaèi nastavit potøebný dìlicí pomìr V režimu 2 obsahuje vyšší byte èítaèe TH1 hodnotu pro opakované plnìní, která se pak pøi každém pøebìhu znovu zavede do vlastního registru èítaèe TL1 Pro pøenosovou rychlost 9600 baudù je pøi nahozeném bitu SMOD potøebná hodinová frekvence 16 9,6 khz = 153,6 khz Protože èítaè naèítá interní hodinovou frekvenci pøíkazù rovnou 1/12 frekvence krystalu, je pøi frekvenci krystalu rovné 11,0592 MHz tøeba nastavit dìlení èíslem 6: 11059,2 khz / 12 / 6 / 16 = 9,6 khz Dìlicí faktor 6 dostaneme pøi hodnotì opakovaného plnìní èítaèe 256 6 = 250 = FAh, protože se èítá nahoru Listing COM51 ASM ukazuje kompletní program K inicializaci se nejprve pøíslušné registry naplní svými øídicími parametry Hlavní program pak používá již jen dva podprogramy SEND (vysílání) a EMPF (pøíjem) Pøijímací rutina EMPF se nejprve dotazuje na bit RI, dokud nepøijde znak Potom se naète pøijímací buffer SBUF a RI se shodí Vysílací rutina SEND se naopak dotazuje na bit TI, dokud se úplnì nezpracuje poslední vysílaný znak Pak se vysílaný byte zapíše do vysílacího bufferu SBUF a tím se nastartuje vysílaè UART ;Seriovy port mikrokontroleru 8051 ;11,059MHz, 9600 Baud #include 8051 H org 0000H (COM51 ASM) ANFANG mov SP,#60H ;nastavit stackpointer INIT clr TR1 ;zastavit Timer 1 mov TH1,#0FAH ;6 do prebehu: 9600 Baud mov TL1,#0FAH anl TMOD,#0FH ;Timer1: 8 bitù, auto-reload orl TMOD,#20H setb TR1 ;spustit Timer 1 mov SCON,#50H ;InitRS232 setb TI orl PCON,#80H ;SMOD=1 NEXT acall EMPF mov P1,A ;vystup portu anl P3,#0EFH ;strob-impuls na P3 4 orl P3,#10H Mov A,P1 ;cist stav portu acall SEND sjmp NEXT EMPF jnb RI,EMPF mov A,SBUF clr RI A B KAINKA: MÌØENÍ, ØÍZENÍ A REGULACE POMOCÍ PC 201

SEND jnb TI,SEND clr TI mov SBUF,A end Listing 9 4 Použití sériového portu CD:\Kniha\Kap09\TasmKap9\COM51 ASM Každý pøijatý byte se pøedá na port 1 Následuje krátký strobovací impuls na P3 4 (linka T0) Potom program pøeète stav portu 1 a vyšle pøeètený byte pøes sériový port zpìt Tak je realizován paralelnì-sériový pøevodník, který je možno použít buï jen pro výstupy portu, jen pro ètecí pøístupy na port nebo pro smíšený provoz Všechny vstupní linky musí být pøi vysílání nahozeny na vysokou úroveò a tím být ve stavu s vysokou impedancí Vysílaná hodnota 255 (FFh) napøíklad zpùsobí, že celý port bude k dispozici jako vstupní port a bude se provádìt ètení Funkci programu je možno otestovat pomocí programù pro použití se sériovými vysílaèi a pøijímaèi pøedstavených již v kapitole 4 9 4KONTROLÉROVÝ UART Mikrokontrolérový UART byl pøedstaven v praktické aplikaci již v kapitole 4 5 Zde uvedeme jen potøebný pracovní program Jako náhrada za UART 6042 musí mít kontrolér oddìlené vývody pro vstup a výstup Port 3 se èásteènì používá pro sériovou komunikaci a není volnì k dispozici Protože však není nutná žádná pamì RAM, zùstává celá datová a adresní sbìrnice volná Tím je opìt k dispozici port 0 a port 2 Port 0 se svými elektrickými parametry liší od ostatních portù, protože nemá žádné interní zdvihací odpory Pro použití jako výstup by bylo nutno zapojit externí zdvihací odpory Chybìjící zdvihací obvody mohou být pro digitální vstupy nevýhodou, protože není možno pøímo pøipojovat kontakty nebo spínaèe Z toho dùvodu zde jako vstupní port použijeme port 1 Port 2 je výstupní port mikrokontrolérového UART I zde je nutno pro nìkteré aplikace zapojovat zdvihací odpory, protože porty dodávají jen malý proud Výstupní budiè ULN2803 (viz kap 4 6) napø vyžaduje dodateèné odpory 3,3 kw proti Vcc, aby byl k dispozici dostateèný proud Mikrokontrolérový UART je možno pomocí propojek, zapojených na P3 2 až P3 4 proti zemi, nakonfigurovat celkem pro ètyøi pøenosové rychlosti Bez propojek se použije 1200 baudù, na P3 2 lze zvolit 9600 baudù, na P3 3 19200 a na P3 4 nejvyšší možnou pøenosovou rychlost 57600 baudù P3 5 slouží jako strobovací výstup se zápornými impulsy pro každý pøijatý byte ;UART-Controller 8051 ;11,059MHz, 9600 Baud #include 8051 H org 0000H (UART51 ASM) ANFANG mov SP,#60H ;nastavit stackpointer INIT clr TR1 ;zastavit Timer 1 B1200 mov TH1,#0D0H ;delic 48, 1200 baudu 202 B KAINKA: MÌØENÍ, ØÍZENÍ A REGULACE POMOCÍ PC A

mov TL1,#0D0H B9600 jb P3 2,B19200 ;Jumper 9600? mov TH1,#0FAH ;delic 6, 9600 baudu mov TL1,#0FAH B19200 jb P3 3,B57600 ;Jumper 19200? mov TH1,#0FDH ;delic 3, 19200 baudu mov TL1,#0FDH B57600 jb P3 4,INIT2 ;Jumper 57600? mov TH1,#0FFH ;delic 1, 57600 baudu mov TL1,#0FFH INIT2 anl TMOD,#0FH ;Timer1: 8-Bit-Auto-Reload orl TMOD,#20H setb TR1 ;spustit Timer mov SCON,#50H ;InitRS232 setb TI orl PCON,#80H ;SMOD=1 NEXT acall EMPF mov P2,A ;vystup portu Port 2 clr P3 5 ;strobovaci impuls na P3 5 setb P3 5 Mov A,P1 ;cist stav portu 1 acall SEND sjmp NEXT EMPF jnb RI,EMPF mov A,SBUF clr RI SEND jnb TI,SEND clr TI mov SBUF,A end Listng 9 5Mikrokontrolérový UART (Uart51 asm) CD:\Kniha\Kap09\TasmKap9\Uart51 asm 9 5 PARALELNÍ PØÍSTUPY NA SBÌRNICI K buzení periferních zaøízení na adresní a datové sbìrnici procesoru pøes sériový port jsme v kapitole 5 pøedstavili paralelní sbìrnici rozhraní (Interface Bus) Použitý øadiè sbìrnice jsme pokládali za speciální integrovaný obvod, aniž bychom se zabývali programem kontroléru Zde nyní pøedstavíme použitý software Program Pibus asm byl vyvinut pomocí vývojového systému ES52-Flash Všechny vývody sbìrnice jsou na 40pólové kontaktní lištì na kraji desky, takže k pohodlnému propojení s pøídavnými zaøízeními je možno použít plochý kabel Mikrokontrolér AT89S8252 A B KAINKA: MÌØENÍ, ØÍZENÍ A REGULACE POMOCÍ PC 203

je ale možno naprogramovat i ve vývojovém systému a pak jej umístit na speciální desce spolu s pøídavnými zaøízeními Vyvinutý program je mimo to vhodný i pro levnìjší mikrokontrolér 8751 Obvykle se kontrolér 8051 obrací na sbìrnici prostøednictvím pøíkazù MOVX Signály :5 a 5' se pøitom generují automaticky Data a spodních osm adres se multiplexovanì vydávají na datovou sbìrnici, kdežto horních osm adresních signálù se vytváøí staticky na portu 2 Mohli bychom použít adresní støadaè, napø 74HC573, který je k dispozici pro buzení RAM na vývojové desce Abychom mohli tuto souèástku ušetøit a realizovat opravdové jednoèipové øešení, vytváøí se všechny signály pomocí pøístupù na porty Tím máme také možnost vyrábìt i další pøeddekódované povolovací signály s požadovaným èasováním Všechny signály jsou pomalejší než signály generované pomocí MOVX, to však v dùsledku spojení pøes sériový port, které je stejnì pomalejší, nehraje žádnou roli Port 2 slouží jako adresní sbìrnice pro dolních sedm adresních linek A0 A6 Pøijatý adresní byte je celý pøiveden na port, takže se na P2 7 objeví i bit smìru dat Port 0 slouží jako datová sbìrnice Musí se ovšem brát v úvahu, že port nemá obvyklé zdvihací (pullup) odpory V závislosti na aplikaci mohou tedy být nutné externí zdvihací odpory Všechny øídicí signály se vytváøejí na portu 3 P3 7 a P3 6 slouží jako linky 5' a :5 Protože na portu 3 jsou i sériové datové linky, jsou k dispozici ještì ètyøi linky jako povolovací linky Y0 až Y3 Všechny signály jsou v klidu na úrovni High ;Seriovy port kontroleru 8051 ;11,059MHz, 9600 baudu ;Rozhrani s paralelni sbernici #include 8051 H org 0000H (PIbus ASM) ANFANG mov SP,#60H ;nastavit stackpointer (Anfang = zacatek) INIT clr TR1 ;zastavit Timer 1 mov TH1,#0FAH ;6 do prebehu: 9600 baudu mov TL1,#0FAH anl TMOD,#0FH ;Timer1: 8-Bit-Auto-Reload orl TMOD,#20H setb TR1 ;spustit Timer mov SCON,#50H ;InitRS232 setb TI orl PCON,#80H ;SMOD=1 NEXT acall EMPF ;prijem adresy mov r3,a ;ulozeni adresy jb ACC 7,Lesen ;bit cteni? (lesen = cteni) mov P2,A ;staticka adresa acall EMPF ;prijem dat mov P0,A ;vystup dat mov A,r3 ;adresa acall CS ;/CS na Port 1 clr P3 6 ;/WR = 0 nop 204 B KAINKA: MÌØENÍ, ØÍZENÍ A REGULACE POMOCÍ PC A

setb P3 6 ;/WR = 1 mov P3,#255 ;vsechny /CS = 1 sjmp NEXT Lesen mov DPL,A ;A0 A6 (lesen = cteni) mov DPH,A ;+ A8 A14 mov P2,A ;staticka adresa mov P0,#255 ;datova sber s vys impedanci mov A,r3 ;adresa acall CS ;/CS na Port 1 clr P3 7 ;/RD = 0 nop mov A,P0 ;cist data setb P3 7 ;/RD = 1 mov P3,#255 ;vsechny /CS = 1 acall SEND ;vyslat vysledek sjmp NEXT CS anl A,#127 ;oblast 0 127 mov P1,#255 ;vsechny linky /CS 1 anl A,#0F0h ;oblasti 16 adres jnz Y1 ;0 15 clr P3 2 ;Y0 = 0 Y1 subb A,#16 ;dalsi skupina jnz Y2 ;16 31 clr P3 3 ;Y1 = 0 Y2 subb A,#16 ;dalsi skupina jnz Y3 ;32 47 clr P3 4 ;Y2 = 0 Y3 subb A,#16 ;dalsi skupina jnz Y4 ;48 63 clr P3 5 ;Y3 = 0 Y4 EMPF jnb RI,EMPF (empfangen = prijimat) mov A,SBUF clr RI SEND jnb TI,SEND clr TI mov SBUF,A end Listing 9 6 Øídicí program pro rozhraní s paralelní sbìrnicí (Pibus asm) CD:\Kniha\Kap09\TasmKap9\PIbus ASM Hlavní program pracuje v nekoneèné smyèce, v níž se vždy nejprve pøijímá adresní byte V závislosti na bitu s nejvyšší váhou se provede buï operace zápisu nebo po skoku na Lesen (ètení) operace ètení Spoleènì využívaný podprogram CS zajiš uje pøeddekódování ètyø adresních oblastí a vytvoøení signálu Y Pøi zápisu se jako druhý A B KAINKA: MÌØENÍ, ØÍZENÍ A REGULACE POMOCÍ PC 205

byte pøijme datový byte a vydá se na P0 Teprve potom se vytvoøí signál CS a :5 Výpoèet adresních signálù po pøíjmu datového bytu vyžaduje doèasné uložení pøijatého adresního bytu Pøi ètení bytu ze sbìrnice se nejprve vygeneruje adresa, potom signál 5' a pøípadný signál Y Tím obvod pøídavného zaøízení pøivede na sbìrnici svá data, která se pøeètou ètecím pøístupem mikrokontroléru na port 0 Program pøi opakovaných zápisových pøístupech provádí prakticky prùbìžnì pøepínání mezi adresními a datovými byty V principu pøi tom mùže dojít k zámìnì napøíklad v dùsledku programového pøerušení na stranì PC Pøi novém startu by se datový byte interpoval jako adresa Tomu však lze snadno zabránit provedením prázdného (dummy) ètecího pøístupu pøi startu programu Protože pøi ètení je v každém smìru jen jeden byte, je po nìm kontrolér v definovaném stavu Listing 9 7 ukazuje jednoduchý pøíklad programu v jazyce Visual Basic Je možno popsat a naèítat všechny adresy v oblasti 0 až 127 Další pøíklady jsou uvedeny v kapitole 5 Private Sub Form_Load() OPENCOM "COM2:9600,N,8,1" SENDBYTE 128 Dummy = READBYTE SENDBYTE 128 Dummy = READBYTE End Sub Private Sub Form_Unload(Cancel As Integer) CLOSECOM End Sub Private Sub Read_Click() SENDBYTE Val(Text1 Text) + 128 'cteni adresy Text3 Text = Str$(READBYTE) End Sub Private Sub Write_Click() SENDBYTE Val(Text1 Text) SENDBYTE Val(Text2 Text) End Sub Listing 9 7 'Adresa 'Data Zápis a ètení pøes sbìrnici Obr 9 7 Pøístup na sbìrnici programem v jazyce Visual Basic 206 B KAINKA: MÌØENÍ, ØÍZENÍ A REGULACE POMOCÍ PC A