Az vevő- és vezérlőáramkör programja

Hasonló dokumentumok
Mérési utasítás Mikrokontroller programozás 2.sz. mérés

Mikrovezérlık története (nagyon) röviden

1. Bevezetés. 2. A mikroszámítógépek felépítése

Bevezetés az assembly nyelvbe

Mechatronika és mikroszámítógépek

Bevezetés az assembly nyelvbe

Mikrokonverterrel vezérelt digitális jelgenerátor fejlesztése

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

Számítógép architektúrák

Járműfedélzeti rendszerek I. 5. előadás Dr. Bécsi Tamás

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

MSP430 programozás Energia környezetben. Az I/O portok kezelése

MSP430 programozás Energia környezetben. Szervó motorok vezérlése

AC-MF1W. RFID kártyaolvasó és kódzár. Felhasználói leírás

DDS alapú szinusz jelgenerátor fejlesztése

Funkciók: Kétkörös, 3 vezetékes ütésérzékelő. (Gyenge ütés 9 figyelmeztető csipogás, erős behatás 30 másodperc szirénázás) Központizár vezérlő

Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció

A mikroszámítógép felépítése.

Dr. Oniga István DIGITÁLIS TECHNIKA 9

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

Mikrovezérlők Alkalmazástechnikája

Dr. Oniga István DIGITÁLIS TECHNIKA 9

1 done by: b+bme. Adja meg, hogy milyen ICW3 parancsot kell küldeni a MASTER illetve a SLAVE egységeknek!

Yottacontrol I/O modulok beállítási segédlet

AC-MFP-X7. RFID kártyaolvasó beépített ujjlenyomat olvasóval. Felhasználói leírás

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

A/D és D/A konverterek vezérlése számítógéppel

The modular mitmót system. DPY kijelző kártya C API

A számítógép alapfelépítése

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Programozott soros szinkron adatátvitel

Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás

Készítette: Oláh István mestertanár

MCS-51-es MIKROKONTROLLER ÖSSZEFOGLALÓ KÉSZÍTETTE: DR. KÓNYA LÁSZLÓ Tartalomjegyzék

1. ábra: Perifériára való írás idődiagramja

Bevezetés a számítástechnikába

Digitális technika (VIMIAA01) Laboratórium 10

micron s e c u r i t y p r o d u c t s EzeProx proximity kártyaolvasó és kódbillentyűzet

eco1 egymotoros vezérlés

Az interrupt Benesóczky Zoltán 2004

SZORGALMI FELADAT. 17. Oktober

loop() Referencia:

AC-MFS. RFID kártyaolvasó és kódzár. Felhasználói leírás

Karakteres LCD kijelző használata MiniRISC processzoron

Az MSP430 mikrovezérlők digitális I/O programozása

Architektúra, megszakítási rendszerek

_INVHU000_WriteReadParameter.cxf Frekvenciaváltók

Mérési utasítás Digitális rendszerek - Labor 3.sz. mérés

Nagy Gergely április 4.

Silabs STK3700, Simplicity Studio laborgyakorlat

PIC tanfolyam 2013 tavasz 2. előadás

7.hét: A sorrendi hálózatok elemei II.

CDC 2000 Vezérlő 7. Vezérlőelemek figyelése Asian Plastic

PWM elve, mikroszervó motor vezérlése MiniRISC processzoron

Vegyes témakörök. 11. Robotvezérlés WiFi kapcsolaton keresztül 2. rész. Hobbielektronika csoport 2018/2019. Debreceni Megtestesülés Plébánia

Digitális technika (VIMIAA01) Laboratórium 11

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

Multi-20 modul. Felhasználói dokumentáció 1.1. Készítette: Parrag László. Jóváhagyta: Rubin Informatikai Zrt.

Mikrovezérlők programozása

10. Digitális tároló áramkörök

LOGSYS LOGSYS ECP2 FPGA KÁRTYA FELHASZNÁLÓI ÚTMUTATÓ szeptember 18. Verzió

Mikrovezérlők Alkalmazástechnikája

ELEKTROTECHNIKA-ELEKTRONIKA ELEKTROTECHNIKA

Mérő- és vezérlőberendezés megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT. Nagyteljesítményű mikrovezérlők tantárgy [vimim342]

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.

Digitális technika VIMIAA01 5. hét

KIBŐVÍTETT RUGALMAS AUTOMATIZÁLÁS

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

Tartalom. Port átalakítók, AD/DA átalakítók. Port átalakítók, AD/DA átalakítók H.1. Port átalakítók, AD/DA átalakítók Áttekintés H.

Digitális technika házi feladat III. Megoldások

SYS700-A Digitális szabályozó és vezérlõ modul DDC rendszerelemek, DIALOG-III család. Terméktámogatás:

PERREKUP DxxTx - HDK10 Rekuperátor vezérlő Használati Utasítás

Megszakító vezérlés funkcióblokk

Digitális technika (VIMIAA01) Laboratórium 11

CIMR-V7AZ, CIMR-F7Z, CIMR-E7Z, CIMR-L7Z, CIMR-G7 V1000 sorozat CIMR-VZA PLC CPU-k CP1H-X, CP1H-XA, CP1H-Y CP1L-L, CP1L-M

Szekvenciális hálózatok és automaták

A feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg: Olvasható aláírás:...

SATEL SZW-02 Beltéri kódkapcsoló

Programozás és Digitális technika I. Pógár István eng.unideb.hu/pogari

Mikrorendszerek tervezése

KÜLÖNLEGES SZENZOROK. Típus F10-C20/C30/C50 F10-C25/C35/C55. NPN nyitott kollektoros kimenetek (2 db) max. 50 ma terhelhetõség

2) Tervezzen Stibitz kód szerint működő, aszinkron decimális előre számlálót! A megvalósításához

Ellenőrző mérés mintafeladatok Mérés laboratórium 1., 2011 őszi félév

Whead 3.0. Szélsebesség és széliránymérő illesztő távadó. Előzetes

Mikrovezérlők Alkalmazástechnikája

SYS700-PLM Power Line Monitor modul DDC rendszerelemek, DIALOG-III család

Külvilági kapcsolat. UPS séma ábra, kétsoros LCD DISPLAY, 8db nyomógomb. A B C D E F G H

6. hét: A sorrendi hálózatok elemei és tervezése

MSP430 programozás Energia környezetben. Analóg jelek mérése

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

Digitális technika (VIMIAA02) Laboratórium 5.5

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Mechatronika és mikroszámítógépek. 2016/2017 I. félév. Analóg-digitális átalakítás ADC, DAC

Jelfeldolgozás a közlekedésben. 2017/2018 II. félév. Analóg-digitális átalakítás ADC, DAC

Átírás:

Az vevő- és vezérlőáramkör programja Központizár-vezérlés - IR vevő- és vezérlőáramkör INCLUDE 89C2051.mc ******************************************************************************** VÁLTOZÓK ******************************************************************************** BYTECNT EQU 70h Bájtszámláló RXB EQU 71h Vett bájt STATUS EQU 72h Soros vétel státusza SZINKRON EQU 73h Szinkronkarakter állapota ERROR EQU 74h Hibás-vett-bájt számláló CNT1 EQU 75h Késleltető számláló CNT2 EQU 76h Késleltető számláló CNT3 EQU 77h Késleltető számláló DATA EQU 78h ADC adat CNT4 EQU 79h ADC időzítő STATE EQU 69h Rendszerállapot ******************************************************************************** PORTOK ******************************************************************************** RAMP BIT P1.0 Fűrészjel-bemenet (komparátorbemenet) VIN BIT P1.1 Analóg bemenet (komparátorbemenet) IEN BIT P1.2 Fűrészjel-engedélyezés kimenet DRV_B BIT P1.3 A teljesítményhíd "B" meghajtójele DRV_A BIT P1.4 A teljesítményhíd "A" meghajtójele D2 BIT P1.5 D0...D2 vezérlőjel-kimenetek D1 BIT P1.6 D0 BIT P1.7 RXD BIT P3.0 Soros bemenet SWL BIT P3.1 "Bal oldali zár nyitva" jel SWR BIT P3.2 "Jobb oldali zár nyitva" jel CLOSE BIT P3.3 "Ajtók becsukva" jel IRR BIT P3.4 IR-vevő engedélyezés (negált) LED BIT P3.5 LED-kimenet COMPAR BIT P3.6 A komparátor kimenete BEEPER BIT P3.7 Beeper kimenet ******************************************************************************** VEKTORTÁBLA ******************************************************************************** ORG 000h Reset 1

LJMP BEGIN ORG 23h LJMP RECBYTE Serial Interrupt ******************************************************************************** FŐPROGRAM ******************************************************************************** ORG 0100h BEGIN: LCALL INIT LOOP1: JNB SWR,LOOP1_1 JNB SWL,LOOP1_1 LJMP LOOP1_2 LOOP1_1: LCALL ZARAS LOOP1_2: MOV A,STATE CJNE A,#1,LOOP1 LJMP LOOP2 LOOP2: CLR LED MOV CNT1,#127 1 SETB LED LCALL ADC LCALL UCHECK MOV A,STATE CJNE A,#0,LOOP2 LJMP LOOP1 Rendszer-inicializálás Inaktív állapot (nyitva) Ha a jobb oldal záródik, akkor zárás Ha a bal oldal záródik, akkor zárás Az aktuális állapot beolvasása Ha STATE! = 1, akkor nyitva van Aktív állapot (zárva) 1,2 s várakozás LED bekapcsolása 0,6 s várakozás LED kikapcsolása ADC elindítása - telepfeszültség mérése Telepfeszültség ellenőrzése Az aktuális állapot beolvasása Ha STATE! = 0, akkor zárva van ******************************************************************************** RENDSZERINICIALIZÁLÁS ******************************************************************************** INIT: CLR IRR CLR IEN CLR DRV_A CLR DRV_B MOV SP,#07h MOV IE,#0h MOV TMOD,#20h MOV TH1,#0F2h Az infravevő bekapcsolása Fűrészjel letiltása DRV_A kimenet kikapcsolása DRV_B kimenet kikapcsolása Stack Pointer a kezdőállapotba Összes interrupt-bit letiltása Timer 1 [80C51 HW manual 85. old.] Reload érték [80C51 HW manual 97. old.] 2

ANL PCON,#00h SMOD1 = 0, SMOD0 = 0 MOV SCON,#40h Uart Mode 1, REN = 0 [80C51 HW manual 92. old.] SETB TR1 Timer 1 Run MOV BYTECNT,#10 Bájtszámláló alapállapot MOV ERROR,#10 Hibaszámláló alapállapot CLR LED LED bekapcsolása Hangjelzés Várakozás SETB LED LED kikapcsolása SETB ES Serial interrupt engedélyezése SETB EA Global interrupt engedélyezése SETB REN Soros vétel engedélyezése ******************************************************************************** SOROS VONALI INTERRUPT ******************************************************************************** RECBYTE: A soros bemeneten érkező bájtok kiértékelése CLR REN Soros vevő letiltása JB RI,REC1 Ha RI = 0, akkor nem Rec. Int. REC1: MOV RXB,SBUF Vett adat az RXB regiszterbe MOV A,#0 Szinkron karakter: 00h CJNE A,RXB,REC2 Ha RXB!=00h, akkor REC2 MOV SZINKRON,#1 Ha RXB=00h, akkor szinkron karakter érkezett REC2: MOV A,SZINKRON Nem szinkron karakter érkezett CJNE A,#0h,REC3 Ha már volt szinkron karakter, akkor REC3 REC3: CJNE A,#10,REC6 Ha BYTECNT! = 10, akkor REC6 MOV DPTR,#ZARKOD Ha BYTECNT = 10 MOVC A,@A+DPTR A zárás kódszó 10. bájtjának beolvasása A-ba CJNE A,RXB,REC4 Ha RXB! = ZARKOD(10), akkor REC4 MOV STATUS,#0h STATUS = 0 DEC BYTECNT BYTECNT = BYTECNT-1 MOV ERROR,#10 ERROR = 10 REC4: BYTECNT = 10 és RXB! = ZARKOD(10) MOV DPTR,#NYITKOD MOVC A,@A+DPTR A nyitás kódszó 10. bájtjának beolvasása A-ba CJNE A,RXB,REC5 Ha RXB! = NYITKOD(10), akkor REC5 MOV STATUS,#1h STATUS = 1 DEC BYTECNT BYTECNT = BYTECNT-1 MOV ERROR,#10 ERROR = 10 REC5: BYTECNT=10 és RXB!=ZARKOD(10) és RXB! = NYITKOD(10) DJNZ ERROR,RECEND Ha ERROR! = 0, akkor RECEND 3

Biztonsági várakozás a próbálgatások kiszűrésére MOV ERROR,#10 REC6: BYTECNT! = 10 MOV A,STATUS CJNE A,#0h,REC8 Ha STATUS! = 0, akkor REC8 MOV DPTR,#ZARKOD MOVC A,@A+DPTR CJNE A,RXB,REC7 A zárás kódszó köv. bájtjának beolvasása A-ba Ha RXB! = ZARKOD(BYTECNT), akkor REC7 DJNZ BYTECNT,RECEND BYTECNT = BYTECNT-1, ha BYTECNT! = 0, akkor RECEND Ha BYTECNT = 0, akkor ZÁRÁS LCALL ZARAS MOV BYTECNT,#10 REC7: MOV BYTECNT,#10 DJNZ ERROR,RECEND MOV ERROR,#10 REC8: BYTECNT! = 10 és STATUS! = 0 MOV DPTR,#NYITKOD MOVC A,@A+DPTR CJNE A,RXB,REC7 DJNZ BYTECNT,RECEND LCALL NYITAS MOV BYTECNT,#10 RECEND: CLR RI SETB REN I Ha ERROR! = 0, akkor RECEND Biztonsági várakozás a próbálgatások kiszűrésére A nyitás kódszó köv. bájtjának beolvasása A-ba Ha RXB! = NYITKOD(BYTECNT), akkor REC7 BYTECNT = BYTECNT-1, ha BYTECNT! = 0, akkor RECEND Ha BYTECNT = 0, akkor NYITÁS ******************************************************************************** ZÁRVEZÉRLÉS ******************************************************************************** ZARAS: JNB CLOSE,ZARAS1 CLR LED SETB DRV_A CLR DRV_A MOV STATE,#1 LJMP ZARAS2 Ha az ajtó nyitva van (CLOSE = 0), akkor hibajelzés LED bekapcsolása A teljesítményhíd vezérlése Hangjelzés Várakozás Hangjelzés A teljesítményhíd kikapcsolása Várakozás Hangjelzés Állapot = 1 (zárva) 4

ZARAS1: 5 ZARAS2: SETB LED NYITAS: JNB CLOSE,NYITAS1 SETB DRV_B CLR DRV_B MOV STATE,#0 LJMP NYITAS2 NYITAS1: 5 NYITAS2: Ha CLOSE = 0, akkor hiba (nem zárja be) LED kikapcsolása Ha az ajtó nyitva van (CLOSE = 0), akkor hibajelzés A teljesítményhíd vezérlése Hangjelzés Várakozás Hangjelzés A teljesítményhíd kikapcsolása Állapot = 0 (nyitva) Ha CLOSE = 0, akkor hiba (nem nyitja ki) Hangjelzés ******************************************************************************** BEEPER SZUBRUTINOK ******************************************************************************** BEEP: MOV CNT3,#0FFh BEEP0: CLR BEEPER LCALL SWait SETB BEEPER LCALL SWait DJNZ CNT3,BEEP0 BEEP1: BEEP5: Rövid hangjelzés BEEPER periódusszámláló Négyszögjel-generálás (T = 500µs) Hosszú hangjelzés 5 rövid hangjelzés ******************************************************************************** KÉSLELTETŐ SZUBRUTINOK ******************************************************************************** 5

Wait: 112206 ciklusnyi késleltetés (a meghívással együtt) (kb. 200ms @ 6,76438 MHz) T = (2+2+(2+CNT2*2+2)*CNT1+2)*Tc = max. 131076*Tc MOV CNT1,#255 [2] Wait1: MOV CNT2,#218 [2] Wait2: DJNZ CNT2,Wait2 [2] DJNZ CNT1,Wait1 [2] [2] Swait: 140 ciklusnyi késleltetés (kb. 250 µs @ 6,76438MHz) T = (2+2+CNT2*2+2)*Tc = max. 516*Tc MOV CNT2,#67 [2] SWait1: DJNZ CNT2,SWait1 [2] [2] ******************************************************************************** A/D-KONVERZIÓ ******************************************************************************** ADC: MOV CNT4,#0FFh Számláló (időzítő) kezdeti érték CLR IEN A fűrészjel letiltása CLR RAMP A C6 kondenzátor kisütése LCALL SWait Rövid várakozás SETB RAMP A RAMP bemenet engedélyezése SETB IEN A fűrészjel engedélyezése NOP [1] NOP [1] ADC1: Hurokidő: 6*Tc NOP [1] NOP [1] JB COMPAR,ADCEND [2] Ha komparált, akkor vége a konverziónak DJNZ CNT4,ADC1 [2] Ha nem, akkor számláló-dekrementálás ADCEND: CLR IEN MOV A,CNT4 CPL A MOV DATA,A A fűrészjel letiltása A számláló értéke A-ba Bitenkénti invertálás Az A értéke a DATA regiszterbe ******************************************************************************** TÁPFESZÜLTSÉG ELLENŐRZÉS ÉS POWER-DOWN VEZÉRLÉS ******************************************************************************** UCHECK: A tápfeszültség ellenőrzése MOV A,DATA A mért érték A-ba CLR C C flag törlése CJNE A,#193,UCHECK0 Ha A < 193, akkor C < -1 6

UCHECK0: JNC UCHECK1 Ha C = 0, akkor rendben (A >= 193) 1 Ha C = 1, akkor (A < 193) LCALL PWRDWN PWRDWN szubrutin UCHECK1: PWRDWN: SETB IRR ORL PCON,#00000010b NOP NOP NOP Power Down mód bekapcsolása Infravevő kikapcsolása Power Down - kikapcsolás ******************************************************************************** RENDSZERKÓDOK ******************************************************************************** ORG 500h ZARKOD: DB " ",10h,20h,30h,40h,50h,60h,70h,80h,90h,0A0h,00h NYITKOD: DB " ",0A0h,90h,80h,70h,60h,50h,40h,30h,20h,10h,00h A zárás kódja + szink. kar. A nyitás kódja + szink. kar. ORG 600h DB "2005.12.20. Hodány Ákos" END 7