Автор работы: Пользователь скрыл имя, 01 Ноября 2012 в 20:12, дипломная работа
Освещение играет немаловажную роль как на производстве, так и в быту. От него зависит как сохранность здоровья персонала, так и непосредственно продуктивность его труда. Неправильное освещение может привести к серьезному ухудшению зрения, повышению утомляемости и, как следствие, снижение эффективности любой деятельности. В помещениях, где выполняются любые виды работ, и прилегающих территориях необходимо во-первых соблюдать определенные правила организации, и во-вторых — следить за уровнем освещенности, а так же уровнем пульсации светового потока от различных источников. Коэффициент пульсации освещенности (Кп) является характеристикой относительной глубины колебаний освещенности в результате изменения во времени светового потока источников света. Контроль уровня пульсации — очень важная организационная мера, т. к. несоблюдение требований по уровню коэффициента пульсации приводит к повышенной утомляемости, ухудшению зрения, и, как следствие, к ухудшению производственных показателей.
dataread bsf STATUS, 6 ;
bcf STATUS, 5 ;Bank 2
movwf EEADR ;to read from
bsf STATUS, 5 ;Bank 3
bcf EECON1, 7 ;Point to Data memory
bsf EECON1, 0 ;Start read operation
bcf STATUS, 5 ;Bank 2
movf EEDATA, W
bcf STATUS, 6 ;Bank 0
return
datawrite bsf STATUS, 6 ;
bsf STATUS, 5 ;Bank 3
btfsc EECON1, 1 ;Wait for
goto $-1 ;write to finish
bsf STATUS, 5 ;Bank 3
bcf EECON1, 7 ;Point to Data memory
bsf EECON1, 2 ;Enable writes
;Only disable interrupts
bcf INTCON, 7 ;if already enabled,
;otherwise discard
movlw 0x55 ;Write 55h to
movwf EECON2 ;EECON2
movlw 0xAA ;Write AAh to
movwf EECON2 ;EECON2
bsf EECON1, 1 ;Start write operation
;Only enable interrupts
bsf INTCON, 7 ;if using interrupts,
;otherwise discard
bcf EECON1, 2 ;Disable writes
bcf EECON1, 1
bcf STATUS, 6 ;
bcf STATUS, 5 ;Bank 0
return
;******** Set DDRAM ADDRESS ******************************
defaultprint movlw 0x80 ;выбо
movwf M_byte
call in_port
bcf PORTB, 1
call zapis
call pause1
;******** Вывод символов ******************************
movlw 0
movwf X1
movlw 13
movwf X2
prosv movf X1, W
call table
call s_toport
movlw 1
addwf X1
subwf X2
btfss STATUS, 2
goto prosv
;******** Set DDRAM ADDRESS ******************************
movlw 0xc0 ;выбор позиции символа на экране
movwf M_byte
call in_port
bcf PORTB, 1
call zapis
call pause1
;******** Вывод символов ******************************
movlw 13
movwf X1
movlw 10
movwf X2
prpuls movf X1, W
call table
call s_toport
movlw 1
addwf X1
subwf X2
btfss STATUS, 2
goto prpuls
return
;******** Set DDRAM ADDRESS ******************************
knmode1 movlw 0xD4 ;выбор позиции символа на экране
movwf M_byte
call in_port
bcf PORTB, 1
call zapis
call pause1
;******** Вывод символов ******************************
movlw 23
movwf X1
movlw 3
movwf X2
prizm movf X1, W
call table
call s_toport
movlw 1
addwf X1
subwf X2
btfss STATUS, 2
goto prizm
;******** Set DDRAM ADDRESS ******************************
movlw 0xE4 ;выбор позиции символа на экране
movwf M_byte
call in_port
bcf PORTB, 1
call zapis
call pause1
;******** Вывод символов ******************************
movlw 26
movwf X1
movlw 4
movwf X2
prsave movf X1, W
call table
call s_toport
movlw 1
addwf X1
subwf X2
btfss STATUS, 2
goto prsave
return
;******** Set DDRAM ADDRESS ******************************
knmode2 movlw 0xD4 ;выбор позиции символа на экране
movwf M_byte
call in_port
bcf PORTB, 1
call zapis
call pause1
;******** Вывод символов ******************************
movlw 30
movwf X1
movlw 4
movwf X2
prpred movf X1, W
call table
call s_toport
movlw 1
addwf X1
subwf X2
btfss STATUS, 2
goto prpred
;******** Set DDRAM ADDRESS ******************************
movlw 0xE4 ;выбор позиции символа на экране
movwf M_byte
call in_port
bcf PORTB, 1
call zapis
call pause1
;******** Вывод символов ******************************
movlw 34
movwf X1
movlw 4
movwf X2
prsled movf X1, W
call table
call s_toport
movlw 1
addwf X1
subwf X2
btfss STATUS, 2
goto prsled
return
printwait movlw 0x9a ;выбор позиции символа на экране
movwf M_byte
call in_port
bcf PORTB, 1
call zapis
call pause1
;******** Вывод символов ******************************
movlw 38
movwf X1
movlw 8
movwf X2
prwait movf X1, W
call table
call s_toport
movlw 1
addwf X1
subwf X2
btfss STATUS, 2
goto prwait
return
printsaved movlw 0x9a ;выбор позиции символа на экране
movwf M_byte
call in_port
bcf PORTB, 1
call zapis
call pause1
;******** Вывод символов ******************************
movlw 46
movwf X1
movlw 9
movwf X2
prsaved movf X1, W
call table
call s_toport
movlw 1
addwf X1
subwf X2
btfss STATUS, 2
goto prsaved
return
s_toport movwf M_byte
call in_port
bsf PORTB, 1 ;RS=1
call zapis
call pause1
return
nprintwait movlw 0x9a ;выбор позиции символа на экране
movwf M_byte
call in_port
bcf PORTB, 1
call zapis
call pause1
movlw 8
movwf X1
;******** Вывод символа ****************
clrwait movlw 0x20 ;пустой символ
movwf M_byte
call in_port
bsf PORTB, 1 ;RS=1
call zapis
call pause1
movlw 1
subwf X1
btfss STATUS, 2
goto clrwait
return
;
;******** Процедура записи в LCD ******************************
zapis bsf PORTB, 0 ;E=1 - запись
nop ;1 мкс - пауза для записи
nop ;1 мкс - пауза для записи
bcf PORTB, 0 ;E=0 - выключить запись
return
;******** Процедура Паузы 1 (39 мкс) ******************************
pause1 movlw Cr1
movwf T_int ;загрузить значение таймера для паузы в T_int
cikl1 nop
nop
nop
nop
nop
nop
decfsz T_int,1
goto cikl1
return
;******** Процедура Паузы 2 (1.53 мс) ******************************
pause2 movlw Cr2
movwf T_ext ;загрузить значение для внешнего цикла
cikl2 movlw Cr1
movwf T_int ;загрузить значение для внутреннего цикла
cikl3 decfsz T_int,1
goto cikl3 ;внутренний цикл
decfsz T_ext,1
goto cikl2 ;внешний цикл
return
;******** Процедура Паузы 3 (30 мс) ******************************
pause3 movlw Cr3
movwf T_n ;загрузить значение для внешнего цикла
cikl4 movlw Cr1
movwf T_int ;загрузить значение для внутреннего цикла
cikl5 nop
decfsz T_int,1
goto cikl5 ;внутренний цикл
decfsz T_n,1
goto cikl4 ;внешний цикл
return
;******** Процедура записи байта
сообщения в защелки портов ******************************
in_port btfsc M_byte,7 ;если 7-й бит посылки = 0, то следующая команда пропускается
bsf PORTD,7 ;DB7=1
btfss M_byte,7 ;если 7-й бит посылки =1, то следующая команда пропускается
bcf PORTD,7 ;DB7=0
;-----------------------------
btfsc M_byte,6 ;если 6-й бит посылки = 0, то следующая команда пропускается
bsf PORTD,6 ;DB6=1
btfss M_byte,6 ;если 6-й бит посылки =1, то следующая команда пропускается
bcf PORTD,6 ;DB6=0
;-----------------------------
btfsc M_byte,5 ;если 5-й бит посылки = 0, то следующая команда пропускается
bsf PORTD,5 ;DB5=1
btfss M_byte,5 ;если 5-й бит посылки =1, то следующая команда пропускается
bcf PORTD,5 ;DB5=0
;-----------------------------
btfsc M_byte,4 ;если 4-й бит посылки = 0, то следующая команда пропускается
bsf PORTD,4 ;DB4=1
btfss M_byte,4 ;если 4-й бит посылки =1, то следующая команда пропускается
bcf PORTD,4 ;DB4=0
;-----------------------------
btfsc M_byte,3 ;если 3-й бит посылки = 0, то следующая команда пропускается
bsf PORTD,3 ;DB3=1
btfss M_byte,3 ;если 3-й бит посылки =1, то следующая команда пропускается
bcf PORTD,3 ;DB3=0
;-----------------------------
btfsc M_byte,2 ;если 2-й бит посылки = 0, то следующая команда пропускается
bsf PORTD,2 ;DB2=1
btfss M_byte,2 ;если 2-й бит посылки =1, то следующая команда пропускается
bcf PORTD,2 ;DB2=0
;-----------------------------
btfsc M_byte,1 ;если 1-й бит посылки = 0, то следующая команда пропускается
bsf PORTD,1 ;DB1=1
btfss M_byte,1 ;если 1-й бит посылки =1, то следующая команда пропускается
bcf PORTD,1 ;DB1=0
;-----------------------------
btfsc M_byte,0 ;если 0-й бит посылки = 0, то следующая команда пропускается
bsf PORTD,0 ;DB0=1
btfss M_byte,0 ;если 0-й бит посылки =1, то следующая команда пропускается
bcf PORTD,0 ;DB0=0
;-----------------------------
return
;*****************************
end