ISIS SCHEMATIC FILEy DesignplateDS kjh\ kjdg\bJS28/10/1222/10/14&PHsGT * DESIGN CONFIGURATION DATAArialDefault Font` p M M ``@@@@ COMPONENTȪȪPINPORT@MARKER`O@ACTUATOR`O@@ INDICATOR`O@@VPROBE`OIPROBE`OTAPE`O GENERATOR`OTERMINAL@ SUBCIRCUIT=ȪȪ 2D GRAPHICWIRE DOT@@@WIRE@BUS WIREPSBORDERȪȪTEMPLATE COMPONENT ID&H Default FontCOMPONENT VALUE&0 Default Font PROPERTIES&0 Default FontTERMINAL LABEL&0 Default Font WIRE LABEL&0 Default Font SUBCKT ID&H Default Font SUBCKT NAME&0 Default FontSCRIPT&0 Default FontPIN NAME&0 Default Font PIN NUMBER&0 Default Font VPROBE LABEL&0 Default Font IPROBE LABEL&0 Default FontGENERATOR LABEL&0 Default Font TAPE LABEL&0 Default FontACTIVE READOUT0ArialPWRRAILS*RAILS *BINDINGS $MKRBUSNODE޳3I=8`O@MARKER9p s $MKRDECREMENT:70!`O@@ACTUATOR;4!`O@@ACTUATOR9ȜȜ;4!`O@@ACTUATOR98cȜ;4!`O@@ACTUATOR9p $MKRINCREMENT:70!`O@@ACTUATOR;4!`O@@ACTUATORpȜ8c;4!`O@@ACTUATORp8c8c;4!`O@@ACTUATORp9 $MKRLABEL޳304$MKRORIGINkf`O@MARKER0Default FontLABEL$MKRNODE޳3~94`O@MARKER9pp994`O@MARKER99pp $MKRORIGIN{3=8`O@MARKER9p s94`O@MARKER s94`O@MARKER s $MKRPINNAME޳304$MKRORIGINje`O@MARKER0Default FontNAME $MKRPINNUM޳304$MKRORIGINhc`O@MARKER/0Default Font99 $MKRTOGGLE7j70!`O@@ACTUATOR;4!`O@@ACTUATOR9p;4!`O@@ACTUATOR9ȜȜ;4!`O@@ACTUATOR98cȜ;4!`O@@ACTUATORȜ8cp;4!`O@@ACTUATORp8c8c$PINBUS޳304$MKRORIGIN04?$MKRBUSNODE04$MKRPINNAME $PINDEFAULT޳3264PIN?04$MKRORIGIN04?$MKRNODE04$MKRPINNUM04$MKRORIGIN04$MKRPINNAME $PININVERT޳3d20PINX)64PIN?04$MKRPINNUM04$MKRORIGIN04?$MKRNODE04$MKRORIGIN04$MKRPINNAME $PINNEGCLK޳3d`PINX))))X)64PIN?04$MKRPINNUM20PINX)04?$MKRNODE04$MKRORIGIN04$MKRORIGIN04$MKRPINNAME $PINPOSCLK޳3d`PINX))))X)64PIN?04$MKRPINNUM04$MKRORIGIN04?$MKRNODE04$MKRORIGIN04$MKRPINNAME $PINSHORT޳364PIN04$MKRPINNUM04$MKRNODE04$MKRORIGIN04$MKRORIGIN $TERBIDIR߳3{i`!@TERMINAL s0 s0;4!@TERMINAL;4!@TERMINAL s04$MKRORIGIN04$MKRNODE04H$MKRLABEL$TERBUS߳3i`!@TERMINAL040$MKRBUSNODE04$MKRORIGIN04$MKRLABEL $TERDEFAULT߳370!@TERMINAL;4!@TERMINAL90040$MKRNODE04$MKRORIGIN04/$MKRLABEL $TERGROUND߳3;4!@TERMINAL0;4!@TERMINAL0;4!@TERMINAL;4!@TERMINALȜ8c04$MKRORIGIN040$MKRNODE04?$MKRLABEL $TERINPUT߳3@i`!@TERMINAL s s;4!@TERMINAL004t$MKRORIGIN040t$MKRNODE04/$MKRLABEL $TEROUTPUT߳3@i`!@TERMINAL s0 s0;4!@TERMINAL04H$MKRLABEL04$MKRNODE04$MKRORIGIN $TERPOWER߳3@i`!@TERMINAL00;4!@TERMINAL004$MKRNODE04$MKRORIGIN04`$MKRLABELLATCH_6i(H@|@8"ȪȪCOMPONENT`0P!}04$MKRORIGIN`$PINDEFAULTD0"$PINDEFAULTQ0`P$PINDEFAULTOE`$PINDEFAULTD1"$PINDEFAULTQ1`?$PINDEFAULTD2"?$PINDEFAULTQ2`p_$PINDEFAULTD3"p_$PINDEFAULTQ3`@$PINDEFAULTD4"@$PINDEFAULTQ4`$PINDEFAULTD5"$PINDEFAULTQ5`$PINPOSCLKCLK` >$PINDEFAULTRESET`$PINDEFAULTEN{*DEVICE} PREFIX=U HELP=MODELS>POPUP,135 {*PROPDEFS} {PRIMITIVE=Primitive Type,HIDDEN STRING} {EDGE=Edge Triggered Latch?,BOOL} {TDLHCQ=Clock To Q Delay (Low-High),ADVANCED FLOAT,POZ} {TDHLCQ=Clock To Q Delay (High-Low),ADVANCED FLOAT,POZ} {TDLHDQ=Data To Q Delay (Low-High),ADVANCED FLOAT,POZ} {TDHLDQ=Data To Q Delay (High-Low),ADVANCED FLOAT,POZ} {TDLZOQ=Output Enable To Q Delay (Low-HiZ),ADVANCED FLOAT,POZ} {TDZLOQ=Output Enable To Q Delay (HiZ-Low),ADVANCED FLOAT,POZ} {TDHZOQ=Output Enable To Q Delay (High-HiZ),ADVANCED FLOAT,POZ} {TDZHOQ=Output Enable To Q Delay (HiZ-High),ADVANCED FLOAT,POZ} {TDRQ=Reset to Q Delay,ADVANCED FLOAT,POZ} {TGQ=Deglitch Time For Q Output,ADVANCED FLOAT,POZ} {INIT=Initial Output,INT,0,63} {*INDEX} {CAT=Modelling Primitives} {SUBCAT=Digital (Sequential)} {DESC=Universal Latch Digital Primitive Model With Edge/Transparent Clock, Enable, Tristate Outputs and Reset} {*COMPONENT} {PRIMITIVE=DIGITAL} LM016LmJu@8"ȪȪCOMPONENT >M@8"8c2FȪaCOMPONENTP0y`E 04$MKRORIGINP!$PINDEFAULTD714 A$PINDEFAULTD613`$PINDEFAULTD512$PINDEFAULTD411 $PINDEFAULTD310`$PINDEFAULTD290$PINDEFAULTD18$PINDEFAULTD07?$PINDEFAULTE6p_$PINDEFAULTRW5@$PINDEFAULTRS4$PINDEFAULTVSS1$PINDEFAULTVDD2$PINDEFAULTVEE3LCD_16X2_0|@8"8c2FȪaCOMPONENTP0y`E 04$MKRORIGINLCD_16X2_1|@8"8cȪaCOMPONENTP0y`E 04$MKRORIGIN{*DEVICE} PREFIX=LCD ACTIVE=LCD_16X2,2,DLL HELP=DISPLAYS>POPUP,2 {DATA=pdfs/Display/HD44780.pdf} {*PROPDEFS} {MODDLL="VSM Model",READONLY STRING} {PRIMITIVE="Simulator Primitive",HIDDEN STRING} {NUMCOLS="Number of Columns",READONLY INT} {NUMROWS="Number of Rows",READONLY INT} {CLOCK="Clock Frequency",ADVANCED FLOAT,PNZ} {ROW1="Row 1",ADVANCED STRING} {ROW2="Row 2",ADVANCED STRING} {PACKAGE=PCB Footprint,PACKAGE,0} {TRACE=Controller Diagnostics,HIDDEN TRACEMODE} {*INDEX} {CAT=Optoelectronics} {SUBCAT=Alphanumeric LCDs} {DESC=16x2 Alphanumeric LCD} {*COMPONENT} {NUMCOLS=16} {NUMROWS=2} {CLOCK=250kHz} {ROW1=80-8F} {ROW2=C0-CF} {PACKAGE=CONN-DIL14} {PRIMITIVE=DIGITAL,LCD} {MODDLL=LCDALPHA} {TRACE=1} LOGICSTATEKF~`"ȪȪwCOMPONENTO0O00OO0jb"ȪȪCOMPONENT/ `Default Font?04$MKRORIGIN040$MKRINCREMENT0400$MKRDECREMENT$PINDEFAULTQ0LS_0$~`"ȪcCOMPONENTO0O00OO0jb"ȪȪ{COMPONENT/ `Arial004$MKRORIGINLS_1$~`"ȪcCOMPONENTO0O00OO0jb"ȪȪ{COMPONENT/ `Arial104$MKRORIGIN<{*DEVICE} ACTIVE=LS,2 {*PROPDEFS} {PRIMITIVE="Primitive Type",HIDDEN STRING} {STATE="Active State",HIDDEN STRING} {PACKAGE=PCB Package,HIDDEN PACKAGE} {*INDEX} {CAT=Debugging Tools} {SUBCAT=Logic Stimuli} {DESC=Logic State Source (Latched Action)} {*COMPONENT} {PRIMITIVE=DIGITAL,RTDSTATE} {STATE=0} {PACKAGE=NULL} VISIS CIRCUIT FILE MOBJECT DATA 0}"ȪȪ{COMPONENT Default FontPilotage d'un afficheur LCD LM016L 0"ȪȪ{COMPONENT `Default FontDu circuit LATCH_6 nous ne gardons que le symbole graphique avec 6 sorties Q0 Q5 : son comportement est remplac K"ȪȪ{COMPONENT Default FontTlchargez d'autres exemples ISIS Proteus sur www.gecif.net4h5M0,0 Default FontSCRIPT>Ralis par Jean-Christophe MICHEL www.gecif.net Octobre 2014 (j"ȪȪ{COMPONENT Default Fontconfigur en 4 bits avec un script EasyHDL ۦ"ȪȪ{COMPONENT `Default FontLe script EasyHDL, nomm GECIF, est sur la page 2 (voir menu Projet) et contient les messages affichs. og"ȪȪ{COMPONENT Default FontPage 1 0Xl"ȪȪ{COMPONENT `Default Fontpar le script EasyHDL qui crit sur les 6 sorties Q0 Q5 les commandes pour piloter l'afficheur LCD en fonction des entres.`Q $TERGROUND 0 40 Default FontTERMINAL LABEL<BF > ,0 Default FontSCRIPTHLe cblage des bornes d'alimentation VSS et VDD n'est pas indispensable LCD1OW2H Default FontCOMPONENT IDLM016LOPQ50 Default FontCOMPONENT VALUELM016LO M10 Default FontSUBCKT NAME({NUMCOLS=16} {NUMROWS=2} {CLOCK=250kHz} O M00 Default FontPROPERTIES{NUMCOLS=16} {NUMROWS=2} {CLOCK=250kHz} {ROW1=80-8F} {ROW2=C0-CF} {PACKAGE=CONN-DIL14} {PRIMITIVE=DIGITAL,LCD} {MODDLL=LCDALPHA} {TRACE=1} LM016L`> z?@??>?<?@WIRE`81`"U1x 2H Default FontCOMPONENT IDLATCH_6x50 Default FontCOMPONENT VALUELATCH_6x10 Default FontSUBCKT NAME&PRIMITIVE=DIGITAL,SCRIPT SCRIPT=GECIF x00 Default FontPROPERTIES&LATCH_6xH A>FC?D@?z???@WIRE"""HOH@WIRE&"&O@WIRE*"*O@WIRE@."@./O/@WIRE0"0  OOO@WIRE " XoOXo8 2H Default FontCOMPONENT ID850 Default FontCOMPONENT VALUE LOGICSTATE810 Default FontSUBCKT NAME'{PRIMITIVE=DIGITAL,RTDSTATE} {STATE=0} 800 Default FontPROPERTIES' LOGICSTATEH A@WIRExHp\H8`O2H Default FontCOMPONENT ID8@50 Default FontCOMPONENT VALUE LOGICSTATE810 Default FontSUBCKT NAME'{PRIMITIVE=DIGITAL,RTDSTATE} {STATE=0} 800 Default FontPROPERTIES' LOGICSTATEFC@WIREx,,p\82H Default FontCOMPONENT ID8?50 Default FontCOMPONENT VALUE LOGICSTATE8_10 Default FontSUBCKT NAME'{PRIMITIVE=DIGITAL,RTDSTATE} {STATE=0} 8_00 Default FontPROPERTIES' LOGICSTATEXoD@WIRExXop\Xo jHph"ȪȪ{COMPONENT `Default FontMessage Knf"ȪȪ{COMPONENT `Default FontLigne ZXoph"ȪȪ{COMPONENT `Default FontEffacer Hʉ""ȪȪ{COMPONENT `Default FontL'afficheur LCD est configur en fonction Hʉ81"ȪȪ{COMPONENT `Default Fontde l'tat des 3 entres logiques D0, D1 et D2ISIS CIRCUIT FILE \EOBJECT DATAxC$*SCRIPT PROGRAM GECIF *END SCRIPT H[,0 Default FontSCRIPT ///////////////////////////////////////////////////////////////////////////////////////////// // Script EasyHDL ralis par Jean-Christophe MICHEL // www.gecif.net // Octobre 2014 ///////////////////////////////////////////////////////////////////////////////////////////// *SCRIPT PROGRAM GECIF PIN Q[0..3],Q4,Q5,D0,D1,D2 FLOAT temporisation=0.4m INT i,n STRING s ///////////////////////////////////////////////////////////////////////////////////////////// // Envoie des instructions l'afficheur LM016L : ///////////////////////////////////////////////////////////////////////////////////////////// n=$33 // configure l'afficheur en 4 bits GOSUB envoyer_instruction n=$32 GOSUB envoyer_instruction n=$28 // configure l'afficheur en 4 bits, 2 lignes GOSUB envoyer_instruction n=$0C // configure l'affichage avec le curseur invisible GOSUB envoyer_instruction n=$06 // configure le dplacement du curseur vers la droite GOSUB envoyer_instruction n=$01 // efface l'cran GOSUB envoyer_instruction ///////////////////////////////////////////////////////////////////////////////////////////// // Lit les 3 entre et prpare l'affichage en fonction : ///////////////////////////////////////////////////////////////////////////////////////////// // Prpare le message en fonction de l'entre D0 : IF D0=0 THEN s="Vive Gecif.net !" ELSE s="ISIS + EasyHDL" ENDIF // Positionne le curseur sur la ligne 1 ou sur la ligne 2 en fonction de l'entre D1 : IF D1=0 THEN n=$80 // dplace le curseur au dbut de la ligne 1 ELSE n=$C0 // dplace le curseur au dbut de la ligne 2 ENDIF GOSUB envoyer_instruction ///////////////////////////////////////////////////////////////////////////////////////////// // Envoie des donnes l'afficheur LM016L : ///////////////////////////////////////////////////////////////////////////////////////////// // Affiche le message seulement si D2=0 : IF D2=0 THEN FOR i = 1 TO LEN(s) n=ASC(s[i]) GOSUB envoyer_donnee NEXT i ENDIF END ///////////////////////////////////////////////////////////////////////////////////////////// // Fonction envoyer_donnee : ///////////////////////////////////////////////////////////////////////////////////////////// // Cette fonction "envoyer_donnee" met RS 1 puis envoie l'octet n en 2 tapes envoyer_donnee: Q4=1 SLEEP FOR temporisation Q[0..3]=(n>>4) SLEEP FOR temporisation GOSUB valider Q[0..3]=n SLEEP FOR temporisation GOSUB valider RETURN ///////////////////////////////////////////////////////////////////////////////////////////// // Fonction envoyer_instruction : ///////////////////////////////////////////////////////////////////////////////////////////// // Cette fonction "envoyer_instruction" met RS 0 puis envoie l'octet n en 2 tapes envoyer_instruction: Q4=0 SLEEP FOR temporisation Q[0..3]=(n>>4) SLEEP FOR temporisation GOSUB valider Q[0..3]=n SLEEP FOR temporisation GOSUB valider RETURN ///////////////////////////////////////////////////////////////////////////////////////////// // Fonction valider : ///////////////////////////////////////////////////////////////////////////////////////////// // Cette fonction "valider" envoie une impulsion sur E, pour valider une instruction ou une donne valider: Q5=1 SLEEP FOR temporisation Q5=0 SLEEP FOR temporisation RETURN ///////////////////////////////////////////////////////////////////////////////////////////// // Fin du script ///////////////////////////////////////////////////////////////////////////////////////////// *ENDSCRIPT (jdog"ȪȪ{COMPONENT Default FontPage 2ISIS CIRCUIT FILE MOBJECT DATACCT0003CCT001G __DEFAULT__VROOT10Schma LCD1 U1   CCT000ROOT30Script EasyHDLCCT001 __DEFAULT__ __DEFAULT__???@ư>1- ABSTOL1e-12 BADMOS3No BYPASSYes CHGTOL1e-14DEFAD0DEFAS0 DEFAULTS0 DEFL0.0001 DEFW0.0001 GMIN1e-18GMINSTEPS120 ITL1100ITL250ITL450 LOGSTART0 LOGTIME60 MAXORD2METHODTRAPEZOIDAL NOOPITERNo NUMSTEPS50 OLDLIMITNo PIVREL0.001 PIVTOL1e-13 RELTOL0.01 RSHUNT1e+12 SRCSTEPS120 TDLOWER0.9 TDSCALE1 TDUPPER1.1TEMP27 TMIN1e-12TNOM27TRACE_CONTENTIONS1,0TRACE_CONVERGENCE1,1TRACE_DCPATHS1,2TRACE_ITFMODS1,3TRACE_NETTYPES1,4TRACE_OPTIONS1,5TRACE_PERFORMANCE1,6TRACE_SPICELINK1,7TRANGMIN1e-18TRTOL7TRYTOCOMPACTNo TTOL1e-09 VNTOL1e-06@v6>pYx`k&0