Elettronica vintage, Ovvero, i circuiti degli anni '60-'70

« Older   Newer »
  Share  
icon12  view post Posted on 12/12/2011, 09:46
Avatar

Immane Rompiball

Group:
Administrator
Posts:
18,287
Location:
Orlo esterno della cintura di Orione stella 1957

Status:


Cari utenti "aficionados" dell'elettronica, in particolare di quella a transistors e componenti che si vedevano ad occhio nudo, ecco per voi il luogo dove discutere esclusivamente di ciò che si poteva fare una volta con l'elettronica e forse, cosa si può fare oggi riusciendo a reperire componenti abbastanza simili.

Mi raccomando, quì non si parla di Tesla, di circuiti ante '900. Neppure di valvole, per le "signore" c'è l'apposita sezione. Ma solo di circuiti a transistors, diodi, triacs, e componenti discreti. Quì non c'è spazio neppure per l'elettrotecnica. Quà si parla solo di circuiti d'epoca trovati sulle riviste specializzate visionabili e scaricabili dal sito:

www.introni.it/

dal sito di Nuova Elettronica o da altri siti simili.

Grazie per la collaborazione e buon divertimento. ;)
 
Web  Top
view post Posted on 12/12/2011, 10:40
Avatar

Insopportabile

Group:
Hobbisti
Posts:
1,077
Location:
Hill Valley-California

Status:


Siiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii ti voglio bbbbene laaaaaaaaaaaaaawwwwwwwwwwww!!!!!!!!!!!!!!
 
Top
view post Posted on 12/12/2011, 11:25
Avatar

Immane Rompiball

Group:
Administrator
Posts:
18,287
Location:
Orlo esterno della cintura di Orione stella 1957

Status:


Bene! :)

Ora sta a voi "impestare" questa sezione con tutti gli argomenti più disparati.
Ricordiamoci, che se si tratta di pura teoria ci sono anche le altre sezioni. Riserviamo quest'area al famoso "timer per luci di cortesia", al favoloso "interruttore crepuscolare", all'indimenticabile "generatore di onde sinosoidali" o all'ineffabile "contagiri elettronico di precisione"... :)
 
Web  Top
-Wolfy-
view post Posted on 12/12/2011, 15:47




Ecco, ora Doc, hai un posto perfetto dove postare domande sui circuiti di quella rivista, e il loro carico industriale di transistor al germanio e all' arsenico :lol:
 
Top
Arma95
view post Posted on 13/12/2011, 07:02




Sììììììììììììììììììììììììììììì, la sezione dei sogni :lol:
Bravo law! Mo ce pensiamo noi! :D :D
 
Top
view post Posted on 19/1/2020, 17:01
Avatar

Noioso

Group:
Professionisti
Posts:
403

Status:


Ehi, avevo realizzato una luce di cortesia con microprocessore più o meno nel 2001! E poi l'ho rifatta (da ST a PIC) una decina di anni dopo.

Se serve, posto schema e software ;) !!
 
Top
view post Posted on 20/1/2020, 19:10
Avatar

GWFstory

Group:
Administrator
Posts:
359
Location:
da qui...., quo, qua. Siete curiosi di saperlo, vero? No? Beh, tanto non ve l'avrei detto.

Status:


Alla faccia Dario: un microprocessore per le luci di cortesia!! band

Mi sembra un po' esagerato, ma se posti lo schema può essere interessante per discuterne.
 
Top
view post Posted on 20/1/2020, 23:06
Avatar

Noioso

Group:
Professionisti
Posts:
403

Status:


ahah lo so, ma tu vedilo come un NE555 evoluto: tipo che con un pin aperto o chiuso potevi forzare la luce accesa, con un altro attivare o disattivare la funzione cortesia. E naturalmente il dimming/rampa della luce...

Il circuito è praticamente zero, ossia il PIC, il regolatore a 5V e un solito BDX per una lampadina da 5W classica da abitacolo (in seguito ho usato pure quelle a led e ok): credo di averlo cmq schizzato con orcad, poi lo cerco! (i due prototipi li ho fatti filati, semplicemente, su zoccolo 8 pin)


magari posto il software!
 
Top
view post Posted on 20/1/2020, 23:42
Avatar

Noioso

Group:
Professionisti
Posts:
403

Status:


;**********************************************************************
; *
; If the internal RC oscillator is not implemented then the first *
; instruction after the ORG 0x000 directive is not required. *
; *
;**********************************************************************
; *
; Filename: PICLuceDiCortesia.asm *
; Date: 7/11/02 *
; File Version: 1.10 *
; *
; Author: Dario Greggio *
; Company: ADPM Synthesis sas *
; *
;**********************************************************************
; *
; Files required: *
; *
;**********************************************************************
; *
; Notes: *
;
;**********************************************************************

#IFDEF __12C509 ; 2003-2006
list p=12c509,r=dec ; list directive to define processor, r=RADICE numerica di default (dec, hex...)
#include <p12c509.inc> ; processor specific variable definitions
#endif
#IFDEF __12F509 ; 2011
list p=12f509,r=dec ; list directive to define processor, r=RADICE numerica di default (dec, hex...)
#include <p12f509.inc> ; processor specific variable definitions
#endif

__CONFIG _CP_OFF & _WDT_ON & _MCLRE_OFF & _IntRC_OSC

; '__CONFIG' directive is used to embed configuration word within .asm file.
; The lables following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.


__IDLOCS 0x4744 ; metterci SERNUM

;***** VARIABLE DEFINITIONS


;*************************************************************************
;** PORT DEFINITIONS
;**
;*************************************************************************
;NON TUTTI hanno pullup... solo 0,1,3
AuxOBit equ 5 ; Uscita aux (1 quando luce accesa)
LedOBit equ 4 ; led
AuxIBit equ 3 ; Input aux (forza lampeggio per indicare ? allarme?) con PULLUP
LuceOBit equ 2 ; Uscita luce (PWM)
DisIBit equ 1 ; disable Luce di cortesia (solo ON/OFF, no ritardo) con PULLUP
PulsIBit equ 0 ; Input (portiera) con PULLUP

AuxOVal equ 1 << AuxOBit
LedOVal equ 1 << LedOBit
AuxIVal equ 1 << AuxIBit
LuceOVal equ 1 << LuceOBit
DisIVal equ 1 << DisIBit
PulsIVal equ 1 << PulsIBit


RAMSTART equ 7
RAMEND equ 0x1f


VAL_ACCESO EQU 31
DELAY_BASE_PWM equ 50 ; voglio un "IRQ" simulato ogni 312.5 uS: il prescaler è 8, 1uSx8=8uSx38=304uS
DURATA_BASE EQU 1 ; divisore per rampa luce
RAMPA_ANCHE_ALL_ACCENSIONE equ 1


SERNUM equ 1000
VERNUMH equ 1
VERNUML equ 1 ; (non dovrebbero superare 0xF, visto che viene pack-ata in un byte nella GetID...)


INT_VAR UDATA_SHR

BANK0_VARS UDATA

counter_10ms res 1 ;incremented every 10 msec
counter_100ms res 1
tmr_comp res 1
Timer32 res 1 ; per PWM
TimerLuce res 1 ; 0=luce spenta, 31 (VAL_ACCESO)=luce accesa.
Timer1 res 1
durata res 1 ; divisore per durata luce
FLAGS res 1 ; Flags
InitOK res 1

; definizioni in flags
RAMP_UP equ 1
RAMP_DOWN equ 2

;**********************************************************************
; ORG 0x1FF ; processor reset vector
; Internal RC calibration value is placed at location 0x1FF by Microchip
; as a movlw k, where the k is a literal value.

;*************************************************************************
;** INIT
;** Hardware reset entry point
;**
;*************************************************************************
RESET_VECTOR CODE 0x0000 ; processor reset vector
INIT: ;Power-on entry
movwf OSCCAL ; update register with factory cal value


;*************************************************************************
;** RESET
;** software reset entry point
;**
;*************************************************************************
RESET: ;Soft reset
movfw STATUS
movwf InitOK
goto start


INT_VECTOR CODE 0x0004 ; interrupt vector location


Copyright dt "(C) Cyberdyne 2011; ADPM Synthesis 2003-2006 - G.Dar\n\r",0
dt "4/3/11"


MAIN_PROG CODE


;initialize and start
start:
cold_reset:
; controllo del tipo di RESET fatto DOPO!
clrwdt ; DOPO!

btfss InitOK,4 ;solo se reset vero (non watchdog!)
goto skip_ram_test

movlw RAMSTART ;initialize pointer
movwf FSR ; to RAM
RAMcheck: clrf INDF ;clear INDF register
incf FSR,f ;inc pointer
btfss FSR,4 ;all done?
goto RAMcheck ;NO, clear next

RAMcheck2: clrf INDF ;clear INDF register
incf FSR,f ;inc pointer
btfsc FSR,4 ;all done?
goto RAMcheck2 ;NO, clear next

skip_ram_test:

clrf FSR ; serve perche' dopo il RAMcheck FSR varrebbe 0x20, che su 12C509 indirizza il 2° banco!
clrwdt
movlw 10000010b ; pull-up attivi, prescaler TMR, prescaler=8
OPTION
movlw DURATA_BASE
movwf durata

warm_reset:
clrwdt
movlw 0
movwf GPIO
movlw DisIVal | PulsIVal | AuxIVal ; 1=input
tris GPIO
clrf TMR0 ;clr tmr0 & prescaler
movlw DELAY_BASE_PWM
movwf tmr_comp


main:

clrwdt

; il PWM deve andare a 100Hz, quindi (avendo 32 liv.) il timer deve essere OK
; ogni 312uS

movfw tmr_comp ;is tmr0 = tmr_comp (300uS over?)
xorwf TMR0,W
btfss STATUS, Z ;skip if it is
goto main

movlw DELAY_BASE_PWM
addwf tmr_comp,f ;update 300uS compare register


movfw TimerLuce ; gestisco i livelli PWM
subwf Timer32,w
btfss STATUS,C

bsf GPIO,LuceOBit
btfsc STATUS,C
bcf GPIO,LuceOBit

incf Timer32,f
btfss Timer32,5 ; se >= 32...
goto main

clrf Timer32

incf counter_10ms,f ; il timer a 100Hz
movfw counter_10ms
xorlw 5
btfss STATUS,Z
goto main

clrf counter_10ms
incf counter_100ms,f ; il timer a 20Hz
movfw counter_100ms
andlw 1
movlw LedOVal
btfss STATUS,Z ; (divido x 2 freq. led che mi da' in testa!)
xorwf GPIO,f


; ogni 100mS
btfsc GPIO,AuxIBit ; se modalita' lampeggio...
goto no_lampeggio_aux

movfw counter_100ms ; il timer a 20Hz
andlw 3 ; ogni .25sec circa
btfss STATUS,Z
goto no_lampeggio_aux
movlw AuxOVal
xorwf GPIO,f
movfw TimerLuce
movlw VAL_ACCESO
btfss STATUS,Z
movlw 0
movwf TimerLuce
goto fine_main

no_lampeggio_aux:


btfss GPIO,DisIBit ; se modalita' no-luce cortesia...
goto no_luce_cortesia


btfss GPIO,PulsIBit ; se la porta è aperta...
goto porta_aperta

movfw TimerLuce ; altrimenti gestisco la rampa di spegnimento...
btfsc STATUS,Z
goto luce_spenta

bsf FLAGS,RAMP_DOWN
movfw durata
btfss STATUS,Z
goto durata_div
movlw DURATA_BASE
movwf durata
decf TimerLuce,f
goto fine_main
durata_div:
decf durata,f
goto fine_main

luce_spenta:
bcf FLAGS,RAMP_DOWN
bcf FLAGS,RAMP_UP
bcf GPIO,AuxOBit
goto fine_main


porta_aperta: ; ...luce accesa!
#ifdef RAMPA_ANCHE_ALL_ACCENSIONE
movlw 32
subwf TimerLuce,w
btfsc STATUS,C ; fino a 32...
goto ok_accesa

bsf FLAGS,RAMP_UP
incf TimerLuce,f
goto ok_accesa2

ok_accesa:
bcf FLAGS,RAMP_UP
movlw 110
movwf TimerLuce

ok_accesa2:

#else
movlw 110 ; (circa il TRIPLO del max valore rampa=VAL_ACCESO)
movwf TimerLuce
#endif
bsf GPIO,AuxOBit
goto fine_main


no_luce_cortesia:
movlw VAL_ACCESO
btfsc GPIO,PulsIBit
movlw 0
movwf TimerLuce
btfss GPIO,PulsIBit
bcf GPIO,AuxOBit
btfsc GPIO,PulsIBit
bsf GPIO,AuxOBit
goto fine_main



fine_main:

goto main


END ; directive 'end of program'
; ************* EOF PICLucec.ASM ********************************
 
Top
view post Posted on 21/1/2020, 00:37
Avatar

Noioso

Group:
Professionisti
Posts:
403

Status:


e schema.

ps: naturalmente quanto sopra è in assembler "antico" per i vecchi PIC 8 bit. in C si farebbe/fa tutto con 20-30 righe :)

Attached Image: picluceC

picluceC

 
Top
9 replies since 12/12/2011, 09:46   787 views
  Share