Главная  Микроконтроллеры 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [ 69 ] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

NoZav:

EEWriteO: sbic rjmp out out sbi inc

EEWritel: sbic rjmp out out sbi inc

EEWrite2: sbic rjmp out mov andi or out sbi clr clr ret

.EXIT

andi r31,$FE

; Запись для сброса флага, указываю11;его на последнюю запись

EECR,EEWE

EEWriteO

EEAR.EEadr

EEDR,г31

EECR.EEWE

EEadr

; Запись старшего байта времени

EECR.EEWE

EEWritel

EEAR,EEadr

EEDR.Tin62

EECR. EEWE

EEadr

; Запись времени, типа события и флага последней записи EECR.EEWE EEWrite2 EEAR,EEadr г31.Timel r31.$F8 r31,EventType EEDR,r31 EECR,EEWE

Timel ; Счетчик считает время между записями в EEPROM,

Time2 ; позтому сбрасываем его

Таблица использования линий микроконтроллера

Порт 6 используется для подключения клавиатуры и динамика

PORTB.7 - вывод на динамик

PORTB.0...3 - выходы на сканирование клавиатуры

PORTB.4...6 - входы от 12-клавишной клавиатуры, подключены к +5 В через резисторы Порт D используется для управления замком, выдачи информации и проверки двери PORTD.О используется для вывода информации из EEPROM, на нем с частотой

3815 Гц (©1МГц) побитно выводится все ее содержимое PORTD.1 Подключен на электромагнит или двигатель, единица разрешает открытие PORTD.2 Подключен на концевику, срабатыватему (=0) при открытии

Автор: Сафонников В. В. (E-mail: sw@ufanet.ru).

6.12. Музыкальный звонок

1. Краткое описание

Эта схема музыкального звонка собрана на микроконтроллере, может быть, ЭТО похоже на «забивание гвозде!! логарифмической линейкой», тем не менее у нее есть некоторые преимупества. Во-пер-



вых, используется всего одна микросхема, благодаря чему, кроме традиционных преимуществ вроде увеличения надежности, умень-щения потребления энергии, появляется принципиальная возможность разместить всю схему в очень небольшом объеме, например оформив в виде музыкальной поздравительной открытки.

2. Схема

4,5В

AT90S2313-10PI

XTAL2

XTAL1

RESET

CI 33

-11-

C2 33

- КТв19

Рис. 6.13. Электрическая принципиальная схема музыкального звонка

Благодаря использованию микроконтроллера схема предельно упрощается, необходимо только подключить питание (от 2,7 до 6 В), кварцевый резонатор и, если необходимо, усилитель низкой частоты, собранный на транзисторе КТ815. Если предполагается, что ток через нагрузку не будет превышать 20 мА (например, при использовании пьезоизлучателя), можно обойтись без усилителя.

Следует заметить, что 20 мА - это максимальный ток логического нуля, т. е. второй вывод звукового излучателя следует подключать к плюсу питания.

Кнопка звонка должна иметь нормально замкнутые контакты, при нажатии на нее схема обесточивается, а при отпускании на нее подается питание и происходит автоматический сброс микроконтроллера.

Сразу же после сброса начинает работать программа, проигрьша-ющая заданную мелодию. После завершения мелодии микроконтроллер переходит в режим пониженного энергопотребления Power Down и находится в нем до следующего нажатия на кнопку.

Частоту кварца можно выбрать практически любую в диапазоне от 32 768 кГц до 10 МГц. Схема была проверена на частоте 10 МГц. Если вы хотите использовать кварц на меньшую частоту (при этом



уменьшится и потребляемый ток схемы), необходимо пропорционально уменьшить коэффициенты таблицы SoundTab и длительности звучания всех нот.

3. Программа

Эта программа написана на ассемблере для AT90S2313, таблица нот рассчитана для работы процессора на максимальной частоте 10 МГц, вместо мелодии используется проигрывание гаммы от более нюких нот к более высоким и обратно. Текст программы:

.INCLUDE 2313def.inc-

.DEF Step=r20

.DEF Freqlndex=r21

.DEF FreqDelay=r22

.DEF SSREG=r23

.CSEG

.ORG 0

r]mp Reset

.ORG OVFOaddr

in SSREG.SREG dec FreqDelay out SREG.SSREG reti

Reset:

Idi гЗО,$DF out SPL,гЗО ; Настройка направления работы линий порта В Idi г30.$08 out DDRB.гЗО

; Режим работы таймера О с максимальным предварительным делением

; Здесь же разрешаем прерывания

Idi гЗО,$05

out TCCR0,гЗО

Idi г30.$02

out TIMSK, гЗО

; Режим работы таймера 1 на переключение внешнего вывода,

; выбор коэффициента предварительного деления тактовой частоты 1:1

; и автоматический сброс таймера при совпадении Idi г30.$40 out TCCR1A,гЗО Idi гЗО.$09 out TCCR1B.r30

; Установка номера шага на начало

clr Step



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [ 69 ] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

0.0012