Программирование BASCOM
Меню сайта
Категории каталога
Мои статьи [114]
Наш опрос
Оцените мой сайт
Всего ответов: 1181
Главная » Статьи » Мои статьи

Мерцающее сердце к 8 марта
Купил своей девчонке сережки и задумался как их оформить?!! Наткнулся на тему механической развертки и решил попробовать с минимальными затратами сделать свой вариант. Нашел коробочку под украшения, взял мегу8 и 6 светодиодов. Получилось 6 строк. Нарисовал рисунок сердца, замерял расстояния до начала горения и погасания светодиодов, и написал простенькую программу под это дело. При закрывании коробочки светодиоды начинают мигать примерно пол минуты, после чего в процессоре останавливается генератор и он ничего не потребляет. В качестве батарейки - разломал обычную 9вольтовую крону ( там 6 элементов) отрезал половинку элементов - получилось на вольтметре 4,7 вольта. Схема работает и от 3х вольт, но более тускло. фузы установил на внутренний генератор 8 мегагерц.
 

 

 
 

Для желающих подарить своим возлюбленным оригинальный подарок, который сделан своими руками, могу посоветовать более сложную, но и более зрелищную конструкцию:

 

Код:

 

'8е марта (сердечко с механической разверткой) 'при размахивании светодиодами будет виден рисунок в виде сердечка '_____**______** '____*____**____* '_____*________* '______*_____* '________*__* '_________* 'PashaCompany@yandex.ru $regfile = "m8def.dat" ' говорим компилятору что у нас микропроцессор Atmega 8 $crystal = 8000000 ' говорим компилятору что процессор тактируется от генератора с частотой 8, 000 000 мегагерц Config Timer0 = Timer , Prescale = 8 ' конфигурируем таймер0 с делителем 8 On Timer0 Pulse : ' выполнять подпрограмму pulse: от таймера ' конфигурируем порты, куда подключаем светодиоды ( плюсы ) Config Portd.0 = Output Config Portd.1 = Output Config Portd.3 = Output Config Portd.4 = Output Config Portb.7 = Output Config Portd.7 = Output ' минусы Config Portc.4 = Output Config Portc.3 = Output Config Portc.1 = Output Config Portc.0 = Output Config Portb.5 = Output Config Portb.2 = Output 'устанавливаем порты в ноль Reset Portc.4 Reset Portc.3 Reset Portc.1 Reset Portc.0 Reset Portb.5 Reset Portb.2 ' называем порты (плюсовые) Led1 Alias Portd.0 Led2 Alias Portd.1 Led3 Alias Portd.3 Led4 Alias Portd.4 Led5 Alias Portb.7 Led6 Alias Portd.7 ' задаем переменные Dim T As Word Dim I As Byte Dim S As Integer Enable Interrupts 'разрешить прерывания Enable Timer0 ' разрешить таймер 0 ' начинаем главный цикл программы Do Disable Interrupts ' запрещаем прерывания, чтобы не проскочить значения счетчика ' сравниваем переменную s с расчитанными параметрами времени загорания и погасания светодиодов Select Case S Case 0 : ' если s = 0 то Set Led3 ' зажечь светодиод led3 Case 1: Set Led2 Case 13 : Set Led4 Case 24 : Set Led1 Case 33 : Set Led5 Case 35 : Set Led1 Case 45 : Set Led2 Case 49 : Set Led6 Case 54 : Set Led2 Case 64 : Set Led1 Case 66 : Set Led5 Case 75: Set Led1 Case 66 : Set Led4 Case 98 : Set Led2 Case 100 : Set Led1 Case 5 : Reset Led3 ' погасить светодиод led3 Case 6 : Reset Led2 Case 18 : Reset Led4 Case 29 : Reset Led1 Case 38 : Reset Led5 Case 40 : Reset Led1 Case 50 : Reset Led2 Case 54 : Reset Led6 Case 55 : Reset Led6 Case 59: Reset Led2 Case 69 : Reset Led1 Case 71: Reset Led5 Case 80 : Reset Led1 Case 91 : Reset Led4 Case 103 : Reset Led2 Case 104 : Reset Led1 End Select ' конец проверки Enable Interrupts ' разрешить прерывания Loop ' конец основного цикла End ' подпрограмма прерываний Pulse: Incr I 'увеличить переменную I на единицу If I = 2 Then ' если i = 2 то Incr S ' увеличить s на единицу If S > 208 Then S = 0 I = 0 Incr T ' увеличить переменную Т на единицу. Переменная задает время работы схемы после подачи питания If T > 60000 Then ' Т=60000 примерно 30 секунд T = 0 ' выключаем все светодиоды Reset Led1 ' если Reset Led2 Reset Led3 Reset Led4 Reset Led5 Reset Led6 Powerdown ' выключаем полностью процессор и задающий генератор. Последующее включение возможно временным разрывом цепи питания или сбросом reset End If End If Return 'вернутся в основной цикл
Категория: Мои статьи | Добавил: radan (18.03.2009)
Просмотров: 4603
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright Radan Studio © 2017