Microcontroller Bangla Part1
Microcontroller Bangla Part1
gvB vKUvjvi
gvB vKUvjvi GK aibi cMvgej BwUMUW mvwKU (IC). 8-wcb _K i Ki mvavibZ 128-wcb ch nq _vK| gvB vKUvjviK wmj wPc KwDUvi ejv hZ cvi| KwDUvii mv_ Zzjbv Kij `Lv hvq GKUv KwDUvi hv hv AvQ Zvi cvq meB gvB vKUvjvi AvQ|
ck AvmZ cvi Kb Ges Kv_vq gvB vKUvjvi eenvi Kie? GKUv QvU D`vnib `qv hvK| Avgiv PvwQ Avgv`i kvevi Nii jvBUjv mvi mgq GKvB Ab ne Avevi ivZ 11.00 NwUKvq GKvB Ad ne| GB KvRwU Kivi Rb hw` Avgiv GKUv KwDUvi mvivw`b Pvjy Ki ivwL Zvnj h cwigvb we`yr LiP ne Zv AbK ewk| GB QvU KvRUv Avgiv Lye mnR GKUv gvB vKUvjvi eenvi Ki KiZ cvwi| Avgv`i nvZi KvQ AbK wWfvBm AvQ hv Avgiv mPivPi eenvi Kwi hgb KvjKzjUi, wfwWI Mgm, wWwRUvj Nwo, wigvU KUvjvi BZvw`i wfZi gvB vKUvjvi AvQ| gvB vKUvjvi cZKviK`i ga BbUj, gvB vwPc, gUvivjv, GUgj, wdwj DjLhvM| Ze Avgiv memgq GUgj Gi gvB vKUvjvi wbq AvjvPbv Kie| GUgj Gi KUvjvii bvgi iZ AT _vK| GUgj wZb aibi gvB vKUvjvi cZ Ki-gMv, wUwb I KvwmK| Avgv`i D`vnibjv ATMega8, ATmega16, ATMega32, ATtiny2313, ATtiny15, ATtiny26 BZvw` w`q `qv ne| bvgi kl h MvwbwZK msLv AvQ Zv mvavibZ H
cv bs- 1
gvB vKUvjvii FLASH ggvwi wb`k Ki| G mKj welq wbq cieZxZ wek` AvjvPbv ne| Afixb eK WvqvMvg: wP ATMega8 Gi eK WvqvMvg `Lbv nqQ| `Lv hvQ h ATMega8 Z wZbwU BbcyU AvDUcyU cvU AvQ| G`i ga Port A, Port D Z 8wU Ki wcb AvQ Ges Port C Z 7wU wcb AvQ| Port C ADC Gi BbcyU Uviwgbvj wnme eeZ nq| mUvj cmwms BDwbU RAM ADC I/O wnme h cmmi _vK Zvi MwZ mvavibZ gMvnvUR Port C Timer i nq _vK| Avgiv hviv KwDUvi eenvi Kwi CPU Zviv Rvwb KwDUvii cmmii MwZ Kgb nq| Serial Avgiv cmmi Kbvi mgq Pv Kwi Ggb GKUv ROM Port cmmi wKbZ hvi MwZ ewk| KwDUvii cmmii I/O Port A I/O Port D MwZ mvavibZ wMMvnvUR ii nq _vK hgb 2.39 wMMvnvUR, 3.00 wMMvnvUR BZvw`| G MwZ Avmj wP 1.1: Afixb eK WvqvMvg cmmi h KK cvj&mi mv_ mv_ KvR Ki mB KK Gi wdKzqw| KK nj Iqvb Ges wRivi wmKyq (Series of Pulse of one and zero)| gvB vKUvjvi KK `qvi Rb `yUv wcb (XTAL1 and XTAL2) _vK| evRvi wefb wdKzqwi w vj (Clock generating device with 2 pins) cvIqv hvq hv GB `yB wcbi mv_ jvwMq w`jB nq| Avevi GUgj Gi KUvjvijvZ Afixbfve KK Zwi Kivi (Internal Cristal) eev AvQ|
ggvwi: Avgiv wewfb aibi ggvwii mv_ cwiwPZ| gvB vKUvjvi Pvi aibi ggvwi
_vK-FLASH Memory, SRAM (Static Random Access Memory), EEPROM (Electrically Erasable Programable Read Only Memory), Resister Memory| gvB vKUvjvi G h cMvg jLv ne Zv FLASH Memory Z mBf ne| FLASH Memory Kej KUvjviK KwUvii mv_ jvwMq BUvidm (Read or Write) Kiv hve| Avgiv KwUvi h cMvg wjLe Zv KUvjvi cvVvbvi Rb gvB vKUvjviK KwDUvii mv_ GKUv wekl nvWIqvii gvag jvMvZ ne| GB nvWIqviK ej evbvi (Burner Circuit)| G welq cieZxZ wek` AvjvPbv Kiv ne| cMvg jLvi mgq cMvg h PjK (Variables) eenvi Kiv ne Zv SRAM G mBf (Save) ne| hmKj gvB vKUvjvi SRAM bB (hgb ATtiny15) mmKj KUvjvii cMvg PjK (Variables) eenvi Kiv hve bv| cvIqvi mvcvB e Ki w`j SRAM G Kvb ggwi mBf _vKbv| GBLvb GKUv mgmv nj aiv hvK gvB vKUvjvi w`q GKUv wmg wWRvBb Kiv nj hvi KvR nj GKUv cWv jvBbi Dci w`q KZjv cWv hvQ Zv Mbbv Kiv| wKQy`yi Mbbv Kivi ci cvIqvi mvcvB e nq Mj| cWv Mbbv Ki Kvb bv Kvb PjKB Zv ivLZ ne| G bZzb Ki cvIqvi mvcvB w`j Avevi GK _K Mbbv i ne Kbbv D PjKi gvb SRAM G mBf wQj Avi cvIqvi mvcvB e nq Mj SRAM Gi ggvwi gyQ hvq| GmKj EEPROM eenvi Kiv nq| Kvib cvIqvi mvcvB e njI EEPROM Gi Kvb cwieZb nq bv| Resister mvavibZ 8-weU KwcivBU@cKkjx gvt RyjwdKvi Avjx Ryqj cv bs- 2
(8-Bit / 1 Byte) Gi nq _vK Ze wKQz wKQz Resister AvQ 16-weU (16-bit / 2 Byte)|
gvB vKUvjvi ADC, Timer, Interrupts, I/O Ports BZvw`i Rb Avjv`v Avjv`v Resister AvQ| gvB vKUvjvii WvUvmxU G wewfb iwRvi mK wek` Z_ `qv _vK| ZeyI wKQz iZc~Y Resister mK GLvb AvjvPbv Kiv ne| cZKUv I/O Port G wZbwU Ki Resister AvQ| BbcyU WvUv iwRvi (Input Data Resister-PINA), AvDUcyU WvUv iwRvi (Output Data Resister-PORTA), WvUv wWiK&kb iwRvi (Data Direction Resister-DDRA) [Examples are give for Port A only]|
Kiv| WvUvi cevni w`K (Direction of data flow) wb`k Kiv| D`vnibmic DDRA Gi Kvb weU Iqvb (Digital one) nj Zvi Awab wcb AvDUcyU wnme KvR Kie A_vr DDRA Gi H weUi Awab PORTA Resister _K WvUv D wcbi gvag evBi Avme| Avevi DDRA Gi Kvb weU KwcivBU@cKkjx gvt RyjwdKvi Avjx Ryqj cv bs- 3
wRiv (Digital zero) nj H weUi Awab wcb BbcyU wnme KvR Kie A_vr wcb BbcyU w`j Zv DDRA H weUi Awab PINA Resister G mBf ne| ATmega32: ATmega32 GUgj Kvvbxi Zwi Pwjk wcbi gvB vKUvjvi| Gi PviwU BbcyU AvDUcyU cvU, 10-weU (0-1023 jfjm&) Gi 8wU ADC (Analog to Digital Converter), 16-weU Gi 1 wU Ges 8-weUi 2 wU UvBgvi BZvw` AvQ| Gjv mK avc avc AvjvPbv Kiv ne|
wP 1.3: ATmega32 Gi wcb WvqvMvg Vcc: cvIqvi mvcvB cwRwUf| GB wcb wWwm 5 fv (5V-DC) Gi cwRwUf cv jvMvZ ne| Gnd: cvIqvi mvcvB bMwUf| GB wcb wWwm 5 fv (5V-DC) Gi bMwUf cv jvMvZ ne| Reset: GUvK ej wimU evi wcb| Dcii wP 9 b^i wcb Reset jLvi Dci GKUv evi wP AvQ GUv cKvk Ki wcbwU GKwUf jv (Active low) A_vr GB wcb wWwRUvj Iqvb w`j Zv AKRv (Inactive) _vKe Ges hLbB GLvb wWwRUvj wRiv `Iqv ne ZLbB Zv mPj (Inactive) ne| Avi G wcb mPj (Active) nj cMvg bZzb Ki jvW ne A_vZ c_g _K KvR i Kie dj cMvg eeZ mKj PjKi (Variable) gvb k~b nq hve| GRb Avgiv GB wcbK mvavibZ wcbi mv_ mshvM w`q ivLev| Ze mshvM `qvi GKUv eo gvbi iva (Resistance such as 1 Kilo ohms or 10 Kilo ohms) eenvi Kiv hZ cvi Kvib hnZz GwU GKUv BbcyU wcb ZvB hb ewk KviU hZ bv cvi| KwcivBU@cKkjx gvt RyjwdKvi Avjx Ryqj cv bs- 4
Aavq-2
Ze Avgiv GB eBq cvMvgi D`vib jv BascomAVR G `e| cv_wgK fve gvB vKUvjvi cMvwgs Gi Rb ewmK jvyqR B kq ej gb nq Avgvi| Avgiv hviv WUc cMvwgs (Desktop Programming) KiwQ Zv`i nqZ nWvi dvBj (Header File) kUvi mv_ cwiPq AvQ| cMvg h dvskbjv eenvi Kiv nq Zv h nWvi dvBj (Header File) _vK Zvi bvg cMvgi iZ wjL w`Z nq| G Avgiv GKUv bZzb k eje-iwRw dvBj (Registry File)| GKUv D`vnibi gvag welqUv evSvbv hZ cvi| aiv hvK Avgiv GKUv cMvg wjLwQ hv ATmega8 Gi Rb| GLb cMvg wjLZ wMq BbcyU-AvDUcyU cvU wnme Port B eenvi KiwQ| wK gRvi evcvi nj ATmega8 G Port B bvB| GLb KvBjvi hw` cMvg KvBj Ki `q Ges Avgiv hw` Zv KUvjvi XzwKq `B Zvnj wK KvR Kivi K_v? K_v bv| G KvBjviK AekB GmKj welq Z_ `qv _vKZ ne Ges cMvg jLvi mgq BDRviK AekB wjL w`Z ne m Kvb KwcivBU@cKkjx gvt RyjwdKvi Avjx Ryqj cv bs- 5
KUvjvi Gi Rb cMvg wjLQ| KvBjvii mv_ ZvB cZKUv KUvjvii Rb GKKUv Ki iwRw dvBj `qv _vK hvZ H KUvjvi mK cqvRbxq mKj Z_ `qv _vK| Zvnj Avgiv GUv eySZ ciwQ h cMvgi iZB iwRw dvBji bvg wjL w`Z ne| Aavq-1 G Afixb eK WvqvMvg-G AvjvPbv Kiv nqQ KK wdKzqwi K_v| iwRw dvBji ciB wjL w`Z ne KUvjvi KZ wdKzqwZ KvR Kie|
wP 2.1: BascomAVR Gi DBbWv (Window) Dcii wP (wP 2.1) h cMvgUv `Lv hvQ ZvZ c_g jvBb iwRw dvBji bvg jLv AvQ| $regfile wjL BKzqvj wP (=) w`jB GKUv wj Pj Avme mLvb _K iwRw dvBji bvg wmj Ki w`jI ne A_ev Wvej BbfvUW ( ) Gi ga wjL w`jI ne| wP ATmega32 Gi iwRw dvBj wmj Kiv AvQ| wZxq jvBb KK wdKzqwi gvb `qv AvQ| jLvi wbqg $crystal=1000000 DjL, wdKzqwi gvb AekB nvUR (Hz) G wjLZ ne| Avgiv BwZgaB RbwQ cZKUv cvUK BbcyU ev AvDUcyU Dfq wnmeB eenvi Kiv hvq| Ze cMvg mUv ej w`Z ne h GLb cvUUv BbcyU ev GLb cvUUv AvDUcyU| wP 1.2 G `Lvbv nqQ wKfve GKUv cvU BbcyU ev AvDUcyU wnme eenvi Kiv hvq| WvUv wWiK&kb iwRvii (DDRx) h mKj weU wWwRUvj Iqvb _vKe mmKj wcb AvDUcyU wnme eeZ ne| hw` Kvb cvU Gi mejv wcb AvDUcyU wnme eenvi KiZ nq Ze WvUv wWiK&kb iwRvii mKj weU wWwRUvj Iqvb nZ ne| hnZ WvUv wWiK&kb iwRvi 8-weU Gi ZvB mejv weU Iqvb nj Wwmgvj Zv nq 255| Zvnj hw` Avgiv Port A K AvDUcyU wnme eenvi KiZ PvB Zvnj DDRA G 255 cvVvZ ne| GB KvRUv `yBfve Kiv hZ cvi| KwcivBU@cKkjx gvt RyjwdKvi Avjx Ryqj cv bs- 6
GK mivmwi ej w`Z cvwi DDRA=255 A_ev wjL w`Z cvwi Config PORTA=Output| wP 2.1 G GB KvRwU Kiv nqQ| ewmK jvyqRi wKQz iZc~Y welq wbq wbP AvjvPbv Kiv nj| PjKi bvgKib (Declaration of Variable): Dim PjKi bvg as PjKi aib D`vnib: Dim Value as byte GKvwaK PjK GKmv_ wWKvi Kivi Kgv (,) w`q wjLZ ne| D`vnib: Dim Value1 as byte, Value2 as Word, A as Byte PjK wewfb aibi nZ cvi hgb Bit, Byte, Word, Integer, Single BZvw`| Bit aibi PjKi gvb Kej 0 A_ev 1 nZ cvie| Byte aibi PjKi gvb Kej 0 _K 255 ch nZ cvie| Word aibi PjKi gvb Kej 0 _K (2^16)-1 ch nZ cvie| Integer aibi PjK 32-weU Ze abvZK ev FbvZK DfqB nZ cvie| Single aibi PjKi gvb fMvsk nZ cvie| hLb h aibi PjKi cqvRb ne Avgiv m aibi PjK eenvi Kie| hw` Byte wnme Kvb PjK wWKvi Kiv nq Ges Zvi gvb hw` cMvgi ga Kv_vI 255 Gi Pq ewk nq Ze KvBjvi cMvg fzj aie| D`vnib:
Dim Sum as Byte Sum=400 IF Gi eenvi (Use of IF): If kZ Then
UgU
EndIf
D`vnib:
: a b Gi Pq QvU : a b Gi Pq eo : a Ges b mgvb : a b Gi Pq QvU A_ev mgvb : a b Gi Pq eo A_ev mgvb : a Ges b Amgvb
If Value1>25 Then Value2=Value2+10 EndIf If Gi wfZi hw` GKUvB UgU _vK Ze GK GKjvBb jLv hvq| G kl EndIf jLvi Kvb cqvRb bB|
D`vnibmic: If A>9 Then A=0 For jyc Gi eenvi (Use of For Loop): For PjK=cv_wgK gvb to kl gvb step ew gvb UgU
Next
D`vnib:
For Value=2 to 10 step 2 Sum=Sum+Value Next
cv bs- 7
D`vnib:
Select Case Value1 Case=1: Value2=5 Case 2 to 5: Value2=8 Case is >=6: Value2=15 Case Else: Value2=0 End Select
Ze Dci AvjvwPZ UgUjv BascomAVR Gi Help Menu Z D`vnib mn `qv AvQ| cMvg wjL mBf Ki BascomAVR Gi Program Menu _K Compile G wKK Kij cMvgwU Compile ne Ges hLvb mBf Kiv nqQ mLvb FileName.HEX bvg GKwU dvBj Zwi ne| GUvB ne H cMvgi BKzBfvjU gwkb KvW| we: `: BascomAVR Case sensitive bv A_vr QvUnvZi Ai ev eo nvZi Ai hKvbfve wjLjB ne| D`vnibmic Config, config, Ges CONFIG GKB A_ enb Ki|
cv bs- 8
Aavq-3
Ze Avgiv STK200/STK300 Programmer wbq AvjvPbv Kie| GB evbviwU Lye mnR Lye Kg LiP wbRivB Zwi Kiv hvq| GwU GKwU cvivjvj cvU (Parallel Port/Printer Port) evbvi| mec_g KwDUvii cvivjvj cvU mK wKQy K_v ejv hvK| cvki wP (wP 3.1) KwDUvii cvivjvj cvU `Lvbv nqQ| GB cvU mvavibZ wcUvi jvMvbvi eenvi Kiv nq| Gi 25 wU wcb AvQ| GKcvk AvQ 13 wU Ab cvk 12 wU| h cvk 13 wU wcb AvQ mcvki GK`g wbPi wcbK 1b^i wcb Ges Dcii wcbK 13-b^i wcb aiv nq| h cvk 12 wU wcb AvQ mcvki GK`g wbPi wcbK 14-b^i wcb Ges Dcii wcbK 25-b^i wcb aiv nq| 18-b^i _K 25-b^i wcb ch kU Kiv _vK| G`iK MvD wcb ejv nq| evRvi cvivjvj cvU Gi Kvbi wKbZ cvIqv hvq| cvivjvj cvU _K Kvb KvbK&kb ei Kivi Rb GUv eenvi wP 3.1: cvivjvj cvU wP 3.2: DB25-Male Kiv nq| wP 3.2 G GKwU cvivjvj cvU Kvbi `Lvbv nqQ| GK ejv nq DB25Male|
cv bs- 9
wP 3.3: STK200/STK300 Programmer Gi mvwKU WvqvMvg GUgj Gi mKj gvB vKUvjvi MOSI, MISO I SCK bvg wZbwU wcb _vK| hgb ATmega32 Gi wcbjv h_v g 6,7 Ges 8 b^i wcb| evbvi Bb&j Gi avc: gvB vKUvjvi evb Kivi cye wKQy KvR Ki wbZ nq| wbP Zv AvjvPbv Kiv nj| avc-1: mec_g gvB vKUvjviK Dcii wP (wP 3.3) Abyhvqx KwDUvii cvivjvj cvUi mv_ mshy KiZ ne| avc-2: KwDUvii cvivjvj cvU AvKwUf Ki wbZ ne| GRb UserPort.sys bvgi GKUv dvBj c_g KwDUvii C:\WINDOWS\system32\drivers wWiwiZ ivLZ ne| Zvi ci UserPort.exe bvgi GwcKkb dvBjwU Icb KiZ ne| Zvi ci Enter Grant Interval Gi vb 0x378-0x37F wjL (wP 3.4-K) Add G wKK Kij wbPi wj Zv hvM ne| Zvi ci wbPi wj _K 378-37F wmj ((wP 3.4-L)) Ki Start G wKK KiZ ne| Zvnj KwUvii cvivjvj cvU AvKwUf ne| Dci DwjwLZ dvBj `ywU GB eBqi jLK cKkjx gvt RyjwdKvi Avjx Ryqji IqemvBU www.mzajewel.webs.com/micbook.html _K WvDbjvW Kiv hve|
wP 3.4-K: dv DBbWv
wP 3.4-L: mK DBbWv
cv bs- 10
avc-3: BascomAVR Icb Ki Option Menu _K Programmer G hZ ne| mLvb _K Programmer wnme STK200/STK300 Programmer K wmj (wP 3.5) Ki Ok Z wKK KiZ ne|
wP 3.5: BascomAVR Gi Option Menu gvB vKUvjvi evwbs: gvB vKUvjvi evb Kivi Rb BascomAVR Gi Program Menu _K Send to Chip>Program G wKK Kij wP 3.6 Gi DBbWvUv Avme| Ze Gi AvM AekB cMvg KvBj Ki wbZ ne| cyei avcjv mwVKfve mb Kij cvki DBbWvZ Chip Gi vb h KUvjvi jvMvbv AvQ Zvi bvg `Lve| Gevi gvB vKUvjvi Gi cMvg ggvwi gyQ djvi Rb Chip Menu _K Erase G wKK KiZ ne| bZzb cMvg evb Kivi Rb Chip Menu _K Write Buffer into Chip G wKK KiZ ne| evb mwVKfve mb nj wbP Varify Ok `Lve| wP 3.6: BascomAVR Gi DBbWv
cv bs- 11
Aavq-4
BbcyU-AvDUcyU
myBP&: mvavibZ Kvb eZbx mc~Y Kivi Rb myBP eenvi Kiv nq| cvki eZbxZ K GKwU myBP| cvki eZbx cheY Kij `Lv hvq hLb myBP e _vK ZLb eZbxZ Kvb Zwor cevwnZ nebv dj AvDUcyU ne 0 fv Kvib AvDUcyU jvBb GKwU iwRii gvag MvDi mv_ jvMvbv Ges iwRii wfZi w`q Kvb Zwor cevwnZ nQ bv| Abw`K hLb myBP Ab Kiv ne ZLb eZbxZ Zwor cevn i ne Ges AvDUcyU cvIqv hve 5 fv Kvib GL AvDUcyU jvBb mivmwi 5 fv mvcvBqi mv_ mshy| wWwRUvj BwbK&i fvlvq Dcii NUbv Gfve evLv Kiv hvq, hLb myBP Ab ZLb AvDUcyU Iqvb (5 fv) Ges hLb myBP Ad ZLb AvDcUzU wRiv (0 fv)| AZGe, gvB vKUvjvii Kvb wcb G Iqvb/wRiv BbcyU `qvi Rb cvki eZbxwU eenvi Kiv hZ cvi|
5 fv
AvDUcyU
iwRi
(wP: 4.1) BbcyU AvDUcyU cvU: KwDUvi hgb wewfb aibi BbcyU-AvDUcyU cvU (BDGmwe cvU, cvivjvj cvU-wcUvi cvU, wmwiqvj cvU) _vK miKg gvB vKUvjviI wKQz BbcyU AvDUcyU cvU _vK| GB cvUjvi bvg mvavibZ PORTA, PORTB, PORTC (Atmel) BZvw` nq _vK| GK GKUv cvU mvavibZ 8 Uv Ki wcb _vK (Kvb Kvb Kg _vK)| GB cvUjvK BbcyU A_ev AvDUcyU Dfq wnmeB eenvi Kiv hvq Ze m eenvi Kivi cye cMvg AekB wWdvBb Ki w`Z ne| GKB cvUi wKQzmsLK wcb BbcyU evwK msLK wcb AvDUcyU GfveI eenvi Kiv hvq| hw` KUvjvii Kvb wcbK BbcyU wnme wWdvBb Kiv _vK Zvnj Zvi mv_ Dci ewbZ (wP: 1.1) eZbxi AvDUcyU wcb mshy Ki w`j myBPi gvag Iqvb/wRiv BbcyU `Iqv hve| ch -4.1: 8 (AvU) wU LED (Light Emitting Diode) GKmv_ Rje, 5 mK ci Avevi GKmv_ wbf hve| Avevi 5 mK ci GKmv_ Rje| Gfve PjZ _vKe| GB KvRwU GKUv gvB vKUvjvi w`q Lye mnRB Kiv me| Avgiv hw` KUvjvii Kvb GKUv cvUi AvUUv wcb AvUUv LED (Light Emitting Diode-G mK Aavq 5 G wevwiZ AvjvPbv Kiv AvQ) jvwMq w`q H cvU Gi cZKUv wcb c_g wWwRUvj Iqvb cvVvB Ges 5 mK ci Avevi cZKUv wcb wWwRUvj wRiv cvwVq 5 mK `wi Kwi Ges GB KvRwU hw` Kvb GKUv jyc (For Loop or Do Loop) Gi ga XzwKq `B ZvnjB Avgv`i KvRwU nq hve| KwcivBU@cKkjx gvt RyjwdKvi Avjx Ryqj cv bs- 12
cMvg 4.1:
$regfile=m32def.dat $crystal=1000000 Config PORTA=Output Do PORTA=255 Wait 5 PORTA=0 Wait 5 Loop End (iwRw dvBj ej `qv nqQ) (KK wdKzqwi gvb ej `qv nqQ) (cvU K AvDUcyU wnme ej `qv nqQ) (jyc iy nqQ) (cvU Gi mejv wcb G wWwRUvj Iqvb cvVvbv) (cuvP mK `wi Kiv nqQ) (cvU Gi mejv wcb G wWwRUvj wRiv cvVvbv) (cuvP mK `wi Kiv nqQ) (jyc kl nqQ) (cMvg kl nqQ)
1. Config PORTA=Output Gi vb hw` DDRA=255 wjL w`Zvg ZeyI cvU AvDUcyU wnme KvR KiZ| `yUv Avmj GKB KvR| 2. Kvb cvU Gi mejv wcb wWwRUvj Iqvb cvVvbvi Rb H cvU Gi AvDUcyU WvUv iwRvi (PORTA) Gi mejv weU wWwRUvj Iqvb Ki w`Z ne| Avi hnZy AvDUcyU WvUv iwRvi (PORTA) 8 weUi iwRvi ZvB Gi gvb Wwmgj G `vovq 255| GUv cMvg wZbfve jLv hvq|
a. PORTA=255 b. PORTA=&HFF c. PORTA=&B11111111
3. IqU (Wait) wZb aibi nq Wait, Waitms Ges Waitus| c_gUv mK w`ZxqUv wgwjmK Ges ZZxqUv gvB vmK| 4. Do..Loop Gi Loop Gi ci Kvb kZ bv w`j Zv mvivRxeb Pj (Infinite Loop)|
40 39
1k Ohm 220 Ohm 220 Ohm 220 Ohm 220 Ohm
38
Vcc Gnd
ATmega32
10 11
37 36
Gnd
220 Ohm 220 Ohm
35 34
220 Ohm
33
220 Ohm
cv bs- 13
ch -4.2: GKUv myBPi gvag GKUv LED (Light Emitting Diode) K Ab-Ad Kiv| c_gB gvB vKUvjvii Kvb GKUv BbcyU-AvDUcyU wcb GKUv cyk evUb (Push Button) jvMvZ ne| cykevUb GK aibi myBP hv Pc aij Ab nq Avevi Qi w`j Ad nq hvq| H wcbK cMvg AekB BbcyU wnme ej w`Z ne| Gevi vKUvjvii Kvb GKUv BbcyU-AvDUcyU wcb GKUv LED jvMvB| cMvg 4.2:
$crystal=1000000 $regfile=m32def.dat
9 40
220 Ohm 1k Ohm
Gnd
Config PORTA.0=Output Config PORTB.0=Input PORTA.0=0 Do If PINB.0=1 Then Toggle PORTA.0 EndIf Loop End
Vcc
10
Gnd
11
1k Ohm
WU (.) wP w`q KZ b^i wcb Zv w`Z nq| GB KvRUv AvMi cMvgi gZB `yBfve Kiv hve| Config PORTA.0=Output A_ev DDRA.0=1| 2. Abyicfve Kvb cvU Gi wbw` Kvb wcb AvDUcyU cvVvbvi RbI GKBfve AvDUcyU WvUv iwRvii bvgi mv_ WU w`q wjLZ nq| hgb PORTA Gi 0-Zg weU (40-b^i wcb) wWwRUvj wRiv Kivi Rb jLv nqQ PORTA.0=0| 3. mvwKU (wP 4.3) _K `Lv hvQ h mvfvweK Aevq gvB vKUvjvii 1 b^i wcb A_vr Port B Gi 0-Zg wcb (BbcyU WvUv iwRvii 0-Zg weU ev PINB.0) wWwRUvj 0 _vKe (wP 4.1 G GUv AvjvPbv Kiv nqQ)| hLb myBP (K) Pvcv ne ZLb wWwRUvj 1 ne| 4. cvMvg _K `Lv hvQ GKUv AvRxeb jyc (Infinite Loop) Gi ga GKUv If..Then UgUi gvag evievi U Kiv nqQ Port B Gi BbcyU WvUv iwRvii 0-Zg weU (PINB.0) wWwRUvj 1 nqQ wKbv? hw` nq Ze Port A Gi 0-Zg wcb (40-b^i wcb) K UvMj (Toggle) Kiv nqQ| UvMj (Toggle) A_ cyei wecixZ| Zvnj hw` AvM wWwRUvj Iqvb _vK Zvnj myBP Pvcj wWwRUvj wRiv ne, Avi hw` AvM wWwRUvj wRiv _vK Zvnj myBP Pvcj wWwRUvj Iqvb ne A_vr LED wU Ab Ges Ad ne| GB KvRwU KiZ KUvjvii Lye Kg mgq jvMe| `Lv hve h LED wU Ab Kivi Rb myBP Pvcv nj wK myBPi Dci _K nvZ Zzj AvbZ bv AvbZB Dcii KvRwU KUvjvi evievi Kie| KwcivBU@cKkjx gvt RyjwdKvi Avjx Ryqj cv bs- 14
ATmega32
dj `Lv hve hw`I Avgiv LED wU Ab Kivi Rb myBP PcwQ LED wU AdB AvQ| GB mgmvi mgvavb Kivi Rb Avgiv cMvg GKUz cwieZb Avbe| Zvi AvM bZzb GKUv dvskb wkL bqv hvK|
Debounce Gi eenvi: Debounce wcbi bvg, AcviwUs U, jvej Gi bvg, sub
D`vnib:
Debounce PINB.0, 1, Abc, sub
Dcii cMgUv (cMvg 4.2) GKUz cwieZb Kij welqUv eySZ myweav ne| cwiewZZ cMvg wbP `Iqv nj| cMvg 4.3: $regfile=m32def.dat (iwRw dvBj ej `qv nqQ) $crystal=1000000 (KK wdKzqwi gvb ej `qv nqQ)
Config PORTA.0=Output Config PORTB.0=Input (Port A Gi 0-Zg wcb AvDUcyU ej `qv nqQ) (Port B Gi 0-Zg wcb BbcyU ej `qv nqQ)
PORTA.0=0 (Port A Gi 0-Zg wcb G 0 cvVvbv nqQ) Do Debounce PINB.0, 1, Abc, sub Loop End Abc: Toggle PORTA.0 Return (mve iwUb) (PORTA.0 Z 1 _vKj 0 ne, 0 _vKj 1 ne) (Do...Loop G diZ hve)
Avme ZLbB DjL Ki `qv jvej (Abc) G Pj hve| cMvgi kl jvej wjL w`Z ne| GK ej mve iwUb (Sub Routin)| mve iwUbi KvR kl nq Mj cMvg Avevi cyei hvqMvq diZ hve| Avgv`i GB cMvgi hLbB Avgiv myBP Pvce ZLbB PINB.0 Z AcviwUs U (1) Avme| GLb mve iwUbi KvR mb Ki Avevi Do..Loop Gi ga diZ AvmZ AekB Lye ewk mgq jvMebv| A_vr Avgiv myBP _K nvZ DVvbvi AvMB Avevi dvskbwU GwwKDU ne Avi hnZz myBPwU GLbI Ab AvQ ZvB PINB.0 Z AcviwUs U (1) _vKe dj AveviI mveiwUb Pj hvIqvi K_v wK hve bv| GUvB Gi myweav| A_vr AcviwUs U hw` 1 nq Zvnj wWevD wcb GKevi 1 Avmj mveiwUb hve wK cieZxZ wWevD wcb AZ GKevi 0 bv Avmj mvivRxeb 1 AvmjI mveiwUb hve bv| A_vr Avgiv hw` mvivRxeb myBP Pc aiI _vwK cMvg KwcivBU@cKkjx gvt RyjwdKvi Avjx Ryqj cv bs- 15
mveiwUb GKeviB hve| AcviwUs U 1/0 nZ cvi| A_vr AcviwUs U hw` 0 nq Zvnj wWevD wcb GKevi 0 Avmj mveiwUb hve wK cieZxZ wWevD wcb AZ GKevi 1 bv Avmj mvivRxeb 0 AvmjI mveiwUb hve bv| GLvb _K Avgiv GB wmv wbZ cvwi h Avgv`i GB chi Rb cMvg 4.2 eenvi bv Ki cMvg 4.3 eenvi KivB kq| Dcii chUvK hw` Aviv GKUz cwieZb Kiv hvq hgb Avgiv hw` Gi hvqvMvq GKUv 220 fv Gi evwZ ev dvb jvMvZ PvB Zvnj wK wK cwieZb KiZ ne?
Vcc
Di: cMvg Kvb cwieZb AvbZ ne bv| ay mvwKU GKUz cwieZb AvbZ ne| GiAvM Avgv`i Uvbwmi mK GKUz vb Rc _vKv `iKvi| cvki wP GKwU N-P-N GKwU Uvbwmi `Lvbv C nqQ| N-P-N Uvbwmi Gi ewk nj hw` Gi em (B) Gi cUbwkqvj GwgUvi (E) Gi Pq ewk nq Ze em _K GwgUvii B w`K GKUv Zwor cevwnZ nq GK em cevn (Base Current) ej| Rb Avi mBm Kvji (C) _K GwgUvii w`K AviKUv Zwor cevn E i nq hw` Kvjii cUbwkqvj GwgUvii Pq ewk nq| GK Kvji cevn (Collector Current) ej| em G Lye Kg cevni KvibB Kvji AbK eo gvbi cevn Zwi nq mvavibZ Operating 100-200 Y| em cevn evovj Kvji KviU evoZ Saturation Mode Mode _vK Ges GKmgq Avi evobv| Ges mB cevnK mvPzikb cevn (Saturation Current) ejv nq| em Gi Collector Current mv_ jvMvbv iwRi (Rb) Gi gvb cwieZb Ki em cevn evovbv ev Kgvbv hvq| Avgiv hw` iwRi (Rb) Gi gvb Base Current Ggbfve wVK Kwi h em G wWwRUvj Iqvb w`j UvbwRi mvPzikb gvW G hvq Zvnj UvbwRiK ZLb GKUv myBPi wP 4.4: UvbwRi gZ gb ne| em G Iqvb w`j UvbwRi Ab ne Avevi em G wRiv w`j UvbwRi Ad ne| Gevi Aviv GKUv wWfvBm mK AvjvPbv Kie| mUv nj BjvgvMbwUK wij (Electromagnetic Relay)| Gi mvavibZ cvPUv wcb _vK-C1, C2, NO Common, NO (Normally Opened), NC (Normally Closed)| C1 C1 Ges C2 Gi gvS GKwU Kqj (Coil) _vK| hvK wWwm mvcvB w`j mwjbqW (Solinoied) wnme KvR Ki| Common wcb mvcvB bv `qv C2 Aevq NC Gi mv_ jvMvbv _vK| C1, C2 Gi ga wWwm mvcvB w`j NC Common mwjbqWi P^K AvKlbi dj Common wcb NC _K QzU Gm KwcivBU@cKkjx gvt RyjwdKvi Avjx Ryqj cv bs- 16
GKUv wWwm mvcvB eenvi Kiv nq| cvki eZbxZ gvB vKUvjvi w`q wKfve nvB fvR BUvidm KiZ ne Zv `qv AvQ| `Lv hvQ h hZb ch eZbxi T1 Uvwgbvj G wWwRUvj Iqvb bv `qv ne ZZb ch nvB High Voltage Side Low Voltage Side fvR mvwKU Icb Kvib wiji Common wcb NO Gi mv_ Icb Bulb Vcc AvQ dj Gwm gBb evW _K evj Phase NO Gi ga w`q Kvb Zwor cevn ne Nutral bv| hLbB T1 Uvwgbvj G wWwRUvj Iqvb `qv ne, jv fvR AC Main mvwKUi UvbwRi ZLb Ab ne Board NC C Common dj Vcc _K wiji Kqji (Coil) ga w`q UvbwRi nq Zwor cevwnZ ne| wiji ga Pz^K T1 B AvKlbi dj wiji Common wcb NO Gi mv_ jM hve| dj nvB E fvR mvwKU Gi evj Gi ga w`q Gwm gBb evW _K Zwor cevn i ne| dj evjwU Rje| wP 4.5: nvB fvR BUvidm GLb Avgiv hw` wP 4.5 Gi T1 UvwgbvjK wP 4.3 Gi eZbxi gvB vKUvjvii 40-b^i wcb (LED cwieZ) jvwMq `B Zvnj H eZbxi (wP 4.3) myBPi gvag Avgiv wP 4.5 Gi evjK Ab-Ad KiZ cvie| Gevi hw` myBPi cwieZ hw` Kvb mi eZbxi (wP 4.3) 1-b^i wcb jvwMq `B Ges `yi _K wigvU KUvjvii gvag Iqvb/wRiv cvj&m cvVvB Zvnj wigvU KUvjvi w`q GKUv evj, dvb ev hKvb nvBfvR jvW Avgiv KUvj KiZ cvie| Gwelq cieZxZ wigvU KUvjvi Aavq AvjvPbv Kiv ne|
cv bs- 17