Բովանդակություն:
- Պարագաներ
- Քայլ 1: Bascom- ի և տեղադրման տեղադրում
- Քայլ 2: Եկեք ավելի սերտ նայենք չիպին
- Քայլ 3: Առաջին շրջան
- Քայլ 4: Գրեք առաջին ծրագիրը
- Քայլ 5: Ավելացրեք կոճակ `մուտքերն օգտագործելու համար
Video: Սկսնակ գործունեություն Bascom AVR- ով. 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Սա սկիզբն է մի շարքի, որը կսովորեցնի ձեզ ծրագրավորել ձեր AVR միկրոկառավարիչը Bascom AVR- ով:
Ինչու եմ դա անում:
Այս շարքի ծրագրային նմուշների մեծ մասը կարող եք պատրաստել Arduino- ի միջոցով:
Ոմանք ավելի հեշտ և ոմանք ավելի դժվար, բայց վերջում երկուսն էլ կաշխատեն միևնույն վերահսկիչով:
Բայց ծրագրավորման եղանակը տարբեր է յուրաքանչյուր զարգացման միջավայրում: Arduino- ին անհրաժեշտ է գրադարան ամեն ինչի համար, բացի հիմնական գործառույթներից: Bascom- ն աշխատում է նաև գրադարանների հետ, բայց ես հազվադեպ եմ ստիպված լինում դրանք ներառել: Arduino- ի հետ բոլոր սարքավորումների համար հատուկ կարգավորումները կատարվում են գրադարանների միջոցով: դուք շատ փոքր ազդեցություն ունեք միկրոկառավարիչի իրական հզորության վրա: Սկսած այն ժամանակաչափերից, որոնք ունի վերահսկիչը: arduino- ի հետ նորից գրադարան է պետք: եթե ունեք ժամաչափը մինչև այն աշխատի, դա կարող է լինել այլ գրադարանի բախում ձեր կարգավորումների հետ: Bascom- ում դուք անվճար մուտք ունեք ամբողջական սարքավորում, ներառյալ բեռնախցիկը, որը զբաղեցնում է arduino- ն: օրինակ, bascom- ի որոշ գրադարաններ ձեզ հարցնում են, թե որ ժամաչափն եք ցանկանում օգտագործել: Մյուս կողմից, քանի որ arduino- ն շատ հեշտացնում է ինքնուրույն գրադարան ստեղծելը, բնականաբար այն դարձնում է հարթակ, որտեղ նոր սարքավորումները և տվիչները սովորաբար ուղղակիորեն ունեն գրադարան: այն, ինչը հաճախ կապված է բազոմի բազմաթիվ հետազոտությունների և այն գործառույթների հետ, որոնք գրադարանը սովորաբար կստանձներ, այնուհետև պետք է ջանասիրաբար ներառվեն ծրագրի ծածկագրում: բայց լավ նորություն bascom համայնքը նույնպես շատ մեծ է, դրա համար էլ կա լուծում յուրաքանչյուր գաղափարի համար:
Այսպիսով, մասամբ նախագծից է կախված, թե ինչն է օգտագործվում զարգացման միջավայրի համար և մասամբ `ծրագրավորող անձի նոու-հաուից:
բայց ինչու եմ ես անում այս շարքը: մի կողմից դա շատ գումար է խնայում: Պետք չէ յուրաքանչյուր նախագծի համար գնել arduino տախտակ: Օրինակ. Անանուն Arduino uno- ն արժե մոտ 12 €, դրա վրա գտնվող վերահսկիչն արժե ընդամենը 2,5 € `կայուն գործառույթի համար պահանջվող նվազագույն սխեմաներով, այն արժե մոտ 4 €: Մյուս կողմից, դուք ունեք avr չիպերի ամբողջական ընտրանի, որոնք հասանելի են: atmegas 8 -ից 256 և attiny 8 -ից 2313 և շատ xmega տեսակներ, որոնց մասին ես փորձ չունեմ: Եթե դուք պարզապես ցանկանում եք օգտագործել servo և ուլտրաձայնային տվիչ, որը կարող է ճանաչել ձեռքը, օրինակ, այնուհետև բացել աղբարկղի կափարիչը, կարող եք օգտագործել հնարավոր ամենափոքր չիպը: Այսպիսով, երկրորդ լեզու սովորելու բազմաթիվ պատճառներ կան:
Այսպիսով, եկեք սկսենք
Պարագաներ
Սա չիպի կայուն աշխատանքի և ծրագրավորման համար անհրաժեշտ նվազագույն պահանջվող մասերի ցանկն է:
Փորձարկման համար գրատախտակ
Atmega 8-16PU (ավելի լավ է գնել 2 կամ 3, եթե դրանք սխալմամբ սպանեք)
7805 5V լարման կարգավորիչ
10 Կոմ դիմադրություն
100nF ֆիլմի կոնդենսատոր
10μF էլեկտրոլիտիկ կոնդենսատոր
100μF էլեկտրոլիտիկ կոնդենսատոր
որոշ մետաղալարեր տախտակի համար
Windows PC 7/8/8.1/10
ISP ծրագրավորող (ես այստեղ կօգտագործեմ USBsp- ն, որը կարող եք գնել Amazon- ում ՝ փոքր գումարով)
Bascom AVR (այստեղ կարող եք ներբեռնել DEMO. Բոլոր գործառույթներն ապակողպված են, բայց կարող եք գրել կոդը միայն մինչև 4Kb չափ, որը բավական է բազմաթիվ կոդերի համար):
Ընտրովի մասեր.
LED- ները `ռեզիստորներով
սեղմիչ անջատիչներ
նախագծին հատուկ մասեր
Քայլ 1: Bascom- ի և տեղադրման տեղադրում
Ներբեռնեք ֆայլը և տեղադրեք Bascom AVR- ը: Տեղադրեք դրա բոլոր մասերը, ներառյալ տեղադրման ավարտից հետո վերջին վանդակը:
Դրանից հետո վերագործարկեք ձեր համակարգիչը, հակառակ դեպքում bascom- ը չի սկսվի:
Վերագործարկումից հետո սկսեք bascom- ը:
Գնացեք Ընտրանքներ -> merրագրավորող և ընտրեք USBasp ցուցակից, պահպանեք կարգավորումները և փակեք Bascom- ը:
Օգտագործեք այս ծրագիրը `usbasp- ը տեղադրելու համար: Դրանից հետո կրկին վերագործարկեք ձեր համակարգիչը: Այժմ միացրեք USBasp- ը ձեր համակարգչի հետ և գործարկեք սարքի կառավարիչը: USBasp- ը պետք է հայտնվի libusb սարքերում:
Կրկին Stat Bascom և ստեղծեք նոր ֆայլ: Պահեք այն ձեր համակարգչում և սեղմեք ստեղնաշարի F7 կոճակը:
Կազմողը սկսում և հավաքում է դատարկ ծրագիրը: Այժմ կարող եք ստուգել ծրագրավորողի ֆունկցիոնալությունը:
Hitրագրավորողի պատուհանը սկսելու համար սեղմեք ստեղնաշարի F4 կոճակը: Այժմ գնացեք chip -> Identify ՝ փոխազդեցություն սկսելու համար: USBasp- ի LED- ները այժմ պետք է կարճ թարթեն: Դուք պետք է այնպիսի հաղորդագրություն ստանաք, ինչպիսին է չիպի ID- ն, որը FFFFFF- ը չի կարող կարդալ սարքը: Դա լավ նշան է, որ merրագրավորողը աշխատում է, բայց չիպ չի գտել:
Այժմ մենք կարող ենք սկսել կառուցել առաջին սխեման:
Քայլ 2: Եկեք ավելի սերտ նայենք չիպին
Եթե նայեք չիպի պինուտին, թվում է, որ չիպը նմանություն չունի arduino տախտակին: Իհարկե, մենք օգտագործում ենք Atmega8 և Arduino uno- ում Atmega328 է: Բայց Pinout- ը գրեթե նույնն է, բայց Arduino Uno տախտակի չիպը ավելի շատ գործառույթներ ունի: Ահա քորոցների անունները: VCC- ն և GND- ը սնուցման աղբյուրներն են:
AREF- ը և AVCC- ն անալոգային թվային փոխարկիչի համար լարման և սնուցման աղբյուր են:
PB 0-7 PC 0-6 PD 0-7 ընդհանուր նշանակության ելքային կապեր են ՝ բազմաբնակարան:
reset pin- ն այն է, ինչ ասում է անունը: Չիպը վերագործարկելու համար: Վերակայված անվան վերևում գտնվող տողը նշանակում է ժխտում: Դա նշանակում է, որ չիպը վերականգնելու համար պետք է այն իջեցնել 0 Վ -ի:
Հետևյալ կապերի համար շուտով առանձին հրահանգներ կգան:
RXD TXD- ը UART սերիական հաղորդակցության ապարատային կապում են:
INT0 INT1- ը Hardware Interrupt կապում են
XCK /T0 UART ockամացույցի աղբյուր /erամաչափ /Counter0 Clամացույցի աղբյուր
XTAL /TOSC կապումներն օգտագործվում են մինչև 16 ՄՀց արտաքին բյուրեղի համար (տարբեր մոդելներ մինչև 20 ՄՀց) /Բյուրեղյա կապում ՝ ներքին RTC- ի համար
T1- ը նման է T0- ին
AIN կապումներն անալոգային համեմատիչի համար են
ICP1- ը նման է T0/T1- ին
OC1A- ն pwm timer1 ալիքի A- ի ապարատային ելքային փին է
SS / OC2 չիպի ընտրիչ քորոց SPI- ի համար / ինչպես OC1B- ն, բայց B ալիքը
MOSI MISO SCK / OC2- ը ապարատային SPI կապումներն են և ծրագրավորման / PWM ելքային ժմչփի ծրագրակազմը 2:
ADC0- ից ADC5- ը անալոգային մուտքերն են
SDA SCL- ն ապարատային I2C- ի կապում են
Սովորական չիպը կարող է աշխատել 4, 5 Վ -ից մինչև 5, 5 Վ, Atmega 8L- ը կարող է աշխատել շատ ավելի ցածր Լարման հետ:
Դուք տեսնում եք, որ նույնիսկ այս չիպը կարող է անել ավելին, քան Arduino Uno- ն, կարծես, չի կարող անել: Բայց Arduino- ն կարող է նաև դա անել, միայն պետք է ծրագրավորել այն:
Քայլ 3: Առաջին շրջան
Այժմ ժամանակն է կառուցել ձեր առաջին շրջանը:
Ո՞րն է սովորաբար առաջին միացումը: Ճիշտ! Թարթենք LED- ը:
LED- ը միացված է PB0- ին: Չիպի կողքին գտնվող ռեզիստորը ունի 10k Օմ:
LED- ի կողքին գտնվող ռեզիստորը ունի 470 Օմ:
Այժմ դուք կարող եք USBasp- ը միացնել Atmega- ի հետ, ինչպես ցույց է տրված նկարում:
Բայց նախքան հոսանքը միացնելը, եկեք գրենք ծրագիրը:
Քայլ 4: Գրեք առաջին ծրագիրը
Ստեղծեք նոր ֆայլ Bascom- ում և մուտքագրեք հետևյալ տեքստը:
$ regfile "m8def.dat"
$ crystal = 1000000 config portb.0 = ելքը do portb.0 = 1 սպասել 1 portb.0 = 0 սպասել 1 հանգույց
Դրանից հետո կազմեք այն ՝ ձեր ստեղնաշարի վրա սեղմելով F7:
Այժմ մենք կարող ենք ծրագրավորել չիպը ՝ սեղմելով F4: Հայտնվում է ծրագրավորողի պատուհանը: Հիմա ժամանակն է հոսանքը միացնել սեղանի սեղանից: Դուք պետք է ինչ -որ բան կիրառեք 6 -ից 12 Վոլտ -ի միջև:
Այժմ անցեք chip -> autoprogram: Եթե ծրագրավորողի պատուհանը ինքնաբերաբար փակվի, ծրագրավորումը հաջողված էր:
LED- ը պետք է լուսավորվի մեկ վայրկյան հաճախականությամբ:
Այժմ ավելի մոտիկից նայեք ծրագրին ՝ շարահյուսությունը հասկանալու համար:
$ regfile "m8def.dat"
բյուրեղյա $ = 1000000
$ regfile- ով մենք կոմպիլյատորին ասում ենք օգտագործված չիպի տեսակը, Arduino չիպի անունը կլինի «m328pdef.dat»
$ բյուրեղով մենք նրան ասում ենք պրոցեսորի արագությունը մոտ 1 ՄՀց:
config portb.0 = Ելք
դա նշանակում է, որ PB0- ը պետք է գործի որպես ելք:
Ի դեպ, PB0 հապավումը նշանակում է նավահանգիստ B bit 0. Չիպը բաժանված է մի քանի նավահանգստի: Յուրաքանչյուր նավահանգիստ տրվում է նամակ `հստակ նույնականացման համար: և յուրաքանչյուր պորտպին մի քիչ 0 -ից մինչև 7. Օրինակ, ես կարող եմ ամբողջական բայթ գրել պորտի ելքային գրանցամատյանում, որը կարտադրվի առանձին նավահանգստի կապում:
անել
հանգույց
Ահա թե ինչ է նշանակում Arduino- ում void loop հայտարարությունը: Այդ երկու հրամանների միջև ընդմիշտ կկրկնվի: (որոշ բացառություններով, բայց ավելի ուշ դրա մասին)
Պորտբ.0 = 1
սպասել 1 portb.0 = 0 սպասել 1
Այստեղ մենք արտահայտում ենք led- ի թարթումը:
Portb.0 = 1 -ը չիպին ասում է, որ ելքային PB0- ը փոխի 5 Վ -ի
սպասել 1 հրամանը թող չիպը սպասի մեկ վայրկյան: Եթե ցանկանում եք ավելի արագ փոխել led- ը, ապա պետք է սպասման հրամանը փոխարինեք սպասող սարքերով, այժմ կարող եք որոշ ժամանակ մտնել միլիվայրկյաններով, օրինակ. սպասում է 500. (waitus նշանակում է սպասել նանո վայրկյաններում)
Portb.0 = 0 -ը չիպին ասում է, որ ելքային PB0- ն փոխի 0V- ի:
Քայլ 5: Ավելացրեք կոճակ `մուտքերն օգտագործելու համար
Այժմ մենք ավելացնում ենք մի կոճակ ՝ լուսավորելու համար led- ը, եթե կոճակը սեղմված է:
Տեղադրեք կոճակը, ինչպես ցույց է տրված նկարում:
այժմ մուտքագրեք հաջորդ ծրագիրը:
$ regfile "m8def.dat"
$ crystal = 1000000 config portb.0 = ելքային կազմաձևում portd.7 = մուտքագրում Portd.7 = 1 անել, եթե pind.7 = 0 ապա portb.0 = 1 այլ portb.0 = 0 հանգույց
Եթե դուք վերբեռնում եք այդ ծրագիրը չիպի վրա, led- ը լուսավորվում է միայն կոճակը սեղմելիս: Բայց ինչու?
ծրագիրը սկսվում է նույնը, ինչ նախորդը
config portd.7 = մուտքագրում: Դա նշանակում է, որ կոճակին միացած PD7- ի քորոցը գործում է որպես մուտք:
Portd.7 = 1 -ը չի փոխում քորոցը բարձր, բայց այն ակտիվացնում է Atmega- ի ներքին ձգման դիմադրությունը:
Եթե statemend- ը մի փոքր անհեթեթ տեսք ունի, եթե սովոր եք arduino- ին:
եթե օգտագործում եք if հայտարարությունը, ապա պետք է օգտագործեք «ապա» հայտարարությունը: Այս նմուշում if հայտարարությունը օգտագործվում է մեկ հրամանատարական գործողությունների համար: Եթե ցանկանում եք ավելի շատ հրամաններ օգտագործել, ապա պետք է գրեք այսպես.
եթե pind.7 = 0 ապա
portb.0 = 1 ինչ -որ կոդ որոշ կոդ ինչ -որ այլ ծածկագիր portb.0 = 0 վերջ, եթե
if հայտարարության այս օգտագործման համար պետք է վերջում օգտագործել «end if» արտահայտությունը:
ինչը դեռ կարևոր է: Միգուցե արդեն տեսե՞լ եք: մուտքերը հարցված չեն portx.x- ով, այլ pinx.x- ով: Դուք կարող եք հեշտությամբ հիշել դա: Բառի մեջ ելքերն ունեն «o» (պորտ), իսկ մուտքերը ՝ «i» (քորոց):
Հիմա ձեր հերթն է մի փոքր խաղալու:
Իմ հաջորդ հրահանգը շուտով կգա (ստանդարտ հայտարարություններ, ինչպիսիք են while, select case, for և variables):
Եթե ձեզ դուր է գալիս իմ հրահանգը և ավելին եք ուզում, ասեք ինձ մեկնաբանություններում:
Խորհուրդ ենք տալիս:
ActoKids. Գործունեություն գտնելու նոր միջոց. 11 քայլ
ActoKids. Գործունեություն գտնելու նոր միջոց. Կարևոր է բոլոր տարիքի և կարողությունների երեխաներին պահել ակտիվ և ներգրավված իրենց համայնքներում: Գործունեության մասնակցությունը օգնում է երեխաներին մնալ առողջ, հաստատել ընկերական հարաբերություններ, զարգացնել հմտություններ և զարգացնել ստեղծագործական կարողությունները: Այնուամենայնիվ, տեղեկատվություն գտնելը
DEEDU Luminosity Գործունեություն. 6 քայլ
DEEDU Luminosity Activity: Այս գործունեության նպատակն է բարձրացնել օգտագործողի զգայունությունը էներգիայի սպառման նկատմամբ պայծառության վերահսկման համար: Այս գործունեությունը նախատեսված է 9 տարեկանից բարձր երեխաների համար, ովքեր կարողանում են կարդալ և հասկանալ պայծառության ցուցիչ չափումները և
Հաղորդակցության ուսուցում, դպրոցական գործունեություն կամ երիտասարդական խաղ. 3 քայլ
Հաղորդակցման ուսուցում, դպրոցական գործունեություն կամ երիտասարդական խաղ. Ես բազմիցս օգտագործել եմ այս գործունեությունը ավագ դպրոցի աշակերտների հետ: Դա արվում է որպես մրցավազք, այնքան թիմերով, որքան ցանկանում եք: Այն հիմնված է Հեռախոսի հին խաղի վրա, որտեղ արտահայտությունը շշնջում են մեկից մյուսին, ընդհանրապես վերջը լուսավորված է
Moodle- ում գործունեություն գնահատելու համար օգտագործեք «Մեկ դիտում» էկրանը. 8 քայլ
Օգտագործեք «Մեկ դիտում» էկրանը ՝ գործունեությունը գնահատելու համար. Այս քայլ առ քայլ ուղեցույցը կօգնի ձեզ հասկանալ Moodle- ում գործունեության գնահատման հնարավոր եղանակներից մեկը: Այս մեթոդը կոչվում է մեկ դիտում և շատ ուսուցիչների կողմից նախընտրելի մեթոդ է Moodle- ում գնահատելիս: Կետերի արժեքները մուտքագրված են «Մեղք
Օրինակ Լաբորատորիայի գործունեություն. 8 քայլ
Լաբորատոր գործունեության օրինակ. Սա լաբորատոր ձեռնարկի օրինակ է, որը կօգնի ցույց տալու իմ սպասելիքները Լաբորատորիաներում և նախագծերում Instructables- ի օգտագործման վերաբերյալ: Այս լաբորատորիան կստեղծի պարզ երկուական հաշվիչ `կոճակի և երեք LEDS- ի օգնությամբ: Ինչպես տեսնում եք, այս պարզ նախագիծը բ