Главная » Микроконтроллеры
Призовой фонд
на август 2019 г.
1. 1000 руб
Паяльник
2. Тестер компонентов MG328
Паяльник
3. 200 руб.
От пользователей

Светофор на ATtiny13

Решил сделать для своего младшего брата светофор из подручных средств.
Под рукой оказался МК ATtiny13, несколько светодиодов и резисторов. У данного МК флэш память программ составляет 1кб, но нам этого хватит с головой, несмотря то, что программа пишется на Си в CodeVisionAVR.

Вот исходный текст программы:

/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.2 Beta1 Standard
Automatic Program Generator
© Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date : 27.07.2007
Author : Pavel
Company : Home
Comments:

Chip type : ATtiny13
Clock frequency : 4,800000 MHz
Memory model : Tiny
External SRAM size : 0
Data Stack size : 16
*****************************************************/

#include
#include
unsigned char svet=1;
unsigned char onf=0;
// Pin change interrupt service routine
interrupt [PCINT0] void pin_change_isr(void)
{
// Place your code here
if(PINB.4!=0)
{
if(svet<4)svet++;
else svet=1;
onf=0;
}
if(PINB.3!=0)
{
onf=1;
// PORTB.1=1;PORTB.2=1; PORTB.0=1;
}
delay_ms(200);
}

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=Out
// State5=T State4=T State3=T State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0x1F;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: On
GIMSK=0x20;
MCUCR=0x00;
PCMSK=0x1F;
GIFR=0x20;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

// Global enable interrupts
#asm("sei")
//PORTB.0=1; //gr
//PORTB.1=1; //re
//PORTB.2=1; //ye
while (1)
{
if(onf==0)
{
switch (svet)
{
case 1:PORTB.0=1; PORTB.1=0; PORTB.2=0; break;
case 2:PORTB.2=1; PORTB.0=0; PORTB.1=0; break;
case 3:PORTB.1=1; PORTB.0=0; PORTB.2=0; break;
case 4:PORTB.1=1;PORTB.2=1; PORTB.0=0; break;
}

}
if(onf==1)
{
if(svet<4)svet++;
else svet=1;

switch (svet)
{
case 1:PORTB.0=1; PORTB.1=0; PORTB.2=0; break;
case 2:PORTB.2=1; PORTB.0=0; PORTB.1=0; break;
case 3:PORTB.1=1; PORTB.0=0; PORTB.2=0; break;
case 4:PORTB.1=1;PORTB.2=1; PORTB.0=0; break;
}
delay_ms(1000);
}
};
}

Фотографии готового устройства:

Фото готового устройства

Фото готового устройства

Светофор в работе

Прошивку HEX, LAY-файл и схему устройства вы можете скачать ниже

BATCOH (iupfan сабака mail тчк ru)

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
DD1 МК AVR 8-бит
ATtiny13
1 Поиск в Utsource В блокнот
C1 Конденсатор0.01 мкФ1 Поиск в Utsource В блокнот
R1 Резистор
10 кОм
1 Поиск в Utsource В блокнот
R2-R4 Резистор
1 кОм
1 Поиск в Utsource В блокнот
VD1 СветодиодЖелтый1 Поиск в Utsource В блокнот
VD2 СветодиодКрасный1 Поиск в Utsource В блокнот
VD3 СветодиодЗеленый1 Поиск в Utsource В блокнот
SW1, SW2 Кнопка2 Поиск в Utsource В блокнот
SW3 Выключатель1 Поиск в Utsource В блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

BATCOH Опубликована: 2007 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (1) | Я собрал (0) | Подписаться

0
Артем #
Напишите фьюзы пожалуйста
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
Бокс для хранения компонентов Discovery V8
вверх