1. Масааки И. Гемба кайдзен: Путь к снижению затрат и повышению качества/ пер. с англ. – М.: Альпина Бизнес Букс, 2005
2. Массааки И. Кайдзен: путь к успеху японских компаний/ Пер. с англ. – М.: Альпина Бизнес Букс, 2004
3. Хэрри М., Шредер Р. 6 SIGMA. Концепция идеального менеджмента. – М.: «Эксмо», 2003
4. Ньюэлл Ф. Почему не работают системы CRM. Как добиться успеха, позволив клиентам управлять отношениями с вашей компанией. – М.: Добрая книга, 2004
5. Митник Кевин. Искусство обмана. – М.: Компания АйТи, 2004
6. Голдрад Элияху, Кокс Джефф. Цель: процесс непрерывного совершенствования. – Мн. «Попурри», 2004
7. Делл Майкл. От Dell без посредников: стратегии, которые совершили революцию в компьютерной индустрии – М. 2004
8. https://chinasuppliers.alibaba.com
9. https://www.made-in-china.com
10. https://www.commlinx.com.au
11. https://www.discovercircuits.com
12. https://www.directindustry.com
13. https://electroprivod.ru
14. https://www.cs.uiowa.edu
15. https://www.anaheimautomation.com
16. https://stepmotor.ru
17. https://www.commlinx.com.au
18. https://www.caopump.com
19. https://www.legoeducationstore.com
20. https://www.allproducts.com.tw
21. https://radio-spravochnik.by.ru/
22. https://www.futurlec.com/
23. https://www.st.com
24. https://www.keil.com
25. https://www.cpu-world.com
26. https://microcontroller.com
27. https://www.infineon.com
28. https://www.ti.com
29. https://www.atmel.com
30. https://www.maxim-ic.com
31. П. Хоровиц, У. Хилл. Искусство схемотехники: в 2-х томах./Перевод с англ. под ред. М. В. Гальперина. – М.: Мир, 1986
32. Т. Мотоока, Х. Хорикоси, М. Сакаути, Х. Танака, Х. Танака, Т. Сайто. Компьютеры на СБИС. В двух книгах./Перевод с японского под ред. В. М. Кисельникова. – М.:Мир, 1988
33. Г.И.Пухальский,Т.Я.Новосельцева.- Цифровые устройства: Учебное пособие для втузов.- СПб.: Политехник, 1996 г.
34. https://www.engineering-sample.com/
35. https://cxem.net
36. https://kazus.ru
37. https://www.techlib.com
38. https://www.uoguelph.ca
39. https://www.fujitsu.com
40. https://www.usdigital.com
41. https://www.ledtronics.com
Приложения
Приложение А
|
Функциональная схема аппарата
Приложение Б
Блок-схема алгоритма
Приложение В
Программа
NAME PROGRAM
org 000h
ljmp BEGIN
N_GLASS:DB6H;количество стаканчиков
N_MOTOR_COUNT:DB2H;количество оборотов ротора мотора
N_STEP:DB8H;шагом одного оборота ротора мотора
STEPS:DB90H, 10H, 30H, 20H, 60H, 40, 0C0H, 80H;шаги
TH_MOTOR:DB;задержка перед следующим шагом
TL_MOTOR:DB;задержка перед следующим шагом
TH_PUMP:DB;время работы мотора
TL_PUMP:DB;время работы мотора
TH_LED:DB;задержка смены состояния светодиода
TL_LED:DB;задержка смены состояния светодиода
TH_PAUSE:DB;задержка для паузы
TL_PAUSE:DB;задержка для паузы
LED_WINK:;процедура мигания светодиода
JNBP1.2, SET_WINK;если светодиод - выключен, включим
SETBP1.2;выключить светодиод
JMPWAIT_WINK;обеспечим задержку смены состояния
SET_WINK:
CLRP1.2;включим светодиод
WAIT_WINK:
MOVDPTR, #TH_LED;загружаем адрес ячейки с временем задержки
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе время задержки
MOVTH0, A;загружаем время задержки в TH0
MOVDPTR, #TL_LED;загружаем адрес ячейки с временем задержки
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе время задержки
MOVTL0, A;загружаем время задержки в TL0
CALLTIMER;вызов процедуры опроса таймера
JMPLED_WINK;переход на следующий цикл
TIMER:;процедура опроса таймера
SETBTR0;запускаем таймер
TIMER_STEP:
JBTF0, TIMER_STEP;ждем переполнения таймера
CLRTR0;выключаем таймер
RET;выход из процедуры
BEGIN:
MOVP0, #0H;на выводы порта P0 - логический ноль
MOVTMOD, #01H;настройка таймера
MOV R0, #0H;R0 - количество заполненных стаканчиков; обнуляем
NEXT_GLASS:
JNBP3.7, LED_WINK;если сигнала нет - воды недостаточно, мигает светодиод
START:
CLRP1.2;светит светодиод
|
MOVDPTR, #N_GLASS;загружаем адрес ячейки с количеством стаканчиков
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе количество стаканчиков
SUBB A, R0;контрольное вычитание
JZEXIT;если все стаканчики заполнены на выход
MOTOR:
MOVDPTR, #N_MOTOR_COUNT;загружаем адрес ячейки с количеством оборотов ротора мотора
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе количество оборотов ротора мотора
MOVR1, A;сохраняем это число в R1
NEXT_ROUND:
MOVDPTR, #N_STEP;загружаем адрес ячейки с количеством шагов
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе количество шагов
MOVR2, A;сохраняем это число в R2
MOVDPTR, #STEPS;загружаем адрес ячейки с последовательностью шагов
NEXT_STEP:
MOVR6, DPH;сохраняем адрес в регистрах R6 и R7, они пригодятся позже
MOVR7, DPL
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе очередной шаг
MOVP1, A;вывод в очередного шага в порт P1
MOVDPTR, #TH_MOTOR;загружаем адрес ячейки с временем задержки
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе время задержки
MOVTH0, A;загружаем время задержки в TH0
MOVDPTR, #TL_MOTOR;загружаем адрес ячейки с временем задержки
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе время задержки
MOVTL0, A;загружаем время задержки в TH0
CALLTIMER;вызов процедуры опроса таймера
MOVDPH, R6;выгружаем из R6 и R7 адрес ячейки текущего шага
MOVDPL, R7
INCDPTR;получение адреса ячейки следующего шага
DECR2;декремент количества шагов
MOVA, R2;пересылка в аккумулятор для контроля
JNZNEXT_STEP;если не все шаги пройдены - продолжаем
DECR1;декремент количества поворотов ротора
MOVA, R1;пересылка в аккумулятор для контроля
JNZNEXT_ROUND;если не все обороты сделаны - продолжаем
MOVP1, #0H;закончили работу с двигателем
|
PUMP:
SETBP1.3;включение насоса
MOVDPTR, #TH_PUMP;загружаем адрес ячейки с временем работы насоса
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе время работы насосы
MOVTH0, A;загружаем время в TH0
MOVDPTR, #TL_PUMP;загружаем адрес ячейки с временем работы насоса
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе время работы насосы
MOVTL0, A;загружаем время в TL0
CALLTIMER;вызов процедуры опроса таймера
CLRP1.3;выключить насос
INCR0;инкремент количества заполненных стаканчиков
MOVDPTR, #TH_PAUSE;загружаем адрес ячейки с временем паузы
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе время паузы
MOVTH0, A;загружаем время паузы в TH0
MOVDPTR, #TL_PAUSE;загружаем адрес ячейки с временем паузы
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе время паузы
MOVTL0, A;загружаем время паузы в TL0
CALLTIMER;вызов процедуры опроса таймера
JMPNEXT_GLASS;переходим к заполнению следующего стаканчика
EXIT:
END