Չիպի վարորդի 7 հատվածի նիշերի ցուցիչներ: Լրացուցիչ բացատրություններ էֆեկտների վերահսկման վերաբերյալ

Տարբերակիչ հատկանիշներ.

  • Բարձր արագությամբ 26 ՄՀց SPI/QSPI/MICROWIRE™ համատեղելի սերիական ինտերֆեյս
  • Մատակարարման լարումը 2,7 Վ-ից մինչև 5,5 Վ
  • Ապահովում է ցուցանիշների կառավարում.
    մինչև 16 նշանային նիշ (7 հատված)
    մինչև 8 նշանային նիշ (14 հատված)
    մինչև 128 դիսկրետ LED
    ցուցանիշների տեսակների համադրություն
  • Ապահովում է մոնոխրոմ և երկգույն ընդհանուր կաթոդ LED-ների կառավարում
  • Ներկառուցված 104 նիշանոց ASCII տառատեսակ 14 և 16 հատվածների էկրանների համար և վեցանկյուն տառատեսակ 7 հատվածի էկրանների համար
  • Ավտոմատ թարթման հսկողություն յուրաքանչյուր հատվածի համար
  • Անջատման ռեժիմ՝ էներգախնայողությամբ, ընթացիկ սպառումը 10 µA (տիպ.)
  • 16 քայլ թվային մթության մակարդակի վերահսկում
  • Ցուցանիշի մաքրում միացված վիճակում
  • Սեգմենտի վարորդներն ունեն սահմանափակման արագության սահմանափակում՝ EMI-ի սահմանափակման համար
  • Հինգ մուտքային նավահանգիստներ հիմնական նպատակ, գլխավոր նպատակկարող է կազմաձևվել մինչև 32 ստեղնների հարցում և անջատել՝ միաժամանակ սեղմելով n ստեղները
  • IRQ-ի ընդհատման ելքը սկանավորման ստեղնաշարի անջատման ռեժիմում
  • 36-pin SSOP և 40-pin DIP փաթեթներ
  • Ստանդարտ տարբերակ՝ ավտոմեքենայի աշխատանքային ջերմաստիճանի տիրույթով

Օգտագործման ոլորտները.

  • Հեռուստացույցներ, ապակոդավորիչներ
  • Թվային չափիչ գործիքներ
  • Կենցաղային տեխնիկա
  • Ավտոմոբիլային հավելվածներ
  • Թվային գրաֆիկական ցուցիչներ
  • Աուդիո/վիդեո սարքավորումներ

Ֆունկցիոնալ դիագրամ.

Տիպիկ անջատիչ միացում.

Pin դասավորում:

Նկարագրություն:

MAX6954-ը ցուցիչի կոմպակտ դրայվեր է, որն ապահովում է միկրոպրոցեսորի համընկնումը 7/14 և 16 հատվածի մի շարք LED ցուցիչների հետ՝ օգտագործելով 4 լարը, սերիական SPI™ կամ QSPI™ համատեղելի ինտերֆեյս: Սերիական ինտերֆեյսը կարող է կասկադավորվել բազմաթիվ IC-ներով: MAX6954-ն ունակ է վարելու ցուցիչներ, որոնք պարունակում են՝ մինչև 16 նիշ (7 հատված); մինչև 8 նշանի նիշ (14 հատված); մինչև 128 դիսկրետ լուսադիոդներ, ցածր մատակարարման լարման դեպքում՝ սկսած 2,7 Վ-ից: Վարորդն ունի հինգ I/O ընդարձակող ալիք (կամ ընդհանուր նշանակության I/O պորտեր), որոնցից մի քանիսը կամ բոլորը կարող են կազմաձևվել հարցման և անջատման համար։ մատրիցային ստեղնաշար, որը բաղկացած է առավելագույնը 32 բանալիից։

IC-ում ներկառուցված են՝ լրիվ 104 նիշ, 14 և 16 հատվածների ASCII տառատեսակ, տասնվեցական տառատեսակ 7 հատվածի ցուցիչների համար, մուլտիպլեքսային սկանավորման սխեմաներ, կաթոդի և անոդի դրայվերներ և ստատիկ RAM, որը պահպանում է յուրաքանչյուր բիտի վիճակը: Բոլոր ցուցիչի թվանշանների համար հատվածի առավելագույն հոսանքը սահմանվում է մեկ արտաքին ռեզիստորի միջոցով: Լիցքաթափման փայլի ինտենսիվությունը կարող է ինքնուրույն կարգավորվել յուրաքանչյուր արտանետման համար՝ օգտագործելով ներկառուցված 16 քայլ թվային պայծառության կառավարման համակարգը: MAX6954-ն ունի էներգախնայողության ռեժիմ, սկանավորման սահմանաչափի ռեգիստր, որը թույլ է տալիս օգտատիրոջը սահմանել էկրանը 1-ից մինչև 16 նշանի նիշ, հատվածի թարթման կառավարման համակարգ (անհրաժեշտության դեպքում՝ սինխրոնացված մի քանի վարորդի շահագործման համար) և թեստային ռեժիմ, որը ստիպում է բոլոր LED-ներին միացնել հատվածները միացված դիրքի: LED սեգմենտի վարորդներն ունեն EMI-ի սահմանափակման արագության սահմանափակիչ:

Ուֆֆ... Վերջապես հասա զոդման երկաթին: Հիմա մի հետաքրքիր բան անենք։

Մենք հավաքելով ասում էինք «Ա», հիմա ուղղակի պետք է «B» ասենք և ելքային սարք պատրաստենք, ինչն էլ այսօր կանենք։ Որպես «B» սարք մենք կունենանք 7 հատվածի ցուցիչ։ Բայց ոչ միայն մեկ ցուցիչ, այլ յոթ հատվածի ցուցիչների մի ամբողջ գիծ, ​​անսահմանափակ երկարությամբ և ցուցադրման էֆեկտների մի փունջով: Հետաքրքի՞ր է: Դե ուրեմն, եկեք սկսենք:

Յոթ հատվածի ցուցիչները բավականին երկիմաստ ցուցադրման սարքեր են: Շնորհիվ այն բանի, որ դրանք նախատեսված են թվեր ցուցադրելու համար (չնայած, իհարկե, տառերը նույնպես կարող են ցուցադրվել, բայց ավելի շուտ պայմանականորեն և ոչ բոլորը), դրանց կիրառման շրջանակն այնքան էլ լայն չէ։ Բայց լինում են դեպքեր, երբ անհրաժեշտ է թվերի վառ ու հստակ ցուցադրում, որը, ընդ որում, պետք է տեսանելի լինի հեռվից, իսկ հավասար յոթ հատվածներ չկան։

Հաճախ, երբ խոսքը վերաբերում է յոթ հատվածի ցուցիչներին, ենթադրվում է, որ դրանք ներառված են դինամիկ ցուցիչի միացումում, մինչդեռ հերթով լուսավորվում է միայն մեկ նիշ, և 50 Հց-ից բարձր հաճախականության դեպքում պատրանք է ստեղծվում, որ բոլոր նիշերը լուսավորված են: միեւնույն ժամանակ. Այս սխեման այնքան տարածված է, որ 3-4 նիշանոց ցուցիչները ելքեր ունեն միայն դինամիկ ցուցումների համար: Ներառման այս մեթոդը, իհարկե, ունի իր առավելությունները, բայց երբ մենք խոսում ենքթվանշանների քանակի մասին չորսից ավելի է (և նույնիսկ ավելին, եթե հայտնի չէ, թե քանիսն ընդհանրապես կլինեն) - խնդիրները սկսվում են այս շատ դինամիկ ցուցումով. փայլի պայծառությունը նվազում է, թարթումը դառնում է նկատելի: Ակնհայտ է, որ անսահմանափակ երկարությամբ յոթ հատվածի ցուցիչների գծի համար ներառման այս մեթոդը բացարձակապես հարմար չէ: Ինչպե՞ս լինել նման դեպքում։ Եկեք գործենք ոչ ստանդարտ - մենք միացնենք մեր ցուցիչները ստատիկ (հաստատուն) փայլի համար: Նման կապը հնարավոր դարձնելու համար մեզ անհրաժեշտ են միանիշ յոթ հատվածի ցուցիչներ. այստեղ, օրինակ, հետևյալն են.

Բացի այդ, ցուցիչի ցանկալի հատվածները լուսավորելու համար մեզ անհրաժեշտ է LED վարորդ: Որպեսզի չբարձրացնենք մեր գծի արժեքը (վարորդի չիպը բավականին թանկ է), մենք կօգտագործենք էժան և սովորական հերթափոխի ռեգիստրներ. 74HC164. Սա մի փոքր կվատթարացնի փայլի պայծառությունը, բայց զգալիորեն կնվազեցնի ամբողջ սարքի արժեքը: Գիծը կառավարելու համար մենք կօգտագործենք միկրոկոնտրոլեր: ATtiny13- քեզ ավելին պետք չէ: Shift ռեգիստրները վերահսկվում են ընդամենը երկու տողով ( Տվյալներ, Ժամացույց) և հաջորդաբար միացված են, ինչը նշանակում է, որ ռեգիստրի կառավարման սխեմայի համար տարբերություն չկա, քանիսն են երեք կամ հարյուր քսաներեք տողում: Սա նշանակում է, որ մենք կարող ենք մեր քանոնը դարձնել առանց հարթության, այսինքն՝ ցանկացած պահի կարող եք լրացուցիչ ցուցիչներ միացնել քանոնին կամ հեռացնել ավելորդները։ Սարքի դիագրամը հետևյալն է.

Ինչպես երևում է դիագրամից, 74HC164 ռեգիստրով յոթ հատվածի ցուցիչները տեղադրվում են երկու կողմերում միակցիչներով առանձին տախտակների վրա, որպեսզի մի քանի ցուցիչներ կարողանան հավաքվել գծի մեջ: ATtiny13-ի կառավարման տախտակը (գծային վարորդը) վերահսկում է բոլոր ցուցիչները՝ անկախ դրանց քանակից: Ավելին, որոնվածը հնարավորություն է տալիս գծի մեջ ցուցիչները խառնել ընդհանուր անոդով և ընդհանուր կաթոդով: Նիշերը ցուցադրվում են աջից ձախ: Ցուցադրման այս տարբերակը հարմար է այն դեպքում, երբ հայտնի չէ, թե քանի ցուցիչ է ներառված տողում. մուտքագրված վերջին նիշերը միշտ առաջին ցուցիչներում են: Բացի տվյալների ազդանշանից ( Տվյալներ) և տվյալների ժամացույցի ազդանշան ( Ժամացույց), վարորդը ազդանշան է առաջացնում « /ՕԷ» (Ակտիվացնել ելքը), որպեսզի խուսափենք հատվածների թարթումից՝ պատյանով նիշերը տեղափոխելիս: Գրանցամատյանում տվյալները տեղափոխելու պահին վարորդը գծի վրա դնում է /OE բարձր մակարդակ, այս ազդանշանի մակարդակի ցուցիչի կառավարման սխեման պետք է արգելի տվյալների ելքը ցուցիչին: Այս սխեմայի ձևավորման մեջ այս ազդանշանը չի օգտագործվում 74HC164 հերթափոխի ռեգիստրներում կապի բացակայության պատճառով, որը ելքերը փոխում է բարձր դիմադրության վիճակի, բայց դուք կարող եք օգտագործել այս ազդանշանը ցուցիչի ընդհանուր ելքը անջատելու համար (միջոցով տրանզիստոր) կամ օգտագործեք մեկ այլ միկրոշրջան, որն ունի համապատասխան մուտք:

Սարքի շահագործման ալգորիթմ.
Ես երկար էի մտածում, թե ինչպես կարելի է քանոնի կառավարումը դարձնել պարզ և ոչ ծանրաբեռնված ձեր նախագծի միկրոկոնտրոլերի համար։ հիմնական նպատակը, որը ես հետամուտ էի, հնարավորինս փոխանցել գծային վարորդին կառավարման գործառույթները, բայց միևնույն ժամանակ չկորցնել ձեր նախագծից ճկուն վերահսկողության հնարավորությունը։ Արդյունքում մշակվել է հետևյալ ալգորիթմը.

Քանոնի վարորդը փոխազդում է ձեր նախագծի հետ UART(Արագություն 9600 , 8 տվյալների բիթ, 1 stop bit, հավասարության բիթ Ոչ) Վարորդը աշխատում է և՛ ստանալու, և՛ փոխանցելու համար (թեև վերջինս այնքան էլ կարևոր չէ և կարող է լինել այս հնարավորությունըմի օգտագործեք՝ դրանով իսկ նվազեցնելով վարորդի հսկողությունը մինչև մեկ տող):
Թվերը, լատինատառերը, կառավարման նիշերը կարող են փոխանցվել վարորդին։ Փոխանցումն իրականացվում է ASCII կոդով (օրինակ՝ թվեր՝ «123», տառեր՝ «Abc», հսկիչ նիշեր՝ «>»): Մյուս կերպարներն անտեսվում են:

Վարորդը, UART-ի միջոցով, ուղարկում է նիշերը էֆեկտների ավարտի համար: Նրանցից միայն երկուսն են. Վ«Եվ» Դ«. Սա անհրաժեշտ է, որպեսզի իմանաք, թե երբ է ավարտվել էֆեկտը, և դուք կարող եք ուղարկել հաջորդ էֆեկտի հրամանը՝ բարդ բարդ էֆեկտներ ձևավորելու համար:

Ցուցադրման համար փոխանցված լատինական այբուբենի թվերն ու տառերը գրվում են բուֆերի վրա (բուֆերի չափը կարող է լինել 16, 32, 64 նիշ և ընտրվում է ըստ նախագծի կարիքների): Բուֆերային արտահոսք չկա, այն ցիկլային է (նոր նիշերը գրվում են ամենահինների վրա): Վերահսկիչ նիշերը գրված չեն բուֆերում. նրանք ակտիվացնում են իրենց գործառույթները անմիջապես UART-ի միջոցով ստանալուց հետո (օրինակ՝ «abcd>» և «ab>cd» տողերն ուղարկելիս արդյունքը կլինի նույնական): Նշանները բուֆերից հասնում են ցուցիչների գիծ, ​​և դրանց ցուցադրման ձևը կախված է ակտիվացված էֆեկտներից: Այս տարբերակը նվազագույն ռեսուրս է պահանջում ձեր նախագծի վերահսկիչի համար, քանի որ բուֆերում մուտքագրված նիշերի տողը ցուցադրվում է տարբեր էֆեկտներով՝ օգտագործելով միայն վարորդական ռեսուրսները:

Լռելյայնորեն, վարորդը ցուցադրում է ստացված նշանները քանոնի վրա առանց որևէ էֆեկտի: Եթե ​​թվերը կամ լատինատառերը փոխանցվում են UART-ի միջոցով (օրինակ՝ «1», «4», «A», «S» «d» ...), դրանք անմիջապես կցուցադրվեն քանոնի վրա աջից ձախ, և հաջորդ նիշը նախորդը կտեղափոխի ձախ:
Ստորև բերված է բոլոր նիշերի նկարագրությունը, որոնք կարող են ուղարկվել վարորդին:


Ցուցադրված նիշերը:
Վարորդը կարող է ցուցադրել լատինական այբուբենի թվեր և տառեր (մեծ և փոքրատառերը ցուցադրվում են նույնը), ինչպես նաև բացատ և տասնորդական կետ:


Վերահսկիչ կերպարներ.
Քանոնի գործառնական ռեժիմն ընտրելու կամ հատուկ էֆեկտներ ակտիվացնելու համար հատուկ նիշերը պետք է փոխանցվեն UART-ի միջոցով: Ինչպես ավելի վաղ գրել էի, կառավարման նիշերը սկսում են աշխատել UART-ի միջոցով ստանալուց անմիջապես հետո, և նրանք չեն մտնում բուֆեր: Համապատասխանաբար, դրանք կարող են ուղարկվել անմիջապես հաղորդագրության տողում:
Օրինակ«_Abc>», որտեղ «Abc»-ը ցուցադրվող հաղորդագրությունն է, իսկ «_»-ը և «>»-ը կառավարման նիշերն են:


Ահա ցուցիչների գործողության ռեժիմը կառավարող նշանների ցանկը.

«)» - բուֆերը ինքնաբերաբար ցուցադրելու թույլտվություն(միացված է լռելյայնորեն):
Երբ ավտոմատ թարմացումը միացված է, բուֆերը, որոշակի ժամանակահատվածով, վերագծվում է քանոնի վրա: UART-ի միջոցով ստացված և բուֆերին գրված յուրաքանչյուր նիշ անմիջապես կցուցադրվի քանոնի վրա:

«(» – բուֆերի ավտոմատ ցուցադրման արգելք:
UART-ի միջոցով ստացված բոլոր նիշերը շարունակում են գրվել վարորդի բուֆերում, բայց տողում փոփոխություններ չեն կատարվում («վերջին հաղորդագրությունը վառված է»): արգելել ավտոմատ թարմացումքանոններ կարող են անհրաժեշտ լինել, եթե ձեզ անհրաժեշտ է ցուցադրել ամբողջ տողը միանգամից, և ոչ թե նիշ առ նիշ, կամ հաջորդ հաղորդագրությունը առանց նախորդը փոխելու պատրաստելու համար:
Օրինակ UART-ի միջոցով փոխանցված «(2314» տողը ոչ մի կերպ չի ցուցադրվի քանոնի վրա, բայց այն կգրվի բուֆերում: Եթե հետագայում միացնեք ավտոմատ ցուցադրումը - «)», ապա քանոնի վրա մենք կտեսնենք մեր բառը «2314». Հաղորդագրության ամբողջ գիծը ցուցադրելու համար, և ոչ թե UART-ի միջոցով նիշերի փոխանցման փաստով, դուք պետք է ուղարկեք հետևյալ համակցությունը «(2314)»: Սա ճիշտ է, եթե 2, 3, 1, 4 նիշերը չեն փոխանցվում UART-ի միջոցով անմիջապես, բայց որոշակի ժամանակում:

«!» - բուֆերի հարկադիր ելքը դեպի գիծ.
Այն անհրաժեշտ է քանոնի վրա բուֆերը մեկ անգամ ցուցադրելու համար, երբ ավտոմատ թարմացումն անջատված է:
Օրինականջատված է ավտոմատ ցուցադրումը «(», փոխանցված նիշերը «2314», ստիպողաբար ցուցադրել դրանք «!»:

«_» (ընդգծում) - բուֆերի մաքրում:
Այս նիշը ստանալուց հետո բուֆերը անմիջապես կջնջվի: Եթե ​​ավտոմատ բուֆերի ցուցադրումն անջատված է, քանոնում ոչ մի փոփոխություն չի կատարվի, քանի որ միայն բուֆերն է մաքրվում: Քանոնը մաքրելու համար այս դեպքում անհրաժեշտ է սկսել բուֆերի ավտոմատ ցուցադրումը կամ ուղարկել հարկադիր բուֆերի ելքային նշանը «!»:

”[“ – միացնել նիշերի հակադարձման ռեժիմը:
Invert ռեժիմում տողի վրա ցուցադրվող նիշերը շրջված են (քիթ առ բիթ): Այս ռեժիմը անհրաժեշտ է, եթե ձեզ հաջողվել է ցուցիչները խառնել ընդհանուր անոդով և ընդհանուր կաթոդով մեկ տողի մեջ: Երբ հակադարձ ազդանշան է կիրառվում հակառակ կապի ցուցիչի վրա, վերջինս ճիշտ կցուցադրի նշանը: Նույնիսկ եթե ցուցիչների ամբողջ գիծը չի համընկնում նիստի սկզբում որոնվածի հետ, բավական է ուղարկել «[» նշանը, և ամեն ինչ ճիշտ կաշխատի:

«]» – անջատել նիշերի հակադարձման ռեժիմը (միացված է լռելյայն):
ՕրինակԵթե ​​որոնվածը նախատեսված է ընդհանուր անոդով ցուցիչների համար, և ցուցիչները միացված են այսպես՝ OA-OK-OA: Անցնում ենք «35» տողը քանոնի վրա ստանում ենք 345, եթե այսպես՝ «345», ապա ստանում ենք «3-dash-what-5»:

«*» - տիրակալի բովանդակության կերպար առ կերպար «անհետացում»:
Քանոնի վրայի սիմվոլները հաջորդաբար մարում են իրենց հատվածները, մինչև դրանք ամբողջությամբ «անհետանան» (բուֆերի պարունակությունը մնում է անձեռնմխելի): Էֆեկտի վերջում խորհրդանիշը « Դ

«^» – տիրակալի բովանդակության կերպար առ կերպար «դրսեւորում»։
Քանոնի վրայի սիմվոլները հաջորդաբար լուսավորում են իրենց հատվածները, մինչև դրանք ամբողջությամբ «դրսևորվեն» (բուֆերի պարունակությունը մնում է անձեռնմխելի): Էֆեկտի վերջում խորհրդանիշը « ԴԱվտոմատ բուֆերային քարտեզագրումը միացված է:

Էֆեկտն ավարտելու համար ցուցիչների տողը պետք է դատարկ լինի, բուֆերի ավտոմատ ցուցադրումն արգելված է, իսկ բուֆերը պետք է պարունակի մշակված բառ (դա կարելի է անել հետևյալ տողով «)_! մշակված բառ»): Այս ազդեցությունը լավ է նախորդ բառի «*»-ով անհետանալուց հետո:


Հորիզոնական ոլորման համար կառավարման նիշերի փաթեթ (սողացող գիծ):
Փաթեթը թույլ է տալիս կազմակերպել վազող գիծ բուֆերի պարունակությունից: Ձեզ անհրաժեշտ է ընդամենը տողը տեղադրել բուֆերի մեջ և շարժման ուղղությունը սահմանել կառավարման նշանով, մնացածը կանի վարորդը:

«>» - Քանոնի բովանդակության ավտոմատ ոլորում դեպի աջ(նշում):

“<“ – Автоматический скроллинг содержимого линейки влево (նշում):
Բուֆերի պարունակությունը չի փոխվել: Էֆեկտը անսահման է (շրջանաձև շարժում), UART-ի վրա ոչ մի նիշ չի վերադարձվում: Դուք կարող եք կանգ առնել «|» նշանով:

«|» - Դադարեցրեք ոլորումը:
Ցուցադրման դիրքը վերադառնում է նորմալ վիճակի:


Վերահսկիչ նիշերի փաթեթ ուղղահայաց տեղաշարժի համար:
Այս էֆեկտների փաթեթը թույլ է տալիս կազմակերպել մի քանի հետաքրքիր էֆեկտներ, ինչպիսիք են մենյուի տարրերի միջոցով շարժումների մոդելավորումը; ծառայության որոշ տեղեկությունների պարբերական ցուցադրում (օրինակ՝ ժամը, ժամացույցը ներքևից սեղմելով և այնտեղից հեռացնելով) և այլն։

"\" - Ուղղահայաց տեղաշարժ - քանոնների նիշերի տեսքը դեպի վեր(տեսքը վերև՝ դատարկ տարածությունից մինչև լրիվ նիշ): Էֆեկտի վերջում խորհրդանիշը « Վ

«/» – Քանոնների նիշերի ուղղահայաց տեղաշարժ-անհետացում դեպի վեր(խամրում է - լրիվ նիշից դատարկ տարածություն): Էֆեկտի վերջում խորհրդանիշը « Վ» և բուֆերի ավտոմատ քարտեզագրումն անջատված է:

«:“ - Ուղղահայաց տեղաշարժ - քանոնի նշանների տեսքը ներքև(արտաքին տեսք ներքև՝ դատարկ տարածությունից մինչև լրիվ նիշ): Էֆեկտի վերջում խորհրդանիշը « Վ», միացված է ավտոմատ բուֆերային քարտեզագրումը:

«;» – Քանոնների նիշերի ուղղահայաց տեղաշարժ-անհետացում(մարել - լրիվ նիշից դատարկ տարածություն): Էֆեկտի վերջում խորհրդանիշը « Վ» և բուֆերի ավտոմատ քարտեզագրումն անջատված է:

Ահա փաթեթի էֆեկտների օգտագործմամբ մենյուի նավիգացիայի իրականացման օրինակ.

Եվ սա տեղեկատվական հաղորդագրության օրինակ է.


Կառավարման նիշերի փաթեթ՝ էֆեկտների արագությունը փոխելու համար:
Հետևյալ նշանները փոխում են էֆեկտների փոխանցման արագությունը:

«-» - նորմալ արագությունը միացված է:

«+» - ավելացված արագությունը միացված է:

Էֆեկտների կառավարման լրացուցիչ բացատրություններ:

- Բոլոր էֆեկտներն աշխատում են միմյանցից անկախ: Սա նշանակում է, որ դուք կարող եք միաժամանակ մի քանի էֆեկտներ գործարկել: Լարի նման « _Սկսել>*;»-ը կմաքրի բուֆերը, մեջը կգրի «START» բառը, կսկսի պտտվող գիծը դեպի աջ, վազքի ընթացքում այն ​​կվերանա հատված առ հատված և, բացի այդ, կիջնի ներքև։ Տարբեր կոմբինացիաների օգնությամբ դուք կարող եք ստանալ բոլորովին նոր էֆեկտներ։ Փորձ!

- Փոխադարձ բացառող հրամաններ տալիս, օրինակ.<” и “>- վերջինը կաշխատի - «>»:

- Հատուկ էֆեկտների գործողության ընթացքում դուք կարող եք լրացնել բուֆերը նոր բառերով: Նրանք անմիջապես կսկսեն մասնակցել էֆեկտին։

- Ակնհայտ է, որ եթե ցուցիչների թիվը պակաս է բուֆերի չափից, ապա կցուցադրվեն միայն վերջին մուտքագրված նիշերը, որոնք տեղավորվում են ցուցիչների քանակի մեջ: Հակառակ դեպքում, եթե բուֆերը պակաս է ցուցիչների քանակից, ապա ցուցիչների վրա բուֆերը կկրկնվի ցիկլային եղանակով:


Ընդհանուր անոդով (OA) ցուցիչների որոնվածը
- ATtiny13 վարորդի որոնվածը 7 հատվածի ցուցիչի գծի համար: Բուֆեր - 16 նիշ: Ցուցանիշներ ընդհանուր անոդով:
- ATtiny13 վարորդի որոնվածը 7 հատվածի ցուցիչի գծի համար: Բուֆեր - 32 նիշ: Ցուցանիշներ ընդհանուր անոդով:

Ընդհանուր կաթոդով ցուցիչների որոնվածը (OK)
- ATtiny13 վարորդի որոնվածը 7 հատվածի ցուցիչի գծի համար: Բուֆեր - 16 նիշ: Ընդհանուր կաթոդային ցուցիչներ.
- ATtiny13 վարորդի որոնվածը 7 հատվածի ցուցիչի գծի համար: Բուֆեր - 32 նիշ: Ընդհանուր կաթոդային ցուցիչներ.

Բոլոր որոնվածի ապահովիչները նույնն են
- Fzy գծային վարորդի որոնվածի համար

Բուֆերի չափը պետք է ընտրվի հնարավորինս փոքր: Ավելի փոքր բուֆերն ավելի քիչ աղմուկ է առաջացնում ցուցիչի հատվածների հետ գծերի տեղաշարժերի և թարմացումների ժամանակ (սա վերաբերում է միայն սխեմաներին, որոնք չեն ցրվում /OE ազդանշանով):

Այսօր կներկայացվի մեկ այլ միջոց՝ միկրոկոնտրոլերի ոտքերի մի փունջ փրկելու համար այն դեպքերում, երբ անհրաժեշտ է միացնել յոթ հատվածի LED ցուցիչները: Խոսքը կլինի մասնագիտացված վարորդ օգտագործելու մասին MAX7221 է վարորդները թույլ են տալիս կառավարել յոթ հատվածի ցուցիչները (ընդհանուր կաթոդով), LED գծերը կամ կարող եք օգտագործել այն միաժամանակ մինչև 64 LED կառավարելու համար: Վարորդներն իրենք կառավարվում են SPI ինտերֆեյսի միջոցով՝ առավելագույն աջակցվող միջերեսային հաճախականությամբ մինչև 10 ՄՀց:

Միկրոշրջանի ոտքերի ծայրը.

1 - DIN.Սերիական տվյալների մուտքագրում. Տվյալները բեռնվում են 16-բիթանոց հերթափոխի ռեգիստրում ժամացույցի ազդանշանի բարձրացող եզրին:

2,3,5-8,10,11 - DIG0-DIG7:Միացման կապում ընդհանուր կաթոդներցուցանիշները։

4.9 - GND.Վերգետնյա տերմինալներ

12-Բեռնել (CS) MAX7221-ում տվյալները բեռնվում են ընդունման հերթափոխի ռեգիստրում միայն այն դեպքում, երբ CS ազդանշանը գտնվում է ցածր մակարդակ(այսինքն միայն այն դեպքում, երբ չիպը «ընտրված է» SPI ինտերֆեյսի առումով): Վերջին 16 ստացված բիթերը նույնպես պահվում և մշակվում են, դա տեղի է ունենում նաև CS ազդանշանի բարձրացող եզրին:

13-CLK.Ժամացույցի ազդանշանի մուտքը, որի վրա գրված են տվյալները:

14-17, 20-23 - SEG A-SEG G, DP.Եզրակացություններ յոթ հատվածի ցուցիչների հատվածների միացման համար.

18 - ISET.Այս ելքին միացված է դիմադրություն (ռեզիստորի երկրորդ ոտքը դրական է), որը թույլ է տալիս սահմանել հատվածի գագաթնակետային հոսանքը և այդպիսով սահմանել հատվածների պայծառությունը: Այս ռեզիստորի նվազագույն դիմադրությունը պետք է լինի 9,53 կՕմ, որը մոտավորապես համարժեք է 40 մԱ հատվածի հոսանքի:

19 - V+.Այստեղ միացված է «+» հզորությունը:

24 - ԴԱՈՒԹ.Սերիական տվյալների ելք: Այս ոտքը անհրաժեշտ կլինի, եթե երկու կամ ավելի վարորդներ պետք է միացվեն միասին:

MAX7221 չիպի հետ աշխատելու սկզբունքը

Իրականում MAX7221-ը (և դրա անալոգային MAX7219-ը) սկզբունքորեն նման է 74HC595 ռեգիստրին, միակ տարբերությամբ, որ 16 բիթ տվյալներ են բեռնված չիպի մեջ: Բեռնված առաջին 8 բիթերը պահանջվում են ռեգիստրը ընտրելու համար, որտեղ պետք է տվյալները գրվեն: Հաջորդ 8 բիթերը այն տվյալներն են, որոնք պետք է գրվեն ռեգիստրում: Ավելի պարզ ասած, մենք նախ միկրոսխեմային ասում ենք, թե որտեղ պետք է գրել տվյալները, իսկ հետո անհրաժեշտ տվյալները գրում ենք ընտրված հասցեին:

Հետաքրքիրն այս վարորդի համար այն է, որ այն ունի աշխատանքի երկու ռեժիմ: Առաջինը նորմալ բուֆերային ռեժիմում աշխատելն է՝ յուրաքանչյուր հատվածի անմիջական հսկողությամբ:

Երկրորդ ռեժիմը, այսպես կոչվածBCD կոդը B , որը թույլ է տալիս պարզեցնել տեղեկատվության ելքը դեպի ցուցիչ՝ ներկառուցված նիշերի ապակոդավորման շնորհիվ։ Ի դեպ, շատ քիչ նշաններ կան, ընդամենը 16-ը. սրանք 0-9 թվերն են, «-» նշանը, դատարկ նշանը և 4 ցուլ՝ «E», «H», «L», «P» ( Հետաքրքիր է, ի՞նչ բառ կարող ես ասել :)) ։ Օրինակ, 2-րդ համարը երկրորդ բիթին դուրս բերելու համար մեզ անհրաժեշտ կլինի ուղարկել երկրորդ բիտի հասցեն (8 բիթ), այնուհետև ուղղակի ուղարկել երկու (ևս 8 բիթ): Գործողության այս ռեժիմի մասին մենք կխոսենք հաջորդ հոդվածում, այժմ մենք կքննարկենք օրինակ, թե ինչպես աշխատել վարորդի հետ ռեժիմում առանց վերծանման:

Վարորդին կառավարելու համար նախևառաջ պետք է ծանոթանալ ռեգիստրի հասցեի քարտեզին:

Գրանցվել ոչ opանհրաժեշտ է մի քանի վարորդներ միասին միացնելիս: Որպեսզի մուտք գործեք, օրինակ, շղթայի երրորդ վարորդը՝ առանց առաջին երկուսի աշխատանքի վրա ազդելու, դուք պետք է օգտագործեք «No-op» ռեգիստրը առաջին երկուսի համար: Քանի որ այս ռեգիստրի հասցեն զրոյական է, դա անելը շատ հեշտ է. նախ 16 ցիկլից մենք տվյալներ ենք ուղարկում երրորդ ռեգիստրի համար, այնուհետև տվյալների գիծը դնում ենք զրոյի և սեղմում ենք ևս 2 անգամ 16 ցիկլերի համար: Արդյունքում ուղարկված առաջին փաթեթը կբեռնվի երրորդ ռեգիստրում, իսկ հաջորդ երկու փաթեթները (ներբեռնված առաջին և երկրորդ ռեգիստրներում) կունենան զրոյական հասցե, այսինքն՝ մուտք կունենան «No-op» ռեգիստր։

Թիվ 0-7ռեգիստրներ, որոնք պատասխանատու են ցուցիչի բիթերը վերահսկելու համար: Թվերը համարակալված են ձախից աջ։ Սա շատ հարմար է, օրինակ, ցուցիչի վրա մեկ նիշ փոխելու համար մենք պտտվում ենք բիտի համար պատասխանատու ռեգիստրի հասցեով՝ դրանով իսկ չդիպչելով մնացած բոլոր բիթերին։

Գրանցվել Վերծանման ռեժիմպատասխանատու է վարորդի աշխատանքային ռեժիմների համար, որոնք նշվել են մի փոքր ավելի բարձր՝ նրանք կարող են սահմանել նիշերի վերծանման ռեժիմըBCD կոդը B և ապակոդավորման ռեժիմ չկաոչ մի վերծանում:

Ինտենսիվության ռեգիստրի միջոցով իրականացվում է ցուցիչի փայլի պայծառության ծրագրային (!) ճշգրտում: Համար հարմար իր տարբեր դեպքեր, էներգախնայողության հնարավորությունից մինչև սարքի տարբեր աշխատանքային ռեժիմների ցուցում։Ընդհանուր առմամբ կարելի է ընտրել պայծառության 16 մակարդակ:

Գրանցեք սկան սահմանաչափը սահմանված է օգտագործված ցուցիչի թվանշանների քանակը: Եթե ​​նախատեսում եք օգտագործել ոչ բոլոր 8-ը, այլ ավելի քիչ, ապա խորհուրդ է տրվում անջատել չօգտագործվածները։ Սա կորոշի ցուցիչի թարմացման արագությունը, ինչպես նաև հատվածների միջով գագաթնակետային հոսանքը: Երբ բոլոր 8 բիթերն ակտիվ են, թարմացման արագությունը մոտ 800 Հց է: Լիցքաթափումների քանակի նվազմամբ հաճախականությունը մեծանում է, այն կարելի է որոշել բանաձևով8*800/N (որտեղ N-ը թվանշանների թիվն է): Սեգմենտների միջով գագաթնակետային հոսանքը նույնպես մեծանում է, երբ չօգտագործված բիթերն անջատվում են:

Անջատման ռեգիստրի միջոցով կարող եք միացնել էներգախնայողության ռեժիմը, որում բոլոր ցուցիչները դուրս են գալիս, ռեգիստրների տվյալները և վիճակը չեն կորչում: Էներգախնայողության ռեժիմը միացված է ձայնագրման միջոցով զրոդեպի անջատման ռեգիստր: Այնտեղ գրանցվելիս միավորներվարորդը դուրս է գալիս էներգախնայողությունից.

Այս ռեժիմում էներգիայի սպառումը նվազում է մինչև 150 µA:

Ցուցադրման թեստօգտագործվում է միացված ցուցիչը ստուգելու համար, թեստային ռեժիմում ցուցիչի բոլոր հատվածները միացված են: Նույնիսկ եթե վարորդը գտնվում է էներգախնայողության ռեժիմում, փորձարկման ռեժիմը կմիացնի հատվածները:

Միացումից հետո բոլոր վարորդների ռեգիստրները զրոյացվում են, ուստի առաջին բանը, որ պետք է անել, կարգավորելն է: Վարորդի կարգավորումներ (գրելով ցանկալի արժեքները գրանցամատյաններումԱպակոդավորման ռեժիմ, ինտենսիվություն, սկանավորման սահմանափակում,Անջատում և ցուցադրման փորձարկում ) պետք է կատարվի ամեն անգամ, երբ սնուցվում է, այդ արժեքները չեն պահպանվում:

Վարորդի հետ աշխատել առանց վերծանման ռեժիմում

Ռեժիմում ոչ մի վերծանումմենք կարող ենք ուղղակիորեն կառավարել ցանկացած թվանշանի յուրաքանչյուր հատված: ՀԵՏՑուցանիշի հատվածների համապատասխանությունը թվային ռեգիստրի բիթերին ներկայացված է ստորև նկարում ևորոշակի հատված լուսավորելու համար պետք է գրել համապատասխան բիթինմիավոր.


Օրինակ՝ 8 նիշանոց ցուցիչի առաջին նիշում պետք է ցուցադրենք 1 թիվը, նախ ուղարկում ենք ռեգիստրի հասցեի առաջին նիշին համապատասխանող առաջին 8 բիթերը (տե՛ս ռեգիստրի հասցեի քարտեզի աղյուսակը)։ Ցուցանիշի թվանշանների համարակալումն անցնում է ձախից աջ (այս կերպ՝ 0.1.2.3.4.5.6.7.), ուստի աջից առաջին նիշը (նիշ 7) կունենա հասցեն. &h08, այս արժեքը ուղարկվում է: Այնուհետև մենք ուղարկում ենք տվյալներ, որոնք պետք է ներառեն B և C հատվածները, ըստ համապատասխանության աղյուսակի (տես վերևում), D5 և D4 բիթերը պատասխանատու են այս հատվածների համար: Այսպիսով, հաջորդ 8 բիթերը, որոնք մենք պետք է ուղարկենք, կլինեն. 00110000 , կամ եթե տասնվեցական նշումով - &h48. Նմանապես մենք կարող ենք վերահսկել ցուցիչի այլ թվանշաններ և հատվածներ: Ոչ մի բարդ բան, չէ՞: ;)

Իսկ հիմա մի փոքրիկ աշխատանքային օրինակ. Ես ընդամենը քառանիշ ցուցանիշ ունեի, որը բավականին հարմար է հնարավորությունները ցուցադրելու համար։ Միացված է ստորև ներկայացված գծապատկերի համաձայն: Չօգտագործված կապարները կարող են մնալ օդում կախված: Attiny2313 միկրոկառավարիչը ժամացույց է անում ներքին 8 ՄՀց տատանիչից, շղթայի մատակարարման լարումը 5 վոլտ է:

Դեմո կոդը Bascom-AVR-ում

$regfile = "attiny2313.dat"
$ բյուրեղյա = 8000000
$hwstack = 32
$swstack = 10
$ շրջանակի չափ = 40

կազմաձևում նավահանգիստ = Արդյունք

CsԱյլանուն portd. 1
Ser_clkԱյլանուն portd. 2
Ser_dataԱյլանուն portd. 3

Դիմ Ա ԻնչպեսԽոսք
Դիմ Թվային (8) ինչպեսբայթեր
Դիմ Յ Ինչպեսբայթեր
Դիմ Disp_num Ինչպեսբայթեր
Դիմ disp_data Ինչպեսբայթեր
Դիմ Թվային_փ ԻնչպեսԼարային* 4
Դիմ Տեմպ_փ ԻնչպեսԼարային* 3
gosub Max7219_setup

Թվային_փ= «Լավ» «տողը ցուցադրելու համար
gosub Պատրաստել «Զանգահարեք ենթածրագրին՝ տվյալների պատրաստման և ուղարկման համար

Սպասեք 3

Արեք «Հիմնական օղակում մենք պարզապես թողարկում ենք մի թիվ, որը մեծանում է 1-ով
Սպասում է 200
Ներառ Ա «Փոփոխական, որի արժեքը ցուցադրվում է ցուցիչի վրա
Թվային_փ= փող(ա)
Թվային_փ= Ձևաչափ(digit_str , «0000» )
gosub Պատրաստել
հանգույց

վերջ

«Տվյալների պատրաստում փոխանցման համար
Պատրաստել:
Արեք
Համար Y=1 Դեպի 4
Տեմպ_փ= միջն(digit_str , Y , 1 )
ԸնտրելգործՏեմպ_փ
գործ"0" : Temp_str = "126" "&b01111110
գործ"1" : Temp_str = "48" "&b00110000
գործ"2" : Temp_str = "109" "&b01101101
գործ"3" : Temp_str = "121" "&b01111001
գործ"4" : Temp_str = "51" "&b00110011
գործ"5" : Temp_str = "91" "&b01011011
գործ"6": Temp_str = "95" "&b01011111
գործ"7": Temp_str = "112" "&b01110000
գործ"8" : Temp_str = "127" "&b01111111
գործ"9" : Temp_str = "123" "&b01111011
գործ«». Temp_str = "128" "&b10000000
«Դուք կարող եք նաև ինքներդ մուտքագրել ցանկալի կերպարները
գործ"A" : Temp_str = "119" "&b01110111
գործ"C": Temp_str = "78" "&b01001110
գործ"E": Temp_str = "79" "&b01001111
գործ"G": Temp_str = "94" "&b01011110
գործ"o": Temp_str = "29" "&b00011101
գործ"d": Temp_str = "61" "&b00111101
գործ" " : Temp_str = "0" "&b00000000
«և այլն...
վերջԸնտրել
Թվային(y) = Վալ(temp_str)

Disp_num= Յ «ծանոթ վայր (նիշ), որին մենք ցուցադրում ենք ընթացիկ թվանշանը

disp_data= Թիվ (y) «տվյալները, որոնք մենք ուղարկում ենք ընտրված բիթին
gosub Disp_write
Հաջորդը Յ
հանգույց մինչև Y=5 «Երբ տվյալները դուրս են բերվել բոլոր 4 թվանշաններով, մենք վերադառնում ենք հիմնական հանգույց
վերադարձ

«Տվյալների փոխանցում max7221-ին
Disp_write:
Ser_data= 0
Ser_clk= 0
Cs= 0
Shiftout Ser_data, Ser_clk, Disp_num, 1 «ուղարկելով կատեգորիայի համարը
Shiftout Ser_data, Ser_clk, Disp_data, 1 «Ուղարկել տվյալներ այս բիթին
Cs= 1
վերադարձ

«նախնականացում և գրանցամատյանների կարգավորում max7221
Max7219_setup:
Disp_num= & H0C: Disp_data = 0 «Անջատման ռեժիմ (0-միացված, 1-անջատված)
gosub Disp_write
Disp_num= & H09: Disp_data = 0 «ցուցանիշի սեգմենտների անմիջական կառավարման եղանակ
gosub Disp_write
Disp_num= & H0A: Disp_data = 10 «Սեգմենտների փայլի մակարդակը (0-նվազագույնը, 15-առավելագույնը)
gosub Disp_write
Disp_num= & H0B: Disp_data = 3 «Օգտագործված բիթերի քանակը (հաշվել 0-ից)
gosub Disp_write
Disp_num= & H0F: Disp_data = 0 «Թեստային ռեժիմն անջատված է (0-անջատված, 1-միացված)
gosub Disp_write
Disp_num= & H0C: Disp_data = 1
gosub Disp_write
վերադարձ



Կոդը լավ մեկնաբանված է, ուստի հուսով եմ, որ լրացուցիչ բացատրությունների կարիք չկա: Իսկ ստորև՝ արդյունքը