A
asic1984
Guest
здрасти
Искам да направя код, който чете ADC и изпращане на ценности чрез RS232
Аз се опитах да направя следващата код и да го симулира в Proteus, но нищо не работи
Аз обръщам за изпращане на първи канал съм знак, който представлява канал след това по-ниски и след това на високи стойности на ADC
желание, че някой може да ми помогне да намерите проблема
Код:процесор 16f877
# включват "p16f877.inc"Org 0x00
Отидох в началото
Org 0x04Org 0x06започвам
BSF СТАТУС, RP0; БАНКА 1
MOVLW 0x00
MOVWF TRISB; пристанищата пр. Хр ИЗХОД (продукция ЦИФРОВАТА стойност)
MOVWF TRISC; Конфигуриране на аналогови пина / напрежение референтните и Digital I / O (ADCON1)MOVLW B'10000000 '; VREF СЕ VDD И VSS И ВСИЧКИ PINS са аналогови
MOVWF ADCON1, отдясно оправданиповикване Irs232;------------------------------------------------- ------------
линия
;------------------------------------------------- ------------; Изберете A / D вход канал (ADCON0)
; Изберете A / D конверсия часовник (ADCON0)
; Включете А / модул Г (ADCON0)
ФБК СТАТУС, RP0; БАНКА 0
MOVLW B'10000001 "
MOVWF ADCON0; Старт преобразуване: Set Go / Съставено късче (ADCON0)
BSF ADCON0, 2
ПОКАНА ЗАБАВЯНЕ; Polling за ГО / Съставено малко да бъде изчистена (с поддръжка за прекъсва);
WAIT1 BTFSC ADCON0, 2
GOTO WAIT1
; ПРОЧЕТЕТЕ СТОЙНОСТ НА ПРЕОБРАЗУВАНЕФБК СТАТУС, 5
MOVLW 84; ИЗПРАТИ Т
MOVWF TXREG
LOOP1 BTFSS PIR1, 4
GOTO LOOP1
BSF STATUS, 5
MOVFW ADRESL
ФБК СТАТУС, 5
MOVWF TXREG
LOOP2 BTFSS PIR1, 4
GOTO LOOP2
MOVFW ADRESH
MOVWF TXREG
LOOP3 BTFSS PIR1, 4
GOTO LOOP3
;------------------------------------------------- -------------; Изберете A / D вход канал (ADCON0)
; Изберете A / D конверсия часовник (ADCON0)
; Включете А / модул Г (ADCON0)
; ФБК СТАТУС, RP0; БАНКА 0
MOVLW B'10001001 "
MOVWF ADCON0; Старт преобразуване: Set Go / Съставено късче (ADCON0)
BSF ADCON0, 2; Polling за ГО / Съставено малко да бъде изчистена (с поддръжка за прекъсва);
WAIT2 BTFSC ADCON0, 2
GOTO WAIT2
; ПРОЧЕТЕТЕ СТОЙНОСТ НА ПРЕОБРАЗУВАНЕФБК СТАТУС, 5
MOVLW 69; ИЗПРАТИ
MOVWF TXREG
LOOP4 BTFSS PIR1, 4
GOTO LOOP4
BSF STATUS, 5
MOVFW ADRESL
ФБК СТАТУС, 5
MOVWF TXREG
LOOP5 BTFSS PIR1, 4
GOTO LOOP5
MOVFW ADRESH
MOVWF TXREG
LOOP6 BTFSS PIR1, 4
GOTO LOOP6
;------------------------------------------------- -------------; Изберете A / D вход канал (ADCON0)
; Изберете A / D конверсия часовник (ADCON0)
; Включете А / модул Г (ADCON0)
; ФБК СТАТУС, RP0; БАНКА 0
MOVLW B'10010001 "
MOVWF ADCON0; Старт преобразуване: Set Go / Съставено късче (ADCON0)
BSF ADCON0, 2; Polling за ГО / Съставено малко да бъде изчистена (с поддръжка за прекъсва);
WAIT3 BTFSC ADCON0, 2
GOTO WAIT3
; ПРОЧЕТЕТЕ СТОЙНОСТ НА ПРЕОБРАЗУВАНЕФБК СТАТУС, 5
MOVLW 65; изпращането на
MOVWF TXREG
LOOP7 BTFSS PIR1, 4
GOTO LOOP7
BSF STATUS, 5
MOVFW ADRESL
ФБК СТАТУС, 5
MOVWF TXREG
LOOP8 BTFSS PIR1, 4
GOTO LOOP8
MOVFW ADRESH
MOVWF TXREG
LOOP9 BTFSS PIR1, 4
GOTO LOOP9;------------------------------------------------- -------; Изберете A / D вход канал (ADCON0)
; Изберете A / D конверсия часовник (ADCON0)
; Включете А / модул Г (ADCON0)
; ФБК СТАТУС, RP0; БАНКА 0
MOVLW B'10011001 "
MOVWF ADCON0; Старт преобразуване: Set Go / Съставено късче (ADCON0)
BSF ADCON0, 2; Polling за ГО / Съставено малко да бъде изчистена (с поддръжка за прекъсва);
WAIT4 BTFSC ADCON0, 2
GOTO WAIT4
; ПРОЧЕТЕТЕ СТОЙНОСТ НА ПРЕОБРАЗУВАНЕФБК СТАТУС, 5
MOVLW 82; ИЗПРАТИ R
MOVWF TXREG
LOOP10 BTFSS PIR1, 4
GOTO LOOP10
BSF STATUS, 5
MOVFW ADRESL
ФБК СТАТУС, 5
MOVWF TXREG
LOOP11 BTFSS PIR1, 4
GOTO LOOP11
MOVFW ADRESH
MOVWF TXREG
LOOP12 BTFSS PIR1, 4
GOTO LOOP12
;------------------------------------------------- -------; Гото линия
;------------------------------------------------- ------------
Irs232
; Инициализира SPBRG регистър за съответния
; СКорост.
Ако висока скорост сКорост е желано,
Настройка на BRGH малко
BSF STATUS, 5; БАНКА 1
MOVLW 42
MOVWF SPBRG; сКорост 28,8 К
BSF TXSTA, 2; ЗА ВИСОКИТЕ сКорост
; Разрешаване на асинхронен сериен порт от клирингови
; малко SYNC и определяне на Spen малко.ФБК TXSTA, 4
ФБК СТАТУС, 5; БАНКА 0
BSF RCSTA, 7; даде възможност Serial Port; Позволят предаването чрез създаването малко TXEN,
; които също така ще TXIF малко.BSF STATUS, 5
BSF TXSTA, 5връщане;------------------------------------------------- -----------КРАЙ
Искам да направя код, който чете ADC и изпращане на ценности чрез RS232
Аз се опитах да направя следващата код и да го симулира в Proteus, но нищо не работи
Аз обръщам за изпращане на първи канал съм знак, който представлява канал след това по-ниски и след това на високи стойности на ADC
желание, че някой може да ми помогне да намерите проблема
Код:процесор 16f877
# включват "p16f877.inc"Org 0x00
Отидох в началото
Org 0x04Org 0x06започвам
BSF СТАТУС, RP0; БАНКА 1
MOVLW 0x00
MOVWF TRISB; пристанищата пр. Хр ИЗХОД (продукция ЦИФРОВАТА стойност)
MOVWF TRISC; Конфигуриране на аналогови пина / напрежение референтните и Digital I / O (ADCON1)MOVLW B'10000000 '; VREF СЕ VDD И VSS И ВСИЧКИ PINS са аналогови
MOVWF ADCON1, отдясно оправданиповикване Irs232;------------------------------------------------- ------------
линия
;------------------------------------------------- ------------; Изберете A / D вход канал (ADCON0)
; Изберете A / D конверсия часовник (ADCON0)
; Включете А / модул Г (ADCON0)
ФБК СТАТУС, RP0; БАНКА 0
MOVLW B'10000001 "
MOVWF ADCON0; Старт преобразуване: Set Go / Съставено късче (ADCON0)
BSF ADCON0, 2
ПОКАНА ЗАБАВЯНЕ; Polling за ГО / Съставено малко да бъде изчистена (с поддръжка за прекъсва);
WAIT1 BTFSC ADCON0, 2
GOTO WAIT1
; ПРОЧЕТЕТЕ СТОЙНОСТ НА ПРЕОБРАЗУВАНЕФБК СТАТУС, 5
MOVLW 84; ИЗПРАТИ Т
MOVWF TXREG
LOOP1 BTFSS PIR1, 4
GOTO LOOP1
BSF STATUS, 5
MOVFW ADRESL
ФБК СТАТУС, 5
MOVWF TXREG
LOOP2 BTFSS PIR1, 4
GOTO LOOP2
MOVFW ADRESH
MOVWF TXREG
LOOP3 BTFSS PIR1, 4
GOTO LOOP3
;------------------------------------------------- -------------; Изберете A / D вход канал (ADCON0)
; Изберете A / D конверсия часовник (ADCON0)
; Включете А / модул Г (ADCON0)
; ФБК СТАТУС, RP0; БАНКА 0
MOVLW B'10001001 "
MOVWF ADCON0; Старт преобразуване: Set Go / Съставено късче (ADCON0)
BSF ADCON0, 2; Polling за ГО / Съставено малко да бъде изчистена (с поддръжка за прекъсва);
WAIT2 BTFSC ADCON0, 2
GOTO WAIT2
; ПРОЧЕТЕТЕ СТОЙНОСТ НА ПРЕОБРАЗУВАНЕФБК СТАТУС, 5
MOVLW 69; ИЗПРАТИ
MOVWF TXREG
LOOP4 BTFSS PIR1, 4
GOTO LOOP4
BSF STATUS, 5
MOVFW ADRESL
ФБК СТАТУС, 5
MOVWF TXREG
LOOP5 BTFSS PIR1, 4
GOTO LOOP5
MOVFW ADRESH
MOVWF TXREG
LOOP6 BTFSS PIR1, 4
GOTO LOOP6
;------------------------------------------------- -------------; Изберете A / D вход канал (ADCON0)
; Изберете A / D конверсия часовник (ADCON0)
; Включете А / модул Г (ADCON0)
; ФБК СТАТУС, RP0; БАНКА 0
MOVLW B'10010001 "
MOVWF ADCON0; Старт преобразуване: Set Go / Съставено късче (ADCON0)
BSF ADCON0, 2; Polling за ГО / Съставено малко да бъде изчистена (с поддръжка за прекъсва);
WAIT3 BTFSC ADCON0, 2
GOTO WAIT3
; ПРОЧЕТЕТЕ СТОЙНОСТ НА ПРЕОБРАЗУВАНЕФБК СТАТУС, 5
MOVLW 65; изпращането на
MOVWF TXREG
LOOP7 BTFSS PIR1, 4
GOTO LOOP7
BSF STATUS, 5
MOVFW ADRESL
ФБК СТАТУС, 5
MOVWF TXREG
LOOP8 BTFSS PIR1, 4
GOTO LOOP8
MOVFW ADRESH
MOVWF TXREG
LOOP9 BTFSS PIR1, 4
GOTO LOOP9;------------------------------------------------- -------; Изберете A / D вход канал (ADCON0)
; Изберете A / D конверсия часовник (ADCON0)
; Включете А / модул Г (ADCON0)
; ФБК СТАТУС, RP0; БАНКА 0
MOVLW B'10011001 "
MOVWF ADCON0; Старт преобразуване: Set Go / Съставено късче (ADCON0)
BSF ADCON0, 2; Polling за ГО / Съставено малко да бъде изчистена (с поддръжка за прекъсва);
WAIT4 BTFSC ADCON0, 2
GOTO WAIT4
; ПРОЧЕТЕТЕ СТОЙНОСТ НА ПРЕОБРАЗУВАНЕФБК СТАТУС, 5
MOVLW 82; ИЗПРАТИ R
MOVWF TXREG
LOOP10 BTFSS PIR1, 4
GOTO LOOP10
BSF STATUS, 5
MOVFW ADRESL
ФБК СТАТУС, 5
MOVWF TXREG
LOOP11 BTFSS PIR1, 4
GOTO LOOP11
MOVFW ADRESH
MOVWF TXREG
LOOP12 BTFSS PIR1, 4
GOTO LOOP12
;------------------------------------------------- -------; Гото линия
;------------------------------------------------- ------------
Irs232
; Инициализира SPBRG регистър за съответния
; СКорост.
Ако висока скорост сКорост е желано,
Настройка на BRGH малко
BSF STATUS, 5; БАНКА 1
MOVLW 42
MOVWF SPBRG; сКорост 28,8 К
BSF TXSTA, 2; ЗА ВИСОКИТЕ сКорост
; Разрешаване на асинхронен сериен порт от клирингови
; малко SYNC и определяне на Spen малко.ФБК TXSTA, 4
ФБК СТАТУС, 5; БАНКА 0
BSF RCSTA, 7; даде възможност Serial Port; Позволят предаването чрез създаването малко TXEN,
; които също така ще TXIF малко.BSF STATUS, 5
BSF TXSTA, 5връщане;------------------------------------------------- -----------КРАЙ