Bascom AVR - konfigurálható port MK

BASCOM AVR - konfigurálható port MK. Csatlakozás gombra.

Először is egy rövid és egyszerűsített pillantást a belső szerkezete a mikrokontroller. A port három részből áll.

DDR switch port mód - Beviteli mód (input) vagy OUTPUT (kimenet). Ellátja kapcsolási elemek a mikrokontroller.

PORT egy sor 8 kimenet kapcsol, amely ellenáll a terhelés 50 mA. Például, a LED szabályozható, és egyéb külső elemek egy kis terhelés.

PIN-kód egy sor 8 bemenet és kapukat, hogy lehet beállítani, mint 1 vagy 0. Amikor beállítása logikai „0” szintet, a lábát létrehozott MK feszültség 0-tól körülbelül 0,1 volt, ha a beállítás logikai szinten 1, a feszültség a lábát MK 2,5 V és VCC (tápfeszültség a mikrokontroller, ebben az esetben ez az 5B).

Ha ezt a sort.

Mivel PORTB.2 nem csatlakozik elektromosan belül az IC a bemeneti áramkörben, csak akkor működik a „kimeneti” módban.

Ha szeretné elolvasni az állam a kimeneti port, akkor kellene tenni PINB 0,2, hiszen rajta keresztül kiolvassa az adatokat az MC.

Annak ellenére, hogy a config PORTB 0,2 = INPUT olvashatatlan PORTB 0,2, a második terminál továbbra is kialakítva, hogy input és lehet olvasni a PIND 0,2.

Most tekintsük az összes fenti példája a feldolgozási állapot a gombot.

Szóval, van egy gomb, és a LED (kísérleti modul MRC 40 ez az egész áll rendelkezésre). Gomb csatlakozik a port láb 2 C (PORTC .2), és a LED a szár a port 0 (PORTB .0). Azt kell tennie, hogy lenne, ha rákattint a gomb világít a LED.

Read az állam a port (csatlakozás gombot)
„Robozone.su

$ Regfile = "m32def.dat" használt”mikrokontroller ATmega32 (MRC40 univerzális modul)
$ Crystal = 16000000 „frekvencia készlet kvarc 16 MHz-es

Config Portb.0 = kimenet „2 konfigurálható kimeneti port B a kimenetre - csatlakozni hozzá LED
Config Pinc.2 = Input konfigurálható kimeneti port 2 a belépő -, hogy kapcsolja neki gomb

Do „a program elején ciklus

Ha Pinc.2 = 0 Then „állapot - Ha a 2. szakasz a C port logikai alacsony szintre majd.
Portb.0 = 1 „beállítva a szár a port 0 logikai magas (LED világít)
Else „másként.
Portb.0 = 0 „beállítva a szár a port 0 logikai alacsony (LED off)
Vége If'konets feltételek
hurok
vég

A jövőben, ha írásban programok MC nagyon kényelmes használni az elnevezési csapat - ALIAS. A különböző változók, akkor lehet rendelni egyedi nevek.

Átírni a programot álparancs.

Read az állam a port (csatlakozás gombot)
„RoboZone.SU

$ Regfile = "m32def.dat" használt”mikrokontroller ATmega32 (MRC40 univerzális modul)
$ Crystal = 16000000 „frekvencia készlet kvarc 16 MHz-es

Config Portb.0 = kimenet „2 konfigurálható kimeneti port B a kimenetre - csatlakozni hozzá LED
Config Pinc.2 = Input konfigurálható kimeneti port 2 a belépő -, hogy kapcsolja neki gomb

Led Alias ​​Portb.0 „hozzárendelése név LED kimenet 0 Port B
Gomb Alias ​​Pinc.2 „hozzárendelése neve gomb Pin 2 C port

Do „a program elején ciklus

Ha gomb = 0 Then „állapot - Ha a 2. szakasz a C port logikai alacsony szintre majd.
Led = 1 „beállítva a szár a port 0 logikai magas (LED világít)
Else „másként.
Led = 0 „beállítva a szár a port 0 logikai alacsony (LED off)
End If „end feltételek

Mint látható, a látótávolság a programkód nőtt, ez segít jelentősen írásakor programok sok különböző változók.

Oh! ... megfeledkeztünk arról DDR ...

Itt az ideje, hogy ezt a fenevad =)

DDR, megvan a képesség, hogy testre a teljes kikötő egy sor kódot. Ahogy fentebb írtam, DDR funkciója a switch port üzemmódok. Belül a mikrokontroller port csapok vannak számozva a sorrendben - 76543210. Így tudjuk telepíteni egy bináris szám PORT / PIN állapotát a port.

Nézzük az alábbi példát ...