Элементы систем электропривода (микроконтроллеры). Доманов А.В. - 33 стр.

UptoLike

Составители: 

Рубрика: 

32
2. Работа с АЦП и прерываниями
Текст программы
.include "8535def.inc" ; подключение файла описания МК
.device AT90S8535 ; задание конкретного МК
.def temp = r16 ; задание временной переменной temp
.def temp2 = r17 ; задание временной переменной temp2
.cseg ; установка адреса памяти программ
rjmp RESET ; переход на метку RESET
.org ADCCaddr rjmp ADCC ; описание прерывания: при окончании
; преобразования АЦП перейти на метку
; ADCC
ADCC:
in temp, ADCL ; считать значение младшего байта АЦП
; в temp
in temp2, ADCH ; считать значение старшего байта АЦП
; в temp2
out PORTB ,temp ; вывести в порт В значение temp
reti ; возврат из прерывания
RESET:
cli ; глобальный запрет прерываний
ldi temp,low(RAMEND); загрузка в temp младшего байта адреса
; последней ячейки оперативной памяти МК
out SPL,temp ; определение указателя стека
; (младший байт)
ldi temp,high(RAMEND); загрузка в temp старшего байта адреса
; последней ячейки оперативной памяти МК
out SPH,temp ; определение указателя стека
; (старший байт)
ldi temp ,$A8 ; загрузка в temp числа $A8
out ADCSR ,temp ; загрузка в ADCSR значения temp
; $A8 = 10101000
ldi temp ,$FF ; загрузка в temp числа $FF
out DDRB ,temp ; запись в регистр направления порта B
; значения temp ($FF – порт вывода)
out PORTB ,temp ; запись в порт B значения temp
; (светодиоды погашены)
ldi temp ,$00 ; загрузка в temp числа $00
out DDRA ,temp ; запись в регистр направления порта A
; значения temp ($FF – порт ввода)