Мазмұны:
- 1 -қадам: аппараттық құрал
- 2 -қадам: түйреу және сигналдар
- 3 -қадам: Хаттама
- 4 -қадам: Бағдарламалық қамтамасыз ету
Бейне: ATtiny85 микроконтроллері бар MAX7219 жетекші 8x8 жарықдиодты матрицамен қалай байланысуға болады: 7 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
MAX7219 контроллерін Maxim Integrated шығарады, бұл микроконтроллерлерді 64 жеке жарықдиодты, 8 цифрға дейінгі 7 сегментті сандық жарықдиодты дисплейлерге, штрих-графикалық дисплейлерге және т.б. қосуға болатын ықшам, сериялық кіріс/шығыс жалпы катодты дисплей драйвері. -чип-бұл BCD код-В декодері, мультиплексті сканерлеу схемасы, сегменттік және цифрлық драйверлер және әр цифрды сақтайтын 8 × 8 статикалық жедел жады.
MAX7219 модульдері ATtiny85 немесе біздің жағдайда Tinusaur Board сияқты микроконтроллерлермен қолдануға өте ыңғайлы.
1 -қадам: аппараттық құрал
MAX7219 модульдері әдетте осылай көрінеді. Олардың бір жағында кіріс шинасы, екінші жағында шығыс шинасы бар. Бұл сізге күрделі қондырғылар жасау үшін 2 немесе одан да көп модульдерді тізбектеуге мүмкіндік береді.
Біз қолданатын модульдер 5 кіші секіргішті пайдаланып тізбекке қосыла алады. Төмендегі суретті қараңыз.
2 -қадам: түйреу және сигналдар
MAX7219 модулінде 5 түйреуіш бар:
- VCC - қуат (+)
- GND-жер (-)
- DIN - мәліметтерді енгізу
- CS - чипті таңдау
- CLK - Сағат
Бұл дегеніміз, ATtiny85 микроконтроллерінде модульді басқару үшін бізге 3 түйреуіш қажет. Олар болады:
- PB0 - CLK қосылған
- PB1 - CS -ге қосылған
- PB2 - DIN -ге қосылған
Бұл MAX7219 модуліне қосылу және оны бағдарламалау үшін жеткілікті.
3 -қадам: Хаттама
MAX7219 -мен байланысу салыстырмалы түрде оңай - ол синхронды протоколды қолданады, яғни біз жіберген әрбір деректер биті үшін бұл деректер битінің болуын білдіретін сағаттық цикл болады.
Басқаша айтқанда, біз биттерге 2 параллель тізбекті жібереміз - біреуі сағат үшін, екіншісі деректер үшін. Бағдарламалық жасақтама осылай жасайды.
4 -қадам: Бағдарламалық қамтамасыз ету
Бұл MAX7219 модулінің жұмыс әдісі:
- Біз оның ішкі регистріне байт жазамыз.
- MAX7219 деректерді түсіндіреді.
- MAX7219 матрицадағы жарық диодтарын басқарады.
Бұл сонымен қатар жарық диодты жарықтандыру үшін біз үнемі айналып өтудің қажеті жоқ дегенді білдіреді - MAX7219 контроллері бұл туралы қамқорлық жасайды. Ол сонымен қатар жарық диодтарының қарқындылығын басқара алады.
Сонымен, MAX7219 модульдерін ыңғайлы пайдалану үшін бізге осы мақсатқа қызмет ететін функциялардың кітапханасы қажет.
Біріншіден, MAX7219 регистрлеріне жазу үшін бізге кейбір негізгі функциялар қажет.
- MAX7219 -ге байт жазу.
- MAX7219 -ға сөз (2 байт) жазу.
Контроллерге бір байтты жазатын функция келесідей:
void max7219_byte (uint8_t data) {for (uint8_t i = 8; i> = 1; i--) {PORTB & = ~ (1 << MAX7219_CLK); // CLK параметрін LOW күйіне орнатыңыз, егер (деректер & 0x80) // PORTB | | (1 << MAX7219_DIN) MSB мәліметтерінің маскасын жасырыңыз; // DIN мәнін HIGH күйіне орнатыңыз PORTB & = ~ (1 << MAX7219_DIN); // DIN параметрін LOW PORTB | = (1 << MAX7219_CLK) күйіне орнатыңыз; // CLK параметрін HIGH деректеріне орнатыңыз << = 1; // Солға жылжу}}
Енді біз MAX7219 -ға байт жібере алатын болсақ, біз командаларды жіберуді бастай аламыз. Бұл 2 байсты жіберу арқылы жүзеге асады - 1 -ші ішкі регистрдің мекен -жайы бойынша және 2 -ші біз жібергіміз келетін деректер үшін.
MAX7219 контроллерінде оннан астам регистр бар.
Пәрменді немесе сөзді жіберу негізінен 2 байт қатарынан жіберіледі. Оны жүзеге асыратын функция өте қарапайым.
void max7219_word (uint8_t мекен -жайы, uint8_t деректері) {PORTB & = ~ (1 << MAX7219_CS); // CS параметрін LOW max7219_byte (адрес) етіп орнатыңыз; // max7219_byte адресін жіберу (деректер); // Деректерді жіберу PORTB | = (1 << MAX7219_CS); // CS орнатыңыз HIGH PORTB & = ~ (1 << MAX7219_CLK); // CLK параметрін LOW параметріне орнатыңыз}
Бұл жерде CS сигналын ЖОҒАРЫ деңгейге қайтаратын сызықты атап өту маңызды - бұл тізбектің аяқталуын білдіреді - бұл жағдайда команданың аяқталуы. Ұқсас әдіс тізбекке қосылған бірнеше матрицаны басқару кезінде қолданылады. Келесі қадам, светодиоды қосуды және өшіруді бастамас бұрын, MAX7219 контроллерін инициализациялау болып табылады. Бұл белгілі бір регистрлерге белгілі бір мәндерді жазу арқылы жүзеге асады. Ыңғайлы болу үшін оны кодтау кезінде инициализация ретін массивке қоюға болады.
uint8_t initseq = {0x09, 0x00, // декодтау режимінің регистрі, 00 = декодталмаған 0x0a, 0x01, // қарқындылық регистрі, 0x00.. 0x0f 0x0b, 0x07, // Scan-Limit Register, 0x07 барлық жолдарды көрсету үшін 0x0c, 0x01, // Өшіру регистрі, 0x01 = Қалыпты жұмыс 0x0f, 0x00, // Display-Test Register, 0x00 = Қалыпты жұмыс};
Біз жоғарыдағы 5 пәрменді адрес/деректер жұбы ретімен жіберуіміз керек. Келесі қадам - жарық диодты жарықтандыру.
Бұл өте қарапайым - біз тек 1 пәрменді жазамыз, онда бірінші байт - адрес (0 -ден 7 -ге дейін), ал 2 -байт - жолдағы 8 жарықдиодты білдіретін 8 бит.
void max7219_row (uint8_t мекен -жайы, uint8_t деректері) {if (address> = 1 && address <= 8) max7219_word (мекен -жай, деректер); }
Бұл тек 1 матрица үшін жұмыс істейтінін ескеру маңызды. Егер біз басқа матрицаларды тізбекке қосатын болсақ, олардың барлығы бірдей деректерді көрсетеді. Мұның себебі, пәрменді жібергеннен кейін біз CS сигналын ЖОҒАРЫ күйге қайтарамыз, бұл тізбектегі барлық MAX7219 контроллерлерінің ілінуіне және соңғы команданың қандай болғанын көрсетеді.
Ұсынылған:
4017 IC және RGB жарықдиодты жарықдиодты жарықдиодты қалай жасауға болады: 13 қадам
Жарық диодты машинаны 4017 IC және RGB светодиод арқылы қалай жасауға болады: Сәлем досым, бүгін мен 4017 IC және RGB LED светодиодты қолданып светодиодты іздеу схемасын жасаймын
8051 микроконтроллері бар нүктелік матрицалық жарықдиодты дисплей интерфейсі: 5 қадам
Жарықдиодты дисплейдің 8051 микроконтроллермен интерфейсі: Бұл жобада біз 8051 микроконтроллері бар бір нүктелі матрицалық жарықдиодты дисплеймен жұмыс жасаймыз. Мұнда біз протеуста модельдеуді көрсетеміз, сіз оны аппараттық құралға қолдана аласыз. Мұнда біз алдымен осы дисплейде «А» деп айтатын бір таңбаны басып шығарамыз
CloudX микроконтроллері бар СКД бар пернетақта: 4 қадам
CloudX микроконтроллері бар СКД бар пернетақта: Бұл жоба үшін біз матрицалық пернетақтадан мәліметтерді қабылдаймыз, содан кейін оны LCD модулінде көрсетеміз
7 сегментті дисплейі бар 8051 микроконтроллері арқылы 0 -ден 99 -ға дейін қалай санауға болады: 5 қадам (суреттермен)
7 сегментті дисплейі бар 8051 микроконтроллерінің көмегімен 0 -ден 99 -ға дейін қалай санау керек: Барлығына сәлем, бұл оқулықта біз екі 7 сегментті дисплейде 0 -ден 99 -ға дейін қалай санау керектігін айтатын боламыз
Шетелдік артефактпен қалай байланысуға болады немесе. . .: 4 қадам (суреттермен)
Шетелдік артефактпен қалай байланысуға болады немесе …: *** Қызықсыз Minty Cind кездесулерін жабыңыз. *** Бұл нұсқаулық сізге «жақын кездесулер» ата -анасының Altoids нұсқасын қалай құруға болатынын және онымен қалай қарым -қатынас жасау керектігін көрсетеді. Бұл жарқын ақ түс болатын күн үшін маңызды жаттығулар болуы мүмкін