На склад поступили жидко-кристаллические индикаторы и дисплеи от KSE

Игральная кость на микроконтроллере PIC16F88

"Игральная кость" – это простой пример применения PIC микроконтроллера. Схема генерирует случайное число и отображает его на светодиодах, сгруппированных в соответствии с расположением точек на игральной кости. При сборке устройства можно установить режим медленного или быстрого вращения кости.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Перечень компонентов схемы

Компонент

Номинал

Количество

Резистор

220 Ом

7

Резистор

10 кОм

1

Резистор

4.7 кОм

1

Движковый переключатель

 

1

Кнопка

 

1

Держатель 4-х батарей AA

 

1

Батарея AA

 

4

Светодиод

Красный

7

Панелька для микросхемы

18 выводов

1

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

PIC16F88

1

Принципиальная схема
 

Размещение компонентов

Надписи на схеме
Micro-Dice Schematic Схема электронной игральной кости
To +6V for slow roll
to +0V for fast roll
Подключить к +6 В для медленного вращения кости
подключить к 0 В для быстрого вращения кости
Slide Switch Движковый переключатель
Placement Diagram Схема размещения компонентов

Описание

Это чисто цифровая схема, и описание ее работы мы будем вести в терминах «высокий уровень» и «низкий уровень». При питании схемы от 6 В, «высокий уровень» означает диапазон напряжений от 5 до 6 В, а «низкий уровень» – напряжение меньше 1 В.

В микроконтроллере есть два регистра ввода/вывода (PORTA, PORTB). Путем соответствующего конфигурирования регистров, чтения из них, или записи, можно получать сложные результаты, не создавая сложной схемы. В нашей схеме используются все 8 выводов порта PORTB (выводы микроконтроллера 6, 7, 8, 9, 10, 11, 12, 13), которым присваиваются обозначения от PORTB.0 до PORTB.7. PORTB.0 сконфигурирован входом для проверки факта отпускания кнопки. Выводы от PORTB.1 до PORTB.7 – это выходы, к которым, через резисторы 220 Ом, подключены светодиоды. Светодиоды подключены к + 6 В, и загораются при появлении низкого уровня на соответствующем выводе микроконтроллера. Расположение зажигаемых светодиодов соответствует расположению точек на игральной кости. Это обеспечивается соответствующим кодированием.

Исходное состояние вывода PORTB.0 поддерживается в низком уровне с помощью резистора 10 кОм, подключенного между этим выводом и 0 В. При нажатии кнопки, на выводе PORTB.0 устанавливается высокий уровень, т.к. кнопка подключена к +6 В.

В схеме используется и один вывод PORTA: PORTA.6. Он используется для того, чтобы задавать быстрый или медленный режим вращения кости. Для этого резистор 10 кОм надо припаять к 0 В, или к +6 В.

Для упрощения схемы используется внутренний тактовый генератор PIC16F88. Вход «Сброс» микроконтроллера (вывод 4) подключен к +6 В через резистор 4.7 кОм, чтобы наводки по этому входу не приводили к перезапуску микросхемы.

Программа 

program LED_Dice_decay
dim portb_bit as byte
dim porta_bit as byte 'Объявление переменных dim counter as integer
main:
TRISB = %00000001 ' Конфигурирование всех выводов PORTA, кроме вывода 0, как выходов
TRISA = %11111111
PORTB = %11111110 'Выключение светодиодов
' PORTA = %00000000
counter = 1
eloop: 'Начало цикла
portb_bit = PORTB.0 'Проверка статуса кнопки
if portb_bit = 1 then 'Кнопка нажата
counter = counter + 1
end if
porta_bit = PORTA.6 'Проверка установленной скорости вращения кости (медленная/быстрая)
if porta_bit = 1 then 'Режим медленного вращения
delay_ms(300)
end if
if counter = 7 then 'Обработка ошибки
counter = 1
end if
select case counter 'Включение соответствующих светодиодов
case 1
PORTB = %11101110
case 2
PORTB = %11010110 ' 0 = ВКЛЮЧЕНО
case 3
PORTB = %11000110
case 4
PORTB = %01010100 ' 1 = ВЫКЛЮЧЕНО
case 5
PORTB = %01000100
case 6
PORTB = %00010000

end select
goto eloop ' Оставаться в цикле
end

http://cdselectronics.com

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: MICRO - DICE

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Какой прогай Компилировать?
  • Скорее всего это PICBasic