PIC16F877 KÍSÉRLETI PANEL 6]HJ-iQRV ÒMSHVWL.pWWDQQ\HOY0V]DNL6]DNN|]pSLVNRODpV*LPQi]LXP
ChipCAD kft, Budapest
PIC16F877 KÍSÉRLETI PANEL 1. A PIC16F877 kísérleti panel rendeltetése A panel PIC16F87x mLNURYH]pUONKDWpNRQ\RNWDWypVIHMOHV]WHV]N|]H$IHMOHV]W SDQHOHQ PHJWDOiOKDWy iUDPN|UL HOHPHN OHKHWVpJHW EL]WRVtWDQDN D NLYH]HWpVVHO UHQGHONH] 3,&)[ PLNURYH]pUON V]LQWH YDODPHQQ\L SHULIpULiMiQDN W|EEHN között: - az általános célú I/O portok, - a megszakítás logika, -D]LG]tWPRGXORN - az A/D modul, - a USART modul (aszinkron üzemmód), - az MSSP modul (SPI és I2C üzemmód egyaránt), - a Capture/Compare/PWM modul PN|GWHWpVpUH KDUGYHU VDMiWRVViJDLN NLSUyEiOiViUD WRYiEEL NOV VHJpGeszközök igénybevétele nélkül. $IHMOHV]WSDQHODN|YHWNH]PyGRNEDQKDV]QiOKDWy - $ 3,&67$57 3/86 SURJUDPR]yYDO IHOSURJUDPR]RWW pV D NLYH]HWpV IRJODODWED KHO\H]HWW 3,&)[ PLNURYH]pUO PN|GpVH D SDQHO iUDPN|UHLYHO HOOHQUL]KHWWRYiEELNOVVHgédeszközök nélkül. - $ IHMOHV]W SDQHO IRQWRV WXODMGRQViJD D]RQEDQ KRJ\ D PLNURYH]pUO D VDMiW felhasználói környezetében programozható a panel ICD csatlakozójához kapcsolt MPLAB-ICD debugger alkalmazásával. Kihasználva az MPLAB-ICD programozó és debuggHU NpSHVVpJpW D] D )/$6+ PLNURYH]pUO J\RUV pV KDWpNRQ\ SURJUDP IHMOHV]WpVpW EL]WRVtWMiN 7HUPpV]HWHVHQ OHKHWVpJ YDQ DUUD LV KRJ\ D] 03/$%-ICD fejegységét csatlakoztassuk a próbapanel foglalatához: ebben az esetben még saját PLNURYH]pUOUHVLQFVV]NVpJ. - $PHQQ\LEHQ OHPRQGXQN D] ,&' Q\~MWRWWD KLEDNHUHVpV OHKHWVpJpUO D programjaink letöltésére a LDR-.(< LV KDV]QiOKDWy PLQW OHJHJ\V]HUEE SURJUDPOHW|OW (] XWyEEL HVHWEHQ D]RQEDQ V]NVpJHV KRJ\ PHJHO]OHJ HJ\ PRQLWRUSURJUDPRWtUMXQNDPLNURYH]pUOEe. A PIC16F877 kísérleti panel D N|YHWNH] iUDPN|U|NNHO WiPRJDWMD D 3,&)[ PLNURYH]pUONLOOHWYHD]RNSHULIpULiLQDNSURJUDPR]iViW - 4x4 nyomógombos tasztatúra, - LCD modul, - LED sor, - RS-232 interfész, - Soros EEPROM-ok (SPI, I2C és Microwire), - VaOyVLGHMyUDPRGXO,2C kommunikációval, - I2&EYtWFVDWODNR]y - Analóg bemenet, - Potenciométer, - PWM kimenet, - Analóg kimenet, - 32,768 kHz-es oszcillátor, - RTCC csatlakozó,
1
-3,&SRUWEYtWFVDWODNR]y - ICD csatlakozó, - LDR-KEY csatlakozó, - RESET nyomógomb.
2. A PIC16F877 kísérleti panel felépítése $IHMOHV]WSDQHONDSFVROiVLUDM]DD]- 3. ábrákon, míg beültetési rajza a 4. ábrán OiWKDWy$]iEUiNDODSMiQQ\RPRQN|YHWKHWDSDQHOIHOpStWpVH 2.1
A 4x4 nyomógombos tasztatúra (3. ábra)
A 16 nyomógomb 4x4-es mátrixba van szervezve, mely kivezetéseivel a PLNURYH]pUOSRUWMDLUDFVDWODNR]LN$ELOOHQW\]HWYt]V]LQWHVYH]HWpNHLWD]5%«5% kivezetések vezérlik úgy, hogy a megcímzett vonalra alacsony, míg a többire magas V]LQWNHUODIJJOHJHVYHzetékek állapotát pedig az RB4 és RB5, valamint az RA3 és RA5 kivezetések olvassák be. Az RA3 és RA5 kivezetések nyugalmi magas szintjét az R15 és R16 ellenállások biztosítják, míg a PORTB bemenetként programozott kivezetéseire szoftveresen kell a felhúzó ellenállásokat konfigurálni. A OHQ\RPRWWELOOHQW\WDEHROYDVRWWDODFVRQ\V]LQWMHO]L $]iUDPN|ULIHOpStWpVOHKHWYpWHV]LKRJ\D]5%LOOHWYH5%NLYHWpVHNUHFVDWODNR]y RV]ORSRNED WDUWR]y ELOOHQW\N OHNH]HOpVpW D 3257% V]LQWYiOWR]iV RNR]WD megszakítás útján is megoldhatjuk. $ ELOOHQW\]HW NH]HOpVpKH] D] 5% 5% SRUW NLYH]HWpVHNHW NLPHQHWNpQW D] 5% RB5, RA3 és RA5 kivezetéseket bemenetként kell programozni. 2.2
Az LCD modul (3. ábra)
$]/&'NLMHO]DGDWYH]HWpNHLDPLNURYH]pUO'SRUWMiUDFVDWODNR]QDNPtJDYH]pUO jeleket az E port kivezetései biztosítják az alábbiak szerint: /&'NLMHO]NLYH]HWpVHL DB0 - DB7 RS R/W E
PIC kivezetések RD0 - RD7 RE0 RE1 RE2
Az LCD modul kezeléséhez a felsorolt kivezetések mindegyikét kimenetként kell programozni. 2.3
A LED sor (3. ábra)
$/('DONRWWDNLMHO]VRUYH]pUOpVpWV]LQWpQD3257'NLYH]HWpVHLYpJ]LND]5 R26 áramkorlátozó ellenállásokon keresztül. A diódák összekötött katódjai a JP5 U|YLG]iUKR]FVDWODNR]QDNDPHO\D/('VRUPN|GpVpWHQJHGpO\H]L 2.4
RS-232 interfész (1. ábra)
$3,&)[PLNURYH]pUOD]86$57SRUWMiYDO5&7;5&5; DIHMOHV]WSDQHO &V MHO FVDWODNR]yMiKR] NDSFVROyGLN $ 77/ pV D] 56-232 szintek közötti V]LQWLOOHV]WpVD],&MHO0$;LQWHJUiOWiUDPN|UIHODGDWD Az USART port használatához az RC6 kivezetést kimenetként, míg az RC7 kivezetést bemenetként kell programozni. 2
2.5
Soros EEPROM-ok (2. ábra)
Az PIC16F877 kísérleti panelen három soros EEPROM található, melyek NLYH]HWpVHLNNHO D 3,&)[ PLNURYH]pUO V]LQNURQ VRURV Sortjára (RC3… RC5 kivezetések) csatlakoznak. Az EEPROM-ok programozásával kapcsolatos tudnivalókat az alábbi táblázat foglalja össze. Rajzjel Típusjel Protokoll CS jelet biztosító PIC kivezetés ËUiVWROYDViVWHQJHGpO\H]U|YLG]iU PIC kivezetések konfigurálása
2.6
IC3 IC4 IC5 93CXX 25CXX 24CXX Microwire SPI I2C RA2 RA1 – JP2 JP3 JP4 (írásnál) RC3, RC5 (és RA1 illetve RA2) RC3 és RC4 kimenet; RC4 bemenet bemenet
9DOyVLGHMyUDPRGXO,2C kommunikációval (2. ábra
$IHMOHV]WSDQHOHQWDOiOKDWyD],&UDM]MHO56&$WtSXV~yUDPRGXODPHO\D] 6&/ LOOHWYH 6'$ NLYH]HWpVHLYHO D 3,&)[ PLNURYH]pUO I2C portjára (RC3 és RC4
NLYH]HWpVHN FVDWODNR]LN$]yUDPRGXOVDMiWRV]FLOOiWRUUDOUHQGHONH]LNPHO\QHNLG]tWHOHPH D WRNUD NtYOUO FVDWODNR]WDWRWW kHz-es kvarckristály. Az áramkör programozható, periodikus megszakítást tud kérni: az INTRA illetve INTRB kivezetések – a JP7 illetve JP8 rövidzárakon keresztül –DPLNURYH]pUO5%pV5%SRUWOiEDLUDFVDWODNR]QDN
2.7
I2&EYtWFVDWODNR]y(2. ábra)
A feMOHV]WSDQHO&VFVDWODNR]yMDWRYiEEL I2&SURWRNROOV]HULQWPN|GNOVHJ\VpJHN
SpOGiXO VRURV ((3520 $' PRGXO FVDWODNR]WDWiViW WHV]L OHKHWYp $] 6&/ LOOHWYH 6'$ YRQDODNQ\XJDOPLPDJDVV]LQWMpWD]5pV5MHOHOOHQiOOiVRNiOOtWMiNEH$&VFVDWODkozó 1-HVSRQWMD9WiSIHV]OWVpJHWEL]WRVtWDNOViUDPN|UV]iPiUD
2.8
Analóg bemenet (1. ábra)
A Cs2 csatlakozó 3-DVSRQWMDpV9N|]|WWLNOVDQDOyJMHOV]LQWHWIRJDG 2.9
Potenciométer (1. ábra)
A P1 potenciométer 0 és +5V közötti szintet szolgáOWDW D PLNURYH]pUO DQDOyJ bemenetként programozott RA0 kivezetése számára. A potenciométer és az analóg EHPHQHWN|]|WWLYiODV]WiVWD-3MXPSHUWHV]LOHKHWYpD]DOiEELWiEOi]DWV]HULQW Rövidzár a JP6 jumper-en 1-2 pontok között 2-3 pontok között
Kiválasztott analóg jelforrás P1 potenciométer Cs2/3 analóg bemenet
2.10 PWM kimenet (1. ábra) $ 3,&)[ PLNURYH]pUO &&3 PRGXOMiQDN 3:0 NLPHQMHOH D] 5& NLYH]HWpV D] ,& LQWHJUiOW iUDPN|U % MHO PYHOHWL HUVtWMpQ NHUHV]WO MXW D &V FVDWODNR]y pontra. 2.11 Analóg kimenet (1. ábra) $ 3:0 PRGXO MHOpQHN NLW|OWpVL WpQ\H]MpYHO DUiQ\RV HJ\HQIHV]OWVpJ D] 5 & HOHPHN iOWDO DONRWRWW DOXOiWHUHV]W V]UQ pV D] ,& $ MHO PYHOHWL HUVtWMpQ keresztül kerül a Cs2 csatlakozó 4-es pontjára.
3
2.12 32,768 kHz-es oszcillátor (1. ábra) $]LG]tWHOHPDPLNURYH]pUO5&5&NLYH]HWpVHLUHFVDWODNR]y4NYDUFNULVWiO\ míg az áramkör a Timer1 modul saját oszcillátora. 2.11 RTCC csatlakozó (1. ábra) A Cs2 analóg és I/O csatlakozó RTCC pontja - PHO\UH D PLNURYH]pUO RA4 portkivezetése kapcsolódik -HJ\WRYiEELGLJLWiOLV,2EYtWSRQWRWEL]WRVtWOHKHWYp WpYH NOV iUDPN|U|N FVDWODNR]WDWiViW D IHMOHV]W SDQHOKH] $] 5$ EHPHQHW PLQW 705V]iPOiOyEHPHQHWKDV]QiODWDOHKHWYpWHV]LNOVHVHPpQ\HNV]iPOiOiViW 2.12 P,&SRUWEYtWFVDWODNR]y(1. ábra) $ &V LOOHWYH &V MHO HJ\VRURV FVDWODNR]y WRYiEEL NOV HJ\VpJHN LOOHV]WpVpW WHV]L OHKHWYp 2.13 ICD csatlakozó (1. ábra) $ &V MHO SRQWRV FVDWODNR]y D] 03/$%-ICD modul csatlakoztatására szolgál. Amennyiben az MPLAB-,&' PRGXOW FVDN D PLNURYH]pUO SURJUDPR]iViKR] KDV]QiOMXN GH D SURJUDP IXWiViQDN HOOHQU]pVpKH] LOOHWYH YH]pUOpVpKH] QHP D PLNURYH]pUO 0&/5 iUDPN|UpEHQ WDOiOKDWy -3 U|YLG]iU PHJV]DNtWiViYDO HQJHGpO\H]KHWDSURJUDPIXWiVD 2.14 LDR-KEY csatlakozó (1. ábra) $ IHMOHV]W SDQHO &V FVDWODNR]yMD EL]WRVtWMD D] /'5-.(< SURJUDP OHW|OW használatát. A programozó port adatbitje az RB7 kivezetésre csatlakozik. 2.15 RESET nyomógomb (1. ábra) $ . MHO Q\RPyJRPE VHJtWVpJpYHO D PLNURYH]pUO EiUPLNRU DODSiOODSRWED KHO\H]KHW 2.15 Tápfeszültség csatlakozó (3. ábra) $ IHMOHV]W SDQHO VDMiW 9-RV IHV]OWVpJ VWDELOL]iWRUUDO UHQGHONH]LN NOV tápfeszültség igénye: +9V… +15V. A bekapcsolást a D9 világító dióda jelzi. A WiSIHV]OWVpJSRODULWiVDWHWV]OHJHVOHKHW
4
iEUD$IHMOHV]WSDQHONDSFVROiVLUDM]D
iEUD$IHMOHV]WSDQHONDSFVROiVLUDM]D
5
iEUD$IHMOHV]WSDQHONDSFVROiVLUDM]D
6
iEUD$IHMOHV]WSDQHOEHOWHWpVLUDM]D
7
3. Mintaprogramok 1. I/O PORT KEZELÉS
LCD.ASM
/(' VRU NH]HOpV GHPR ELWHV V]RIWYHUHV LG]tWpV IXWyIpQ\W valósít meg. /&'NLMHO]QNpWVRURVV]|YHJHWMHOHQtWPHg.
KEYBOARD.ASM
%LOOHQW\]HWNH]HOpVGHPR
LED.ASM
2. ANALÓG JEL KEZELÉS POTM.ASM
Potenciométer olvasás TMR0 ütemezéssel.
POTM1.ASM
Potenciométer olvasás TMR0 ütemezéssel.
PWM.ASM
$QDOyJpV3:0NLPHQHWLMHOHOiOOtWiVDGHPRSURJUDP
PWM1.ASM
%LOOHQW\NyGGDO arányos analóg és PWM kimeneti jel HOiOOtWiVD Az analóg bemeneti jellel arányos fénysort jelez ki az LCD-n.
FESZMERO.ASM
3. SOROS EEPROM KEZELÉS 93LC56.ASM
Microwire EEPROM kezelés szoftveres rutinokkal.
SPI.ASM
Microwire EEPROM kezelés az SPI port programozásával.
24LC16B.ASM
I2C EEPROM kezelés szoftveres rutinokkal.
I2C.ASM
I2C EEPROM kezelés az I2C port programozásával.
25CXX.ASM
SPI EEPROM kezelés az SPI port programozásával.
4. RS-232 INTERFÉSZ KEZELÉS RS232_SW.ASM
RS-232 port szoftveres megvalósítása.
RS232_HW.ASM
USART port programozása aszinkron portként
5. ID=Ë7.(=(/e6 TIMER1.ASM
Timer1 modul programozás demo
FRQMETER.ASM
/('VRUNLMHO]pVIUHNYHQFLDIRUGXODWV]iPPpUSURJUDP
9DOyV LGHM QDSWiURV yUD PHJYDOyVtWiVD D 7LPHU PRGXO programozásával. 6. SLEEP ÜZEMMÓD PROGRAMOZÁSA LCD_ORA.ASM
WDT.ASM
Ébresztés WDT túlcsordulással.
WAKEUP.ASM
Ébresztés PORTB jelszint változás útján.
TMR1WU.ASM
Ébresztés Timer1 túlcsordulással
7. ADAT EEPROM ÉS A FLASH PROGRAM-MEMÓRIA KEZELÉS EEPROM.ASM
EEPROM adatmemória írása/olvasása
FLASH.ASM
FLASH program memória írása/olvasása
8