Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КР.ПЛИС.docx
Скачиваний:
20
Добавлен:
24.03.2015
Размер:
203.42 Кб
Скачать

3 Переключатель светодиодов

 В схеме имеется два светодиода и две кнопки, а также кнопка сброса. Задача устройства — изменять состояние светодиодов при нажатии и отпускании кнопок. Проект имеет такое название потому, что вводит вас в мир микроконтроллеров tinyAVR. Данная схема собрана на микроконтроллере ATtiny13, который питается от двух батареек АА-типа.

 

Рисунок 1- Принципиальная схема

Рассмотрим элементы схемы. Схема питается от двух щелочных батареек размера АА. Как упоминалось ранее, такие батареи имеют номинальное напряжение на выводах 1,5 В. Две батареи дают напряжение 3 В. Рабочее напряжение Tiny13V составляет от 1,8 до 5,5 В, так что 3 В вполне подходит. По мере разряда батарей напряжение будет падать, но схема будет продолжать работать до тех пор, пока напряжение питания не снизится до 1,8 В. Светодиоды видимого света (в отличие от инфракрасных) имеют определенное напряжение включения, которое зависит от цвета (1,8В— для красного и 3,5 В— для белого). Таким образом, для этого проекта следует выбрать красные светодиоды. На рисунке показана компоновка платы со стороны компонентов и со стороны пайки. Вы видите, что плата в основном разведена в слое пайки (со стороны компонентов есть только одна перемычка). Ее легко изготовить при помощи фрезерования, описанного в предыдущем разделе. Внешний вид собранного образца устройства показан на фото.

   Рисунок 2- Печатная плата Рисунок 3- Внешний вид прибора Код программы был написан таким образом, что левая кнопка включает левый светодиод, а правая — правый. То есть если правый светодиод выключен, и вы нажимаете и отпускаете правую кнопку, то она включает правый светодиод.

3.1 Программа

Код программы для микроконтроллера Tiny13V на языке С:

01.//Include Files

02.#include<avr/io.h>

03.#define F_CPU 128000UL

04.#include<util/delay.h>

05.int main(void)

06.{

07.DDRB |= 1<<2|1<<3;//сделать выходами

08.PORTB |= 1<<2|1<<3;

09.//Switch off the LEDs

10.DDRB &= ~(1<<0|1<<1);//Сделать входами

11.PORTB |= (1<<0|1<<1);//Включить подтяжку к + питания

12.while(1)

13.{

14.//Первое условие

15.if(!(PINB&(1<<0))) //Если нажата, то...

16.{

17._delay_ms(10); //задержка для защиты от дребезга

18.while(!(PINB&(1<<0)));

19.//Ждем, когда отпустят кнопку

20._delay_ms(10); //задержка для защиты от дребезга

21.PORTB^= (1<<3);//Toggle

22.}

23.//Второе условие

24.if(!(PINB&(1<<1)))//Если нажата

25.{

26._delay_ms(10); //задержка для защиты от дребезга

27.while(!(PINB&(1<<1)));

28.//Ждем

29._delay_ms(10); //задержка для защиты от дребезга

30.PORTB^= (1<<2); //Переключение состояния ножки

31.}

32.}

33.}

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1 cxem.net [Электронный ресурс] Подключение монетоприемника к Arduino . Режим доступа: http://cxem.net/arduino/arduino69.php.

2 ru.wikipedia.org [Электронный ресурс] Микроконтроллер. Режим доступа: http://ru.wikipedia.org/wiki/ Микроконтроллер.

3 ru.wikipedia.org [Электронный ресурс] Arduino. Режим доступа: http://ru.wikipedia.org/wiki/ Arduino.

13