Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Вимірювання аналогового сигналу - файл 1.doc


Вимірювання аналогового сигналу
скачать (60 kb.)

Доступные файлы (1):

1.doc60kb.18.11.2011 01:09скачать


1.doc

Лабораторная работа №5
Тема: измерение аналогового сигнала.
Задание: необходимо измерить напряжение, которое изменяется от 0 до 5 В. В качестве опорного принять напряжение 5 В. Полученное значение необходимо выдавать на семисегментный индикатор.
Схема:



Текст программы:
; Fmcu=4MHz

.include "8535def.inc"
.def count1=r0
.def tmp=r16
.def tmp2=r17
.def symb1=r20
.def symb2=r21
.def numb1=r18
.def numb2=r19
.equ buf=0x60
.org 0

rjmp RESET ; Reset Handler
rjmp EXT_INT0 ; IRQ0 Handler
rjmp EXT_INT1 ; IRQ1 Handler
rjmp TIM2_COMP ; Timer2 Compare Handler
rjmp TIM2_OVF ; Timer2 Overflow Handler
rjmp TIM1_CAPT ; Timer1 Capture Handler
rjmp TIM1_COMPA ; Timer1 CompareA Handler
rjmp TIM1_COMPB ; Timer1 CompareB Handler
rjmp TIM1_OVF ; Timer1 Overflow Handler
rjmp TIM0_OVF ; Timer0 Overflow Handler
rjmp SPI_STC; ; SPI Transfer Complete Handler
rjmp UART_RXC ; UART RX Complete Handler
rjmp UART_DRE ; UDR Empty Handler
rjmp UART_TXC ; UART TX Complete Handler
rjmp ADC_Comp ; ADC Conversion Complete Interrupt Handler
rjmp EE_RDY ; EEPROM Ready Handler
rjmp ANA_COMP ; Analog Comparator Handler

Reset:
ldi tmp,high(RAMEND)
out SPH,tmp
ldi tmp,low(RAMEND)
out SPL,tmp
clr tmp
out DDRA,tmp
ser tmp
out DDRC,tmp;
clr tmp
out ADMUX,tmp;
ldi tmp,(1<<ADEN|1<<ADSC|1<<ADIE|1<<ADPS2)
out ADCSR,tmp
ldi tmp,(0<<CS00|0<<CS01|1<<CS02);
out TCCR0,tmp
ldi tmp,(1<<CS11|1<<CS10)
out TCCR1B,tmp
ldi XL,low(buf);
ldi XH,high(buf)
ldi tmp,(1<<TOIE0|1<<TOIE1)
out TIMSK,tmp
clr count1

ldi tmp,0b11101110;0
st X+,tmp
ldi tmp,0b01001000;1
st X+,tmp
ldi tmp,0b11010110;2
st X+,tmp
ldi tmp,0b11011010;3
st X+,tmp
ldi tmp,0b01111000;4
st X+,tmp
ldi tmp,0b10111010;5
st X+,tmp
ldi tmp,0b10111110;6
st X+,tmp
ldi tmp,0b11001000;7
st X+,tmp
ldi tmp,0b11111110;8
st X+,tmp
ldi tmp,0b11111010;9
st X, tmp
clr XL
clr XH
sei

Metka:
rjmp Metka

EXT_INT0:
reti
EXT_INT1:
reti
TIM2_COMP:
reti
TIM2_OVF:
reti

TIM1_CAPT:
reti
TIM1_COMPA:
reti
TIM1_COMPB:
reti

TIM1_OVF:
clr symb1
clr symb2
clr tmp2
loop_100:
inc tmp2
cpi XL,100
brlo nicht_hunderte
sbiw X,63
sbiw X,37
cpi tmp2,2
breq plus_hunderte
ldi symb2,5
rjmp loop_100
plus_hunderte:
inc symb1
clr symb2
clr tmp2
rjmp loop_100
nicht_hunderte:
clr tmp2
loop_10:
cpi XL,10
brlo nicht_zehn
subi XL,10
inc tmp2
cpi tmp2,2
brne loop_10
inc symb2
clr tmp2
nicht_zehn:
ldi YL,low(buf)
ldi YH,high(buf)
add YL,symb1
adc YH,tmp2
ld numb1,Y
clr tmp2
ldi YL,low(buf)
ldi YH,high(buf)
add YL,symb2
adc YH,tmp2
ld numb2,Y
sbi ADCSR,ADSC
reti

TIM0_OVF:
inc count1
ldi tmp,0x01
cp count1,tmp
breq first_led
mov tmp,numb2
sbr tmp,0
out PORTC,tmp
clr count1
reti
first_led:
out PORTC,numb1
reti

SPI_STC:
reti
UART_DRE:
reti
UART_TXC:
reti
UART_RXC:

reti


ADC_Comp:
in XL,ADCL
in XH,ADCH
reti

EE_RDY:
reti

ANA_COMP:
reti






Вывод: в ходе выполнения данной лабораторной работы была разоаботана программа, которая измеряет напряжение в диапазоне от 0 до 5 В. При этом опорное напряжение состовляет 5 В. Полученное значение напряжение выдается на семисегментный индикатор.


Скачать файл (60 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации