4.5 Расчет вентиляции
В зависимости от способа перемещения воздуха вентиляция бывает естественная и принудительная.
Параметры воздуха, поступающего в приемные отверстия и проемы местных отсосов технологических и других устройств, которые расположены в рабочей зоне, следует принимать в соответствии с ГОСТ 12.1.005-76. При размерах помещения 3 на 5 метров и высоте 3 метра, его объем 45 куб.м. Следовательно, вентиляция должна обеспечивать расход воздуха в 90 куб.м/час. В летнее время следует предусмотреть установку кондиционера с целью избежания превышения температуры в помещении для устойчивой работы оборудования. Необходимо уделить должное внимание количеству пыли в воздухе, так как это непосредственно влияет на надежность и ресурс эксплуатации ЭВМ.
Мощность (точнее мощность охлаждения) кондиционера является главной его характеристикой, от неё зависит на какой объем помещения он рассчитан. Для ориентировочных расчетов берется 1 кВт на 10 м2 при высоте потолков 2,8 – 3 м (в соответствии со СНиП 2.04.05-86 "Отопление, вентиляция и кондиционирование").
Для расчета теплопритоков данного помещения использована упрощенная методика:
Q=S·h·q (4.8)
где: Q – Теплопритоки
S – Площадь помещения
h – Высота помещения
q – Коэффициент равный 30-40 вт/м3 (в данном случае 35 вт/м3)
Для помещения 15 м2 и высотой 3 м теплопритоки будут составлять:
Q=15·3·35=1575 вт
Кроме этого следует учитывать тепловыделение от оргтехники и людей, считается (в соответствии со СНиП 2.04.05-86 "Отопление, вентиляция и кондиционирование") что в спокойном состоянии человек выделяет 0,1 кВт тепла, компьютер или копировальный аппарат 0,3 кВт, прибавив эти значения к общим теплопритокам можно получить необходимую мощность охлаждения.
Qдоп=(H·Sопер)+(С·Sкомп)+(P·Sпринт) (4.9)
где: Qдоп – Сумма дополнительных теплопритоков
C – Тепловыделение компьютера
H – Тепловыделение оператора
D – Тепловыделение принтера
Sкомп – Количество рабочих станций
Sпринт – Количество принтеров
Sопер – Количество операторов
Дополнительные теплопритоки помещения составят:
Qдоп1=(0,1·2)+(0,3·2)+(0,3·1)=1,1(кВт)
Итого сумма теплопритоков равна:
Qобщ1=1575+1100=2675 (Вт)
В соответствии с данными расчетами необходимо выбрать целесообразную мощность и количество кондиционеров.
Для помещения, для которого ведется расчет, следует использовать кондиционеры с номинальной мощностью 3,0 кВт.
4.6 Расчет уровня шума
Одним из неблагоприятных факторов производственной среды в ИВЦ является высокий уровень шума, создаваемый печатными устройствами, оборудованием для кондиционирования воздуха, вентиляторами систем охлаждения в самих ЭВМ.
Для решения вопросов о необходимости и целесообразности снижения шума необходимо знать уровни шума на рабочем месте оператора.
Уровень шума, возникающий от нескольких некогерентных источников, работающих одновременно, подсчитывается на основании принципа энергетического суммирования излучений отдельных источников:
∑L = 10·lg (Li∙n), (4.10)
где Li – уровень звукового давления i-го источника шума;
n – количество источников шума.
Полученные результаты расчета сравнивается с допустимым значением уровня шума для данного рабочего места. Если результаты расчета выше допустимого значения уровня шума, то необходимы специальные меры по снижению шума. К ним относятся: облицовка стен и потолка зала звукопоглощающими материалами, снижение шума в источнике, правильная планировка оборудования и рациональная организация рабочего места оператора.
Уровни звукового давления источников шума, действующих на оператора на его рабочем месте представлены в табл. 4.6.
Таблица 4.6 - Уровни звукового давления различных источников
Источник шума | Уровень шума, дБ |
Жесткий диск | 40 |
Вентилятор | 45 |
Монитор | 17 |
Клавиатура | 10 |
Принтер | 45 |
Сканер | 42 |
Обычно рабочее место оператора оснащено следующим оборудованием: винчестер в системном блоке, вентилятор(ы) систем охлаждения ПК, монитор, клавиатура, принтер и сканер.
Подставив значения уровня звукового давления для каждого вида оборудования в формулу (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. J. Israelsohn "Miller on edge: The role of Miller capacitance in nonlinear circuits" // EDN, 3/29/2007 http://www.edn.com/contents/images/6426883.pdf
6. C. Hillman "Common mistakes in electronic design" // EDN, 12/14/2007 http://www.edn.com/contents/images/6512156.pdf
7. "The Do's and Don'ts of Using MOS-Gated Transistors" – Application Note AN-936, International Rectifier, http://www.irf.com/technical-info/appnotes/an-936.pdf
8."TVS/Zener Theory and Design Considerations" – Handbook, Rev. 0, Jun−2005, On Semiconductor, http://www.onsemi.com/pub/Collateral/HBD854-D.PDF
9. "Characterization and Calibration of the ADC on an AVR" – Application Note AVR120, 02/06, Atmel Corporation, http://www.atmel.com/dyn/resources/prod_documents/doc2559.pdf
10."The Eye’s Response to Light" – Lutron Electronics, 8/97, http://www.lutron.com/product_technical/pdf/360-408.pdf
11."Four Great Reasons to Dim" – Lutron Electronics, http:// www.lutron.com/dim.htm
12."Frequently asked questions about dimmers" // http://www .lutron.com/product_technical/faq.asp
13."LEDs move from indication to illumination" // EDN, 8/2/2001 http://www.edn.com/contents/images/149134.pdf
14. Л. Н. Кечиев, Е. Д. Пожидаев "Защита электронных средств от воздействия статического электричества" – М.: ИД "Технологии", 2005.
15. Жидецкий В.Ц., Джигирей В.С., Мельников А.В. Основы охраны труда: Учебник – Львов, Афиша, 2008 – 351с.
16. Денисенко Г.Ф. Охрана труда: Учебн.пособие – М., Высшая школа, 1989 – 319с.
17. Самгин Э.Б. Освещение рабочих мест. – М.: МИРЭА, 1989. – 186с.
18. Справочная книга для проектирования электрического освещения. / Под ред. Г.Б. Кнорринга. – Л.: Энергия, 1976.
19. Борьба с шумом на производстве: Справочник / Е.Я. Юдин, Л.А. Борисов;
Под общ. ред. Е.Я. Юдина – М.: Машиностроение, 1985. – 400с., ил.
20. Зинченко В.П. Основы эргономики. – М.: МГУ, 1979. – 179с.
21.Методичні вказівки до виконання дипломної роботи для учнів спеціальності «Оператор комп’ютерного набору; оператор комп’ютерної верстки»/ Упоряд.: Д.О. Дяченко, К.О. Ізмалкова, О.Г. Меркулова. – Сєверодонецьк: СВПУ, 2007. – 40 с.
22. Заец Н.И. Радиолюбительские конструкции на PIC- микроконтроллерах. Книга 1 – М., Солон-ПРЕСС, 2001- 368с.
23. Заец Н.И. Радиолюбительские конструкции на PIC- микроконтроллерах. Книга 2 – М., Солон-ПРЕСС, 2003- 296 с.
24. Заец Н.И. , Сергеев В.С.Радиолюбительские конструкции на микроконтроллерах. Книга 4 – М., Солон-ПРЕСС, 2009 - 412с.
ПРИЛОЖЕНИЯ
ПРИЛОЖЕНИЕ А
Обзор семейств микроконтроллеров PIC
Из всего набора выпускаемых сегодня микроконтроллеров PIC выделяются две наиболее развитые и популярные серии PIC16 и PIC18.
Серия среднего уровня PIC16. Названия микроконтроллеров этой серии начинаются с префикса PIC16. Различные типы микроконтроллеров PIC16 могут исполняться в корпусах, имеющих 14, 18, 28, 40 и более выводов. Это наиболее типичный ряд для PIC16/PIC18 в DIP корпусах. К серии микроконтроллеров PIC16 можно смело отнести микроконтроллеры PIC12 - это те же PIC16, только исполнены в 8 выводном корпусе.
Семейство PIC16 представляет множество недорогих, высокопроизводительных 8-разрялных микроконтроллеров, выполненных по КМОП технологии с очень малым потреблением энергии и полностью статической архитектурой. Представление о семействе можно получить, рассмотрев основу системы обозначений и примеры обозначений микроконтроллеров.
После префикса PIC16, PIC12 или PIC18 следуют обозначение типа (технологии) памяти программ.
Варианты:
- CR - масочное ПЗУ; программируется один раз при изготовлении МК.
- C - EPROM; программируется электрическим способом. Может быть запрограммирована только один раз.
- F - FLASH ПЗУ (EEPROM); запрограммированная память может быть стерта "электрически" и вновь запрограммирована тысячи раз. FLASH микроконтроллеры обычно имеют также и DATA EEPROM - FLASH память данных (не путать с ОЗУ!) для хранения "неоперативных данных", таких, как настроечные параметры, изменяемые константы, тексты.
- JW - ПЗУ стираемое ультрафиолетовым облучением. Корпус таких МК имеет специальное окошко из кварца (WINDOWED).
- Обозначение типа ПЗУ может начинаться с буквы L, которая означает Low Voltage - расширенный вниз, как правило, до 2В диапазон напряжения питания и, как следствие, пониженная максимальная частота.
- LC или LF - EEPROM или FLASH ПЗУ соответственно, допускающее работу при пониженном (LOW) напряжении питания.
Изучение семейства PIC16 целесообразно начинать с наиболее перспективных его представителей. Если не вдаваться в тонкости, то можно утверждать, что масочные, EPROM и FLASH микроконтроллеры практически полностью совместимы по корпусам и выводам, имеют одинаковую архитектуру, электрические и временные характеристики, набор команд и порядок их исполнения. С началом массового выпуска FLASH микроконтроллеров и снижения цен на них, у однократно программируемых микроконтроллеров стало меньше шансов на популярность среди начинающих специалистов. Учитывая это, есть смысл основное внимание уделить именно FLASH микроконтроллерам.После префикса PIC16, PIC12 или PIC18 и обозначения типа (технологии) памяти программ следует комбинация из трех цифр, она определяет собственно тип МК.
Здесь под типом МК понимается комбинация дополнительных свойств МК, как-то: число портов ввода-вывода, объем памяти программ (ПП), памяти данных (ПД), FLASH ПЗУ данных, а главное набор периферийных функций и, следовательно, дополнительных возможностей микроконтроллера.
Например.
- PIC12F629 8-выводной МК с аналоговым компаратором.
- PIC12F675 8- выводной МК с аналоговым компаратором и 10-разрядным АЦП.
ПРИЛОЖЕНИЕ А (Продолжение)
- PIC16F628 18-выводной МК с аналоговыми компараторами, модулем сравнения/захвата/ШИМ и модулем USART (последовательная передача данных по протоколу RS-232C). Стандартный диапазон напряжения питания 3…5,5В, во всем диапазоне тактовой частоты 0…20МГц.
- PIC16LF628 обратите внимание: тип памяти LF, это значит, что МК имеет расширенный диапазон напряжения питания 2…5,5В, при тактовой частоте не более 4МГц, и стандартный диапазон напряжения питания 3…5,5В, при тактовой частоте более 4МГц.
- PIC16F628A буква в конце обозначения типа микроконтроллера указывает на то, что это вариант PIC16F628 с внесенным незначительным изменением архитектуры или технологии, или устраненным замечанием. Если будет еще изменение, то появится вариант PIC16F628В.
После типа МК в его маркировке следуют код -X/XX, где X - температурный диапазон:
-I - индустриальный -40°С…+85°С;
-E - расширенный -40°С…+125°С.
XX - тип корпуса:
- P - пластиковый DIP;
- SO-пластиковый планарный корпус SOIC;
- SS- пластиковый планарный корпус SSOP;
- JW-DIP корпус с окном для УФ стирания;
- И др.
В виде числа 04 или 20 может указываться частота под которую оптимизирован генератор МК.
Все микроконтроллеры семейства имеют одинаковое ядро, систему команд, организацию памяти программ и памяти данных и порядок взаимодействия ядра с памятью и периферийными устройствами. А отличаются друг от друга микроконтроллеры тем, что каждый из них оптимизирован под выполнение определенного круга задач и может отличаться от собратьев количеством выводов, объемом памяти программ и памяти данных, набором периферийных устройств и ценой.
Все МК имеют
- Диапазон тактовой частоты 0...20МГц.
- Одинаковое ядро.
- 35 простых инструкций.
- Режим энергосбережения SLEEP.
- POR (Power On Reset) - сброс по подаче питания (при достижении Vddmin).
-OST (Oscillator Start-up Timer) - удерживает МК в состоянии сброса на время запуска и стабилизации тактового кварцевого или кристаллического генератора.
- BOD или BOR (Brown-out Detect или Brown-out Reset) - детектор снижения Vdd с настраиваемым порогом.
- WDT (Watchdog Timer) - сторожевой таймер с настраиваемым периодом.
- Микроконтроллеры PIC16F873…877 могут программировать свою память программ в процессе работы.
- Все 8-ми и 14-ти выводные МК, кроме режимов генератора, типичных для всех PIC16, имеют встроенный стабильный (1%) тактовый RC генератор.
ПРИЛОЖЕНИЕ А (Продолжение)
Таблица популярных представителей PIC16Кол-во выводов/портов | ПП, слов | ОЗУ, Кбайт | FLASH ПД, Байт | Таймеры | Встроенные периферийные модули | |
PIC12F629 | 8/6 | 1К | 64 | 128 | TMR0, TMR1 | аналоговый компаратор |
PIC12F675 | 8/6 | 1К | 64 | 128 | TMR0, TMR1 | аналоговый компаратор, 10-разр. АЦП |
PIC12F683 | 8/6 | 2К | 128 | 256 | TMR0, TMR1, TMR2 | аналоговый компаратор, 10-разр. АЦП, модуль захвата/сравнения/ШИМ |
PIC12F630 | 14/12 | 1К | 64 | 128 | TMR0, TMR1 | аналоговый компаратор |
PIC16F676 | 14/12 | 1К | 64 | 128 | TMR0, TMR1 | аналоговый компаратор, 10-разр. АЦП |
PIC16F684 | 14/12 | 2К | 128 | 256 | TMR0, TMR1, TMR2 | аналоговый компаратор, 10-разр. АЦП, модуль захвата/сравнения/ШИМ |
PIC16F688 | 14/12 | 4К | 256 | 256 | TMR0, TMR1, TMR2 | аналоговый компаратор, 10-разр. АЦП, модуль захвата/сравнения/ШИМ, USART |
PIC16F628A | 18/16 | 4К | 224 | 128 | TMR0, TMR1, TMR2 | аналоговый компаратор, 10-разр. АЦП, модуль захвата/сравнения/ШИМ, USART/SC |
PIC16F648A | 18/16 | 4К | 256 | 256 | TMR0, TMR1, TMR2 | аналоговый компаратор, 10-разр. АЦП, модуль захвата/сравнения/ШИМ, USART/SC |
PIC16F84A | 18/13 | 1К | 68 | 64 | TMR0 | популярный, устарел |
ПРИЛОЖЕНИЕ Б
Программа для «Эффект -1» светодиодной матрицы
;------------------------------------------------------------------------------------------------------------------------------
list p = 16f628a
__config 03F30h ; 11111100110001 - защиты памяти нет, низковольтное программирование запрещено, сброс по питанию запрещен,
; RA5/-MCLR работает как -MCLR, таймер вкл-я питания включен, сторожевой таймер - выключен, генератор - внутренний
;********* Переменные ************************************
CBLOCK 0x20 ;Начальный адрес блока констант
T_ext ;таймер внешнего цикла
T_int ;таймер внутреннего цикла
Strok ;байт строк, младшие 5 бит этого байта - состояния строк (1 - вкл, 0 - выкл)
Stolb ;байт столбцов, младшие 5 бит этого байта - состояния столбцов (1 - вкл, 0 - выкл)
ENDC ;
;******** Константы ***************************************
Cr1 equ .200 ;длительность 1-й задержки 200 мкс
Cr2 equ .150 ;длительность 2-й задержки 150х200 мкс
Status equ 03h ; Регистр выбора банка
TrisA equ 05h ; Регистр выбора направления работы выводов порта А
TrisB equ 06h ; Регистр выбора направления работы выводов порта В
PortA equ 05h ; Регистр управления защелками порта А
PortB equ 06h ; Регистр управления защелками порта В
Cmcon equ 1Fh ; вкл/выкл компараторов
F equ 1 ; Результат направить в регистр.
;********************************************************
; Пусть у нас RA1, RA2, RA3, RA6, RA7 - выходы строки
; RB3, RB4, RB5, RB6, RB7 - выходы столбцы
;********************************************************
;
org 0
;******** Установка направления работы порта A: RA7, RA6 - выходы, RA5, RA4, RA3 - входы, RA2, RA1, RA0 - выходы
;******** Установка направления работы порта B: RB7, RB6, RB5, RB4, RB3, RB2 - выходы, RB1, RB0 - входы ***
start movlw .7 ;
movwf Cmcon ; выключить компараторы и включить эти пины как цифровые входы/выходы
clrf PortA ; инициализация защелок порта А
movlw .248 ; 11111000
movwf PortB ; инициализация защелок порта В
bsf Status,5 ; Перейти в 1-й банк (установить в 1 5-й бит регистра Status).
movlw .49 ; Записать конфигурацию порта A в аккумулятор (W). .49=00110001
movwf TrisA ; Скопировать конфигурацию порта А из W в регистр TrisA
movlw .7 ; Записать конфигурацию порта В в аккумулятор (W). .3=00000111
movwf TrisB ; Скопировать конфигурацию порта B из W в регистр TrisB.
bcf Status,5 ; Перейти в 0-й банк (установить в 0 5-й бит регистра Status)
;******** ЭФФЕКТ 1 ********************************************************************************
eff1 movlw b'00011111' ; включаем все строки
movwf Strok
movlw b'00000001' ; и первый столбец
movwf Stolb
;-------- Включаем светодиоды -----------------
cikl_stolb1 call in_ports
call pause
rlf Stolb,1 ; переходим на следующий столбец
btfss Stolb,5 ; если 5 бит stolb = 1, то следующая команда пропускается
goto cikl_stolb1
;----------------------------------------------
movlw b'00000001' ; включаем первую строку
movwf Strok
movlw b'00011111' ; и все столбцы
movwf Stolb
;-------- Включаем светодиоды -----------------
cikl_strok1 call in_ports
call pause
rlf Strok,1 ; переходим на следующую строку
btfss Strok,5 ; если 5 бит stolb = 1, то следующая команда пропускается
goto cikl_strok1
goto eff1
;******************************************************************************************************
;******** Процедура включения строк и столбцов
in_ports btfsc Stolb,0 ; если 0-й бит stolb = 0, то следующая команда пропускается
bcf PortB,3 ; RB3=0 - вкл.1 столбец
btfss Stolb,0 ; если 0-й бит stolb =1, то следующая команда пропускается
bsf PortB,3 ; RB3=1 - выкл. 1 столбец
;--------------------------------------
btfsc Stolb,1 ; если 1-й бит stolb = 0, то следующая команда пропускается
bcf PortB,4 ; RB4=0 - вкл. 2 столбец
btfss Stolb,1 ; если 1-й бит stolb =1, то следующая команда пропускается
bsf PortB,4 ; RB4=1 - выкл. 2 столбец
;-------------------------------------
btfsc Stolb,2 ; если 2-й бит stolb = 0, то следующая команда пропускается
bcf PortB,5 ; RB5=0 - вкл. 3 столбец
btfss Stolb,2 ; если 2-й бит stolb =1, то следующая команда пропускается
bsf PortB,5 ; RB5=1 - выкл. 3 столбец
;--------------------------------------
btfsc Stolb,3 ; если 3-й бит stolb = 0, то следующая команда пропускается
bcf PortB,6 ; RB6=0 - вкл. 4 столбец
btfss Stolb,3 ; если 3-й бит stolb =1, то следующая команда пропускается
bsf PortB,6 ; RB6=1 - выкл. 4 столбец
;--------------------------------------
btfsc Stolb,4 ; если 4-й бит stolb = 0, то следующая команда пропускается
bcf PortB,7 ; RB7=0 - вкл. 5 столбец
btfss Stolb,4 ; если 4-й бит stolb =1, то следующая команда пропускается
bsf PortB,7 ; RB7=1 - выкл. 5 столбец
;-------- Строки -----------------------------------------------------------
btfsc Strok,0 ; если 0-й бит strok = 0, то следующая команда пропускается
bsf PortA,2 ; RA2=1 - вкл.1 строку
btfss Strok,0 ; если 0-й бит strok =1, то следующая команда пропускается
bcf PortA,2 ; RA2=0 - выкл.1 строку
;--------------------------------------
btfsc Strok,1 ; если 1-й бит strok = 0, то следующая команда пропускается
bsf PortA,3 ; RA3=1 - вкл.2 строку
btfss Strok,1 ; если 1-й бит strok =1, то следующая команда пропускается
bcf PortA,3 ; RA3=0 - выкл.2 строку
;--------------------------------------
btfsc Strok,2 ; если 2-й бит strok = 0, то следующая команда пропускается
bsf PortA,1 ; RA1=1 - вкл.3 строку
btfss Strok,2 ; если 2-й бит strok =1, то следующая команда пропускается
bcf PortA,1 ; RA1=0 - выкл.3 строку
;--------------------------------------
btfsc Strok,3 ; если 3-й бит strok = 0, то следующая команда пропускается
bsf PortA,7 ; RA7=1 - вкл.4 строку
btfss Strok,3 ; если 3-й бит strok =1, то следующая команда пропускается
bcf PortA,7 ; RA7=0 - выкл.4 столбец
;--------------------------------------
btfsc Strok,4 ; если 4-й бит strok = 0, то следующая команда пропускается
bsf PortA,6 ; RA6=1 - вкл.5 строку
btfss Strok,4 ; если 4-й бит strok =1, то следующая команда пропускается
bcf PortA,6 ; RA6=0 - выкл.5 строку
return
;****************************************************************************************************
;******** Процедура Паузы ****************************************************************************
pause movlw Cr2
movwf T_ext ; загрузить значение для внешнего цикла
cikl2 movlw Cr1
movwf T_int ; загрузить значение для внутреннего цикла
cikl3 decfsz T_int,1 ; если T_int = 0, следующая команда пропускается
goto cikl3 ; внутренний цикл
decfsz T_ext,1 ; если T_ext = 0, следующая команда пропускается
goto cikl2 ; внешний цикл
return
end
ПРИЛОЖЕНИЕ В
Программа для создания эффекта «Вращающийся крест»
;--------------------------------------------------------------------------------------------------------------------------
list p = 16f628a
__config 03F30h ; 11111100110001 - защиты памяти нет, низковольтное программирование запрещено,
; сброс по питанию запрещен, RA5/-MCLR работает как -MCLR, таймер вкл-я питания включен,
; сторожевой таймер - выключен, генератор - внутренний
;********* Переменные ************************************
CBLOCK 0x20 ; Начальный адрес блока
Temp ; обменник , 20h
Adr ; адрес фрейма в EEPROM или ОЗУ , 21h
T_int ; счетчик для паузы , 22h
Strok ; байт текущего состояния строк , 23h
Stolb ; байт текущего состояния столбцов , 24h
Fr_sch ; счетчик фреймов , 25h
Fr_cikl ; счетчик показов одного фрейма , 26h
Fr_kol ; количество фреймов , 27h
Fr_cikl_kol ; количество показов одного фрейма , 28h
;----- Свободная память ОЗУ в нулевом банке от 29h до 7Fh ---------------------------------
;----- Из этих 86 своб-х байт в первые 30 мы будем грузить наши фреймы ------------------
ENDC ;
;******** Константы ***************************************
Status equ 03h ; Регистр выбора банка
TrisA equ 05h ; Регистр выбора направления работы выводов порта А
TrisB equ 06h ; Регистр выбора направления работы выводов порта В
PortA equ 05h ; Регистр управления защелками порта А
PortB equ 06h ; Регистр управления защелками порта В
Cmcon equ 1Fh ; вкл/выкл компараторов
F equ 1 ; Результат направить в регистр.
FSR equ 04h ; регистр адреса при косвенной адресации
INDF equ 0h ; регистр косвенной адресации
Cr equ .50 ; значение счетчика для паузы
EEADR equ 1Bh ; адрес EEPROM
EECON1 equ 1Ch ; управляющий регистр для работы c EEPROM
EEDATA equ 1Ah ; регистр данных из/в EEPROM
;********************************************************
; Пусть у нас RA1, RA2, RA3, RA6, RA7 - выход строки
; RB3, RB4, RB5, RB6, RB7 - выходы столбцы
;********************************************************
org 0
;******** Установка направл-я работы порта A: RA7, RA6 - выходы, RA5, RA4, RA3 - входы, RA2, RA1, RA0 - выходы
;******** Установка направл-я работы порта B: RB7, RB6, RB5, RB4, RB3, RB2 - выходы, RB1, RB0 - входы *********
start movlw .7 ;
movwf Cmcon ; выключить компараторы и включить эти пины как цифровые входы/выходы
clrf PortA ; инициализация защелок порта А
movlw .248 ; 11111000
movwf PortB ; инициализация защелок порта В
bsf Status,5 ; Перейти в 1-й банк (установить в 1 5-й бит регистра Status).
movlw .49 ; Записать конфигурацию порта A в аккумулятор (W). .49=00110001
movwf TrisA ; Скопировать конфигурацию порта А из W в регистр TrisA
movlw .7 ; Записать конфигурацию порта В в аккумулятор (W). .3=00000111
movwf TrisB ; Скопировать конфигурацию порта B из W в регистр TrisB.
bcf Status,0 ; Сбросить флаг переноса (С) (после старта он может быть любым)
;******** Загрузка данных для фреймов из EEPROM в ОЗУ *******************************************************
;--------- Сначала прочитаем первый байт - узнаем, сколько фреймов надо считать ------------------
movlw .0 ; банк менять не надо, мы уже в первом банке
movwf EEADR ; установить адрес для чтения из EEPROM
bsf EECON1,0 ; чтение
movf EEDATA,0 ; запись прочитанного байта в аккумулятор
bcf Status,5 ; Перейти в 0-й банк (установить в 0 5-й бит регистра Status)
movwf Fr_kol ; сохранение прочитанного байта в Fr_kol
;-------- Fr_kol*5+1 - узнаем сколько байт надо считать --------------------------
rlf Fr_kol,0 ; умножаем на 2
movwf Temp
rlf Temp,0 ; еще на 2 (после этой команды в аккумуляторе Fr_kol*4)
addwf Fr_kol,0 ; после этого в аккумуляторе Fr_kol*5
movwf Temp ; сохраняем это значение в Temp
incf Temp,1 ; теперь Temp=Fr_kol*5+
;---------- Считываем Fr_kol*5+1 байт ----------------------------------------------
movlw 28h ; считанные данные сохраняем начиная с этого адреса (первый байт в Fr_cikl_kol и далее...)
movwf FSR ; адрес для косвенной адресации
movlw .1 ; начинаем читать EEPR
movwf Adr ; с адреса 1
zagruzka bsf Status,5 ; перейти в первый банк
movwf EEADR ; загружаем из аккумулятора адрес для чтения из EEPROM
bsf EECON1,0 ; чтение
movf EEDATA,0 ; запись прочитанного байта в аккумулятор
bcf Status,5 ; Перейти в 0-й банк (установить в 0 5-й бит регистра Status)
movwf INDF ; сохраняем считанный байт по адресу, записанному в FSR
incf FSR,1 ; увеличиваем адрес ОЗУ
incf Adr,1 ; увеличиваем адрес EEPROM
movf Adr,0 ; загружаем адрес EEPROM в аккумулятор
decfsz Temp,1 ; если считали все байты - следующая команда пропускается
goto zagruzka
;**************************************************************************************************
;******** Основная прога **************************************************************************
effect movlw 29h ; загружаем адрес начала первого фрейма в ОЗУ (2h) в переменную Adr
movwf Adr ;
movf Fr_kol,0 ; загружаем кол-во фреймов
movwf Fr_sch ; в счетчик фреймов
show movf Fr_cikl_kol,0 ; загружаем кол-во показов одного фрейма
movwf Fr_cikl ; в счетчик показов фрейма
povtor call show_frame ; показываем один фрейм Fr_cikl кол-во раз
decfsz Fr_cikl,1
goto povtor
movlw .5 ; переходим к следующему фрейму (сдвигаем Adr на 5)
addwf Adr,1
decfsz Fr_sch,1 ; уменьшаем счетчик фреймов для показа
goto show ; если не все наборы показаны, то переходим к следующему
goto effect ; если все, то начинаем сначала
;*********************************************************************************************
;********* Процедура показа одного фрейма ****************************************************
show_frame movf Adr,0 ; загружаем в FSR адрес начала фрейма
movwf FSR
movlw b'00000001' ; начинаем с первой строки
movwf Strok
show_next movf INDF,0 ; загружаем набор столбцов для выбранной строки
movwf Stolb ; аккумулятор в stolb
call in_ports
call pause
call erase
incf FSR,1 ; следующий набор строк
rlf Strok,1 ; переходим на следующую строку
btfss Strok,5 ; если 5-й бит strok = 1, то следующая команда пропускается
goto show_next
return
;******** Процедура включения строк и столбцов в соответствии с байтами Strok и Stolb ************
in_ports btfsc Stolb,0 ; если 0-й бит stolb = 0, то следующая команда пропускается
bcf PortB,3 ; RB3=0 - вкл.1 столбец
btfss Stolb,0 ; если 0-й бит stolb =1, то следующая команда пропускается
bsf PortB,3 ; RB3=1 - выкл. 1 столбец
;--------------------------------------
btfsc Stolb,1 ; если 1-й бит stolb = 0, то следующая команда пропускается
bcf PortB,4 ; RB4=0 - вкл. 2 столбец
btfss Stolb,1 ; если 1-й бит stolb =1, то следующая команда пропускается
bsf PortB,4 ; RB4=1 - выкл. 2 столбе
;--------------------------------------
btfsc Stolb,2 ; если 2-й бит stolb = 0, то следующая команда пропускается
bcf PortB,5 ; RB5=0 - вкл. 3 столбец
btfss Stolb,2 ; если 2-й бит stolb =1, то следующая команда пропускается
bsf PortB,5 ; RB5=1 - выкл. 3 столбец
;--------------------------------------
btfsc Stolb,3 ; если 3-й бит stolb = 0, то следующая команда пропускается
bcf PortB,6 ; RB6=0 - вкл. 4 столбец
btfss Stolb,3 ; если 3-й бит stolb =1, то следующая команда пропускается
bsf PortB,6 ; RB6=1 - выкл. 4 столбец
;--------------------------------------
btfsc Stolb,4 ; если 4-й бит stolb = 0, то следующая команда пропускается
bcf PortB,7 ; RB7=0 - вкл. 5 столбец
btfss Stolb,4 ; если 4-й бит stolb =1, то следующая команда пропускается
bsf PortB,7 ; RB7=1 - выкл. 5 столбец
;-------- Строки -----------------------------------------------------------
btfsc Strok,0 ; если 0-й бит strok = 0, то следующая команда пропускается
bsf PortA,2 ; RA2=1 - вкл.1 строку
btfss Strok,0 ; если 0-й бит strok =1, то следующая команда пропускается
bcf PortA,2 ; RA2=0 - выкл.1 строку
;--------------------------------------
btfsc Strok,1 ; если 1-й бит strok = 0, то следующая команда пропускается
bsf PortA,3 ; RA3=1 - вкл.2 строку
btfss Strok,1 ; если 1-й бит strok =1, то следующая команда пропускается
bcf PortA,3 ; RA3=0 - выкл.2 строку
;--------------------------------------
btfsc Strok,2 ; если 2-й бит strok = 0, то следующая команда пропускается
bsf PortA,1 ; RA1=1 - вкл.3 строку
btfss Strok,2 ; если 2-й бит strok =1, то следующая команда пропускается
bcf PortA,1 ; RA1=0 - выкл.3 строку
;--------------------------------------
btfsc Strok,3 ; если 3-й бит strok = 0, то следующая команда пропускается
bsf PortA,7 ; RA7=1 - вкл.4 строку
btfss Strok,3 ; если 3-й бит strok =1, то следующая команда пропускается
bcf PortA,7 ; RA7=0 - выкл.4 столбец
;--------------------------------------
btfsc Strok,4 ; если 4-й бит strok = 0, то следующая команда пропускается
bsf PortA,6 ; RA6=1 - вкл.5 строку
btfss Strok,4 ; если 4-й бит strok =1, то следующая команда пропускается
bcf PortA,6 ; RA6=0 - выкл.5 строку
return
;****** Пауза ******************************************************
pause movlw Cr
movwf T_int ; загрузить кол-во циклов задержки
cikl3 decfsz T_int,1 ; если T_int = 0, следующая комада пропускается
goto cikl3 ; внутренний цикл
return
;****** Гашение всех светодиодов ***********************************
erase movf Strok,0
movwf Temp
movlw .0
movwf Stolb
movwf Strok
call in_ports
movf Temp,0
movwf Strok
return
;*******************************************************************************************************
org 2100h ; EEPROM память
de .6, .40 ; кол-во фреймов и кол-во показов одного фрейма (скорость)
de b'00000100', b'00000100', b'00011111', b'00000100', b'00000100' ; первый фрейм
de b'00001000', b'00000101', b'00001110', b'00010100', b'00000010' ; второй фрейм
de b'00001000', b'00001011', b'00000100', b'00011010', b'00000010' ; третий фрейм
de b'00010001', b'00001010', b'00000100', b'00001010', b'00010001' ; четвертый фрейм
de b'00000010', b'00011010', b'00000100', b'00001011', b'00001000' ; пятый фрейм
de b'00000010', b'00010100', b'00001110', b'00000101', b'00001000' ; шестой фрейм
end
;--------------------------------------------------------------------------------------------------------------------------
ПРИЛОЖЕНИЕ Д
Схема электрическая принципиальная светодиодной матрицы
... цифр из элементов в процессе считывания. Тип цифро-аналогового преобразования второго ТИ – с весовыми значениями резисторов для суммирования токов. 4. Выбор и расчет кода. Разработку системы телемеханики следует начинать с построения временной диаграммы, которая является графическим представлением временных соотношений между разными фазами работы системы. Временная диаграмма позволяет ...
... ? 8. Какими программами можно воспользоваться для устранения проблем и ошибок, обнаруженных программой Sandra? Раздел 3. Автономная и комплексная проверка функционирования и диагностика СВТ, АПС и АПК Некоторые из достаточно интеллектуальных средств вычислительной техники, такие как принтеры, плоттеры, могут иметь режимы автономного тестировании. Так, автономный тест принтера запускается без ...
... разные стороны бумажного полотна, что позволяет производить печать 4 – 5 красками с обеих сторон. Станции работают на принципе электрофотографии с сухим тонером. В машинах фирмы Xeikon, как и вообще в цифровой технике, используется реверсивное проявление. Это означает, что отрицательно заряженное скрытое электростатическое изображение проявляется отрицательно заряженным тонером. Основные ...
... . Корпус стенда ЛС-2 имеет габариты: 260х320х60 мм . 2. Постановка задачи и основные технические требования предъявляемые к устройству . В результате проведенного анализа недостатков и достоинств лабораторного стенда ЛС2, а также с учетом технических и методических требований можно сформулировать основную задачу дипломного проекта: 1) Стенду необходимо иметь по возможности минимальные размеры. ...
0 комментариев