Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Aansluiten staat boven de sourcecode (port b en c):
Kan uiteraard (na aanpassing) ook met een rotary encoder.
(ikzelf vindt druktoetsen fijner...)
Versie voor encoder (aansluiten zelfde, code is nog veel simpeler):
'======================================================================================
Program Test
Dim REncA As sbit at PORTA.B0
REncB As sbit at PORTA.B1
Dim Cnt As Word
KeyCnt As Byte
KeyRepCnt As Byte
SaveCnt As Word
Flags As Byte
fSave As sbit at Flags.0
fOldREncA As sbit at Flags.1
Const MINCNT = 3300
MAXCNT = 5300
STARTCNT = 3300
REPTIME = 8
SAVETIME = 1000
EEADDRESS = 0x20
'========================================================================================
Sub procedure Interrupt() iv 0x0004 ics ICS_AUTO
'========================================================================================
If TMR2IF_bit = 1 Then
If SaveCnt < SAVETIME Then
Inc(SaveCnt)
If SaveCnt = SAVETIME Then fSave = 1 End If
End If
TMR2IF_bit = 0
End If
End Sub
'========================================================================================
Sub Procedure Init()
'========================================================================================
TRISA = 0x03 ANSELA = 0
TRISB = 0x00 ANSELB = 0
TRISC = 0x00
Flags = 0
PR2 = 124
T2CON = %01001100
TMR2IE_bit = 1
GIE_bit = 1
PEIE_bit = 1
Hi(Cnt) = EEProm_Read(EEADDRESS)
Lo(Cnt) = EEProm_Read(EEADDRESS+1)
If (Cnt < MINCNT) or (Cnt > MAXCNT) Then Cnt = STARTCNT End If
End Sub
'========================================================================================
main:
'========================================================================================
Init()
while true
If REncA <> fOldREncA Then
Delay_ms(5)
If REncA <> fOldREncA Then
If (REncA = 1) And (REncB = 1) Then
Inc(Cnt)
If (Cnt > MAXCNT) Then Cnt = MINCNT End If
End If
If (REncA = 1) And (REncB = 0) Then
Dec(Cnt)
If (Cnt < MINCNT) Then Cnt = MAXCNT End If
End If
fOldREncA = REncA
SaveCnt = 0
LATB = Lo(Dec2BCD16(Cnt))
LATC = Hi(Dec2BCD16(Cnt))
End If
If fSave Then
EEProm_Write(EEADDRESS, Hi(Cnt))
EEProm_Write(EEADDRESS+1, Lo(Cnt))
fSave = 0
End If
End If
wend
End.
[Bericht gewijzigd door Arco op (88%)]
Martin V
Telefunken Sender Systeme Berlin https://www.transmittersystemsengineering.com/
Arco welke programmer raad je mij aan. Ik zie prijzen van 59 euro en die zijn alweer obsolete. Vaak zit er niet veel aan componenten in, zodat ik zelf ook zoiets kan maken, dat is nog goedkoper.
Alvast bedankt voor de moeite je neemt om een programma te schrijven.
En ik moet zeggen dat deze manier wel erg aantrekkelijk is, omdat er geen andere componenten en ic´s nodig zijn.
SparkyGSX
Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Dat is eigenlijk waarom ik een Arduino (kloon) zou gebruiken, je hebt geen programmer nodig, daar zit gewoon een USB bootloader in.
Voor de PICs heb je wel een aparte programmer nodig, maar die is vast ook wel te krijgen voor een paar euro in China.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Pickit2 met voetje voor DIL versie is hier €14.59: https://nl.aliexpress.com/item/1005003684254048.html
Zelf bouwen kan, maar er zit aardig wat in...:
Bootloader voor zo'n klein processortje vind ik overkill (en gemakzucht...
)
[Bericht gewijzigd door Arco op (42%)]
MGP
LDmicro user.
Hoever sta je ermee? ga je zelf pic's programmeren?
Gisteren had ik wat tijd om mijn versie op een prikbord te plaatsen en hier is het resultaat, zie filmpje
https://www.youtube.com/watch?v=TUZAj738AYA
Was het verkeerde filmpje nu is het juist.
Arco was iets sneller met zijn versie maar heeft waarschijnlijk meer tijd 
Deze versie is voor een 16F876a omdat ik er nog wel enkele in stock heb en veel prikbordversies.
Omzetten naar een 16F886 zou ook kunnen.
Met zo'n goedkope rotary encoder is dat niet werkbaar en een andere goed in de handel verkrijgbare heb ik niet.
De automatische opslagtijd van de instelling heb ik op 2sec gezet, volgens mij is het beter en niet levensbedreigend voor de chip.
De display's in het filmpje zijn oude HP5082-7300 met een BCD input en zijn heel moeilijk/niet verkrijgbaar.
Het schema is bijna identiek aan dat van ARCO, enkel heb je extern kristal/resonator (20Mhz) nodig en zijn de display's van plaats verwisseld.
Digit3 = eenheden
Digit4 = tientallen
Digit1 = honderdtallen
Digit2 = duizendtallen
Ik heb de hexfile erbij gevoegd moest je die zelf willen programmeren.
Het programma zelf is geschreven in LDmicro maar niemand heeft daar interesse voor en ik zou het eerst nog moeten opkuisen voor publicatie moesten er gegadigden zijn.
Martin V
Telefunken Sender Systeme Berlin https://www.transmittersystemsengineering.com/
Mooi filmpje MGP.
De laatste dagen ben ik druk geweest met het ontwerp van de oscillator voor het frequentiebereik 3300 tot 5300kHz.
En ik heb het voor elkaar gekregen een zeer goede frequentie stabiliteit te krijgen, zo goed dat een PLL niet meer nodig is.
Het verloop van deze oscillator is niet meer als 10Hz in 10min. tijd op 5300kHz en dat maakt een PLL regeling overbodig.
En na die eerste inschakeling, na 10min. is het verloop helemaal niet meer en blijft op de frequentie staan met kristal stabiliteit.
Het gedoe rond om de PIC heb ik voor me uitgeschoven, maar kan ik geen Arduino ervoor gebruiken dan heb ik geen programmer nodig.
Paulinha_B
Honourable Member
kan ik geen Arduino ervoor gebruiken
Ja, dat moet zeker kunnen. Denk bv. aan een Arduino Nano, 1 analoge ingang leest enkele drukknoppen in, en een cascade van 74xx595 vormt uw 13 uitgangsbits. Status uitvoeren kan via een karakter-lcd en/of serieel.
MGP
LDmicro user.
Op 22 oktober 2022 22:44:55 schreef Martin V:
Het gedoe rond om de PIC heb ik voor me uitgeschoven, maar kan ik geen Arduino ervoor gebruiken dan heb ik geen programmer nodig.
Mooi dat je het anders opgelost hebt.
Arduino is niet mijn ding, er zullen wel anderen zijn die dat wel kunnen.
Maak je geen zorgen over mij want ik ging het sowieso toch eens geprogrammeerd hebben zonder dat je het wist, want ik heb nood aan ideeën 
Ik maak van veel wat hier voorbijkomt een programma en een testopstelling, laatst nog dat vuurtorenlicht nog gemaakt alsook de 3 staps ledverlichting maar niet gepubliceerd want als de TS geen pic's kan programmeren heeft het eigenlijk geen zin en daar kan ik wel mee leven.
Op naar het volgende idee 
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Het gedoe rond om de PIC heb ik voor me uitgeschoven
Microcontroller in dit geval is vooruitgang...
(simpeler als 4 onderdelen wordt 't niet...)
Misschien heeft iemand nog wel een 1936 liggen en wil die programmeren/leveren...
(ik zelf heb niet veel meer in DIL...)