Talaan ng mga Nilalaman:

Pagkuha ng Startet Sa Bascom AVR: 5 Hakbang
Pagkuha ng Startet Sa Bascom AVR: 5 Hakbang

Video: Pagkuha ng Startet Sa Bascom AVR: 5 Hakbang

Video: Pagkuha ng Startet Sa Bascom AVR: 5 Hakbang
Video: ANG GANDA NG MISIS NI RIGOR!😍#johnestrada #prescillameirelles 2024, Hulyo
Anonim
Pagkuha ng Startet Sa Bascom AVR
Pagkuha ng Startet Sa Bascom AVR

Ito ang simula ng isang serye upang turuan kang i-program ang iyong AVR microcontroller sa Bascom AVR.

Bakit ko ginagawa ito.

Karamihan sa mga sample ng programm sa seryeng ito ay maaari mong gawin sa Arduino.

Ang ilan ay mas madali at ilang mas mahirap, ngunit sa huli ang parehong tatakbo sa parehong controller.

Ngunit ang paraan ng pagprograma ay iba sa bawat kapaligiran sa pag-unlad. Kailangan ng Arduino ng isang silid-aklatan para sa lahat maliban sa pangunahing mga pag-andar. Gumagawa din ang Bascom sa mga aklatan, ngunit bihirang kailangan kong isama ang isa. Sa Arduino, ang lahat ng mga setting na tukoy sa hardware ay ginawa sa pamamagitan ng mga aklatan. mayroon kang napakakaunting impluwensya sa aktwal na lakas ng microcontroller. Simula sa mga timer na mayroon ang controller. sa arduino kailangan mo ng library muli. kung mayroon kang timer hanggang sa ito ay gumagana, maaaring ito ay isa pang library na bumangga sa iyong mga setting. Sa bascom mayroon kang libreng pag-access sa kumpletong hardware kabilang ang sektor ng boot na sinasakop ng arduino. halimbawa, ang ilang mga aklatan sa bascom ay nagtanong sa iyo kung aling timer ang nais mong gamitin. sa kabilang banda, dahil ginagawang napakadali ng arduino na lumikha ng isang silid-aklatan sa iyong sarili, natural na ginagawa itong isang platform kung saan ang mga bagong hardware at sensor ay karaniwang may direktang silid-aklatan. kung ano ang madalas na nauugnay sa maraming pagsasaliksik sa bascom at ang mga pagpapaandar na karaniwang gagawin ng isang silid-aklatan ay dapat na maingat na isama sa code ng programa. ngunit magandang balita ang pamayanan ng bascom ay napakalaki din kung bakit may solusyon sa bawat ideya.

Kaya't bahagyang nakasalalay ito sa proyekto kung ano ang ginagamit para sa isang kapaligiran sa pag-unlad at bahagyang sa kaalaman ng tao sa pagprograma.

ngunit bakit ko ginagawa ang seryeng ito. sa isang banda nakakatipid ito ng maraming pera. Hindi ko kailangang bumili ng arduino board para sa bawat proyekto. Halimbawa: Ang isang hindi pangalang Arduino uno ay nagkakahalaga ng halos 12 € ang tagakontrol na nasa loob nito ay nagkakahalaga lamang ng 2.5 € kasama ang minimum na kinakailangang circuitry para sa isang matatag na pagpapaandar, nagkakahalaga ito ng humigit-kumulang na 4 €. sa kabilang banda mayroon kang kumpletong pagpipilian ng mga avr chip na suportadong magagamit. atmegas 8 hanggang 256 at attiny 8 hanggang 2313 at maraming uri ng xmega na wala akong karanasan. Kung nais mo lamang gumamit ng isang servo at isang ultrasonic sensor na maaaring makilala ang isang kamay, halimbawa, at pagkatapos ay buksan ang isang takip ng isang basurahan, maaari mong gamitin ang pinakamaliit na posibleng maliit na tilad. Kaya maraming mga dahilan upang malaman ang isang pangalawang wika.

Kaya't magsimula tayo

Mga gamit

Ito ay isang listahan ng mga minimum na kinakailangang bahagi para sa matatag na pagpapatakbo ng maliit na tilad at programa.

Breadboard para sa pagsubok

Atmega 8-16PU (mas mabuti kang bumili ng 2 o 3 kung pinatay mo sila nang hindi sinasadya)

7805 5V boltahe regulator

10Kohm risistor

100nF film capacitor

10µF electrolytic capacitor

100µF electrolytic capacitor

ilang mga wire para sa breadboard

Windows PC 7/8 / 8.1 / 10

ISP Programmer (gagamitin ko dito ang USBasp maaari mo itong bilhin sa amazon para sa kaunting pera)

Bascom AVR (maaari kang mag-download dito ng isang DEMO. Ang lahat ng mga funktion ay naka-unlock, ngunit maaari mo lamang isulat ang code hanggang sa laki ng 4Kb na sapat para sa maraming code).

Mga opsyonal na bahagi:

Ang mga LED ay may resistors

switch switch

mga bahagi na tiyak sa proyekto

Hakbang 1: Pag-install ng Bascom at Pag-setup

Pag-install ng Bascom at Setup
Pag-install ng Bascom at Setup
Pag-install ng Bascom at Setup
Pag-install ng Bascom at Setup
Pag-install ng Bascom at Setup
Pag-install ng Bascom at Setup

I-download ang file at i-install ang Bascom AVR. I-install ang lahat ng mga bahagi nito kasama ang huling checkbox pagkatapos i-install.

Pagkatapos nito i-reboot ang iyong PC kung hindi man ay hindi magsisimula ang bascom.

Matapos ang pag-reboot simulan ang bascom.

Pumunta sa Mga Pagpipilian -> Programmer at piliin ang USBasp mula sa listahan, i-save ang mga setting at isara ang Bascom.

Gamitin ang Program na ito upang mai-install ang usbasp. Pagkatapos nito, muling i-reboot ang iyong PC. Ngayon ikonekta ang USBasp sa iyong PC at simulan ang manager ng aparato. Dapat lumitaw ang USBasp sa mga libusb device.

Stat Bascom muli at lumikha ng isang bagong file. I-save ito sa iyong pc at pindutin ang pindutan ng F7 sa iyong keyboard.

Nagsisimula ang compiler at pinagsasama-sama ang walang laman na programa. Ngayon ay maaari mong subukan ang pagpapaandar ng programmer.

Pindutin ang pindutan ng F4 sa iyong keyboard upang simulan ang window ng programmer. Pumunta ngayon sa chip -> kilalanin upang magsimula ng isang pakikipag-ugnayan. Ang mga LED`s mula sa USBasp ay dapat na maikling blink. Dapat kang makakuha ng isang mensahe tulad ng hindi nabasa ng chip Id FFFFFF na aparato. Iyon ay isang magandang tanda na gumagana ang Programmer ngunit hindi ito nakahanap ng maliit na tilad.

Ngayon ay maaari naming simulan upang bumuo ng unang circuit.

Hakbang 2: Tingnan Natin Ang isang Mas Malapitan Tingnan ang Chip

Tingnan Natin Ang Isang Malapit Na Sulyap sa Chip
Tingnan Natin Ang Isang Malapit Na Sulyap sa Chip

Kung titingnan mo ang pinout ng maliit na tilad tila ang chip ay walang pagkakapareho sa arduino board. Oo naman, gumagamit kami ng isang Atmega8 at sa Arduino uno ay isang Atmega328. Ngunit ang Pinout ay halos pareho ngunit siya chip ng Arduino Uno board ay may mas maraming mga function. Narito ang mga pangalan ng mga pin. Ang VCC at GND ang mga pin para sa power supply.

Ang AREF at AVCC ay mga pin para sa boltahe ng sanggunian at supply ng kuryente para sa analog sa digital converter.

Ang PB 0-7 PC 0-6 PD 0-7 ay pangkalahatang layunin ng mga input output pin na may maraming paninirahan.

reset pin ang sinasabi ng pangalan. Upang i-restart ang maliit na tilad. Ang linya sa itaas ng pangalan ng pag-reset ay nangangahulugang pagwawaksi. Nangangahulugan iyon, upang i-reset ang chip kailangan mong hilahin ito pababa sa 0V.

Para sa mga sumusunod na pin magkahiwalay na mga instruktor na paparating na.

Ang RXD TXD ay mga pin ng hardware para sa serial na komunikasyon UART.

Ang INT0 INT1 ay mga Hardware Interrupt pin

Pinagmulan ng XCK / T0 UART Clock / Timer / Counter0 Clock na mapagkukunan

Ang mga XTAL / TOSC na pin ay para sa isang panlabas na kristal hanggang sa 16MHz (iba't ibang mga modelo hanggang sa 20MHz) / Crystal pin para sa isang panloob na RTC

Ang T1 ay katulad ng T0

Ang mga AIN pin ay para sa analog comparator

Ang ICP1 ay katulad ng T0 / T1

Ang OC1A ay ang pin output ng hardware para sa pwm timer1 channel A

Piliin ang pin ng SS / OC2 chip para sa SPI / tulad ng OC1B ngunit ang channel B

Ang MOSI MISO SCK / OC2 ay ang mga hardware SPI pin at ang mga pin para sa programa / PWM output timer2

Ang ADC0 hanggang ADC5 ay ang mga analog input

Ang SDA SCL ay ang Pins para sa hardware I2C

Ang normal na chip ay maaaring gumana mula 4, 5V hanggang 5, 5V ang Atmega 8L ay maaaring gumana nang may mas mababang Boltahe.

Nakita mo kahit ang chip na ito ay maaaring gumawa ng higit pa sa isang Arduino Uno na tila hindi maaaring gawin. Ngunit magagawa rin ito ng Arduino, kailangan mo lamang i-program ito.

Hakbang 3: Ang Unang Circuit

Ang Unang Circuit
Ang Unang Circuit
Ang Unang Circuit
Ang Unang Circuit

Oras na upang buuin ang iyong unang circuit.

Ano ang karaniwang unang circuit? Tama! Pumikit tayo sa isang LED.

Ang LED ay konektado sa PB0. Ang risistor sa tabi ng chip ay mayroong 10k Ohms.

Ang risistor sa tabi ng LED ay mayroong 470 Ohms.

Ngayon ay maaari mong ikonekta ang USBasp sa Atmega tulad ng ipinakita sa larawan.

Ngunit bago mo buksan ang lakas ipaalam sa amin na isulat ang programa.

Hakbang 4: Isulat ang Unang Programa

Isulat ang Unang Programa
Isulat ang Unang Programa

Lumikha ng isang bagong file sa Bascom at i-type ang sumusunod na teksto.

$ regfile "m8def.dat"

$ crystal = 1000000 config portb.0 = output do portb.0 = 1 wait 1 portb.0 = 0 wait 1 loop

pagkatapos nito ay ipunin ito sa pamamagitan ng pagpindot sa F7 sa iyong keyboard.

Ngayon ay maaari na nating mai-program ang chip sa pamamagitan ng pagpindot sa F4. Lumilitaw ang window ng programmer. Ngayon oras na upang buksan ang lakas mula sa breadboard. Dapat kang maglapat ng isang bagay sa pagitan ng 6 at 12 Volts.

Pumunta ngayon sa chip -> autoprogram. Kung ang window ng programmer ay awtomatikong magsara ang programa ay matagumpay.

Ang LED ay dapat na flashing sa isang segundo dalas.

Ngayon tingnan ang programa upang maunawaan ang syntax.

$ regfile "m8def.dat"

$ kristal = 1000000

na may $ regfile sasabihin namin sa tagatala ang uri ng ginamit na chip ang pangalan ng Arduino chip ay magiging "m328pdef.dat"

na may $ kristal sinabi namin sa kanya ang bilis ng CPU tungkol sa 1MHz.

config portb.0 = Output

nangangahulugan iyon na ang PB0 ay dapat kumilos bilang output.

Sa pamamagitan ng paraan, ang pagpapaikli PB0 ay nangangahulugang port B bit 0. Ang maliit na tilad ay nahahati sa maraming mga port. Ang bawat port ay binibigyan ng isang liham para sa malinaw na pagkakakilanlan. at bawat portpin nang kaunti mula 0 hanggang 7. Halimbawa, maaari akong magsulat ng isang kumpletong byte sa rehistro ng output ng port, na mai-output sa pamamagitan ng mga indibidwal na port pin.

gawin

loop

Ito ang ibig sabihin ng Arduino ng void loop statement. Lahat sa pagitan ng dalawang utos na iyon ay mauulit magpakailanman. (na may ilang mga pagbubukod ngunit sa paglaon higit pa tungkol sa na)

Portb.0 = 1

maghintay ng 1 portb.0 = 0 maghintay 1

Narito namin gernerate ang pagkurap ng humantong.

Sinasabi ng Portb.0 = 1 ang chip upang ilipat ang output PB0 sa 5V

ang utos ng paghihintay 1 hayaan ang chip na maghintay para sa isang segundo. Kung nais mong ilipat ang humantong mas mabilis kailangan mong palitan ang wait command ng mga waitms ngayon maaari kang maglagay ng ilang oras ngayon sa milliseconds hal. waitms 500. (ang waitus ay nangangahulugang maghintay sa nanoseconds)

Sinasabi ng Portb.0 = 0 ang chip upang ilipat ang output PB0 sa 0V.

Hakbang 5: Magdagdag ng isang Button upang Gumamit ng Mga Input

Magdagdag ng isang Button upang Gumamit ng Mga Input
Magdagdag ng isang Button upang Gumamit ng Mga Input

Ngayon ay nagdagdag kami ng isang pindutan upang magaan ang led kung pinindot ang pindutan.

Ipasok ang pindutan tulad ng ipinakita sa larawan.

i-type ngayon ang sumusunod na programa.

$ regfile "m8def.dat"

$ kristal = 1000000 config portb.0 = output config portd.7 = input Portd.7 = 1 gawin kung pind.7 = 0 pagkatapos portb.0 = 1 pa portb.0 = 0 loop

Kung na-upload mo ang program na iyon sa maliit na tilad, umaaraw lamang ang led kapag pinindot ang pindutan. Pero bakit?

ang programa ay nagsisimulang magkapareho tulad ng huling hanggang

config portd.7 = input. Nangangahulugan iyon, ang pin PD7 na kumonekta sa pindutan ay kumikilos bilang isang input.

Ang Portd.7 = 1 ay hindi ilipat ang pin sa mataas, ngunit pinapagana nito ang panloob na pull up risistor ng Atmega.

Ang kung statemend ay mukhang medyo mas kakaiba kung sanay ka sa arduino.

kung gagamitin mo ang pahayag kung dapat mong gamitin ang pahayag na "pagkatapos". Sa sample na ito ang kung pahayag ay ginagamit para sa solong pagpapatakbo ng utos. Kung nais mong gumamit ng higit pang mga utos kailangan mong isulat ito tulad nito.

kung pind.7 = 0 kung ganon

portb.0 = 1 ilang code ilang code ilang code iba pa portb.0 = 0 magtatapos kung

para sa paggamit ng pahayag na kung kailangan mong gamitin ang pahayag na "wakasan kung" sa dulo.

ano pa ang mahalaga. Siguro nakita mo na ito. ang mga input ay hindi natanong ng portx.x, ngunit sa pinx.x. Madali mong maaalala iyon. Ang mga output ay mayroong "o" (port) sa salita at ang mga input ay mayroong "i" (pin).

Ngayon ay ang iyong tira upang maglaro ng kaunti sa paligid.

Malapit na dumating ang aking susunod na maituturo (karaniwang mga pahayag tulad ng habang, piling kaso, para, at variable.)

Kung gusto mo ang aking itinuturo at nais ng higit na sabihin sa akin sa mga komento.

Inirerekumendang: