Микроконтроллеры

Статическая индикация семисегментного индикатора

В данном примере показан процесс настройки проекта на WinAVR под микроконтроллерAtmega8 и его программирования. Сначала создаем проект в среде WinAVR, для этого нам необходимо создать отдельную папку под проект. Туда нам необходимо сохранить два файла. Первый файл это сама программа на языке Си, а второй файл представляет собой некую настройку проекта.

Для того чтобы откомпилировать файл программы сначала нам нужно создать MakeFile – специальный файл который «объясняет» компилятору с каким контроллером имеем дело в данном проекте и на какой частоте он будет работать и другие настройки. Очень важно в данном файле указать главный файл программы, если этого не сделать, то компиляции не будет .

Произвести вышесказанную настройку можно с помощью утилиты MFile, которая находится в папке с установленной программой. Сгенерированный с ее помощью файл необходимо сохранить в папку с проектом.

Статическая индикация означает что все сегменты индикатора горят одновременно. 

В этом примере просчитаем от 0 до 9 и отобразим это значение на семисегментном индикаторе. В данном примере не используется специальной дешифратор для него. Выводы индикатора присоединены к порту B , всего 7 выводов. Определенные комбинации битов этого порта отображают ту или иную цифру. Значения этих цифр в двоичном формате представлены в массиве numarray[]. После компиляции программы в папке проекта появится файл cрасширением .hex. Этот файл мы и будем использовать для программирования контроллера atmega8. Прошивка осуществляется с помощью программатора USBasp

Код программы статической индикиции

#include <avr/io.h>
#include <avr/delay.h>
int main(void) 
{
unsigned char numarray[10]=
{0b11001111,
0b00010001,
0b00000101,
0b01001100,
0b00100100,
0b00100000,
0b10001111,
0b00000000,
};
DDRB=0xff;
unsigned char num=0;
while(1)
{
if (num>9) num=0;
PORTB=numarray[num];
_delay_ms(50);

num=num+1;
}

}

Комментарии  

 
#1 Андрей 02.02.2014 10:34
Лучше использовать драйвер - так экономия выводов получается!
Цитировать
 
 
#2 Admin 30.03.2014 21:25
CD4026 по одному проводу данные передаются
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Последние комментарии

Последнии темы форума

  • Нет сообщений для показа