16F628

Alle vragen m.b.t digitale schakelingen m.b.v. losse i.c's
en oplossingen m.b.v. PIC processoren.
Plaats reactie
JARI NETWORKS
Berichten: 1697
Lid geworden op: zo 23 apr 2006, 19:01
Locatie: Hedalen. .. Noorwegen .. .. .. .. .. .. ...

Bericht door JARI NETWORKS »

is het mogelijk om een letter op n display te zetten, in pbp, door middel van n ascii code?

bv : 65 voor de letter A



heb t gevonden

toch bedankt
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

Symbol S1 = PORTB.0 ;Poort B.0 heeft nu de naam S1
Symbol S2 = PORTB.1 ;Poort B.1 heeft nu de naam S2
Symbol S3 = PORTB.2 ;Poort B.2 heeft nu de naam S3
Symbol S4 = PORTB.3 ;Poort B.3 heeft nu de naam S4
Symbol S5 = PORTB.4 ;Poort B.4 heeft nu de naam S5
Symbol S6 = PORTB.5 ;Poort B.5 heeft nu de naam S6
Symbol S7 = PORTB.6 ;Poort B.6 heeft nu de naam S7
Symbol S8 = PORTB.7 ;Poort B.8 heeft nu de naam S8

Symbol LED1 = PORTC.0
Symbol LED2 = PORTC.1
Symbol LED3 = PORTC.2
Symbol LED4 = PORTC.3
Symbol LED5 = PORTD.0
Symbol LED6 = PORTD.1
Symbol LED7 = PORTD.2
Symbol LED8 = PORTD.3

Symbol OUT1 = PORTC.4
Symbol OUT2 = PORTC.5
Symbol OUT3 = PORTC.6
Symbol OUT4 = PORTC.7
Symbol OUT5 = PORTD.4
Symbol OUT6 = PORTD.5
Symbol OUT7 = PORTD.6
Symbol OUT8 = PORTD.7

PORTB = %00000000 ;Alle niveaus van PORTB laag
PORTC = %00000000 ;Alle niveaus van PORTC laag
PORTD = %00000000 ;Alle niveaus van PORTD laag

TRISA = %00000000
TRISB = %11111111 ;Alle PORTB poorten omschakelen als INgang
TRISC = %00000000 ;Alle PORTC poorten omschakelen als uitgang
TRISD = %00000000 ;Alle PORTD poorten omschakelen als uitgang


als ik dit stukje programma bekijk, mag ik er toch van uit gaan dat :
alle poorten c en poorten d laag zijn?
of vergis ik me hier nu in
Gebruikersavatar
Stynus
Site Admin
Site Admin
Berichten: 5910
Lid geworden op: vr 16 mei 2003, 20:45
Locatie: Overpelt (België)
Contacteer:

Bericht door Stynus »

Je kan best eerst tris zetten en dan pas port. Wat er nu kan gebeuren is dat een pin nog als ingang kan staan en door zweven een 1 wordt. Vervolgens zet je tris en dan blijft het 1.
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

;-------------------------------------------------------------------------------
;**** Added by Fuse Configurator ****
; Use the Fuse Configurator plug-in to change these settings

Device = 16F877A

Config WDT_Off, PWRTE_ON, HS_OSC , LVP_off

;**** End of Fuse Configurator Settings ****
;-------------------------------------------------------------------------------

All_Digital TRUE ;Alle ingangen digitaal

Symbol S1 = PORTB.0
Symbol S2 = PORTB.1
Symbol S3 = PORTB.2
Symbol S4 = PORTB.3
Symbol S5 = PORTB.4
Symbol S6 = PORTB.5
Symbol S7 = PORTB.6
Symbol S8 = PORTB.7

Symbol LED1 = PORTC.0
Symbol LED2 = PORTC.1
Symbol LED3 = PORTC.2
Symbol LED4 = PORTC.3
Symbol LED5 = PORTD.0
Symbol LED6 = PORTD.1
Symbol LED7 = PORTD.2
Symbol LED8 = PORTD.3

Symbol OUT1 = PORTC.4
Symbol OUT2 = PORTC.5
Symbol OUT3 = PORTC.6
Symbol OUT4 = PORTC.7
Symbol OUT5 = PORTD.4
Symbol OUT6 = PORTD.5
Symbol OUT7 = PORTD.6
Symbol OUT8 = PORTD.7

While 1 = 1

If S1 = 1 Then
Toggle LED1
EndIf
If LED1 = 1 Then
High OUT1
EndIf
DelayMS 500

If S2 = 1 Then
Toggle LED2
EndIf
If LED2 = 1 Then
High OUT2
EndIf
DelayMS 500


If S3 = 1 Then
Toggle LED3
EndIf
If LED3 = 1 Then
High OUT3
EndIf
DelayMS 500


If S4 = 1 Then
Toggle LED4
EndIf
If LED4 = 1 Then
High OUT4
EndIf
DelayMS 500


If S5 = 1 Then
Toggle LED5
EndIf
If LED5 = 1 Then
High OUT5
EndIf
DelayMS 500

If S6 = 1 Then
Toggle LED6
EndIf
If LED6 = 1 Then
High OUT6
EndIf
DelayMS 500


If S7 = 1 Then
Toggle LED7
EndIf
If LED7 = 1 Then
High OUT7
EndIf
DelayMS 500

If S8 = 1 Then
Toggle LED8
EndIf
If LED8 = 1 Then
High OUT8
EndIf
DelayMS 500




GoSub VERANDER

Wend

VERANDER:
Toggle PORTA.0
Return

End ;Einde programma

waarom schakelen de uitgangen d6 en d7 niet mee in dit geval?
Laatst gewijzigd door Hedalen op vr 29 sep 2017, 13:19, 1 keer totaal gewijzigd.
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

sorry, ik zie het al, dacht ik, maar nee dus
Mat Janssen
Moderator
Moderator
Berichten: 11503
Lid geworden op: wo 10 dec 2003, 18:36
Locatie: nederweert. .. .. .. .. .. .. .. .. .

Bericht door Mat Janssen »

TRIS vergeten ??
signature ruimte te huur ;-)
Verhuurd :!:
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

klopt, alsmede de else in de if

dank je Mat
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

;-------------------------------------------------------------------------------
;**** Added by Fuse Configurator ****
; Use the Fuse Configurator plug-in to change these settings

Device = 16F877A

Config WDT_Off, PWRTE_ON, HS_OSC , LVP_off

;**** End of Fuse Configurator Settings ****
;-------------------------------------------------------------------------------

All_Digital TRUE ;Alle ingangen digitaal

TRISA = %00000000
TRISB = %11111111
TRISC = %00000000
TRISD = %00000000

PORTB = %00000000
PORTC = %00000000
PORTD = %00000000

Symbol S1 = PORTB.0
Symbol S2 = PORTB.1
Symbol S3 = PORTB.2
Symbol S4 = PORTB.3
Symbol S5 = PORTB.4
Symbol S6 = PORTB.5
Symbol S7 = PORTB.6
Symbol S8 = PORTB.7

Symbol LED1 = PORTC.0
Symbol LED2 = PORTC.1
Symbol LED3 = PORTC.2
Symbol LED4 = PORTC.3
Symbol LED5 = PORTD.0
Symbol LED6 = PORTD.1
Symbol LED7 = PORTD.2
Symbol LED8 = PORTD.3

Symbol OUT1 = PORTC.4
Symbol OUT2 = PORTC.5
Symbol OUT3 = PORTC.6
Symbol OUT4 = PORTC.7
Symbol OUT5 = PORTD.4
Symbol OUT6 = PORTD.5
Symbol OUT7 = PORTD.6
Symbol OUT8 = PORTD.7

While 1 = 1

If S1 = 1 Then
Toggle LED1
EndIf
If LED1 = 1 Then
High OUT1
Else Low OUT1
EndIf
DelayMS 500

If S2 = 1 Then
Toggle LED2
EndIf
If LED2 = 1 Then
High OUT2
Else Low OUT2
EndIf
DelayMS 500


If S3 = 1 Then
Toggle LED3
EndIf
If LED3 = 1 Then
High OUT3
Else Low OUT3
EndIf
DelayMS 500


If S4 = 1 Then
Toggle LED4
EndIf
If LED4 = 1 Then
High OUT4
Else Low OUT4
EndIf
DelayMS 500


If S5 = 1 Then
Toggle LED5
EndIf
If LED5 = 1 Then
High OUT5
Else Low OUT5
EndIf
DelayMS 500

If S6 = 1 Then
Toggle LED6
EndIf
If LED6 = 1 Then
High OUT6
Else Low OUT6
EndIf
DelayMS 500


If S7 = 1 Then
Toggle LED7
EndIf
If LED7 = 1 Then
High OUT7
Else Low OUT7
EndIf
DelayMS 500

If S8 = 1 Then
Toggle LED8
EndIf
If LED8 = 1 Then
High OUT8
Else Low OUT8
EndIf
DelayMS 500




GoSub VERANDER

Wend

VERANDER:
Toggle PORTA.0
Return

End ;Einde programma
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

bovenstaande werkt nu dankzij jullie, maar in de volgende, zou toch de tekst moeten veranderen als 1 van de ingangen op POORT A hoog wordt



Device 16F628A ;Gebruik een 16F628A type
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
All_Digital TRUE


Symbol ingang1 = PORTA.1 ;
Symbol ingang2 = PORTA.0 ;
Symbol ingang3 = PORTA.7 ;
Symbol ingang4 = PORTA.6 ;
Symbol ingang5 = PORTA.2 ;
Symbol ingang6 = PORTA.3 ;
Symbol ingang7 = PORTA.4 ;
Symbol ingang8 = PORTA.5 ;

TRISA = %11111111 ;PORTA alles ingang
TRISB = %00000000 ;PORTB alles uitgang

PORTA = %00000000 ;Alle niveaus van PORTA laag
PORTB = %00000000 ;Alle niveaus van PORTB laag

Clear ;Wis alle RAM geheugen
DelayMS 500 ;LCD stabilisering
Print $FE, $40, $00,$04,$00,$0E,$01,$0F,$11,$0F ; å

Cls

Print At 1, 1, "TRAPPE"
Print At 1, 11, "GARAGE"
Print At 2, 1, "L.HALL"
Print At 2, 11, "S.HALL"
Print At 3, 1, "KORR."
Print At 3, 11, "VASKER."
Print At 4, 1, "GARAGEP."
Print At 4, 14, "DYR"

;Print $FE, $40

; hoofdprogramma
While 1 = 1

; TRAPPE ingang 1
If ingang1 is 1 Then
Print At 1, 8, "P"
Print 0
Else
Print At 1, 8, "Av"
EndIf

; GARAGE ingang 2
If ingang2 is 1 Then
Print At 1, 18, "P"
Print 0
Else
Print At 1, 18, "Av"
EndIf

; LITEN HALL ingang 3
If ingang3 is 1 Then
Print At 2, 8, "P"
Print 0 ; å
Else
Print At 2, 8, "Av"
EndIf

; STORE HALL ingang 4
If ingang4 is 1 Then
Print At 2, 18, "P"
Print 0 ; å
Else
Print At 2, 18, "Av"
EndIf

; KORRIDOR ingang 5
If ingang5 is 1 Then
Print At 3, 8, "P"
Print 0 ; å
Else
Print At 3, 8, "Av"
EndIf

; VASKEROM ingang 6
If ingang6 is 1 Then
Print At 3, 18, "P"
Print 0 ; å
Else
Print At 3, 18, "Av"
EndIf

; garageport ingang 7
If ingang7 is 1 Then
Print At 4, 10, "Opp"
Else
Print At 4, 10, "Ned"
EndIf

; dyr ingang 8
If ingang8 is 1 Then
Print At 4, 18, "Ja"
Else
Print At 4, 18, "Nei"
EndIf

Wend
End ;Einde programma
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

sorry, heb t gezien is moet = zijn
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

maar dit moet toch ook kunnen:

;Declare LCD_Type alpha
;Declare LCD_DTPin PORTB.0
;Declare LCD_Lines 4
;Declare LCD_ENPin = PORTA.4 ;De EN aansluiting moet nu aan PORTA.4
;Declare LCD_RSPin = PORTA.5 ;De RS aansluiting moet nu aan PORTA.5
Gebruikersavatar
Stynus
Site Admin
Site Admin
Berichten: 5910
Lid geworden op: vr 16 mei 2003, 20:45
Locatie: Overpelt (België)
Contacteer:

Bericht door Stynus »

RA4 is een open collector uitgang. Je hebt dan een pullup weerstand erbij nodig.
RA5 kan alleen als ingang. Daar kan je dus geen lcd op aansturen.
Afbeelding
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

DANK JE Stynus,

weet iemand misschien ook hoe je hele lange wachtijden via pic basic kan creeren, van ongeveer 24 uur?
Gebruikersavatar
Stynus
Site Admin
Site Admin
Berichten: 5910
Lid geworden op: vr 16 mei 2003, 20:45
Locatie: Overpelt (België)
Contacteer:

Bericht door Stynus »

Niet erg precies maar werkt wel:

Dim uur as byte
dim min as byte
dim sec as byte

For uur = 0 to 24
For min = 0 to 60
for sec = 0 to 60
delayms 1000
next
next
next
Mat Janssen
Moderator
Moderator
Berichten: 11503
Lid geworden op: wo 10 dec 2003, 18:36
Locatie: nederweert. .. .. .. .. .. .. .. .. .

Bericht door Mat Janssen »

Nadeel van deze manier is dat eigenlijk de processor niks meer doet voor andere dingen. Je kunt beter de delay vervangen door een teller die je ophoogt met een interrupt. Nu kun je dan ook nog andere dingen doen het je processor dan alleen maar wachten.
signature ruimte te huur ;-)
Verhuurd :!:
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

beiden bedankt
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

Mat Janssen schreef:Nadeel van deze manier is dat eigenlijk de processor niks meer doet voor andere dingen. Je kunt beter de delay vervangen door een teller die je ophoogt met een interrupt. Nu kun je dan ook nog andere dingen doen het je processor dan alleen maar wachten.
jij had een ander idee?
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

PORTA = %00000000 gebruik je om n poort laag te zetten

wat gebruik ik om bv status van poort a uit te lezen en dit in EEprom te zetten
Gebruikersavatar
Stynus
Site Admin
Site Admin
Berichten: 5910
Lid geworden op: vr 16 mei 2003, 20:45
Locatie: Overpelt (België)
Contacteer:

Bericht door Stynus »

variabele = PORTA

en daarna kan je de variabele in de eeprom zetten.
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

gewoon EWRITE 0, Variable

is dat alles???
Gebruikersavatar
Stynus
Site Admin
Site Admin
Berichten: 5910
Lid geworden op: vr 16 mei 2003, 20:45
Locatie: Overpelt (België)
Contacteer:

Bericht door Stynus »

Even terug gezocht:
EWrite 0, [variablee]
Maar dit was bij een oude versie van picbasic. Het zou kunnen dat tegenwoordig de [] niet meer nodig zijn.
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

ok, prima geholpen

dank je wel
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

kan ik de uitgangen van n RGB dimmer offen met diodes, om meer vermogen te krijgen om n langere witte ledstrip aan te sturen?
Hedalen
Berichten: 125
Lid geworden op: za 17 okt 2015, 19:49
Locatie: . .. .. .

Bericht door Hedalen »

stynus schreef:Het programma kan je van de site downloaden. Best registreer je even op het forum dan kan je bij de aller laatste versie.

http://www.protonbasic.co.uk/vbdownload ... nloadid=58
deze link werkt niet meer?
Gebruikersavatar
Stynus
Site Admin
Site Admin
Berichten: 5910
Lid geworden op: vr 16 mei 2003, 20:45
Locatie: Overpelt (België)
Contacteer:

Bericht door Stynus »

Nee, picbasic bestaat nietmeer zoals we het kennen. Zie https://www.circuitsonline.net/forum/view/153159
Plaats reactie