Вы находитесь на странице: 1из 28

.

.

.







.


1
1.1
2.1
3.1
4.1
5.1
6.1


2
MOSFET 1.2
THYRISTOR 2.2
TRIAC 3.2
DIAC 4.2
5.2


3
1.3
2.3
3.3
A 4.3
B 5.3
6.3


4
1.4
2.4
3.4
4.4
5.4

5
1.5
2.5
3.5
4.5
5.5
6.5
7.5
8.5
9.5

(PLD 6
1.6
2.6
PLD 3.6
PAL 4.6
GAL 5.6
6.6


PIC 16F84A 7
PIC 16F84A 1.7
PIC 16F84A 2.7
3.7
MPLAB 7.4
PIC 5.7


8
LED 1.8
LED 2.8
LCD 3.8
LM 16251 4.8


3

9
1.9
2.9
3.9
4.9
5.9
6.9
7.9
8.9
9.9
10.9
11.9
12.9
13.9
14.9
GEMMA15.9
GEMMA16.9


10
1.10
2.10
3.10
4.10
5.10
6.10
7.10
8.10

11
1.11
2.11
3.11
4.11
5.11
6.11
7.11

12
1.12
2.12
3.12


13
1.13
2.13
3.13
4.13
5.13
6.13
7.13


14
1.14
2.14
3.14
4.14
5.14


15
1.15
PIC 16F84A 2.14
PIC 16F84A 3.15


25h

8h

9h

10

6h

8h

11

8h

8h

12

10h

10h

13

20h

10h

14

8h

6
(PLD )

30h

15

10h

PIC 16F84A 7

10h

POWER POINT
.
. PSPICE
PCBOARD
PSPICE



www. als design . frdownloadseval. html
www. cadence. comproductsoracaddowloadspspice schcmaticin dex . aspx
www. engr . u ky . edu~catheypspice061301. html

A
. B
PIC16F84

MICROCHIP MPL AB
. ICPROG MPL AB

MICROSIM-PSPICEA
1.A
1.1.A
MICROSIM-PSPICE

.

DmarrerWindows
DesignLabo Eval 8Programme
.Schematics

.
.
.
.
2.1.A
1.APSPICE
Crer un nouveau schma ( cration de
rpertoire et fichiers )
Ouvrir un schma existant ( la recherche
est guide )

Editeur de symboles
SIMULATION

Enregistrer le fichier ouvert courant

Dfinitions des directives


et types d'analyses

Enregistrer (un lment slectionner ou


une slection d'lments )

Lancement de la
simulation

Imprimer le fichier ( ou la slection


Copier (un lment slectionner ou une
slection d'lments )

Couleurs des
marqueurs ( signaux
visualis sous Probe)
Placement d'un
marqueur tension /
courant

Rafrachir l'cran

Couper, supprimer ( un lment


slectionner ou une slection d'lments )

Annuler l'action prcdente

Rpter l'action prcdente

Validation de
l'affichage des
tensions du point
de dpart ou de
repos sur le schma
/ suppression de
l'affichage

Validation de
l'affichage de courants
du point de dpart
ou de repos sur le
schma / suppression
de l'affichage

Zoom moins ( diminution en taille des


lments de la fentre courante
Zoom plus ( agrandissement en taille des
lments de la fentre courante )
Zoom de la fentre slectionne
( apparition plein cran de la fentre )

ANNOTATIONS

Affichage plein cran du schma


complet.)

Trac de courbe

DESSIN

Trac de rectangle

.Trac des fils /des bus

Trac de cercle

Edition des blocs de sous schmas (la


forme courante apparaissant est fiable )

Trac de segment de droite

Recherche et capture d'lments ou


symboles issus des bibliothques

Insertion d'images

Editeur d'attributs

Insertion d'une fentre


de texte et choix de la
police du texte

PSPICE

1.A

2.A
Schematics
.
Drawtext ABC


. Save as File
Nom. Sch Nom
Enregistrer . Rpertoire Dans

.File Save
(Gets) 1.2.A
Get Get New Part Draw
. New Part
Advanced basic . Gets
.Advanced
*
. Part Name
Place
.
.

.
. Supp
. Rotate Edit
. Flip Edit Miroir

.

.
9


Gnd OV
.Gnd Earth Analog Gnd Ground
2.2.A
Draw
. . Draw wire Wire
3.2.A
.

. k1 R1
7400 U1A
NAND

Stimulus
.
.

*

.
*

Pkgref Value

Value
. Save attr
.OK Pkgref .
.
.
.
10


s Henry H Farad F

.PSPICE
Label
.

.
. Labels)
3.A
.

. Transient Analysis

AC Sweep

Set up Analysis
. Set up Analysis
.

Transient Transient
Print Step
. 10000 1000
. Final time
4.A
Microsim probe Simulate
. Add Trace

. 1 0
.

11


.
Toggle Cursor Tools
. Cursor

Voltage Analog

.


. Mark Label

Vs Ve Vs = f(Ve)
Axis X Axis Settings Plot
. . Variable
. Voltage Analog
. VVe Ve X
.
2.A
. PSPICE

12

PSPICE 2.A
13

B
MICROSIM PC BOARDS

.B

PSPICE
.PC BOARDS
PC BOARDS

1.B

PSPICE
SIMULATION ONLY
.
. Jump

Jump1 Vcc
Jump1 GND
Jump2 niV
Packaging 1.1.B

.
PKGTYPE
. 14 D1P14 PKGTYPE Dual Inline Package

PSPICE

Tools Package OK
Net list 2.1.B


. .
slooTCreate layout net list OK
.
14

SIMULATIONONLY
PC Board

3.1.B

PC Board
PCSPICE Tools Run PC Board yes
. 1.B PC Board

1.B
.pca
.
PC Board

2.B

inch
.option mm Tools option

routage
. .

. CTRLM CTRLR
15


.

.Jump
.
. RATS
Tools Optimize Rats
.
Optimisation

.

ToolsOption

Option Optimize Rats


egatuor .
Jump
.VIA PADSTACK
routage automatique B .3

routeur
.
Draw Board signal keepin


.
. Draw Keep out

16

width Tools CCT Setup


127mm 0645mm clearance
.OK
CCT Net rules Tools
.
DFM Mitter Bends Set DefaultMitters
.

2.B .spectra
.
Tools Autoroute

2.B
.
File report Bill off Materials
.
Job

Configuration

17


A4

FileJob setupNew

Plot origine x 100mm y 150mm OK

Definie page

3.B 1
New
Board signal keepin et solder

3.B
New page 2
4.B Board signal keepin OK OK silktop

4.B

File Print New Job Print Print the job

18

1.C

Pic aff.asm


Horloge

Affichage Heures minutes la secondes clignote


Rglages Raz des secondes Rglage des Heures des Minutes Reset
Interruption provoque par le timer temps rel
Comptages des inters Quartz 4096KHz Fe1024kHz
Prdiviseur par 32
Le dbordement du timer provoque une interruption toutes les 8ms
Il faut 125 interruptions pour faire une seconde

Configuration du pic des registres et appel des macros


config cpnon pwrtnon wdtnon oscxt
Les constantes registres
include registres.h

Les macros
include stdmac.h

Dfinition des constantes


equ d125
CTinter

Cte du Nb dinter pour la


seconde18ms
Cte de la frquence de comptage du
rglage
Cte valeur max de comptage modulo 60
Cte valeur max de comptage modolo 24
Cte valeur max Units de conversion
BinBcd
Cte RB4 commande de laff1.le droite
Cte RB5 commande de lafficheur 2
Cte RB6 commande de lafficheur 3
Cte RB7 commande de laff4.le gauche

equ d40

CTreglage

equ d60
equ d24
equ d10

Max60
Max24
MaxUnite

equ h10
equ h20
equ h40
equ h80

Aff1
Aff2
Aff3
Aff4

Cte bit RA0Raz des secondes le gauche


Cte bit RA1rglage des minutes
Cte bit RA2rglage des heures
Cte bit RA3Reset le droite

equ d0
equ d1
equ d2
equ d3

ToucheRA0
ToucheRA1
ToucheRA2
ToucheRA3

Cte bit RA4PORTA

equ d4

SortieRA4

19

Rservaton des variables


org

0x20zreg zone registre libre usage gnral


Var. Comptage des interruptions du
timer
Var. pour la tempoReg

rm

NBinter

rm

NbTempoReg

Var. compteur des secondes


Var. compteur des minutes
Var. compteur des heures

1
1
1

rm
rm
rm

Secondes
Minutes
Heures

Var. octet convertir pour les aff. 1 et 2


Var. octet convertir pour les aff. 3 et 4

1
1

rm
rm

DataAff12
DataAff34

Var. 4 bits pour lafficheur 1 le


droite
Var. 4 bits pour lafficheur 2
Var. 4 bits pour lafficheur 3
Var. 4 bits pour lafficheur 4 le
gauche

rm

1
1
1

rm
rm
rm

Aff1Data

Aff2Data
Aff3Data
Aff4Data

Var. octet convertir en BCD


rm 1
Bin
Var. unite BCD convertie
1
rm
BcdUnite
Var. dizaine BCD convertie
1
rm BcdDizaine
Dbut du programme aprs reset

Reset toujours ladresse 0


0zprog
org

goto Init

Programme dinterruption
Inter toujours ladresse 4
4zprog
org

Dcrmente chaque inter pour seconde


decfsz NBinter

Si NBinter pas 0 alors suite


Suite
goto

Si NBinter0 alors on compte


Compteur
call

Initialisation du
CTinterNBinter movlf

compteur CTinter

Drapeau dinter 0
INTCONT0IF
bcf
Suite
Retour au programme principal
retfie
Compteur SecondesMinutesHeures.
Secondes
incf
SecondesSecondes1
Si
SecondesMax60RazSecondes

20

Compteur
beqc

SecondesMax60
alors on va RazSecondes sinon retour
return

Raz Secondes

Secondes
clrf RazSecondes
Minutes
incf
RegMin
MinutesMinutes1
Si
MinutesMax60RazMinutes
beqc

MinutesMax60
alors on va RazMinutes sinon retour
return

Raz Minutes

Minutes
clrf RazMinutes
Heures
incf
RegHeur
HeuresHeures1
Si
HeuresMax24RazHeures
beqc

HeuresMax24
alors on va RazHeures sinon retour
return

Il est minuit con Heures


clrf
RazHeures

return

Programme principal
initialisations
passer en page 1 accs TRIS et
STATUSRP0
bsf
Init
OPTION
Tout PORTB en sortie
TRISB
RA4 en sortie le reste
TRISASortieRA4
en entre
1RBPU0PS00PS11PS2 pas de
pull Up
sur port B et timer
OPTIO
prdiv32

Repasser en page 0
STATUSRP0

1T0IE1GIEValidation locale et globale


pour autoriser linter
INTCON
timer

movlf CTinterNBinter
inters
Raz des variables
Secondes
Minutes
Heures
Boucle du programme principal
Dtection touches clavier

clrf
bcf

movlw

movwf

bcf
movlw
movwf

Init du dcompte des


clrf
clrf
clrf

call DetecteTouches

21

Boucle

Chargement des Donnes afficher


Chargement des
movff MinutesDataAff12
donnes
afficher
movff HeuresDataAff34
Conversion BinBcd
ConvertAff
call

Affichage multiplex
Affichage multiplex
Affiche
call
La sortie clignote la seconde
ClignoSortie
call

On reboucle
Boucle
goto

Sous programmes

Traitement des valeurs afficher conversion et stockage


On charge la valeur convertir DataAff12Bin movff ConvertAff
Conversion BinaireBcd
BinBcd
call

Envoi des valeurs Bcd


BcdUniteAff1Data movff
dans les
BcdDizaineAff2Data registres daffichage
movff

Pareil que pour les secondes


DataAff34Bin movff
BinBcd
call

BcdUniteAff3Data
movff
BcdDizaineAff4Data
movff
return

Conversion BinaireBCD dynamique max 99 2 chiffres


Raz de la variable Unite
BcdUnite
clrf
Raz de la variable
BcdDizaine
clrf
Dizaine

BinW movf
Si Bin 0 on retourne

skipz
Sinon IncBcdUnite

IncBcdUnite
goto

return
BcdUnite BcdUnite1
BcdUnite
On dcrmente Bin
Bin
decf

Si
BcdUniteMaxUniteRazBcdUnite
beqc
BcdUniteMaxUnite
on va RazBcdUnite
Bcl
goto
sinon Bcl

BcdUnite
Raz

BcdUnite
BcdDizaine
BcdDizaine
incf

22

BinBcd

Bcl

incf IncBcdUnite

clrf RazBcdUnite

BcdDizaine1

Bcl
Affichage multiplex
On charge la donne
quartet bas
On charge lafficheur
quartet haut
On envoie PORTB
On temporise

Pareil...

Pareil...

Pareil...

Tempo pour les


rglages
On rpte CTreglage fois
laffichage
et du coup a ralentit
return

goto
Aff1DataW

movf

Aff1

iorlw

Affiche

PORTB movwf
T1mS
call

Aff2DataW movf
Aff2 iorlw
PORTB movwf
T1mS
call
Aff3DataW movf

Aff3 iorlw
PORTB movwf
T1mS
call
Aff4DataW movf

Aff4 iorlw
PORTB movwf
T1mS
call
NbTempoReg

movf

TempoRgl

skipz

goto decreme

decf

decreme

Clignotement de la Sortie RA4 la seconde F 1Hz


Seconde dans W

SecondesW
On ne garde que le bit 0
1 andlw
Si 0 alors SortieRA40
ClrRA4
bz
Sinon SortieRA41 et voila
SetRA4
goto

Sortie1
PORTASortieRA4
bcf
return

movf ClignoSortie

ClrRA4

goto Affiche

Sortie0
return

NbTempoReg

PORTASortieRA4

23

bsf

SetRA4

Dtection des touches


Raz des Secondes ou suite
PORTAToucheRA0

RazSec
call

PORTAToucheRA1 Rglage minute ou suite


btfss

RegHeures
call

Rglage heure ou suite


PORTAToucheRA2
btfss

RegMinutes
call

Reset ou return
PORTAToucheRA3
btfss

Init
call

return
Rglage de lhorloge
Secondes
return

CTreglageNbTempoReg Init. de la tempo de reglage


Rglage des minutes
RegMin
call
return
CTreglageNbTempoReg Init. de la tempo de
reglage
Rglage des heures
RegHeur
return

movlf

btfss DetecteTouches

clrf

movlf

RazSec

RegMinutes

RegHeures

call

Temporisation logicielle pour le multiplexage


Fichier des Tempo

include Tempo4.inc

Fin

Fin du programme
end

picad.asm 2.C

Programme Conversion Analogique Numrique


La tension Analogique dentre est compare la tension de sortie
du Convetisseur Numrique Analogique R2R 8bits plac en sortie de PORTB
La sortie du comparateur est envoye sur lentre RA4 du PORTA
Configuration du picdes registres et appel des macros

config cpnon pwrtnon wdtnon oscxt

24

include registres.h
include stdmac.h

Dfinition des constantes


CTtempo
equ 30
BitRA4
equ 4

Rservaton des variables

org
0x20zreg zone registre libre usage gnral
NbTempo
NbTempo1

rm
rm

Var. pour la tempo


Var. pour la tempo1

1
1

le programme principal commence ici

org

0zprog

Reset toujours ladresse 0

Initialisation
Init
bsf
STATUSRP0

clrf
TRISB

bcf
STATUSRP0

Boucle du programme principal


Boucle

Incremente

Decremente

incf

decf

btfss
goto
goto

Passer en page 1
PORTB en sortie
Repasser en page 0

PORTABitRA4 RA4 est il 1


Incremente
Decremente

PORTB
call
T1mS
goto
Boucle

PORTBPORTB1

PORTB
call
T1mS
goto
Boucle

PORTBPORTB1

Temporisation logicielle

include Tempo4.inc

end
chenillard.asm 3.C

25


Programme chenillard sur le PORTB le sens est dpendant de RA0 et RA3
La vitesse de dfilement dpend de RA1 et RA2

Configuration du picdes registres et appel des macros

config cpnon pwrtnon wdtnon oscxt

include registres.h

include stdmac.h
Dfinition des constantes
CTtempo
equ 100
B0
equ 0
B1
equ 1
B2
equ 2
B3
equ 3
SensBit0
equ 0
Rservaton des variables

org
0x20zreg zone registre libre usage gnral
NBtempo
Vitesse
Sens

rm
rm

rm
1
1

le programme commence ici

org
0zprog
Reset toujours ladresse 0
Initialisation
Init
bsf
STATUSRP0
Passer en page 1

clrf
TRISB
PORTB en sortie

bcf
STATUSRP0
Repasser en page 0

clrf
PORTB
Tout PORTB 0

bsf
PORTB0
Bit 0 du PORTB 1

movlf CTtempoVitesseInitialisation
de
la
Tempo

la boucle chenillard avec le test des touches


Sens de dfilement
Bascule SR mmorisant le sens de dfilement bit 0 du registre Sens
TestRA0
btfsc
PORTAB0
RA0 est il 0 Bouton
B0 appuy

goto
TestRA3
Si oui alors le bit 0 du
registre

bsf
SensSensBit0
Sens est mis 1 Set

26

TestRA3
B3 appuy

registre

RA3

PORTAB3

goto

TestSens

bcf

SensSensBit0

Sens est mis 0 Reset

SensSensBit0
Gauche

Test du bit 0 du registre Sens


Si 1 alors dfilement

Droite

Si 0 alors dfilement droite

Test du Sens de dfilement


TestSens
btfsc

goto
gauche

goto

est

il

Si oui alors le bit 0 du

Gauche

rlf

PORTB
goto
RegleVitesse

Rotation gauche

Droite

rrf

PORTB

Rotation droite

Rglage de la vitesse
RegleVitesse
btfsc
PORTAB1
appuy

goto
TestMoins
vitesse

Plus
incf
Vitesse

TestMoins
btfsc
PORTAB2
B2 appuy

goto
Temporisation

temporise
Moins
decf
Vitesse

Tempo Vitesse X Temporisation logicielle

Temporisation movff VitesseNBtempo


Attente
call
T1mS

decfsz NBtempo

goto
Attente

goto
TestRA0

Temporisation logicielle fichier import

include Tempo4.inc

end

27

Bouton

btfsc

RA1 est il 0 Bouton B1


Si oui alors incrmente

Si non alors TestMoins


RA1 est il 0 Bouton

Si oui alors dcrmente vitesse

Si non alors on

Initialisation de Tempo
Tempo base de temps
Dcrmente le NBtempo jusqua 0
Si pas 0 alors Attente
Si 0 on reboucle

Fichier des Tempo

Оценить