V
viile
Guest
Voisiko joku ehdottaa minulle, miten tämä ohjelma?
Tämä ohjelma lukee analoginen panosta potentiometri sitten näytä arvo PortC.Kun kaikki vähän PORTC on asetettu niin, että ohjelma kirjoittaa 1 RE2.Jos RC7 = 1 silloin ohjelma kirjoittaa 1 RE1, Jos RC7 = 0 silloin ohjelma kirjoittaa 1 RE0 ja selkeä RE1
Tässä on lähdekoodi
Quote:
LUETTELO P = 16F877, W =- 302
INCLUDE P16F877.INC
__CONFIG 0x3D32; XTAL 20 MHz.HS tuottoja
include "p16f877.inc"
ADCon0 EQU H'001F "
ADCon1 EQU H'009F "
; Aloita reset vektori
org 0x000
goto Käynnistä
org 0x004
Keskeytä
retfie
Alku
MOVLW B'00000000 "; PORTE = tuotos
MOVWF TRISE
BSF STATUS, RP0; pankki 1
BCF STATUS, rp1
movlw H'00 "
movwf TRISC; portc [7-0] outputs
clrf ADCon1; vasemmalle, kaikki panokset a / d
BCF STATUS, RP0; pankki 0
movlw B'01000001 "; Fosc / 8 [7-6], A / D ch0 [5-3], a / d on [0]
movwf ADCon0
Pää
puhelun ad_portc
puhelun Loop1
puhelun Loop2
goto Mainad_portc
; odottaa acquision aikaa (20uS)
(ei-kriittinen tässä testissä)
BSF ADCon0, GO; Käynnistä A / D muuntaminen
Odota
btfsc ADCon0, GO; Odota siirtymässä täydellinen
goto Odota
movf ADRESH, W; kirjoittaa A / D tulos PORTC
movwf PORTC; LEDit
palata
Loop1 movlw 0x31
xorwf PORTC, w
btfsc STATUS, Z
BSF PORTE, 3
BCF PORTE, 3
goto Loop1
Loop2 btfss PORTC, 7
BSF PORTE, 1
BSF PORTE, 2
btfss PORTC, 7
BCF PORTE, 2
BCF PORTE, 1
goto Loop2
loppu
Tämä ohjelma lukee analoginen panosta potentiometri sitten näytä arvo PortC.Kun kaikki vähän PORTC on asetettu niin, että ohjelma kirjoittaa 1 RE2.Jos RC7 = 1 silloin ohjelma kirjoittaa 1 RE1, Jos RC7 = 0 silloin ohjelma kirjoittaa 1 RE0 ja selkeä RE1
Tässä on lähdekoodi
Quote:
LUETTELO P = 16F877, W =- 302
INCLUDE P16F877.INC
__CONFIG 0x3D32; XTAL 20 MHz.HS tuottoja
include "p16f877.inc"
ADCon0 EQU H'001F "
ADCon1 EQU H'009F "
; Aloita reset vektori
org 0x000
goto Käynnistä
org 0x004
Keskeytä
retfie
Alku
MOVLW B'00000000 "; PORTE = tuotos
MOVWF TRISE
BSF STATUS, RP0; pankki 1
BCF STATUS, rp1
movlw H'00 "
movwf TRISC; portc [7-0] outputs
clrf ADCon1; vasemmalle, kaikki panokset a / d
BCF STATUS, RP0; pankki 0
movlw B'01000001 "; Fosc / 8 [7-6], A / D ch0 [5-3], a / d on [0]
movwf ADCon0
Pää
puhelun ad_portc
puhelun Loop1
puhelun Loop2
goto Mainad_portc
; odottaa acquision aikaa (20uS)
(ei-kriittinen tässä testissä)
BSF ADCon0, GO; Käynnistä A / D muuntaminen
Odota
btfsc ADCon0, GO; Odota siirtymässä täydellinen
goto Odota
movf ADRESH, W; kirjoittaa A / D tulos PORTC
movwf PORTC; LEDit
palata
Loop1 movlw 0x31
xorwf PORTC, w
btfsc STATUS, Z
BSF PORTE, 3
BCF PORTE, 3
goto Loop1
Loop2 btfss PORTC, 7
BSF PORTE, 1
BSF PORTE, 2
btfss PORTC, 7
BCF PORTE, 2
BCF PORTE, 1
goto Loop2
loppu