Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Звіт
про виконання лабораторної роботи №3
з курсу “Мікропроцесорні пристрої ”
Мета роботи: ознайомитися з побудовою інфрачервоних детекторів руху і їх програмно-апаратною реалізацією на AVR - мікроконтроллерах
Текст програми:
.include "2313def.inc"
.equ T_PIR = 15199997
.equ T_DIOD = 3599997
.equ N = 35000
.equ T_Z = 11
.equ LED_PIN = PD6
.equ PORT_LED = PORTD
.def Delay1 = r18
.def Delay2 = r19
.def Delay3 = r20
.def result_h = r26
.def result_l = r27
.def temp1 = r16
.def temp2 = r17
.equ SHDN = PB1
.equ SCLK = PB2
.equ CS = PB3
.equ DOUT = PB4
.equ Vmax=2269
.equ Vmin=1827
.cseg
.org 0
rjmp begin
.org 0x04
rjmp TIMER
begin:
ldi temp1, RAMEND
out SPL,temp1
ldi Delay1, low(T_PIR)
ldi Delay2, high(T_PIR)
ldi Delay3, byte3(T_PIR)
rcall Delay
sbi PORTD,LED_PIN
sbi DDRD,LED_PIN
ldi temp1,0b00001110
out DDRB,temp1
ldi temp1,0b00001000
out PORTB,temp1
ldi temp1, high(N)
out OCR1AH,temp1
ldi temp1,low(N)
out OCR1AL,temp1
ldi temp1, (1<<OCIE1A)
out TIMSK,temp1
ldi temp1,(1<<CTC1)+(1<<CS11)
out TCCR1B,temp1
ldi temp1,(1<<SE)
out MCUCR,temp1
sei
Wait:
sleep
rjmp Wait
Delay:
subi Delay1,1
sbci Delay2,0
sbci Delay3,0
brcc Delay
nop
ret
TIMER:
rcall ADC_Convert
mov temp1, result_l
mov temp2, result_h
subi temp1,low(Vmax)
sbci temp2,high(Vmax)
brcc Alarm
mov temp1, result_l
mov temp2, result_h
subi temp1,low(Vmin)
sbci temp2,high(Vmin)
brcs Alarm
rjmp qwer1
Alarm:
cbi PORT_LED, LED_PIN
ldi Delay1, low(T_DIOD)
ldi Delay2, high(T_DIOD)
ldi Delay3, byte3(T_DIOD)
rcall Delay
qwer1:
sbi PORT_LED, LED_PIN
reti
ADC_Convert:
clr result_h
clr result_l
SBI PORTB,SHDN
ldi Delay1, low(T_Z)
ldi Delay2, high(T_Z)
ldi Delay3, byte3(T_Z)
rcall Delay
cbi PORTB,CS
EOC:
sbis PINB, DOUT
rjmp EOC
rcall Bit_Read
bld result_h, 3
rcall Bit_Read
bld result_h, 2
rcall Bit_Read
bld result_h, 1
rcall Bit_Read
bld result_h, 0
rcall Bit_Read
bld result_l, 7
rcall Bit_Read
bld result_l, 6
rcall Bit_Read
bld result_l, 5
rcall Bit_Read
bld result_l, 4
rcall Bit_Read
bld result_l, 3
rcall Bit_Read
bld result_l, 2
rcall Bit_Read
bld result_l, 1
rcall Bit_Read
bld result_l, 0
sbi PORTB, CS
CBI PORTB,SHDN
ret
Bit_Read:
sbi PORTB, SCLK
nop
nop
cbi PORTB, SCLK
nop
in temp1, PINB
bst temp1, DOUT
ret
Схема:
ВИСНОВОК: на лабораторній роботі ми ознайомилися з побудовою інфрачервоних детекторів руху і їх програмно-апаратною реалізацією на AVR мікроконтроллерах.