ADC a RS232 kód porblem?

A

asic1984

Guest
nazdar

Chcem, aby kód, ktorý ADC čítať a posielať hodnôt cez RS232

Snažil som sa urobiť nasledujúci kód a simulovať v Proteus ale nič práce

prevrátiť na kanál som odosielanie prvý znak, ktorý zastupuje kanála potom dolnú a potom na vysokej hodnoty z ADC

želanie, aby bol niektorý mi môže pomôcť nájsť problém

Kód:procesor 16f877

# Include "p16f877.inc"org 0x00

goto start

org 0x04org 0x06začať

BSF STATUS, RP0; BANK 1

MOVLW 0x00

MOVWF TRISB; PRÍSTAVY BC VÝSTUP (VÝSTUP NA DIGITÁLNE VALUE)

MOVWF smietke; Nakonfigurujte analógové piny / referenčné napätie a digitálne I / O (ADCON1)MOVLW B'10000000 '; VREF IS VDD a VSS A VŠETKY SÚ PINS ANALOG

MOVWF ADCON1; PRÁVO odôvodnenýchcall Irs232;------------------------------------------------- ------------

slučky

;------------------------------------------------- ------------; Vyberte A / D vstup kanála (ADCON0)

; Vyberte A / D konverzie hodiny (ADCON0)

Obráťte sa na A / D modul (ADCON0)

BCF STATUS, RP0; BÁNK 0

MOVLW B'10000001 '

MOVWF ADCON0; Štart konverzie: Set GO Done bit (ADCON0)

BSF ADCON0, 2

CALL OMEŠKANIA; Polling pre GO Done bit byť vymazaný (s narušili povolené);

WAIT1 BTFSC ADCON0, 2

Choď WAIT1

; Čítať hodnotu konverzieBCF STATUS, 5

MOVLW 84; POSLAŤ T

MOVWF TXREG

LOOP1 BTFSS PIR1, 4

Choď LOOP1

BSF STATUS, 5

MOVFW ADRESL

BCF STATUS, 5

MOVWF TXREG

LOOP2 BTFSS PIR1, 4

Choď LOOP2

MOVFW ADRESH

MOVWF TXREG

LOOP3 BTFSS PIR1, 4

Choď LOOP3

;------------------------------------------------- -------------; Vyberte A / D vstup kanála (ADCON0)

; Vyberte A / D konverzie hodiny (ADCON0)

Obráťte sa na A / D modul (ADCON0)

; BCF STATUS, RP0; BÁNK 0

MOVLW B'10001001 '

MOVWF ADCON0; Štart konverzie: Set GO Done bit (ADCON0)

BSF ADCON0, 2; Polling pre GO Done bit byť vymazaný (s narušili povolené);

WAIT2 BTFSC ADCON0, 2

Choď WAIT2

; Čítať hodnotu konverzieBCF STATUS, 5

MOVLW 69; POSLAŤ E

MOVWF TXREG

LOOP4 BTFSS PIR1, 4

Choď LOOP4

BSF STATUS, 5

MOVFW ADRESL

BCF STATUS, 5

MOVWF TXREG

LOOP5 BTFSS PIR1, 4

Choď LOOP5

MOVFW ADRESH

MOVWF TXREG

LOOP6 BTFSS PIR1, 4

Choď LOOP6

;------------------------------------------------- -------------; Vyberte A / D vstup kanála (ADCON0)

; Vyberte A / D konverzie hodiny (ADCON0)

Obráťte sa na A / D modul (ADCON0)

; BCF STATUS, RP0; BÁNK 0

MOVLW B'10010001 '

MOVWF ADCON0; Štart konverzie: Set GO Done bit (ADCON0)

BSF ADCON0, 2; Polling pre GO Done bit byť vymazaný (s narušili povolené);

WAIT3 BTFSC ADCON0, 2

Choď WAIT3

; Čítať hodnotu konverzieBCF STATUS, 5

MOVLW 65; Odoslať

MOVWF TXREG

LOOP7 BTFSS PIR1, 4

Choď LOOP7

BSF STATUS, 5

MOVFW ADRESL

BCF STATUS, 5

MOVWF TXREG

LOOP8 BTFSS PIR1, 4

Choď LOOP8

MOVFW ADRESH

MOVWF TXREG

LOOP9 BTFSS PIR1, 4

Choď LOOP9;------------------------------------------------- -------; Vyberte A / D vstup kanála (ADCON0)

; Vyberte A / D konverzie hodiny (ADCON0)

Obráťte sa na A / D modul (ADCON0)

; BCF STATUS, RP0; BÁNK 0

MOVLW B'10011001 '

MOVWF ADCON0; Štart konverzie: Set GO Done bit (ADCON0)

BSF ADCON0, 2; Polling pre GO Done bit byť vymazaný (s narušili povolené);

WAIT4 BTFSC ADCON0, 2

Choď WAIT4

; Čítať hodnotu konverzieBCF STATUS, 5

MOVLW 82; POSLAŤ R

MOVWF TXREG

LOOP10 BTFSS PIR1, 4

Choď LOOP10

BSF STATUS, 5

MOVFW ADRESL

BCF STATUS, 5

MOVWF TXREG

LOOP11 BTFSS PIR1, 4

Choď LOOP11

MOVFW ADRESH

MOVWF TXREG

LOOP12 BTFSS PIR1, 4

Choď LOOP12

;------------------------------------------------- -------; Goto slučky

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

Irs232

; Inicializova SPBRG sa zaregistrovať pre príslušné

, Prenosové rýchlosti.
Ak vysokorýchlostné prenosová rýchlosť je žiaduce,

; Nastaviť bit BRGH

BSF STATUS, 5; BANK 1

MOVLW 42

MOVWF SPBRG, prenosová rýchlosť 28,8 K

BSF TXSTA, 2; PRE VYSOKÚ rýchlosť
; Povoľte asynchronní sériový port a zúčtovanie

; Bit SYNC a nastavenie bitovej ŠPENÁT.BCF TXSTA, 4

BCF STATUS, 5; BÁNK 0

BSF RCSTA, 7; ENABLE SERIAL PORT; Povoliť prenos nastavením bitu TXEN,

, Ktorá bude tiež nastaviť bit TXIF.BSF STATUS, 5

BSF TXSTA, 5návrat;------------------------------------------------- -----------END
 
môže niekto pomoct ten chlap?Chcel by som vedieť sám.

 
Moja poradiť so:1) simulovať A / D kódom a RS232 sám potom, keď r ako úspešne pracujú zlúčiť obe kódy spolu
2) prechod na vysokú úroveň jazyka (základné, c, ... atď), pretože ur stratíš čas

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />Dúfam, že aj to pomohlo u

 
Nazdar

V Proteus príklady tu je príklad založený na Obr 16f877 ktorá používa ADC a dispalyes O / P na 7 segment.
Môžete začať od tohto bodu potom pridajte RS232 kód

Salam
Hossam AlzomorPridané po 4 hodiny 42 minút:Nazdar

Priložené nájdete zhromaždenia zdrojom když jsem ho modifide práce na RS232
Len som použil Most segneficant 8 bitov z ADC

Salam
Hossam Alzomor

 

Welcome to EDABoard.com

Sponsor

Back
Top