Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DMITR / DMITR.DOC
Скачиваний:
40
Добавлен:
16.04.2013
Размер:
962.05 Кб
Скачать

4.13 Планировка рабочего места программиста и организация работы с компьютером

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

Рис. 4.1. Рекомендуемая планировка рабочего места программиста.

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

4.14 Выводы

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

Используемая литература:

Наиболее используемыми источниками при создании данного дипломного проекта стали :

1. АТ89С51. 8-Bit Microcontroller with Flash. Application Note.

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

  2. Последовательный интерфейс RS-232. Описание, принципы работы и использование в коммуникационных системах связи. Электронная подборка.

  3. Липаев В.В. “Тестирование программ”. М., “Радио и связь”, 1986 г.

Приложение 1. Исходный текст программы на ассемблере микропроцессора АТ89С51

; Программа управления изделием TC16E1

; Процессор AT89C51

ORG 00H

RSTGL: LJMP START

ORG 03H

LJMP INTR

ORG 13H

LJMP INTR

ORG 07H

LJMP PORT

START: NOP

MOV A, #0DH ;

MOV R7, A ;

; Инициализация области памяти ОЗУ данных с 40H по 7FH

MOV R2, #40H

MOV R0, #40H

MOV R1, #40H

NULTSR: MOV A, #0EH ; Проставляем бит

MOVX @R0, A

MOV A, R0 ;

INC A ; Увеличиваем счетчик R0

MOV R0, A ;

MOV A, R2 ;

DEC A ; Уменьшаем счетчик R2

MOV R2, A ;

JNZ NULTSR

MOV A, #01H ;

MOV R7, A ;

; Инициализация линейных интерфейсов

MOV R1, #00H

MOV R2, #10H

MOV A, #02H ; CR2

ADD A, #00H

ADD A, #00H ; Команда записи в регистр LI1

MOV R0, A ; Сформирована команда

; инициализации LI1

RESLI: MOV A, #80H ; Команда сброс (CR2.RESET) LI

MOVX @R0, A

MOV A, R0

ADD A, #10H ; Приращение адреса @R0

MOV R0, A

MOV A, R2 ;

DEC A ; Уменьшение счетчика R2

MOV R2, A ;

JNZ RESLI ; Все LI инициализированы?

MOV A, #02H ;

MOV R7, A ;

; Запись в ОЗУ данных состояний регистров линейных интерфейсов

MOV R1, #40H ; Чтение регистров PSR (1..16)

LCALL RDPSR

MOV A, #03H ;

MOV R7, A ;

MOV R1, #41H ; Чтение регистров TSR (1..16)

LCALL RDTSR

MOV A, #04H ;

MOV R7, A ;

MOV R1, #42H ; Чтение регистров CR2 (1..16)

LCALL RDCR2

MOV A, #05H ;

MOV R7, A ;

MOV R1, #43H ; Чтение регистров CR1 (1..16)

LCALL RDCR1

MOV A, #06H ;

MOV R7, A ;

; Инициализация последовательного порта Р3 на прием

LCALL INIPORT

WAITING: NOP

NOP

MOV A, #0CH ;

MOV R7, A ;

NOP

NOP

LJMP WAITING

RDPSR: MOV R2, #10H

MOV A, #0AH ; Адрес регистра PSR

ADD A, #00H ; Адрес первого LI

ADD A, #01H ; Команда на чтение регистра

MOV R0, A ; Сформирована команда на

; чтение регистра PSR

; первого LI

PSRLI: MOV A, #00H

MOVX @R0, A ; Запись в порт P0 команды

; на чтение регистра PSR

; по адресу @R0

MOV A, R0

ADD A, #10H ; Увеличение адреса LI

MOV R0, A ; Запись адреса в R0

MOV A, R2 ; Запись в аккумулятор A

; значения счетчика R2

DEC A ; Уменьшение значения A

MOV R2, A ; Обновление значения

; счетчика R2

MOV R4, A ; Сохранение значения A в R4

MOV C, P1.0 ; Чтение данных из порта P1

MOV P2.0, C ; ===

MOV C, P1.2 ; ===

MOV P2.1, C ; ===

MOV C, P1.5 ; ===

MOV P2.2, C ; ===

MOV A, P2 ; Запись данных из P2 в A

MOV @R1, A ; Запись данных из A в ОЗУ

; по адресу R1

MOV A, R1

ADD A, #04H

MOV R1, A

MOV A, R4 ; Восстановление значения A

JNZ PSRLI ; Повторить цикл, если

; значение A (счетчик R2)

; не равен нулю

RET ; Выход из подпрограммы

RDTSR: MOV R2, #10H

MOV A, #08H ; Адрес регистра TSR

ADD A, #00H ; Адрес первого LI

ADD A, #01H ; Команда на чтение регистра

MOV R0, A ; Сформирована команда на

; чтение регистра TSR

; первого LI

TSRLI: MOV A, #80H ;

MOV P2, A ; Установка флага FL

MOV A, #00H ;

MOVX @R0, A ; Запись в порт P0 команды

; на чтение регистра TSR

; по адресу @R0

MOV A, R0

ADD A, #10H ; Увеличение адреса LI

MOV R0, A ; Запись адреса в R0

MOV A, R2 ; Запись в аккумулятор A

; значения счетчика R2

DEC A ; Уменьшение значения A

MOV R2, A ; Обновление значения

; счетчика R2

MOV R4, A ; Сохранение значения A в R4

MOV C, P1.0 ; Чтение данных из порта P1

MOV P2.0, C ; ===

MOV C, P1.2 ; ===

MOV P2.1, C ; ===

MOV C, P1.3 ; ===

MOV P2.5, C ; ===

MOV C, P1.5 ; ===

MOV P2.2, C ; ===

MOV C, P1.6 ; ===

MOV P2.4, C ; ===

MOV C, P1.7 ; ===

MOV P2.3, C ; ===

MOV A, P2 ; Запись данных из P2 в A

MOV @R1, A ; Запись данных из A в ОЗУ

; по адресу R1

MOV A, R1

ADD A, #04H

MOV R1, A

MOV A, R4 ; Восстановление значения A

JNZ TSRLI ; Повторить цикл, если

; значение А (счетчик R2)

; не равен нулю

RET ; Выход из подпрограммы

RDCR2: MOV R2, #10H

MOV A, #02H ; Адрес регистра CR2

ADD A, #00H ; Адрес первого LI

ADD A, #01H ; Команда на чтение регистра

MOV R0, A ; Сформирована команда на

; чтение регистра CR2

; первого LI

CR2LI: MOV A, #00H

MOVX @R0, A ; Запись в порт P0 команды

; на чтение регистра CR2

; по адресу @R0

MOV A, R0

ADD A, #10H ; Увеличение адреса LI

MOV R0, A ; Запись адреса в R0

MOV A, R2 ; Запись в аккумулятор A

; значения счетчика R2

DEC A ; Уменьшение значения A

MOV R2, A ; Обновление значения

; счетчика R2

MOV R4, A ; Сохранение значения A в R4

MOV C, P1.0 ; Чтение данных из порта P1

MOV P2.3, C ; ===

MOV C, P1.1 ; ===

MOV P2.2, C ; ===

MOV C, P1.2 ; ===

MOV P2.0, C ; ===

MOV C, P1.4 ; ===

MOV P2.5, C ; ===

MOV C, P1.5 ; ===

MOV P2.6, C ; ===

MOV C, P1.6 ; ===

MOV P2.7, C ; ===

MOV A, P2 ; Запись данных из P2 в A

MOV @R1, A ; Запись данных из A в ОЗУ

; по адресу R1

MOV A, R1

ADD A, #04H

MOV R1, A

MOV A, R4 ; Восстановление значения A

JNZ CR2LI ; Повторить цикл, если

; значение А (счетчик R2)

; не равен нулю

RET ; Выход из подпрограммы

RDCR1: MOV R2, #10H

MOV A, #00H ; Адрес регистра CR1

ADD A, #00H ; Адрес первого LI

ADD A, #01H ; Команда на чтение регистра

MOV R0, A ; Сформирована команда на

; чтение регистра CR1 первого

; LI

CR1LI: MOV A, #00H

MOVX @R0, A ; Запись в порт P0 команды

; на чтение регистра CR1

; по адресу @R0

MOV A, R0

ADD A, #10H ; Увеличение адреса LI

MOV R0, A ; Запись адреса в R0

MOV A, R2 ; Запись в аккумулятор A

; значения счетчика R2

DEC A ; Уменьшение значения A

MOV R2, A ; Обновление значения

; счетчика R2

MOV R4, A ; Сохранение значения A в R4

MOV C, P1.0 ; Чтение данных из порта P1

MOV P2.0, C ; ===

MOV C, P1.1 ; ===

MOV P2.1, C ; ===

MOV C, P1.2 ; ===

MOV P2.2, C ; ===

MOV C, P1.3 ; ===

MOV P2.3, C ; ===

MOV A, P2 ; Запись данных из P2 в A

MOV @R1, A ; Запись данных из A в ОЗУ

; по адресу R1

MOV A, R1

ADD A, #04H

MOV R1, A

MOV A, R4 ; Восстановление значения A

JNZ CR1LI ; Повторить цикл, если

; значение А (счетчик R2)

; не равен нулю

RET ; Выход из подпрограммы

INTR: NOP

MOV R1, #40H ; Чтение регистров PSR (1..16)

LCALL RDPSR

MOV R1, #41H ; Чтение регистров TSR (1..16)

LCALL RDTSR

MOV R1, #42H ; Чтение регистров CR2 (1..16)

LCALL RDCR2

MOV R1, #43H ; Чтение регистров CR1 (1..16)

LCALL RDCR1

; Снятий флагов прерываний в регистре ICR (1..16)

MOV R1, #00H

MOV R2, #10H

MOV A, #06H ; Адрес регистра ICR

ADD A, #00H

ADD A, #00H ; Команда записи в регистр LI

MOV R0, A ; Сформирована команда

; инициализации LI

REICR: MOV A, #00H ; Команда сброса флагов

; регистров ICR LI

MOVX @R0, A

MOV A, R0

ADD A, #10H ; Приращение адреса @R0

MOV R0, A ;

MOV A, R2

DEC A

MOV R2, A

JNZ REICR

MOV A, #0BH ;

MOV R7, A ;

RETI ; Возврат INTR'a

END

Дипломный проект МГИЭТ (ТУ), кафедра ИПОВС, 1999 -123-

Соседние файлы в папке DMITR