ADC и RS232 код porblem?

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връщане;------------------------------------------------- -----------КРАЙ
 
мога кой да помогне на този човек?Бих искал да знам това сам.

 
Моят посъветва е:1) симулира A / D код самостоятелно и RS232 само тогава, когато те R, така успешно работи слее двете заедно кодове
2) премине към езика на високо ниво (основно, C, ... и т.н.), защото Ур губите времето

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />Надявам се, съм помогна U

 
Здрасти

В Proteus примери има един пример на базата на Снимка 16f877, която използва ADC и dispalyes на O / P на 7 сегмент.
Можете да започнете от тази гледна точка след това добавете кода RS232

Салам
Hossam AlzomorAdded след 4 часа 42 минути:Здрасти

Приложено можете да намерите на източника събрание, след като modifide да работи на RS232
Аз просто използва най segneficant 8 бита на ADC

Салам
Hossam Alzomor

 

Welcome to EDABoard.com

Sponsor

Back
Top