Четверг, 02.05.2024, 08:48
Главная
Приветствую Вас, Гость
Статистика



Онлайн лист

Онлайн всего: 1
Гостей: 1
Пользователей: 0



Реклама



Главная » Статьи » Микроконтроллеры

Наверх


Подключение семисигментного индикатора к attiny13
Иногда возникает необходимость увеличить количество выходов микроконтроллера. Такая ситуация может возникнуть например при работе с микроконтроллерами серии tiny, например у attiny13 всего 8 ножек и в качестве выходов работают 5(6 если RESET с помощью фьюзов сделать входом/выходом ), и подключить к нему семисигментый индикатор не получится. Так вот используя одну дополнительную микросхему можно решить эту проблему и эта микросхема 74HC595.


74HC595 - это восьмиразрядный сдвиговый регистр с последовательным вводом и параллельным выводом информации.

Назначение выводов:
1-7, 15 - выходы
10 - сброс регистра
11 - вход для тактовых импульсов
12 - вход «защёлкивающий» данные
13 - вход, переводящий выходы рабочее состояние
14 - вход данных

Теперь коротенько, как это работает:
наши данные подаются на вход DS одновременно с тактовыми импульсами на вход SH_CP, с каждым новым импульсом мы записываем в регистр 1 бит, сдвигая все записанные ранее. Передав 8 бит регистру, выставляем логическую 1 на вход ST_CP, и содержимое регистра выводится на выходы Qa-Qh. Все очень просто. Ну а теперь перейдем к практике:

подключение семисигментного индикатора к attiny13 cс помощью HC595

На схеме:
семисигментный индикатор, который подключен к выходам сдвигового регистра. Входы DS, SH_CP, ST_CP подключены к PB0-2. Получается что используя сдвиговый регистр, для подключения семисигментного индикатора нужно уже не 8 а всего 3 выхода микроконтроллера, что очень удобно.

Ниже приведен код программы, которая выводит на семисигментный индикатор цифру 5:


 
#include ‹tiny13.h›
#include ‹delay.h›
#define CE PORTB.2
#define CL PORTB.1
#define DI PORTB.0
#define RS PORTB.3
#define pause delay_ms(10)

char data[8]={0,1,1,0,1,1,0,1};

int i;

void main(void)
{
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
PORTB=0x00;
DDRB=0xFF;
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;
GIMSK=0x00;
MCUCR=0x00;
TIMSK0=0x00;
ACSR=0x80;
ADCSRB=0x00;


while (1)
{


i=0;
while(i<8){
DI=data[i];
CL = 1;
RS=1;
pause;
DI=0;
CL = 0;
RS=0;
pause;
i++;
};
CE=1;

};
}




Нравится
Категория: Микроконтроллеры | Добавил: Naprisar (30.09.2012)
Просмотров: 22496 | Теги: ATtiny13, HC595, семисегментый индикатор, сдвиговый регистр
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Наверх