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

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

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

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

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

4.1.3 Параметры микроклимата

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

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

Объем помещений, в которых размещены работники вычислительных центров, не должен быть меньше 19,5м3/человека с учетом максимального числа одновременно работающих в смену. Нормы подачи свежего воздуха в помещения, где расположены компьютеры, приведены в табл. 4.2.

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

Таблица 4.1- Параметры микроклимата для помещений, где установлены компьютеры

Период года

Параметр микроклимата

Величина

Холодный

Температура воздуха в помещении

22…24°С

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

40…60%

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

до 0,1м/с

Теплый

Температура воздуха в помещении

23…25°С

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

40…60%

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

0,1…0,2м/с

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

Характеристика помещения

Объемный расход подаваемого в помещение свежего воздуха, м3 /на одного человека в час

Объем до 20м3 на человека

Не менее 30

20…40м3 на человека

Не менее 20

Более 40м3 на человека

Естественная вентиляция

4.1.4 Шум и вибрация

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

Под воздействием шума снижается концентрация внимания, нарушаются физиологические функции, появляется усталость в связи с повышенными энергетическими затратами и нервно-психическим напряжением, ухудшается речевая коммутация. Все это снижает работоспособность человека и его производительность, качество и безопасность труда. Длительное воздействие интенсивного шума [выше 80 дБ(А)] на слух человека приводит к его частичной или полной потере.

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

Таблица 4.3 - Предельные уровни звука, дБ, на рабочих местах

Категория напряженности труда

Категория тяжести труда

Легкая

Средняя

Тяжелая

Очень тяжелая

I. Мало напряженный

80

80

75

75

II. Умеренно напряженный

70

70

65

65

III. Напряженный

60

60

-

-

IV. Очень напряженный

50

50

-

-

Уровень шума на рабочем месте математиков-программистов и операторов видеоматериалов не должен превышать 50дБА, а в залах обработки информации на вычислительных машинах - 65дБА.

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

4.1.5 Электромагнитное и ионизирующее излучения

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

Максимальный уровень рентгеновского излучения на рабочем месте оператора компьютера обычно не превышает 10мкбэр/ч, а интенсивность ультрафиолетового и инфракрасного излучений от экрана монитора лежит в пределах 10-100мВт/м2.

Таблица 4.4 - Допустимые значения параметров неионизирующих электромагнитных излучений (в соответствии с СанПиН 2.2.2.542-96)

Наименование параметра

Допустимые значения

Напряженность электрической составляющей электромагнитного поля на расстоянии 50см от поверхности видеомонитора

10В/м

Напряженность магнитной составляющей электромагнитного поля на расстоянии 50см от поверхности видеомонитора

0,3А/м

Напряженность электростатического поля не должна превышать:

для взрослых пользователей

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

20кВ/м

15кВ/м

Для снижения воздействия этих видов излучения рекомендуется применять мониторы с пониженным уровнем излучения (MPR-II, TCO-92, TCO-99), устанавливать защитные экраны, а также соблюдать регламентированные режимы труда и отдыха.

4.2 Эргонометрические характеристики рабочего места

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

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

Рабочее пространство.

Научная организация рабочего пространства (Рис.4.1) базируется на данных о средней зоне охвата рук человека - 35-40 см. Ближней зоне соответствует область, охватываемая рукой с прижатым к туловищу локтем, дальней зоне - область вытянутой руки. Тонкой линией изображено фактическое положение монитора на рабочем столе сотрудника - на углу стола с левой стороны. Это приводит к значительному неудобству при работе. При работе с компьютером приходится постоянно поворачивать голову влево, что ведет к усталости шейных мышц.

Значимым фактором является пространство под столешницей. Высота столов, использующихся на предприятии соответствует общепринятым стандартам, и составляет 74 см. Конструкция столов обеспечивает требования СанПин 2.2.2.542-96 по ширине и высоте необходимого пространства для ног.

Взаимное расположение предметов на рабочем месте :

1 - угол обзора по вертикали, 35

2 - угол наклона клавиатуры, 10

h1 - высота рабочей поверхности, 79 см

h2 - высота сиденья стула, регулируется под конкретного человека

h3 - расстояние от края стола до клавиатуры, 10 см

h4 - расстояние от органов зрения оператора до экрана, 65 см

Взгляд человека направлен перпендикулярно центру экрана монитора.

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

Клавиатура, как наиболее часто используемое устройство ввода. Параметры этой зоны: угол - 70, глубина - 30-40 см.

Остальные устройства - угол - 130 градусов, глубина 70-80 см.

С учетом выше приведенных данных об углах обзора, а так же зная максимальный размер зоны досягаемости правой руки (70-100 см), можно считать, что расположение рабочих предметов в моторном поле правильное.

4.3 Электропожаробезопасность

Для обеспечения электробезопасности в помещении должны проверены следующие показатели:

- соответствие напряжения в сети тому на которое рассчитан ПК;

- наличие защитного заземления;

- меры защиты от перепадов в сети.

Приборы, находящиеся в помещении работают от номинального напряжения 220 В. В нашем случае применим заземление с изолированной нейтралью. Заземление выведено на заземляющий контур с сопротивлением 4 Ома. Заземление дисплеев осуществляется через системный блок ЭВМ.

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

При эксплуатации ЭВМ возможны возникновения следующих аварийных ситуаций:

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

- перегрузки;

- повышение переходных сопротивлений в электрических контактах;

- перенапряжение;

- возникновение токов утечки.

Обязательно наличие порошкового огнетушителя в помещении серверной станции.

4.4 Режим труда

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

В табл. 4.5 представлены сведения о регламентированных перерывах, которые необходимо делать при работе на компьютере, в зависимости от продолжительности рабочей смены, видов и категорий трудовой деятельности с ВДТ (видеодисплейный терминал) и ПЭВМ (в соответствии с САнНиП 2.2.2 542-96 «Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работ»).

Таблица 4.5 - Время регламентированных перерывов при работе на компьютере

Категория работы с ВДТ или ПЭВМ

Уровень нагрузки за рабочую смену при видах работы с ВДТ, количество знаков

Суммарное время регламентированных перерывов, мин

При 8-часовой смене

При 12-часовой смене

Группа А

до 20000

30

70

Группа Б

до 40000

50

90

Группа В

до 60000

70

120

Примечание. Время перерывов дано при соблюдении указанных Санитарных правил и норм. При несоответствии фактических условий труда требованиям Санитарных правил и норм время регламентированных перерывов следует увеличить на 30%.

В соответствии со САнНиП 2.2.2 546-96 все виды трудовой деятельности, связанные с использованием компьютера, разделяются на три группы: группа А: работа по считыванию информации с экрана ВДТ или ПЭВМ с предварительным запросом; группа Б: работа по вводу информации; группа В: творческая работа в режиме диалога с ЭВМ.

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

4.5 Расчет освещенности

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

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

- по спектральному составу света они близки к дневному, естественному свету;

- обладают более высоким КПД (в 1,5-2 раза выше, чем КПД ламп накаливания);

- обладают повышенной светоотдачей (в 3-4 раза выше, чем у ламп накаливания);

- более длительный срок службы.

Расчет освещения производится для комнаты площадью 15м2 , ширина которой - 5м, высота - 3 м. Воспользуемся методом светового потока.

Для определения количества светильников определим световой поток, падающий на поверхность по формуле:

F = E•S•Z•К / n , (4.1)

ГдеF - рассчитываемый световой поток, Лм;

Е - нормированная минимальная освещенность, Лк (определяется по таблице). Работу программиста, в соответствии с этой таблицей, можно отнести к разряду точных работ, следовательно, минимальная освещенность будет Е = 300Лк;

S - площадь освещаемого помещения (в нашем случае S = 15м2);

Z - отношение средней освещенности к минимальной (обычно принимается равным 1,1-1,15 , пусть Z = 1,1);

К - коэффициент запаса, учитывающий уменьшение светового потока лампы в результате загрязнения светильников в процессе эксплуатации (его значение зависит от типа помещения и характера проводимых в нем работ и в нашем случае К = 1,5);

n - коэффициент использования, (выражается отношением светового потока, падающего на расчетную поверхность, к суммарному потоку всех ламп и исчисляется в долях единицы; зависит от характеристик светильника, размеров помещения, окраски стен и потолка, характеризуемых коэффициентами отражения от стен (РС) и потолка (РП)), значение коэффициентов РС и РП были указаны выше: РС=40%, РП=60%. Значение n определим по таблице коэффициентов использования различных светильников.

Для этого вычислим индекс помещения по формуле:

I = A•B / h (A+B), (4.2)

где h - расчетная высота подвеса, h = 2,92 м;

A - ширина помещения, А = 3 м;

В - длина помещения, В = 5 м.

Подставив значения получим:

I= 0,642.

Зная индекс помещения I, по таблице 7 [23] находим n = 0,22.

Подставим все значения в формулу (4.1) для определения светового потока F, получаем F = 33750 Лм.

Для освещения выбираем люминесцентные лампы типа ЛБ40-1, световой поток которых Fл = 4320 Лк.

Рассчитаем необходимое количество ламп по формуле:

N = F / Fл, (4.3)

где N - определяемое число ламп;

F - световой поток, F = 33750 Лм;

Fл- световой поток лампы, Fл = 4320 Лм.

N = 8 ламп.

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

Значит требуется для помещения площадью S = 15 м2 четыре светильника типа ОД.

Расчет естественного освещения помещений

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

Освещение должно удовлетворять такие основные требования:

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

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

- не создавать ненужной яркости и блеска в поле взора работников;

- давать правильное направление светового потока;

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

Коэфициент естественного освещения в соответствии с ДНБ В 25.28.2006, для нашого III пояса светового климата составляет 1,5.

Исходя из этого произведем расчет необходимой площади оконных проемов.

Расчет площади окон при боковом освещении определяется, по формуле:

Sо = (Ln*Кз.*N0*Sn*Кзд.)/(100 *T0*r1) (4.4)

где:Ln - нормированное значение КЕО

Кз - коэффициент запаса (равен 1,2)

N0 - световая характеристика окон

Sn - площадь достаточного естественного освещения

Кзд. - коэффициент, учитывающий затенение окон противостоящими зданиями

r1 - коэффициент, учитывающий повышение КЕО при боковом освещении

T0 - общий коэффициент светопропускания, который рассчитывается по формуле:

T0 = T1 * T2 * T3 * T4 * T5, (4.5)

где T1 - коэффициент светопропускания материала;

T2 - коэффициент, учитывающий потери света в переплетах светопроема;

T3 - коэффициент, учитывающий потери света в несущих конструкциях;

T4 - коэффициент, учитывающий потери света в солнцезащитный устройствах;

T5 - коэффициент, учитывающий потери света в защитной сетке, устанавливаемой под фонарями, принимается равным 1;

Теперь следует рассчитать боковое освещение для зоны, примыкающей к наружной стене. По разряду зрительной работы нужно определить значение КЕО. КЕО = 1,5 нормированное значение КЕО с учетом светового климата необходимо вычислить по формуле:

Ln=l*m*c, (4.6)

где l - значение КЕО (l=1.5);

m - коэффициент светового климата (m=1);

c - коэффициент солнечности климата (c=1)

Ln=1,5

Теперь следует определить отношение длины помещения Ln к глубине помещения B:

Ln/B=3/5 =0,6;

Отношение глубины помещения В к высоте от уровня условной рабочей поверхности до верха окна h1 (в данном случае h1=1,8) :

B/h1=5/1,8 = 2,77.

Световая характеристика световых проемов N0=9.

Кзд=1

Значение T0=0,8*0,7*1*1*1=0,56.

Ln для 4 разряда зрительных работ равен 1,5 при мытье окон два раза в год.

Определяем r1, r1=1,5.

Кз.=1,2.

Теперь следует определить значение Sп:

Sп=Ln*В=3*10=30 м2.

Кзд.=1.

На данном этапе следует рассчитать необходимую площадь оконных проемов: (Ln* Кз.*N0*Sn*Кзд.) / (100*T0*r1)

Sо = (1,5*1,2*9*30*1)/(100*0,56*1,5)=486/84= 5,78 м2;

Принимаем количество окон 1 штука:

S1=5,78 м2 площадь одного окна

Высота одного окна составляет - 2,5 м, ширина 2,3 м.

4.6 Расчет вентиляции

В зависимости от способа перемещения воздуха вентиляция бывает естественная и принудительная.

Параметры воздуха, поступающего в приемные отверстия и проемы местных отсосов технологических и других устройств, которые расположены в рабочей зоне, следует принимать в соответствии с ГОСТ 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.7 Расчет уровня шума

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

Для решения вопросов о необходимости и целесообразности снижения шума необходимо знать уровни шума на рабочем месте оператора.

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

?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. C. Hillman "Common mistakes in electronic design" // EDN, 12/14/2007 http://www.edn.com/contents/images/6512156.pdf

6."Frequently asked questions about dimmers" // http://www .lutron.com/product_technical/faq.asp

7. Л. Н. Кечиев, Е. Д. Пожидаев "Защита электронных средств от воздействия статического электричества" - М.: ИД "Технологии", 2005.

8. Жидецкий В.Ц., Джигирей В.С., Мельников А.В. Основы охраны труда: Учебник - Львов, Афиша, 2008 - 351с.

9. Денисенко Г.Ф. Охрана труда: Учебн.пособие - М., Высшая школа, 1989 - 319с.

10. Самгин Э.Б. Освещение рабочих мест. - М.: МИРЭА, 1989. - 186с.

11. Справочная книга для проектирования электрического освещения. / Под ред. Г.Б. Кнорринга. - Л.: Энергия, 1976.

12. Борьба с шумом на производстве: Справочник / Е.Я. Юдин, Л.А. Борисов;

Под общ. ред. Е.Я. Юдина - М.: Машиностроение, 1985. - 400с., ил.

13. Зинченко В.П. Основы эргономики. - М.: МГУ, 1979. - 179с.

14.Методичні вказівки до виконання дипломної роботи для учнів спеціальності «Оператор комп'ютерного набору; оператор комп'ютерної верстки»/ Упоряд.: Д.О. Дяченко, К.О. Ізмалкова, О.Г. Меркулова. - Сєверодонецьк: СВПУ, 2007. - 40 с.

15. Н. Заец. Многофункциональные часы. -- Схемотехника, 2006, № 2,с. 41,42.

16. Н. Заец. Термометр - часы с датчиками фирмы Dallas Semiconductor. -- Схемотехника, 2005, № 5, с. 52 - 55.

17. Н. Заец. Радиолюбительские конструкции на Р1С-микроконтроллерах. Книга 3. -- М.: СОЛОН-Пресс, 2005, с. 248.

18. Н. Заец. Отечественные жидкокристаллические индикаторы TIC9162 с драйверами по технологии COG. - Схемотехника, 2005, №9, с. 9-11.

19. Н. Заец. Таймеры десятичного счета. -- Электрик, 2006, № 7-8, с. 36 -39.

20. Мощные полевые переключательные транзисторы фирмы International Rectifier. -- Радио, 2001, № 5, с. 45.

21. А. Долгий. Разработка и отладка устройств на микроконтроллерах. -- Радио, 2001 ,№ 5-12, 2002, № 1.

22. А. Долгий. Программаторы и программирование микроконтроллеров. -- Радио, 2004, № 1-12.

23. Н. Заец. Универсальный таймер. -- Схемотехника, 2003, № 1, с. 53.

24. Н. Заец. Электронные самоделки для быта, отдыха и здоровья.-- М.: СОЛОН-Пресс, 2009, 423 с.

Приложение А

Файл reader.asm

;Описание и распиновка.

;Порт B это данные индикатора и памяти.

;D0 -RxD, D1 - TxD, D6 - RS, D5 - R/W, D4 - E, D2 - adr. latch,

;D3 - общий #OE,D7 - общий #WE

;Порт С - адресный порт

;Порт А: А0-А2 - старшие линии адреса, А3 - #СЕ1, А4 - #СЕ2

;А5 - красная кнопка, А6 - зелёная кнопка "вниз", А7 - зелёная кнопка "вверх"

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

.include "d:\Program Files\Atmel\AVR Studio\Appnotes\8515def.inc"

.include "d:\seagull\Depot\AVR\reader\rus.inc"

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

.def rsym=r0

.def storel=r1

.def storeh=r2

.def book=r3

.def storead0=r4

.def storead1=r5

.def all_book=r6

.def rus=r14

.def store=r15

.def work=r16

.def data=r17

.def char=r18

.def pauseh=r19

.def pausel=r20

.def count=r21

.def address0=r22

.def address1=r23

.def address2=r24

.def flag=r25

.def key=r26

.def loz=r30

.def hiz=r31

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

;flag: бит0 = 1-переполнение адреса; бит1 =1-команда ко 2-й памяти; бит2 =1 -питание только подано

;бит3 = 1-нужен pop

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

.set E=4

.set RW=5

.set RS=6

.set C = 2

.set WE=7

.set OE=3

.set CE1=3

.set CE2=4

.equ TSYM=80;Всего символов на экране

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

.org 0x000

;.org 0x007

;rjmp RXcomplete

.org 0x010

main:

bclr 7;неразрешение прерываний

ldi work, 0x5f;загрузка адреса стека

out spl,work

ldi work, 0x02;загрузка старшего адреса стека

out sph,work

ldi work,0b11111110

out ddrd, work

ldi work,0b10001011

out portd, work

ser work

out ddrb, work;выходы индикатора

ldi work, 0b00011000;8-битный режим, приём/передача, RX-~прерывание

out ucr, work

ldi work, 4

out ubrr, work;115200 при кварце 9,216 МГц

ser work

out ddrc, work;выходы порта С

ldi work, 0b00011111

out ddra, work;выходы порта A

clr work

out portc,work

ldi work, 0b11111000

out porta,work

clr address0

clr address1

clr address2

ser count

ldi flag,0b00000100

clr book

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

;модуль инициализации индикатора

;rjmp tst_loop

rcall precharge

ldi char, 0b00111000;8-разр. шина,2 строки,5х8

rcall write_cmd

ldi char, 0b00001100;вкл. изобр., курсор-подчерк. выкл, курсор-блок выкл

rcall write_cmd

ldi char, 0b00000110;сдвиг курсора вправо.

rcall write_cmd

ldi char, 0b00000001

rcall write_cmd

in char,udr

in char,udr

in char,udr

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

;Тестовый участок

tst_loop:

;ldi char,0x55

;out eedr,work

;clr work

;out eearl,work

;rcall write_flash

;rcall module_write

;rcall inc_addr

;rcall wait_busy

;rjmp read_begin

;rjmp tst_loop

;rjmp command

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

ldi hiz,(high(hello*2))

ldi loz,(low(hello*2))

rcall message

rcall push_button

main_menu:

rcall menu;Ответ: 0-начать читать, 1- закладку, 2- связь с компом, 3- кто сделал

cpi count,0

breq read_begin

cpi count,1

breq pre_goto_bookmark

cpi count,2

breq pre_comp_mes

ldi hiz,(high(about_develop*2))

ldi loz,(low(about_develop*2))

rcall message

rcall push_button

rjmp main_menu

pre_goto_bookmark:

rjmp goto_bookmark

read_begin:

cbr flag,0x04

rcall choose_text

rcall get_address_text_begin

continue_read:

rcall blank_screen

rcall show_to_screen

menu_2:

rcall menu

rcall sub_string

cpi count,0

breq continue_read

cpi count,1

breq pre_goto_bookmark

cpi count,2

breq set_bookmark

listing_subreturn:

rcall listing

push_list_page:

push count

list_page:

rcall blank_screen

ser count

read_page:

rcall read_flash

mov rus,data

mov char,data

rcall write_char

rcall inc_addr

cpi count,TSYM-1

brne read_page

pop count

rcall push_button

cpi key,3

breq sub_page

cpi key,2

breq add_page

rjmp menu_2

add_page:

push count

lsl count

lsl count

add address1,count

brcc no_add_adr2

inc address2

cpi address2,0x10

brlo no_add_adr2

ser address0

ser address1

ldi address2,0x0f

no_add_adr2:

pop count

rjmp push_list_page

pre_comp_mes:

rjmp comp_mes

sub_page:

push count

lsl count

lsl count

sub address1,count

brsh no_sub_adr2

dec address2

brpl no_sub_adr2

clr address2

clr address1

clr address0

no_sub_adr2:

pop count

rjmp push_list_page

read_current:

rcall show_to_screen

rjmp read_current

set_bookmark:

push work

write_current:

clr work

out eearh,work

rcall wait_write_internal_eeprom

mov work,book

lsl work

lsl work

inc work

out eearl,work

out eedr,address2

rcall write_internal_eeprom

rcall wait_write_internal_eeprom

inc work

out eearl,work

out eedr,address1

rcall write_internal_eeprom

rcall wait_write_internal_eeprom

inc work

out eearl,work

out eedr,address0

rcall write_internal_eeprom

pop work

rjmp continue_read

goto_bookmark:

sbrc flag,2

rcall choose_text

push work

clr work

out eearh,work

mov work,book

lsl work

lsl work

inc work

out eearl,work

rcall read_internal_eeprom

push work

in work,eedr

cpi work,0xff

brne no_return_from_gtb

ldi hiz,(high(no_bookmark*2))

ldi loz,(low(no_bookmark*2))

rcall message

rcall push_button

pop work

pop work

sbrc flag,0x02

rjmp main_menu

rjmp continue_read

no_return_from_gtb:

mov address2,work

pop work

inc work

out eearl,work

rcall read_internal_eeprom

in address1,eedr

inc work

out eearl,work

rcall read_internal_eeprom

in address0,eedr

pop work

cbr flag,0x04

rjmp continue_read

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

read_internal_eeprom:

sbic eecr,eewe;Жду, пока не закончится цикл записи

rjmp read_internal_eeprom

sbi eecr,eere

ret

wait_write_internal_eeprom:

sbic eecr,eewe

rjmp wait_write_internal_eeprom

ret

write_internal_eeprom:

sbi eecr,eemwe

sbi eecr,eewe

ret

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

comp_mes:

ldi hiz,(high(i_love_my_computer*2))

ldi loz,(low(i_love_my_computer*2))

rcall message

loop:

sbis usr,rxc

rjmp loop

rcall blank_screen

rcall RXcomplete

cpi data,0xe5

breq loop_ex

cpi data,0x5e

breq command

rjmp loop

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

loop_ex:

sbis usr,rxc

rjmp loop_ex

rcall RXcomplete

rcall write_char

rcall confirm

rjmp loop_ex;зацикливание

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

write_char:

push work

inc count

cpi count,TSYM/2

breq next_row

cpi count,TSYM

breq new_screen

send:

sbrc char,7

rcall decode

rcall write_data

pop work

ret

next_row:

mov store,char

ldi char, 0b11000000

rcall write_cmd

mov char,store

rjmp send

new_screen:

clr count

mov store,char

ldi char, 0b00000001

rcall write_cmd

mov char,store

rjmp send

recognize:

;inc count

;cpi char,0xa

;brge nodig

;ldi work,0x30

;add char,work

;rcall write_char

;ret

nodig:

;ldi work,0x37

;add char,work

;rcall write_char

;ret

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

command:

sbis usr,rxc

rjmp command

rcall RXcomplete

cpi data,0x10

breq _module_erase1

cpi data,0x20

breq _module_erase2

cpi data,0x30

breq _module_write

cpi data,0x40

breq _module_read

cpi data,0x50

breq _module_address_set

rjmp command

_module_erase1:

cbr flag,0x02

rcall module_erase

rjmp command

_module_erase2:

sbr flag,0x02

rcall module_erase

rjmp command

_module_write:

rcall module_write

rjmp command

_module_read:

rcall blank_screen

rcall module_read

rjmp command

_module_address_set:

rcall module_address_set

rjmp command

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

;индикаторные модули чтения/записи

write_cmd:

push work

rcall wait_busy

cbi portd,RS

cbi portd,RW

out portb,char

rcall latch

pop work

ret

write_data:

push work

rcall wait_busy

sbi portd,RS

cbi portd,RW

out portb,char

rcall latch

pop work

ret

wait_busy:

push char

clr work

out ddrb, work;входы

ser work;Включил подтяжку к единице

out portb,work

cbi portd,RS

sbi portd,RW

busy:

nop

sbi portd,E

rcall nop_wait

in char,pinb

cbi portd,E

sbrc char,7

rjmp busy

ser work

out ddrb, work;выходы

cbi portd,RS

pop char

ret

latch:

rcall nop_wait

sbi portd,E

rcall nop_wait

cbi portd,E

ret

nop_wait:

ldi work, 0x1f

_wait:

dec work

brne _wait

ret

precharge:;Подпрограмма начальной предустановки

ser work

out ddrb, work;выходы

cbi portd,RS

cbi portd,RW

rcall pause

rcall pause

rcall pause

rcall pause

rcall pause

rcall ldi30

rcall pause

rcall pause

rcall ldi30

rcall pause

rcall pause

rcall ldi30

rcall pause

ldi30:

ldi work,0x30

out portb,work

rcall latch

ret

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

pause:

clr pauseh

clr pausel

_pauseh:

rcall pause_1

dec pauseh

brne _pauseh

ret

pause_1:

dec pausel

brne pause_1

ret

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

RXcomplete:

in char,udr

mov rus,char

mov data,char

ret

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

decode:

cpi char,0xa8

breq yob

cpi char,0xb8

breq yol

cbr char,0xc0;два старших бита не нужны

ldi hiz,(high(rus_letters*2))

ldi loz,(low(rus_letters*2))

add loz,char

brcc read_code

inc hiz

read_code:

lpm

mov char,rsym

ret

yob:

ldi char,0xa2

ret

yol:

ldi char,0xb5

ret

.cseg

rus_letters:

;Большие буквы

.db 0x41,0xa0,0x42,0xa1,0xe0,0x45,0xa3,0xa4,0xa5,0xa6,0x4b,0xa7,0x4d,0x48

.db 0x4f,0xa8,0x50,0x43,0x54,0xa9,0xaa,0x58,0xe1,0xab,0xac,0xe2,0xad,0xae

.db 0x62,0xaf,0xb0,0xb1

;Маленькие буквы

.db 0x61,0xb2,0xb3,0xb4,0xe3,0x65,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd

.db 0x6f,0xbe,0x70,0x63,0xbf,0x79,0xe4,0x78,0xe5,0xc0,0xc1,0xe6,0xc2,0xc3

.db 0xc4,0xc5,0xc6,0xc7

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

confirm:

;sbi usr,txc

wait_txc:

sbis usr,udre

rjmp wait_txc

out udr,rus

ret

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

adr_latch:

sbis portd,WE;либо запись

out portb,data

out portc,address0

sbi portd,C

nop

cbi portd,C

out portc,address1

push work

in work,porta;считали с защёлок порта А

cbr work,0x07

or work,address2

sbrc address2,3

rjmp ce2_set

sbr work,0x10;CE2

cbr work,0x08;CE1

rjmp ce1_set

ce2_set:

sbr work,0x08

cbr work,0x10

ce1_set:

out porta,work

pop work

nop

sbic portd,WE

in data,pinb;либо чтение

sbi porta,CE1;операция завершена

sbi porta,CE2

ret

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

inc_addr:

clz

inc address0

brne ret_inc

inc address1

brne ret_inc

inc address2

cpi address2,0x10

brlo ret_inc

sbr flag,0x01

ret_inc:

ret

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

erase_flash:

cbi portd,WE

sbi portd,OE

push work

ldi work, 0x55

mov address0,work

mov address1,work

clr address2

sbrc flag,1

sbr address2,0x08;если стирается вторая флешь

ldi data,0xaa

rcall adr_latch

ldi work, 0xaa

mov address0,work

ldi work, 0x2a

mov address1,work

ldi data,0x55

rcall adr_latch

ldi work, 0x55

mov address0,work

mov address1,work

ldi data,0x80

rcall adr_latch

ldi work, 0x55

mov address0,work

mov address1,work

ldi data,0xaa

rcall adr_latch

ldi work, 0xaa

mov address0,work

ldi work, 0x2a

mov address1,work

ldi data,0x55

rcall adr_latch

ldi work, 0x55

mov address0,work

mov address1,work

ldi data,0x10

rcall adr_latch

sbi portd,WE

pop work

mov store,work

ldi work,10

wait_10s:;память стирается 10 секунд. Максимум, правда.

rcall wait_1s

dec work

brne wait_10s

mov work,store

sbi portd,WE

ret

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

read_flash:

sbi portd,WE

cbi portd,OE

push work

clr work

out ddrb,work

rcall adr_latch

ser work

out ddrb,work

pop work

sbi portd,OE

ret

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

write_flash:

mov store,address0

mov storel,address1

mov storeh,address2

cbi portd,WE

sbi portd,OE

push work

ldi work, 0x55

mov address0,work

mov address1,work

cbr address2,0xf7;если пишется во вторую флешь

ldi data,0xaa

rcall adr_latch

ldi work, 0xaa

mov address0,work

ldi work, 0x2a

mov address1,work

ldi data,0x55

rcall adr_latch

ldi work, 0x55

mov address0,work

mov address1,work

ldi data,0xa0

rcall adr_latch

mov address0,store

mov address1,storel

mov address2,storeh

mov data,char

rcall adr_latch

push char

rcall data_polling

pop char

pop work

sbi portd,WE

ret

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

wait_1s:

push work

ldi work,0x47

pause_1s_l:

rcall pause

dec work

brne pause_1s_l

pop work

ret

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

module_write:

clr work

clr book

clr address0

clr address1

clr address2

find_empty_slot:

rcall read_flash

cpi data,0x5e

brne empty_slot

rcall inc_addr

inc book

mov work,book

cpi work,0x08

brne find_empty_slot

ldi hiz,(high(no_slot*2))

ldi loz,(low(no_slot*2))

rcall message

rcall push_button

ret

empty_slot:

ldi char,0x5e

rcall write_flash

ldi hiz,(high(type_header*2))

ldi loz,(low(type_header*2))

rcall message

clr address2

clr address1

ldi address0,0x0b;смещение=8 + адрес=3

mov work,book

sbrc work,0

sbr address0,0x40

sbrc work,1

sbr address0,0x80

sbrc work,2

sbr address1,0x01

ldi work,55

ret_enter_name:

sbis usr,rxc

rjmp ret_enter_name

rcall RXcomplete

rcall write_flash

rcall inc_addr

dec work

breq stop_write_header

cpi char,0x07

brne ret_enter_name

rjmp type_status_reciev

stop_write_header:

ldi char,0x07

rcall write_flash

type_status_reciev:

ldi hiz,(high(reciev_file*2))

ldi loz,(low(reciev_file*2))

rcall message

rcall get_address_text_begin

module_write_cont:

sbis usr,rxc

rjmp module_write_cont

rcall RXcomplete

cpi char,0x07

breq ret_module_write

mov data,char

rcall write_flash

rcall confirm

rcall inc_addr

sbrs flag,0;если память переполнена.

rjmp module_write_cont

ldi hiz,(high(memory_full*2))

ldi loz,(low(memory_full*2))

rcall message

rcall push_button

ret

ret_module_write:

mov char,address2

mov storead1,address1

mov storead0,address0

clr address2

clr address1

ldi address0,0x08

mov work,book

sbrc work,0

sbr address0,0x40

sbrc work,1

sbr address0,0x80

sbrc work,2

sbr address1,0x01

rcall write_flash

rcall inc_addr

mov char,storead1

rcall write_flash

rcall inc_addr

mov char,storead0

rcall write_flash

ldi hiz,(high(file_recieved*2))

ldi loz,(low(file_recieved*2))

rcall message

ret

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

module_read:

ПРИЛОЖЕНИЕ А (Продолжение)

;clr address0

;clr address1

;clr address2

show_to_screen:

rcall read_flash

mov rus,data

mov char,data

rcall write_char

rcall inc_addr

cpi count,TSYM-1

breq branch

rjmp show_to_screen

branch:

rcall push_button

cpi key,1

breq ret_module_read

cpi key,2

breq show_to_screen

minus_tsym:

subi address0,low(TSYM*2)

sbci address1,high(TSYM*2)

brsh show_to_screen

dec address2

brpl show_to_screen

clr address0

clr address1

clr address2

rjmp show_to_screen

ret_module_read:

ret

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

module_erase:

clr work;Вначале стираются закладки в ЭППЗУ

clr count

out eearh,work

rcall wait_write_internal_eeprom

ldi work,0x01

erase_bookmark:

out eearl,work

ser data

out eedr,data

rcall write_internal_eeprom

rcall wait_write_internal_eeprom

subi work,0xfc

inc count

cpi count,8

brne erase_bookmark

ldi hiz,(high(memory_erased_process*2))

ldi loz,(low(memory_erased_process*2))

rcall message

rcall erase_flash

ldi hiz,(high(memory_erased*2))

ldi loz,(low(memory_erased*2))

rcall message

ret

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

;Нажатие кнопки. Возвращаемый код: 1-красная кнопка, 2-зелёная вниз, 3-зелёная вверх

push_button_no_wait:

push work

clr key

sbis pina,5

rjmp red

sbis pina,6

rjmp green_down

sbis pina,7

rjmp green_up;ЭЄю рэрыюушўэыщ єўрёЄюъ ъюфр,

ret;Єюы№ъю схч юцшфрэш эрцрЄш ъэюяъш

push_button:

;ret

push work

clr key

wait_push_button:

clr work

sbis pina,5

rjmp red

sbis pina,6

rjmp green_down

sbis pina,7

rjmp green_up

rjmp wait_push_button;ЗрЎшъыхэю: эрцрЄ№ яЁшфёЄё

red:

dec work

nop

breq pull_red

sbis pina,5

rjmp red

rjmp wait_push_button

clr_pull_red:

clr work

pull_red:

dec work

nop

breq red_quit

sbic pina,5

rjmp pull_red

rjmp clr_pull_red

red_quit:

pop work

ldi key,1

ret

green_down:

dec work

nop

breq pull_green_down

sbis pina,6

rjmp green_down

rjmp wait_push_button

clr_pull_green_down:

clr work

pull_green_down:

dec work

nop

breq green_down_quit

sbic pina,6

rjmp pull_green_down

rjmp clr_pull_green_down

green_down_quit:

pop work

ldi key,2

ret

green_up:

dec work

nop

breq pull_green_up

sbis pina,7

rjmp green_up

rjmp wait_push_button

clr_pull_green_up:

clr work

pull_green_up:

dec work

nop

breq green_up_quit

sbic pina,7

rjmp pull_green_up

rjmp clr_pull_green_up

green_up_quit:

pop work

ldi key,3

ret

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

blank_screen:

ser count

ldi char, 0b00000001

rcall write_cmd

ret

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

message:

;ret

push work

sbr flag,0x08

rcall blank_screen

message_loop:

lpm

mov work,rsym

cpi work,0x0

breq go_away

cpi work,0x1

brne no_return

ldi char, 0b11000000

rcall write_cmd

rjmp message_adr_inc

no_return:

mov char,work

push loz

push hiz

rcall write_data

pop hiz

pop loz

message_adr_inc:

inc loz

brne message_loop

inc hiz

rjmp message_loop

go_away:

sbrc flag,3

pop work

cbr flag,0x08

ret

;Выводимые сообщения. AVR Studio некорректно понимает коды русских симолов, так что пришлось извратиться.

hello:

.db ' ',bS,_i,_s,_t,_e,_m,_a,' ',' ','"',bK,_n,_i,_g,_o,_ch,_e,_j,'"',0x01,' ',bV,_e,_r,_s,_i,_ya,' ','1','.','3','7',0x00

begin:

.db ' ',bN,_a,_ch,_a,_t,_q,' ',_ch,_i,_t,_a,_t,_q,' ',_k,_n,_i,_g,_u,0x01,0x00

ret_cursor:

.db 0x7e,0x00

zakladka:

.db ' ',bD,_o,_s,_t,_a,_t,_q,' ',_z,_a,_k,_l,_a,_d,_k,_u,0x01,0x00

about:

.db ' ',bR,_e,_a,_l,_i,_z,_o,_v,_a,_n,_o,'.','.','.',0x0

about_develop:

.db ' ','R','&','D',' ','7','-',_ya,' ',bZ,_a,_s,_t,_a,_v,_a,'.',' ',bS,_o,_z,_d,_a,_l,' ','S','e','a','G','u','l','l','.',0x01,' ',bE,_s,_l,_i,' ',_ch,_t,_o,',',' ',_p,_i,_sh,_i,_t,_e,' ',_n,_a,' ','"','s','e','a','g','u','l','l','@','m','a','i','l','.','r','u','"',0x00

computer:

.db ' ',bS,_v,_ya,_z,_a,_t,_q,_s,_ya,' ',_s,' ',bEE,bV,bM,0x01,0x00

i_love_my_computer:

.db ' ',bZH,_d,_u,' ',_s,_v,_ya,_z,_i,' ',_n,_a,' ','1','1','5','2','0','0',0x01,' ',bP,_o,_d,_k,_l,_yu,_ch,_i,_t,_e,' ',_p,_o,_r,_t,'.',0x00

continue:

.db ' ',bP,_r,_o,_d,_o,_l,_zh,_i,_t,_q,' ',_ch,_i,_t,_a,_t,_q,0x01,0x00

pop_zakl:

.db ' ',bP,_o,_l,_o,_zh,_i,_t,_q,' ',_z,_a,_k,_l,_a,_d,_k,_u,0x01,0x00

high_inc:

.db ' ',bL,_i,_s,_t,_a,_t,_q,0x01,0x00

memory_erased:

.db ' ',bP,_a,_m,_ya,_t,_q,' ',_s,_t,_yo,_r,_t,_a,'!',0x00

list_kb:

.db ' ',bV,_v,_e,_d,_i,_t,_e,' ',_sh,_a,_g,' ',_p,_r,_o,_l,_i,_s,_t,_y,_v,_a,_n,_i,_ya,0x01,' ','(',_v,' ',_t,_y,_s,_ya,_ch,_a,_h,' ',_s,_i,_m,_v,_o,_l,_o,_v,')',':',0x00

address_set:

.db ' ',bA,_d,_r,_e,_s,' ',_v,_y,_s,_t,_a,_v,_l,_e,_n,0x00

memory_erased_process:

.db ' ',bS,_t,_i,_r,_a,_yu,'.','.','.',0x00

reciev_file:

.db ' ',bP,_r,_i,_yo,_m,' ',_i,_n,_f,_o,_r,_m,_a,_ts,_i,_i,0x00

file_recieved:

.db ' ',bI,_n,_f,_o,_r,_m,_a,_ts,_i,_ya,' ',_p,_r,_i,_n,_ya,_t,_a,'!',0x00

no_text:

.db ' ',bK,_n,_i,_g,_i,' ',_n,_e,' ',_b,_y,_l,_i,' ',_z,_a,_p,_i,_s,_a,_n,_y,'!',0x00

no_slot:

.db ' ',bN,_e,_t,' ',_m,_e,_s,_t,_a,' ',_v,' ',_t,_a,_b,_l,_i,_ts,_e,' ',_p,_o,_d,' ',_k,_n,_i,_g,_u,'!',0x01,' ',bK,_n,_i,_g,' ',_n,_e,' ',_b,_o,_l,_q,_sh,_e,' ','8','-',_m,_i,'!',0x00

type_header:

.db ' ',bV,_s,_t,_u,_ch,_i,_t,_e,' ',_z,_a,_g,_o,_l,_O,_v,_o,_k,'.',0x00

memory_full:

.db ' ',bP,_a,_m,_ya,_t,_q,' ',_z,_a,_p,_o,_l,_n,_e,_n,_a,' ',_p,_o,_l,_n,_o,_s,_t,_q,_yu,'!',0x00

no_bookmark:

.db ' ',bZ,_a,_k,_l,_a,_d,_k,_a,' ',_d,_l,_ya,' ',_ee,_t,_o,_j,' ',_k,_n,_i,_g,_i,' ',_o,_t,_s,_u,_t,_s,_t,_v,_u,_e,_t,'!',0x00

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

menu:

;ret

clr count

choose_menu:

sbrs flag,2

rjmp current

ring_menu:

push count

rcall blank_screen

pop count

cpi count,2

breq start_pos_1

cpi count,3

breq start_pos_2

start_pos_0:

cpi count,0

brne end_pos_01

rcall show_cur

rjmp end_pos_02

end_pos_01:

rcall show_space

end_pos_02:

ldi hiz,(high(begin*2))

ldi loz,(low(begin*2))

rcall message_loop

start_pos_1:

cpi count,1

brne end_pos_11

rcall show_cur

rjmp end_pos_12

end_pos_11:

rcall show_space

end_pos_12:

ldi hiz,(high(zakladka*2))

ldi loz,(low(zakladka*2))

rcall message_loop

cpi count,2

brlo polling

start_pos_2:

cpi count,2

brne end_pos_21

rcall show_cur

rjmp end_pos_22

end_pos_21:

rcall show_space

end_pos_22:

ldi hiz,(high(computer*2))

ldi loz,(low(computer*2))

rcall message_loop

cpi count,2

breq polling

start_pos_3:

cpi count,3

brne end_pos_31

rcall show_cur

rjmp end_pos_32

end_pos_31:

rcall show_space

end_pos_32:

ldi hiz,(high(about*2))

ldi loz,(low(about*2))

rcall message_loop

polling:

rcall push_button

cpi key,2

breq add_count

cpi key,3

breq sub_count

ret

add_count:

cpi count,3

breq choose_menu

inc count

rjmp choose_menu

sub_count:

cpi count,0

breq choose_menu

dec count

rjmp choose_menu

;Меню, вылазиющее при чтении

current:

push count

rcall blank_screen

pop count

cpi count,2

breq start_cur_1

cpi count,3

breq start_cur_2

start_cur_0:

cpi count,0

brne end_cur_01

rcall show_cur

rjmp end_cur_02

end_cur_01:

rcall show_space

end_cur_02:

ldi hiz,(high(continue*2))

ldi loz,(low(continue*2))

rcall message_loop

start_cur_1:

cpi count,1

brne end_cur_11

rcall show_cur

rjmp end_cur_12

end_cur_11:

rcall show_space

end_cur_12:

ldi hiz,(high(zakladka*2))

ldi loz,(low(zakladka*2))

rcall message_loop

cpi count,2

brlo polling

start_cur_2:

cpi count,2

brne end_cur_21

rcall show_cur

rjmp end_cur_22

end_cur_21:

rcall show_space

end_cur_22:

ldi hiz,(high(pop_zakl*2))

ldi loz,(low(pop_zakl*2))

rcall message_loop

cpi count,2

breq polling

start_cur_3:

cpi count,3

brne end_cur_31

rcall show_cur

rjmp end_cur_32

end_cur_31:

rcall show_space

end_cur_32:

ldi hiz,(high(high_inc*2))

ldi loz,(low(high_inc*2))

rcall message_loop

rjmp polling

show_cur:

ldi hiz,(high(ret_cursor*2))

ldi loz,(low(ret_cursor*2))

rcall message_loop

ret

show_space:

ldi char,' '

rcall write_data

ret

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

listing:

push work

rcall blank_screen

ldi count,1

ldi hiz,(high(list_kb*2))

ldi loz,(low(list_kb*2))

rcall message_loop

select_kbyte:

ldi char, 0b11010111

rcall write_cmd

cpi count,0x0a

brsh big_gid

mov work,count

rcall dec_itoa

ldi char,' '

rcall write_data

rjmp after_show

big_gid:

ldi char,'1'

push count

rcall write_data

pop count

ldi char, 0b11011000

rcall write_cmd

mov work,count

subi work,0x0a

rcall dec_itoa

after_show:

rcall push_button

cpi key,3

breq inc_kbyte

cpi key,2

breq dec_kbyte

pop work

ret

inc_kbyte:

cpi count,16

breq select_kbyte

inc count

rjmp select_kbyte

dec_kbyte:

cpi count,1

breq select_kbyte

dec count

rjmp select_kbyte

dec_itoa:

ldi char,0x30

add char,work

push count

rcall write_data

pop count

ret

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

module_address_set:

sbis usr,rxc

rjmp module_address_set

rcall RXcomplete

mov address2,data

wait1:

sbis usr,rxc

rjmp wait1

rcall RXcomplete

mov address1,data

wait2:

sbis usr,rxc

rjmp wait2

rcall RXcomplete

mov address0,data

ldi hiz,(high(address_set*2))

ldi loz,(low(address_set*2))

rcall message

ret

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

get_address_text_begin:

push work

mov work,book

cpi work,0

brne address_calc

clr address2

ldi address1,0x02

ldi address0,0x08

rjmp end_get_address_text_begin

address_calc:

dec work;То есть dec book!

clr address1

ldi address0,0x08

;mov work,book

sbrc work,0

sbr address0,0x40

sbrc work,1

sbr address0,0x80

sbrc work,2

sbr address1,0x01

rcall read_flash

mov storeh,data

rcall inc_addr

rcall read_flash

mov storel,data

rcall inc_addr

rcall read_flash

mov address0,data

mov address1,storel

mov address2,storeh

end_get_address_text_begin:

pop work

ret

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

choose_text:

push work

clr address0

clr address1

clr address2

rcall read_flash

cpi data,0x5e

breq calk_name

ldi hiz,(high(no_text*2))

ldi loz,(low(no_text*2))

rcall message

rcall push_button

rjmp choose_text_ret

calk_name:

inc address0;гораздо быстрее, чем подпрограммой inc_addr

rcall read_flash

cpi data,0x5e

breq calk_name

dec address0

mov all_book,address0

show_name:

clr address1

ldi address0,0x0b;смещение=8 + адрес=3

mov work,book

sbrc work,0

sbr address0,0x40

sbrc work,1

sbr address0,0x80

sbrc work,2

sbr address1,0x01

rcall blank_screen

ser count

mov work,all_book

cpi work,0

breq one_book

cp work,book

breq book_down

ldi char,0xda

rcall write_data

inc count

mov work,book

cpi work,0

breq one_book

book_down:

ldi char,0xd9

rcall write_data

inc count

one_book:

ldi char,' '

rcall write_char

ldi work,55

name_loop:

rcall read_flash

cpi data,0x07

breq end_show_name_ent

push work

mov char,data

rcall write_char

rcall inc_addr

pop work

dec work

brne name_loop

end_show_name_ent:

ldi char,' '

rcall write_char

ldi char,0x7e

rcall write_char

end_show_name:

rcall push_button

cpi key,3;то есть в минус

breq minus_text

cpi key,2;то есть в плюс

breq plus_text

rjmp choose_text_ret

minus_text:

mov work,book

cpi work,0

breq end_show_name

dec book

clr address2

clr address1

mov address0,book

rcall read_flash

cpi data,0x5e

breq ret_minus_text

inc book

ret_minus_text:

rjmp show_name

plus_text:

mov work,book

cpi work,7

breq end_show_name

inc book

clr address2

clr address1

mov address0,book

rcall read_flash

cpi data,0x5e

breq ret_plus_text

dec book

ret_plus_text:

rjmp show_name

choose_text_ret:

pop work

ret

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

sub_string:

subi address0,low(TSYM)

sbci address1,high(TSYM)

brsh ret_sub_string

dec address2

ret_sub_string:

ret

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

data_polling:

clr work

out ddrb,work

sbi portd,WE

sbrc address2,3

rjmp ce2_pol

sbi porta,CE2;CE2

cbi porta,CE1;CE1

rjmp repeat_dp

ce2_pol:

sbi porta,CE1

cbi porta,CE2

repeat_dp:

cbi portd,OE

nop

nop

in data,pinb

sbi portd,OE

cbr data,0x7f

cbr char,0x7f

cp data,char

brne repeat_dp; Собссно, это и есть #data polling по 7-му биту

ser work

out ddrb,work

sbi porta,CE1

sbi porta,CE2

ret

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

Приложение Б

Файл rus.inc

.set _a=0x61

.set _b=0xb2

.set _v=0xb3

.set _g=0xb4

.set _d=0xe3

.set _e=0x65

.set _yo=0xb5

.set _zh=0xb6

.set _z=0xb7

.set _i=0xb8

.set _j=0xb9

.set _k=0xba


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

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

    презентация [601,3 K], добавлен 10.12.2016

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

    курсовая работа [66,9 K], добавлен 05.02.2017

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

    курсовая работа [469,1 K], добавлен 20.05.2014

  • История развития и популярные модели электронных книг. Характеристика электронных книг c LCD-, ChLCD-дисплеем, E-Ink дисплеем. Преимущества и недостатки электронных книг по сравнению с бумажными, перспективы их развития и популярность у потребителей.

    реферат [2,9 M], добавлен 09.04.2014

  • Тематический план курса разработки цифрового образовательного ресурса по технологии создания электронных графических документов (электронных книг). Особенности сканирования, программное обеспечение. Основные возможности программы ABBYY Fine Reader.

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

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

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

  • Целесообразность применения МП-устройства. Архитектура микропроцессорной системы. Структурная организация БИС ВТ с изолированными шинами. Содержание и возможная направленность микроконтроллера. Обобщенная структура простого встраиваемого микроконтроллера.

    реферат [224,5 K], добавлен 28.04.2011

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

    курсовая работа [42,0 K], добавлен 30.08.2010

  • Электронные книги, их достоинства и недостатки. Традиционные технологии создания электронных книг. Защита авторских прав при распространении электронных книг. Наиболее распространенные форматы. Информационная безопасность и информационные технологии.

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

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

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

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