[an error occurred while processing this directive] [an error occurred while processing this directive]
АЦП в 16F874: помогите, пожалуйста!
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Виктор 05 апреля 2002 г. 21:31

Вот кусок программы:

В регистрах RAS_L и RAS_H при подаче на вход АЦП +5В должно быть 0х3FF
А у меня там совсем не то...
Может я чего не так сделал?

;************ Инициализация портов после включения питания ********************
INIT_PORTS
BANK1
MOVLW B'10000010'
MOVWF ADCON1 ; Порт А - аналоговый
MOVLW B'11111111'
MOVWF TRIS_A ; Порт А - все входы

CLRF TRIS_B ; RB - все выходы
MOVLW B'10000001' ; Делитель 1:4 перед TMR0 и
MOVWF OPTION_REG ; выключение подтягивающих резисторов
MOVLW B'00000001' ; Разрешаем прерывание по TMR1
MOVWF PIE1

BCF TRIS_E, PSPMODE ; Порт D как I/O

MOVLW B'00001111'
MOVWF TRIS_D ; RD -
BANK0

CLRF PORT_B ; Очистка порта В

MOVLW B'00000101' ; Делитель 1:1 перед TMR1, int clock, enable TMR1
MOVWF T1CON
MOVLW B'11000000' ; Рарешаем прерывание периферии
MOVWF INTCON
;
MOVLW D'5' ; Начнем отсчет времени перед обновлением ЖКИ
MOVWF LCD_REF ; -/-
MOVLW D'4' ; Начнем отсчет времени перед опросом клавиатуры
MOVWF KEY_REF ; Период опроса клавы 19мс

;
;----------------------------------------

STRELKA

BANK0 ; Select Bank 0
MOVLW B'10000001' ; RC Clock, A/D is on, Channel 0 is selected
MOVWF ADCON0 ;

;
; Ensure that the required sampling time for the selected input channel has elapsed.
; Then the conversion may be started.
;
BSF ADCON0, GO ; Start A/D Conversion
NOP
NOP
NOP
NOP
AD_1 BTFSC ADCON0, GO
GOTO AD_1
NOP
NOP
NOP
NOP
MOVF ADRESL, W
MOVWF RAS_L
MOVF ADRESH, W
MOVWF RAS_H
BCF PIR1, 6

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru