-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Port A als GND nutzen? PIC16F627

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    12.12.2009
    Beiträge
    24

    Port A als GND nutzen? PIC16F627

    Anzeige

    Hi

    Ich baue gerade eine 5x5 LED Matrix mit meinem PIC16F627.
    Ich hab vorher nur mit dem ATtiny13 und dem ATmega8 gearbeitet.
    Dort konnte ich mit sbi und cbi die auf GND oder vcc stellen. Aber bei MPLAB zeigt er bei dem programm die befehle in rot an, also als variaben.

    Wie kann ich den port a auf GND schalten?

    danke für alle antworten!!

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    32
    Beiträge
    731
    Einfach auf Low setzen, oder täusch ich mich?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    12.12.2009
    Beiträge
    24
    denk ich eigentlich auch, aber ist low nicht = aus? also gar nichts?

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    32
    Beiträge
    731
    Garnichts, gibts nicht!
    Low ist im idealfall 0Volt, also GND.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    12.12.2009
    Beiträge
    24
    ok danke! Ich werd es gleich ausprobieren.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    12.12.2009
    Beiträge
    24
    noch eine frage: Kann ich den pic ohne quarz nutzen? und wie genau kann ich ca eine sekunde den pic pausieren damit er danach eine neue LED anmacht?

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    32
    Beiträge
    731
    Timer:
    http://www.sprut.de/electronic/pic/g...imer/timer.htm

    Du musst mal gucken ob der nen internen Oszilator hat, ich benutze selber keine Pics

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    12.12.2009
    Beiträge
    24
    er hat nen kreuz bei timer0-2.

    Ich hab hier noch den code von meinem k8048:

    Kann ich den ohne quarz nutzen?


    ; *********************************************
    ; * Example of a delay routine *
    ; *********************************************

    DELAY_ROUTINE MOVLW D'255' ;54 Generate approx 10mS delay at 4Mhz CLK
    MOVWF TIMER2
    DEL_LOOP1 MOVLW D'255' ;60
    MOVWF TIMER1
    DEL_LOOP2 DECFSZ TIMER1,F
    GOTO DEL_LOOP2
    DECFSZ TIMER2,F
    GOTO DEL_LOOP1
    RETLW 0

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.07.2009
    Alter
    23
    Beiträge
    133
    Ja, kannst du ohne Quarz nutzen.

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    12.12.2009
    Beiträge
    24
    Hi, bei mir tut sich irgendwie garnichts.

    Hiere mein code:
    Code:
    W                            EQU     H'0000'
    F                            EQU     H'0001'
    
    ;----- Register Files------------------------------------------------------
    
    INDF                         EQU     H'0000'
    TMR0                         EQU     H'0001'
    PCL                          EQU     H'0002'
    STATUS                       EQU     H'0003'
    FSR                          EQU     H'0004'
    PORTA                        EQU     H'0005'
    PORTB                        EQU     H'0006'
    
    INTCON                       EQU     H'000B'
    OPTION_REG                   EQU     H'0081'
    TRISA                        EQU     H'0085'
    TRISB                        EQU     H'0086'
    CMCON                        EQU     H'001F'
    
    ;----- STATUS Bits --------------------------------------------------------
    IRP                          EQU     H'0007'
    RP1                          EQU     H'0006'
    RP0                          EQU     H'0005'
    NOT_TO                       EQU     H'0004'
    NOT_PD                       EQU     H'0003'
    Z                            EQU     H'0002'
    DC                           EQU     H'0001'
    C                            EQU     H'0000'
    
    ;==========================================================================
    ;
    ;       RAM Definition
    ;
    ;==========================================================================
    
        __MAXRAM H'01FF'
        __BADRAM H'07'-H'09', H'0D', H'13'-H'14', H'1B'-H'1E'
        __BADRAM H'87'-H'89', H'8D', H'8F'-H'91', H'93'-H'97', H'9E'
        __BADRAM H'105', H'107'-H'109', H'10C'-H'11F', H'150'-H'16F'
        __BADRAM H'185', H'187'-H'189', H'18C'-H'1EF'
    
    ;==========================================================================
    ;
    ;       Configuration Bits
    ;
    ;==========================================================================
    
    _BODEN_ON                    EQU     H'3FFF'
    _BODEN_OFF                   EQU     H'3FBF'
    _CP_ALL                      EQU     H'03FF'
    _CP_75                       EQU     H'17FF'
    _CP_50                       EQU     H'2BFF'
    _CP_OFF                      EQU     H'3FFF'
    _DATA_CP_ON                  EQU     H'3EFF'
    _DATA_CP_OFF                 EQU     H'3FFF'
    _PWRTE_OFF                   EQU     H'3FFF'
    _PWRTE_ON                    EQU     H'3FF7'
    _WDT_ON                      EQU     H'3FFF'
    _WDT_OFF                     EQU     H'3FFB'
    _LVP_ON                      EQU     H'3FFF'
    _LVP_OFF                     EQU     H'3F7F'
    _MCLRE_ON                    EQU     H'3FFF'
    _MCLRE_OFF                   EQU     H'3FDF'
    _ER_OSC_CLKOUT               EQU     H'3FFF'
    _ER_OSC_NOCLKOUT             EQU     H'3FFE'
    _INTRC_OSC_CLKOUT            EQU     H'3FFD'
    _INTRC_OSC_NOCLKOUT          EQU     H'3FFC'
    _EXTCLK_OSC                  EQU     H'3FEF'
    _LP_OSC                      EQU     H'3FEC'
    _XT_OSC                      EQU     H'3FED'
    _HS_OSC                      EQU     H'3FEE'
    
    	__CONFIG        _BODEN_ON & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & 
    
    _LVP_OFF & _MCLRE_ON & _XT_OSC
    
    ;==========================================================================
    ;       Variable Definition
    ;==========================================================================
    TIMER1		EQU	H'20'		;Used in delay routine
    TIMER2		EQU	H'21'		; "	"	"	
    PATERN		EQU	H'22'		;Pattern data for effect's
    
    		ORG	0		;Reset vector address
    		GOTO	RESET		;goto RESET routine when boot.
    
    
    ;		*********************************************
    ;		*  Example of a delay routine               *
    ;		*********************************************
    
    DELAY_ROUTINE   MOVLW   D'255'         ;54 Generate approx 10mS delay at 4Mhz CLK
                    MOVWF   TIMER2
    DEL_LOOP1       MOVLW   D'255'	       ;60	
                    MOVWF   TIMER1
    DEL_LOOP2       DECFSZ  TIMER1,F
                    GOTO    DEL_LOOP2
                    DECFSZ  TIMER2,F
                    GOTO    DEL_LOOP1
    		RETLW   0
    
    
    ;	       **********************************
    ;              **  RESET :  main boot routine  **
    ;              **********************************
    
    RESET		MOVLW	B'00000111'	;Disable Comparator module's
    		MOVWF	CMCON
    		;
    		BSF	STATUS,RP0	;Switch to register bank 1
    					;Disable pull-ups
    					;INT on rising edge
    					;TMR0 to CLKOUT
    					;TMR0 Incr low2high trans.
    					;Prescaler assign to Timer0
    					;Prescaler rate is 1:256
    		MOVLW	B'11010111'	;Set PIC options (See datasheet).
    		MOVWF	OPTION_REG	;Write the OPTION register.
    		;
    		CLRF	INTCON		;Disable interrupts
    		MOVLW	B'00000000'
    		MOVWF	TRISB		
    					
    		MOVLW	B'00000000'	
    		MOVWF	TRISA
    		BCF	STATUS,RP0	;Switch Back to reg. Bank 0
    		CLRF	PORTB		
    		;
    
    EFFECT_1
    		MOVLW	B'11111101'	;Activate LD1 (RB0)
    		MOVWF	PORTB
    		MOVLW	B'00000010'	;all RA ports are inputs
    		MOVWF	PORTA
    		CALL	DELAY_ROUTINE
    		MOVLW	B'11111011'	;Activate LD2 (RB1)
    		MOVWF	PORTB
    		MOVLW	B'00000100'	;all RA ports are inputs
    		MOVWF	PORTA
    		CALL	DELAY_ROUTINE
    		MOVLW	B'11110111'	;Activate LD3 (RB2)
    		MOVWF	PORTB
    		MOVLW	B'00001000'	;all RA ports are inputs
    		MOVWF	PORTA
    		CALL	DELAY_ROUTINE
    		MOVLW	B'11101111'	;Activate LD4 (RB3)
    		MOVWF	PORTB
    		MOVLW	B'00010000'	;all RA ports are inputs
    		MOVWF	PORTA
    		CALL	DELAY_ROUTINE
    		MOVLW	B'11011111'	;Activate LD5 (RB4)
    		MOVWF	PORTB
    		MOVLW	B'10000000'	;all RA ports are inputs
    		MOVWF	PORTA
    		CALL	DELAY_ROUTINE
    		MOVLW	B'11001111'	;Activate LD6 (RB5)
    		MOVWF	PORTB
    		MOVLW	B'10010000'	;all RA ports are inputs
    		MOVWF	PORTA
    		CALL	DELAY_ROUTINE
    		MOVLW	B'11000111'	;Activate LD6 (RB5)
    		MOVWF	PORTB
    		MOVLW	B'10011000'	;all RA ports are inputs
    		MOVWF	PORTA
    		CALL	DELAY_ROUTINE
    		MOVLW	B'11000011'	;Activate LD6 (RB5)
    		MOVWF	PORTB
    		MOVLW	B'10011100'	;all RA ports are inputs
    		MOVWF	PORTA
    		CALL	DELAY_ROUTINE
    		MOVLW	B'11000001'	;Activate LD6 (RB5)
    		MOVWF	PORTB
    		MOVLW	B'10011110'	;all RA ports are inputs
    		MOVWF	PORTA
    		CALL	DELAY_ROUTINE
    		GOTO	EFFECT_1
    		END
    Wisst ihr ob es am code liegt? Wenn nicht dann muss ich nochmal bei meinem display schauen.

    Das VSS an - und VDD an + kommt ist richtig oder?

    EDIT: Die ganzen beschreibungen im code hab ich nicht entfernt. Die sind alle ungültig.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •