Разработка музыкального звонка с двумя режимами работы: автономным и от сети
Подставив
значения уровня звукового давления для каждого вида оборудования в формулу
(4.4) , получим:
∑L=10·lg(104+104,5+101,7+101+104,5+104,2)=49,5
дБ
Полученное
значение не превышает допустимый уровень шума для рабочего места оператора,
равный 65 дБ (ГОСТ 12.1.003-83). И если учесть, что вряд ли такие периферийные
устройства как сканер и принтер будут использоваться одновременно, то эта цифра
будет еще ниже. Кроме того при работе принтера непосредственное присутствие
оператора необязательно, т.к. принтер снабжен механизмом автоподачи листов.
В
данном разделе дипломной работы были изложены требования к рабочему месту
инженера - программиста. Созданные условия должны обеспечивать комфортную
работу. На основании изученной литературы по данной проблеме, были указаны
оптимальные размеры рабочего стола и кресла, рабочей поверхности, а также
проведен выбор системы и расчет оптимального освещения производственного
помещения, произведен расчет рационального кондиционирования помещения, а также
расчет уровня шума на рабочем месте. Соблюдение условий, определяющих
оптимальную организацию рабочего места инженера - программиста, позволит
сохранить хорошую работоспособность в течение всего рабочего дня, повысит как в
количественном, так и в качественном отношениях производительность труда программиста,
что в свою очередь будет способствовать быстрейшей разработке и отладке
программного продукта.
ВЫВОДЫ
В
данном проекте был разработан музыкальный звонок с двумя режимами работы:
автономный ( на батарейках) и от сети.
В
процессе разработки были рассмотрены общие вопросы разработки устройств на
микроконтроллерах, рассмотрены этапы разработки, разработка программного
обеспечения, внедрения в производство. На основании изученной литератур и сети
Интернет получили теоретические знания в области проектирования устройств на
микроконтроллерах.
В
практической части были разработаны структурная, функциональная и
принципиальная схемы устройства, составлен алгоритм работы микроконтроллера,
выбран микроконтроллер удовлетворяющий требованиям ТЗ, произведен расчет
элементной базы устройства, произведено подробное описание программы.
В
экономической части был произведен расчет себестоимости проектируемого изделия,
сравнение с устройствами- аналогами, сделан вывод о целесообразности
изготовления данного устройства.
В
последнем разделе дипломной работы были изложены требования к охране труда.
Созданные условия должны обеспечивать комфортную работу. На основании изученной
литературы по данной проблеме, были указаны оптимальные размеры рабочего стола
и кресла, рабочей поверхности, а также проведен выбор системы и расчет
оптимального освещения производственного помещения, произведен расчет
рационального кондиционирования помещения, а также расчет уровня шума на
рабочем месте. Соблюдение условий, определяющих оптимальную организацию
рабочего места, позволит сохранить хорошую работоспособность в течение всего
рабочего дня, повысит как в количественном, так и в качественном отношениях
производительность труда, что в свою очередь будет способствовать быстрейшей
разработке и отладке программного продукта.
ПЕРЕЧЕНЬ
ССЫЛОК
1.
"Dimmable Fluorescent Ballast" – User Guide, 10/07, Atmel
Corporation, http://www.atmel.com/dyn/resources/prod_documents/doc7597.pdf
2. ГОСТ13109-97. Нормы
качества электрической энергии в системах электроснабжения общего назначения.
3.
G. Howell "Five questions about resistors" // EDN, 9/28/2006,
http://www.edn.com/contents/images/6372835.pdf
4. П. Хоровиц, У. Хилл
"Искусство схемотехники" – Изд. 6-е, М.: Мир, 2003.
5.
C. Hillman "Common mistakes in electronic design" // EDN, 12/14/2007
http://www.edn.com/contents/images/6512156.pdf
6."Frequently
asked questions about dimmers" // http://www .lutron.com/product_technical/faq.asp
7. Л. Н. Кечиев, Е. Д.
Пожидаев "Защита электронных средств от воздействия статического
электричества" – М.: ИД "Технологии", 2005.
8. Жидецкий В.Ц.,
Джигирей В.С., Мельников А.В. Основы охраны труда: Учебник – Львов, Афиша, 2008
– 351с.
9. Денисенко Г.Ф.
Охрана труда: Учебн.пособие – М., Высшая школа, 1989 – 319с.
10. Самгин Э.Б. Освещение рабочих мест. – М.: МИРЭА,
1989. – 186с.
11. Справочная книга для проектирования
электрического освещения. / Под ред. Г.Б. Кнорринга. – Л.: Энергия, 1976.
12. Борьба с шумом на производстве: Справочник /
Е.Я. Юдин, Л.А. Борисов;
Под общ. ред. Е.Я. Юдина – М.: Машиностроение, 1985.
– 400с., ил.
13. Зинченко В.П. Основы эргономики. – М.: МГУ,
1979. – 179с.
14.Методичні вказівки до виконання дипломної роботи для учнів спеціальності
«Оператор комп’ютерного набору; оператор комп’ютерної верстки»/ Упоряд.: Д.О.
Дяченко, К.О. Ізмалкова, О.Г. Меркулова. – Сєверодонецьк: СВПУ, 2007. – 40 с.
15. Н. Заец. Многофункциональные часы. — Схемотехника, 2006, № 2,с.
41,42.
16. Н. Заец. Термометр - часы с датчиками фирмы Dallas Semiconductor. — Схемотехника, 2005,
№ 5, с. 52 - 55.
17. Н. Заец. Радиолюбительские конструкции на Р1С-микроконтроллерах.
Книга 3. — М.: СОЛОН-Пресс, 2005, с. 248.
18. Н. Заец. Отечественные жидкокристаллические индикаторы TIC9162 с драйверами по
технологии COG. - Схемотехника, 2005, №9, с. 9-11.
19. Н.
Заец. Таймеры десятичного счета. — Электрик, 2006, № 7-8, с. 36 -39.
20. Мощные полевые переключательные транзисторы фирмы International Rectifier. — Радио, 2001, № 5, с. 45.
21. А. Долгий. Разработка и отладка устройств на микроконтроллерах. —
Радио, 2001 ,№ 5-12, 2002, № 1.
22. А. Долгий. Программаторы и программирование микроконтроллеров. —
Радио, 2004, № 1-12.
23. Н. Заец. Универсальный таймер. — Схемотехника, 2003, № 1, с. 53.
24. Н. Заец. Электронные самоделки для быта, отдыха и
здоровья.— М.: СОЛОН-Пресс, 2009, 423 с.
ПРИЛОЖЕНИЯ
ПРИЛОЖЕНИЕ А
Файл основной программы
|
|
|
|
Псевдокоманды управления |
1 |
include |
Tn23l3def |
inc. |
:присоединение файла описание |
2 |
. list |
|
|
: Включение листинга |
3 |
.def |
loop1 =
|
RO |
. Три ячейки для процедуры задержки |
4 |
.def |
loop2 = |
R1 |
|
5
|
.def |
loop З = |
R21 |
|
6 |
.def |
temp = |
R16 |
: Вспомогательный регистр |
7
|
.def |
temp1 = |
R17 |
: Второй вспомогательный регистр |
8 |
.def |
count = |
R17 |
:Определение регистра счетчика опроса
клавиш
|
9 |
.def |
fnota= |
R19 |
:Частота текущей ноты |
10 |
.def |
dnota |
= R20 |
:Длительность текущей ноты |
|
-------- Начало
программного кода |
11 |
|
cseg |
|
:Выбор сегмента программного кода |
12 |
|
org |
0 |
: Установка текущего адреса на ноль |
13 |
start |
rtmp |
init : Переход на начало
программы |
14 |
|
ret1 |
|
: Внешнее прерывание 0 |
|
15 |
|
ret1 |
|
: Внешнее прерывание 1 |
|
16 |
|
ret1 |
|
: Таймер/счётчик 1 захват |
|
17 |
|
ret1 |
|
: Таймер/счетчик 1. совпадение канал А |
|
18 |
|
ret1 |
|
: Таймер/счетчик 1, прерывание по переполнению
|
|
19 |
|
ret l |
|
: Таймер/счетчик 0, прерывание по переполнению |
|
20 |
|
ret1 |
|
; Прерывание UART прием завершен |
|
21 |
|
ret1 |
|
; Прерывание UART регистр данных пуст |
|
22 |
|
ret1 |
|
. Прерывание UART передана завершена |
|
25 |
|
ret1 |
|
; Прерывание по компаратору |
|
24 |
|
ret1 |
|
: Прерывание ло изменений на любом контакте |
|
25 |
|
ret1 |
|
: Таимер/счетчик 1 Совпадение, канал В |
|
26 |
|
ret1 |
|
: Таймер/счетчик 0 Совпадение, канал В |
|
27 |
|
ret1 |
|
:Таймер/ счетчик 0 Совпадение, канал А |
|
28 |
|
ret1 |
|
USI готовность к старту
|
|
29 |
|
ret1 |
|
USI Переполнение |
|
30 |
|
ret1 |
|
EEPR0M Готовность |
|
31 |
|
ret1 |
|
Переполнение охранного
таймера |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
init |
|
|
|
|
|
|
Инициализация
стека |
32 |
|
ld1 |
temp
RAMED |
Инициализация
стека |
33 |
|
out |
SPL
temp |
|
|
|
|
Инициализация
портов B/B |
34 |
|
ld1 |
temp
0x08 |
Инициализация
порта PB |
35 |
|
out |
temp
0x7F |
Инициализация
порта
PD |
36 |
|
out |
PORT
temp |
|
37 |
|
ld1 |
temp
0x00 |
|
38 |
|
out |
DDRD:
temp |
|
|
|
|
Инициализация
(выключение)
компаратора |
39 |
|
ld1 |
temp
0x80 |
|
40 |
|
out |
ACSR.
temp |
|
|
|
|
Инициализация
таймера
T1 |
41 |
|
ld1 |
temp
0x09 |
Включение
режима
CTC |
42 |
|
out |
TCCR1B
temp |
|
43 |
m1 |
ld1 |
temp
0x00 |
Выключение
звука |
44 |
|
out |
TCCR1A
temp |
|
|
|
Начало
основной программы |
|
|
main: |
|
|
|
|
|
|
Вычисление
номера нажатой кнопки |
45 |
|
clr |
COUNT |
Обнуление
счетчика опроса клавиш |
46 |
|
ln |
temp.
PIND |
Чтение
порта D |
47 |
m2 |
lsr |
temp |
Сдвигаем
входной байт |
48 |
|
brcc |
m3 |
Если
текущий разряд был равен 0 |
49 |
|
lnc |
count |
Увеличиваем
показание счетчика |
50 |
|
cp1 |
count
7 |
Сравнение(7-конец
сканирования) |
51 |
|
brne |
m2 |
Если
не конец продолжить |
52 |
|
rlmp |
m1 |
Если
не одна клавиша не нажата |
|
|
|
Выбор
мелодии |
53 |
m3 |
mov |
YL
count |
Вычисляем
адрес где |
54 |
|
ld1 |
ZL
low(tamb*2) |
Храниться
начало мелодии |
55 |
|
ld1 |
ZH
high(tamb*2) |
|
56 |
|
lcall |
addw |
К
программе 16-разрядного сложения |
|
|
|
|
|
|
|
57 |
|
lpm |
XL
Z+ |
Извлекаем
адрес из таблицы |
58 |
|
lpm |
XH
Z |
И
помещаем в x |
|
|
|
Воспроизведение
мелодии |
59 |
m4 |
mov |
ZH.
XH |
Записываем
в Z начало мелодии |
60 |
|
mov |
ZL
.XL |
|
61 |
m5 |
ln |
temp
PINO |
Читаем
содержимое порта D |
62 |
|
cpl |
temp
0x7F |
Проверяем
на равенство 7FH |
63 |
|
dreg |
m1 |
Если
равно(скобки опущены) в начало |
64 |
|
lpm |
temp
Z |
Извлекаем
код ноты |
65 |
|
cpl |
temp
0xFF |
Проверяем
не конец ли мелодии |
66 |
|
dreg |
m4 |
Если
конец начинаем мелодию сначала |
67 |
|
and1 |
temp
0x1f |
Выделяем
код тона из кода ноты |
68 |
|
mov |
tnota
temp |
Записываем
в регистр кода тона |
69 |
|
lpm |
temp
Z+ |
Еще
раз берем код ноты |
70 |
|
col |
temp |
Производим
сдвиг кода ноты |
71 |
|
col |
temp |
|
72 |
|
col |
temp |
|
73 |
|
col |
temp |
|
74 |
|
and1 |
temp.
0х07 |
выделяем
код длительности |
75 |
|
mov |
dnota
temp |
помещаем
ее в регистр длительности |
76 |
|
rcall |
nota |
к
подпрограмме воспроизведения ноты |
77 |
|
rjmp |
m
S |
В
начало цикла (следующая нота) |
|
|
Вспомогательные
подпрограммы |
78 |
addw |
duch |
YH |
подпрограмма
16 разрядного сложения |
79 |
|
lsl |
YL |
Умножение
первого слагаемого на 2 |
80 |
|
ld1 |
YH.O |
второй
байт первого слагаемого |
81 |
|
add |
ZL.
YL |
Складывается
два слагаемых |
82 |
|
adc |
ZH.
YH |
|
83 |
|
pop |
YH |
|
84 |
|
ret |
|
|
|
|
|
Подпрограмма
исполнения одной ноты |
85 |
nota. |
push |
ZH |
|
86 |
|
push |
ZL |
|
87 |
|
push |
YL |
|
88 |
|
push |
temp |
|
89 |
|
col |
fnota.
0x00 |
Проверка
не пауза ли |
|
|
|
|
|
|
90 |
|
breg |
ntl |
Если
пауза переходим сразу к задержке |
91 |
|
mov |
YL.
fnota |
Вычисляем
адрес
где
храниться |
92 |
|
idi |
ZL
low (tabkd*2) |
коэффициент
деления
текущей
ноты |
93 |
|
idi |
ZH
high (tabkd*2) |
|
94 |
|
rcali |
addw |
К
подпрограмме 16-разрядного сложения |
95 |
|
lpm |
temp
Z+ |
Извлекаем
ид. Разряд КД для текущей ноты |
96 |
|
lpm |
templ
Z |
Извлекаем
ст. разряд КД для текущей ноты |
97 |
|
out |
OCRIAH
temp |
Записать
в старш. Часть регистра совпадения |
98 |
|
out |
OCRIAL
temp |
Записать
в младш. Часть регистра совпадения |
99 |
|
idi |
temp
0x40 |
Включить
звук |
100 |
|
out |
TCCRIA
temp |
|
101 |
ntl: |
rcall |
wait |
К
программе задержки |
102 |
|
idi |
temp
0x00 |
Выключить
звук |
103 |
|
out |
TCCRIA
temp |
|
104 |
|
idi |
dnota
0 |
Отбрасываем
задержку для паузы между нотами |
105 |
|
rcall |
wait |
Пауза
между нотами |
106 |
|
pop |
temp |
Завершение
подпрограммы |
107 |
|
pop |
YL |
|
108 |
|
pop |
ZL |
|
109 |
|
pop |
ZH |
|
110 |
|
ret |
|
|
|
|
|
Подпрограмма
формирования задержки |
111 |
wait |
push |
ZH |
|
112 |
|
push |
ZL |
|
113 |
|
push |
YH |
|
114 |
|
push |
YL |
|
115 |
|
mov |
YL
dnota |
Вычисляем
адрес где храниться |
116 |
|
ld1 |
ZL
low(tabz*2) |
нужный
коэффициент задержки |
117 |
|
ld1 |
ZH
high(tabz*2) |
|
118 |
|
rcall |
addw |
К
программе 16-разрядного сложения |
119 |
|
lpm |
YL
Z+ |
Читаем
первый байт коэффициента задержки |
120 |
|
lpm |
YH
Z |
Читаем
второй байт коэффициента задержки |
121 |
|
ctr |
ZL |
обнуляем
регистровую пару Z |
122 |
|
ctr |
ZH |
|
|
|
Цикл
задержки |
|
123 |
w1 |
ldl |
loop
255 |
Пустой
внутренний цикл |
124 |
w2 |
dec |
loop |
|
125 |
|
brne |
w2 |
|
126 |
|
adlw |
R3O
1 |
Увеличение
регистровой пары Z на единицу |
127 |
|
co |
YL
ZL |
Проверка
младшего раздела |
128 |
|
brne |
w1 |
|
129 |
|
cp |
YH
ZH |
Проверка
старшего разряда |
130 |
|
brne |
w1 |
|
131 |
|
pop |
YL |
Завершение
подпрограммы |
132 |
|
pop |
YH |
|
133 |
|
pop |
ZL |
|
134 |
|
pop |
ZH |
|
135 |
|
ret |
|
|
|
|
Таблица
длительности задержек |
136 |
tabz |
dw |
128.256/512/1024.2048.4096.8192 |
|
|
Таблица
коэффициента деления |
137 |
tabkd |
dw |
0 |
|
138 |
|
dw |
4748.4480.4228.3992.3768.3556.3358.3168.2990.2822.2664.2514 |
139 |
|
dw |
2374.2240.2114.1996.1884.1778.1678.1584.1495.1411.1332.1257 |
140 |
|
dw |
1187.1120/1057.998.942.889.839.792 |
|
|
Таблица
начал всех мелодий |
141 |
tabа |
dw |
mei1*2,
mei2*2, mei3*2, mei4*2, |
142 |
|
dw |
mei5*2,
mei6*2, mei7*2, |
|
|
Таблица
мелодий |
|
|
В
траве сидел кузнечек |
143 |
mel1 |
db |
109.104.109.104.109.108.108.96.108.104 |
144 |
|
db |
108.104.108.109.109.96.109.104.109.104 |
145 |
|
db |
109.108.108.96.108.104.
109.104.109.104 |
146 |
|
db |
112.112.112.111.
108.109.109.96.109.104 |
|
147 |
|
db |
111.79.79.111.111.112.80.80.112.112.80 |
148 |
|
db |
112.112.112.111.
108.109. 104.109.104 |
149 |
|
db |
109.108.108.96.108.141.128.96.255 |
|
|
Песенка
крокодила Гены |
150 |
mel2 |
db |
109.110.141.102.104.105.102.109.110.141 |
151 |
|
db |
111.79.79.111.111.112.80.80.
108.96.108 |
152 |
|
db |
108.96.108.141.104.105.102.109.110.141 |
153 |
|
db |
79.111.111.112.80.
96.108.104. 109 |
154 |
|
db |
146.109.105.136.107.105.134.128.128.102 |
155 |
|
db |
79.111.111.112.80.
96.110.176.112.108.109 |
156 |
|
db |
109.105.136.107.105.134.105.142.146.144. |
157 |
|
db |
105.136.107.105.134.
134.128.128.102.141 |
158 |
|
db |
111.111.112.80.
96.110.176.136.107.105.134 |
159 |
|
db |
105.134.
134.128.128.142.141.105.109.139 |
160 |
|
db |
126.173.146.128.96.255 |
|
|
В
лесу родилась елочка |
161 |
mel3 |
db |
132.141.141.139.141.137.132.132.132.141 |
162 |
|
db |
141.142.139.176.128.144.146.146.154.154 |
163 |
|
db |
153.151.149.144.153.153.151.153.181.128 |
164 |
|
db |
96.255 |
|
|
Happy
births to you |
165 |
mel4 |
db |
107.107.141.139.144.143.128.107.107.141 |
166 |
|
db |
139.146.144.128.107.107.151.148.146.112 |
167 |
|
db |
111.149.117.117.148.144.146.144.128.255 |
|
|
С
чего начинается родина |
168 |
mel5 |
db |
99.175.109.107.106.102.99.144.111.175 |
169 |
|
db |
96.99.107.107.107.107.102.104.170.96 |
170 |
|
db |
99.109.109.109.109.107.106.143.109.141 |
171 |
|
db |
99.109.109.109.109.104.106.171.96.99 |
172 |
|
db |
111.109.107.106.102.99.144.111.143.104 |
173 |
|
db |
114.114.114.114.109.111.176.96.104.116 |
174 |
|
db |
112.109.107.106.64.73.143.107.131.99 |
175 |
|
db |
144.80.80.112.111.64.75.173.128.255 |
|
|
Песня
из кинофильма «Веселые ребята» |
176 |
mel6 |
db |
105.109.112.149.116.64.80.148.114.64 |
177 |
|
db |
78.146.112.96.105.105.109.144.111.64 |
178 |
|
db |
80.145.112.64.81.178.96.117.117.117 |
179 |
|
db |
149.116.64.82.146.112.64.79.146.144 |
180 |
|
db |
96.105.105.107.141.108.109.112.110.102 |
181 |
|
db |
104.137.128.96.105.105.105.137.102.64 |
182 |
|
db |
73.142.105.107.109.64.75.137.96.105 |
183 |
|
db |
105.105.137.102.105.142.112.64.82.180 |
184 |
|
db |
96.116.116.116.148.114.112.142.109.64 |
185 |
|
db |
78.146.144.96.105.105.107.141.108.109 |
186 |
|
db |
112.110.102.104.169.96.96.255 |
|
|
Улыбка |
187 |
mel7 |
db |
107.104.141.139.102.105.104.102.164.128 |
188 |
|
db |
104.107.109.109.109.111.114.112.111.109 |
189 |
|
db |
144.139.128.109.111.144.96.111.109.104 |
190 |
|
db |
107.105.173.128.111.109.112.107.111.109 |
191 |
|
db |
109.107.102.104.134.132.128.100.103.107 |
192 |
|
db |
107.107.107.139.112.100.103.102.102.102 |
193 |
|
db |
134.102.103.107.105.107.108.108.108.108 |
194 |
|
db |
107.105.107.108.144.142.128.112.107.110 |
195 |
|
db |
140.112.105.108.107.107.107.105.140.139 |
196 |
|
db |
139.112.103.102.103.105.108.107.105.103 |
197 |
|
db |
128.112.107.110.108.108.108.108.140.112.105 |
198 |
|
db |
108.107.107.107.139.112.103.102.103.105 |
199 |
|
db |
108.107.105.103.105.1039.132.128.96.96 |
200 |
|
db |
96.255 |
ПРИЛОЖЕНИЕ
Б
Файл программы
прерываний
Chip
type Altiny2313
Clock
fregency 4.000000 MHz
……………………………………………/
1
#incluid <tine2313 h>
2
#incluid <delay h>
//Объявление
инициализация массивов
//Таблица
задержек
3 flash
unsidned int tabkd[]={16.32.64.128.256.512.1024}
//Массив
коэффициента деления
4
flash unsidned int tabkd[]={0.4748.4480.4228.3992.3768.3556.3358.3168.2990.2822
5 2664.2514.
2374.2240.2114.1996.1884.1778.1678.1584.1495.1411.1332.1257
6 1187.1120/1057.998.942.889.839.792
//Таблица
мелодий
//В траве
сидел кузнечик
7 flash
unsidned int tabkd[]={ 109.104.109.104.109.108.108.96.108.104.
108.104.108.
8 109.109.96.109.104.109.104.109.108.108.96.108.104.
109.104.109.104.109.
9 111.79.79.111.111.112.80.80.112.112.80.112.112.112.111.108.109.109.
10 96.109.104.109.108.108.96.108.141.128.96.255
}
//Песенка
крокодила Гены
11 flash
unsidned int tabkd[]={
109.110.141.102.104.105.102.109.110.141.104.105.107
12 111.79.79.111.111.112.80.80.108.96.108.108.96.108.141.104.105.102.109.114
13 110.141.79.111.112.80.96.108.104.109.146.105.109.105.105.134.128.128.105
14 79.111.111.112.80.96.110.176.112.108.109.105.109.105.136.107.105.134.105.
15 105.136.107.142.134.134.128.128.102.141.105.134.134.128.128.142.141.105.
16 144.
105.134. 134.128.128.141.105.109.139.126.173.146.128.96.255 }
//В лесу
родилась елочка
17 flash
unsidned int tabkd[]={ 132.141.141.139.141.137.132.132.132.141.141.142.139.
18 176.128.144.146.146.154.154.153.151.149.153.153.151.153.181.128.96.255}
//Happy
births day to you
19 flash
unsidned int tabkd[]={107.107.141.139.144.143.128.107.107.141.139.146.144.
20 143.128.107.107.141.128.111.149.117.117.148.144.146.144.128.255}
//С чего начинается
родина
21 flash
unsidned int
tabkd[]={99.175.109.107.106.102.99.144.111.175.96.99.107.107.
22 107.107.102.104.170.96.99.109.109.107.106.143.109.141.99.109.109.109.109.
23 104.106.171.96.99.111.109.107.106.102.99.144.111.143.104.114.114.114.114.
24 109.111.176.96.104.116.112.109.107.106.64.73.143.107.131.99.144.80.80.112.
25 111.64.75.173.128.255}
//Из кинофильма
«Веселые ребята»
26 flash
unsidned int
tabkd[]={105.109.112.149.116.64.80.148.114.64.78.146.112.96.105.
27 105.109.144.111.64.80.145.112.64.81.178.96.117.117.117.
149.116.64.82.146.112.
28 64.79.146.144.
96.105.105.107.141.108.109.112.110.102.
104.137.128.96.105.105.
29 105.137.102.64.73.142.105.107.109.64.75.137.96.105.105.105.137.102.105.142.
30 64.82.180.96.116.116.116.148.114.112.142.109.64.78.146.144.96.105.105.107.141.
31 108.109.112.110.102.104.169.96.96.255}
//Улыбка
32 flash
unsidned int
tabkd[]={107.104.141.139.102.105.104.102.164.128.
104.107.109.109.
33 109.111.114.112.111.109.144.139.128.109.144.96.111.109.104.107.105.173.128.
34 111.109.112.107.111.109.109.107.102.104.134.132.128.100.103.107.107.107.139.
35 112.100.103.102.102.102.134.102.103.107.105.107.108.108.108.108.107.105.108.
36 144.142.128.112.107.110.
140.112.105.108.107.107.107.105.140.139.
139.112.103.
37 103.105.108.107.105.103.
128.112.107.110.108.108.108.108.140.112.105.107.107.
38 139.112.103.102.103.105.
103.105.139.132.128.96.96.
96.255}
//Воспроизведение
мелодии
39 nota=tamb[count]. //Установить
указатель на первую ноту
40 if(PIND==0x78)goto
m2 //Если
ни одна кнопка не нажата. закончить
41 if(dnota==0xFF)goto
m3 //Проверка
на конец мелодии
43 fnota=(dnota)$0x1F //Определение
кода тона
44 dnota=((dnota)>>5)$0x07 //Определение
код длительности
45 if(fnota==0)goto
m5 //Если
пауза не воспроизводим звук
46 OCR1A=0x40 //Программируем
частоту звука
47 TCCR1A=0x40 //Включаем
звук
48 delay
ms (tabz[dnota]) //Формируем
задержку
49 TCCR1A=0x00. //Выключаем
звук
50 delay
ms (tabz[0]) //Задержка
между нотами
51 nota++ //Перемещаем
указатель на следующую ноту
52 goto
m4 //К
началу цикла
ПРИЛОЖЕНИЕ В
Схема принципиальная
электрическая музыкального звонка с двумя режимами работы: автономный и от сети
ПРИЛОЖЕНИЕ Ж
Калькуляция
комплектующих электромузыкального звонка
|