Բովանդակություն:
- Քայլ 1: Պահանջներ
- Քայլ 2: Կառուցեք ծրագրավորող
- Քայլ 3: Programրագրավորողի ծրագրակազմի տեղադրում
- Քայլ 4. Չիպի ծրագրավորում
- Քայլ 5: Հավաքում
- Քայլ 6: Կոդի բացատրություն
- Քայլ 7: Լրացուցիչ ռեսուրսներ
Video: Ներածություն 8051 ծրագրավորման AT89C2051- ով (Հյուրը ՝ Arduino) ՝ 7 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
8051-ը (հայտնի է նաև որպես MCS-51) 80-ականների MCU ձևավորում է, որն այսօր էլ մնում է հանրաճանաչ: 80ամանակակից 8051 համատեղելի միկրոկառավարիչները հասանելի են բազմաթիվ վաճառողներից ՝ բոլոր ձևերի և չափերի, ինչպես նաև ծայրամասային սարքերի լայն տեսականիով: Այս ուսանելի դասում մենք կանդրադառնանք Atmel- ից AT89C2051 MCU- ին:
AT89C2051- ը փոքր (2 Կբայթ Flash, 128 բայթ RAM), էժան (մեկ չիպի համար 40 1,40 դոլար) միկրոկառավարիչ է: Առանձնահատկություններ.
- 2.7-6V գործողություն
- 15 I/O տող
- 2 ժամաչափ (16 բիթ)
- Ներքին և արտաքին ընդհատումներ
- UART
- Չիպային անալոգային համեմատիչ
- Մինչև 2MIPS ՝ 24 ՄՀց ժամացույցով
Քայլ 1: Պահանջներ
Պահանջներ:
- Linux համակարգիչ (անհրաժեշտ ծրագրակազմ ՝ Arduino IDE, git, make, sdcc)
- Arduino UNO
- AT89C2051 չիպ (DIP20 փաթեթ)
- 20-պտույտ ZIF վարդակից
- Optocoupler (նախընտրելի է MOSFET- ելք)
- Arduino նախատիպի վահան
- 12 Վ էլեկտրամատակարարում
- 5 Վ էլեկտրամատակարարում
- 16 ՄՀց բյուրեղային տատանում
- 2x 30pF կոնդենսատոր
- 100nF կոնդենսատոր
- Դիոդ (օր. ՝ 1N400X)
- Ռեզիստորներ (1K, 3K3)
- Նախատախտակ
- Ցատկողներ
- Պղնձի մետաղալար
Ստուգեք անհրաժեշտ ծրագրակազմը.
որը պիթոն 3
որոնք որ sdcc որ git
Քայլ 2: Կառուցեք ծրագրավորող
Այս բաժինը կարճ կլինի, քանի որ ես որոշ ժամանակ առաջ կառուցեցի իմ ծրագրավորման վահանը: Ես կցել եմ հավաքված տախտակի սխեմատիկ պատկերը և նկարները: Սխեմատիկայի PDF- ը կարելի է գտնել շտեմարանում:
Դուք պետք է ծրագրավորեք ծրագրավորողի խորհուրդը.
1. Կլոնավորեք պահեստը:
git կլոն
2. Բացեք AT89C2051_programmer/AT89_prog/AT89_prog.ino ֆայլը Arduino IDE- ում:
3. Կառուցեք և վերբեռնեք էսքիզը Arduino IDE- ից:
Քայլ 3: Programրագրավորողի ծրագրակազմի տեղադրում
1. Ստեղծել պիթոնի վիրտուալ միջավայր:
python3 -m venv venv
. venv/bin/ակտիվացնել
2. Տեղադրեք at89overlord: at89overlord- ը բաց կոդով ծրագրավորող է AT89C2051 չիպի համար: Իմ աղբյուրի կոդը կարելի է գտնել այստեղ:
pip տեղադրել at89overlord
3. Ստուգեք տեղադրումը:
at89overlord -h
Քայլ 4. Չիպի ծրագրավորում
1. Կլոնավորել մի պարզ թարթման նախագիծ:
cd
git clone https://github.com/piotrb5e3/hello-8051.git cd բարև-8051/
2. Կառուցեք հավելվածը:
կատարել
3. Միացրեք Arduino- ն համակարգչին, միացրեք 12 Վ լարման աղբյուրը, տեղադրեք AT89C2051 չիպը ZIF վարդակից:
4. Տեղադրեք Arduino- ի սերիական նավահանգիստը:
ls /dev /tty*
5. Ներկառուցված IntelHex ֆայլը վերբեռնեք չիպի մեջ: Եթե ձեր Arduino- ի նավահանգիստը տարբերվում է /dev /ttyACM0- ից, ապա պետք է ճիշտ արժեքը փոխանցեք -p հրամանի տողի պարամետրով:
at89overlord -f./hello.ihx
Քայլ 5: Հավաքում
Հավաքեք սխեման ըստ սխեմատիկ: Պահեստում կարելի է գտնել PDF տարբերակ:
Դուք պետք է տեսնեք կանաչ LED լուսարձակը ՝ մոտ 0.5 Հց հաճախականությամբ:
Քայլ 6: Կոդի բացատրություն
#ներառում
#ներառում
Մենք սկսում ենք sdcc- ից ներառելով AT89X051 վերնագիրը: Այն պարունակում է մակրոներ ռեգիստրների հետ փոխազդելու համար, կարծես դրանք փոփոխականներ են: Մենք նաև ներառում ենք stdint.h, որը պարունակում է uint8_t և uint16_t ամբողջ տեսակի տեսակների սահմանումներ:
// Ենթադրելով, որ տատանողը 16 ՄՀց է
#սահմանել INTERRUPTS_PER_SECOND 5208
Ընդհատումը տեղի է ունենում, երբ Timer0- ը դուրս է գալիս: Այն կազմաձևված է որպես մեկ 8 բիթ ժամաչափ, այնպես որ դա տեղի է ունենում յուրաքանչյուր 2^8 պրոցեսորային ցիկլերի ընթացքում: Մեկ պրոցեսորային ցիկլը տևում է 12 ժամացույցի ցիկլ, և այսպիսով մենք հասնում ենք 16000000/12/2^8 = 5208.33333:
անկայուն uint8_t led_state = 0;
անկայուն uint16_t timer_counter = INTERRUPTS_PER_SECOND;
Մենք հայտարարում ենք գլխավորած պետական վերահսկողություն և ընդհատում ենք հաշվիչի փոփոխականները:
դատարկ ժամանակաչափ 0_ISR (անվավեր) _ ընդհատում (1) {
ժամանակաչափ_հաշվիչ--; if (timer_counter == 0) {led_state =! led_state; timer_counter = INTERRUPTS_PER_SECOND; }}
Ամեն անգամ, երբ Timer0- ը դուրս է գալիս հաշվիչից, հաշվիչը նվազում է: Եթե այն հավասար է զրոյի, այն վերակայվում է, և led վիճակը փոխվում է: Սա տեղի է ունենում վայրկյանում մեկ անգամ, որի արդյունքում ~ 0.5 Հց LED լուսարձակի հաճախականությունը:
int main () {
TMOD = 0x3; // Timամաչափի ռեժիմ - 8 բիթ, առանց նախնական չափման սարքի: հաճախականություն = OSCFREQ/12/2^8 TL0 = 0; // Մաքրել հաշվիչ TH0 = 0; // Մաքրել գրանցամատյանը TR0 = 1; // Setամաչափի գործարկում սահմանել: ET0 = 1; // Սահմանել ընդհատում: EA = 1; // Սահմանել գլոբալ ընդհատում: իսկ (1) {if (led_state) {P1 = 0xFF; } այլ {P1 = 0x00; }}}
Մենք կարգավորում ենք ժմչփի մոդուլը և սպասում փոփոխությունների led վիճակի կառավարման փոփոխականում: TMOD- ը ժամաչափի ռեժիմի կառավարման գրանցամատյան է: TL0 և TH0- ը Timer0 կառավարման մատյաններ են: ET0- ը ժամաչափի կառավարման գրանցամատյանում (TCON) միացման-ժամանակաչափ 0 բիթն է: TR0- ն և EA- ն ընդմիջումների միացման գրանցամատյանում (IE) բիթեր են:
Քայլ 7: Լրացուցիչ ռեսուրսներ
- AT89C2051 տվյալների թերթ ՝
- Փոքր սարք C կազմող (sdcc) ՝
- 8051 ռեսուրսներ ՝
- AT89C2051 ծրագրավորողի շտեմարան ՝
- բարև -8051 շտեմարան ՝
Խորհուրդ ենք տալիս:
DIY ծրագրավորման մալուխ ՝ օգտագործելով Arduino Uno - Baofeng UV -9R Plus: 6 քայլ (նկարներով)
DIY ծրագրավորման մալուխ Arduino Uno-Baofeng UV-9R Plus- ի միջոցով: Ողջույն, սա պարզ ուղեցույց է այն մասին, թե ինչպես կարելի է ձեր Baofeng UV-9R (կամ գումարած) ականջակալների / ականջակալի մալուխը ծրագրավորման մալուխի վերածել Ardunio UNO- ի միջոցով որպես USB: Սերիական փոխարկիչ: [ՀՐԱՏԱՐՈԹՅՈՆ] Ես պատասխանատվություն չեմ կրում որևէ վնաս պատճառելու համար
8-Pin ծրագրավորման վահան. 14 քայլ (նկարներով)
8-Pin ծրագրավորման վահան. 8-Pin ծրագրավորման վահանը թույլ է տալիս ծրագրավորել ATtiny շարքի չիպերը ՝ օգտագործելով Arduino- ն որպես ծրագրավորող: Այլ կերպ ասած, դուք այն միացնում եք ձեր Arduino- ին և այնուհետև կարող եք հեշտությամբ ծրագրավորել 8-պինանոց չիպսեր: Այս փոքր միկրոկոնտրոլերներն այնուհետև կարող են լինել
LED ժամացույց օգտագործելով 555 և 4017 (ծրագրավորման կարիք չկա). 8 քայլ (նկարներով)
LED ժամացույց օգտագործելով 555 և 4017 (ծրագրավորման կարիք չկա). Այստեղ ես կներկայացնեմ նախագիծ, որը ես նախագծել և պատրաստել եմ մոտ 7 տարի առաջ: Նախագծի գաղափարն այն է, որ 4017- ի նման հաշվիչ IC- ներն օգտագործեն ազդակներ, որոնք վերահսկում են LED- ների առկայծումը անալոգային ժամացույցի սլաքներ
ATMEGA328 Bootloader ծրագրավորման վահան Arduino Uno- ի համար. 3 քայլ (նկարներով)
ATMEGA328 Bootloader Programming Shield Arduino Uno- ի համար. ATMEGA328P boot-loader ծրագրավորման վահան Arduino- ի համար Uno Երբեմն դա տեղի է ունենում և դուք վնասում եք ձեր Arduino Uno Atmega328P միկրոպրոցեսորը: Դուք կարող եք փոխել պրոցեսորը: Բայց նախ անհրաժեշտ է ծրագրավորել boot-loader- ը դրա մեջ: Այսպիսով, այս ձեռնարկը, թե ինչպես պատրաստել այս բ
Ինչպես հեշտությամբ փոփոխել «Light/LED» նշանը հեշտ Arduino ծրագրավորման համար. 7 քայլ (նկարներով)
Ինչպես հեշտությամբ փոփոխել «Լույս/լուսադիոդ» նշանը հեշտ Arduino ծրագրավորման համար. Այս ուսանելի ծրագրում ես ցույց կտամ, թե ինչպես կարող է որևէ մեկը լույսերով ինչ -որ բան վերածել ծրագրավորվող արդուինոյի առկայծող լույսերի կամ " Շարժվող լույսեր "