Аппаратно-программный комплекс контроля параметров в теплице

Системно–алгоритмическая модель аппаратно–программного комплекса автоматического контроля параметров микроклимата теплицы. Программная реализация работы клавиатурной матрицы, измерения влажности и 1-Wire интерфейса для связи с цифровым термометром.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 02.02.2016
Размер файла 920,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Расчет трудоемкости разработки выполнен на основе системы моделей, за единицу нормирования в которых принято число исходных команд. Под исходной командой понимается физическая строка на распечатке программы или на дисплеи. Нормирование труда программистов на базе модели, построенной на основе понятия исходной команды, является более предпочтительным по сравнению с использованием модели, построенной на основе понятия машинной команды, так как последняя не является непосредственным результатом труда программиста.

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

, (1)

где nmик - число тысяч исходных команд в тексте программы.

t = 2,4 · 1,51,05 = 3,67 чел. - мес.

В методе уточненной модели все характеристики программного продукта рассчитаем с учетом его качественного уровня.

Коэффициент уровня программной разработки (Ку.п.) определен по следующим факторам (табл.1).

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

Таблица 1 - Оценка факторов трудоёмкости

Фактор

трудоемкости

Характеристика условий разработки

Рейтинг

Коэффициент

затрат труда

ТАПП

Вся информация, вводимая с помощью комплекса, отражается в отчетах, т.е. при потере информацию можно восстановить

Номинальный

1

СПП

Объем кода подсистемы 1 КЧИК

Очень низкий

1

ОБД

Использование около 50% быстродействия процессора 400MHz

Номинальный

1

ОП

Использование до 30% имеющейся оперативной памяти (40-50Mb из 128 Mb)

Номинальный

1

КА

Главный специалист, опыт работы около 12 месяцев

Низкий

1,19

КП

Ведущий специалист, опыт работы 3 года

Номинальный

1

КЗ

Заказчик “Федеральное производственное объединение”, четко сформулированное техническое задание.

Очень высокий

0,85

ПСМ

Обязательное применение современных методологий для анализа, проектирования и программирования

Очень высокий

0,82

ИИС

Использование современных средств анализа и проектирования - языка С и ассемблера.

Очень высокий

0,83

ОСР

Установленный срок разработки - 2 месяца, номинальный срок разработки 1 месяц

низкий

1,23

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

, (2)

где Кi - коэффициент рейтинга для i-го фактора.

Произведя подсчет, получим: Ку.п. = 0,85.

В уточненной модели все характеристики разработки рассчитываются с учетом его качественного уровня, кроме того, в модели используется понятие номинальной трудоемкости, определяемой по формуле (3), соответствующей независимому типу программного изделия:

, (3)

где nmик - число тысяч исходных команд в тексте программы,

при nmик = 1,5 тыс. команд:

tn = 3,2 · 1,51,05 = 4,9 чел.- мес.

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

, (4)

tп = 3,2 · 0,85 = 2,7 чел.- мес.

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

Продолжительность разработки программного продукта:

(5)

Т = 2,5 · 4,90,38 = 4,6 мес.,

что вполне соответствует реальным затратам времени на разработку подсистемы автоматизированного смешивания кормов.

4.2 Обоснование материальных затрат

Стоимость эксплуатации специального оборудования в течение 1 часа (Sэсо) равна сумме амортизационных отчислений и затрат на электроэнергию (SЭЛ) за этот час, и рассчитывается исходя из того, что ЭВМ работает 8 часов в день, амортизационный период для вычислительной техники (TА) - 5 лет, а также с учетом того, что в месяце 20 рабочих дней. Стоимость ЭВМ Lenovo G380 /Pentium M2N512G-AM2 /DDR 1Gb /HDD 250Gb /SVGA 256Mb /Acer 1916S 19” /FDD 3.5” /Клав./Мышь - 15600 руб. Цена приблизительно указана в соответствии с прайс-листом воронежской фирмы «РЕТ» за апрель 2014. Стоимость электроэнергии за час рассчитывается по формуле:

, (6)

где р - потребляемая мощность, кВт; Сэ - стоимость 1 кВт-ч, руб. Стоимость 1 кВт-ч составляет 2,54 руб. Для ЭВМ потребляемая мощность 0,35 кВт. Тогда для ЭВМ SЭЛ=0,35 2,54 = 0,84 руб.

Стоимость эксплуатации специального оборудования в течение 1 часа определяется по выражению:

, (7)

где Sco - стоимость оборудования, руб.;

TA - амортизационный период для вычислительной техники, лет;

tраб - время работы в сутки, ч;

SЭЛ - стоимость электроэнергии, руб.

Sэсо = 1,36 руб.

Количество отработанных ЭВМ часов в процессе подготовки проекта приблизительно равна 700 часам, следовательно, стоимость эксплуатации специального оборудования составляет 952 руб.

4.3 Расчёт заработанной платы

Разработкой программы занимаются два человека: руководитель разработки и инженер - программист.

Месячный оклад рассчитывается по формуле .

, (8)

где Оmin - минимальная заработная плата (4430 руб.); Кt - тарифный коэффициент.

Таким образом З/п руководителя разработки составляет

Ом = 4430·4,6 = 20378 руб.

З/п инженера - программиста - Ом=4430·4=17720 руб.

Расчет основной зарплаты рассчитывается по формуле.

, (9)

где Р - число работников определенной квалификации, чел;

Впд - время участия работников определенной квалификации в данном виде работ, ч;

Ом - месячный оклад, руб;

ds - длительность работы в день, час;

Др - среднее число рабочих дней.

Зарплата руководителя:

Зарплата инженера - программиста:

Таким образом, для реализации программного проекта на оплату работы специалистов понадобится 44965 руб

4.4 Расчёт стоимости вспомогательных материалов

Вспомогательные материалы, используемые в данной разработке, включают в себя электронный носитель (Диск CD-R), бумажный носитель и картридж принтера. Данный расчёт приведен в таблице 2.

Таблица 2 - Стоимость вспомогательных материалов

Наименование

материала

Цена за единицу, руб.

Количество,

шт.

Сумма,

руб.

Диск CD-R

9

1

9

Печать на принтере + бумага

2,5

90

225

Итого (руб.)

234

Транспортно - заготовительные расходы (10% от итоговой суммы)

23,4

Всего (руб.)

257,4

Таким образом, стоимость вспомогательных материалов составляет 257,4 рублей.

4.5 Расчёт себестоимости программной разработки

Статьи затрат, в структуре расчета полной себестоимости проекта приведены в таблице 3.

Таблица 3 - Себестоимости проекта

Наименование статей затрат

Сумма, руб.

Примечания

Вспомогательные материалы

257,4

по смете

Эксплуатация специального оборудования

952

по смете

Основная заработная плата

44965

по смете

Отчисления от фонда оплаты труда

11780

26,2% от п.3

Накладные расходы

9217

20,5% от п.3

Прочие прямые расходы

3147,6

7% от п.3

Всего

70319

-

Затрата на разработку проекта составила 70319 рублей. Договорная цена включает в себя полную себестоимость и нормативную прибыль, которая составляет 20% от полной себестоимости. С учетом этого договорная цена составит 84383 руб.

5. Безопасность жизнедеятельности при работе на ЭВМ

5.1 Анализ опасных и вредных факторов

При работе за компьютером человек подвергается воздействию опасных и вредных производственных факторов, влияющих на работоспособность и здоровье человека [1] . К этим факторам можно отнести:

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

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

- запыленность воздуха;

- недостаточная освещенность рабочей зоны;

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

- электрический ток, поскольку компьютер является электроустановкой;

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

- пожарная опасность.

Воздействие указанных неблагоприятных факторов приводит к снижению работоспособности, вызываемому развивающимся утомлением.

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

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

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

Недостаточная освещенность помещения пагубно сказывается на зрительных органах человека, вызывает повышенную утомляемость глаз.

Электростатическое поле способствует оседанию пыли и аэрозольных частиц на лице, шее, руках. Да, в зависимости от природы аэрозольных загрязняющих частиц у некоторых особо чувствительных к подобному воздействию людей могут возникать те или иные кожные реакции - сухость, аллергия. Еще одно потенциально вредное влияние электростатического поля - это воздействие на ионный состав воздуха. Одним из основных поглотителей аэроионов воздуха являются кинескопы телевизоров и мониторов. Аэроионы (отрицательно заряженные ионы, заряд «-») повышают умственную и физическую работоспособность, укрепляют нервную систему.

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

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

5.2 Мероприятия по ограничению негативных воздействий

опасных и вредных факторов

Для поддержания здоровья и работоспособности человека в нормальных пределах разработаны СанПиН 2.2.4.548-96, в которых представлены оптимальные и допустимые значения параметров микроклимата.

Для работ с компьютером микроклимат регламентируется санитарно-эпидемиологическими правилами и нормативами СанПиН 2.2.2/2.4.1340-03 следующим образом:

Там где работа на компьютере является основной и связана с нервно-эмоциональным напряжением, должны обеспечиваться оптимальные параметры микроклимата, предусмотренные действующими санитарными нормами производственных помещений (таблица 4). В производственных помещения, где работа на ПЭВМ является вспомогательной, параметры микроклимата должны поддерживаться в соответствии с категорией основных работ. К категории 1a относятся работы, производимые сидя и не требующие физического напряжения, при которых расход энергии составляет до 120 ккал/ч; к категории 1б относятся работы, производимые сидя, стоя или связанные с ходьбой и сопровождающиеся некоторым физическим напряжением, при которых расход энергии составляет от 120 до 150 ккал/ч.

Таблица 4 - Оптимальные нормы микроклимата для помещений с ПЭВМ

Период

года

Категория

работ

Температура

воздуха,

Со не более

Относительная

влажность

воздуха, %

Скорость движения воздуха, м/с.

Холодный

легкая - 1а

22-24

40-60

0,1

легкая - 1б

21-23

40-60

0,1

Теплый

легкая - 1а

23-25

40-60

0,1

легкая - 1б

22-24

40-60

0,2

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

Санитарно-эпидемиологические правила и нормы СанПиН 2.2.2/2.4.1340-03 регламентируют шум, создаваемый ПЭВМ и шум на рабочем месте. Шум в производственных помещениях, где работа на компьютере является основной или вспомогательной, не должен превышать предельно допустимых уровней, предусмотренных для данных видов работ.

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

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

Для работ с компьютерами содержание вредных веществ в воздухе рабочей зоны помещений регламентируется СанПиН 2.2.2/2.4.1340-03.

Для поддержания в помещениях нормального, отвечающего гигиеническим требованиям состава воздуха, удаления из него вредных газов, паров и пыли используют вентиляцию. Механическая вентиляция, в зависимости от направления движения воздушных потоков, может быть вытяжной (отсасывающей), приточной (нагнетающей) и приточно-вытяжной. Если вентиляция происходит во всём помещении, то её называют общеобменной. Вентиляция, сосредоточенная в какой-либо зоне, называется местной (локализующей).

Также необходимо, чтобы в помещении каждый день проводилась влажная уборка. В помещении не должно быть скопления бумажных изделий. Мебель должна быть из экологически чистых материалов.

Естественное освещение должно осуществляться через световые проемы, ориентированные преимущественно на север и северо-восток и обеспечивать коэффициент естественной освещенности (КЕО) не ниже 1,2% в зонах с устойчивым снежным покровом и не ниже 1-5% на остальной территории. Указанные значения КЕО нормируются для зданий, расположенных в III световом климатическом поясе. Расчет КЕО для других поясов светового климата проводится по общепринятой методике согласно СНиП «Естественное и искусственное освещение». Расположение рабочих мест с ВДТ и ПЭВМ для пользователей в подвальных помещениях не допускается. В случаях производственной необходимости, эксплуатация ПЭВМ в помещениях без естественного освещения может проводиться только по согласованию с органами и учреждениями Государственного санитарно-эпидемиологического надзора. Искусственное освещение в помещениях эксплуатации ПЭВМ должно осуществляться системой общего равномерного освещения. В производственных и административно-общественных помещениях, в случаях преимущественной работы с документами, допускается применение системы комбинированного освещения (к общему освещению дополнительно устанавливаются светильники местного освещения, предназначенные для освещения зоны расположения документов). Местное освещение не должно создавать бликов на поверхности экрана и увеличивать освещенность экрана более 300 лк. Следует ограничивать прямую блёсткость от источников освещения. При этом яркость светящихся поверхностей (окна, светильники и др.), находящихся в поле зрения, должна быть не более 200 кд/кв.м. Следует ограничивать отраженную блёсткость на рабочих поверхностях (экран, стол, клавиатура и др.) за счет правильного выбора типов светильников и расположения рабочих мест по отношению к источникам естественного и искусственного освещения. При этом яркость бликов на экране ВДТ и ПЭВМ не должна превышать 40 кд/кв.м и яркость потолка, при применении системы отраженного освещения, не должна превышать 200 кд/кв.м. Следует ограничивать неравномерность распределения яркости в поле зрения пользователя ВДТ и ПЭВМ, при этом соотношение яркости между рабочими поверхностями не должно превышать 3:1 - 5:1, а между рабочими поверхностями и поверхностями стен и оборудования 10:1.

В качестве источников света при искусственном освещении должны применяться преимущественно люминесцентные лампы типа ЛБ. При устройстве отраженного освещения в производственных и административно-общественных помещениях допускается применение металлогалогенных ламп мощностью до 250 Вт. Допускается применение ламп накаливания в светильниках местного освещения. Общее освещение следует выполнять в виде сплошных или прерывистых линий светильников, расположенных сбоку от рабочих мест, параллельно линии зрения пользователя при рядном расположении ПЭВМ. При расположении компьютеров по периметру, линии светильников должны располагаться локализовано над рабочим столом ближе к его переднему краю, обращенному к оператору. Яркость светильников общего освещения в зоне углов излучения от 50 до 90 градусов с вертикалью в продольной и поперечной плоскостях должна составлять не более 200 кд/кв. м, защитный угол светильников должен быть не менее 40 градусов.

В России безопасность уровней ионизирующих излучений компьютерных мониторов регламентируется ГОСТ Р50948-96 и нормами НРБ-99. ГОСТ Р50948-96 ограничивает мощность дозы рентгеновского излучения величиной 100 мкР/час на расстоянии 5 см от поверхности экрана монитора, а НРБ-99 устанавливают для населения предел годовой эквивалентной дозы излучений на хрусталик глаза равный 15 мЗв.

Интенсивность энергетических воздействий в рабочем помещении нормируется ГОСТ 12.1.002-84. Электрические и электромагнитные поля, создаваемые компьютером, регламентируются СанПиН 2.2.2/2.4.1340-03. Помимо этого монитор компьютера должен соответствовать стандарту ТСО'99 или, по крайней мере, TCO'92.

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

Учитывая вредное действие электростатических полей, разработаны СанПиН 2.2.4.1191-03. Поэтому необходимо обеспечить хорошее кондиционирование воздуха и вентиляцию, а также чаще проветривать помещение с компьютерной техникой.

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

Электрооборудование вычислительных центров (ВЦ), в основном, относится к установкам до 1000В, исключение составляют дисплеи, в которых напряжение питания анодов электронно-лучевых трубок составляет несколько киловольт. Чтобы избавиться от опасности поражения электрическим током или хотя бы свести ее к минимуму, необходимы меры предосторожности. С этой целью с будущим работником проводят первичный и вводный инструктаж. Для устранения опасности поражения людей электрическим током при появлении напряжения на конструктивных частях электрооборудования, т. е. при замыкании на корпус используем защитное заземление, действие которого основано на малом сопротивлении заземлителя. Заземление осуществляют с помощью заземляющего устройства, состоящего из заземлителя и заземляющих проводников, согласно ГОСТ 12.1.019-79.

5.3 Пожарная безопасность

Пожарная безопасность помещений, имеющих электрические сети, регламентируется ГОСТ 12.1.033-81, ГОСТ 12.1.004-85.

В современных ПЭВМ очень высока плотность размещения элементов электронных схем. В непосредственной близости друг от друга располагаются соединительные провода, коммутационные кабели. При протекании по ним электрического тока выделяется значительное количество теплоты, что может привести к повышению температуры отдельных узлов до 80 - 100 °С. При этом возможно оплавление изоляции соединительных проводов, их оголение и, как следствие, короткое замыкание, которое сопровождается искрением, ведет к недопустимым перегрузкам элементов электронных схем.

Пожар на производстве может возникнуть вследствие причин неэлектрического и электрического характера.

К причинам неэлектрического характера относятся:

- неисправность производственного оборудования и нарушение технологического процесса;

- халатное и неосторожное обращение с огнем (курение, оставление без присмотра нагревательных приборов);

- неправильное устройство и неисправность вентиляционной системы;

- самовоспламенение или самовозгорание веществ.

К причинам электрического характера относятся:

- короткое замыкание;

- перегрузка проводов;

- большое переходное сопротивление;

- искрение;

- статическое электричество.

В помещении не должно быть легковоспламеняющихся материалов. Оно должно быть оборудовано углекислотными или порошковыми огнетушителями. Они должны быть размещены на видном легкодоступном месте на высоте не более 1,5 м. от пола и на удалении от возможного очага возгорания не далее 20 м., т.к. помещение относится к категории B.

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

На каждом огнетушителе имеется этикетка с указанием его марки, описанием подготовки к работе и приведением его в действие.

Если используется углекислотные огнетушители, то необходимо быть осторожным и не прикасаться к раструбу, который может сильно охладиться. Также следует учесть, что углекислый газ вытесняет воздух и нахождение в таком помещении небезопасно. При тушении необходимо огнетушитель поднести за ручку к очагу возгорания, направить раструб на огонь, выдернуть чеку, нажать рычаг. Можно многократно запускать огнетушитель в работу.

Порошковый огнетушитель доставляется к месту возгорания на расстояние не далее 5 м., выдергивают чеку, отклоняют горловину в сторону от себя и нажимают на рычаг. Подавать порошок можно многократно.

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

5.4 Организация рабочего места оператора ЭВМ

При размещении рабочих мест с ПЭВМ расстояние между рабочими столами с мониторами (в направлении тыла поверхности одного видеомонитора и экрана другого видеомонитора) должно быть не менее 2,0 м, а расстояние между боковыми поверхностями видеомониторов - не менее 1,2 м.

Рабочие места с ПЭВМ в помещениях с источниками вредных производственных факторов должны размещаться в изолированных кабинах с организованным воздухообменом. Рабочие места с ПЭВМ при выполнении творческой работы, требующей значительного умственного напряжения или высокой концентрации внимания, рекомендуется изолировать друг от друга перегородками высотой 1,5 - 2,0 м.

Экран видеомонитора должен находиться от глаз пользователя на расстоянии 600 - 700 мм., но не ближе 500 мм. с учетом размеров алфавитно-цифровых знаков и символов. Конструкция рабочего стола должна обеспечивать оптимальное размещение на рабочей поверхности используемого оборудование с учетом его количества и его конструктивных особенностей. При этом допускается использование рабочих столов различных конструкций, отвечающих современным требованиям эргономики. Поверхность рабочего стола должна иметь коэффициент отражения 0,5 - 0,7.

Конструкция рабочего стола (кресла) должна обеспечивать поддержание рациональной рабочей позы при работе на ПЭВМ, позволять изменять позу с целью снижения статического напряжения мышц шейно-плечевой области и спины для предупреждения развития утомления. Тип рабочего стула (кресла) следует выбирать с учетом роста пользователя, характера и продолжительности работы ПЭВМ.

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

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

Заключение

В данной работе была разработан аппаратно-программный комплекс контроля параметров в теплице, обладающий следующими техническими и технологическими особенностями:

1. Минимальное участие оператора в процессе производства продукции, что выражается в задании параметров и передачи управления всем процессом выращивания автоматической системе.

2. Использование компьютерное регулирование технологических режимов позволяет применять данную систему в теплицах разной посадочной площадью.

3. Комплекс имеет подробную инструкцию по выращиванию растений (задания технологических параметров), что обеспечивает его применимость для широкого круга пользователей.

4. Задание параметров выращивания продукции происходит в ручном режиме и имеет ряд ограничений для исключения ошибочных состояний в процесс работы:

- ограничение по длительности светового дня (не более 20 часов);

- ограничение по освещенности (не более 3300 люкс, при большей растения могут погибнуть);

- ограничение по температурному режиму;

- ограничение по влажности.

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

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

Список использованной литературы

Арустамов, Э. А. Безопасность жизнедеятельности: учебник/ Под ред. Э.А. Арустамова. - М.: Данилов и Ко, 2010. - 456 с.

Белов, А. В. Самоучитель по микропроцессорной технике / А.В. Белов - СПб.: Наука и Техника, 2003. - 224 с.

Больски, М. И. Язык программирования СИ. Справочник: Пер с англ./ М.И. Больски.- М.: Радио и связь, 1988. - 96 с.

Бродин, В. Б. Системы на микроконтроллерах и БИС программируемой логики / В. Б. Бродин, А. В. Калинин. - М.: ЭКОМ, 2002. - 235 с.

Бурькова, Е. В. Проектирование микропроцессорных систем: методические указания к курсовому проектированию / Е. В. Бурькова. - Оренбург, ГОУ ОГУ, 2008. - 32 с.

Васильев, В. Н. Электронные промышленные устройства / В. Н. Васильев, Ю. М. Гусев, В. Н. Миронов. - М.: Высшая школа, 1988. - 303 с.

Каган, Б. Н. Основы проектирования микропроцессорных устройств автоматики / Б. Н. Каган, В. В. Сташин - М.: Энергоатомиздат, 1987. - 304 с.

Керниган, Б. В. Язык программирования С / Б. Керниган, Д. М. Ритчи. - Вильямс, 2009. - 304 с

Корнеев, В. В. Современные микропроцессоры / В. В.Корнеев, А. В. Киселев. - М.: Нолидж, 2000. - 320 с.

Новиков, Ю. В. Основы микропроцессорной техники / Ю. В. Новиков, П. К. Скоробогатов. - М.: ИНТУИТ.РУ. «Интернет-Университет Информационных технологий», 2003. - 440 с.

Новиков, Ю. В. Основы цифровой схемотехники. Базовые элементы и схемы. Методы проектирования /Ю. В. Новиков. - М.: Мир 2001.-379 с.

Предко, М. Руководство по микроконтроллерам. Том I / М. Предко. - М.: Постмаркет, 2001. - 416 с.

Предко, М. Руководство по микроконтроллерам. Том II / М. Предко. - М.: Постмаркет, 2001. - 488 с.

Пухальский, Г. И. Проектирование микропроцессорных устройств: учебное пособие для вузов /Г. И. Пухальский.-СПб.: Политехника, 2001. -544 с.

Семейство микроконтроллеров MSP 430. - М.: ЗАО Компелл, 2005. - 544 с.

Семейство микроконтроллеров MSP 430х1хх. Руководство пользователя. - М.: ЗАО Компелл, 2004. - 368 с.

Семёнов, Б. Ю. Микроконтроллеры MSP 430: Первое знакомство / Б. Ю. Семёнов.- М.: Солон-пресс, 2006.- 128 с.

Texas Instruments URL: http://www.ti.com (дата обращения: 10.10.2013).

Датчики влажности корпорации Honeywell URL: http://www.honeywell.com (дата обращения: 10.02.2014).

Датчик температуры DS18B20 URL: http://www.ibutton.ru/html (дата обращения: 15.02.2014).

Датчик освещенности (солнечной радиации) ОС-100 URL: http://econix.com/catalog/datchiki_osveshchennosti (дата обращения: 05.03.2014).

Датчик влажности почвы 10HS URL: http://labdepot.ru (дата обращения: 19.02.2014).

Научно-производственная фирмы «Фито»: URL: http://www. fito-system.ru (дата обращения: 10.02.2014).

Выращивания огурцов в теплицах: URL: http://www.rostepliza.ru (дата обращения: 05.02.2014).

Приложение А

Программная реализация комплекса

//******************************************************************************

// file main.h

//******************************************************************************

#ifndef MAIN_H

#define MAIN_H

#include <msp430x11x2.h>

#define OSC 8000000 //; генератор 8 Мгц

#define MCLK (OSC) //; тактирование ядра

#define SMCLK (OSC / 8) //; тактирование переферии SMCLK = osc div 8

#define TIMERCLK (SMCLK / 8) //; Таймер тактируется от SMCLK /8

#define TIMERA (TASSEL_2 + ID_3) //; выбранная настройка дпя таймера А

#define TCOMP(x) x * (TIMERCLK / 1000) / 1000 //; интервал для таймера в микросекундах max = 524280

#define mks(x) (((x*1000)/(1000000000/MCLK))/3) //; задержка для циклов в микросекундах

#define enable |=

#define disable &=~

#include "button.h"

#endif

//******************************************************************************

// file main.c

// программа управления инкубатором

//******************************************************************************

#include "main.h"

#include "keyb.h"

#include "ds1820.h"

#include "button.h"

#include "task.h"

#include "PCF8812.h"

unsigned int regtime = 0;

unsigned char seconds=0,minutes=0,hours=0;

int main( void )

{

WDTCTL = WDTPW + WDTHOLD; // остановка watchdog таймера

// установка внешнего резонатора 8MHz

BCSCTL1 = XT2OFF + XTS; // внешний резонатор на XT1

unsigned int i;

do

{

IFG1 disable OFIFG; // очистить флаг ошибки резонатора

for (i = 0xFF; i > 0; i--); // ждем устойчивой работы резонатора

}

while ((IFG1 & OFIFG)); // резонатор работает устойчиво ?

BCSCTL2 = SELM_3 + SELS + DIVS_3; // включить тактирование от XT1, SMCLK = OSC / 8

// WDTCTL = WDT_MDLY_0_064; // watchdog режим интервального таймера 64 mks

// IE1 = WDTIE; // разрешить прерывание WDT

// настройка таймера A0

TACTL = TIMERA;

TACCR0 = TCOMP(500000); // 500 ms

TACCTL0 = CCIE; // разрешить прерывание таймера А0

// настройка портов в/в

P1DIR = 0xE0; // биты 7,6,5 выход, остальные вход

P2SEL = BIT0; // выбрать функцию АЦП

P2OUT = BIT0; // все выходы = 0

P2DIR = 0xFE; // бит 0 вход АЦП, остальные выход

ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // включить АЦП и разрешить прерывания

ADC10AE |= BIT0; // P2.0 выбрать вход АЦП

// настройка LCD индикатора

Init_PCF8812();

// установка датчика

Rout_DS1820();

Rout_DS1820();

state_mode = MODE_INDICATOR;

menu_mode = MENU_TERMO;

__enable_interrupt(); // разрешить прерывания

unsigned char event = 0;

while(1)

{

event = GetTask();

if (event) Dispatch(event);

}

}

#pragma vector = TIMERA1_VECTOR

__interrupt void ISR_TimerA3()

{

switch(TAIV)

{

case 2: ISR_TimerA1();break;

case 4:

{

TACCR2 = TAR + TCOMP(500); // сигнал частотой 1кГц

// инвертировать состояние вывода

if (controller & signal){

controller disable signal;

}else{

controller disable signal;

}

}

}

};

#pragma vector =PORT1_VECTOR

__interrupt void ISR_Port()

{

ISR_Port_Key();

};

#pragma vector =TIMERA0_VECTOR

__interrupt void ISR_TimerA0()

{

TACCR0 = TACCR0 + TCOMP(500000); // новый временной интервал

TEST_KEY();

regtime++;

if (regtime > 1)// если 1 секунда

{

regtime = 0;

if (period_ind_set > 0){// если изменен режим индикации

period_ind_set--;

if (period_ind_set < 1){ // если время истекло

state_mode = MODE_INDICATOR;// вернуться на индикацию

menu_mode = MENU_TERMO; // температуры

}

}

if (Set_Period_Data){

currentState = state_incub;

}else currentState = 0;

seconds++;

PlaceTask(TASK_TERMO);

if (turnoff > 0){// если включен переворачиватель

turnoff--;

if (turnoff < 1){// выключить если время истекло

controller disable turnings;

}

}

if (seconds > 59)

{

seconds = 0;

PlaceTask(TASK_WATER);

minutes++;

if (minutes > 59)

{

PlaceTask(TASK_TURN);

minutes = 0;

hours++;

if (hours > 23)

{

hours = 0;

PlaceTask(TASK_PERIOD);

}

}

}

}

}

// ADC10 interrupt service routine

#pragma vector=ADC10_VECTOR

__interrupt void ADC10_ISR (void)

{

_BIC_SR_IRQ(CPUOFF); // Clear CPUOFF bit from 0(SR)

}

//******************************************************************************

// file ds1820.h

//******************************************************************************

#ifndef DS1820_H

#define DS1820_H

extern unsigned int Cur_Termo_Data;

extern char digit_1;

extern char digit_2;

extern char digit_3;

extern int PData;

extern void Rout_DS1820();

extern void Delay_R15();

extern void RightShift();

extern void OutFormat1820();

#endif

;*******************************************************************************

; file ds1820.s43

; фрагмент чтения DS1820 по 1-wire взят из примеров применения от TI

; используется только диапазон 0 - 85C DS1820

;*******************************************************************************

#include "main.h"

;Variables

MODULE DS1820

PUBLIC digit_1

PUBLIC digit_2

PUBLIC digit_3

PUBLIC PData

PUBLIC Cur_Termo_Data

;Functions

PUBLIC Rout_DS1820

PUBLIC Delay_R15

PUBLIC RightShift

PUBLIC OutFormat1820

; CPU registers used

#define DATA1W R4 //; в R4 данные считанные из DS1820

#define BIT1W R5 //; счетчик циклов

#define TEMPRG R5 //; регистр временного хранения

#define PDIR P2DIR

#define PIN P2IN

#define POUT P2OUT

;

; Definitions for 1-wire bus

DQ EQU 0x01 //; Bit controls DQ line (pull-up)

;

RSEG DATA16_N

Cur_Termo_Data DS 2 //; копия текущей температуры

PData DS 2

TmpByte_1 DS 2

TmpByte_2 DS 2

digit_1 DS 1 //; десятки градусов

digit_2 DS 1 //; единицы градусов

digit_3 DS 1 //; десятые доли градусов

before_even DS 1 //; пустой байт дополнение до слова

RSEG CODE

;------------------------------------------------------------------------------

; Program Start

;------------------------------------------------------------------------------

Rout_DS1820:

// на время обмена информацией по 1-wire запретить все прерывания

dint

push R4

push R5

push R15

;

call #Reset_1W ; DS1820 Reset

mov.b #0CCh,DATA1W ; DS1820 command to skip ROM

call #Write_1W ;

mov.b #044h,DATA1W ; DS1820 comand to convert temp

call #Write_1W ;

call #Reset_1W ; DS1820 Reset

mov.b #0CCh,DATA1W ; DS1820 command to skip ROM

call #Write_1W ;

mov.b #0BEh,DATA1W ; DS1820 command to read scratchpad

call #Write_1W ;

call #Read_1W ; DS1820 LSB read

push.w DATA1W ; TOS = 00|LSB

call #Read_1W ; DS1820 LSB read

swpb DATA1W ; DATA1W = MSB|00

add.w @SP+,DATA1W ; DATA1W = MSB|LSB

mov.w DATA1W,&Cur_Termo_Data

pop R15

pop R5

pop R4

;

eint

ret

;------------------------------------------------------------------------------

Reset_1W; Subroutine to Reset 1-wire device and detect presence

;------------------------------------------------------------------------------

bis.b #DQ,&PDIR ;

mov #mks(720),R15 ; ~ 720us delay

call #Delay_R15 ;

bic.b #DQ,&PDIR ;

call #Delay_60us ; ~ 60us delay subroutine

Rxx bit.b #DQ,&PIN ; Check for presence

jc Rxx ;

;

mov #mks(480),R15 ; ~ 480us Delay

call #Delay_R15 ;

ret ;

;------------------------------------------------------------------------------

Write_1W; enter DATA1W = 00 - FF 1-wire data to write

; BIT1W = xx

;------------------------------------------------------------------------------

mov.w #08h,BIT1W ;

TX_1W_Bit rrc.b DATA1W ;

jc TX_1W_1 ;

TX_1W_0 bis.b #DQ,&PDIR ;

call #Delay_60us ; ~ 60us delay subroutine

bic.b #DQ,&PDIR ;

jmp TX_1W_x ;

TX_1W_1 bis.b #DQ,&PDIR ;

bic.b #DQ,&PDIR ;

call #Delay_60us ; ~ 60us delay subroutine

TX_1W_x dec.w BIT1W ;

jnz TX_1W_Bit ;

ret ;

;------------------------------------------------------------------------------

Read_1W; enter DATA1W = xx

; BIT1W = xx

; exit DATA1W = 00 - FF 1-wire data read

; BIT1W = xx

;------------------------------------------------------------------------------

mov.w #08h,BIT1W ;

RX_1W_Bit bis.b #DQ,&PDIR ;

bic.b #DQ,&PDIR ;

nop ;

nop ;

bit.b #DQ,&PIN ;

rrc.b DATA1W ;

call #Delay_60us ; ~ 60us delay subroutine

dec.w BIT1W ;

jnz RX_1W_Bit ;

ret ;

;

;------------------------------------------------------------------------------

Delay_60us mov.w #mks(60),R15

;------------------------------------------------------------------------------

Delay_R15 dec.w R15 ;

jnz Delay_R15 ;

ret ;

RightShift:

rra TEMPRG

rra TEMPRG

rra TEMPRG

rra TEMPRG

ret

OutFormat1820:

// перевод дробной части из веса разрядов в десятичные показания

mov &PData,DATA1W

mov DATA1W,&TmpByte_1

mov DATA1W,TEMPRG

and #0x000F,&TmpByte_1

call #RightShift

mov TEMPRG,&TmpByte_2

and #0x00FF,&TmpByte_2

mov #0,TEMPRG

bit1:

rrc.b &TmpByte_1

jnc bit2

dadd #0x0625,TEMPRG

bit2:

rrc.b &TmpByte_1

jnc bit3

dadd #0x1250,TEMPRG

bit3:

rrc.b &TmpByte_1

jnc bit4

dadd #0x2500,TEMPRG

bit4:

rrc.b &TmpByte_1

jnc endbit

dadd #0x5000,TEMPRG

endbit:

swpb TEMPRG

call #RightShift

and #0x000F,TEMPRG

mov.b TEMPRG,&digit_3

mov.b &TmpByte_2,&TmpByte_1

mov #0,TEMPRG

HexToDec:

// представление показания целой части в десятичном виде

clrc

dadd #0x10,TEMPRG

sub #10,&TmpByte_1

jc HexToDec

add #10,&TmpByte_1

sub #0x10,TEMPRG

clrc

dadd.b &TmpByte_1,TEMPRG

enddes:

push TEMPRG

and #0x0F,TEMPRG

mov.b TEMPRG,&digit_2

pop TEMPRG

call #RightShift

and #0x000F,TEMPRG

mov.b TEMPRG,&digit_1

ret

END

//******************************************************************************

// file pcf8812.h

//******************************************************************************

#ifndef PCF8812_H

#define PCF8812_H

extern void SPI_OUT_LCD(unsigned char Data);

extern void Init_PCF8812(void);

extern void Str_Menu(unsigned int param);

#endif

//*****************************************************************************

// file pcf8812.c

// Подпрограммы вывода информации

// на графический LCD индикатор с контроппером PCF8812

//*****************************************************************************

#include "main.h"

#include "font_r.h"

#include <stdint.h>

#include <string.h>

#include "DS1820.h"

// объявление функций

void SPI_OUT_LCD(unsigned char Data);

void Init_PCF8812(void);

void SetXYLCD(void);

void ClearLCD(void);

// макросы модуля LCD

#define LCDSCLK BIT5

#define LCDSDA BIT6

#define LCDDC BIT7

#define PORTLCD P1OUT

#define set(x) PORTLCD disable x

#define res(x) PORTLCD enable x

// переменные модуля LCD

unsigned char axis_X;

unsigned char axis_Y;

// вывод одного байта через программный SPI интерфейс

void SPI_OUT_LCD(unsigned char Data)

{

unsigned char i;

PORTLCD disable LCDSCLK;

for(i=8; i >= 1; i--)

{

PORTLCD disable LCDSDA;

if(Data & 0x80)

{

PORTLCD enable LCDSDA;

}

Data = Data<<1;

PORTLCD enable LCDSCLK;

PORTLCD disable LCDSCLK;

}

}

// коды инициализации контроллера LCD (PCF8812)

const unsigned char InitCode[]= {0x21,0x80,0x09,0x15,0x07,0x20,0x0C,0x11};

// инициализация контроллера LCD

void Init_PCF8812(void)

{

int i;

for (i = 0 ;i < 8; i++)

{

set(LCDDC);

SPI_OUT_LCD(InitCode[i]);

res(LCDDC);

}

ClearLCD();

}

// установка позиции

void SetXYLCD(void)

{

set(LCDDC);

SPI_OUT_LCD(axis_X | BIT7);

SPI_OUT_LCD(axis_Y | BIT6);

res(LCDDC);

}

// очистка индикатора

void ClearLCD(void)

{

unsigned int i;

axis_X = 0;

axis_Y = 0;

SetXYLCD();

for (i = 917; i > 0; i--)

{

SPI_OUT_LCD(0x00);

}

SetXYLCD();

}

// вывод матрицы символов 6x8 в формате 6x16

void GraphSymb(unsigned char symb)

{

unsigned char sty,i,j,s;

unsigned char copy_axis_y;

uint16_t move;

symb = ((symb - 0xC0)*6);// русские буквы начинаются с кода 192,а в таблице с 0

for (i=0;i<6;i++)

{

sty = Table_Symb[symb+i];

for (j=8;j>0;j--)

{

if ((sty & 0x80)== 0)

{

move = move << 2;

move &=~0x03;

}

else

{

move = move << 2;

move |= 0x03;

}

sty = sty << 1;

}

copy_axis_y = axis_Y;

for (j=2;j>0;j--)

{

s = move & 0x00FF;

SPI_OUT_LCD(s);

axis_Y++;

SetXYLCD();

move = move >> 8;

}

axis_Y = copy_axis_y;

axis_X = axis_X + 1;

SetXYLCD();

}

}

//

// вывод матрицы символов 5x8 в формате 15x32

void GraphDigit(unsigned char digit)

{

unsigned char sty,i,j,s;

unsigned char copy_axis_y;

uint32_t move;

digit *= 5;

for (i=0;i<5;i++)

{

sty = Table_Digit[digit+i];

for (j=8;j>0;j--)

{

if ((sty & 0x80)== 0)

{

move = move << 4;

move &=~0x0F;

}

else

{

move = move << 4;

move |= 0x0F;

}

sty = sty << 1;

}

copy_axis_y = axis_Y;

for (j=4;j>0;j--)

{

s = move & 0x000000FF;

SPI_OUT_LCD(s);

SPI_OUT_LCD(s);

SPI_OUT_LCD(s);

axis_Y++;

SetXYLCD();

move = move >> 8;

}

axis_Y = copy_axis_y;

axis_X = axis_X + 3;

SetXYLCD();

}

}

// вывод строки-указателя режимов

//

void StrText(char const* text)

{

int j;

switch (state_mode)

{

case MODE_INDICATOR:

ClearLCD();

j = (96 - (strlen(text)*8))/2;// выравнивание строки по-центру

axis_X = j;

axis_Y = 5;

SetXYLCD();

for (j = 0; text[j] != 0;j++)

{

GraphSymb(text[j]);

}

break;

case MODE_SETUP:

ClearLCD();

axis_X = 0;

axis_Y = 5;

SetXYLCD();

for (j = 0;j < 192;j++)

{

SPI_OUT_LCD(0xFF);

}

j = (96 - (strlen(text)*8))/2;// выравнивание строки по-центру

axis_X = j;

axis_Y = 5;

SetXYLCD();

for (j = 0; text[j] != 0;j++)

{

GraphSymb(text[j]);

}

break;

}

}

void Str_Menu(unsigned int param)

{

switch (menu_mode)

{

case MENU_TERMO:// индикация температуры

{

StrText("ТЕМПЕРАТУРА");

PData = param;

OutFormat1820();

axis_X = 0;

axis_Y = 0;

SetXYLCD();

GraphDigit(digit_1);

axis_X = 20;

SetXYLCD();

GraphDigit(digit_2);

axis_X = 43;

SetXYLCD();

GraphDigit(digit_3);

axis_X = 37;

SetXYLCD();

SPI_OUT_LCD(0xFF);

SPI_OUT_LCD(0xFF);

SPI_OUT_LCD(0xFF);

axis_X = 62;

SetXYLCD();

GraphDigit(0x12);

axis_X = 80;

SetXYLCD();

GraphDigit(0x0C);

}

case MENU_WATER:// индикация влажности

{

StrText("ВЛАЖНОСТЬ");

axis_X = 20;

axis_Y = 0;

SetXYLCD();

GraphDigit(digit_1);

axis_X = 43;

SetXYLCD();

GraphDigit(digit_2);

axis_X = 62;

SetXYLCD();

GraphDigit(0x12);

axis_X = 80;

SetXYLCD();

GraphDigit(0x0C);

}

case MENU_TURN:// индикация времени переворота

{

StrText("ПЕРЕВОРОТ");

axis_X = 20;

axis_Y = 0;

SetXYLCD();

GraphDigit(digit_1);

axis_X = 43;

SetXYLCD();

GraphDigit(digit_2);

axis_X = 62;

SetXYLCD();

GraphDigit(0x12);

axis_X = 80;

SetXYLCD();

GraphDigit(0x0C);

}

case MENU_PERIOD:// индикация текущих суток инкубации

{

StrText("ИНКУБАЦИЯ");

axis_X = 20;

axis_Y = 0;

SetXYLCD();

GraphDigit(digit_1);

axis_X = 43;

SetXYLCD();

GraphDigit(digit_2);

axis_X = 62;

SetXYLCD();

GraphDigit(0x12);

axis_X = 80;

SetXYLCD();

GraphDigit(0x0C);

}

}

}

//******************************************************************************

// file font_r.h

//******************************************************************************

//

// матрица символов 6x8, буквы русского алфавита

//

const unsigned char Table_Symb[] =

{

// 0xc0 - 'А'.

0x00, 0x7e, 0x11, 0x11, 0x11, 0x7e,// А

0x00, 0x7f, 0x49, 0x49, 0x49, 0x31,// Б

0x00, 0x7f, 0x49, 0x49, 0x49, 0x36,// В

0x00, 0x7f, 0x01, 0x01, 0x01, 0x01,// Г

0xc0, 0x7e, 0x41, 0x41, 0x7f, 0xc0,// Д

0x00, 0x7f, 0x49, 0x49, 0x49, 0x41,// Е

0x00, 0x77, 0x08, 0x7f, 0x08, 0x77,// Ж

0x22, 0x49, 0x49, 0x49, 0x36, 0x00,// З

0x00, 0x7f, 0x20, 0x10, 0x08, 0x7f,// И

0x00, 0x7e, 0x21, 0x11, 0x09, 0x7e,// Й

0x00, 0x7f, 0x08, 0x14, 0x22, 0x41,// К

0x00, 0x40, 0x7e, 0x01, 0x01, 0x7f,// Л

0x00, 0x7f, 0x02, 0x04, 0x02, 0x7f,// М

0x00, 0x7f, 0x08, 0x08, 0x08, 0x7f,// Н

0x00, 0x3e, 0x41, 0x41, 0x41, 0x3e,// О

0x00, 0x7f, 0x01, 0x01, 0x01, 0x7f,// П

0x00, 0x7f, 0x09, 0x09, 0x09, 0x06,// Р

0x00, 0x3e, 0x41, 0x41, 0x41, 0x22,// С

0x00, 0x01, 0x01, 0x7f, 0x01, 0x01,// Т

0x00, 0x27, 0x48, 0x48, 0x48, 0x3f,// У

0x00, 0x0e, 0x11, 0x7f, 0x11, 0x0e,// Ф

0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// Х

0x00, 0x7f, 0x40, 0x40, 0x7f, 0xc0,// Ц

0x00, 0x07, 0x08, 0x08, 0x08, 0x7f,// Ч

0x00, 0x7f, 0x40, 0x7f, 0x40, 0x7f,// Ш

0x00, 0x7f, 0x40, 0x7f, 0x40, 0xff,// Щ

0x03, 0x01, 0x7f, 0x48, 0x48, 0x30,// Ъ

0x00, 0x7f, 0x48, 0x48, 0x30, 0x7f,// Ы

0x00, 0x7f, 0x48, 0x48, 0x48, 0x30,// Ь

0x00, 0x22, 0x41, 0x49, 0x49, 0x3e,// Э

0x00, 0x7f, 0x08, 0x3e, 0x41, 0x3e,// Ю

0x00, 0x66, 0x19, 0x09, 0x09, 0x7f,// Я

};

//

// матрица символов 5x8 цифры и спецзнаки

//

const unsigned char Table_Digit[]=

{

0x3E, 0x51, 0x49, 0x45, 0x3E, // 0

0x00, 0x42, 0x7F, 0x40, 0x00, // 1

0x42, 0x61, 0x51, 0x49, 0x46, // 2

0x21, 0x41, 0x45, 0x4B, 0x31, // 3

0x18, 0x14, 0x12, 0x7F, 0x10, // 4

0x27, 0x45, 0x45, 0x45, 0x39, // 5

0x3C, 0x4A, 0x49, 0x49, 0x30, // 6

0x01, 0x71, 0x09, 0x05, 0x03, // 7

0x36, 0x49, 0x49, 0x49, 0x36, // 8

0x06, 0x49, 0x49, 0x29, 0x1E, // 9

0x7E, 0x11, 0x11, 0x11, 0x7E, // A

0x7F, 0x49, 0x49, 0x49, 0x36, // B

0x3E, 0x41, 0x41, 0x41, 0x22, // C

0x7F, 0x41, 0x41, 0x22, 0x1C, // D

0x7F, 0x49, 0x49, 0x49, 0x41, // E

0x7F, 0x09, 0x09, 0x09, 0x01, // F

0x3E, 0x41, 0x49, 0x49, 0x7A, // G

0x7F, 0x08, 0x08, 0x08, 0x7F, // H

0x06, 0x09, 0x09, 0x09, 0x06, // градус

0x00, 0x36, 0x36, 0x00, 0x00, // :

0xC0, 0x00, 0x00, 0x00, 0x00, // .

0x30, 0x48, 0x48, 0x48, 0x30, // o

0x00

};

//******************************************************************************

// file keyb.h

//******************************************************************************

#ifndef KEYB_H

#define KEYB_H

extern unsigned char KEYCODE;

extern void TEST_KEY();

extern void ISR_TimerA1();

extern void ISR_Port_Key();

#endif

;*******************************************************************************

; file keyb.s43

; обслуживание матричной клавиатуры с антидребезгом

;*******************************************************************************

#include "main.h"

;Variables

MODULE KEYBOARD

PUBLIC KEYBUF

PUBLIC KEYCODE

;Functions

PUBLIC TEST_KEY

PUBLIC ISR_TimerA1

PUBLIC ISR_Port_Key

RSEG DATA16_I

KEYCODE DS 1

KEYBUF DS 1

; матрица кнопок клавиатуры

#define MV_0 BIT6

#define MV_1 BIT7

#define PORTMV P1OUT

#define MH_0 BIT3

#define MH_1 BIT4

#define PORTMH P1IN

#define INTKEYSIGNAL P1IE

#define INTKEYFLAGS P1IFG

RSEG CODE ; расположить в 'CODE' сегменте

//;------------------------------------------------------------------------------

// установить на линиях столбцов матрицы низкий уровень

// и разрешить прерывания от строк матрицы

TEST_KEY:

mov.b &PORTMV,R4 ; сохранить состояние порта

push R4 ;

bic.b #MV_1+MV_0,&PORTMV ; низкий уровень на столбцы матрицы

bis.b #MH_1+MH_0,&INTKEYSIGNAL ; разрешить прерывания для строк матрицы

popR4 ;

mov.b R4,&PORTMV ; восстановить состояние порта

ret

;

ISR_TimerA1:

// окончание задержки антидребезга контактов

// проверить нажатые клавиши

bic.w #CCIE,&TACCTL1 ; запретить прерывания TimerA1

push R4

mov.b &PORTMV,R4 ; сохранить состояние порта

push R4

bis.b #MV_0,&PORTMV ;

bic.b #MV_1,&PORTMV ; установить один активный столбец

bit.b #MH_1+MH_0,&PORTMH ; проверить все строки

jz Press_Left_and_Right_key ; ошибка если нажаты две клавиши

bit.b #MH_1,&PORTMH ; проверить одну строку

jz Press_Right_key ; переход если нажата клавиша

bit.b #MH_0,&PORTMH ; проверить следующую

jz Press_Left_key ; переход если нажата клавиша

bic.b #MV_0,&PORTMV ; поменять активный столбец

bis.b #MV_1,&PORTMV ;

bit.b #MH_1,&PORTMH ; проверить строку

jz Press_Enter_key ; переход если нажата клавиша

Press_Left_and_Right_key

mov.b #0x00,&KEYCODE ; код клавиши в буфер

jmp TimerEndKey

Press_Right_key

mov.b #0x01,&KEYCODE ;

jmp TimerEndKey

Press_Left_key

mov.b #0x02,&KEYCODE ;

jmp TimerEndKey

Press_Enter_key

mov.b #0x03,&KEYCODE ;

TimerEndKey

pop R4

mov.b R4,&PORTMV ; восстановит состояние порта

pop R4

ret

;

ISR_Port_Key:

// прерывание вызвано нажатыми клавишами

// запрограммировать таймер задержки

// и проверить состояние клавиш в прерывании таймера

push R4

bic.b #MH_1+MH_0,&INTKEYSIGNAL ; запрет прерываний от строк матрицы

mov &TAR,R4 ; текущее значение таймера

add.w #TCOMP(50000),R4 ; добавить время на дребезг контактов

mov R4,TACCR1 ; в регистр сравнения новый интервал

pop R4 ;

bic.b #MH_1+MH_0,&INTKEYFLAGS ; сбросить флаги запроса

bis.w #CCIE,&TACCTL1 ; разрешить прерывание от таймера

ret

END

//******************************************************************************

// file button.h

//******************************************************************************

#ifndef BUTTON_H

#define BUTTON_H

#define MODE_INDICATOR 1

#define MODE_SETUP 2

#define MENU_TERMO 0

#define MENU_WATER 1

#define MENU_TURN 2

#define MENU_PERIOD 3

extern unsigned char state_mode;

extern unsigned char menu_mode;

extern unsigned int Set_Termo_Data;

extern unsigned int Set_Water_Data;

extern unsigned int Set_Turn_Data;

extern unsigned int Set_Period_Data;

extern unsigned int copy_param;

extern unsigned int period_ind_set;

extern unsigned int Cur_Turn_Data;

extern unsigned int Cur_Period_Data;

extern unsigned int Cur_Water_Data;

#endif

//******************************************************************************

// file button.c

// процедуры управления с клавиатуры

//******************************************************************************

#include "main.h"

#include "PCF8812.h"

#include "DS1820.h"

// таблицы кода веса разрядов

// в десятичном приближении

const unsigned char Tab_Code_Dec[]=

{0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};

const unsigned char Tab_Dec_Code[]=

{0x00,0x02,0x03,0x05,0x07,0x08,0x0A,0x0B,0x0D,0x0E};

unsigned char state_mode;

unsigned char menu_mode;

unsigned int Set_Termo_Data= 0x140;

unsigned int Set_Water_Data=50;


Подобные документы

  • Разработка аппаратно-программного комплекса для осуществления идентификации объектов управления на основе вещественного интерполяционного метода. Анализ работоспособности аппаратно-программного комплекса, пример идентификации объекта управления.

    магистерская работа [2,2 M], добавлен 11.11.2013

  • Обзор разнообразных методов теории линейных систем: методов корреляционного и регрессионного анализа, косинор-анализа. Особенности применения факторного анализа. Программная реализация метода главных компонент. Разработка нелинейных регрессионных моделей.

    дипломная работа [390,2 K], добавлен 03.09.2016

  • Вычисление вероятности безотказной работы микропроцессорного устройства, блока оперативной памяти, внешнего запоминающего устройства, программного обеспечения, работы оператора. Определение средней наработки на отказ аппаратно-программного комплекса.

    контрольная работа [537,8 K], добавлен 07.07.2012

  • Создание электронного учебника "Визуальные и не визуальные компоненты Delphi". Основные требования к организации интерфейса. Логическая структура и технические средства. Аппаратно–программный комплекс. Применение программы, тестирование и отладка.

    курсовая работа [39,5 K], добавлен 03.12.2012

  • Анализ аппаратно-программных средств для проекта системы удаленного контроля состояния объекта на основе модулей фирмы Advantech. Техническая характеристика программируемых контроллеров. Информационный расчёт системы, моделирование работы отдельных узлов.

    дипломная работа [3,4 M], добавлен 24.01.2016

  • Однопроводной интерфейс 1-Wire, разработанный фирмой Dallas Semiconductor Corp как информационная сеть, использующаяся для осуществления цифровой связи одну линию данных и один возвратный провод. Физическая реализация интерфейса и передача данных в сети.

    реферат [204,4 K], добавлен 04.03.2009

  • Анализ методов и средств контроля доступа к файлам. Проблемы безопасности работы с файлами, средства контроля доступа ним. Идеология построения интерфейса, требования к архитектуре. Работа классов системы. Оценка себестоимости программного продукта.

    дипломная работа [2,5 M], добавлен 21.12.2012

  • Проектирование аппаратно-программного комплекса оповещения населения по сигналам гражданской обороны и чрезвычайной ситуации на ПАО "Севералмаз". Настройка и программирование системы оповещения. Выбор оборудования. Настройка картографии и карты сети.

    дипломная работа [2,8 M], добавлен 20.03.2017

  • Формирование входных и выходных данных, SQL–скрипт генерации таблиц базы данных. Создание интерфейса программного приложения и проектирование форм базы данных. Требования к аппаратно–программному обеспечению. Инструкции по установке и эксплуатации.

    курсовая работа [1,6 M], добавлен 08.02.2013

  • Выбор базовых программных средств для разработки оригинального программного обеспечения. Компоненты программно-методического комплекса проектирования токарных операций. Программное обеспечение для организации интерфейса программно-методического комплекса.

    дипломная работа [2,8 M], добавлен 14.05.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.