Академический Документы
Профессиональный Документы
Культура Документы
Gilles OLIVE
Chimie Industrielle
TRAVAUX PRATIQUES
TP 1
ACIDIMETRIE_________________________________________________________ (30)
TP 2
TP 3
TP 4
TP 5
TP 6
TP 7
TP 8
TP 9
Tome TP
On acquiert la connaissance des choses en les apprenant de quelqu'un ou en les dcouvrant par soi-mme. Ce
qu'on apprend vient d'une autre personne ou d'une aide extrieure ; ce que l'on dcouvre est autonome et d ses
propres efforts. Il est rare et difficile de dcouvrir sans chercher, mais si l'on cherche, la dcouverte est frquente
et facile ; par contre, si l'on ne sait pas comment chercher, la dcouverte est impossible.
(Archytus, Savant grec, 380 avant J.-C.)
La chimie thorique c'est quand on comprend tout mais que rien ne marche.
La pratique c'est quand tout marche mais on ne sait pas pourquoi.
Si on a russi les deux, rien ne marche et on ne comprend pas pourquoi.
(Anonyme)
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
INTRODUCTION
Ces TP ne sont pas des TP compliqus. D'ailleurs beaucoup ont dj t raliss au cours des annes
antrieures du cursus. Ces TP sont voir du ct contrle qualit dans le cadre d'une entreprise
certifie ISO 900X. Le but de l'enseignement qui suit est donc de former l'tudiant au respect des
procdures. Moi dans ce cadre, je ne suis plus le professeur, mais le directeur d'une entreprise
certifie qui emploie des techniciens.
Attention, vous tes en 3me anne et non plus en 1re anne. On vous demande donc de rflchir tout en
respectant les procdures. Les procdures dans le cadre de la qualit doivent tre respectes, et sont
parfaitement dcrites, sauf que le matriel n'est que rarement indiqu et c'est vous qui devez toujours
choisir le matriel adquat. Un dirigeant saura reconnatre rapidement, en fonction du choix du
matriel, un bon technicien. La prparation d'un laboratoire n'est donc pas seulement la recopie
du syllabus mais une analyse prcise de ce qu'on demande.
Ces laboratoires ont t conus pour tudiant seul pendant 4 heures. Vous tes par binme pendant
3h20. Ce qui veut dire que vous devez vous organiser pour optimiser le temps. Je rappelle que le non
respect de la procdure (ordre des oprations, non remise zro d'un appareil, etc.) ou tout retard dans
l'analyse cote cher l'entreprise. Pour mmoire, un atelier industriel produit 22 tonnes par heure.
Toute minute de retard c'est donc 367 kg de produit qui seront au mieux vendu en qualit technique
(quasiment un facteur 1000 au niveau du prix). Il est aussi noter que toute modification de protocole,
ainsi que toute erreur dans son excution doit tre clairement indique afin que la direction puisse
valuer l'impact et choisir ainsi le devenir du produit incrimin.
Vous remarquerez qu'il y a une logique dans l'ordre des TP. Ils ne sont pas aussi indpendants que ce
que l'on pense. Par exemple, au premier TP (acidimtrie), vous allez prparer des solutions qui
serviront pour les autres. Vous verrez aussi des techniques que vous utiliserez par la suite. La chimie
forme un tout, et une fois un concept manipul, il ne faut pas tourner la page ; il sert encore souvent
par la suite.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
4
Vous devez avoir votre propre cahier o vous numroterez les pages. La premire page doit comporter
clairement votre nom, le nom de l'cole ainsi que l'anne acadmique d'tude. Lors des prparations de
vos laboratoires vous n'crirez que sur les pages de droite, les pages de gauches tant rserves aux
modifications apportes au protocole ainsi qu'aux rsultats et aux erreurs. Vous adopterez la
prsentation suivante pour chaque laboratoire:
Date de la manip
Titre de la manipulation
Un code vous
Rfrence bibliographique:
But de la manipulation:
Ractions:
A + B
C + D
MMA + MMB
MMC + MMD
Numro de page
Les rapports de laboratoires, sauf cas contraire, sont rendre la sance qui suit. Un seul rapport par
binme est suffisant. Vous devrez obligatoirement utiliser les feuilles que je vous donne, mme si
elles contiennent des imperfections (parfois volontaire): ceci est dans un but de vous contraindre
vous adapter, car beaucoup d'entreprises ont leur propre modle.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
TP 0 INFORMATIONS DIVERSES
0.1.
!
!
!
Laisser scher partiellement le filtre sur verre de montre, avec signe de reconnaissance
quelques minutes dans une tuve 95-100 C.
Prparer trpied et triangle, voir ci-contre
Transfrer le filtre encore humide, ouverture vers le
bas, dans le creuset.
Couvrir le creuset par un capuchon en porcelaine
(fragile !) pendant la calcination pour viter
l'inflammation du papier.
Calciner dans les mmes conditions que celles qui
ont permis, d'amener le creuset poids constant:
soit au four lectrique;
soit au bec bunsen. Dans ce cas, on
carbonise d'abord petite flamme en
augmentant le chauffage partir du
moment o la fume se dgage. On
calcine ensuite (2-3 min au-dessus du
cne bleu) jusqu' disparition totale du
papier
(20
25
min)
Aprs
refroidissement au dessiccateur, peser et recommencer la calcination jusqu' poids
constant.
!
!
0.2.
Solutions tampon
0.2.1.
Premier mlange1
La Table 1 explique la prparation des principales solutions tampon, donne la gamme de pH, la
variation du pH avec la temprature.
Chaque solution est caractrise par un numro d'ordre qui permet (voir Table 2) de trouver le volume
ajouter selon le pH dsir.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
Table 1
Solution tampon
(
N
)
Composants
A
1 KCl 0,2M
2
Hydrognophtalate de
potassium 0,1 M
Mlange
B
HCl 0,2M
HCl 0,1 M
3 Idem
NaOH 0, 1 M
4 KH2PO4 0,1 M
NaOH 0,1 M
Tris 0,2 M
HCl 0,1 M
(hydroxymthyl)aminothane
HCl 0,1 M
7 Idem
NaOH 0,1 M
8 Na2HPO4 0,05M
NaOH 0,1 M
25 ml A + x ml B
Amener 100 ml (H2O)
50 ml A + x ml B
Amener 100 ml (H2O)
50 ml A + x ml B
Amener 100 ml (H2O)
50 ml A + x ml B
Amener 100 ml (H2O)
50 ml A + x ml B
Amener 100 ml (H2O)
50 ml A + x ml B
Amener 100 ml (H2O)
50 ml A + x ml B
Amener 100 ml (H2O)
50 ml A + x ml B
Amener 100 ml (H2O)
dpH/dt
Gamme de
pH 25 C
1,0 - 2,2
+0,001
2,4 - 4,0
4,2 - 6,2
-0,003
6,2 - 8,0
-0,020
7,2 - 9,0
-0,005
8,0 - 9,1
-0,010
9,4 - 10,6
-0,003
10,9 - 12,0
Table 2
SOLUTION TAMPON N
1
2
3
4
5
6
7
pH x(ml) pH x(ml) pH x(ml) pH x(ml) pH x(ml) pH x(ml) pH x(ml)
1,0 67,0 2,4 42,2 4,2
3,0
5,8
3,6
7,0 46,6 8,0 20,5 9,4
6,2
1,2 42,5 2,6 35,4 4,4
6,6
6,0
5,6
7,2 44,7 8,2 18,8 9,6 11,1
1,4 26,6 2,8 28,9 4,6 11,1 6,2
8,1
7,4 42,0 8,4 16,6 9,8 15,0
1,6 16,2 3,0 22,3 4,8 16,5 6,4 11,6 7,6 38,5 8,6 13,5 10,0 18,3
1,8 10,2 3,2 15,7 5,0 22,6 6,6 16,4 7,8 34,5 8,8
9,6 10,2 20,5
2,0
6,5
3,4 10,4 5,2 28,8 6,8 22,4 8,0 29,2 9,0
4,6 10,4 22,1
2,2
3,9
3,6
6,3
5,4 34,1 7,0 29,1 8,2 22,9
10,6 23,3
3,8
2,9
5,6 38,8 7,2 34,7 8,4 17,2
5,8 42,3 7,4 39,1 8,6 12,2
6,0 45,0 7,6 42,8 8,8
8,5
6,2 46,7 7,8 45,3 9,0
5,7
8,0 46,7
* Extrait de Handbook of Chemistry and Physics, 63rd dition, CRC Press, 1982-1983.
CHIMIE INDUSTRIELLE
07/01/2005
8
pH x(ml)
11,0 4,1
11,2 6,3
11,4 9,1
11,6 13,5
11,8 19,4
12,0 26,9
1re Edition
Tome TP
0.2.2.
Table 3
Buffer solutions
pH-value at Quantity relate to 1
20 C
litre
pH 1
3.73 g
134 ml
pH 2
6.43 g
3.58 g
8.2 ml
pH 3
8.47g
3.49 g
20.6 ml
pH 4
11.76 g
2.57 g
68 ml
pH 5
20.26 g
196.4 ml
pH 6
12.53 g
159.6 ml
pH 7
3.52 g
7.26 g
pH 8
4.77 g
20.5 ml
4.77 g
4.6 ml
4.77 g
18.3 ml
3.7 g
6.21 g
4g
4.45 g
0.9 g
0.375 g
0.222 g
95 ml
pH 9
pH 10
pH 11
pH 12
pH 13
CHIMIE INDUSTRIELLE
Substance
Potassium chloride (KCl)
Hydrochloric acid 1 mol/l (HCl)
Citric acid(C6H8O7.H2O)
Sodium chloride (NaCl)
Hydrochloric acid 1 mol/l (HCl)
with fungicide additive
Citric acid(C6H8O7.H2O)
Sodium chloride (NaCl)
Sodium hydroxide 1 mol/l (NaOH)
with fungicide additive
Citric acid(C6H8O7.H2O)
Sodium chloride (NaCl)
Sodium hydroxide 1 mol/l (NaOH)
with fungicide additive
Citric acid(C6H8O7.H2O)
Sodium hydroxide 1 mol/l (NaOH)
with fungicide additive
Citric acid(C6H8O7.H2O)
Sodium hydroxide 1 mol/l (NaOH)
with fungicide additive
Potassium dihydrogen phosphate (KH2PO4)
di-Sodium hydrogen phosphate (Na2HPO4.2 H2O)
with fungicide additive
Sodium tetraborate (Na2B4O7.10 H2O)
Hydrochloric acid 1 mol/l (HCl)
Sodium tetraborate (Na2B4O7.10 H2O)
Hydrochloric acid 1 mol/l (HCl)
Sodium tetraborate (Na2B4O7.10 H2O)
Sodium hydroxide 1 mol/l (NaOH)
Potassium chloride (KCl)
Boric acid (H3BO3 )
Sodium hydroxide (NaOH)
di-Sodium hydrogen phosphate (Na2HPO4.2 H2O)
Sodium hydroxide (NaOH)
Glycine (NH2CH2COOH)
Sodium chloride (NaCl)
Sodium hydroxide 1 mol/l (NaOH)
07/01/2005
1re Edition
Tome TP
0.2.3.
Troisime mlange3
Les solutions mres et les solutions tampons doivent tre prpares avec de l'eau bi-distille, exempte
de CO2. Les volumes x (en ml) de solutions mres ncessaires pour obtenir les diffrentes valeurs pH,
sont indiqus la table suivante (Table 5 page 9).
Table 4
Solution
tampon
N
1
2
3
4
idem N 3
idem N 2
potassium dihydrognophosphate
1/15 mol/l [KH2PO4: 9,073 g/l]
di-sodiumhydrogno-phosphate
1/15 mol/l
[Na2HPO4.2 H2O: ll,87 g/l]
7
8
9
10
11
12
13
14
15
*
Acide dithyl-5,5-barbiturique,
HCl 0,1 mol/l
sel de sodium 0,1 mol/l
[Barbital-Na: 20,62 g/l]
Borax solution 0,05 mol/l
[H3BO3: 12,37 g/l + 100 ml NaOH 1 HCl 0,1 mol/l
mol/l]
Composition de
la solution tampon
x parts A +
(100-x) parts B
x parts A +
(100-x) parts B
50 ml A + x ml B
100 ml*
50 ml A + x ml B
100 ml*
x parts A +
(100-x) parts B
x parts A +
(100-x) parts B
x parts A =
(100-x) parts B
x parts A +
(100-x) parts B
x parts A +
(100-x) parts B
idem N 1
di-sodiumhydrogno-phosphate
x parts A +
0,2 mol/l [Na2HPO4.2 H2O: 35,60
(100-x) parts B
g/l]
acide actique 0,1 mol/l
x parts A +
(100-x) parts B
25 ml A +
x ml B 100 ml*
10 ml A +
x ml B 100 ml*
25 ml A +
x ml B 100 ml*
Sodium hydrogno-carbonate 0,1 x parts A +
mol/l [NaHCO3: 8,401 g/l]
(100-x) parts B
HCl 0,1 mol/l
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
9
Table 5 - Ce tableau indique le volume x (en ml) des solutions mres (prpares selon les indications
page 8 Table 4) afin d'obtenir une solution tampon avec une valeur pH dtermine.
pH
1,0
1,2
1,4
1,6
1,8
2,0
2,2
2,4
2,6
2,8
3,0
3,2
3,4
3,6
3,8
4,0
4,2
4,4
4,6
4,8
5,0
5,2
5,4
5,6
5,8
6,0
6,2
6,4
6,6
6,8
7,0
7,2
7,4
7,6
7,8
8,0
8,2
8,4
8,6
8,8
9,0
9,2
9,4
9,6
9,8
10,0
10,2
10,4
10,6
10,8
11,0
11,2
11,4
11,6
11,8
12,0
12,2
12,4
12,6
12,8
pH
11,1
26,4
36,2
43,9
50,7
56,5
62,3
68,4
74,7
81,0
86,2
90,3
9,0
17,9
23,6
27,6
30,2
32,2
34,1
36,0
37,9
39,9
42,1
44,8
47,8
51,2
55,1
60,0
66,4
74,9
85,6
3,0
6,7
11,1
16,5
22,6
28,8
34,4
39,1
42,4
45,0
46,7
CHIMIE INDUSTRIELLE
87,1
78,0
70,3
64,5
60,3
57,2
54,8
53,2
99,2
98,4
97,3
95,5
92,8
88,9
83,0
75,4
65,3
53,4
41,3
29,6
19,7
12,8
7,4
3,7
53,3
55,0
57,6
60,8
65,2
70,6
75,6
81,2
86,2
90,1
93,2
53,0
55,4
58,0
62,1
66,9
73,6
83,5
95,6
10
98,8
94,5
90,0
85,1
80,3
76,0
72,0
68,4
65,1
62,0
59,1
56,4
53,7
51,2
49,0
46,9
44,7
42,2
40,0
37,4
34,5
31,4
27,9
23,5
19,0
13,8
9,8
6,8
4,6
41,0
34,3
27,8
21,6
15,9
10,9
6,7
3,3
0,0
100,0
94,7
92,0
88,4
84,0
78,9
73,2
67,2
62,5
58,8
55,7
53,6
52,2
51,2
50,4
49,5
48,7
47,6
46,0
43,2
39,1
31,8
21,4
9
07/01/2005
11
12
13
14
15
10,9
16,6
23,9
33,5
44,9
56,6
67,8
76,8
84,0
89,3
43,4
40,4
36,5
31,4
25,4
19,6
14,6
10,2
6,6
86,2
79,6
71,3
62,0
52,0
42,0
31,9
22,5
16,0
11,7
44,7
42,0
39,3
33,7
27,9
22,9
17,3
13,0
8,8
5,3
10,0
18,4
29,3
42,0
53,4
63,7
73,1
81,2
87,9
10
11
12
13
14
15
pH
1,0
1,2
1,4
1,6
1,8
2,0
2,2
2,4
2,6
2,8
3,0
3,2
3,4
3,6
3,8
4,0
4,2
4,4
4,6
4,8
5,0
5,2
5,4
5,6
5,8
6,0
6,2
6,4
6,6
6,8
7,0
7,2
7,4
7,6
7,8
8,0
8,2
8,4
8,6
8,8
9,0
9,2
9,4
9,6
9,8
10,0
10,2
10,4
10,6
10,8
11,0
11,2
11,4
11,6
11,8
12,0
12,2
12,4
12,6
12,8
pH
1re Edition
Tome TP
0.2.4.
10
0.94 0.99 1.00 1.00 1.01 1.01 1.01 1.01 1.02 1.02 0.32
1.99 1.99 2.00 2.00 2.00 2.00 2.00 2.00 2.00 2.00 0.03
3.03 3.02 3.00 3.00 2.99 2.98 2.98 2.98 2.98 2.97 0.03
4.03 4.02 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 0.04
5.05 5.02 5.00 5.00 5.00 5.02 5.04 5.07 5.10 5.13 0.07
6.03 6.01 6.00 6.02 6.04 6.06 6.09 6.13 6.18 6.24 0.03
7.13 7.05 7.00 6.98 6.97 6.96 6.96 6.97 6.98 7.00 0.03
8.18 8.09 8.00 7.94 7.90 7.86 7.82 7.80 7.77 7.75 0.014
9.24 9.11 9.00 8.93 8.86 8.80 8.75 8.71 8.67 8.64 0.02
10.24 10.10 10.00 9.90 9.82 9.75 9.68 9.62 9.55 9.49 0.013
11.45 11.20 11.00 10.81 10.64 10.48 10.33 10.19 10.06 9.93 0.013
12.58 12.26 12.00 11.75 11.53 11.31 11.09 10.88 10.68 10.48 0.02
13.71 13.35 13.00 12.66 12.37 12.10 11.84 11.61 11.40 11.20
0.3.
dilution
influence
pH 1/2
+0.30
+0.25
+0.10
+0.05
+0.08
+0.11
+0.06
+0.10
+0.02
+0.01
-0.04
-0.22
pH = 4,008 25 C
pH = 6,865 25 C
pH = 9,18 25C
Indicateurs colors
0.4.1.
Indicateurs de pH
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
11
De Riedel-deHan2
Substances
CHIMIE INDUSTRIELLE
pH - value
color changes
0.0 - 2.2
0.0 - 2.6
0.0 - 2.6
0.0 - 3.0
0.0 - 3.5
0.0 - 3.6
0.1 - 2.7
0.2- 1.8
0.8 - 2.6
1.0 - 2.8
1.2 - 2.3
1.2 - 2.8
1.2 - 2.8
1.2 - 2.8
1.4 - 2.4
1.4 - 3.2
2.0 - 4.7
2.9-4.0
3.0-4.5
3.0 - 4.6
3.0 - 4.6
3.0 - 5.0
3.0 - 5.2
3.1 - 4.4
3.8 - 5.4
4.0 - 7.0
4.4 - 6.2
4.4 - 6.2
4.5 - 6.5
4.7 - 7.9
4.8 - 6.4
5.0 - 7.0
5.0 - 8.0
5.2 - 6.8
5.3 - 6.8
5.8 - 7.2
6.0 - 7.6
6.0 - 7.6
6.4 - 8.2
6.4 - 8.2
6.6 - 8.6
6.8 - 8.0
6.9 - 8.0
7.0 - 8.8
7.3 - 8.7
7.4 - 8.6
7.4 - 9.0
7.6 - 8.9
7.8 - 9.8
8.0 - 10.0
8.0 - 9.6
8.0 - 9.6
8.2 - 9.8
9.0 - 13.0
9.3 - 10.5
9.4 - 14.0
10.0- 12.1
11.0 - 13.0
11.1 - 12.7
11.5 - 14.0
11.6 - 14.0
12.0- 13.0
12.0 - 14.0
yellow-green/blue
yellow-green
yellow-green
yellow-green fluorescent
yellow-blue
yellow brown/orange-cherry/red
yellow-violet
red-yellow (1st color change)
yellow-blue/violet
red-yellow
violet/red-yellow
violet/red-brown/yellow (1st color change)
violet/red-brown/yellow (1st color change)
red-yellow (1st color change)
colorless-pink fluorescent
colorless-pink
colorless-yellow
red-yellow
red-orange
yellow-purpur
yellow-blue/violet
yellow-blue
blue-red
red-yellow/orange
yellow-blue
orange-yellow
red-yellow/orange
red-yellow/orange
red-yellow
colorless-yellow
yellow-violet
colorless-yellow
red-blue
yellow-purpur
orange/yellow-purple
yellow-red (1st color change)
yellow-blue
yellow-blue
yellow-red
yellow-red
colorless-yellow
blue/red-orange/yellow
yellow-red
yellow-purpur (2nd color change)
redish-blue
amber color-orange
yellow-purple (2nd color change)
orange-red
colorless-red
yellow-blue/violet
green/yellow-blue (2nd color change)
green/yellow-blue (2nd color change)
colorless-red
yellow/green-violet
colorless-blue
blue-orange
light yellow-red/brown
red-purple (2nd color change)
yellow-orange/brown
blue-yellow
yellow-pink
yellow-red
purple-colorless
07/01/2005
1re Edition
Tome TP
12
De Merck3
Indicateur
Domaine de virage
Changement de couleur
0,0
jaune
0,0
jaune
0,0
jaune
0,0
orange
0,1
jaune
0,1
jaune
0,2
incolore
0,2
rouge
Pourpre de m-crsol
0,8
jaune
1,2
rouge
Bleu de thymol
1,2
rouge
2,8
jaune
Bleu de p-xylnol
1,2
rouge
2,8
jaune
1,2
rouge
1,4
incolore
1,4
incolore
2,8
incolore
2,9
rouge
3,0
jaune
3,2
incolore
2,4
ros
fluorescent
3,2
rose
4,7
jaune
4,0
jaune-orange
4,6
bleu-violet
3,0
jaune
4,6
bleu-violet
3,0
bleu
3,1
rouge
4,3
rouge
3,8
jaune
5,2
jaune-orange
4,4
jaune-orange
5,2
bleu
5,4
bleu
Vert malachite-oxalate
(C.I.N 42000)
Vert brillant
(C.I.N 42040)
Eosine jauntre
(C.I.N 45380)
Erythrosine B
(C.I.N 45430)
Vert de mthyle
(CI. N 42590)
Violet de mthyle
(C.N. N 42535)
Acide picrique
(C.I.N 10305)
Rouge de crsol
Violet cristallis
(C.I.N 42555)
Pentamthoxy-2,2',2",4,4'triphnylcarbinol
Eosine bleutre
(C.I.N 45400)
Rouge de quinaldine
Dinitro-2,4-phnol
Dimthylamino-4-azobenzne
(C.I.N 11020)
Bleu de bromochlorophnol
Bleu de bromophnol
Rouge Congo
(C.I.N 22120)
Orang de mthyle
(C.I.N 13025)
Indicateur mixte 4,5 selon
Mortimer
Vert de bromocrsol
CHIMIE INDUSTRIELLE
2,0
bleu-vert
2,6
vert
3,0
vert
fluorescent
3,6
rouge
2,3
bleu
2,7
violet
1,0
jaune
1,8
jaune
2,6
bleu-violet
2,8
jaune
07/01/2005
1re Edition
Tome TP
Domaine de virage
Changement de couleur
Indicateur
4,0
incolore
4,3
jaune
Dinitro-2,5-phnol
Acide alizarine-sulfonique sel
sodique
(C.I.N 58005)
Rouge de mthyle
(C.I.N 13020)
Indicateur mixte 5
Rouge de chlorophnol
4,4
rouge
4,4
rouge-violet
4,8
jaune
5,0
rouge
5,2
jaune
Tournesol
(C.I.N 1242)
Pourpre de bromocrsol
Rouge de bromophnol
13
5,2
orang-jaune
Nitro-4-phnol
Bleu de bromoxylnol
Alizarine
(C.I.N 58000)
Bleu de bromothymol
Rouge de phnol
Nitro-3-phnol
Rouge neutre
(C.I.N 50040)
Ttrabromo-4,5,6,7-phtaline
Rouge de crsol
5,4
incolore
5,7
jaune
5,8
jaune
6,0
jaune
6,4jaune
6,6
incolore
6,8
bleurouge
7,0
incolore
7,0
orang
5,8
jaune
6,3
violet
6,2
jaune-orang
5,8
vert
6,4
pourpre
8,0
bleu
6,8
pourpre
6,8
pourpre
7,5
jaune
7,5
bleu
7,2
rouge
7,6
bleu
8,0
pourpre
8,8
pourpre
Bleu de thymol
8,0
jaune
9,6
bleu
Bleu de p-xylnol
8,0
jaune
9,6
bleu
8,2
incolore
9,3
incolore
9,4
violet
10,0
jaune-clair
9,8
rouge-violet
10,5
bleu
14,0
rose
12,1
jaune-bruntre
Pourpre de m-crsol
Phnolphtaline
Thymolphtaline
Bleu alcalin
(C.I.N 42765)
Jaune d'alizarine GG
(C.I.N 14025)
CHIMIE INDUSTRIELLE
dissoudre 0,1 g dans 100 ml d'thanol (20 /o) ou 0,04 g dans 0,64
ml de lessive de soude 0,1 mol/l et complter avec de l'eau jusqu'
100 ml
8,2
dissoudre 0,1 g dans 100 ml d'thanol (20 /o) ou 0,04 g dans 1,13
rouge-violet ml de lessive de soude 0,1 mol/l et complter avec de l'eau
jusqu'100 ml
8,6
0,3 g dans 100 ml d'thanol (96 %) ou 0,08 g dans100 ml d'eau
jaune-orang
8,0
orang-jaune 0,1 g dans 100 ml d'thanol (70 %)
7,1
bruntre
7,4
jaune
Napthne-1-phtaline
8,3
bleu-vert
9,0
pourpre
07/01/2005
1re Edition
Tome TP
Domaine de virage
Changement de couleur
Indicateur
10,1
rouge
12,0
jaune
11,5
bleu
11,6
orange
Atizarine
(C.I.N 58000)
Jaune titane
(C.I.N 19540)
Carmin d'indigo
(C.I.N 73015)
Bleu d'epsilon
0.4.2.
14
12,1
pourpre
13,0
rouge
13,0
jaune
13,0
violet
Indicateurs d'Oxydo-rduction3
Indicateur
Potentiel
d'oxydorduction Valeur
(V)
rH
E0 (pH=0) E0 (pH=7)
(20 C)
(30 C)
Acide diphnylaminesulfonique-4 sel de
baryum
Acide N-phnylanthranilique
Bipyridine-2,2'
(fer[II]complexe)
Bleu de crsyl brillant
(C.I.N 51010)
Bleu de mthylne
(C.I.N 52015)
Bleu de Nil, sulfate
(C.I.N 51180)
Bleu de variamine sel B
(C.I.N 37255)
Cacothline
Carmin d'indigo
(Indigosulfonate, sel
disodique)
(C.I.N 73015)
Dichloro-2,6-phnolindophnol sel sodique
(dihydrat)
Dimthyl-3,3'-naphtidine
(Diamino-4,4'-dimthyl3,3'-binaphthaline-1,1')
28,5
Changement de
couleur
Forme
oxyde
Forme
rduite
rougeviolet
incolore
Solution indicatrice
(prparation)
+ 0,89
rougepourpre
incolore
+ 1,03
bleu ple
rouge
bleu
incolore
bleu
incolore
+ 0,58
+ 0,05
+ 0,53
(30C)
+ 0,01
+ 0,41
-0,12
bleu-rouge
incolore
+ 0,31
bleu-violet
(acidit)
jaune
(alcalinit)
incolore
+ 0,712
+ 0,525
14,5
18,1
jaune
rougeviolet
(incolore
irrversible
sature dans l'eau
si la
rduction
est trop
forte)
+ 0,29
-0,11
10
bleu
jauntre
+ 0,67
+ 0,23
22
bleu
incolore
rouge
pourpre
incolore
+ 0,78
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
15
Indicateur
E0 (pH=0) E0 (pH=7)
(20 C)
(30 C)
Changement de
couleur
Forme
oxyde
Forme
rduite
N,N-Dimthylphnylnediomine 1,4dichlorure
+ 0,751
bleu-fonc
incolore
Diphnylamine
+ 0,76
bleu-violet
incolore
N,N'-Diphnyl-benzidine
26 3,0
violet
incolore
40
bleu
orangrouge
+ 1,06
Solution indicatrice
(prparation)
+ 0,57
+ 0,84
brunjauntre
bleu
Phnanthroline 1,10
+ 1,14
+ 1,06
bleu-ple
rouge
Rouge neutre
(C.I.N 50040)
+ 0,24
-0,29
incolore
Safranine
(C.I.N 50240)
+ 0,24
-0,29
incolore
Terpyridine-2,2':6',2''
[fer(II)complexe]
+ 1,25
Thionine
(C.I.N 52000)
+ 0,56
0.5.
+ 0,06
16
rouge
violet
bleu violet
(acidit)
brun
(alcalinit)
bleu-ple
rouge
violet
incolore
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
0.5.1.
16
% en poids de
HNO3
Densit
D 20
4
% en poids de
HNO3
Densit
D 20
4
D 20
4
% en poids de
HNO3
1,000
1,005
1,010
1,015
1,020
1,025
1,030
1,035
1,040
1,045
1,050
1,055
1,060
1,065
1,070
1,075
1,080
1,085
1,090
1,095
1,100
1,105
1,110
1,115
1,120
1,125
1,130
1,135
1,140
1,145
1,150
1,155
1,160
1,165
1,170
1,175
1,180
1,185
1,190
1,195
1,200
1,205
1,210
1,215
1,220
1,225
1,230
1,235
1,240
1,245
1,250
1,255
0,3333
1,255
2,164
3,073
3,982
4,883
5,784
6,661
7,530
8,398
9,259
10,12
10,97
11,81
12,65
13,48
14,31
15,13
15,95
16,76
17,58
18,39
19,19
20,00
20,79
21,59
22,38
23,16
23,94
24,71
25,48
26,24
27,00
27,76
28,51
29,25
30,00
30,74
31,47
32,21
32,94
33,68
34,41
35,16
35,93
36,70
37,48
38,25
39,02
39,80
40,58
41,36
1,260
1,265
1,270
1,275
1,280
1,285
1,290
1,295
1,300
1,305
1,310
1,315
1,320
1,325
1,330
1,335
1,340
1,345
1,350
1,355
1,360
1,365
1,370
1,375
1,380
1,385
1,390
1,395
1,400
1,405
1,410
1,415
1,420
1,425
1,430
1,435
1,440
1,445
1,450
1,455
1,460
1,465
1,470
1,475
1,480
1,485
1,490
1,495
1,500
1,501
1,502
1,503
42,14
42,92
43,70
44,48
45,27
46,06
46,85
47,63
48,42
49,21
50,00
50,85
51,71
52,56
53,41
54,27
55,13
56,04
56,95
57,87
58,78
59,69
60,67
61,69
62,70
63,72
64,74
65,84
66,97
68,10
69,23
70,39
71,63
72,86
74,09
75,35
76,71
78,07
79,43
80,88
82,39
83,91
85,50
87,29
89,07
91,13
93,49
95,46
96,73
96,98
97,23
97,49
1,504
1,505
1,506
1,507
1,508
1,509
1,510
1,511
1,512
1,513
97,74
97,99
98,25
98,50
98,76
99,01
99,26
99,52
99,77
100,00
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
17
0.5.2.
Acide sulfurique
MM H2SO4 = 98,08 g.mol-1
Densit
20
4
1,000
1,005
1,010
1,015
1,020
1,025
1,030
1,035
1,040
1,045
1,050
1,055
1,060
1,065
1,070
1,075
1,080
1,085
1,090
1,095
1,100
1,105
1,110
1,115
1,120
1,125
1,130
1,135
1 140
1,145
1,150
1,155
1,160
1,165
1,170
1,175
1,180
1,185
1 190
1,195
1,200
1,205
1,210
1,215
1,220
1,225
1,230
1,235
1,240
1,245
1,250
1,255
% en poids de
H2SO4
Densit
0,2609
0,9855
1,731
2,485
3,242
4,000
4,746
5,493
6,237
6,956
7,704
8,415
9,129
9,843
10,56
11,26
11,96
12,66
13,36
14,04
14,73
15,41
16,08
16,76
17,43
18,09
18,76
19,42
20,08
20,73
21,38
22,03
22,67
23,31
23,95
24,58
25,21
25,84
26,47
27,10
27,72
28,33
28,95
29,57
30,18
30,79
31,40
32,01
32,61
33,22
33,82
34,42
1,260
1,265
1,270
1,275
1,280
1,285
1,290
1,295
1,300
1,305
1,310
1,315
1,320
1,325
1,330
1,335
1,340
1,345
1,350
1,355
1,360
1,365
1,370
1,375
1,380
1,385
1,390
1,395
1,400
1,405
1,410
1,415
1,420
1,425
1,430
1,435
1,440
1,445
1,450
1,455
1,460
1,465
1,470
1,475
1,480
1,485
1,490
1,495
1,500
1,505
1,510
1,515
CHIMIE INDUSTRIELLE
20
4
% en poids de
H2SO4
Densit
35,01
35,60
36,19
36,78
37,36
37,95
38,53
39,10
39,68
40,25
40,82
41,39
41,95
42,51
43,07
43,62
44,17
44,72
45,26
45,80
46,33
46,86
47,39
47,92
48,45
48,97
49,48
49,99
50,50
51,01
51,52
52,02
52,51
53,01
53,50
54,00
54,49
54,97
55,45
55,93
56,41
56,89
57,36
57,84
58,31
58,78
59,24
59,70
60,17
60,62
61,08
61,54
1,520
1,525
1,530
1,535
1,540
1,545
1,550
1,555
1,560
1,565
1,570
1,575
1,580
1,585
1,590
1,595
1,600
1,605
1,610
1,615
1,620
1,625
1,630
1,635
1,640
1,645
1,650
1,655
1,660
1,665
1,670
1,675
1,680
1,685
1,690
1,695
1,700
1,705
1,710
1,715
1,720
1,725
1,730
1,735
1,740
1,745
1,750
1,755
1,760
1,765
1,770
1,775
07/01/2005
20
4
% en poids
de H2SO4
Densit
D 20
4
% en poids de
H2SO4
62,00
62,45
62,91
63,36
63,81
64,26
64,71
65,15
65,59
66,03
66,47
66,91
67,35
67,79
68,23
68,66
69,09
69,53
69,96
70,39
70,82
71,25
71,67
72,09
72,52
72,95
73,37
73,80
74,22
74,64
75,07
75,49
75,92
76,34
76,77
77,20
77,63
78,06
78,49
78,93
79,37
79,81
80,25
80,70
81,16
81,62
82,09
82,57
83,06
83,57
84,08
84,61
1,780
1,785
1,790
1,795
1,800
1,805
1,810
1,815
1,820
1,821
1,822
1,823
1,824
1,825
1,826
1,827
1,828
1,829
1,830
1,831
1,832
1,833
85,16
85,74
86,35
86,99
87,69
88,43
89,23
90,12
91,11
91,33
91,56
91,78
92,00
92,25
92,51
92,77
93,03
93,33
93,64
93,94
94,32
94,72
1re Edition
Tome TP
0.5.3.
18
0.5.4.
% en poids de
H3PO4
Densit
D 20
4
D 20
4
% en poids de
H3PO4
1,0038
1,0092
1,0146
1,0200
1,0255
1,0309
1,0365
1,0420
1,0476
1,0532
1,0590
1,0647
1,0705
1,0764
1,0824
1,0884
1,0946
1,1008
1,1071
1,1134
1,1199
1,1263
1,1329
1,1395
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1,1462
1,1529
1,1597
1,1665
1,1735
1,1805
1,216
1,254
1,293
1,335
1,379
1,426
1,476
1,526
1,579
1,633
1,689
1,746
1,770
1,794
1,819
1,844
1,870
25
26
27
28
29
30
35
40
45
50
55
60
65
70
75
80
85
90
92
94
96
98
100
Acide chlorhydrique
MM HCl = 36,47 g.mol-1
Densit
20
4
% en poids de
HCl
Densit
0,3600
1,360
2,364
3,374
4,388
5,408
6,433
7,464
8,490
9,510
10,52
11,52
12,51
13,50
1,070
1,075
1,080
1,085
1,090
1,095
1,100
1,105
1,110
1,115
1,120
1,125
1,130
1,135
1,000
1,005
1,010
1,015
1,020
1,025
1,030
1,035
1,040
1,045
1,050
1,055
1,060
1,065
CHIMIE INDUSTRIELLE
20
4
% en poids de
HCl
Densit
D 20
4
% en poids de
HCl
14,495
15,485
16,47
17,45
18,43
19,41
20,39
21,36
22,33
23,29
24,25
25,22
26,20
27,18
1,140
1,145
1,150
1,155
1,160
1,165
1,170
1,175
1,180
1,185
1,190
1,195
1,198
28,18
29,17
30,14
31,14
32,14
33,16
34,18
35,20
36,23
37,27
38,32
39,37
40,00
07/01/2005
1re Edition
Tome TP
19
0.5.5.
Ammoniaque
MM NH3 = 17,03 g.mol-1
Densit
0.5.6.
% en poids de
NH3
Densit
D 20
4
D 20
4
% en poids de
NH3
0,998
0,996
0,994
0,992
0,990
0,988
0,986
0,984
0,982
0,980
0,978
0,976
0,974
0,972
0,970
0,968
0,966
0,964
0,962
0,960
0,958
0,956
0,954
0,952
0,950
0,948
0,946
0,0465
0,512
0,977
1,43
1,89
2,35
2,82
3,30
3,78
4,27
4,76
5,25
5,75
6,25
6,75
7,26
7,77
8,29
8,82
9,34
9,87
10,405
10,95
11,49
12,03
12,58
13,14
0,944
0,942
0,940
0,938
0,936
0,934
0,932
0,930
0,928
0,926
0,924
0,922
0,920
0,918
0,916
0,914
0.9T2
0,910
0,908
0,906
0,904
0,902
0,900
0,898
0,896
0,894
0,892
13,71
1429
14,88
15,47
16,06
16,65
17,24
17,85
18,45
19,06
19,67
20,27
20,88
21,50
22,125
22,75
23,39
24,03
24,68
25,33
26,00
26,67
27,33
28,00
28,67
29,33
30,00
Lessive de soude
MM NaOH = 40,01 g.mol-1
Densit
20
4
% en poids de
NaOH
Densit
0,159
1,045
1,94
2,84
3,745
4,655
5,56
6,47
7,38
8,28
9,19
10,10
11,01
11,92
12,83
13,73
14,64
15,54
1,180
1,190
1,200
1,210
1,220
1,230
1,240
1,250
1,260
1,270
1,280
1,290
1,300
1,310
1,320
1,330
1,340
1,350
1,000
1,010
1,020
1,030
1,040
1,050
1,060
1,070
1,080
1,090
1,100
1,110
1,120
1,130
1,140
1,150
1,160
1,170
CHIMIE INDUSTRIELLE
20
4
% en poids de
NaOH
Densit
D 20
4
% en poids de
NaOH
16.44
17,345
18,255
19,16
20.07
20,98
21,90
22,82
23,73
24,645
25,56
26,48
27,41
28,33
29,26
30,20
31,14
32,10
1.360
1,370
1,380
1,390
1,400
1,410
1,420
1,430
1,440
1,450
1,460
1,470
1,480
1,490
1,500
1,510
1,520
1,530
33,06
34,03
35,01
36,00
36,99
37,99
38,99
40,00
41,03
42,07
43,12
44,17
45,22
46,27
47,33
48,38
49,44
50,50
07/01/2005
1re Edition
Tome TP
0.5.7.
20
20
4
% en poids de
KOH
Densit
0,197
1,295
2,38
3,48
4,58
5,66
6,74
7,82
8,89
9,96
11,03
12,08
13,14
14,19
15,22
16,26
17,29
18,32
1,180
1,190
1,200
1,210
1,220
1,230
1,240
1,250
1,260
1,270
1,280
1,290
1,300
1,310
1,320
1,330
1,340
1,350
1,000
1,010
1,020
1,030
1,040
1,050
1,060
1,070
1,080
1,090
1,100
1,110
1,120
1,130
1,140
1,150
1,160
1,170
0.5.8.
20
4
% en poids de
KOH
Densit
D 20
4
% en poids de
KOH
19,35
20,37
21,38
22,38
23,38
24,37
25,36
26,34
27,32
28,29
29,25
30,21
31,15
32,09
33,03
33,97
34,90
35,82
1,360
1,370
1,380
1,390
1,400
1,410
1,420
1,430
1,440
1,450
1,460
1,470
1,480
1,490
1,500
1,510
1,520
1,530
36,735
37,65
38,56
39,46
40,37
41,26
42,155
43,04
43,92
44,79
45,66
46,53
47,39
48,25
49,10
49,95
50,80
51,64
Dsignation
Acide actique (cristallisable) DAB 7
Acide actique (cristallisable) 99-100 %
Acide actique dilu DAB 7
Acide bromhydrique
Acide chlorhydrique DAB 7
Acide chlorhydrique concentr (1,16)
Acide chlorhydrique concentr (1,18)
Acide chlorhydrique fumant
Acide fluorhydrique
Acide fluorhydrique
Acide formique
Acide iodhydrique
Acide nitrique DAB 7
Acide nitrique concentr
Acide nitrique fumant
Acide perchlorique
Acide perchlorique
Acide phosphorique DAB 7
Acide phosphorique concentr (1,71)
Acide phosphorique concentr (1,75)
Acide sulfurique concentr
Acide sulfurique dilu
Ammoniaque
Ammoniaque
Ammoniaque
Lessive de potasse
Lessive de potasse
Lessive de soude
*
20
% en poids
Densit D 4
Concentration (mol.l-1)*
96
99 - 100
30
40
25
32
36
37
48
40
98 - 100
57
25
65
100
70
60
25
85
89
95- 97
25
35
30
25
47
30
33
1,06
1,06
1,04
1,38
1,12
1,16
1,18
1,19
1,16
1,13
1,22
1,7
1,15
1,40
1,52
1,67
1,53
1,15
1,71
1,75
1,84
1,18
0,88
0,88
0,91
1,5
1,3
1,36
17
18
5
7
6
10
12
12,5
28
23
26
7,5
5
14
21
12
9
3
15
16
18
6
18
15,5
13,5
12,5
7
11
Valeurs arrondies
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
21
Tome TP
Dr. Gilles OLIVE
0.6.
Interprtation des rsultats par le calcul statistique
0.6.1.
Gnralit
Le calcul d'incertitude classique dans lequel on admet que toutes les erreurs se cumulent est trop
pessimiste. La mthode statistique permet de calculer la valeur de l'erreur avec une probabilit donne.
Le calcul statistique ne s'applique qu'a un ensemble de faits exprimentaux significatifs d'une
catgorie d'exprimentateurs.
Supposons qu'une solution doser ait un titre rel X. Une famille d'tudiants dose cette solution et
trouve les valeurs Xi soient X1, X2, X3 ..... Xn.
Avec quelle prcision va t-on connatre le titre de cette solution:
X X
Statistiquement, les rsultats se repartissent suivant une courbe de
Gauss qui est dfinie par 2 paramtres:
!
l'cart-type =
Dans ces conditions, un rsultat isol Xi a 95 % de chances de se trouver dans les limites suivantes:
x .t
(les valeurs de Xi qui sortent de cet intervalle sont liminer).
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
22
P 0,9
0,158
0,142
0,137
0,134
0,132
0,131
0,130
0,130
0,129
0,129
0,129
0,128
0,128
0,128
0,128
0,128
0,128
0,127
0,127
0,127
0,127
0,127
0,127
0,127
0,127
0,127
0,127
0,127
0,127
0,127
0,126
0,126
0,126
0,126
0,8
0,325
0,289
0,277
0,271
0,267
0,265
0,263
0,262
0,261
0,260
0,260
0,259
0,259
0,258
0,258
0,258
0,257
0,257
0,257
0,257
0,257
0,256
0,256
0,256
0,256
0,256
0,256
0,256
0,256
0,256
0,255
0,254
0,254
0,253
0,7
0,510
0,445
0,424
0,414
0,408
0,404
0,402
0,399
0,398
0,397
0,396
0,395
0,394
0,393
0,393
0,392
0,392
0,392
0,391
0,391
0,391
0,390
0,390
0,390
0,390
0,390
0,389
0,389
0,389
0,389
0,388
0,387
0,386
0,385
CHIMIE INDUSTRIELLE
0,6
0,727
0,617
0,584
0,569
0,559
0,553
0,549
0,546
0,543
0,542
0,540
0,539
0,538
0,537
0,536
0,535
0,534
0,534
0,533
0,533
0,532
0,532
0,532
0,531
0,531
0,531
0,531
0,530
0,530
0,530
0,529
0,527
0,526
0,524
0,5
1,000
0,816
0,765
0,741
0,727
0,718
0,711
0,706
0,703
0,700
0,697
0,695
0,694
0,692
0,691
0,690
0,689
0,688
0,688
0,687
0,686
0,686
0,685
0,685
0,684
0,684
0,684
0,683
0,683
0,683
0,681
0,679
0,677
0,674
0,4
1,376
1,061
0,978
0,941
0,920
0,906
0,896
0,889
0,883
0,879
0,876
0,873
0,870
0,868
0,866
0,865
0,863
0,862
0,861
0,860
0,859
0,858
0,858
0,857
0,856
0,856
0,855
0,855
0,854
0,854
0,851
0,848
0,845
0,842
0,3
1,963
1,386
1,250
1,190
1,156
1,134
1,119
1,108
1,100
1,093
1,088
1,083
1,079
1,076
1,074
1,071
1,069
1,067
1,066
1,064
1,063
1,061
1,060
1,059
1,058
1,058
1,057
1,056
1,055
1,055
1,050
1,046
1,041
1,036
07/01/2005
0,2
3,078
1,886
1,638
1,533
1,476
1,440
1,415
1,397
1,383
1,372
1,363
1,356
1,350
1,345
1,341
1,337
1,333
1,330
1,328
1,323
1,325
1,321
1,319
1,318
1,316
1,315
1,314
1,313
1,311
1,310
1,303
1,296
1,289
1,282
0,1
6,314
2,920
2,353
2,132
2,015
1,943
1,895
1,860
1,833
1,812
1,796
1,782
1,771
1,761
1,753
1,746
1,740
1,734
1,729
1,725
1,721
1,717
1,714
1,711
1,708
1,706
1,703
1,701
1,699
1,697
1,684
1,671
1,658
1,645
0,05
12,706
4,303
3,182
2,776
2,571
2,447
2,365
2,306
2,262
2,228
2,201
2,179
2,160
2,145
2,131
2,120
2,110
2,101
2,093
2,086
2,080
2,074
2,069
2,064
2,060
2,056
2,052
2,048
2,045
2,042
2,021
2,000
1,980
1,960
0,02
31,821
6,965
4,541
3,747
3,365
3,143
2,998
2,896
2,821
2,764
2,718
2,681
2,650
2,624
2,602
2,583
2,567
2,552
2,539
2,528
2,518
2,508
2,500
2,492
2,485
2,479
2,473
2,467
2,462
2,457
2,423
2,390
2,358
2,326
0,01
63,657
9,925
5,841
4,604
4,032
3,707
3,499
3,355
3,250
3,169
3,106
3,055
3,012
2,977
2,947
2,921
2,898
2,878
2,861
2,845
2,831
2,819
2,807
2,797
2,787
2,779
2,771
2,763
2,756
2,750
2,704
2,660
2,617
2,576
0,001
636,619
31,598
12,941
8,610
6,859
5,959
5,405
5,041
4,781
4,587
4,437
4,318
4,221
4,140
4,073
4,015
3,965
3,922
3,883
3,850
3,819
3,792
3,767
3,745
3,725
3,707
3,690
3,674
3,659
3,646
3,551
3,460
3,373
3,291
1re Edition
Tome TP
0.6.2.
23
xi(M)
104 xi
1
2
3
4
5
6
7
8
9
10
11
12
0,2210
0,2195
0.2067
0,2198
0,2180
0,2210
0,2205
0,2195
0,2220
0,2205
0,2202
0,2185
2210
2195
2067
2198
2180
2210
2205
2195
2220
2205
2202
2185
4
10 (x i - x )
+ 20,67
+ 5,67
- 122,33
+ 8,67
- 9,33
+ 20,67
+ 15,67
+ 5,67
+ 30,67
+ 15,67
+ 12,67
- 4,33
8
2
10 (x i - x )
427,25
32,15
14964,63
75,17
87,05
427,25
245,55
32,15
940,65
245,55
160,53
18,75
xi = 2,6272
x = 0,218933
10 4 x = 2189,33
(x i x ) 2 = 17656,68 10 -8
n - 1 = 12 -1 = 11
(x i - x ) 2
= 0,004
n -1
P = 0,05 n-1 = 11 t = 2,201
0,219 - (0,004 x 2,201) < xi < 0,219 + (0,004 x 2,201)
=
0,004
=
= 0,001
n
12
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
0.6.3.
0.6.3.1.
120
130
140
150
160
170
180
190
200
210
220
230
240
245
250
260
270
280
290
300
420
430
440
450
460
470
480
490
500
510
520
530
540
550
560
570
580
590
600
610
620
630
640
650
660
670
680
690
790
800
810
820
830
840
850
24
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
25
860 NEXT I
870 IF K=N THEN : PRINT"IL Y A DES VALEURS ABERRANTES"
880 PRINT:PRINT:PRINT
900 INPUT"VOULEZ-VOUS ELIMINER LES VALEURS ABERRANTES OUI/NON?";A$
910 IF A$="OUI"THEN 930
920 IF A$="NON"THEN 990
930 PRINT" "
940 PRINT"SUPPRIMEZ LES VALEURS ABERANTES ET RECOMMENCEZ" :GO TO 950
950 N=K:GO TO 230
990 PRINT#(J),,CHR$(1)CHR$(254)"CALCUL STATISTIQUE"
1000 PRINT#(J),,"
(INTERVALLE DE CONFIANCE DE 95%):PRINT#(J)
1010 PRINT#(J),"NOMBRE DE VALEURS EXPERIMENTALES:";N
1020 FOR I=1 TO K
1030 PRINT#(J),I
,X(I)
1040 NEXT I
1050 PRINT#(J),"MOYENNE DES MESURES=";W
1060 PRINT#(J),"ECART TYPE=";SI
1070 PRINT#(J),"ECART-TYPE MOYEN=";SM
1080 PRINT#(J),,"****************************************"
1090 PRINT#(J),,"LES VALEURS EXTREMES SONT:"
1100 PRINT#(J)
1110 PRINT#(J),,Y,,Z
1120 PRINT#(J),,"****************************************"
1130 PPINT#(J),,"LES RESULTATS SONT:"
1140 PRINT#(J)
1150 PRINT#(J)
1160 PRINT#(J),,"****************************************"
0.6.3.2.
Ce morceau fait en fait partie dun programme plus vaste du nom de Stradivarius et a t dvelopp en
collaboration avec la socit BP Chemicals.
ON ERROR GOTO 9500
DIM Xpts(500, 2): DIM a(13): DIM r(7, 8): DIM t(8):
Pts! = 0: Nbr% = 0
5 CLS
PRINT
PRINT "Stradivarius V 1.6 - Calculs annexes pour etude
de Catalyseurs"
PRINT "Copyright G. OLIVE et BP Chemicals SNC 1993"
PRINT
50 PRINT
PRINT "99 - Menu 2-Calculs peu frequents"
PRINT
PRINT "0 - Sortir de Stradivarius"
PRINT
INPUT "Choix>"; choix
IF choix = 0 THEN END
IF choix = 99 THEN 100
IF choix < 1 OR choix > 6 THEN PRINT CHR$(7): GOTO 50
CLS
GOTO 5
100 CLS
PRINT
PRINT "Stradivarius V 1.6 - Menu 2 - Calculs peu
frequents"
PRINT "Copyright G. OLIVE et BP Chemicals SNC 1993"
PRINT
55 PRINT
PRINT "6 - Entree une Variable"
PRINT "7 - Entree deux Variables"
PRINT "8 - Statistique a une variable"
PRINT "9 - Statistique a deux variables lineaire"
PRINT
"10
Statistique
a
deux
variables
logarithmique"
PRINT
"11
Statistique
a
deux
variables
exponentielle"
PRINT "12 - Statistique a deux variables puissance"
PRINT "13 - Estimation de Y"
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
7005 Nbr% = 0
PRINT "Stat a deux variables - Attention Maximun 500"
DO
Nbr% = Nbr% + 1
PRINT "Donnez x"; Nbr%; : INPUT a$
IF a$ = "" THEN EXIT DO
IF LEFT$(a$, 1) = "#" THEN
enleve = VAL(RIGHT$(a$, LEN(a$) - 1))
FOR n = enleve TO Nbr%
Xpts(n, 1) = Xpts(n + 1, 1)
NEXT n
Nbr% = Nbr% - 2
ELSE
PRINT "Donnez y"; Nbr%; : INPUT b$
IF b$ = "" THEN EXIT DO
Xpts(Nbr%, 1) = VAL(a$)
Xpts(Nbr%, 2) = VAL(b$)
Pts! = -1
END IF
LOOP
Nbr% = Nbr% - 1
FOR n = 1 TO Nbr%
PRINT "x"; n; ":"; Xpts(n, 1), "y"; n; ":"; Xpts(n, 2)
NEXT n
INPUT "Taper ENTER"; a$
RETURN
'
--------------------------------Stat
variable -----------------------8005 Cnt = 0: Sumx = 0: Sumx2 = 0: sum1x = 0
IF Pts! <> -1 THEN
PRINT "Les points n'ont pas ete donnee"
RETURN
END IF
une
Cnt = Nbr%
Negatif = 0: Zero = 0
FOR n = 1 TO Cnt
IF Xpts(n, 1) = 0 THEN
Zero = -1
END IF
IF Xpts(n, 1) <= 0 THEN
Negatif = -1
END IF
NEXT n
PRINT "
< CLASSEMENT EN COURS >"
DO
C = 0
FOR I = 1 TO Cnt - 1
IF Xpts(I, 1) > Xpts(I + 1, 1) THEN
SWAP Xpts(I, 1), Xpts(I + 1, 1)
SWAP Xpts(I, 2), Xpts(I + 1, 2)
C = 1
END IF
NEXT I
IF C <> 1 THEN EXIT DO
LOOP
Prodx = 1
FOR n = 1 TO Cnt
Sumx = Sumx + Xpts(n, 1)
Sumx2 = Sumx2 + Xpts(n, 1) ^ 2
IF Negatif = 0 THEN
Prodx = Prodx * Xpts(n, 1)
END IF
IF Zero = 0 THEN
sum1x = sum1x + (1 / Xpts(n, 1))
END IF
NEXT n
m = Xpts((Cnt + 1) / 2, 1)
IF Cnt / 2 = INT(Cnt / 2) THEN
m = .5 * (Xpts(Cnt / 2, 1) + Xpts(1 + Cnt / 2, 1))
END IF
CLS
PRINT "Statistique a une variable"
PRINT
PRINT "Nombre de donnees : "; Cnt
PRINT "Somme des donnees : "; Sumx
PRINT "Somme des carrees des donnees : "; Sumx2
PRINT "------------------------------------------------------------------------------"
Xm = Sumx / Cnt
PRINT TAB(30); "Moyenne arithmetique : "; Xm
IF Negatif = 0 THEN
PRINT TAB(30); "Moyenne geometrique : "; Prodx ^
(1 / Cnt)
END IF
IF Zero = 0 THEN
PRINT TAB(30); "Moyenne harmonique
: "; Cnt /
sum1x
CHIMIE INDUSTRIELLE
26
END IF
PRINT TAB(30); "Mediane : "; m
PRINT "------------------------------------------------------------------------------"
Sn = SQR(((Cnt * Sumx2) - (Sumx ^ 2)) / (Cnt ^ 2))
PRINT "Variance de la population de donnees / n
:
"; Sn ^ 2
PRINT "Ecart type sur une population de donnees / n
: "; Sn
Sn1 = SQR(((Cnt * Sumx2) - (Sumx ^ 2)) / (Cnt * (Cnt
- 1)))
PRINT "Variance de l'echantillon de donnees / n-1 :
"; Sn1 ^ 2
PRINT "Ecart type sur un echantillon de donnees / n1 : "; Sn1
PRINT "Coefficient de variation / n
: "; 100 * Sn
/ Xm
PRINT "Coefficient de variation / n-1 : "; 100 * Sn1
/ Xm
Sm = Sn / SQR(Cnt)
Sm1 = Sn1 / SQR(Cnt)
PRINT "Ecart moyen ou erreur type / n
: "; Sm
PRINT "Ecart moyen ou erreur type / n-1 : "; Sm1
PRINT "------------------------------------------------------------------------------"
INPUT "Tapez ENTER"; a$
CLS
n = Cnt - 1
IF n >= 120 THEN
t = 1.98
END IF
IF n >= 60 AND n < 120 THEN
t = 2
END IF
IF n >= 40 AND n < 60 THEN
t = 2.021
END IF
IF n >= 30 AND n < 40 THEN
t = 2.042
END IF
IF n < 30 THEN
RESTORE 1111
FOR I = 1 TO n
READ t
NEXT I
END IF
PRINT "Coefficient t de Student-Fisher pour P=95% :
", t
PRINT "Erreur relative / n
: "; 100 * Sm * t / Xm;
"%"
PRINT "Erreur relative / n-1 : "; 100 * Sm1 * t /
Xm; "%"
PRINT "Intervalles de confiance:"
PRINT "
-Pour une valeur / n
: "; Sn * t; "
("; Xm - Sn * t; "-"; Xm + Sn * t; ")"
PRINT "
-Pour une valeur / n-1 : "; Sn1 * t; "
("; Xm - Sn1 * t; "-"; Xm + Sn1 * t; ")"
PRINT "
-Pour la moyenne / n
: "; Sm * t; "
("; Xm - Sm * t; "-"; Xm + Sm * t; ")"
PRINT "
-Pour la moyenne / n-1 : "; Sm1 * t; "
("; Xm - Sm1 * t; "-"; Xm + Sm1 * t; ")"
INPUT "Tapez ENTER"; a$
RETURN
1111
DATA
12.706,4.303,3.182,2.776,2.571,2.447,2.365,2.306,2.262
,2.228
DATA
2.201,2.179,2.160,2.145,2.131,2.120,2.110,2.101,2.093,
2.086
DATA
2.080,2.074,2.069,2.064,2.060,2.056,2.052,2.048,2.045,
2.042
' --------------------- stat 2 var lineaire ----------------------------------9005 IF Pts! <> -1 THEN
PRINT "Les points n'ont pas ete donnee"
RETURN
END IF
Sumx = 0: Sumx2 = 0: Sumy = 0: Sumy2 = 0: Sumxy = 0
CLS
Cnt = Nbr%
FOR n = 1 TO Cnt
Sumx = Sumx + Xpts(n, 1)
Sumx2 = Sumx2 + Xpts(n, 1) ^ 2
Sumy = Sumy + Xpts(n, 2)
Sumy2 = Sumy2 + Xpts(n, 2) ^ 2
Sumxy = Sumxy + Xpts(n, 1) * Xpts(n, 2)
NEXT n
07/01/2005
1re Edition
Tome TP
CHIMIE INDUSTRIELLE
27
07/01/2005
1re Edition
Tome TP
CHIMIE INDUSTRIELLE
28
DO
PRINT Z$
INPUT "?Donnez valeur de la variable ? ", a$
IF a$ = "" THEN EXIT DO
x = VAL(a$)
U = x
y = a(0)
FOR I = 1 TO Id
y = y + a(I) * U
U = U * x
NEXT I
PRINT "p("; x; ")="; y
LOOP
RETURN
1056 PRINT "Calcul de p'(x)"
DO
PRINT Z$
INPUT "?Donnez valeur de la variable ? ", a$
IF a$ = "" THEN EXIT DO
x = VAL(a$)
U = x
y = a(1)
FOR I = 2 TO Id
y = y + a(I) * U * I
U = U * x
NEXT I
PRINT "p'("; x; ")="; y
LOOP
RETURN
1057 PRINT "Calcul de P(x)"
DO
PRINT Z$
INPUT "?Donnez les deux bornes d'integration A,B
", a$, b$
IF a$ = "" OR b$ = "" THEN EXIT DO
a = VAL(a$)
b = VAL(b$)
x = a
GOSUB 1060
a = y
x = b
GOSUB 1060
PRINT "P("; a$; ","; b$; ")="; y - a
LOOP
RETURN
1060 U = x
y = 0
FOR I = 0 TO Id
y = y + a(I) * U / (I + 1)
U = U * x
NEXT I
RETURN
1041 FOR n = 0 TO 13: a(n) = 0: NEXT n: FOR n = 0 TO
8: t(n) = 0: FOR m = 0 TO 7: r(m, n) = 0: NEXT m: NEXT
n
Coupe = 0
DO
INPUT "Donnez le degre du polynome (n<6) ", Id
LOOP UNTIL Id < 6 AND Id > 1
n = Nbr%
FOR I = 1 TO Nbr%
x = Xpts(I, 1)
y = Xpts(I, 2)
FOR J = 2 TO 2 * Id + 1
a(J) = a(J) + x ^ (J - 1)
NEXT J
FOR K = 1 TO Id + 1
r(K, Id + 2) = t(K) + y * x ^ (K - 1)
t(K) = t(K) + y * x ^ (K - 1)
NEXT K
t(Id + 2) = t(Id + 2) + y * y
NEXT I
a(1) = n
FOR J = 1 TO Id + 1
FOR K = 1 TO Id + 1
r(J, K) = a(J + K - 1)
NEXT K
NEXT J
FOR J = 1 TO Id + 1
K = J
1042 IF r(K, J) <> 0 THEN
GOTO 1043
END IF
K = K + 1
IF K <= Id + 1 THEN
GOTO 1043
END IF
PRINT "Pas de solution unique"
Coupe = 1
IF Coupe = 1 THEN EXIT FOR
07/01/2005
1re Edition
Tome TP
1043 FOR I = 1 TO Id + 2
SWAP r(J, I), r(K, I)
NEXT I
Z = 1 / r(J, J)
FOR I = 1 TO Id + 2
r(J, I) = Z * r(J, I)
NEXT I
FOR K = 1 TO Id + 1
IF K = J THEN
GOTO 1044
END IF
Z = -r(K, J)
FOR I = 1 TO Id + 2
r(K, I) = r(K, I) + Z * r(J, I)
NEXT I
1044 NEXT K
NEXT J
IF Coupe = 1 THEN
RETURN
END IF
PRINT
P = 0
FOR J = 2 TO Id + 1
P = P + r(J, Id + 2) * (t(J) - a(J) * t(1) / n)
NEXT J
Q = t(Id + 2) - t(1) * t(1) / n
Z = Q - P
I = n - Id - 1
r = P / Q
PRINT "Polynome des moindres carres"
FOR K = 0 TO 6
a(K) = 0
IF K < Id + 1 THEN
a(K) = r(K + 1, Id + 2)
END IF
IF a(K) > 0 THEN
0.7.
29
PRINT "+";
END IF
IF K < Id + 1 THEN
PRINT a(K);
ELSE
GOTO 1046
END IF
IF K > 0 THEN
PRINT "*X";
IF K > 1 THEN
PRINT "^"; K;
END IF
END IF
1046 NEXT K
PRINT
PRINT "Coefficient de Correlation:"; SQR(r)
IF I <> 0 THEN
PRINT "Erreur standard de l'estimation:"; SQR(Z /
I)
END IF
RETURN
Spectre lectromagntique
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
30
TP 1 ACIDIMETRIE
1.1.
Mise en solution
Tout travail quantitatif ncessite la mise en solution d'une quantit bien dtermine de l'chantillon
analyser et la dilution de cette solution un volume connu.
Sur un verre de montre, pralablement pes, placer une quantit calcule de la poudre analyser.
Par pese, dterminer avec prcision la quantit de l'chantillon.
Ensuite introduire quantitativement cette fraction dans un vase de berlin (bien propre). Nettoyer
consciencieusement le verre de montre l'aide d'un jet de pissette, ajouter le solvant appropri
(l'eau le plus souvent). Chauffer ventuellement pour amliorer la dissolution et ensuite ramener le
liquide la temprature proche de 20 C. Introduire cette solution quantitativement dans un
ballon jaug. Rincer soigneusement le rcipient qui a servi la dissolution (pour viter toute perte
de substance, il est prfrable de travailler avec de petites quantits d'eau que deux fois une grande
quantit). Ajouter ces eaux de lavage la solution dans le ballon jaug et porter exactement au trait
de jauge l'aide d'une pissette ou d'une pipette.
Boucher le ballon et le retourner plusieurs fois en agitant pour obtenir une solution homogne
(absence des stries visibles travers le liquide).
Remarque: Si on emploie un agitateur ou un entonnoir, ne pas les abandonner avant de les avoir
rincs 2 ou 3 fois avec de l'eau distille et de recueillir ces eaux de rinage avant la mise au trait.
Coller une tiquette comportant les indications suivantes:
- le nom de l'tudiant - groupe - quipe,
- la nature et la concentration de la solution,
- la date de sa prparation.
1.2.
Nettoyage de la verrerie
Tout travail analytique prcis ne peut se faire qu' l'aide d'une verrerie parfaitement propre, en
particulier dpourvue de toutes traces de graisse. Aprs toute manipulation, la verrerie est lave avec
un dtergent (si ncessaire), rince plusieurs fois l'eau de robinet puis l'eau distille et ensuite mise
scher. Les rinages s'effectuent avec des petites quantits d'eau.
Si ce traitement simple s'avre inefficace il faut traiter la verrerie chimiquement, par exemple:
- les traces de calcaire peuvent tre enleves par un traitement l'acide (par ex. HCl 6 M),
- les traces de AgCl ou de AgI peuvent tre limines par une solution d'NH3,
- les produits organiques (verrerie grasse) peuvent tre limins par l'actone etc.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
31
Tome TP
Dr. Gilles OLIVE
1.3.
Note sur les ractifs "pour analyse" (P.A.)
-
Les produits "pour analyse" prsentent un degr de puret remarquable. Ils sont cependant
beaucoup plus chers: il faut donc les utiliser avec la plus stricte conomie.
viter toute contamination en observant la plus grande propret de la spatule ou de la cuillre.
Ne jamais remettre dans le flacon un produit non utilis.
Ne pas ouvrir plus d'un flacon la fois et le reboucher aussitt aprs usage.
La contamination d'un ractif est toujours grave car elle peut fausser tous les rsultats.
1.4.
Principe de la titrimtrie
La concentration d'une solution d'acide ou de base est par dfinition le nombre de moles d'acide (ou de
base) contenu dans un litre de solution selon:
C=
n
V
Pour un volume dtermin de solution, le nombre de moles sera donc exprim par C.V o C est le
titre molaire de la solution exprim en mol.L-1 et V le volume, exprim en litres.
Dans la raction de neutralisation, un quivalent d'acide ragit avec un quivalent de base pour donner
un quivalent de sel ; lorsque le calcul s'effectue de faon molaire, cela veut dire qu'il faut tenir des
coefficients prsents dans la raction de neutralisation. A la neutralit la relation suivante est vrifie:
C1V1 = C2V2
C1 et V1 sont le titre et le volume de l'acide,
C2 et V2 sont le titre et le volume de la base (ou inversement)
1.5.
L'instant prcis de la neutralisation peut tre dtermin par le virage d'un indicateur qu'on ajoute la
solution en trs faible quantit (2-3 gouttes).
Lors d'un titrage acide-base, il y a un changement de l'acidit de la solution (pH). Le pH est dfini
comme - log[H30+] et varie entre 0 et 14. De 0 7 la solution est acide et de 7 14 la solution est
basique. A l'quivalence un grand changement de pH se produit sous l'influence d'une goutte de ractif.
Ce changement de pH provoque le changement de la coloration de l'indicateur car c'est une substance
qui possde une couleur diffrente en milieu acide et en milieu basique.
Chaque indicateur change de couleur dans une zone de pH qui lui est propre et qui dtermine le choix
de l'indicateur selon les ractifs utiliss.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
1.6.
Diffrents types des titrages
32
1.6.1.
Titrage direct et inverse
Selon la manire de raliser un titrage, on parle d'un titrage direct, invers ou un titrage en retour. Le
titrage est dit direct lorsque la solution de titre connu se trouve dans la burette et la solution de titre
inconnu dans le berlin. Exemple: titrage de NaOH de titre inconnu par HCl. Lorsque la solution
inconnue se trouve dans la burette, on parle de titrage inverse (Exemple: titrage de HCl par Na2CO3).
1.6.2.
Titrage en retour
Beaucoup de titrages s'effectuent par un titrage en retour. Dans ce type de titrage deux solutions
interviennent pour doser une solution inconnue. A une solution de titre inconnu (par exemple une base
1), on ajoute une solution de titre connu en excs (par exemple un acide 2), l'excs de cette solution est
titr par une troisime solution de titre connu (base 3). Pour faciliter la comprhension du calcul, le
schma suivant est trs utile.
base (1)
CHIMIE INDUSTRIELLE
acide (2)
07/01/2005
base (3)
1re Edition
Tome TP
1.7.
33
Un des problmes courants du laboratoire consiste prparer des solutions dilues. Ce problme se
rencontre dans tous les laboratoires (chimie, microbiologie, etc..)
1.7.1.
Quelques dfinitions
Une solution est compose d'un solut (le corps dissous) et d'un solvant (eau ou solvant organique).
L'ensemble de deux constitue une solution.
Lorsque le solut reprsente des particules non solubilises, disperses au sein d'un diluant (solvant
contenant d'autres substances comme tampons etc. ), le terme de suspension sera utilis la place de
la solution. Ces termes sont plus reprsentatifs de la microbiologie.
La concentration reprsente la quantit de solut par unit de volume de la solution, en units
chimiques ou physiques. Dans d'autres cas la concentration donne le nombre des particules par volume
total (ou la masse totale) de la suspension.
Dans le texte qui suit nous utiliserons le terme solution, mais le lecteur comprendre que, s'il y a des
particules (bactries, spores de champignons ou autres cellules), il doit d'office traduire par
suspension. De la mme manire le terme solvant peut tre remplac par diluant et solut par
particules (voire cellules).
1.7.2.
Expression de la dilution
Diffrentes manires sont utilises pour exprimer la dilution selon le type de laboratoire et l'habitude
de chaque professeur, ce qui peut provoquer une confusion chez l'tudiant.
Exemple:
Le fait que la concentration finale est 100 fois plus faible peut tre crit de manires suivantes:
dilution 100 fois
dilution 1/100
dilution 10-2
Dans tous les cas la solution dilue possde une concentration plus petite que la solution initiale.
1.7.3.
Calcul de la dilution
Lors d'une dilution, la quantit de solut (ou nombre des particules) ne change pas, car on ajoute
uniquement du solvant (ou diluant).
Soit la concentration de la solution initiale (concentre):
C1
Soit la concentration de la solution finale dilue:
C2
Le produit de la concentration par le volume de la solution donne la quantit de solut dans la
solution. Selon l'expression de la concentration, la quantit de solut est exprime en grammes, en
nombre des particules, en moles ou en quivalents.
Le produit C.V donne: nombre de moles si la concentration est molaire
masse en g si la concentration est massique
nombre d'quivalents si la concentration est normale
nombre des particules (ou effectif) dans le cas d'une suspension.
Lors de la dilution, le produit C.V reste constant:
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
34
C1V1 = C2V2
La dilution ralise est donne par le rapport des concentrations ou des volumes:
07/01/2005
1re Edition
Tome TP
35
Exemple 2: pour prparer une solution dilue 5 fois, il faut une part de volume de la solution
concentre et 4 parts de solvant. Au total le volume de la solution finale est 5 fois plus grand, donc la
dilution est de 5 fois. Dans la pratique on peut prendre 10 ml de solution concentre et 40 ml de
solvant (ou 20 ml et 80 ml, etc. ...)
Exemple 3: prparer 1 litre d'une solution dilue 20 fois. Le rapport des volumes est donn par la
formule suivante: 20 = 1000 ml/X ml, d'o X = 50 ml. Il faut donc prendre 50 ml de la solution
concentre et 950 ml de solvant (1000 ml-50 ml).
Exemple 4: prparer 1 litre d'une solution dilue 10-3. Pour raliser une solution dilue 1000 fois, il
faut prendre 1 ml de la solution initiale et ajouter 999 ml de solvant. Dans la pratique et lorsque la
prcision demande n'est pas trop grande, on mettra 1ml pour 1 litre de solvant. Dans le cas d'une
dilution fort importante l'erreur est minime.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
36
MANIPULATION
ACIDIMETRIE
PREPARATION DES SOLUTIONS STANDARDS
DE HCl ET DE NaOH
A. PREPARATION D'UNE SOLUTION STANDARD D'HCl
1.8.
La solution d'acide chlorhydrique concentr (d=1,19) est environ 12 M. A partir de cette solution,
prparer par dilution 1 litre de HCl 0.1 M par tudiant.
Le volume de HCl concentr prlever est calcul par la formule suivante:
C1V1 = C2V2
Mesurer un volume lgrement suprieur la valeur calcule au cylindre gradu et introduire dans un
ballon jaug de 1 litre, rempli au pralable moiti avec de l'eau distille. Diluer ensuite au litre et
homogniser convenablement.
Cette solution est prpare par dilution partir d'une solution concentre de titre approximatif, son titre
ne peut donc pas tre connu avec exactitude. Il doit tre dtermin par un titrage utilisant une base
considre comme standard primaire, par exemple Na2CO3.
1.9.
Un des standards primaires le plus frquemment utilis en acidimtrie est le carbonate de sodium
anhydre et pour analyse.
Ce produit est trs hygroscopique. Il faut le scher l'tuve 270 C pendant une heure (ou 150 C
pendant 3-4 heures). Aprs dshydratation, le laisser refroidir dans un dessiccateur.
Prparer 500 ml de Na2CO3 0.05 M (MM = 105.99 g/mol) par binme.
n = C.V
masse peser = n x MM
Peser de manire prcise, sur une balance analytique, une masse de Na2CO3 proche de la masse
calcule. Mettre en solution dans un vase de berlin (mlanger immdiatement) et transvaser
quantitativement dans un ballon jaug de 500 ml. Porter au trait et homogniser convenablement.
Calculer le titre exact de cette solution, qui sert de STANDARD PRIMAIRE.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
37
Tome TP
Dr. Gilles OLIVE
1.10. Standardisation de HCl par Na2CO3.
1.10.1.
Rappel thorique
Le terme de cette raction est rendu visible par l'emploi de mthylrouge comme indicateur.
milieu basique = jaune
milieu acide = rouge
Le titre de HCl est dtermin par le titrage inverse car la solution inconnue se trouve dans la burette.
1.10.2.
Ractifs
- Na2CO3 0,05 M
- HCl 0,1 M
- mthylrouge
1.10.3.
Mode opratoire
- pipette de 20 ml
- vase de berlin de 100 ou 150 ml
- burette de 50 ml
- A l'aide d'une pipette jauge,
transfrer 20 ml de le solution standard de Na2CO3
dans le vase de berlin.
- Ajouter 2-3 gouttes d'indicateur.
- Titrer par la solution de HCl.
Ds que le virage de l'indicateur est observ, porter la solution l'bullition durant deux minutes, pour
liminer le CO2 form au cours du titrage. En effet, le CO2 peut lui seul provoquer le changement de
coloration de l'indicateur, car il possde un caractre acide:
HCO3- + H+
CO2 + H2O
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
38
Le NaOH est fortement hygroscopique et se carbonate facilement selon les quations suivantes:
NaOH + CO2
NaHCO3 ;
NaHCO3 + NaOH
Na2CO3 + H2O
Le titre de la solution ne peut donc pas tre calcul partir d'une pese. Cette solution sera prpare de
manire approximative.
Prparer 1 L de NaOH 0,1 M par tudiant.
Peser, dans un vase de berlin, de manire approximative une masse de NaOH de 20 % suprieure la
masse calcule. Sur les pastilles verser un peu d'eau distille, agiter et liminer rapidement l'eau de
lavage (pour dissoudre la couche superficielle invitablement souille de carbonate). Introduire ensuite
la solution de NaOH dans un ballon jaug d'un litre et porter au trait de jauge. Homogniser.
1.12.
1.12.1.
Rappel thorique
La solution de NaOH sera dose par la solution titre de HCl selon l'quation:
NaOH + HCl
NaCl + H2O
L'indicateur employ est le mthylrouge.
Le titre de NaOH est dtermin par un titrage direct car la solution inconnue se trouve dans le vase de
berlin.
1.12.2.
Ractifs
- HCl 0,1 M
- NaOH 0,1 M
- mthylrouge
1.12.3.
Mode opratoire
- pipette de 20 ml
- vase de berlin de 100 ou 150 ml
- burette de 50 ml
- Prlever 20 ml de solution de NaOH doser et les
introduire dans un vase de berlin.
- Ajouter 2-3 gouttes d'indicateur.
- Titrer par la solution standard de HCl.
- Effectuer 3 titrages.
- Calculer le titre de la solution.
La solution de NaOH, dont le titre vient d'tre dtermin, constitue le STANDARD TERTIAIRE et
peut tre utilise pour les dosages ultrieurs.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
39
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
40
PRINCIPE
La chromatographie sur papier est une mthode de sparation base sur la diffrence de coefficient de
partage entre deux phases dont l'une est stationnaire et l'autre mobile.
Techniques principales:
chromatographie ascendante
chromatographie descendante
chromatographie deux directions
2.2.
TECHNIQUE GENERALE
2.2.1.
PAPIER
Utiliser des feuilles de papier Whatman nl de
25 cm de ct pour la chromatographie ascendante.
25 cm de ct pour la chromatographie deux directions.
25 cm sur 11 cm pour la chromatographie descendante.
(ces dimensions ne sont donnes qu'en fonction des cuves)
A 2 cm du bord, tracer une ligne AU CRAYON. Cette ligne doit toujours se trouver environ 1
cm au-dessus du niveau atteint par le solvant. Cette ligne servira pour les dpts.
2.2.2.
SOLVANT
Prparer les solvants comme indiqu pour chaque exprience et les garder dans des flacons de
polythylne (secs et propres ).
Verser dlicatement 50 ml de solvant au fond de la cuve et couvrir celle-ci afin d'empcher
l'vaporation du solvant.
2.2.3.
APPLICATION DES ECHANTILLONS
Dposer les diffrentes substances l'aide d'un fin tube capillaire sur la ligne de dpt. La tache doit
avoir un diamtre de 5 mm. Les dpts doivent tre le plus possible au centre de la feuille mais ne
pas se chevaucher.
2.2.4.
OPERATION
Rouler la feuille de papier afin de former un cylindre. Agrafer la feuille en haut et en bas. Veiller ce
que les bords verticaux de la feuille ne se chevauchent pas. Introduire le cylindre dans la cuve en
veillant ce qu'il ne touche pas les parois latrales, et replacer le couvercle. La ligne des dpts doit se
situer au-dessus du solvant pour ne pas noyer les taches. Arrter la sparation ds que le solvant arrive
environ 3 cm du sommet.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
41
2.2.5.
SECHAGE DU CHROMATOGRAMME
Lorsque le chromatogramme est suffisamment dvelopp, on l'enlve de la cuve et on marque AU
CRAYON la hauteur atteinte par le solvant. Scher le chromatogramme.
2.2.6.
DEVELOPPEMENT DU CHROMATOGRAMME
Les substances tant colores, l'identification est immdiate. On aura cependant avantage entourer les
taches.
2.2.7.
LE Rf ET LE Rx
Rf =
N.B. On remplace souvent "x" par la premire lettre du nom de la substance de rfrence.
2.3.
REACTIFS
MODE OPERATOIRE
2.4.1.
CHROMATOGRAPHIE ASCENDANTE
- la ligne de dpt se situe au fond de la cuve (voir remarque ci-dessus)
- faire une chromatographie avec le solvant A de 4 encres et du mlange des 4
- idem avec le solvant B (5 dpts pour chaque chromatographie).
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
42
2.4.2.
CHROMATOGRAPHIE A DEUX DIRECTIONS
- verser le solvant A et couvrir la cuve
- marquer une origine au crayon ( 2.5 cm du bord vertical) y appliquer le mlange des 4 encres.
ATTENTION 1 SEUL DEPOT 2.5 cm du bord vertical
- introduire le papier dan la cuve
- aprs dveloppement et schage, tracer une ligne au crayon le long du premier dveloppement
- marquer d'une croix l'emplacement des taches
- recommencer la chromatographie en utilisant le solvant B et en tournant la feuille de 90
2.4.3.
CHROMATOGRAPHIE DESCENDANTE
- la ligne de dpt se situe en haut de la cuve au-del du bac de solvant, environ 7 cm du bord suprieur de la
feuille.
- le solvant se met dans le bac situ en haut de la cuve
- faire une chromatographie avec le solvant A de 4 encres et du mlange des 4.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
43
TP 3 SYNTHESE DE L'ACIDE
ACETYLSALICYLIQUE
3.1.
PRINCIPE
3.1.1.
Acetylation
O
O
OH
H3C C
H3C C
COOH
Acide salicylique
O C CH3
H3C C
COOH
Anhydride actique
O
+
Acide actylsalicylique
ou aspirine
OH
Acide actique
Mcanisme:
H
OH
+
COOH
O
H3C C O
H3C C
O
O
O C CH3
O
+
H3C C
COOH
O
O C CH3
+
COOH
O
H3C C
CHIMIE INDUSTRIELLE
O
H3C C
07/01/2005
OH
1re Edition
Tome TP
44
3.1.2.
Dosage de l'acide
O
O C CH3
O C CH3
+
NaOH
COOH
3.1.3.
H2O
COONa
Hydrolyse basique
O
O C CH3
OH
+
NaOH
COONa
CH3COONa
COONa
Mcanisme:
-
O
O C CH3
OH
O C CH3
+
Na
OH
OH
O
+
Na
O
+
+ Na + HO C CH3
O C CH3
COONa
3.2.
Na
COONa
COONa
COONa
REACTIFS
- acide salicylique
- anhydride actique
- actate de sodium
- glace
- norvanol (Ethanol - Ether - Eau 90 % V/V - 2.9 % V/V - 9 % m/V)
- solution de FeCl3
- 5 L de NaOH de titre connu (environ 0.5 M)
- 5 L de H2SO4 de titre connu (environ 0.25 M)
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
3.3.
MODE OPERATOIRE
45
Dans un erlenmeyer de 250 ml, on introduit environ 5 g d'acide salicylique, 5 ml d'anhydride actique
et 0,5 g d'actate de sodium SEC.
Le flacon, muni d'un tube chlorure calcique, est chauff pendant 15 minutes au bain-marie bouillant
(bien agiter).
On verse ensuite le contenu encore chaud dans un mortier o la masse cristallise par refroidissement.
Le produit est alors broy dans un peu d'eau glace, puis essor dans un bchner.
Laver 5 fois avec de l'eau. Effectuer le test au FeCl3 sur les dernires gouttes des eaux de lavage
jusqu' n'avoir plus qu'une lgre coloration avec FeCl3. (Les phnols donnent une coloration violette
avec FeCl3. L'acide salicylique libre donne la mme raction.)
Le produit est purifi par cristallisation dans le norvanol dans un erlenmeyer de 50 ml. Ajouter environ
3 ml de norvanol (voir page 44).
Les cristaux ainsi purifis sont essors, schs et pess, PUIS PLACES DANS UN DESSICCATEUR
PENDANT UNE SEMAINE (les titrages se feront la semaine suivante).
3.3.1.
L'acide actylsalicylique est dos en dissolvant environ 1 g pes prcisment dans environ 10 ml de
norvanol et en titrant, froid, au moyen d'une solution titre (par HCl 0,1 M du TP acidimtrie) de
NaOH 0.5 M. On utilise la phnolphtaline comme indicateur.
3.3.2.
INDICE DE SAPONIFICATION
Rechercher la puret par CCM. Pour cela, il vous faudra dterminer le meilleur luant ainsi qu'un bon
rvlateur.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
3.4.
46
RECRISTALLISATION
Dissoudre par lger chauffage le produit
recristalliser dans le moins possible de solvant,
mais de manire ce que ce dernier soit quand
mme en trs lger excs. On devra donc procder
des ajoutes successives de petites quantits de
solvant.
Par refroidissement, le corps cristallise au sein du
liquide. On le spare ensuite par filtration. Si le
produit ne parvient pas cristalliser, on vaporera
UN TOUT PETIT PEU de solvant ou on place
l'erlenmeyer au frigo.
Il ne faut pas employer des erlenmeyers trop
grands. La taille de ces derniers sera choisie en
fonction de la quantit de produit recristalliser, de
telle sorte que, lors du chauffage, il reste encore
suffisamment de solvant dans le fond de
l'erlenmeyer.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
47
TP 4 SYNTHESE DU PARACETAMOL
Le Paractamol, est un mdicament analgsique et antipyrtique, en vente libre, utilis pour
soulager les douleurs mineures telles que les maux de tte et les courbatures, et pour faire tomber
la fivre. Comme les autres analgsiques courants, l'aspirine et l'ibuprofne, le paractamol
soulage la douleur en inhibant la synthse des prostaglandines dans l'organisme. Il ne traite pas
l'inflammation comme les deux autres analgsiques cits, mais il n'irrite pas non plus la muqueuse
tapissant l'estomac comme l'aspirine a tendance le faire chez certains individus. Une surdose
importante d'actaminophne peut provoquer de graves lsions du foie.
C'est une molcule entrant dans la composition des mdicaments comme le Dafalgan, le Doliprane
qui comptent aujourd'hui parmi les mdicaments les plus utiliss en Belgique avec l'Aspirine, mais
efficacit gale, il prsente moins d'effets indsirables. Ce mode opratoire propose de
synthtiser la molcule de paractamol (molcule ci-dessous) et de vrifier la qualit du produit
synthtis.
O
H
C CH
N
3
OH
4.1.
Matriel et ractifs
Ballon de 250 mL
Coupelle en plastique
Eprouvettes de 10 mL et 50 mL
Cuve thermostat
Cristallisoir
Rfrigrant boules
Dispositif de filtration sous vide
Banc de Kofler
Support lvateur
Matriel pour CCM (avec dtection sous
UV)
4.2.
Paraminophnol (solide)
2 mL d'acide thanoque pur (tube
essai not A)
3,5 mL d'anhydride thanoque (tube
essai not B)
luant:
actate
de
butyle/cyclohexane/acide formique.
4.2.1.
Dissolution du paraminophnol
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
4.2.2.
Cristallisation
Refroidir ensuite dans un bain d'eau glace et attendre la cristallisation totale. Si vous ne l'observez
pas, gratter le fond du ballon avec un agitateur en verre puis le replacer dans l'eau glace.
Filtrer les cristaux sur Bchner l'aide de la pompe vide, rincer avec un peu d'eau glace.
Garder une pointe de spatule de ces cristaux pour dterminer leur point de fusion et l'tude par
chromatographie.
4.3.
48
Ramener la solution temprature ambiante en refroidissant le ballon dans un bain d'eau froide
(baisser le support lvateur puis remplacer la cuve par un cristallisoir d'eau froide).
Ajouter, par le haut du rfrigrant, par petites quantits, 3,5 mL d'anhydride thanoque.
L'addition termine, porter au bain-marie vers 60 C pendant 5 10 minutes.
4.2.3.
Transvaser les cristaux dans le ballon de 250 mL qui a t rinc l'eau, et ajouter 40 mL d'eau.
Porter bullition jusqu' dissolution complte.
Laisser refroidir, puis placer dans un bain d'eau glace. Le paractamol se recristallise (gratter
galement le fond du ballon si vous ne l'obtenez pas).
Filtrer sur Bchner les cristaux obtenus ; les rincer avec un peu d'eau froide.
Placer les cristaux dans une coupelle.
4.4.
Placer dans 4 piluliers, 1 mL environ d'luant puis dissoudre dans chacun des piluliers une pointe
de spatule de:
paractamol brut
paractamol purifi
poudre issue d'un comprim de Doliprane
paraminophnol.
Raliser la chromatographie sur couche mince des 4 solutions. Laisser scher puis rvler sous UV.
4.5.
Donnes
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
49
Duret de l'eau
La duret de l'eau est due la prsence des ions Ca2+ et Mg2+ (dans certains cas aussi Fe3+), qui
existent dans la solution sous forme de sels solubles. Selon la nature des sels que les ions alcalinoterreux peuvent former avec des ions ngatifs prsents dans l'eau, on distingue la duret temporaire et
la duret permanente.
Duret temporaire
La duret temporaire reprsente la quantit des ions Ca2+ et Mg2+ qui prcipitent par bullition. Elle est
due la prsence dans l'eau des ions hydrognocarbonates solubles (HCO3-), qui par chauffage se
transforment en carbonates donnant avec les ions Ca2+ des sels insolubles.
2 HCO3Ca2+ + CO32-
Lors du chauffage, on limine une partie d'ions Ca2+ et Mg2+ sous forme de prcipit qui s'incruste
dans les rcipients et porte le nom courant de tartre.
Duret permanente
La duret permanente reprsente la quantit des ions Ca2+ et Mg2+ qui restent en solution aprs
l'bullition.
Duret totale
Elle vaut la somme des durets permanente et temporaire. Elle reprsente la quantit totale des ions
Ca2+ et Mg2+ dans l'eau.
Expression de la duret
La duret de l'eau est exprime soit en degr franais (F) soit en degr allemand (A).
1F, degr franais correspond 10 mg de CaCO3 par litre d'eau.
1A, degr allemand correspond 10 mg de CaO par litre d'eau.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
50
5.1.1.
5.1.1.1.
Rappel thorique.
HCO3- + H+
H2O + CO2
Le titrage dtermine le nombre de moles de HCO3- et par consquent le nombre de moles de Ca2+
pouvant prcipiter par chauffage avec les ions HCO3-, selon l'quation globale:
Ca2+ + 2 HCO3-
CaCO3
Mg(OH)2
Aprs la sparation du prcipit, une partie de la solution mixte alcaline est dose par la solution de
HCl 0,1 M en prsence de M-R.
Remarque: Les ions HCO3- qui se trouvaient dans la solution initiale et qui pourraient jouer le rle
d'un acide en prsence d'une base selon:
HCO3- + HOH2O + CO32ont t limins lors de la raction de dtermination de la duret temporaire.
5.1.1.2.
Ractifs
- HCl 0,025 M
- HCl 0,1 M
-NaOH 0,1 M
-Na2CO3 0,05 M
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
51
Matriel
Mode opratoire
Duret temporaire.
- Prparer par dilution 100 ml d'HCl 0,025 M partir de sa propre solution d'HCl 0,1 M.
- Calculer son titre exact.
- Introduire respectivement 100 ml d'eau analyser, dans deux vases de berlin de 400 ml.
- Ajouter 2-3 gouttes de mthylrouge.
- Titrer par HCl 0,025 M jusqu'au virage de l'indicateur.
- Remarque: II faut travailler l'bullition pour chasser le CO2 et obtenir un virage plus prcis. La
coloration doit rester stable pendant 30 sec. chaud.
Duret totale.
- A la solution exactement neutralise, ajouter la pipette 25 ml de NaOH 0,1 M et 25 ml de Na2CO3
0,05 M.
- Faire bouillir ce mlange 5 minutes.
- Laisser refroidir, transvaser dans un ballon jaug de 200 ml, rincer le berlin et complter au volume
par de l'eau distille, rendre homogne.
- Filtrer partiellement travers un filtre sec, sur un erlenmeyer.
- Rincer l'erlenmeyer avec 20 30 premiers ml de filtrat.
- Prlever sur le reste 50 ml.
- Doser l'excs de ractif alcalin par HCl 0,1 M.
Duret permanente.
La duret permanente est calcule par diffrence de la duret totale et de la duret temporaire.
5.1.2.
5.1.2.1.
Rappel thorique
Sel disodique de l'acide thylne-diamine-ttractique est appel EDTA ou complexon III ou titriplex:
NaOOC CH2
N
HOOC
CHIMIE INDUSTRIELLE
CH2
CH2
CH2
07/01/2005
CH2
COONa
CH2
COOH
1re Edition
Tome TP
52
Le complexon III, comme les autres complexons, forme avec beaucoup de mtaux des complexes
internes qui sont trs stables et solubles dans l'eau. Dans ce cas, le mtal se substitue aux atomes
d'hydrogne des groupes carboxyles (-COOH) et se lie par une liaison coordinative avec les atomes
d'azote.
NaOOC CH2
CH2
N
2+
EDTA + M
CH2
CH2
N
CH2
H2C
COO-
M2+
COONa
+ H+
OOC
Dans ce titrage, on dose la duret totale de l'eau, c'est--dire la teneur totale de cette eau en Ca2+ et
Mg2+.
5.1.2.2.
Ractifs
Matriel
- burette de 50 ml.
- erlenmeyer de 100 ou 250 ml.
- pipette jauge de 50 ml.
- pipette gradue de 5 ml.
5.1.2.4.
Mode opratoire
DTERMINATION DE LA DURET
5.1.3.
07/01/2005
1re Edition
Tome TP
53
Objet de la norme
La prsente norme a pour objet la description d'une mthode de mesure de la duret des eaux au moyen
d'un ractif complexant.
5.1.3.1.1.
Gnralits
N
NaOOC
H2C
CH2
CH2
CH2
N
H2C
CH2
COONa
COOH
connu sous des noms commerciaux divers se combine en solution aqueuse aux ions Ca2+ et Mg2+ et
ventuellement Sr2+, Ba2+ ... pour former des composs solubles trs peu dissocis (constantes 3,0 x
10-10 pour Ca et 5,0 x 10-8 pour Mg).
Un colorant bleu, l'riochrome noir T donne une coloration rouge, en se combinant avec l'ion Mg2+ (la
prsence d'ion Mg2+ est donc ncessaire, c'est pourquoi on en ajoute systmatiquement la solution
titrante) ; il peut donc servir d'indicateur de fin de raction car lorsque tout le calcium et tout le
magnsium se sont combins avec le ractif complexant, un trs lger excs de celui-ci dtruit la
combinaison riochrome-magnsium et ce moment il y a changement de la coloration de la solution.
5.1.3.1.2.
Principe
Formation des complexes des ions Ca2+, Mg2+ et, ventuellement Sr2+, Ba2+ ... avec une solution titre
de sel disodique de l'acide thylne diamine ttra-actique, en milieu tamponn pH 10. La fin de la
raction est indique par l'riochrome noir T.
5.1.3.2.
Ractifs
5.1.3.2.1.
Chlorure d'ammonium
Ammoniaque (d = 0,925)
Tartrate double de potassium et de sodium
Eau distille (q. s. p.)
34 g
285 ml
200 g
1 000 ml
L'addition de 0,5 g de chromate de potassium la solution tampon [I] rend le virage plus net.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
54
4g
0,1 g
1000 ml
Ajuster exactement cette solution la solution-talon de calcium (3) par titrage suivant le mode
opratoire ci-aprs, et addition d'eau distille de faon que 1 ml corresponde 0,4 mg de calcium.
5.1.3.2.3.
Calcium: solution-talon de calcium N/50, telle que 1 ml contienne 0,4 mg de
calcium
Introduire 1 g exactement pes de carbonate de calcium pur et sec dans une fiole jauge de 1 L ;
ajouter quelques millilitres d'eau distille et quelques gouttes d'acide chlorhydrique (d = 1,19) dilu au
demi, jusqu' dissolution complte ; ajuster 1 L avec de l'eau distille.
5.1.3.2.4.
riochrome noir T
Alcool absolu
Cette solution doit tre conserve l'abri de la lumire.
5.1.3.3.
0,25 g
100 ml
Mode opratoire
5.1.3.3.1.
Prise d'essai
Introduire 50 ml de l'eau analyser dans un erlenmeyer de 250 ml ; pour les eaux d'une duret
suprieure 9 m/l (45 f)b environ, faire une prise d'un volume infrieur et ajuster 50 ml avec de
l'eau distille ; pour les eaux d'une duret infrieure 2 m/l (10 f), si l'on dsire une grande
prcision, faire des concentrations, soit par vaporation (aprs addition de quelques gouttes d'acide
chlorhydrique), soit par l'emploi de rsines permutantes, mais oprer toujours le titrage sur un volume
de 50 ml.
5.1.3.3.2.
Dosage
2 ml
2 4 gouttes
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
55
Agiter
Ensuite, la prise d'essai tant une temprature de 20 30 C, verser avec une burette la solution
titrante [2] lentement vers la fin du titrage jusqu' virage du rouge au bleuc ; soit n le nombre de
millilitres de solution qui ont t employs.
5.1.3.3.4.
La duret de l'eau analyse, si la prise d'essai tait de 50 ml, est donne par les expressions:
4n/10 m/l ou 2n f.
5.1.3.3.5.
Prcision
Procs-verbal d'essai
Le procs-verbal d'essai doit, outre les rsultats, mentionner toutes les conditions de l'essai et tous les
dtails opratoires non prvus dans la norme, ou facultatifs, ainsi que les incidents ventuels
susceptibles d'avoir agi sur les rsultats.
5.1.3.3.7.
Commentaires
Un certain nombre d'ions, des concentrations donnes, peuvent avoir une influence sur le virage et
rendre l'application de la mthode difficile sinon impossible. Il s'agit en fait d'eaux exceptionnelles.
Ba2+
A13+
Mn2+
Fe2+
Pb2+
Cu2+
Co2+
Ni2+
Hexamta-phosphate
Polyphosphate vitreux
Le virage a lieu du ros saumon au vert si on a ajout du chromate de potassium dans la solution tampon [1].
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
5.1.4.
56
Nous dcrivons assez succinctement parmi ces mthodes qui sont en voie de disparition, celle de
Boutron-Boudet.
5.1.4.1.
Principe
Les sels de Ca et Mg prcipitent les savons sous forme de savons de calcium ou de magnsium
insolubles. En consquence, quand on introduit une solution de savon dans une eau dure, aucune
mousse ne se produit tant que les sels de calcium et de magnsium n'ont pas t prcipits.
5.1.4.2.
Ractifs
En gnral, on achte la liqueur de savon toute prpare. Une division de la burette (1 ml de liqueur de
savon) correspond 0,2 m (1 f) pour une prise d'essai de 40 ml d'eau.
5.1.4.3.
Mode opratoire
Dans 40 ml d'eau analyser, on ajoute peu peu la liqueur hydrotimtrique place dans une burette.
On agite aprs chaque addition jusqu' obtention d'une mousse de 5 mm persistant 5 mn.
Si V est le nombre de millilitres consomms, la duret est
2(V - 0,1) m.
ou 10(V - 0,1) f.
Quand la duret est suprieure 6 m, il faut diluer l'eau avec de l'eau distille.
5.1.5.
Les sels de calcium et de magnsium contenus dans les eaux naturelles sont dosables par les mthodes
classiques. Il sufft d'exprimer les rsultats trouvs en degrs. Nanmoins, les durets calcique et
magnsienne sont le plus souvent dtermines comme suit:
5.1.5.1.
Principe
L'oxalate d'ammonium prcipite totalement les sels de calcium, tandis que l'oxalate de magnsium est
soluble.
5.1.5.2.
Ractifs
CHIMIE INDUSTRIELLE
07/01/2005
1,7 %.
1re Edition
Tome TP
57
Mode opratoire
Agiter 50 ml d'eau avec 2,5 ml de solution d'oxalate, filtrer aprs quelques minutes et dterminer la
duret. Cette duret correspond aux sels de magnsium.
La diffrence entre la duret totale et la duret magnsienne donne la duret calcique.
5.1.6.
5.1.6.1.
Principe
Cette mthode est destine fournir un renseignement rapide sur la duret d'une eau, c'est--dire sur sa
richesse en sels de calcium et de magnsium.
Elle consiste doser ces ions par complexomtrie, avec une solution titre d'E.D.T.A. Suivant la valeur
du pH de la solution et suivant l'indicateur utilis, la mthode permet de doser soit la somme des ions
calcium et magnsium, soit les ions calcium seuls.
DOSAGE DE CATIONS PAR FORMATION DE COMPLEXES
5.1.6.1.1.
Dfinition
Cette mthode de dosage s'appuie sur le fait que certains composs organiques (aminoacides) forment
des complexes cycliques ou "chlates" avec des ions mtalliques tels que les alcalino terreux et
certains mtaux lourds.
L'agent complexant le plus utilis" est l'acide thylnediamine-ttraactique ou son sel disodique
couramment appel "complexon" ou "E.D.T.A.".
Si on le reprsente par H2Na2Y, en solution aqueuse, il se dissocie suivant:
H2Y2- + 2 Na+
H2Na2Y
En prsence d'un cation divalent, par exemple, il se forme un complexe suivant la raction:
H2Y2- + M2+
MY2- + 2 H+
Influence du pH
La stabilit des complexes forme avec les diffrents cations, varie avec le pH. Certains d'entre eux,
pour lesquels la constante de formation est leve, sont stables depuis pH 5 jusqu'en milieu alcalin (ex.
Cu, Pb, Zn), d'autres, de constante de stabilit plus faible, tel celui du magnsium ne se forment pas en
milieu faiblement acide. Cette diffrence de comportement permet un dosage slectif en faisant varier
les conditions d'acidit.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
58
Indicateurs
Les dosages complexomtriques se faisant en milieu tamponn, il n'est pas possible d'utiliser la
libration des ions H+ pour suivre le dosage.
On emploie gnralement les indicateurs formant avec les ions mtalliques des complexes cationindicateurs moins stables que la complexe cation-EDTA. D'autre part, la couleur de l'indicateur libre
doit tre trs diffrente de la couleur du complexe cation-indicateur.
Le choix de l'indicateur est trs important dans les dosages complexomtriques. En effet, un indicateur
est inutilisable si la constante de formation du complexe cation-indicateur est trop forte (blocage).
5.1.6.2.
Mode opratoire
Il s'agit de dterminer:
a) la duret totale de l'eau (ou titre hydrotimtrique total). Ceci reprsente la quantit d'ions
calcium et magnsium que contient une eau.
b) la teneur en ions calcium.
c) la teneur en ions magnsium.
d) le degr permanent.
Tout ceci l'aide d'une solution d'EDTA 0,01 M pralablement dose.
5.1.6.2.1.
Dissoudre 4g environ d'E.D.T.A. (sel disodique) et 0,05g de chlorure de magnsium (MgCl2, 6H2O)
dans 1000 ml d'eau distille.
Agiter la solution pendant 10 15 mn pour que la dissolution de l'E.D.T.A. soit totale.
5.1.6.2.2.
Dans un bcher, peser exactement environ la quantit ncessaire de carbonate de calcium pur. La
dissoudre dans environ 10 ml d'acide chlorhydrique 0,5 M (viter d'utiliser un gros excs d'acide).
Lorsque le solide est compltement dissout, transfrer quantitativement la solution dans une fiole
jauge de 100 ml Complter jusqu'au trait avec de l'eau distille.
5.1.6.2.3.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
59
Prlever exactement 10 ml d'eau (20 ml ou 50 ml pour une eau dont le titre hydrotimtrique est faible),
les introduire dans un erlen et y ajouter:
! 1 ml de solution tampon pH 10 (ou 2 ml ou 5 ml).
! une pince d'indicateur au noir riochrome.
Agiter. Verser lentement au moyen d'une burette, la solution d'E.D.T.A. jusqu'au virage de l'indicateur
(rouge bleu).
Soit x1 le volume vers et M la molarit de la solution d'E.D.T.A.
Calculer le titre hydrotimtrique total.
5.1.6.3.
Dans le cas du dosage en bloc des ions calcium et magnsium, les rsultats sont exprims en degrs
hydrotimtriques.
En France le degr hydrotimtrique (D.H.) quivaut 10 mg de CaCO3 par litre d'eau. Dans les autres
pays, la dfinition du D.H. est lgrement diffrente.
Pour effectuer ce calcul, il faut assimiler les ions Mg2+ + Ca2+ des ions Ca2+ que l'on transforme
ensuite en mg de CaCO3.
DOSAGE DU CALCIUM (pH = 12-13)
Pour que le magnsium n'interfre pas, on le fait prcipiter sous forme d'hydroxyde.
Dans un erlen introduire,
! 10 ml de l'chantillon d'eau (ou 20 ml ou 50 ml),
! 2 ml (prouvette gradue) de soude 2N,
! une pince d'indicateur au calcon.
S'il y a des ions calcium, l'chantillon prend une couleur rouge lie de vin.
Titrer avec la solution d'E.D.T.A. jusqu'au virage de l'indicateur (rouge bleu).
Calculer la teneur en calcium (exprime en mg.l-1).
DETERMINATION DE LA TENEUR EN MAGNESIUM.
Connaissant le titre hydrotimtrique total et la teneur en calcium, calculer la teneur en magnsium
(exprime en mg.l-1).
5.1.6.4.
Le degr permanent correspond aux ions Ca2+ et Mg2+ restant en solution aprs bullition prolonge de
l'eau. Cette opration a pour rsultat de prcipiter une partie des ions Ca2+ et Mg2+ par suite de la
dissociation des bicarbonates.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
Ca(HCO3)2
sol.
Mg(HCO3)2
sol.
60
5.2.
DTERMINATION DE L'ALCALINIT4
5.2.1.
Modes d'expression
Les alcalinits sont habituellement values en degrs T. A. et T. A. C. dont nous avons donn la
dfinition dans le cours.
A propos des corrosions, nous devons signaler le rle de la soude caustique dans l'eau de chaudire.
Pour cette raison, les Allemands ont dfini une autre unit, le natronzahl ou nombre de soude et lui ont
fix des limites pour les diffrents types de chaudires.
Le nombre de soude se calcule ainsi:
mg/l Na 2 CO 3
nombre de soude = mg/l NaOH +
4,5
ou 11,3 T. A. - 3,3 T. A. C., ou, si l'on veut tenir compte du sulfite et des phosphates:
NaOH +
Na 2 CO 3 Na 2SO 3 Na 3 PO 4 12 Aq.
+
+
4,5
4,5
1,5
Mthode classique
5.2.2.1.
Ractifs
CHIMIE INDUSTRIELLE
07/01/2005
(4,9 g/l)
1
1
1re Edition
Tome TP
61
Mode opratoire
A 100 ml d'eau, ajouter 2 gouttes de phtaline, puis la quantit de H2SO4 exactement ncessaire pour
dcolorer.
Aprs introduction d'une goutte de mthylorange, continuer l'addition d'acide jusqu'au virage du jaune
au ros orang. Si nous appelons n le nombre de millilitres d'acide ncessaires pour dcolorer la
phtaline, N le nombre de millilitres jusqu'au virage du mthylorange, les degrs d'alcalinit sont
donns par les formules:
T. A. = 5n
T. A. C. = 5N
5.2.2.3.
Calculs
Si on nglige les phosphates contenus seulement en petite quantit dans l'eau de chaudire et certaines
eaux pures, les cas suivants peuvent se prsenter.
1 T. A. = 0: absence d'alcalis caustiques et de carbonates.
a) T. A. C. < 0,25: absence de bicarbonates (eau distille, condense ou dminralise).
b) T. A. C. > 0,25: l'eau contient des bicarbonates (eau naturelle ou adoucie)
mg/l NaHCO3 = 16,8 T. A. C.
2 T. A. > 0
T. A. C.
: l'eau renferme des carbonates et des bicarbonates:
2
mg/l Na2CO3 = 21,2 T. A.
mg/l NaHCO3 = 16,8 (T. A. C. - 2 T. A.)
a) T. A. <
T. A. C.
: l'eau renferme seulement des carbonates:
2
mg/l Na2CO3 = 21,2 T. A.
= 10,6 T. A. C.
b) T. A. =
T. A. C.
: l'eau contient des carbonates neutres et des alcalis caustiques. C'est
2
le cas des eaux de chaudires par suite de la dissociation du carbonate:
mg/l NaOH = 8 (2 T. A. - T. A. C.)
mg/l Na2CO3 = 21,2 (T. A. C. - T. A.)
c) T. A. >
Bien qu'elle soit peu prcise, cette mthode est suffisante pour les contrles courants, notamment ceux
effectus l'atelier mme. En effet, l'eau contient souvent des produits plus ou moins alcalins, tels que
silicates, sulfites, aluminates, bases organiques, dont la prsence peut tre la cause d'erreurs
importantes, notamment sur la teneur en soude libre.
5.2.3.
Mthode de Winckler
Cette mthode est utilise chaque fois qu'il est ncessaire de connatre avec prcision les teneurs en
soude caustique.
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
62
Principe
Elimination des sels d'acides faibles sous forme de sels de baryum insolubles. Les bases caustiques
subsistent seules sous forme de baryte.
5.2.3.2.
Ractifs
10 %
N/10
Mode opratoire
DTERMINATION DU pH4
Le pH peut tre dtermin de diffrentes manires selon la prcision cherche. Pour des mesures
sommaires, les indicateurs colors sont couramment utiliss. Prsents sous forme de solutions, la
prcision qu'ils permettent d'esprer est 0,2 mais, sous forme de papier color, on peut difficilement
attendre mieux que 0,5. Aux pH suprieurs 10, ces mthodes sont peu rigoureuses.
Il existe dans le commerce de nombreux types d'appareils fixes ou portatifs, pH-mtres lectrodes de
verre permettant des contrles trs prcis (jusqu' 0,01) condition de ne pas ngliger les corrections
de temprature.
Mthodes AFNOR
NF T 90 006 Mesure colorimtrique du pH.
NF T 90 008 Mesure lectromtrique du pH avec l'lectrode de verre.
5.4.
DTERMINATION DE LA SALINIT4
CHIMIE INDUSTRIELLE
07/01/2005
1re Edition
Tome TP
5.4.1.
63
A une mme temprature, la salinit d'une eau est peu prs proportionnelle sa densit. Une lecture
de temprature et une lecture de densit (gnralement en degrs Baum) suffisent pour connatre
approximativement la salinit.
Il existe dans le commerce des instruments appels pacomtres qui sont des densimtres dans lesquels
est inclus un thermomtre. Des graphiques donnent la correction de temprature effectuer et la
correspondance degrs Baum-salinit. Nous les rsumons ci-dessous:
Temprature Correction d B
15
0
19
+ 0,10
22
+ 0,20
25
+ 0,29
28
+ 0,40
30
+ 0,50
38
+ 0,90
49
+1
d B
0,14
0,28
0,57
1
1,2
Salinit g/l
1
2
4
6,9
8,3
La prcision de cette mthode est mdiocre, surtout lorsque la densit est mesure une temprature
loigne de 15 C.
5.4.2.
5.4.2.1.
Principe
Quand une chaudire est alimente avec une eau de qualit constante, le rapport chlorure/extrait sec est
constant. Il sufft de dterminer ce rapport de temps en temps. Les chlorures sont doss par la mthode
volumtrique au nitrate d'argent:
! soit en prsence d'un indicateur color (chromate de potassium) ;
! soit par potentiomtrie.
5.4.2.2.
Ractifs
Nitrate d'argent. Il est commode d'utiliser une solution dont 1 ml correspond 1 mg Cl.
Chromate de potassium 10 %.
5.4.2.3.
Mode opratoire
07/01/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
64
Dans les deux cas, un essai blanc sur l'eau distille est indispensable. Soient n ml AgNO3 consomms
dans l'essai blanc.
5.4.2.4.
Calculs
extrait sec
chlorures
Salinit (mg/l) = 20 (N - n)f
Cette mthode, plus prcise que la prcdente, prsente en outre l'avantage de renseigner sur la
proportion de chlorures dont l'accumulation peut provoquer des corrosions.
Cependant, le rapport extrait sec/chlorures peut subir des variations accidentelles dues la conduite de
l'puration: variation de l'alcalinit, de la teneur en phosphate ou, dans le cas d'adoucissement,
introduction de chlorure de sodium provenant d'un mauvais rinage des purateurs.
La prsence de polyphosphates non hydrolyss est une cause d'erreur, qu'une bullition pralable de 15
mn avec une quantit d'acide nitrique 10 %, suffisante pour tre en milieu nettement acide, permet
d'liminer.
5.4.3.
Mesure de rsistivit
Pour dterminer la salinit d'une eau faiblement minralise (distille ou dminralise), la mesure de
la rsistivit lectrique est une mthode simple et rapide donnant des rsultats d'une prcision
suffisante.
Lorsque cette dtermination est utilise pour l'exploitation d'une chaudire haute pression, les purges
sont rgles directement en fonction d'une rsistivit minimale tenir, sans passer par la salinit
exprime en milligrammes par litre.
5.4.4.
Evaporer sans faire bouillir dans une capsule de platine une certaine quantit d'eau, scher le rsidu
(110-120) et peser.
5.5.
Les teneurs en phosphates solubles s'expriment habituellement en milligrammes de P2O5 par litre.
Les phosphates provenant essentiellement de ractifs introduits en cours d'opration, il n'y a pas lieu de
les rechercher dans les eaux naturelles. Leur dosage dans l'eau pure prsente peu d'intrt pratique.
Par contre, il faut vrifier souvent la teneur en P2O5 de l'eau de chaudire.
Une partie de P2O5 correspond :
5,05 de Na2HPO4 12 Aq.
et
5,35 de Na3PO4 12 Aq.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
5.5.1.
5.5.1.1.
65
Principe
La rduction de l'acide molybdique en prsence de phosphates donne une solution bleue d'autant plus
fonce que la concentration en P2O5 est plus leve.
Propose pour la premire fois par DENIGES, cette mthode a t modifie par de nombreux chercheurs.
Les modifications ont port:
! sur les rducteurs employs: tain (SPLITTGERBER), chlorure stanneux, thiosulfate,
hydroquinone, acide 1-2-3 aminophtosulfonique, benzidine,
! sur la comparaison des teintes obtenues, teintes souvent altres par la coloration brune de
l'eau de chaudire et par la raction colore de la silice sur le molybdate (jaune-vert).
De toutes les mthodes proposes jusqu' ce jour, la plus prcise est incontestablement celle qui utilise
le chlorure stanneux comme rducteur. Elle a t mise au point par HUBIE et CHOSSAT. Nous
l'indiquons, ci-dessous avec quelques perfectionnements apports par DESIRE.
5.5.1.2.
!
!
!
!
photocolorimtre muni d'un cran rouge 610 m, dfaut, comparateur ou srie de tubes
talons,
pipettes de 10 et 1 ml gradues en diximes,
ballons jaugs de 100 ml,
tubes essais.
5.5.1.3.
!
!
!
!
Appareillage
Ractifs
Mode opratoire
Introduire 10 ml d'eau analyser dans un ballon de 100 ml. Acidifier avec HCl N/10 jusqu'
dcoloration de la phnolphtaline. Complter 100 ml avec de l'eau distille.
Prlever 10 ml de la dilution et les placer dans un tube essais.
Ajouter 1 ml de solution sulfomolybdique, puis 1 ml de solution dilue de SnCl2. Homogniser et
attendre 90 30 mn Effectuer la mesure colorimtrique.
Si la teneur en P2O5 est infrieure 5 mg/l, utiliser 10 ml d'eau analyser non dilue et diviser le
rsultat obtenu par 10.
Les solutions de rfrence se prparent partir d'une solution de phosphate monoammonique 5 mg/l
de P2O5 (8,098 mg de NH4H2PO4 par litre).
Par dilution, on prpare des solutions talons 0,1, 0,5, 1, 2, 3, 4, 5 mg/l de P2O5.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
66
10 ml de ces solutions, traites comme indiqu ci-dessus, donnent l'chelle de teintes correspondant
des eaux de chaudires titrant 1, 5, 10, 20, 30, 40, 50 mg/l de P2O5.
Quand on dispose d'un photocolorimtre, la courbe talon de l'appareil est tablie une fois pour toutes.
Dans le cas contraire, il faut prparer une srie complte de tubes talons chaque mesure.
5.5.2.
Mthode acidimtrique
5.5.2.1.
Principe
Ractifs
Acide sulfurique 5 %
Soude titre N/25
Mthylorange
Phnolphtaline
5.5.2.3.
Mode opratoire
Dans un erlenmeyer de 250 ml, on introduit successivement 100 ml d'eau, 1 goutte de mthylorange et
la quantit d'acide sulfurique pour faire virer nettement au ros. On fait bouillir 5 mn pour chasser CO2
et on laisse refroidir.
On fait couler goutte goutte la soude jusqu' obtention de la teinte sensible jaune-orang, on ajoute 2
gouttes de phtaline et on titre par la soude jusqu' virage au ros.
5.5.2.4.
Rsultats
Soit N le nombre de millilitres de soude ncessaires pour passer du virage du mthylorange celui de
la phtaline.
La teneur en milligrammes par litre de P2O5 est N x 28,4.
Cette titration est plus longue et moins prcise que celle par l'urane, les rsultats tant influencs par la
silice et les matires organiques. Toutefois, elle est simple, ncessite peu d'appareillage et des ractifs
courants.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
67
5.6.
5.6.1.
Principe
Le dosage des polyphosphates contenus dans les circuits d'eau est effectu par colorimtrie. Mais cette
mthode ne peut tre applique qu'aprs hydrolyse du polyphosphate en orthophosphate.
Par ailleurs, l'eau du circuit peut contenir du polyphosphate dj transform partiellement en
orthophosphate (cas du circuit ferm).
Dans ces conditions, il est intressant de connatre:
! les orthophosphates dans l'eau du circuit,
! les phosphates totaux, dtermins aprs hydrolyse de la prise d'essai, d'o on dduit la teneur
en polyphosphates.
Dans les deux cas, la mthode colorimtrique est la mme.
5.6.2.
Prcaution essentielle
Il importe que tout le matriel utilis n'ait pas t lav avec un dtersif contenant du phosphate.
5.6.3.
Hydrolyse du polyphosphate
Le dosage sur la solution hydrolyse ou non est identique celui du P2O5 dans les eaux de chaudires.
Nous allons nanmoins le rappeler, afin d'viter au lecteur de s'y reporter.
5.6.4.1.
!
!
!
!
Appareillage
photocolorimtre muni d'un cran rouge 610 m ou, dfaut, comparateur ou srie de tubes
talons,
pipettes de 10 et 1 ml gradues en diximes,
ballons jaugs de 100 ml,
tubes essais.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
68
Ractifs
!
!
!
5.6.4.3.
Mode opratoire
Mthode AFNOR
5.7.
DOSAGE DE L'OXYGENE1
5.7.1.
Mthode polarographique
Cette mthode, de plus en plus utilise, est rapide et d'une grande simplicit. Son seul inconvnient est
de ncessiter un appareil relativement coteux.
5.7.1.1.
Principe
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
69
cathode (or, argent ou carbone) ; cette rduction provoque un courant proportionnel la pression
partielle d'oxygne dans l'chantillon. Les ractions suivantes ont lieu:
O2 + 2 H2O + 4e4 Ag + 4 Cl5.7.1.2.
(raction la cathode)
(raction l'anode d'argent).
Appareillage
Mode opratoire
Rsultats
La lecture de la teneur en oxygne est lue directement sur l'appareil en milligrammes d'O2 par litre, ou
en millimtres de mercure de pression partielle d'oxygne dans l'chantillon, ou en proportion
d'oxygne par rapport la saturation la temprature de l'essai.
5.7.2.
Mthode de Winckler
Principe
L'oxygne oxyde les sels manganeux en sels manganiques. Ces derniers peuvent tre titrs
indirectement par le thiosulfate.
5.7.2.2.
Prise de l'chantillon
Tous les auteurs insistent sur les soins qu'il faut apporter cette opration, sous peine d'avoir des
rsultats errons.
L'eau prleve une temprature maximale de 30 C est introduite par un tube de caoutchouc au fond
d'un flacon de 250 300 ml bouch l'meri, ou dans un flacon spcial pour dosage d'oxygne.
On laisse dborder un grand volume avant de prendre l'chantillon. Quand il n'y a plus de bulles
entranes, on fait encore circuler un volume d'eau gal 10 fois celui du flacon, on retire le
caoutchouc avec prcaution et on bouche le flacon en prenant soin de n'emprisonner aucune bulle d'air.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
!
!
!
!
70
Ractifs
Mode opratoire
colorimtrique
la teinte brune du prcipit est compare une chelle de teintes d'o l'on dduit immdiatement la
teneur en oxygne ;
5.7.2.4.2.
volumtrique
on enlve un peu de la solution clarifie par dcantation, ajoute 5 ml HCl concentr (ou d'acide
phosphorique), agite, transvase la solution redevenue limpide.
On ajoute 2 3 ml d'empois d'amidon et titre par le thiosulfate jusqu' disparition de la coloration
bleue.
1 ml thiosulfate N/100 = 0,08 mg O.
En prsence de sulfites (cas du dgazage chimique), la mthode de Winckler doit tre modifie.
On transforme l'hydrate manganeux en carbonate par addition de bicarbonate de sodium.
On filtre le prcipit sur creuset de Gooch, lave et redissout par HCl.
On termine le dosage comme prcdemment. Cette mthode donnerait des rsultats convenables pour
des teneurs en oxygne de 0,05 0,5 mg/l.
D'autres mthodes ont t proposes, en particulier, le dgazage sous vide, l'oxygne dgaz tant
absorb par le ractif de WINCKLER.
5.7.3.
25/03/2005
1re Edition
Tome TP
Mthodes normalises
5.7.3.1.1.
Mode opratoire
Ractions
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
72
3 mthodes:
1) addition de sulfate de Mn, KI, KOH et H2SO4. Elimination de MnO2 par KMnO4 dont on dtruit
l'excs par de l'oxalate potassique. Titrage de l'iode libr par Na2S2O3 en prsence d'empois d'amidon.
2) Mme mthode mais lectrotitrage.
a) l'aide d'un galvanomtre jusqu' ce que l'aiguille n'accuse plus aucune dflection (dead stop
end point method).
b) en cherchant le point d'inflexion de la courbe des V en fonction des incrments de
thiosulfate.
3) Mthode microgazomtrique. L'O2 est dos comme gaz et absorb sur du pyrogallol. BS 1427
(1962).
Pour les faibles quantits d'O2 dissous (ex. 0,007 ppm). Comparaison de teintes produites par l'indigocarmin rduit avec du glucose. Les colorations passent de l'orange au rouge-violet et au bleu avec
l'accroissement de la quantit d'oxygne.
5.7.3.1.4.
Normes internationales applicables l'eau de boisson (Organisation mondiale
de la sant, Genve).
Oxyder par l'O2 dissous de l'hydroxyde manganeux, dcomposer par HCl. Il y a libration de C12 qui
donne une coloration jaune avec une sol. chlorhydrique d'o-tolidine. Comparer la coloration obtenue
avec une gamme talon.
DOSAGE DE LA SILICE1
5.8.
Quelle que soit la mthode utilise, les traitements chaud doivent tre effectus dans des rcipients
non siliceux (platine ou la rigueur alumine), l'eau distille et tous les ractifs doivent tre contrls au
point de vue de leur teneur en silice.
5.8.1.
5.8.1.1.
Mthode colorimtrique
Principe
L'acide molybdique en prsence d'ions siliciques produit une coloration jaune due au complexe silicomolybdique. Cette coloration est de mme ton que celle d'une solution neutre de chromate de
potassium. Son intensit est proportionnelle la quantit d'ions SiO2.
Pour les eaux trs faible teneur en silice (moins de 2 mg/l), il faut, aprs dveloppement de la couleur
silico-molybdique, ajouter une solution d'acide aminonaphtol-sulfonique qui donne une teinte bleue
beaucoup plus intense.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
!
!
!
!
!
!
!
73
Ractifs
Mode opratoire
5.8.1.3.1.
Dans une prouvette pour colorimtrie, verser 100 ml d'eau analyser. Dans une srie d'prouvettes
semblables, prparer des solutions de teneurs connues en SiO2 partir d'eau distille et de solution
type de silicate.
Ajouter successivement dans chaque prouvette 4 ml de solution de molybdate d'ammonium et 2 ml
d'acide chlorhydrique. Laisser reposer 5 mn et ajouter 4 ml d'acide amino-naphtol sulfonique.
Comparer avec les talons 2 mn aprs l'introduction de ce dernier ractif.
REMARQUES
! La silice peut exister sous deux tats diffrents: tat ionique et tat collodal. Dans la mthode
colorimtrique, la silice collodale chappe au dosage. On peut transformer la silice collodale
en silice ionique par chauffage pralable avec du bicarbonate de sodium. On nglige souvent
la silice collodale qui n'existe gnralement qu'en faible proportion.
! Les eaux renfermant plus de 300 mg/l de silice doivent tre dilues avec une proportion
connue d'eau distille.
! Pour le dosage au chromate, l'eau du tube tmoin doit tre amene, s'il y a lieu, au pH 8,5.
! La mthode l'acide aminonaphtolsulfonique est encore sensible pour 0,05 mg de SiO2 par
litre.
! Si l'eau est trs alcaline, il faut la neutraliser avec HCl en prsence de phnolphtaline car le
pH des solutions molybdiques acidifies doit tre compris entre 1 et 1,2.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
74
! Les eaux troubles doivent tre filtres, les eaux colores agites avec 2 g de charbon actif pur,
puis filtres.
! En prsence de certaines matires rductrices qui font bleuir le ractif molybdique, le dosage
colorimtrique au chromate exige un traitement pralable dcrit dans la norme AFNOR.
! Si l'eau renferme des anions phosphoriques, il faut 5 mn aprs l'addition d'acide
chlorhydrique (et le cas chant 1 mn avant l'addition d'acide aminonaphtolsulfonique),
ajouter 3 ml d'une solution d'acide oxalique 100 g/l.
Dans ce cas, la coloration due au phosphore est ngligeable jusqu' 5 parties de phosphore
pour une partie de silicium.
5.8.2.
Mthode pondrale
5.8.2.1.
Principe
Ractifs
Mode opratoire
Acidifier 1 2 l d'eau avec 10 ml d'acide chlorhydrique, vaporer sec au bain-marie dans une capsule
de platine. Scher l'tuve pendant 1 h 105-110 C. Imbiber avec 5 ml de HCl, puis 50 ml d'eau
chaude, porter l'bullition, filtrer et laver l'eau distille.
Evaporer le filtrat, scher nouveau 120 C, reprendre, filtrer sur un second filtre et laver comme
prcdemment.
Calciner les deux filtres jusqu' poids constant. Evaporer nouveau avec 10 ml d'acide fluorhydrique
et deux gouttes d'acide sulfurique, calciner.
Soit M la perte de poids du creuset aprs traitement l'acide fluorhydrique et seconde calcination,
V le volume en millilitres de la prise d'essai,
la teneur en silice au litre est gale :
1000 M
V
REMARQUES
! La mthode pondrale dose aussi bien la silice collodale que la silice ionique.
! Il faut vrifier l'absence de rsidu fixe (acide fluosilicique) dans l'acide fluorhydrique.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
75
DOSAGE DU MANGANESE5
5.9.
Mode opratoire
100 ml eau.
2 ml H2SO4.
Chauffer jusqu' fumes blanches: limination Cl-.
Lger refroidissement.
+ 5 ml H3PO4: complexion Fe3+.
+ 15 ml HNO3.
Ebullition.
+ 0,5 g KIO4.
Ebullition 3 mn.
Maintenir temprature lgrement infrieure l'bullition pendant 15 mn.
Refroidir.
Porter 100 ml avec de l'eau distille d'appoint.
Mesurer l'absorption par rapport un blanc prpar dans les mmes conditions.
Longueur d'onde: 524 m.
Epaisseur des cuvettes: b = 4,000 cm.
Dans ces conditions le coefficient d'absorption molaire am = 2250 50.
Sensibilit: 0,050 0,010 mg Mn/l.
Remarque: il est prudent pour chaque appareil de mesure de rechercher la longueur d'onde voisine de
524 m correspondant au maximum d'absorption (fonction de la largeur de bande utilise).
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
76
Normes Etrangres
5.9.1.4.1.
Mthode au persulfate: les composs manganeux solubles oxyds par les persulfates en prsence de
nitrate d'argent donnent des permanganates.
La coloration ainsi obtenue est compare avec celles de solutions tmoins dans des tubes de Nessler.
5.10.
DOSAGE DU FER5
5.10.1.
Voici pour quelques ractifs, les valeurs des coefficients d'absorption molaire (am) des complexes
colors du Fe.
Ractif
acide thioglycolique
1.2 dihydroxybenzne 3.5 sulfonate de Na
KSCN
' dipyridyl
o.phnanthroline
3850
6150
7400
8850
12150
Des trois derniers ractifs les plus sensibles, o.phnanthroline est pour certaines eaux le moins prcis,
les rsultats tant entachs d'erreurs par dfaut de 5 10 %.
5.10.1.1.
KSCN
Principe: Fe3+ donne, en milieu acide, en prsence de SCN- des complexes thiocyans rouges. Le
mcanisme de cette raction n'est pas entirement lucid: la nature et la concentration en acide, la
concentration en KSCN, le temps de raction influencent l'intensit de la coloration et la stabilit du
complexe color. Il est donc important de travailler toujours clans les mmes conditions opratoires.
La mthode renseigne ci-aprs est prcise et aise.
Ions gnants:
1) qui complexent Fe3+: F-, PO43-, beaucoup de Cl-.
2) qui donnent des complexes colors avec SCN-: Cu2+, Co2+, Bi3+, ...
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
3+
3) qui rduisent Fe ou oxydent SCN-: tels NO2-, ...
77
Matriel
Ractifs
HNO3 concentr.
KSCN 33 g dans 100 ml eau distille.
5.10.1.1.3.
Mode opratoire
100 ml eau.
+ 3 ml HNO3.
Ebullition 10 mn.
Refroidir.
+ 3 ml KSCN.
Porter 100 ml.
Mesurer l'absorption (A) aprs 5 mn par rapport un blanc prpar dans les mmes conditions:
Longueur d'onde: 475 m.
Epaisseur des cuvettes
b = 4,000 cm pour 0,01 < c < 2,00 mg/l.
b = 1,000 cm pour 2,00 < c < 5,00 mg/l.
Dans ces conditions le coefficient d'absorption molaire am = 7400.
5.10.1.1.4.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
78
' dipyridyl
Principe: ractif des ions ferreux: formation d'un complexe rouge de formule [(C10H8N2)3 Fe] X2. Les
ions ferriques ne ragissent pas.
Ions gnants: PO43- concentration 10 fois suprieure Fe.
F- concentration 250 fois suprieure Fe.
Expression des rsultats: en mg Fe/l o m.. Fe/l.
5.10.1.2.1.
Matriel
Ractifs
HCl 1,9.
Chlorhydrate d'hydroxylamine: 10 g dans 100 ml HCl N/10
NH4OH 1.3.
5.10.1.2.3.
Mode opratoire
100 ml eau.
+ 1 ml HCl.
+ 1 ml chlorhydrate d'hydroxylamine.
Porter bullition.
Refroidir.
+ x ml ' dipyridyl: 1 ml permet de doser au max. 0.12 mg Fe dans la prise.
Ajuster le pH entre 6 et 7 par NH4OH 1.3 (correspond au max. d'absorption).
Porter 100 ml.
Mesurer l'absorption (A) par rapport un blanc prpar dans les mmes conditions:
Longueur d'onde 520 m.
Epaisseur des cuvettes:
b = 4,000 cm pour 0,005 < c < 1,00 mg Fe/l.
b = 1,000 cm pour 1,00 < c < 4,00 mg Fe/l.
Dans ces conditions le coefficient d'absorption molaire am = 8850.
Sensibilit: 0,005 0,001 mg Fe/l.
Avantages de ce ractif:
! L'absorption est constante au moins pendant 24 heures.
! L'absorption est indpendante dans de larges proportions des concentrations en ractifs.
! Reproductibilit excellente.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
79
Remarque: ' dipyridyl permet de doser Fe2+ l'exclusion de Fe3+: il suffit de ne pas ajouter de
rducteur au cours du traitement de l'chantillon. La diffrence entre Fe total et Fe2+ donnera Fe3+.
5.10.2.
Fer complex
Le fer complex dans les eaux l'est gnralement sous forme organique. Son dosage ncessite la
destruction des dites substances organiques.
Expression des rsultats: en mg Fe/l ou m.. Fe/l.
5.10.2.1. Matriel
Creuset de Pt de 50 ml environ.
Matras de 50 ml.
3 pipettes de 3 ml.
Spectrophotomtre ou photocolorimtre (filtre: 475 ou 520 m).
5.10.2.2.
Ractifs
HNO3 concentr.
KSCN 33 % ou
' dipyridyl 0,1 % dans HC1 0,1 N.
Chlorhydrate d'hydroxylamine 10 %.
NH4OH 1,3.
5.10.2.3.
Mode opratoire
Mthodes normalises
5.10.3.1.1.
Principe de la mthode: Le fer est rduit l'tat ferreux et sa concentration est mesure par l'intensit
de coloration du complexe Fe2+-O-phnanthroIine ou du complexe Fe2+-' dipyridyl.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
80
Dtermination colorimtrique.
5.10.3.1.5.
Normes internationales applicables l'eau de boisson (Organisation mondiale
de la Sant - Genve).
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
5.11. DOSAGE DE L'AMMONIAQUE5
81
Principe: NH3 n'est retrouv quantitativement que si l'eau distiller est maintenue un pH voisin de
7,4 l'aide d'un tampon au phosphate, par exemple.
Le distillt est recueilli dans une quantit connue d'acide dont l'excs est ensuite dtermin.
Expression des rsultats: en mg NH4+/l ou en m.. NH4+/l.
5.11.1.1.1.
Matriel
Ractifs
Mode opratoire
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
82
A la fin de l'essai, redescendre le verre pied sous le rfrigrant et augmenter la vitesse de
distillation pour rincer l'appareil. Rincer aussi le bout extrieur du rfrigrant par un jet de pissette.
Titrer par KOH 0,1 N.
Pendant ce temps, distiller 50 ml supplmentaires qui serviront au contrle par Nesslrisation
directe (voir plus loin).
Dtermination des rsultats:
Pour une prise de 500 ml d'eau, si n ml de KOH ont t utiliss, on aura:
0,2 (50 - n) m.. NH4+/l
ou encore
3,6 (50 - n) mg NH4+/l
Remarques:
1) Pour des teneurs de 20 30 mg/l distiller 200 ml. Pour des teneurs de 50 60 mg/l distiller
300 ml.
2) Si le rfrigrant ne se termine pas par un renflement, il y a lieu d'ajouter un dflegmateur
pour rgulariser la pression.
5.11.2.
Mthode de Nessler
Principe:
2 HgI42- + 2 NH3
2 NH3HgI2
La difficult consiste travailler dans des conditions rigoureusement identiques pour que les particules
collodales soient de mme grandeur.
Ions gnants: SO32-, S2- Fe.
Substances colores et turbides.
Expression des rsultats: en mg NH4+/l ou en m.. NH4+/l.
5.11.2.1.
Matriel
Ractifs
Ils doivent tre prpars l'aide d'eau exempte de NH4+, obtenue, par exemple, de la manire suivante:
ajouter quelques gouttes de brome l'eau distille, laisser reposer une nuit et redistiller.
Sel de Seignette:
tartrate double de Na et K 33 %.
Additionner de 2 ml de ractif de Nessler et laisser reposer 12 h.
Conserver l'abri de la lumire.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
83
Nessler:
HgI2 45.5 g.
KI 34,9 g.
Dissoudre dans trs peu d'eau.
Aprs dissolution ajouter 11 g KOH.
Porter 1000 ml.
5.11.2.3.
Mode opratoire
50 ml d'eau.
2 ml sel de Seignette.
2 ml ractif de Nessler.
Attendre 5 min.
Mesurer l'absorption 430 m.
Sensibilit: dpend de la valeur de l'absorption du blanc, c'est--dire de la puret des ractifs et de l'eau
utilise pour les prparer.
Remarques: 430 m, A ~ 0,500 pour 1 mg NH4+/l.
Il est videmment possible d'augmenter la prcision des mesures en travaillant plus courte longueur
d'onde, le maximum d'absorption se trouvant dans l'U.V.
5.11.3.
Ractifs:
1 Na2CO3 anhydre
2 NaOH en pastilles
3 tartrate sodico potassique 20
4 ractif de NESSLER (Merck)
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
84
Appareillage
photomtre Eppendorf.
5.11.3.3.
Mode opratoire
100 ml d'eau (ou eau rsiduaire) sont verss dans une ampoule dcanter avec environ 1 g de Na2CO3
et d'hydroxyde de soude. Si un trouble ou un prcit se produit, on le laisse dposer. De la solution
claire surnageante on pipette 50 ml (pour des teneurs en NH3 plus leve on en prlve une fraction)
dans un jaug de 100 ml; on ajoute 5 ml de tartrate sodico potassique, on agite soigneusement et on
laisse reposer 10 minutes. On ajoute ensuite 2 ml de ractif de Nessler, on agite, on complte, au
volume avec de l'eau bidistille et on mesure le coefficient d'extinction de la solution colore en jaune
par rapport un blanc, 436 m.
E436 m
x 0,66 = mg d' NH 3
d (cm)
Calcul:
Mthodes normalises
5.11.4.1.1.
5.11.4.1.3.
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
Mthode par traitement direct au ractif de Nessler aprs prcipitation des ions gnants.
85
5.12.
Ractif de Griess
Principe:
a) diazotation de l'acide sulfanilique en milieu actique
NO2- + H2N-C6H4-SO3H
SO3H-C6H4-N=N-X
b) copulation avec naphtylamine donnant l'acide p-sulfonique de naphtylamine-pazobenzne confrant une teinte ros la solution.
Expression des rsultats: en mg NO2-/l ou m.. NO2-/l.
5.12.1.1.
Matriel
Ractifs:
Mode opratoire
50 ml eau.
1 ml sol. d'acide sulfanilique - agiter.
1 ml sol. naphtylamine - agiter.
Mesurer l'absorption 520 m de longueur d'onde (max. d'absorption) aprs 30 min: ce
moment la solution n'volue quasi plus.
Sensibilit: 0,004 0,001 mg/l.
Remarque: le coefficient d'absorption molaire am est suprieur 30000.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
5.12.2.
86
Principe:
a) diazotation de l'acide sulfanilique en milieu acide
NO2- + H2N-C6H4-SO3H
SO3H-C6H4-N=N-Cl
b) copulation avec phnol en milieu ammoniacal, donnant SO3H-C6H4-N=N-C6H4OH.
Expression des rsultats: en mg NO2-/l ou m.. NO2-/l.
5.12.2.1.
Matriel
Ractifs
1 g acide sulfanilique dans 100 ml sol. sature chaude NH4Cl. Ajouter 1,5 g de phnol puis 100
ml HCl 2N aprs refroidissement.
NH4OH concentr.
5.12.2.3.
Mode opratoire
50 ml eau.
1 ml ractif de Lombard.
Attendre 15 min.
5 ml NH4OH conc.
Mesurer l'absorption par rapport un blanc prpar dans les mmes conditions.
Longueur d'onde: 435 m (max. d'absorption).
Epaisseur des cuvettes: 4,000cm.
Stabilit de la coloration: 24 h.
Dans ces conditions le coefficient d'absorption molaire am = 25500.
Sensibilit: 0,004 0,001 mg/l.
5.12.3.
5.12.3.1. Ractifs
Sol. 0,1 % bichlorure de N (1 naphtyl) - tylnediamine (1 ml = 1 mg).
Ractif de diazotation: dissoudre 20 g de sulfanilamide dans 1 litre d'eau contenant 50 ml
H3PO4.
Solution: 1 % de perhydrol.
Solution standard: Dissoudre 75 mg nitrite de Na dans 500 H2O. Prlever 10 ml et porter 100
(1 ml = 10 NO2).
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
87
Mthode
Prlever 50 ml dans une jauge de 100 ml. Ajouter 1 goutte de Perhydrol et agiter afin d'oxyder le SO2
en sulfate. Ajouter 10 ml de ractif de sulfanilamide et 1 ml de bichlorure de N (1 naphtyl)
thylnediamine, dilu 100 ml et mlanger.
Laisser reposer 30 minutes et mesurer l'absorbance 550 m/n (cuvettes 50 m/m).
Pour trouver la courbe d'talonnage eau distille laquelle on ajoute 0,2 - 0,4, 0,6 - 0,8 et 1,0 ml de
sol. standard de nitrate de Na.
Ajouter 1 goutte H2O2, 10 ml ractif de diazotation et 1 ml de N (1 - naphtyl) - thylnediamine.
Porter 100 ml.
Faire la lecture 550 mu.
Effet du SO2:
Dans 1 chantillon, en prsence de SO2, 1 goutte de H2O2, 1 % oxyde le SO2 en sulfate, mais
n'interfre pas avec l'intensit de la coloration lorsqu'elle est mesure aprs 30 min. (Analyse Chimique
mars 1958, 426-428).
5.12.4.
Mthodes normalises
5.12.4.1.1.
En prsence de chlore libre et de trichlorure d'azote, les nitrites ne subsistent videmment pas. Le
trichlorure produit une coloration rougetre qui peut tre confondue avec celle des nitrites. Il faut donc
pralablement s'assurer de la prsence ou de l'absence de chlore ou de trichlorure d'azote par
l'orthotolidine.
La mthode prvoit galement une clarification des eaux contenant des substances collodales colores
ou des sels de mtaux lourds par une solution d'hydroxyde sodique puis de sulfate aluminique et par
filtrage.
5.12.4.1.2.
Mthode d'aprs Griess avec estimation de la coloration visuelle ou absorptiomtrique (filtre vert:
entre 5000 et 5400 ),
5.12.4.1.3.
Mme mthode.
5.12.4.1.4.
Normes internationales applicables l'eau de boisson (Organisation mondiale
de la Sant, Genve).
Mme mthode.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
5.13.
88
5.13.1.
Ractif
Principe
l'acide 1-2-4 phnoldisulfonique formerait avec NO3- un mlange de p nitrophnol, 2-4 dinitrophnol,
et 2-4-6 trinitrophenol, drivs nitrs de teinte jaune.
(Andreotti - Industria Ital. Conserv. 26-203-1951).
Raison pour laquelle la prcision de la mthode n'est que de 5 % environ.
Ions gnants: NO2- pour des doses suprieures 1 mg/l.
Cl pour des doses suprieures 30 mg/l.
Le pH doit tre infrieur 8.0.
Les matires organiques.
Expression des rsultats: en mg NO3-/l ou m.. NO3-/l.
5.13.3.
Matriel
Ractifs
Mode opratoire
25/03/2005
1re Edition
Tome TP
89
Ractifs
Mthode
Pipetter 10 ml de l'eau analyser dans un bcher de 25 ml (pour des teneurs en N2O5, suprieures 25
mg/litre, la prise d'essai sera plus petite).
Rendre faiblement alcalin par NaOH.
Ajouter 1 ml de la solution de salicylate de soude.
Evaporer sec au bain marie ou dans une tuve porte 75-80 (ne pas surchauffer, ni chauffer trop
longtemps).
Reprendre le rsidu par 1 ml H2SO4 conc. tout en prenant attention que le rsidu soit compltement
humect.
Attendre 10 minutes puis ajouter 6 ml d'eau bidistille.
Ajouter 10 ml NaOH et transvaser quantitativement la solution dans un jaug de 100. Complter au
trait avec de l'eau bidistille.
En prsence de nitrate, la solution est colore en jaune.
Lire l'extinction 405, 436 ou 366 en utilisant un blanc prpar de la mme faon partir d'eau
bidistille.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
90
Calcul
E405
. 0,488 = mg N 2 O 5
d (cm)
E436
. 0,625 = mg N 2 O 5
d (cm)
E366
. 1,14 = mg N 2 O 5
d (cm)
Remarques:
1) Lorsque l'eau analyser est fortement trouble et souille, on y ajoute, lors du prlvement,
quelques pastilles de NaOH (10-15 par litre). Pour le dosage des nitrates on utilise la
solution claire.
2) Pour l'tablissement d'une courbe d'talonnage on peut utiliser une solution de nitrate de
potassium
Interfrences:
Insensibles Cl- jusqu' 200 mg/l, Fe jusqu' 5 mg/l, et NO2- jusqu' 2 mg/l. En prsence de 20
mg/l NO2-10 mg/l NO3- sont doss.
[Fe] > 0,5-1 mg/l est en gnral dcele par la coloration violette produite lors de l'addition du ractif
la prise d'essai (dpend de la valence du Fe). Le rsidu reste alors color. Si [Fe] 1-5 mg/l, doubler la
dose de ractif.
5.13.7.
Mthodes normalises
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
5.14. OXYDABILITE AU PERMANGANATE DE POTASSIUM6
5.14.1.
91
Elle fournit une apprciation de la teneur en matires organiques des eaux. La mthode consiste
laisser un certain volume d'eau examiner en contact avec une solution acide de permanganate de
potassium, dont on dose l'excs aprs un temps de raction de quatre heures.
5.14.1.1.
!
!
!
Ractifs ncessaires
Mode opratoire
On introduit 50 ml d'eau analyser dans un matras, on ajoute 5 ml d'acide sulfurique au 1/2, puis 50
ml de permanganate. On abandonne le matras pendant 4 heures la temprature du laboratoire. On
dcolore ensuite par 10 ml de solution de sel de Mohr. On titre en retour l'excs par la solution de
permanganate N/80 jusqu' apparition d'une coloration ros. Connaissant, d'une part la correspondance
entre le sel de Mohr et la solution de permanganate, d'autre part le volume d'eau utilis, on dduit
aisment la quantit d'oxygne ncessaire l'oxydation de la matire organique contenue par litre d'eau
traite.
Il est ncessaire qu'il y ait en permanence un excs de permanganate pendant 4 heures d'oxydation. On
s'assurera, en outre, que l'eau soumise aux essais ne contient pas de quantits importantes de nitrites.
5.14.2.
Porter bullition 100 ml d'eau sous analyse additionne de 10 ml d'acide sulfurique au 1/2. Ajouter
20 ml de permanganate N/80 et maintenir l'bullition pendant 10 min exactement.
Refroidir rapidement et ajouter 20 ml de sel de Mohr 5 g/l. Titrer par le permanganate N/80 et
retrancher de ce chiffre celui trouv en faisant le mme dosage sur de l'eau distille.
Si V est le volume de permanganate trouv, l'oxydabilit s'exprime par V en mg d'oxygne par litre.
Si l'oxydation dpasse 3,5 mg/l, il faut refaire le dosage en diluant l'chantillon.
5.15.
Cette mesure tend remplacer l'ancienne mthode d'apprciation de la teneur en matires organiques
des eaux, mthode au permanganate de potassium. Le pouvoir oxydant du dichromate de potassium
est suprieur celui du permanganate ; toutefois, un certain nombre de chanes droites aliphatiques
sont difficilement attaques ; il en est de mme pour certains noyaux.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
5.15.1.
!
!
!
!
92
Diluer 250 ml environ avec de l'eau distille, 25 ml exactement mesurs, de solution de dichromate.
Ajouter 75 ml d'acide sulfurique ( 20: 1,84 g/ml): refroidir jusqu' la temprature ambiante et titrer
l'aide de la solution de sulfate de fer et ammonium en prsence de quelques gouttes de solution de
ferrone, soit VT le volume de titrage.
!
!
Mode opratoire
On peut utiliser un ballon fond plat muni d'un entonnoir latral ferm par un robinet en tflon.
Le ballon d'oxydation muni d'un barreau aimant est assujetti au rfrigrant reflux. Le col rod est
pralablement lubrifi l'aide d'acide sulfurique.
Important: Ne jamais utiliser de graisse.
Le dispositif d'agitation coupl ou non avec le dispositif de chauffage, est plac sous le ballon.
Introduire par l'entonnoir 50 ml d'eau rsiduaire tudier ou une partie aliquote complte 50 ml par
de l'eau distille.
Mettre en marche le dispositif d'agitation.
Ajouter 1 g de sulfate de mercure puis 5 ml d'acide sulfurique (contenant du sulfate d'argent) et
dissoudre. S'assurer qu'il ne subsiste aucun prcipit de chlorure d'argent, dans le cas contraire chauffer
lgrement jusqu' dissolution. Ajouter 25 ml, exactement mesurs, de solution de dichromate puis 70
ml d'acide sulfurique (avec sulfate d'argent 6,6 g/l).
Fermer le robinet et faire bouillir pendant 2 h. Le barreau aimant en mouvement ou non favorise une
bullition rgulire.
5.15.4.
Mesure
Aprs bullition on laisse refroidir et on tend avec de l'eau distille jusqu' environ 400 ml, on ajoute
quelques gouttes de solution de ferrone et on rduit l'excs de dichromate l'aide de la solution de
sulfate de fer et d'ammonium. La coloration passe du vert au rouge violac, soit VT le volume utilis.
Paralllement, on prpare un essai blanc en remplaant la prise d'essai par 50 ml d'eau distille, soit
V0 le volume de sulfate de fer et d'ammonium utilis.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
93
5.16.
On peut dterminer les matires en suspension prsentes dans les eaux rsiduaires par plusieurs
mthodes:
5.16.1.
On rpartit 100 ml d'eau d'gout, pralablement bien agite, dans plusieurs tubes, on centrifuge 10 15
min 3 000 t/min (vitesse habituelle des centrifugeuses commerciales de laboratoire). Les matires
tant agglutines au fond des tubes par la rotation, on verse doucement le liquide clair qui servira
ultrieurement pour dterminer les matires en solution. On remet le prcipit en suspension dans l'eau
distille, on centrifuge nouveau, on jette le liquide surnageant.
Cette deuxime opration ayant t rpte deux fois, on entrane avec un jet de pissette le prcipit
dans une capsule de silice ou de platine. On sche au bain-marie d'abord, puis 105 C jusqu' poids
constant (24 h sont trs suffisantes) et on pse (matires en suspension totales) ; ensuite, on calcine
600 C et on obtient la fraction volatile (perte au feu, assimile parfois aux matires organiques) par
diffrence entre les matires totales et le rsidu calcin.
Lorsqu'il s'agit d'eau de rivire ou d'eaux rsiduaires pures, les volumes d'eau mettre en uvre sont
plus considrables et ncessitent une centrifugeuse munie, soit de godets de grande capacit, soit d'un
bol sparateur vertical rotation rapide. Enfin, la centrifugation peut tre remplace par une filtration
ou une dcantation de 24 h ; toutefois, les rsultats fournis par ces derniers procds sont un peu moins
prcis.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
5.16.2.
94
On filtre par percolation sur un papier sans cendres, pralablement sch 105 C et tar, un volume
bien dtermin d'eau analyser. On sche 105 C pendant 2 h environ jusqu' poids constant
(matires en suspension totales), puis on calcine 600 C (matires volatiles ou perte au feu).
On peut remplacer les filtres sans cendres par des filtres en fibre de verre (Millipore AP 20, Durieux D
28, Sartorius FN 501, etc.). Ces filtres en fibre de verre ne peuvent tre utiliss que pour la
dtermination des matires en suspension totales.
5.16.3.
Une mthode rapide de dtermination des matires en suspension, donnant des rsultats approchs et
significatifs pour l'exploitation journalire des stations d'puration par boues actives consiste peser
par densimtrie un volume donn de liqueur de boues actives, log dans un sac en plastique trs lger,
et immerg dans l'eau dcante (interstitielle) de la boue active. La lecture de l'aromtre auquel est
suspendu le sac plastique indique la masse des matires en suspension (p) contenues dans l'chantillon
de boues actives l'tude.
Si paralllement la pese de la boue on effectue un essai de dcantation de cette boue dans une
prouvette agrandie de 2,5 dm3, permettant de dterminer le volume apparent (v) de la boue dpose
au bout de 30 min, on possde les deux lments intervenant dans la dfinition d'un indice de qualit,
Ip = v/p (en ml/g)
qui, au mme titre que l'indice de Mohlman ou l'indice de Donaldson (p) permet de caractriser une
boue active.
L'ensemble du pse-boue et de l'prouvette agrandie constitue le Ponsarimtre (Figure 1).
Figure 1 - Ponsarimtre
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
95
TP 6 MICROPROCESSEUR Z80
6.1.
But
Ce laboratoire ne sera pas facile et trs dstabilisant. Mais tout est fait volontairement.
D'abord le manuel est en anglais, comme c'est le cas maintenant de nombreux manuels d'appareils. De
plus, comme dans la ralit, le manuel est complet, et tout n'est pas utilisable ds le dbut. Il va donc
falloir apprendre faire le tri des informations ncessaire au dpart. Le manuel fait par Hisoft est bien
fait et didactique.
Une autre difficult sera l'utilisation d'un ordinateur, le ZX SPECTRUM. Cet ordinateur qui naquit en
1982 avait une philosophie bien lui. Comme de nos jours, il n'est plus possible d'avoir un tel
ordinateur, nous utiliserons un mulateur. Le choix d'un tel ordinateur a t effectu parce que celui-ci
se rapproche grandement des automates programmables actuels, mme si ces derniers ont un
microprocesseur compatible suprieur (8051).
6.2.
Emulateur ZX SPECTRUM
6.2.1.
ZX 80
Le premier modle lanc par Sinclair Research en Janvier 1980, le ZX80, possde une mmoire vive
pour le moins opulente de 1 Ko, un clavier membrane multifonction qui permet d'entrer une
instruction BASIC complte par la pression d'une seule touche, systme nouveau et trs apprci des
utilisateurs.
Le systme est simple, un Z80 1 Mhz, pas de son et des graphismes monochromes en 64x44, la RAM
de base n'atteint que 1ko (mais est facilement extensible par module propritaire), et la ROM fait 4Ko,
pour acclrer les calculs le systme ne travail que sur des entiers, son clavier sensitif ne rend pas la
saisie facile mais les instructions sont accessibles par raccourci clavier.
ZX 81
La seconde uvre de Sinclair sera le ZX81, lanc en Mars 1981. Plus petit que le ZX80, mieux
optimis dans son montage et son cot de fabrication, et toujours quip du fameux clavier
membrane que tout le monde complimente (c'est pourtant une vritable horreur), et surtout muni d'une
version beaucoup plus complte du Basic Sinclair. Malgr une fiabilit matrielle catastrophique (le
ZX81 plante ds que l'on pose le doigt sur un de ses priphriques ou mme en cas de trop forte
pression sur les touches du clavier), c'est un succs encore plus probant que le ZX80, grce ses
nombreuses possibilits d'extension (carte graphique haute rsolution, changement de clavier,
extension mmoire de 1 Ko 16 Ko, carte son, carte entre-sortie, etc.) toutes vendues des prix
imbattables et son parc logiciel impressionnant qui permet au nophyte de toucher tout dans des
conditions d'apprentissage idales (la documentation de Sinclair est excellente et le ZX81 est un
ordinateur facile).
C'est en 1981 que sort le ZX81, c'est tout simplement une petite volution du ZX80, les principales
diffrences sont le recarossage de la bte, la vitesse du Z80 est port 3,25 Mhz, celui ci s'occupe
entirement de l'affichage ce qui fait que la machine est considrablement ralentit surtout qu'en plus le
ZX81 travail enfin sur des chiffre virgules flottante, heureusement pour acclrer l'excution des
programmes il est possible de coup le rafrachissement de l'cran et alors le processeur dcharg de ce
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
96
travail voit sa vitesse multipli de 2 3 fois, la ROM elle, est doubl (8Ko) avec 30 nouvelles
instructions, on remarquera aussi une plus grande intgration de la carte mre.
ZX SPECTRUM
Le Spectrum, sorti en Avril 1982, sera le plus beau coup de la carrire de Sir Clive. Pour la premire
fois, voil un ordinateur dot de suffisamment de RAM (16 Ko ou 48 Ko selon le modle), capable
d'afficher des graphismes en haute rsolution (256x192) en 8 couleurs et de produire du son (par un
haut-parleur interne)
Rien n'empchera le Spectrum de devenir peu peu l'un des micro-ordinateurs les plus vendus au
monde et de connatre une longue, trs longue carrire, notamment grce aux innombrables jeux
vidos dvelopps pour lui.
En Avril de la mme anne, le Spectrum se vend au rythme de 12000 units par mois. En Juillet, les
interfaces ZX 1 et 2 sont annonce, ainsi que les tristement clbres Microdrives, systme de stockage
de donnes sur bande pour ordinateurs Sinclair.
Les Microdrives, un des fleurons de Sir Clive, sont gravement reints par la presse spcialise. Ils
s'avrent plus lents charger des donnes que de simples lecteurs de cassette, et leur fiabilit est loin
d'tre probante, les bandes se dtriorant souvent lors de la lecture.
Idem pour les interfaces ZX 1et 2, prvues pour brancher des priphriques tels qu'extensions de ROM
(logiciels sur cartouche) ou joysticks sur Spectrum, qui sont si fragiles qu'elles font planter l'ordinateur
sitt qu'on les touche. Elles seront retires du march moins de deux ans aprs leur sortie, et les
logiciels sur cartouche se limiteront quelques jeux.
Le ZX Spectrum sorti 1982, permet Sinclair de produire un ordinateur ayant toutes les spcifications
modernes, le processeur est maintenant un Z80a cadenc 3,5 Mhz accompagn d'une RAM de 16Ko
ou 48Ko (le modle 48Ko est le plus courant, mais la carte mre est la mme, en fait, sur le modle
16Ko il y seulement la moiti des bancs de RAM occup, les supports eux sont prsents), la ROM est
de nouveau doubl par rapport la machine prcdente et passe donc 16Ko, il y a enfin une
rsolution graphique qui n'a rien envier aux meilleurs de l'poque en 256x192 en 8 couleurs avec
pour chaque deux niveaux de luminosit mais hlas avec de grosses contraintes de proximit, obligeant
la plus part des jeux tre en seulement deux ou quatre couleurs dfinis dans des zones de l'cran bien
distinct et bien spar les unes des autres, ce qui empche pas de les voir travers les sprites par
transparence, le son lui aussi subit une volution puisque maintenant il existe mais est de seulement 1
voie sur 10 octaves.
Le ZX Spectrum est un petit ordinateur personnel mis sur le march au Royaume-Uni en 1982. Bas
sur le processeur Zilog Z80 tournant 3,5 MHz, le Spectrum tait vendu soit avec soit 16Ko soit 48Ko
de mmoire (une extension tait aussi disponible pour passer de 16Ko 48Ko). La sortie vido se
faisait sur une tlvision avec un affichage monochrome. Un clavier en caoutchouc avec au-dessus de
la membrane (similaire celle d'une calculatrice) des inscriptions rappelant les mots cls du BASIC.
Ainsi, en mode de programmation, l'appui sur la touche 'G', par exemple, insre la commande BASIC
GOTO. Les programmes taient enregistrs sur un magntophone classique.
L'affichage vido du Spectrum, bien que rudimentaire par rapport aux standards actuels, tait parfait
l'poque pour l'affichage sur des postes de tlvision portables et n'a pas t un frein au dveloppement
de jeux vido.
Le mode texte est de 32 colonnes sur 23 lignes avec un choix de huit couleurs dans un mode soit
normal, soit brillant, ce qui donne seize teintes. La rsolution graphique est de 256x192 avec les
mmes limitations de couleurs. Le Spectrum a une mthode intressante de gestion des couleurs ; les
attributs de couleurs sont dans une grille de 32 par 24, spare des donnes graphiques et texte, avec
une limitation seulement deux couleurs par cellule. Cela a amen ce qui a t appel colour clash
ou attribute clash (collision de couleurs ou d'attributs) qui provoquait des effets bizarres dans les jeux
de style arcade.
Plusieurs priphriques pour le Spectrum ont t mis sur le march par Sinclair: l'imprimante y tait
dj puisque le Spectrum pouvait utiliser l'imprimante du ZX81. L' interface 1 a ajout un port RS-232
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
97
standard, un port pour rseau local et la possibilit de connecter des microdrives, minuscules cassettes
contenant une bande magntique en boucle qui furent galement utilises sur le Sinclair QL. Sinclair a
aussi dlivr l' Interface 2 qui ajoutait deux ports de manette de jeu et un port pour cartouche ROM.
Le Spectrum 128 (ou Spectrum 128+), t le dernier ordinateur rellement de Sinclair, sorti en 1985,
tous les autres sorti aprs cette sont sorti sous la houlette d'Amstrad et d'ailleurs cela se sent dans leur
conception et leur carte mre en porte l'inscription sriegraphi, mais revenons au ZX128, cet
ordinateur est une peu plus qu'une simple volution de son prdcesseur, il a en plus un nouveau chip
sonore (Yamaha AY-3-8912), et des ports RS232/midi, il a aussi comme son nom l'indique 128Ko de
mmoire et un nouvel diteur basic avec de nouvelles instructions pour grer les modifications
hardware (l'ancien basic est toujours disponible via un menu au dmarrage), ce nouvel diteur basic est
enfin en plein cran, ce qui donne un confort d'utilisation indniable, quant la mmoire
supplmentaire elle peut tre utilis sous forme de ramdisk.
QL
En Janvier 1984, Sinclair annonce le QL (pour Quantum Leap), destin tre son plus grand succs.
Le QL est un ordinateur voulu surpuissant, dot de 128 Ko de RAM et d'un clavier professionnel (ce
qui est l'argument de vente majeur l'poque), et vendu pour 600 .
Malheureusement, la sortie de QL sera prcipite, notamment cause du dsir de Clive Sinclair de le
sortir en mme temps que le Macintosh, et le QL est vendu non finalis, ajoutant la mauvaise
rputation de Sinclair en matire de fiabilit de ses produits.
La machine initialement vendue n'a pas grand chose voir avec le projet tel que l'a voulu Sir Clive, et
le systme d'exploitation, programm par GST, sera vite remplac par le QDOS, ralis par les
ingnieurs de Sinclair, plus fiable mais aux capacits infrieures. Quatre mois aprs son lancement, le
QL est toujours bugg, et curieusement, la moiti des instructions de son systme d'exploitation sont
inexploitables, car stockes sur des Eprom de mauvaise qualit. Sur les 13000 QL pr-commands,
seuls quelques centaines finiront chez leur acheteur, les autres multipliant les retours en garantie. La
rputation de Sinclair est srieusement endommage par l'affaire, et il faudra attendre l't 1984, soit 8
mois aprs la sortie du QL, pour que celui-ci soit enfin fiable, aprs que Sinclair ait essuy les foudres
de l'Advertising Standard Authority pour publicit mensongre.
Soucieux d'apaiser les colres diriges contre sa socit, Sir Clive joue la carte de la prudence pour son
prochain projet, et n'annonce le Spectrum Plus que 24 heures avant son lancement officiel.
Une chance de salut pour Sinclair se prsente sous la forme d'un possible rachat par le milliardaire
Robert Maxwell, durant l't 1985. Hlas, l'automne, l'OPA de Maxwell est rejete par son conseil
d'administration, et Sir Clive se retrouve seul dans la tempte. Les mois qui suivent sont difficiles.
La sortie du Spectrum 128, en fvrier 1986, donne un peu d'air la compagnie. Ce nouvel ordinateur,
qui obtient un certain succs, et la vente des droits du Spectrum Plus la socit Dixons permettent
Sinclair d'ponger ses quelques 10 millions de livres de dettes. Sir Clive est persuad que Sinclair va
redevenir un des joyaux de la couronne britannique, ce qui n'arrivera finalement pas. Moins de huit
mois aprs le lancement du Spectrum 128, lors d'une confrence de presse, Clive Sinclair annonce la
mort dans l'me le rachat de Sinclair Resarch par son principal concurrent et ennemi jur, Alan Sugar,
patron d'Amstrad, pour 5 millions de livres sterling.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
6.2.2.
98
Anne
1979
1980
1981
1982
1984
1986
1987**
1988
1988
1988
1988
Modle
Caractristiques
Particularits
MK14
256 octets
carte mre, clavier hexadcimal et affichage 8 digits LED
ZX 80
Z80A* 3,25 MHz 1 Ko
disponible en kit ou dj mont
ZX 81
Z80A* 3,25 MHz 1 Ko
disponible en kit ou dj mont
ZX Spectrum
Z80A* 3,54 MHz 16 Ko
rapidement propos avec 48 Ko
ZX Spectrum
Z80A* 3,54 MHz 48 Ko
apparition d'un clavier mcanique
plus
Spectrum 128 K
Z80A 3,54 MHz 128 Ko
un gros radiateur noir sur le cot droit
Spectrum 2+
Z80A 3,54 MHz 128 Ko
lecteur de cassettes intgr, boitier gris clair
Spectrum +2A
Z80A 3,54 MHz 128 Ko
ROM identique au Spectrum +3 avec lecteur de cassettes
Spectrum +2B
Z80A 3,54 MHz 128 Ko
identique au Spectrum +2A mais fabriqu en Chine
Spectrum +3
Z80A 3,54 MHz 128 Ko
lecteur de disquette 3" intgr
Z88
Z80A 3,27 MHz 32 Ko
notebook fabriqu par une filiale "Cambridge Computer"
* Le microprocesseur sur certaine production est remplac par un NEC780C, compatible Z80
** En 1986 Sinclair est rachet par Amstrad, le Spectrum +2 est la 1re machine issue de ce regroupement
6.2.3.
Le ZX Spectrum
The keyboard
ZX Spectrum characters comprise not only the single symbols (letters, digits, etc), but also the
compound tokens (keywords, function names, etc) and all these are entered from the keyboard rather
than being spelled out. To obtain all these functions and commands, some keys have five or more
distinct meanings, given partly by shifting the keys (i.e. pressing either the CAPS SHIFT key or the
SYMBOL SHIFT key at the same time as the required one) and partly by having the machine in
different modes.
The mode is indicated by the cursor, a flashing letter that shows where the next character from the
keyboard will be inserted:
!
K (for keywords) mode automatically replaces L mode when the machine is expecting a
command or program line (rather than INPUT data), and from its position on the line it
knows it should expect a line number or a keyword. This is at the beginning of the line, or
just after THEN, or just after: (except in a string). If unshifted, the next key will be
interpreted as either a keyword (written on the keys), or a digit.
L (for letters) mode normally occurs at all other times. If unshifted, the next key will be
interpreted as the main symbol on that key, in lower case for letters.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
CHIMIE INDUSTRIELLE
25/03/2005
99
1re Edition
Tome TP
Dr. Gilles OLIVE
100
In both K and L modes, SYMBOL SHIFT and a key will be interpreted as the subsidiary red character
on the key and CAPS SHIFT with a digit key will be interpreted as the control function written in
white above the key CAPS SHIFT with other keys does not affect the keywords in K mode, and in L
mode it converts lower case to capitals.
!
C (for capitals) mode is a variant of L mode in which all letters appear as capitals. CAPS
LOCK causes a change from L mode to C mode or back again.
E (for extended) mode is used for obtaining further characters, mostly tokens. It occurs after
both shift keys are pressed together, and lasts for one key depression only. In this mode, a
letter gives one character or token (shown in green above it) if unshifted, and another (shown
in red below it) if pressed with either shift. A digit key gives a token if pressed with
SYMBOL SHIFT; otherwise it gives a color control sequence.
G (for graphics) mode occurs after GRAPHICS (CAPS SHIFT and 9) is pressed, and lasts
until it is pressed again or 9 is pressed on its own. A digit key will give a mosaic graphic, quit
GRAPHICS or DELETE, and each of the letter keys apart from V, W, X, Y and Z, will give
a user-defined graphic.
If any key is held down for more than about 2 or 3 seconds, it will start auto-repeating.
Keyboard input appears in the bottom half of the screen as it is typed, each character (single symbol or
compound token) being inserted just before the cursor. The cursor can be moved left with CAPS
SHIFT and 5, or right with CAPS SHIFT and 8. The character before the cursor can be deleted with
DELETE (CAPS SHIFT and 9). (Note: the whole line can be deleted by typing EDIT (CAPS SHIFT
and 1) followed by ENTER.)
When ENTER is pressed, the line is executed, entered into the program, or used as INPUT data as
appropriate, unless it contains a syntax error. In this case a flashing ? appears next to the error.
As program lines are entered, a listing is displayed in the top half of the screen. The last line entered is
called the current line and is indicated by the symbol >; this can be moved by using the keys (CAPS
SHIFT and 6) and (CAPS SHIFT and 7). If EDIT (CAPS SHIFT and 1) is pressed, the current line
is brought down to the bottom part of the screen and can be edited.
When a command is executed or a program run, output is displayed in the top half of the screen and
remains until a program line is entered, or ENTER is pressed with an empty line, or or is
pressed. In the bottom part appears a report giving a code (digit or letter) referred to in Appendix B.
The report remains on the screen until a key is pressed (and indicates K mode).
In certain circumstances, CAPS SHIFT with the SPACE key acts as a BREAK, stopping the computer
with report D or L. This is recognized
1
2
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
101
make the program stop with report D BREAK - CONT repeats; any other key will let the scrolling
continue. The bottom part is used for inputting commands, program lines, and INPUT data, and also
for displaying reports. The bottom part starts off as two lines (the upper one blank), but it expands to
accommodate whatever is typed in. When it reaches the current print position in the top half, further
expansions will make the top half scroll up.
6.2.4.
L'mulateur spectaculator
Si le menu suivant apparat au dmarrage, il faut cliquer sur la dernire ligne (Go to ZX Spectrum
BASIC).
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
102
A partir de maintenant vous tes sous ZX Spectrum avec toute sa philosophie. Attention, ceci est
droutant au dbut...
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
103
Remarque importante: comme il est dit plus haut dans l'historique des ordinateurs Sinclair, le ZX
Spectrum utilisait comme mmoire de masse des cassettes audios. Cela est
impossible maintenant. On doit donc charger une cassette dans le lecteur
virtuel: c'est un fichier avec l'extension tzx, tap ou mdr (pour les microdrives).
Dans notre cas nous choisirons Hisoft Devpac v3M21 GENS.tzx
Soit on clique sur sur l'icone d'ouverture, soit dans le menu File on clique sur
Open. Au slecteur de fichiers on slectionne Hisoft Devpac v3M21
Gens.tzx.
DEVPAC
HISOFT
ZX Spectrum Programmer's Manual
DEVPAC
(C) Hisoft 1985
(Typed in 1998 by Nele Abels-Ludwig. Help to keep Spectrum software usable. Transcribe technical manuals !)
(Adapted by G. Olive for this syllabus)
6.3.1.
6.3.1.1.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
104
you are urged to study the following sections, together with the example in Appendix 3, very carefully before attempting to
use the assembler. If you are a complete novice, work through Appendix 3 first.
GENS3 is roughly 9K bytes in length, once relocated, and uses its own internal stack so that it is a self-contained piece of
software. It contains its own integral line editor which places the textfile immediately after the GENS3 code while the
assembler's symbol table is created after the textfile. Thus when loading GENS3 you must allow enough room to include
the assembler itself and the maximum symbol table and text size that you are likely to use in the current session. It will
often be convenient, therefore, to load GENS3 into low memory.
To load GENS3 proceed as follows:
Place the supplied tape in your cassette recorder, type:
LOAD "" CODE xxxxx
and press PLAY on the recorder - where xxxxx is the decimal address at which you want GENS3 to run.
Once you have loade the GENS3 code into the computer you may enter the assembler by RANDOMIZE USR xxxxx where
xxxxx is the address at which you loaded the assembler code. If at any subsequent time you wish to re-enter the assembler
then you should execute the address xxxxx + 56 for a cold start (destroying any text) or address xxxxx for a warm start
(preserving any previously created textfile).
For example, say you want to load GENS3 so that it executes from address 26000 decimal - proceed as follows:
to cassette
to Microdrive
6.3.1.2.
DETAILS OF GENS3
6.3.1.2.1.
GENS3 is a fast, two-pass Z80 assembler, which assembles all standard Z80 menmonics and has added features which
include macros, conditional assembly, many assembler commands and a binary-tree symbol table.
When you invoke an assembly (using the editor 'A' command - see Section 6.3.1.3) you will first be asked to specify 'Table
size: ' in decimal. This is the amount of space that will be allocated to the symbol table during the assembly. If you default
(by simply hitting ENTER) then GENS3 will choose a symbol table size that it thinks is suitable for the size of the text -
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
105
normally this will be perfectly acceptable. However, when using the 'Include' option, you may have to specify a larger than
normal symbol table size; the assembler cannot predict the size of the file that will be included.
After 'Table size: ' you will be asked for any 'Options: ' that you require. Enter these in decimal adding the option numbers
together if you want more than one option. The options available are:
Assembler Options:
Option 1
Produce a symbol table listing at the end of the second pass of the assembly.
Option 2
Do not generate any object code.
Option 4
Do not produce an assembly listing.
Option 8
Direct any assembly listing to the printer.
Option 16
Simply place the object code, if generated, after the symbol table. The Location Counter is still updated,
by the ORG so that object code can be placed in one section of memory but designed to run elsewhere.
Option 32
Turn off the check of where the object code is going - useful for speeding up assembly.
Example: Option 36 produces a fast assembly - no listing is generated and no checks are made to see where the object code
is being placed.
Note that if you have used Option 16 then the ENT assembler directive will have no effect. You can work out where the
object code has been placed if Option 16 has been specified by using the editor 'X' command to find out the end of the text
(the second number displayed) and then adding to this the amount of symbol table allocated + 2.
Assembly takes place in two passes; during the first pass GENS3 searches for errors and compiles the symbol table, the
second pass generates object code (if option 2 is not specified). During the first pass nothing is displayed on the screen or
printer unless an error is detected, in which case the rogue line will be displayed with an error number below it (see
Appendix 1 p 120). The assembly is paused - press 'E' to return to the editor or any other key to continue the assembly from
the next line.
At the end of the first pass the message:
Pass 1 errors: nn
will be displayed. If any errors have been detected the assembly will then halt and not proceed to the second pass. If any
labels were referenced in the operand field but never declared in a label field then the message '*WARNING* label absent'
will be displayed for each missing label declaration.
It is during the second pass that object code is generated (unless generation has been turned off by Option 2 - see above).
An assembler listing is generated during this pass unless it has been switched off by Option 4 or the assembler command
*L-. The assembler listing is normally of the form:
C000 210100
25
15
label
LD
HL,1
21
26
The first entry in the line is the value of the Location Counter at the start of processing this line, unless the mnemonic in
this line is one of the pseudo-mnemonics ORG, EQU or ENT (see Section 6.3.1.2.8) in which case the first entry will
represent the value in the operand field of the instruction. This entry is normally displayed in hexadecimal but may be
displayed in unsigned decimal through use of the assembler command *D+ (see Section 6.3.1.2.10)
The next entry, from column 6, is up to 8 characters in length (representing up to 4 bytes) and is the object code produced
by the current instruction - but see the *C assembler command below.
Then comes the line number - an integer in the range 1 to 32767 inclusive.
Columns 21-26 of the first line contain the first 6 characters of any label defined in this line.
The following two paragraphs apply only to systems with narrow screen widths - on systems with a screen width greater
than 40 each assembler listing line is contained wholly on one screen line.
After any label comes a new line - on this line the mnemonic is displayed from columns 21-24. Then comes the operand
field from column 26 of this line and finally any comments that have been inserted at the end of the line with new lines
being generated as necessary.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
106
The above format aids readability of the assembler listing on such a narrow screen width as that of the SPECTRUM.
GENS3 does not re-define the screen width of the SPECTRUM because this would increase the space occupied by GENS3
and would be restrictive in that the standard output routines of the SPECTRUM ROM could not be used.
The *C assembler command may be used to produce a shorter assembly listing line - its effect is to omit the 9 characters
representing the object code of the line thus enabling most assembler lines to fit on one screen line. See Section 6.3.1.2.9
below.
Modifying the Listing Format
It is possible to modify the form in which each line of the listing is split by POKEing 3 locations within GENS3. Details of
how to do this are given below. We distinguish between 'assembly line' which is the current line of the assembly listing
held in an internal buffer and 'screen line' which is a line that actually appears on the screen. An assembly line will
normally generate more than one screen line.
1. Location 'Start of GENS3 + 51 (#33)' dictates at which column position - 5 the first screen line of the assembly line will
be terminated. Change this byte to zero to cause the line to wrap round (useful if you have a full-width printer) or any other
value (<256) to end the first screen line at a particular column.
2. Location 'Start of GENS3 + 52 (#34)' gives the column position (starting at 1) at which each subsequent screen line of
the assembly line is to start.
3. Location 'Start of GENS3 + 53 (#35)' gives how many characters from the remainder of the assembly line are to be
displayed on each screen line after the first screen line.
As an example, say you wanted the first screen line of each assembly line to contain 20 characters (i.e. not including the
label field) and then each subsequent screen line to start at column 1 and fill the whole line. Also assume that you have
loaded GENS3 at 26000 decimal. To effect these changes, execute the following POKE instructions from within BASIC:
POKE 26051,20
POKE 26052,1
POKE 26053,31
The above modifications are only applicable if the *C command has not been used - use of the *C command causes lines to
roll over where necessary.
The assembly listing may be paused at the end of a line by hitting CAPS SHIFT and SPACE together - subsequently hit 'E'
to return to the editor or any other key to continue the listing.
The only errors that can occur during the second pass are *ERROR* 10 (see Appendix 1 p 120) and 'Bad ORG!' (which
occurs when the object code will overwrite GENS3, the textfile or the symbol table - the detection of this can be turned off
by Option 32. *ERROR* 10 is non-fatal and you may continue the assembly as for first pass errors, whereas 'Bad ORG!' is
fatal and immediately returns control to the editor.
At the end of the second pass the message:
Pass 2 errors: nn
will be displayed followed by warnings of any absent labels - see above.
The following message is now displayed:
Table used: xxxxx from yyyyy
This informs you of how much of the symbol table was used compared with how much was allocated.
At this point, if the assembler directive ENT has been used correctly, the message 'Executes: nnnnn' is displayed. This
shows the run address of the object code - you can execute the code by using the editor 'R' command. Be careful using the
'R' command unless you have just finished a successful assembly and seen the 'Executes: nnnnn' message.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
107
Finally, if option 1 has been specified, an alphabetic list of the labels used and their associated values will be produced. The
number of entries displayed on one line may be changed by POKEing 'Start of GENS3 + 50' with the relevant value; the
default is 2.
Control now returns to the editor.
6.3.1.2.2.
Each line of text that is to be processed by GENS3 should have the following format where certain fields are optional:
LABEL
start
MNEMONIC
LD
OPERANDS
HL,label
COMMENT
;pick up 'label'
Spaces and tab characters (inserted by the editor) are generally ignored.
The line is processed in the following way:
The first character of the line is checked and subsequent action depends on the nature of this character as indicated below:
';' the whole line is treated as a comment i.e. effectively ignored.
'*' expects the next character(s) to constitute an assembler command (see Section 6.3.1.2.9). Treats all characters
after the command as a comment.
<CR> (end-of-line character) simply ignores the line.
' ' (space or tab) if the first character is a space or a tab character then GENS3 expects the next non-space or non-tab
character to be the start of a Z80-mnemonic.
If the first character of a line is any character other than those given above then the assembler expects a label to be present see Section 6.3.1.2.3. After processing a valid label, or if the first character of the line is a space/tab, the assembler searches
for the next non-space/tab character and expects this to be either an end-of-line character or the start of a Z80-mnemonic
(see Appendix 2 p 121) of up to 4 characters in length and terminated by a space/tab or end-of-line character. If the
mnemonic is valid and requires one or more operands then spaces/tabs are skipped and the operand field is processed.
Labels may be present alone in an assembler statement; this is useful for increasing the readability of the listing.
Comments may occur anywhere after the operand field or, if a mnemonic takes no arguments, after the mnemonic field.
6.3.1.2.3.
Labels.
EQU
LD
#1234
A,label
will cause *ERROR* 10 to be generated when the second statement is processed during the second pass.
A label may contain any number of valid characters (see below) although only the first 6 are treated as significant; these
first 6 characters must be unique since a label cannot be re-defined (*ERROR* 4). A label must not constitute a reserved
word (see Appendix 2 p 121) although a reserved word may be embedded as part of a label.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
108
The characters which may be legally used within a label are 0-9, $ and A-z. Note that 'A-z' included all the upper and lower
case alphabetics together with the characters [, \, ], ^, # and _. A label must begin with an alphabetic character.
Some examples of valid labels are:
LOOP
loop
a_long_label
L[1]
L[2]
a
LDIR
two^5
6.3.1.2.4.
Location Counter
The assembler maintains a location counter so that a symbol in the label field can be associated with an address and entered
into the symbol table. This location counter may be set to any value via the ORG assembler directive (see Section
6.3.1.2.8).
The symbol '$' can be used to refer to the current value of the location counter e.g. LD HL,$+5 would generate code that
would load the register pair HL with a value 5 greater than the current location counter value.
6.3.1.2.5.
Symbol Table
When a label is encountered for the first time it is entered into a table along with two pointers which indicate, at a later
time, how this label is related alphabetically to other labels within the table. If the first occurrence of the label is in the label
field then its value (as given by the location counter of the value of the expression after an EQU assembler directive) is
entered into the symbol table. Otherwise the value is entered whenever the symbol is subsequently found in the label field.
This type of symbol table is called a binary tree symbol table and its structure enables symbols to be entered into and
recovered from the table in a very short time - essential for large programs. The size of an entry in the table varies from 8
bytes to 13 bytes depending on the length of the symbol.
If, during the first pass, a symbol is defined more than once then an error (*ERROR* 4) will be generated since the
assembler does not know which value should be associated with the symbol.
If a symbol is never associated with a value then the message '*WARNING* symbol absent' will be generated at the end of
the assembly. The absence of a symbol definition does not prevent the assembly from continuing.
Note that only the first 6 characters of a symbol are entered into the symbol table in order to keep down the size of the
table.
At the end of the assembly you will be given a message stating how much memory was used by the symbol table during
this assembly - you may change how much memory is allocated to the symbol table by responding to the 'Table: ' prompt
when starting the assembly (see Section 6.3.1.2.1).
6.3.1.2.6.
Expressions.
An expression is an operand entry consisting of either a single TERM or a combination of TERMs each separated by an
OPERATOR. The definitions of TERM and PERATOR follow:
TERM
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
109
also '$' may be used to denote the current value of the location
counter.
OPERATOR
'+'
'-'
'&'
'@'
'!'
'*'
'/'
'?'
addition
substraction
logical AND
logical OR
logical XOR
integer multiplication
integer division
MOD function (a ? b = a - (a/b)*b)
Notes: '#' is used to denote the start of a hexadecimal number, '%' for a binary number and '"' for a character constant.
When reading a number (decimal, hexadecimal or binary) GENS3 takes the least significant 16 bits of the number (i.e.
MOD 65535) e.g. 70016 becomes 4480 and #5A2C4 becomes #A2C4.
A wide variety of operators are provided but no operator precedence is observed - expressions are evaluated strictly from
left to right. The operators '*', '/' and '?' are provided merely for added convenience and not as part of a full expression
handler which would increase the size of GENS3.
If an expression is enclosed within parentheses then it is taken as representing a memory address as in the instruction LD
HL,(loc+5) which would load the register pair HL with the 16 bit value contained at memory location 'loc+5'.
Certain Z80 instructions (JR and DJNZ) expect operands which have an 8 bit value and not a 16 bit one - this is called
relative addressing. When relative addresses are specified GENS3 automatically subtracts the value of the location counter
at the NEXT instruction from the value given in the operand field of the current instruction in order to obtain the relative
address for the current instruction. The range of values allowed as a relative address are the location counter value of the
next instruction -128 to +127.
If, instead, you wish to specify a relative offset from the location counter value of the current instruction then you should
use the symbol '$' (a reserved word) followed by the required displacement. Since this is now relative to the current
instruction's location counter value the displacement must be in the range -126 to +129 inclusive.
Examples of valid expressions:
#5000 - label
%1001101 ! %1011
#3456 ? #1000
4 + 5 * 3 - 8
$-label+8
2345 / 7 - 1
"A"+128
"y"-";"+7
(5 * label - #1000 & %1111)
17 @ %1000
gives %1000110
gives #456
gives 19
gives 334
gives 25
Note that the spaces may be inserted between TERMs and OPERATORs and vice versa but not within TERMs.
If a multiplication operation would result in an absolute value greater than 32767 then *ERROR* 15 is reported while if a
division operation involves a division by zero then *ERROR* 14 is given - otherwise overflow is ignored. All arithmetic
uses the two's complement for where any numbers greater than 32767 are treated as negative e.g. 60000 = -55336 (6000065536).
6.3.1.2.7.
Macros.
Macros allow you to write shorter, more meaningful assembler programs but they must be used with care and must not be
confused with subroutines. A macro definition consists of a series of assembler statements, together with the name of the
macro; when this macro name is used subsequently in the mnemonic field then it will be replaced by all the assembler
statements that made up the definition e.g. the macro NSUB may be defined thus:
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
NSUB
110
A
HL,DE
HL,DE
and then, whenever NSUB is used as a mnemonic, it will generate the three assembler statements OR A, SBC HL and ADD
HL,DE. This saves you typing and makes your program easier to understand but you must remember that every occurrence
of NSUB results in code being generated and it may be more efficient to use a CALL to a subroutine instead. Below, we
give the format of macro definitions and invocation together with some more examples, please study these carefully.
A macro definition takes the following form:
Name
MAC
.
.
macro definition
.
.
ENDM
where Name is the macro name that will invoke the text of the macro whenever Name is used subsequently in the
mnemonic field, MAC indicates the start of the macro definition and ENDM indicates the end of the definition. Parameters
of the macro may be referenced within the macro definition by the use of the equals sign '=' followed by the parameter
number (0-31 inclusive). For example, the macro:
MOVE
MAC
LD
LD
LD
LDIR
ENDM
HL,=0
DE,=1
BC,=2
takes 3 parameters, source address, destination address and length, loads the relevant values in HL, DE and BC and then
performs the instruction LDIR. To invoke this macro at a later stage in your program, simply use the name of the macro in
the mnemonic field followed by the values that you wish the 3 parameters to take e.g.
MOVE 16384,16385,4069
We have used specific addresses in this example but we can, in fact, use any valid expression to specify the value of the
macro parameter e.g.
MOVE start,start+1,length
Think ... is the above a good use of a macro ? Could it have been a subroutine ?
Within the macro definition, the parameters may appear in any valid expression e.g.
HMS
MAC
LD
LD
ADD
LD
ADD
ENDM
HL,=0*3600
DE,=1*60
HL,DE
DE,=2
HL,DE
is a macro, taking 3 parameters - hours, minutes, seconds, that produces in register HL the total number of seconds
specified by the parameters.
You might use it like this:
Hours
Minutes
EQU
EQU
CHIMIE INDUSTRIELLE
2
30
25/03/2005
1re Edition
Tome TP
Seconds
Start
12
0
HMS
LD
ADD
Hours,Minutes,Seconds
DE,Start
HL,DE
; HL gives the finish time
111
Macros may not be nested so that you cannot define a macro within a macro definition nor can you invoke a macro within a
macro definition.
At assembly time, whenever a macro name is encountered in the mnemonic field, the text of the macro is then assembled.
Normally this text is not listed in the assembly listing - only the macro name is shown. However, you can force a listing of
the expansion of the macro by using the assembler command *M+ before you want macro expansions to be listed subsequently use *M- to switch off this expansion.
If you run out of Macro Buffer space then a message will be displayed and the assembly aborted; use the editor's C
command after saving your text, to allocate a larger macro buffer.
6.3.1.2.8.
Assembler Directives
Certain 'pseudo-mnemonics' are recognised by GENS3. These assembler directives, as they are called, have no efect on the
Z80 processor at run-time, i.e. they are not decoded into opcodes, they simply direct the assembler to take certain actions at
assembly time. These actions have the effect of changing, in some way, the object code produced by GENS3.
Pseudo-menmonics are assembled exactly like executable instructions; they may be preceded by a label (necessary for
EQU) and followed by a comment. The directives available are:
ORG expression
sets the location counter to the value 'expression'. If option 2 and option 16 are both not selected and an ORG would result
in the overwriting of the GENS3 program, the textfile or the symbol table then the message 'Bad ORG!' is displayed and
the assembly is aborted. See Section 2.0 for more details on how options 2 and 16 affect the use of ORG.
EQU expression
must be preceded by a label. Sets the value of the label to the value of 'expression'. The expression cannot contain a symbol
which has not yet been assigned a value (*ERROR* 13).
DEFB expression,expression,...
each 'expression' must evaluate to 8 bits; the byte at the address currently held by the location counter is set to the value of
'expression' and the location counter advanced by 1. Repeats for each expression.
DEFW expression,expresion,...
sets the 'word' (two bytes) at the address currently held by the location counter to the value of 'expression' and advances the
location counter by 2. The lesser significant byte is placed first followed by the more significant byte. Repeats for each
expression.
DEFS expression
increases the location counter by the value of 'expression' - equivalent to reserving a block of memory of size equal to the
value of expression.
DEFM "s"
defines the contents of n bytes of memory to be equal to the ASCII representation of the string s, where n is the length of
the string and may be, in theory, in the range 1 to 255 inclusive although, in practice, the length of the string is limited by
the length of the line you can enter from the editor. The first character in the operand field ('"' above) is taken as the string
delimiter and the string s is defined as those characters between two delimiters; the end-of-line character also acts as a
terminator of the string.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
112
ENT expression
this has no effect on the generated object code, it is simply used to define an address to which the editor's R command will
jump to. ENT expression sets this address to the value of expression - used in conjunction with the editor 'R' command (see
section 3). There is no default for the execute address.
6.3.1.2.9.
Conditional Pseudo-mnemonics.
Conditional pseudo-mnemonics provide the programmer with the capability of including or not including certain sections
of source text in the assembly process. This is made available through the use of IF, ELSE and END.
IF expression
this evaluates 'expression'. If the result is zero then the assembly of subsequent lines is turned off until either an 'ELSE' or
an 'END' pseudo-mnemonic is encountered. If the value of 'expression' is non-zero then the assembly continues normally.
ELSE
this pseudo-mnemonic simply flips the assembly on and off. If the assembly is on before the 'ELSE' is encountered then it
will subsequently be turned off and vice versa.
END
'END' simply turns the assembly on.
Note: Conditional pseudo-mnemonics cannot be nested; no check is made for nested IFs so any attempt to nest these
mnemonics will have unspecified results.
6.3.1.2.10.
Assembler Commands.
Assembler commands, like assembler directives, have no effect on the Z80 processor at runtime since they are not decoded
into opcodes. However, unlike assembler directives, they also have no effect on the object code produced by the assembler
- assembler commands simply modify the listing format. An assembler command is a line of the source text that begins
with an asterisk '*'. The letter after the asterisk determines type of the command and must be in upper case. The remainder
of the line may be any text except that the commands 'L' and 'D' expect a '+' or a '-' after the command.
The following commands are available:
*E
(eject) causes three blank lines to be sent to the screen or the printer - useful for separating modules.
*Hs
causes string s to be taken as a heading which is printed after each eject (*E). *H automatically performs a *E.
*S
causes the listing to be stopped at this line. The listing may be reactivated by pressing any key on the keyboard. Useful for
reading addresses in the middle of the listing. Note: *S is still recognized after a *L-, *S does not halt printing.
*Lcauses listing and printing to be turned off beginning with this line.
*L+
causes listing and printing to be turned on starting with this line.
*D+
causes the value of the location counter to be given in decimal at the beginning of each line instead of the normal
hexadecimal. Unsigned decimal is used.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
113
*Dreverts to using hexadecimal for the value of the location counter at the start of each line.
*Cshorten the assembler listing starting from the next line. The listing is abbreviated by not including the display of the object
code generated by the current line - this saves 9 characters and enables most assembler lines to fit within one 32 character
screen line, thus improving readability.
*C+
Revert to the full assembler listing as described in Section 6.3.1.2.1.
*M+
Turn on the listing of macro expansions.
*MTurn off the listing of macro expansions.
*F {filename}
This is a very powerful command which allows you to assemble text from tape to microdrive - the textfile is read from the
tape or microdrive into a buffer, a block at a time, and then assembled from the buffer; this allows you to create large
amounts of object code since the text being assembled does not take up valuable memory space.
The filename (up to 10 characters) of the textfile you wish to 'include' at this point in the assembly may, optionally, be
specified after the 'F' and must be preceded with a space. If the file is on microdrive cartridge then you indicate this by
starting the filename with a drive number and a colon e.g.
*F 2:test
*F test
If no filename is given then the first textfile found on the tape is included, this is not allowed for microdrive inclusion.
If you are including from microdrive then the text to be included should have been saved previously using the editor's P(ut)
command in the normal way.
If including from tape then you must have saved the file previously to tape using the editor's 'T' command and not the 'P'
command - this is necessary because a textfile to be included from tape must be dumped out in blocks with sufficient length
inter-block gaps to allow the assembly of the current block before the next block is loaded from the tape. The size of the
block used by this command (and the editor's 'T' command) is set using the editor's 'C' command (see next section). The
ability to select the size of this buffer enables you to optimise the size/speed ratio of any inclusion of text from tape; for
example if you are not intending to use the 'F command during an assembly then you may find it useful to specify a buffer
size of 0 to minimize the space taken up by GENS3 and its workspace.
Note that the buffer size specified in the session in which you dumped out a file to be included must be the same as the
buffer size given in the session in which you are actual including the text.
Whenever the assembler detects an 'F' command it searches the tape or microdrive cartridge for the relevant file; this will
happen in the first and second passes since the include text must be scanned in each pass. If including from tape, the tape is
then searched for an include file with the required filename, or for the first file. If an include file is found whose filename
does not match that required then the message 'Found filename' is displayed and the searching continues, otherwise 'Using
filename' is displayed, the file loaded, block by block, and included.
See 6.3.1.6 Appendix 3 for an example of the use of this command.
Assembler commands, other than *F, are recognized only within the second pass.
If assembly has been turned off by one of the conditional pseudo-mnemonics then the effect of any assembler command is
also turned off.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
114
6.3.1.3.1.
The editor supplied with all versions of GENS3 is a simple, line-based editor designed to work with all Z80 operating
systems while maintaining ease of use and the ability to edit programs quickly and efficiently.
In order to reduce the size of the textfile, a certain amount of compression of spaces is performed by the editor. This takes
place according to the following scheme: whenever a line is typed in from the keyboard it is entered, character by character
into a buffer internal to the assembler; then, when the line is finished (i.e. you hit ENTER), it is transferred from the buffer
into the textfile. It is during this transfer that certain spaces are compressed: the line is scanned from its first character, if
this is a space then a tab character is entered into the textfile and all subsequent spaces are skipped. If the first character is
not a space then characters are transferred from the buffer to the textfile until a space is detected whereupon the action
taken is the same as if the next character was the first character in the line. This is then repeated a further time with the
result that tab characters are inserted at the front of the line or between the label and mnemonic and between the mnemonic
and the operands and between the operands and any comment. Of course, if any carriage return (ENTER) character is
detected at any time then the transfer is finished and control returned to the editor.
This compression process is transparent to the user who may simply use tab control characters (CAPS SHIT 8) to produce a
neatly tabulated textfile which, at the same time, is economic on storage.
Note that spaces are not compressed within comments and spaces should not be present within a label, mnemonic or
operand field.
The editor is entered automatically when GENS3 is executed and displays the message:
is
is
is
is
is
the command
a number in
a number in
a string of
a string of
The comma is used to separate the various arguments (although this can be changed - see the 'S' command) and spaces are
ignored, except within the strings. None of the arguments are mandatory although some of the commands (e.g. the 'D'elete
command) will not proceed without N1 and N2 being specified. The editor remembers the previous numbers and strings
that you entered and uses these former values, where applicable, if you do not specify a particular argument within the
command line. The values of N1 an N2 are initially set to 10 and the strings are initially empty. If you enter an illegal
command line such as F-1,100,HELLO then the line will be ignored and the message 'Pardon?' displayed - you should
retype the line correctly e.g. F1,100,HELLO. This error message will also be displayed if the length of S2 exceeds 20; if the
length of S1 is greater than 20 then any excess characters are ignored.
Commands may be entered in upper or lower case.
While entering a command line certain key combinations may be used to edit the line viz. CAPS SHIFT 5 to delete to the
beginning of the line, CAPS SHIFT 8 to advance the cursor to the next tab position, CAPS SHIT 0 to delete the previous
character.
The following sub-section details the various commands available within the editor - note that wherever an argument is
enclosed by the symbols '< >' then that argument must be present for the command to proceed.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
6.3.1.3.2.1.
115
Text Insertion.
Text may be inserted into the textfile either by typing a line number, a space and then the required text or by use of the 'I'
command. Note that if you type a line number followed by ENTER (i.e. without any text) then that line will be deleted
from the text if it exists. Whenever text is being entered CAPS SHIFT 5 (delete to the beginning of the line), CAPS SHIFT
8 (go to the next tab position) and CAPS SHIFT 1 (return to the command loop) may be employed.
The DELETE (CAPS SHIFT 0) key will produce a destructive backspace (but not beyond the beginning of the text line).
Text is entered into an internal buffer within GENS3 and if this buffer should become full then you will be prevented from
entering any more text - you must then use CAPS SHIFT 0 or CAPS SHIFT 5 to free space in the buffer.
If, during text insertion, the editor detects that the end of text is nearing the top of RAM it displays the message 'Bad
Memory!'. This indicates that no more text can be inserted and that the current textfile, or at least part of it, should be saved
to tape for later retrieval.
Command: I n,m
Use of this command gains entry to the automatic insert mode: you are prompted with line numbers starting at n and
incrementing in steps of m. You enter the required text after the displayed line number, using the various control codes if
desired and terminating the text line with ENTER. To exit from this mode use CAPS SHIFT 1.
If you enter a line with a line number that already exists in the text then the existing line will be deleted and replaced with
the new line, after you have pressed ENTER. If the automatic incrementing of the line number produces a line number
greater than 32767 then the Insert mode will exit automatically.
If, when typing in text, you get to the end of a screen line without having entered 64 characters (the buffer size) then the
screen will be scrolled up and you may continue typing on the next line - an automatic indentation will be given to the text
so that the line numbers are effectively separated from the text.
6.3.1.3.2.2.
Text Listing.
Text may be inspected by use of 'L' command; the number of lines displayed at any one time during the execution of this
command is fixed initially but may be changed through use of the 'K' command.
Command: L n,m
This lists the current text to the display device from line number n to line number m inclusive. The default value for n is
always 1 and default value for m is always 32767 i.e. default values are not taken from previously entered arguments. To
list the entire textfile simply use 'L' without any arguments. Screen lines are formatted with a left hand margin so that the
line number is clearly displayed. Tabulation of the line is automatic, resulting in a clear separation of the various fields with
the line. The number of screen lines listed on the display device may be controlled through use of the 'K' command - after
listing a certain number of lines the list will pause (if not yet at line number m), hit CAPS SHIFT 1 to return to the main
editor loop or any other key to continue the listing.
Command: K n
'K' sets the number of screen lines to be listed to the display device before the display is paused as described in 'L' above.
The value (n MOD 256) is computed and stored. For example use K5 if you wish a subsequent 'L'ist to produce five screen
lines at a time.
6.3.1.3.2.3.
Text Editing
Once some text has been created there will inevitably be a need to edit some lines. Various commands are provided to
enable line to be amended, deleted, moved and renumbered:
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
116
Command: D <n,m>
All lines from n to m inclusive are deleted from the textfile. If m<n, or less than two arguments are specified, then no action
will be taken; this is to help prevent careless mistakes. A single line may be deleted by making m=n; this can also be
accomplished by simply typing the line number followed by ENTER.
Command: M n,m
This causes the text at line n to be entered at line m deleting any text that already exists there. Note that line n is left alone.
So this command allows you to 'M'ove a line of text to another position within the textfile. If line number n does not exist
then no action is taken.
Command: N <n,m>
Use of the 'N' command causes the textfile to be renumbered with a first line number of n and in line number steps of m.
Both n and m must be present and if the renumbering would cause any line number to exceed 32767 then the original
numbering is retained.
Command: F n,m,f,s
The text existing within the line range n < x < m is searched for an occurrence of the string f - the 'find' string. If such an
occurrence is found then the relevant text line is displayed and the Edit mode is entered - see below. You may then use
commands within the Edit mode to search for subsequent occurrences of the string f within the defined line range or to
substitute the string s (the 'substitute' string) for the current occurrence of f and then search for the next occurrence of f; see
below for more details.
Note that the line range and the two strings may have been set up previously by any other command so that it may only be
necessary to enter 'F' to initiate the search - see the example in Section 6.3.1.3.3 for clarification.
Command: E n
Edit the line with line number n. If n does not exist then no action is taken; otherwise the line is copied into a buffer and is
displayed again underneath the line and the Edit mode is entered. All subsequent editing takes place within the buffer and
not in the text itself; thus the original line can be recovered at any time.
In this mode a pointer is imagined moving through the line (starting at the first character) and various sub-commands are
supported which allow you to edit the line. The sub-commands are:
' ' (space) - increment the text pointer by one i.e. point to the next character in the line. You cannot step beyond the end of
the line.
CAPS SHIFT 0 - decrement the text pointer by one to point at the previous character in the line. You cannot step
backwards beyond the first character in the line.
CAPS SHIFT 8 - step the text pointer forwards to the next tab position on each screen line.
ENTER - end the edit of this line keeping all the changes made.
Q - quit the edit of this line i.e. leave the edit ignoring all the changes made and leaving the line as it was before the edit
was initiated.
R - reload the edit buffer from the text i.e. forget all changes made on this line and restore the line as it was originally.
L - list the rest of the line being edited i.e. the remainder of the line beyond the current pointer position. You remain in the
Edit mode with the pointer re-positioned at the start of the line.
K - kill (delete) the character at the current pointer position.
Z - delete all the characters from (and including) the current pointer position to the end of the line.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
117
F - find the next occurrence of the 'find' string previously defined within a command line (see the 'F' command above). This
sub-command will automatically exit the edit on the current line (keeping the changes) if it does not find another
occurrence of the 'find' string in the current line. If an occurrence of the 'find' string is detected in a subsequent line (within
the previously specified line range) then the Edit mode will be entered for the line in which the string is found. Note that
the text pointer is always positioned at the start of the found string.
S - substitute the previously defined 'substitute' string for the currently found occurrence of the 'find' string and then
perform the sub-command 'F' i.e. search for the next occurrence of the 'find' string. This, together with the above 'F' subcommand, is used to step through the textfile optionally replacing occurrences of the 'find' string with the 'substitute' string
- see Section 6.3.1.3.3 for an example.
I - insert characters at the current pointer position. You will remain in this sub-mode until you press ENTER - this will
return you to the main Edit mode with the pointer positioned after the last character inserted. Using CAPS SHIFT 0
(DELETE) within this sub-mode will cause the character to the left of the pointer to be deleted from the buffer while the
use of CAPS SHIFT 8 will advance the pointer to the next tab position, inserting spaces.
X - this advances the pointer to the end of the line and automatically enters the insert sub-mode detailed above.
C - change sub-mode. This allows you to overwrite the character at the current pointer position and then advances the
pointer by one. You remain in the change sub-mode until you press ENTER whence you are taken back to the Edit mode
with the pointer positioned after the last character you changed. CAPS SHIFT 0 within this sub-mode simply decrements
the pointer by one i.e. moves it left while CAPS SHIFT 8 has no effect.
6.3.1.3.2.4.
Tape/Microdrive Commands
Text may be saved to tape/microdrive or loaded from tape/microdrive using the commands 'P', 'G' and 'T'. Object code may
be saved to tape/microdrive using the 'O' command.
Command: P n,m,s
The line range defined by n < x < m is saved to tape or microdrive under the filename specified by the string s. The text
will be saved to microdrive if the filename begins with a drive number followed by a colon (':'). Remember that these
arguments may have been set by a previous command. Examples:
P10,200,EXAMPLE
P500,900,1:TEST
Before entering this command make sure that your tape recorder is switched on and in RECORD mode, if saving to tape.
Do not use this command if you wish, at a later stage, to 'Include' the text from tape - use the 'T' command instead. If you
intend to 'include' from microdrive then you should use this 'P' command.
When 'P'utting to microdrive and the filename you have specified already exists on the cartridge, you will be asked:
File Exists Delete (Y/N)?
answer Y to delete the file and continue saving or any other key to return to the editor without saving the file.
Command: G,,s
The tape or microdrive is searched for a file with a filename of s; when found, it is loaded at the end of the current text. If a
null string is specified as the filename then the first textfile on the tape is loaded.
For microdrive, you must specify a filename and it should begin with a drive number followed by a colon.
If using cassette, after you have entered the 'G' command, the message 'Start tape...' is displayed - you should now press
PLAY on your recorder. A search is now made for a textfile with the specified filename, or the first textfile if a null
filename is given. If a match is made then the message 'Using filename' is displayed, otherwise 'Found filename' is shown
and the search of the tape continues.
If using microdrive and the specified file cannot be found then the message 'Absent' is displayed.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
118
Note that if any textfile is already present in the memory then the textfile that is loaded from tape will be appended to the
existing file and the whole file will be renumbered starting with line 1 in steps of 1.
Command: T n,m,s
Dump out a block of text, between the line numbers n and m inclusive, to tape in a format suitable for inclusion at a later
stage via the assembler command *F - see Section 6.3.1.2.10. The file is dumped with the filename s. The dump takes place
immediately you have pressed ENTER so you should ensure that your tape recorder is ready to record before entering this
command line. If you intend to include from microdrive then use the 'P' command to save the text, as usual, and not this 'T'
command. Note that this command is to be used only if you want to assemble the text from tape at a later stage.
Command: O,,s
Dump out your object code to cassette or microdrive. The filename s can be up to 8 characters in length and should begin
with a drive number (1-8) and a colon if you wish to save the object code to microdrive.
Only the last 'block' of code produced by the assembler can be saved in this way i.e. if you have more than one ORG
directive in your source program then only the code produced after the last ORG is saved.
Code must have been produced in memory before it can be saved using 'O'.
6.3.1.3.2.5.
Command: A
This causes the text to be assembled from the first line in the textfile. See Section 6.3.1.2 for further details.
Command: R
If the source has been assembled without errors and an execute address has been specified by the use of the ENT assembler
directive then the 'R' command may be used to execute the object program. The object program can use a RET (#C9)
instruction to return to the editor so long as the stack is in the same position at the end of the execution of the program as it
was at the beginning. Note that ENT will have no effect if Option 16 has been specified for the assembly.
Before entering the code, interrupts are enabled and register IY is loaded with the value #5C3A.
6.3.1.3.2.6.
Other Commands.
Command: B
This simply returns control to the operating system. To re-enter the assembler use either a cold or a warm start - see Section
6.3.1.1.
Command: C
This allows you to configure the size of the Include and Macro buffers.
The include buffer is the buffer in which text is held when assembling directly from cassette or Microdrive - the larger this
buffer, the more text that will be read in from cassette or microdrive at one go and therefore the faster the assembly will
proceed. On the other hand, more memory is used. Thus, there is a compromise to be made between speed of assembly and
use of memory; the 'C' command allows you to control this tradeoff by giving you the opportunity of setting the size of the
Include buffer.
The Macro buffer is used to hold the text of any macro definitions that you may use.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
119
The 'C' command prompts you to enter the 'Include buffer' size and then the 'Macro buffer' size. In both cases simply enter
the number of bytes (in decimal) that you wish to allocate, followed by ENTER. If you press ENTER by itself without
entering a number then no action is taken. If you specify an Include buffer size then the size is forced to be a minimum of
256 bytes. You may abort the command using CAPS SHIFT 1.
Please note that 'C' effectively performs a cold start on your text, deleting it. Thus, remember to save any existing text
before using the 'C' command. It is best to allocate the buffers as large as you will need them at the start of a session.
Command: Q
This command allows you to convert textfiles produced by GENS1 to the compressed text format of GENS3. Simply load
up the GENS1 textfile, using the 'G' command, use the 'Q' command to convert the file and then dump the compressed file
out using the 'P' command. 'Q' takes no arguments and may take a substantial time to complete the conversion of the file.
Command: S,,d
This command allows you to change the delimiter which is taken as separating the arguments in the command line. On
entry to the editor the comma ',' is taken as the delimiter; this may be changed by the use of the 'S' command to the first
character of the specified string d. Remember that once you have defined a new delimiter it must be used (even within the
'S' command) until another one is specified. Please do not confuse this command with the 'S'ubstitute sub-command within
edit mode.
Note that the separator may not be a space.
Command: V
The 'V' command displays the current values of N1, N2, S1 and S2 plus the current command delimiter i.e. the two default
line numbers, the default strings and the delimiter. This is useful before entering any command in which you are going to
use default values, to check that these values are correct.
Command: W n,m
The 'W' command causes the section of text between lines n and m inclusive to be output to the printer. If both n and m are
defaulted then the whole textfile will be printed. The printing will pause after the number of lines set by the 'K' command press any key to continue printing.
Command: X
'X' simply causes the start and end address of the textfile to be displayed in decimal. This is useful if you wish to save the
text from within BASIC, or if you want to see how much memory you have left after the textfile. GENS3 always expects
the text to start at the first address given by the 'X' command and holds the end address of the text in location TEXTEND
which is at 'Start of GENS3 + 54'. Thus, if you wish to 'patch in' a textfile (perhaps produced by MONS3) you must move
the textfile to the address specified by the first address displayed by the 'X' command, modify TEXTEND to contain the
end address of the file and finally enter GENS3 via a warm start. For example, say you have generated a textfile in the
correct place and that it ends (the address after the final end-of-line marker) at #9A02. Then, assuming that you have loaded
GENS3 at 24064, you should, from BASIC, POKE 24064+54,2 (#02) and POKE 24064+55,154 (#9A) and then enter
GENS3 by RANDOMIZE USR 24125. You will now be able to work with the textfile normally from within the editor.
Command: H,,s
Allows you to verify a textfile that has been saved to microdrive. Simply use H,,n:filename where n is the drive number and
filename is the name you gave to the textfile on that drive. The file will be opened and each record in turn inspected to
make sure that it can be read from the drive; record numbers are displayed as they are checked. If a particular record
number fails the check then 'File not found' will be displayed and control returned to BASIC. If verification is successful
then control will be returned to the assembler's editor.
6.3.1.3.3.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
120
Let us assume that you have typed in the following program (using I10,10):
10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
160
170
180
190
200
210
*h
PUSH
AF
PUSH
ADD
ADD
ADD
ADD
ADD
ADD
PIP
ADD
LD
ADD
POP
POP
REY
HL
HL,HL
HL,HL
HL,HL
HL,HL
HL,HL
HL,HL
BC
HL,DE
DE,41
HL,DE
BC
AF
;save registers
;*2
;*4
;*8
;*16
;*32
;*64
;old random number
;restore registers
a lower case 'h' has been used in the assembler command *H.
'randon' instead of 'random'.
PUSH BC starts in the label field.
'PIP' instead of 'POP'.
needs a comment (not an error - merely style).
'REY' should be 'RET'.
Also 2 extra lines of ADD HL,HL should be added between lines 140 and 150 and all references to the register pair DE in
lines 160 to 180 should be to register pair BC.
To put all this right we can proceed as follows:
E10 ENTER
F40,40,randon,random ENTER
E70 ENTER
I142,2 ENTER
F150,150,PIP,POP ENTER
E160 ENTER
F160,180,DE,BC ENTER
E210 ENTER
N10,10 ENTER
You are strongly recommended to work through the above example actually using the editor.
6.3.1.4.
*ERROR* 1
*ERROR* 2
*ERROR* 3
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
121
*ERROR* 4
*ERROR* 5
*ERROR* 6
*ERROR* 7
*ERROR* 8
Mismatch of registers.
*ERROR* 9
*ERROR* 10
*ERROR* 11
*ERROR* 12
*ERROR* 13
*ERROR* 14
Division by zero.
*ERROR* 15
*ERROR* 16
*ERROR* 17
*ERROR* 18
*ERROR* 19
Bad ORG!
An ORG has been made to an address that would corrupt GENS, its
textfile or the symbol table. Control returns to the editor.
No room for any more text to be inserted i.e. the end of text is
near the top of RAM. You should save the current textfile or part
of it.
6.3.1.5.
The following is a list of the reserved words within GENS. These symbols may not be used as labels although they may
form part of a label. Note that all the reserved words are composed of capital letters.
A
AF
AF'
BC
DE
HL
IX
IY
SP
NC
NZ
PE
PO
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
122
There now follows a list of the valid Z80 mnemonics, assembler directives and assembler commands. Note that these also
must be entered in capital letters.
ADC
ADD
AND
BIT
CALL
CCF
CP
CPD
CPDR
CPI
CPIR
CPL
DAA
DEC
DI
DJNZ
EI
EX
EXX
HALT
IM
IN
INC
IND
INDR
INI
INIR
JP
JR
LD
LDD
LDDR
LDI
LDIR
NEG
NOP
OR
OTDR
OTIR
OUT
OUTD
OUTI
POP
PUSH
RES
RET
RETI
RETN
RL
RLA
RLC
RLCA
RLD
RR
RRA
RRC
RRCA
RRD
RST
SBC
SCF
SET
SLA
SRA
SRL
SUB
XOR
DEFB
DEFM
DEFS
DEFW
ELSE
END
ENT
EQU
IF
ORG
MAC
ENDM
*D
*E
*H
*L
*S
*C
*F
*M
6.3.1.6.
There follows an example of a typical session using GENS3 - if you are a newcomer to the world of assembler programs or
if you are simply a little unsure how to use the editor/assembler then we urge you to work through this example carefully.
Note that <ENTER> is used to indicate that you should press ENTER on the keyboard.
Session objective:
To write and test a fast integer multiply routine, the text of which is to be saved to tape using the editor's 'T' command so
that it can easily be 'included' from tape in future programs.
Session workplan:
1. Write the multiply routine as a subroutine and save it to tape using the editor's 'P' command so that it can be easily
retrieved and edited during this sessions, should bugs be present.
2. De-bug the multiply subroutine, editing as necessary.
3. Save the de-bugged routine to tape, using the editor's 'T' command so that the routine may be 'included' from tape in
other programs.
Before we start we must load GENS3 into the computer - do this by typing LOAD"" CODE 26000 ENTER to load the
assembler at address 26000. Now type RANDOMIZE USR 26000 ENTER. You will now be prompted with a '>' sign - you
are in editor mode ready to create assembly programs.
Stage 1 - write the integer multiply routine.
We use the editor's 'I' command to insert the text using CAPS SHIFT 8 (the tab character) to obtain a tabulated listing. We
do not need to use CAPS SHIFT 8, a list of the text will always perform the tabulation for us. We have not indicated where
tabs have been used below but you can assume that they are used before the mnemonic and between the mnemonic and the
operand. Note that the addresses shown in the example assembler listings that follow may not correspond to those produced
on your machine; they serve an illustrative purpose only.
>I10,10 <ENTER>
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
123
Pass 2 errors: 00
*WARNING* MU4
Table used:
absent
74 from
CHIMIE INDUSTRIELLE
161
25/03/2005
1re Edition
Tome TP
124
>
We see from this assembly that we have made a mistake in line 190 and entered MU4 instead of Mu4 which is the label we
wish to branch to. So edit line 190:
>F190,190,MU4,Mu4 <ENTER>
190
JR
NZ, {now use the 'S' sub-command}
>
Now assemble the text again and you should find that it assembles without errors. So now we must write some code to test
the routine:
>N300,10 <ENTER>
{renumber so that we can write some more text}
>I10,10 <ENTER>
10 ;Some code to test <ENTER>
20 ;the Mult routine. <ENTER>
30 <ENTER>
40
LD
HL,50 <ENTER>
50
LD
DE,20 <ENTER>
60
CALL
Mult
;Multiply <ENTER>
70
LD
A,H
;o/p result <ENTER>
80
CALL
Aout <ENTER>
90
LD
A,L <ENTER>
100
CALL
Aout <ENTER>
110
RET
;Return to editor <ENTER>
120 <ENTER>
130 ;Routine to o/p A in hex <ENTER>
140 <ENTER>
150 Aout
PUSH
AF <ENTER>
160
RRCA
<ENTER>
170
RRCA
<ENTER>
180
RRCA
<ENTER>
190
RECA
<ENTER>
200
CALL
Nibble <ENTER>
210
POP
AF <ENTER>
220 Nibble AND
%1111 <ENTER>
230
ADD
A,#90 <ENTER>
240
DAA <ENTER>
250
ADC
A,#40 <ENTER>
260
DAA <ENTER>
270
LD
IY,#5C3A ; for ROM <ENTER>
280
RST
#10 ; ROM call <ENTER>
290
RET <ENTER>
300 CAPS SHIFT 1
>
Now assemble the test routine and the Mult routine together.
>A <ENTER>
Table size: <ENTER>
Options: 6 <ENTER>
*HISOFT GENS3 ASSEMBLER*
Copyright HISOFT 1983,84
All rights reserved
7EAC 190
*ERROR* 02
RECA
{hit any key to continue}
Pass 1 errors: 01
Table used:
88 from
CHIMIE INDUSTRIELLE
210
25/03/2005
1re Edition
Tome TP
125
>
We have an error in our routine; RECA should be RRCA in line 190. So:
>E190
190
RECA
190 _______C {enter change mode} R <ENTER> <ENTER>
Now assemble again, using simply option 4 (no list), and then the text should assemble correctly. Assuming it does, we are
now in a position to test the working of our Mult routine so we need to tell the editor where it can execute the code from.
We do this with the ENT directive:
>35
ENT
$ <ENTER>
Now assemble the text again and the assembly should terminate correctly with the messages:
Table used:
Executes: 32416
88 from
211
>
or something similar. Now we can run our code using the editor's 'R' command. We should expect it to multiply 50 by 20
producing 1000 which is #3E8 (in hexadecimal).
>R <ENTER>
0032>
It doesn't work! Why not ? List the lines 380 to 500 (L380,500). You will see that at line 430 the instruction is an OR D
followed, effectively, by a RET NZ. What this is doing is a logical OR between the D register and the accumulator A and
returning with an error flag set (the C flag) if the result is non-zero. The object of this is to ensure that DE<256 so that the
multiplication does not overflow - it does this by checking that D is zero ... but the OR will only work correctly in this case
if the accumulator A is zero to start with, and we have no guarantee that this is so. We must ensure that A is zero before
doing the OR D, otherwise we will get unpredictable overflow with the higher number returned as the result. From
inspection of the code we see that the OR A at line 380 could be made into a XOR A thus setting the flags for the SBC
HL,DE instruction and setting A to zero. So:
>E380 <ENTER>
380 Mult
OR
A
380 ________I {enter insert mode}X <ENTER> <ENTER>
Now assemble again (option 4) and run the code, using 'R'. The answer should now be correct - #3E8.
We can further check the routine by editing lines 40 and 50 to multiply different numbers and then assembling and running
- you should find that the routine works perfectly.
Now we have perfected the routine we can save it to tape in 'Include' format:
>T300,999,Mult <ENTER>
Remember to start the recorder in RECORD mode before pressing ENTER.
Once the routine has been saved like this it may be included in a program as shown below:
500
RET
510
520 ;Include the Mult routine here
530
540 *F Mult
550
560 ;The next routine.
When the above text is assembled the assembler will ask you to 'Start tape...' when it gets to line 540 on both the first and
second pass. Therefore you should have the Mult dump cued up on the tape in both cases. This will normally mean
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
126
rewinding the tape after the first pass. You could record two dumps of Mult on the tape, following each other and use one
for the first pass and the other for the second pass.
Please study the above example carefully and try it out for yourself.
6.3.1.7.
We present below an assembly listing of a program that produces a CATalogue of a Microdrive cartridge similar to that
produced by ZX BASIC'S CAT command but with extra information viz.
Type of file:
D - a data or print-type file
P - a BASIC program file
B - a CODE file
S - a string array
N - a numeric array
Also, for a CODE file, the length and start address are displayed in decimal while, for a program file, the length and
autoexecution address are displayed in decimal.
To use the program either type in the hex codes directly (using MONS3 or POKE from BASIC) or use GENS3 to assemble
the source of the program. Note that the program is positioned at 60000 - you may of course change this and re-assemble.
Once the code is in the Spectrum's memory you may execute it from within BASIC or path it into the GENS3 editor.
To use the program from within BASIC, first POKE the Microdrive number that you wish to catalogue into location 60345
(assuming that the code starts at 60000) and then RANDOMIZE USR 60000.
To use the catalogue program from within GENS3 you must patch the dummy 'Z' command to jump to the CATalogue
code. To do this patch, load up GENS3 normally and then POKE the address of the extended CATalogue routine + 2 into
locations Start of GENS3 + 7790 and Start of GENS3 + 7791 (low order byte first). For example, say you have loaded
GENS3 at 26000 and the extended CATalogue routine is at 60000. Then to effect the patch simply POKE 33790,98 and
POKE 33791,234 and then enter GENS3 in the normal way. You can then use Zn<ENTER> from within the editor to
CATalogue drive number n.
Below is the listing of the extended CATalogue program:
Microdrive Extended CATalogue 28 February 1984
000D
0002
0043
15D4
1655
5C16
5C3A
5C4F
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
EQU
13
PRINT EQU
RECFLG EQU
2
67
WAIT_K EQU
MAKE_S EQU
#15D4
#1655
STRMS EQU
ERR_NR EQU
CHANS EQU
#5C16
#5C3A
#5C4F
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
5C53
5CD6
5CD8
5CDA
5CDC
5CE6
5CE7
5CE9
5CEB
5CED
0022
0023
0031
0032
1C81
EA60
EA60 1817
EA62
EA63
EA64
EA65
EA66
EA69
EA6A
EA6B
EA6C
EA6D
EA6F
EA71
EA73
EA75
EA76
E1
54
5D
E5
21811C
19
7E
23
B6
2002
3E01
E60F
2600
6F
22B9EB
EA79 210AEC
EA7C 2208EC
EA7F FD213A5C
EA83 21C5EB
EA86 0634
EA88 CD9AEB
EA8B
EA8E
EA8F
EA90
EA93
2A535C
2B
E5
010B00
CD5516
PROG
EQU
#5C53
D_STR1
S_STR1
N_STR1
T_STR1
HD_00
HD_0B
HD_0D
HD_0F
HD_11
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
#5CD6
#5CD8
#5CDA
#5CDC
#5CE6
#5CE7
#5CE9
#5CEB
#5CED
OPEN_M
CLOSE_
NEWVAR
SHADOW
EQU
EQU
EQU
EQU
#22
#23
#31
#32
127
ORG
7297
60000
BasEnt
HL
D,H
E,L
HL
HL,NUM 1off
HL,DE
A,(HL)
HL
(HL)
NZ,NumSet
A,1
%00001111
H,0
L,A
(DRIVE),HL
;Initialise
BasEnt LD
LD
LD
HL,SPACE
(POINTER),HL
IY,#5C3A
LD
HL,SIGNON
LD
B,SIGNEND-SIGNON
CALL WRstring
;Set upnew channel and attach to Stream 14
CHIMIE INDUSTRIELLE
LD
DEC
PUSH
LD
CALL
HL,(PROG)
HL
HL
BC,11
MAKE_SPACE
25/03/2005
1re Edition
Tome TP
EA96
EA99
EA9A
EA9B
EA9C
EA9D
EA9E
EA9F
EAA0
EAA1
EAA4
EAA7
EAA9
EAAA
EAAB
EAAF
EAB0
EAB2
2191EB
D1
D5
EB
73
23
72
23
EB
21FDEB
010900
EDB0
E1
23
ED4B4F5C
B7
ED42
22325C
EAB5 D9
EAB6 E5
EAB7 D9
EAB8 CF
EAB9 31
EABA
EABC
EABF
EAC2
EAC5
EAC8
EACB
EACC
EACD
EACE
EAD1
EAD3
EAD6
EAD8
EAD9
EADA
EADB
EADD
EADF
EAE0
EAE2
EAE3
EAE6
EAE7
EAE8
EAE9
EAEC
EAED
EAEE
EAEF
EAF2
EAF5
3E0E
32D85C
2AB9EB
22D65C
2A06EC
22ED5C
FB
CF
32
210AEC
060B
CD9AEB
060F
C5
23
7E
FE0D
2879
2B
060B
E5
CD9AEB
E3
23
EB
21DC5C
73
23
72
2AB9EB
22D65C
210A00
LD
POP
PUSH
EX
LD
INC
LD
INC
EX
LD
LD
LDIR
POP
INC
LD
OR
SBC
LD
128
HL,CH14out
DE
DE
DE,HL
(HL),E
HL
(HL),D
HL
DE,HL
HL,C14INFO
BC,11-2
HL
HL
BC,(CHANS)
A
HL,BC
(STRMS+28),HL
A,14
(S_STR1),A
HL,(DRIVE)
(D_STR1),HL
HL,(CAT)
(HD_11),HL
8
SHADOW
CHIMIE INDUSTRIELLE
HL,SPACE
B,11
WRstring
B,15
BC
HL
A,(HL)
CR ;finished?
Z,CatEnd
HL
B,11
HL
WRstring
(SP),HL
HL
DE,HL
HL,T_STR1
(HL),E
HL
(HL),D
HL,(DRIVE)
(D_STR1),HL
HL,10
25/03/2005
1re Edition
Tome TP
EAF8
EAFB
EAFC
EAFD
EAFE
EB01
EB05
EB07
EB09
EB0C
EB0E
EB10
EB11
EB14
EB15
EB16
EB17
EB18
EB1B
EB1C
EB1E
EB1F
EB20
EB23
EB26
EB27
EB28
EB29
EB2B
EB2C
EB2D
EB2E
EB2F
EB30
EB31
EB32
EB33
EB36
EB37
EB38
EB39
EB3C
EB3E
EB40
EB42
EB43
EB44
EB45
EB46
EB49
EB4A
EB4B
EB4C
EB4F
EB50
EB51
EB52
EB53
EB55
22DA5C
FB
CF
22
CDB5EB
DDCB4356
2007
3E44
CDACEB
1841
DDE5
D1
215200
19
EB
1A
13
21F9EB
4F
0600
09
7E
CDACEB
CDB5EB
EB
79
B7
2013
23
23
23
23
5E
23
56
23
CD66EB
5E
23
56
CD66EB
1811
FE03
200D
5E
23
56
23
CD66EB
5E
23
56
CD66EB
CF
23
E1
C1
1083
C3D6EA
EB58 C1
EB59 2B
EB5A 0605
LD
EI
RST
DEFB
CALL
BIT
JR
LD
CALL
JR
NotPri PUSH
POP
LD
ADD
EX
LD
INC
LD
LD
LD
ADD
LD
CALL
CALL
EX
LD
OR
JR
INC
INC
INC
INC
LD
INC
LD
INC
CALL
LD
INC
LD
CALL
JR
NotPro CP
JR
LD
INC
LD
INC
CALL
LD
INC
LD
CALL
CatBac RST
DEFB
POP
POP
DJNZ
JP
(N_STR1),HL
CatEnd POP
DEC
LD
BC
HL
B,5
CHIMIE INDUSTRIELLE
129
8
OPEN_M
Space
PRINT,(IX+RECFLG)
NZ,NotPrint
A,"D"
CONOUT
CatBack
IX
DE
HL,82
HL,DE
DE,HL
A,(DE)
DE
HL,TYPETAB
C,A
B,0
HL,BC
A,(HL)
CONOUT
Space
DE,HL
A,C
A
NZ,NotProg
HL
HL
HL
HL
E,(HL)
HL
D,(HL)
HL
DEOUTS
E,(HL)
HL
D,(HL)
DEOUTS
CatBack
3
NZ,CatBack
E,(HL)
HL
D,(HL)
HL
DEOUTS
E,(HL)
HL
D,(HL)
DEOUTS
8
CLOSE_M
HL
BC
CatLoop
CatL1
25/03/2005
1re Edition
Tome TP
EB5C
EB5F
EB60
EB61
EB62
EB65
EB66
EB67
EB69
EB6A
EB6C
EB70
EB73
EB76
EB78
EB79
EB7A
EB7C
EB7E
EB7F
EB81
EB84
EB86
EB88
EB8A
EB8D
EB8F
EB90
EB91
EB94
EB95
EB96
EB99
EB9A
EB9B
EB9E
EB9F
EBA1
EBA2
EBA3
EBA4
EBA5
EBA8
EBA9
EBAA
EBAB
CD9AEB
D9
E1
D9
010000
C9
E5
DDE5
EB
0605
DD21BBEB
DD5E00
DD5601
3EFF
3C
B7
ED52
30FA
19
F630
CDACEB
DD23
DD23
10E6
CDB5EB
DDE1
E1
C9
2A08EC
77
23
2208EC
C9
7E
CDACEB
23
10F9
C9
E5
D5
C5
CD0116
C1
D1
E1
C9
EBAC F5
EBAD 3E02
130
CALL WRstring
EXX
POP HL
EXX
LD
BC,0
RET
;OutputDE in decimal
DEOUTS PUSH
PUSH
EX
LD
LD
DEloop LD
LD
LD
TenLoo INC
OR
SBC
JR
ADD
OR
CALL
INC
INC
DJNZ
CALL
POP
POP
RET
HL
IX
DE,HL
B,5
IX,TENTAB
E,(IX)
D,(IX+1)
A,-1
A
A
HL,DE
NC,TenLoop
HL,DE
#30
CONOUT
IX
IX
DEloop
Space
IX
HL
;Outputfor Stream14
CH14ou LD
LD
INC
LD
RET
HL,(POINTER)
(HL),A
HL
(POINTER),HL
A,(HL)
CONOUT
HL
WRstring
;Open a stream
ChOpen PUSH
PUSH
PUSH
CALL
POP
POP
POP
RET
HL
DE
BC
#1601
BC
DE
HL
;Output to stream 2
CONOUT PUSH AF
LD
A,2
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
EBAF
EBB2
EBB3
EBB4
CDA2EB
F1
D7
C9
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
EBB5 3E20
EBB7 18F3
EBB9 0100
EBBB 1027E803
EBC5
EBC6
EBE1
EBE2
EBF7
EBF9
131
0D
4869736F
0D
436F7079
0D0D
EBF9 504E5342
EBFD C415
EBFF 5A
EC00 28002800
EC06 581C
EC08
EC0A
CALL ChOpen
POP AF
RST #10
RET
;Output a space to stream 2
Space
LD
JR
A," "
CONOUT
;Storage
DRIVE
DEFW 1
CR
"Hisoft Extended CAT Listing"
CR
"Copyright Hisoft 1984"
CR,CR
$
DEFW #1C58
*)
;*****************************************************
POINTE DEFS 2
SPACE DEFS 512
Pass 2 errors: 00
6.3.2.
6.3.2.1.
GETTING STARTED
MONS3 is supplied in a relocatable form; you simply load it at the address that you wish it to execute from and then enter
MONS3 via that address. If you wish to enter MONS3 again (having returned from MONS3 to BASIC) then you should
execute the address at which you originally loaded the debugger.
Example:
Say you want to load MONS3 at address #C000 (49152 decimal) - proceed as follows:
LOAD "MONS3" CODE 49152 <ENTER>
RANDOMIZE USR 49152 <ENTER>
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
132
6.3.2.2.
The following commands are available from within MONS3. In this section, whenever ENTER is used to terminate a
hexadecimal number this in fact can be any non-hex character (see Section 6.3.2.1). Also '_' is used to denote a space where
applicable.
SYMBOL SHIFT 3
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
133
flip the number base in which addresses are displayed between base 16 (hexadecimal) and base 10 (deanery). On entry to
MONS3, addresses are shown in hexadecimal, use ^3 to flip to a decimal display and ^3 again to revert to the hexadecimal
format. This affects all addresses displayed by MONS3 including those generated by the dis-assembler but it does not
change the display of memory contents - this is always given in hexadecimal.
SYMBOL SHIFT 4 or '$'
display a page of dis-assembly starting from the address held in the Memory Pointer. Useful to look ahead on your current
position to see what instructions are coming up. Hit ^4 again to return to the 'Front Panel' display or another key to get a
further page of dis-assembly.
ENTER
increment the Memory Pointer by one so that the 24 byte memory display is now centered around an address one greater
than it was previously.
CAPS SHIFT 7
decrement the Memory Pointer by one.
CAPS SHIFT 5
decrement the Memory Pointer by eight - used to step backwards quickly.
CAPS SHIFT 8
increment the Memory Pointer by eight - used to step forwards quickly.
',' (comma)
update the Memory Pointer so that it contains the address currently on the stack (indicated by SP). This is useful when you
want to look around the return address of a called routine etc.
'G'
search memory for a specified string ('G'et a string).
You are prompted with a ':' and you should then enter the first byte for which you want to search followed by 'ENTER' now keep entering subsequent bytes (and 'ENTER') in response to the ':' until you have defined the whole string. Then just
press 'ENTER' in response to the ':', this will terminate the definition of the string and search memory, starting from the
current Memory Pointer address, for the first occurrence of the specified string. When the string is found the 'front panel'
display will be updated so that the Memory Pointer is positioned at the first character of the string. Example:
Say that you wish to search memory, starting from #8000, for occurrences of the pattern #3E #FF (2 bytes) - proceed as
follows;
M:8000 ENTER
G:3E ENTER
FF ENTER
ENTER
After the final ENTER (or any non-hex character) 'G' proceeds to search memory from #8000 for the first occurrence of
#3E #FF. When found the display is updated - to find subsequent occurrences of the string use 'N' command.
'H'
convert a decimal number to its hexadecimal equivalent.
You are prompted with ':' to enter a decimal number terminated by any non-digit (i.e. any character other than 0..9
inclusive). Once the number has been terminated, an '=' sign is displayed on the same line followed by the hexadecimal
equivalent of the decimal number. Now hit any key to return to the command mode.
Example:
H:41472_=A200
'I'
intelligent copy.
This is used to copy a block of memory from one location to another - it is intelligent in that the block of memory may be
copied to locations where it would overlap its previous locations.
'I' prompts for the inclusive start and end addresses of the block to be copied ('First:', 'Last:') and then for the address to
which the block is to be moved ('To:'); enter hexadecimal numbers in response to each of these prompts. If the start address
is greater than the end address then the command is aborted - otherwise the block is moved as directed.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
134
'J'
execute code from a specified address.
This command prompts, via ':', for a hexadecimal number - once this is entered the internal stack is reset, the screen cleared
and execution transferred to the specified address. If you wish to return to the 'front panel' after executing code then set a
breakpoint (see the 'W' command) at the point where you wish to return to the display.
Example:
J:B000 ENTER
You may abort this command before you terminate the address by using CAPS SHIFT 5. Note that 'J' corrupts the Z80
registers before executing the code; thus the machine program should make no assumptions as to the values held in the
registers. If you wish to execute code with the registers set to particular values then you should use the SYMBOL SHIFT K
command - see below.
'SYMBOL SHIFT K'
continue execution from the address currently held in the Program Counter (PC).
This command will probably be used most frequently in conjunction with the 'W' command - an example should help to
clarify this usage:
say you are single-stepping (using '^Z') through the code given below and you have reached address #8920. You are now
not interested in stepping through the subroutine at #9000 but wish to see how the flags are set up after the call to the
subroutine at #8800.
891E
8920
8923
8926
8927
892A
892D
892F
8932
3EFF
CD0090
2A0080
7E
111488
CD0088
2003
320280
211488 labl
LD
CALL
LD
LD
LD
CALL
JR
LD
LD
A,-1
#9000
HL,(#8000)
A,(HL)
DE,#8814
#8800
NZ,labl
(#8002),A
HL,#8814
Proceed as follows: set a breakpoint, using 'W', at location #892D (remember to use 'M' first to set the Memory Pointer)
and then issue a '^K' command. Execution continues from the address held in the PC which, in this case, is #8920.
Execution will then continue until the address at which the breakpoint was set (#892D) at which point the display will be
updated and you can inspect the state of flags etc. after the call to the subroutine at #8800. Then you can resume singlestepping through the code.
So '^K' is useful for executing code without first resetting the stack or corrupting the registers as 'J' does.
'L'
tabulate, or list, a block of memory starting from the address currently held in the Memory Pointer.
'L' clears the screen and displays the hexadecimal representation and ASCII equivalence of the 80 bytes of memory starting
from the current value of the Memory Pointer. Addresses will be shown in either hexadecimal or decimal depending on the
current state of the Front Panel (see ^3 above). The display consists of 20 rows with 4 bytes per row, the ASCII being
shown at the end of each row. For the purposes of the ASCII display any values above 127 are decremented by 128 and any
values between 0 an 31 inclusive are shown as '.'.
At the end of a page of the list you have the option of returning to the main 'front panel' display by pressing CAPS SHIFT 5
or continuing with the next page of 80 bytes by pressing any other key (other than CAPS SHIFT 1).
'M'
set the Memory Pointer to a specified address.
You are prompted with ':' to enter a hexadecimal address (see Section 6.3.2.1). The Memory Pointer is then updated with
the address entered and the memory display of the 'front panel' changes accordingly.
M is useful as a prelude to entering code, tabulating memory etc.
'N'
find the next occurrence of the hex string last specified by the 'G' command.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
135
'G' allows you to define a string and then searches for the first occurrence of it; if you want further occurrences of the string
then use 'N'.
'N' begins searching from the Memory Pointer and updates the memory display when the next occurrence of the string is
found.
'O'
go to the destination of a relative displacement.
The command takes the byte currently addressed by the Memory Pointer, treats it as a relative displacement and updates the
memory display accordingly.
Example:
Say the Memory Pointer is set to #6800 and that the contents of locations #67FF and #6800 are #20 and #16 respectively this could be interpreted as a JR NZ, $+24 instruction. To find out where this branch would go on a Non-Zero condition
simply press 'O' when the Memory Pointer is addressing the displacement byte #16. The display will then update to centre
around #6817, the required destination of the branch.
Remember that relative displacements of greater then #7F (127) are treated as negative by the Z80 processor; 'O' takes this
into account.
See also the 'U' command in connection with 'O'.
'P'
fill memory between specified limits with a specified byte.
'P' prompts for 'First:', 'Last:' and 'With:'. Enter hexadecimal numbers in response to these prompts; respectively, the start
and end addresses (inclusive) of the block that you wish to fill and the byte with which you want to fill the block of
memory.
Example:
P
First: 7000 ENTER
Last: 77FF ENTER
With: 55 ENTER
will fill locations #7000 to #7FF (inclusive) with the byte #55 ('U').
If the start address is greater than the end address then 'P' will be aborted.
'Q'
flip register sets.
On entry to the 'front panel' display the set of registers displayed is the standard register set (AF, HL, DE, BC). The use of
'Q' will display the alternate register set (AF', HL', DE', BC') which is distinguished from the standard set by the single
quote "'" after the register name.
If 'Q' is used when the alternate register set is displayed then the standard set will be shown.
'SYMBOL SHIFT T'
set a breakpoint after the current instruction and continue execution.
Example:
9000 B7
9001 C20098
9004 010000
OR
CALL
LD
A
NZ,#9800
BC,0
9008 21FFFF
LD
HL,-1
You are single-stepping the above code and have reached #9001 with a non-zero value in register A, thus the zero flag will
be in a NZ state after the OR A instruction. If you now use '^Z' to continue single-stepping then execution will continue at
address #9800, the address of the subroutine. If you do not wish to single-step through this routine then issue the ^T
command when at address #9001 and the CALL will be obeyed automatically and execution stopped at address #9004 for
you to continue single-stepping.
Remember, ^T sets a breakpoint after the current instruction and then issues a ^K command.
See the '^Z' command for an extended example of single-stepping.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
136
'T'
dis-assemble a block of code, optionally to the printer.
You are first prompted to enter the 'First:' and 'Last:' addresses of the code that you wish to dis-assemble - enter these in
hexadecimal as detailed in Section 6.3.2.1. If the start address is greater than the end address then the command is aborted.
After entering these addresses you will be prompted with 'Printer?'; answer 'Y' (capital 'Y' only) to direct the dis-assembly
to your printer stream or any other value to send output to the screen.
Now you are prompted with 'Text:' to enter, in hexadecimal, the start address of any textfile that you wish the dis-assembler
to produce. If you do not want a textfile to be generated then simply press ENTER after this prompt. If you specify an
address then a textfile of the dis-assembly will be produced, starting at that address, in a form suitable for use by GENS3. If
you want to use a textfile with GENS3 then you must either generate it at, or move it to, the first address given by the
assembler editor's 'X' command because this is the address of the start of the text expected by GENS3. You must also tell
GENS3 where the end of the textfile is; do this by taking the 'End of text' address given by the dis-assembler (see below)
and patching it into the TEXTEND location of GENS3 - see the GENS3 manual, Section 6.3.1.3.2. Then you must enter
GENS3 by the warm start entry point, to preserve the text.
If, at any stage when you are generating a textfile, the text would overwrite MONS3 then the dis-assembly is aborted press any key to return to the Front Panel.
If you specified a textfile address you are now asked to specify a 'Workspace:' address - this should be the start of a spare
area of memory which is used as a primitive symbol table for any labels generated by the dis-assembler. The amount of
memory needed is 2 bytes for each label generated. If you default by simply hitting ENTER then an address of #6000 (hex)
is assumed.
After this, you are asked repeatedly for the 'First:' and 'Last:' (inclusive) addresses of any data areas that exist within the
block that you wish to dis-assemble. Data areas are areas of, say, text that you do not wish to be interpreted as Z80
instructions - instead these data areas cause DEFB assembler directives to be generated by the dis-assembler. If the value of
the ASCII interpretation of the byte is given e.g. #41 is changed to 'A' after a DEFB. When you have finished specifying
data areas, or if you do not wish to specify any, simply type ENTER in response to both prompts. The 'T' command uses an
area at the end of MONS3 to store the data area addresses and so you may set as many data areas as there is memory
available; each data area requires 4 bytes of storage. Note that using 'T' destroys any breakpoints that were previously set see the 'W' command.
The screen will now be cleared. If you asked for a textfile to be created then there will be a short delay (depending on how
large a section of memory you wish to be dis-assembled) while the symbol table is constructed. This having been done, the
dis-assembly listing will appear on the screen or printer - you may pause the listing at the end of a line by hitting ENTER or
SPACE, subsequently hit CAPS SHIFT 5 to return to the 'front panel' display or any other key (except CAPS SHIFT 1) to
continue the dis-assembly. If an invalid opcode is encountered then it is disassembled as NOP and flagged with an asterisk
'*' after the opcode in the listing.
At the end of the dis-assembly the display will pause and, if you have asked for a textfile to be produced, the message 'End
of text xxxxx' will be displayed; xxxxx is the address (in hexadecimal or decimal) that should be POKEd (low order byte
first) into the GENS3 location TEXTEND in order that the assembler can pick up this dis-assembled textfile on a warm
start. When the dis-assembly has finished, press any key to return to the 'front panel' display, apart from CAPS SHIFT 1
which will return you to BASIC.
Labels are generated, where relevant (e.g. in C30078), in the form LXXXX where 'XXXX' is the absolute hex address of
the label, but only if the address concerned is within the limits of the dis-assembly. If the address lies outside this range
then a label is not generated, simply the hexadecimal or decimal address is given. For example, if we were dis-assembling
between #7000 and #8000, then the instruction C30078 would be dis-assembled as JP L7800; on the other hand, if we were
be disassembled as JP #7800 or JP 30720 if a decimal display is being used. If a particular address has been referenced in
an instruction within the dis-assembly then its label will appear in the label field (before the mnemonic) of the dis-assembly
of the instruction at that address but only if the listing is directed to a textfile. Example:
T
First:8B ENTER
Last:9E ENTER
Printer?Y
Text: ENTER
First:95 ENTER
Last:9E ENTER
First: ENTER
Last: ENTER
008B FE16
008D 3801
008F 23
CHIMIE INDUSTRIELLE
CP
JR
INC
#16
C,L0090
HL
25/03/2005
1re Edition
Tome TP
0090
0091
0094
0095
0098
009B
009e
SCF
LD
RET
DEFB
DEFB
DEFB
DEFB
137
(#5C5D),HL
#BF,"R","N"
#C4,"I","N"
"K","E","Y"
#A4
'U'
used in conjunction with the 'O' command.
Remember that 'O' updates the memory display according to a relative displacement i.e. it shows the effect of a JR or DJNZ
instruction. 'U' is used to update the memory display back to where the last 'O' was issued. Example:
7200 47
7201 20
>7202 F2<
7203 06
display 1
71F3 77
71F4 C9
>71F5 F5<
71F6 C5
display 2
You are on display 1 and wish to know where the relative jump 20 F2 branches. So you press 'O' and the memory display
updates to display 2. Now you investigate the code following #71F5 for a while and then wish to return to the code
following the original relative jump in order to see what happens if the zero flag is set. So press 'U' and the memory display
will return to display 1. Note that you can only use 'U' to return to the last occurrence of the 'O' command, all previous uses
of 'O' are lost.
'V'
used in conjunction with the 'X' command.
'V' is similar to the 'U' command in effect except that it updates the memory display to where it was before the last 'X'
command was issued.
Example:
8702 AF
8703 CD
>8704 2F<
8705 44
display 1
842D 18
842E A2
>842F E5<
8430 21
display 2
You are on display 1 and wish to look at the subroutine at #842F. So you press 'X' with the display centered as shown; the
memory display then updates to display 2. You look at this routine for a while and then wish to return to the code after the
original call to the subroutine. So press 'V' and display 1 will reappear. As with 'U' you can use this command only to reach
the address at which the last 'X' command was issued, all previous addresses at which 'X' was used are lost.
'W'
sets a breakpoint at the Memory Pointer.
A 'breakpoint', as far as MONS3 is concerned, is simply a CALL instruction into a routine within MONS3 that displays the
'front panel' thus enabling the programmer to halt the execution of a program and inspect the Z80 registers, flags and any
relevant memory locations. Thus, if you wish to halt the execution of a program at #9876, say, then use the 'M' command to
set the Memory Pointer to #9876 and then use 'W' to set a breakpoint at that address. The 3 bytes of code that were
originally at #9876 are saved and then replaced with a call instruction that halts the execution when obeyed. When this
CALL instruction is reached it causes the original 3 bytes to be replaced at #9876 and the 'front panel' to be displayed with
all the registers and flags in the state they were just before the breakpoint was executed. You can now use any of the
facilities of MONS3 in the usual way.
Notes: When the breakpoint is encountered, MONS3 will emit a short tone through the Spectrum's speaker and wait for you
to hit a key before returning to the Front Panel.
MONS3 uses the area, at the end of itself, that originally contained the relocation addresses in order to store breakpoint
information. This means that you may set as many breakpoints as there is memory available; each breakpoint requires 5
bytes of storage. When a breakpoint is executed MONS3 will automatically restore that memory contents that existed prior
to the setting of that breakpoint. Note that, since the 'T' command also uses this area, all breakpoints are lost when the 'T'
command is used. Breakpoints can only be set in RAM. Since a breakpoint consists of a 3 bytes CALL instruction a certain
amount of care must be exercised in certain exceptional cases e.g. consider the code:
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
138
3E
01
18
06
AF<
0E
FF
01
8008
8009
800A
800B
>800C
800D
800E
800F
00
00
06
02
18<
F7
06
44
If you set a breakpoint at #8004 and then begin execution of the code from location #8000 then register A will be loaded
with the value 1, execution transferred to #800A, register B loaded with the value 2 and execution transferred to location
#8005. But #8005 has been overwritten with the low byte of the breakpoint call and thus we now have corrupted code and
unpredictable results will occur. This type of situation is rather unusual but you must attempt to guard against it - in this
case single-stepping the code would provide the answer; see the '^Z' command below for a detailed example of singlestepping.
'X'
used to update the Memory Pointer with the destination of an absolute CALL or JP instruction.
'X' takes the 16 bits address specified by the byte at the Memory Pointer and the byte at the Memory Pointer +1 and then
updates the memory display so that it is centered around that address. Remember that the low order half of the address is
specified by the first byte and the high order half of the address is given by the second byte - Intel format. Example:
say you wish to look at the routine that the code CD0563 calls; set the Memory Pointer (using 'M') so that it addresses the
05 within the CALL instruction and then press 'X'. The memory display will be updated so that it is centered around
location #6305.
See also the 'V' command in connection with 'X'.
'Y'
enter ASCII from the Memory Pointer.
'Y' gives you a new line on which you can enter ASCII characters directly from the keyboard. These characters are echoed
and their hexadecimal equivalents are entered into memory starting from the current value of the Memory Pointer. The
string of characters should be terminated by CAPS SHIFT 5 and DELETE (CAPS SHIFT 0) may be used to delete
characters from the string. When you have finished entering the ASCII characters (and typed CAPS SHIFT 5) then the
display is updated so that the Memory Pointer is positioned just after the end of the string as it was entered into memory.
'SYMBOL SHIFT Z'
single-step
Prior to the use of '^Z' (or '^T') both the Program Counter (PC) must be set to the address of the instruction that you wish to
execute.
'^Z' simply executes the current instruction and then updates the 'front panel' to reflect the changes caused by the executed
instruction.
Note that you can single-step anywhere in the memory map (RAM or ROM) but that you should ensure that interrupts are
not enabled at any time.
You cannot single-step the Interface 1 ROM.
There now follows an extended example which should clarify the use of many of the debugging commands available within
MONS3 - you are urged to study it carefully and try it out for yourself.
Let us assume that we have 3 sections of code shown on the next page in the machine, the first section is the main program
which loads HL and DE with numbers and then calls a routine to multiply them together (the second section) with the result
in HL and finally calls a routine twice to output the result of the multiplication to the screen (third section).
7080
7083
7087
708A
708B
708E
708F
7092
.
.
.
2A0072
ED5B0272
CD0071
7C
CD1D71
7D
CD1D71
210000
CHIMIE INDUSTRIELLE
LD
LD
CALL
LD
CALL
LD
CALL
LD
HL,(#7200)
DE,(#7202)
Mult
A,H
Aout
A,L
Aout
HL,0
25/03/2005
; SECTION 1
1re Edition
Tome TP
139
7100
7101
7103
7104
7106
7107
7108
7109
710A
710B
710C
710E
710F
7110
7111
7112
7113
7114
7115
7116
7118
7119
711B
711C
AF
ED52
19
3001
EB
B2
37
C0
B3
5A
2007
EB
C9
EB
19
EB
29
D8
1F
30FB
B7
20F5
19
C9
711D
711E
711F
7120
7121
7122
7125
7126
7128
712A
712B
712D
712E
7132
7133
.
.
7200
7202
Mult
OR
SBC
ADD
JR
EX
OR
SCF
RET
OR
LD
JR
EX
RET
EX
ADD
EX
ADD
RET
RRA
JR
OR
JR
ADD
RET
A
HL,DE
HL,DE
NC,Mu1
DE,HL
D
F5
Aout
0F
0F
0F
0F
CD2671
F1
E60F
Nibble
C690
27
CE40
27
FD213A5C
D7
C9
PUSH
RRCA
RRCA
RRCA
RECA
CALL
POP
AND
ADD
DAA
ADC
DAA
LD
RST
RET
AF
1B2A
0300
DEFW
DEFW
10779
3
Mu1
Mu2
Mu3
Mu4
; SECTION 2
NZ
E
E,D
NZ,MU4
DE,HL
DE,HL
HL,DE
DE,HL
HL,HL
C
NC,Mu3
A
NZ,Mu2
HL,DE
Nibble
AF
%1111
A,#90
A,#40
IY,#5C3A
#10
Now we wish to investigate the above code either to see if it works or maybe how it works. We can do this with the
following set of commands - it should be noted that this is merely one way of stepping through the code, it is not
necessarily efficient but should serve to demonstrate single stepping:
M:7080 ENTER
7080.
^Z
^Z
^Z
M:7115 ENTER
W
^K
^Z
^Z
^Z
^Z
^Z
^Z
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
^Z
^Z
^Z
^Z
^Z
^Z
M:7128 ENTER
^K
^Z
^Z
^Z
^Z
,
W
^K
^Z
,
W
^K
^Z
^T
140
"
"
"
return from multiply routine.
single step.
follow the CALL.
set Memory Pointer to interesting bit.
continue execution from #711D to breakpoint.
single step.
"
"
"
have a look at the return address.
set breakpoint there
and continue.
single step.
return from Aout routine
single step.
obey the whole CALL to Aout.
Please do work through the above example, first typing in the code of the routines (see 'Modifying Memory' below), or
using GENS3, and then obeying the commands detailed above. You will find the example invaluable as an aid to
understanding how to trace a path through a program.
'"' SYMBOL SHIFT P
this command is exactly the same as the 'L'ist command except that the output goes to the printer stream instead of to the
screen. Remember that, at the end of a page, you press CAPS SHIFT 5 to return to the 'front panel' or any other key (except
CAPS SHIFT 1) to get another page.
Modifying Memory.
The contents of the address given by the Memory Pointer may be modified by entering a hexadecimal number followed by
a terminator (see Section 6.3.2.1). The two least significant hex digits (if only one digit is entered then it is padded to the
left with a zero) are entered into the location currently addressed by the Memory Pointer and then the command (if any)
specified by the terminator is obeyed. If the terminator is not a valid command then it is ignored.
Examples:
F2 ENTER
123 CAP SHIFT 8
EM:E00_
8CO
2A5D_
Modifying Registers.
If a hexadecimal number is entered in response to the '>' prompt and is terminated by a period, '.', then the number specified
will be entered into the Z80 register currently addressed by the right arrow '>'.
On entry to MONS3 '>' points to the program Counter (PC) and so using '.' as a terminator to a hex number initially will
modify the program counter. Should you wish to modify any other register then use '.' by itself (not as a terminator) and the
pointer '>' will cycle round the registers PC to AF. Note that is is not possible to address (and thus change) either the Stack
Pointer (SP) or the IR registers.
Examples:
Assume that the register pointer '>' is initially addressing the PC.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
.
.
0.
.
123
.
.
E2A7
.
FF00.
.
8000.
141
point to IY.
point to IX.
set IX to zero.
point to HL.
set HL to #123.
point to DE.
point to BC.
set BC to E2A7.
point to AF.
set A to #FF and reset all the flags.
point to PC.
set the PC to #8000
Note that '.' can also be used to modify the alternate register set if this is displayed. Use to 'Q' command to flip the display
of the register sets.
6.3.2.3.
710C
>PC
SP
IY
IX
HL
DE
BC
AF
IR
2007
710C
D0AF
CF6A
D09F
2A1B
0000
0004
0304
3F7C
7100
7101
7102
7103
7104
7105
7106
7107
AF
ED
52
19
30
01
EB
B2
20
8A
0D
04
DF
F3
FF
7108
7109
710A
710B
>710C
710D
710E
710F
NZ,#7115
C9 EB 19 EB
03 0A 03 0D
0F 09 18 18
00 00 00 1B
28 02 CF 02
FF FF C3 CB
11 2A 5D 5C
37
C0
B3
5A
20<
07
EB
C9
7110
7111
7112
7113
7114
7115
7116
7117
EB
19
EB
29
D8
1F
30
FB
>
Shown above is a fairly typical 'front panel' display - the display is one actually obtained while single-stepping the Mult
routine given in the example of the 'Z' command.
The first 9 lines of the display contain the Z80 registers; the name of the register first (PC to IR), then (for PC to BC) the
value presently held in the register and finally the contents of the 7 memory locations starting from the address held in the
register. The Flag register is decoded to show the flags currently set in the bit order that they are used within the register - if
the Flag register was set to #FF then the display following AF would look like 00FF SZ H VNC i.e. the sign, zero, halfcarry, parity/overflow, add/subtract and carry flags are all set.
A register pointer '>' points to the register currently addressed; see Section 6.3.2.2 - Modifying Registers.
The 24 byte memory display below the register display is organized as the address (2 bytes, 4 characters) followed by the
contents (1 byte, 2 characters) of the memory at that address. The display is centered around the current Memory Pointer
value, indicated by '> <'.
Commands (see Section 6.3.2.2) are entered on the bottom line of the screen in response to the prompt '>'. The display is
updated after each command is processed.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
6.4.
Introduction to Z80 Assembler
Written by James Hollidge7
142
Foreword
The Z80 is one of the most popular microprocessors of the 80's having been used in many home
computers systems of that era. This document will give an introduction to all aspects of the Z80
assuming no knowledge of programming.
This guide is only intended as an introduction to the concepts and language of machine code and
assembler - it doesn't give a complete examination of the instruction set nor does it attempt to deal with
the particulars of any one Z80 system. However I will be covering that sort of stuff in my next Z80
article when I deal with the actual specific Spectrum stuff and some more of the instructions that are
only useful in context.
Contents
Binary vs Decimal vs Hexadecimal
The Registers, Memory and Machine Language vs Assembler
Addition and Subtraction
Bit Manipulation
Program Flow, more on Flags and The Stack
Memory Manipulation
6.4.1.
The way we count things in every day life is based on the number ten. This is an arabic convention that
has been widely adopted by the west. However it's not the only way of counting things. Ancient
cultures have used systems based on 5, 12 and even 60. Computers use a counting system based on 2.
Why ? Quite simply it's for electronic simplicity - it is far easier to determine whether something is on
(1) or off (0) (known as digital) than if it is at a range of voltages (known as analogue).
It's really very easy to work with binary. In decimal each extra digit represents numbers ten times
greater than the last digit. For example take 55. The first 5 represents 5 tens, the second 5 represents 5
ones. The first digit hence represents numbers ten times larger than the second. In 555 the first digit
represents 5 hundreds, the second 5 tens and the third 5 ones. The first digit represents numbers ten
times bigger than the second, in turn ten times bigger than the third. The magnitude of the digits are
10x10x1, 10x1, 1. For thousands the magnitude of the digits is 10x10x10x1 and so on. Each extra digit
is worth ten times more the last. Why do we work in these columns ? Well when we get to 9 in one
column then adding 1 will produce a number too large to represent (we can only represent
0,1,2,3,4,5,6,7,8 and 9). Unless we invent a symbol for each number we have to show the numbers
larger than 9 in a different way. We do this by creating a column of digits that do this, the tens. Hence
when we add 1 to 9 we write 10 to show there's one 10 and zero 1s.
Binary works in the same way except as we only have two digits we have to represent the 2's in a
different way ; by adding an extra column. For example when we add 1 to 1 we add an extra column of
digits to represent the 2 leaving us with a number 10 in binary: 1 two and 0 ones. Each extra digit (or
more correctly bit, for binary digit) we add represents numbers twice as large as the last bit. Hence:
1=1, 1x2=2, 1x2x2=4, 1x2x2x2=8, 1x2x2x2x2=16 etc....
The Z80 is an 8 bit system which means it uses 8 bits to represent its numbers, which can look like
this:
76543210 - Bit Number
01001000 - Binary Number
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
143
Now to convert this to decimal we take each bit that is set (1) and look at it's bit number (shown above
the binary number), take 2 to the power of that number and add it to the total. (Taking a power of a
number says take that number and multiply it by itself a number of times, 2 to the power of 2 (or 2^2)
is the same as 2x2x1 or 4).
2^6 (2x2x2x2x2x2x1 = 64 ) + 2^3 (2x2x2x1 = 8 ) = 64 + 8 = 72
The maximum value we can represent with 8 bits is therefore 2^0 + 2^1 + 2^2 + 2^3 + 2^4 + 2^5 +
2^6 + 2^7 = 255, practice your binary mathematics as it's going to be essential here.
Now alongside binary in computing we use hexadecimal, a number system based on 16. So this time
each digit we write represents 16 times the magnitude of the last digit. We use the letters A to F to
represent the number 10 to 15 in decimal.
So a hexadecimal number like A5 would be 10 x 16 + 5 in decimal or 165. However hexadecimal is
far more useful when converting binary because it just so happens that because 16 is a power of 2
(2^4) that conversion between these number systems is very straightforward. All we need do is take
each group of four bits in the number and replace them with the hexadecimal equivalent. Why does
this work ? Well each group of four bits can represent 16 different numbers and each hexadecimal
digit can represent 16 different numbers. For example:
76543210
11101101
The first four bits (0-3) are 2^3 + 2^2 + 2^0 = 13 which is D, the second four bits (4-7) are 2^3 + 2^2 +
2^1 = 14 which is E. Hence this number is ED in hexadecimal (and 14x16 + 13 = 237 in decimal). As
you might see hexadecimal is very much more convenient for writing binary numbers down quickly
without having to think too much about conversion as going back from hexadecimal is just as easy:
you simply replace each digit with it's equivalent binary number. For example C9 would become 12
and 9, or 1100 and 1001: 11001001 or 201. Hexadecimal makes working with binary a bit easier and
converting to decimal a bit more straightforward. If you can, learn the first 16 binary numbers so you
can convert quickly:
Binary
Decimal
Hexadecimal
0000
0
0
0001
1
1
0010
2
2
0011
3
3
0100
4
4
0101
5
5
0110
6
6
0111
7
7
1000
8
8
1001
9
9
1010
10
A
1011
11
B
1100
12
C
1101
13
D
1110
14
E
1111
15
F
In this article b, d and h after a number represent binary, decimal and hexadecimal respectively, if
there is any possibility of misinterpretation.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
6.4.2.
144
The Z80 stores it's numbers and does all its math's (most of the time) using registers - these are a set of
8 bit numbers that are stored internally (actually it's a bit more complicated by we'll get to that in a bit).
At the moment we'll deal with the registers you'll going to use pretty much all the time. They are
A,B,C,D,E,F,H,L and A',B',C',D',E',F',H',L'.
Each register stores an 8 bit number (that's 0-255). A and F are special registers. A is known as the
accumulator. It does most of the math's work. F is known as the flag register. It works a bit differently
to other registers in that it's purpose is to store the results of other operations depending on whether
they are zero, negative, carry etc... but that'll be covered more later. The registers B,C,D,E,H and L are
a set of general purpose registers and can also be used in pairs to form 16 bit numbers (which can
represent numbers up to 65535, test your binary understanding to figure out why). The valid pairs are
BC, DE and HL.
The other registers are known as shadow registers, They can't be accessed directly but instead can be
swapped around with the normal registers. They are incredibly useful for temporarily storing values.
The way we load values into these registers is by way of the LD instruction, which is short for load.
For example LD A,0 will load A with 0. LD BC,0 will load B and C with 0. LD A,B will load A with
B and so on. There are many forms of LD but you can't do things like LD HL,BC.
Now back to shadow registers. We access those using the exchange instructions. EXX will swap BC
with B'C', DE with D'E' and HL with H'L'. EX AF,AF' will swap A with A' and F with F'. You won't
see them for awhile but you should know about them.
In addition to those exchange instructions there are a few others, EX DE,HL will swap DE with HL.
You'll see its uses later. The other instructions you need not know about for now.
Before we actually move on to assembler proper you should also know about machine language.
Assembler is basically one step away from machine language. The Z80 gets instructions from the
memory as numbers. Assembler is the english representation of these numbers. Machine language or
machine code is the numbers represented by the assembler. So to clarify when we write an instruction
LD A,0 the Z80 reads 3E 00. 3E is the opcode or machine code and 00 is the operand, or the value that
tells LD A,number what number to load. For the most part we don't need to concern ourselves with
these numbers but for advanced code we can use the knowledge of these opcodes to manipulate the
memory and actually alter the operation of a program by altering the opcodes stored !
Now for those of you wondering what memory is exactly it's best thought of as a huge storage area. It
stores opcodes and data side by side. The Z80 doesn't understand the difference so you need to look
after it and make sure you don't try to execute graphic data or display program code ! The Z80 uses a
16 bit register called PC, or program counter, to keep track of where it's getting instructions from. As
16 bit numbers can represent 65536 different numbers the Z80 can access 65536 different memory
locations to execute code. Each memory location stores an 8 bit number or byte, giving 65536 bytes of
memory or 64 kilobytes (a kilobyte being 1024 bytes) or 64 kb. You'll see more about PC later but for
now all you need to understand is that memory stores all the information the Z80 can use and it's
where we place instructions and data so we can make a computer useful !
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
6.4.3.
145
Now we are actually getting somewhere. Addition and subtraction are the most basic mathematical
tools available to the Z80 and you'll probably use them a lot.
Addition in binary works the same way as in decimal. We add the ones, twos, fours etc... together and
write down the result for each column, carrying to the next if it's too large. For example:
00000110
00000011+
00001001
0 00001100
Result
Carry
The carry is treated as a third number to add. If the result of the addition of one column of bits is too
large to fit into one column (i.e. if both bits are 1) then we place a 1 in the carry in the next column and
include that in the next addition. The carry usually starts with a zero in the first (rightmost) column.
Now what if we add up two values with a result greater than 255 ?
11111111
11111111+
11111110
1 11111110
Result
Carry
Or 255+255 = 254 ?!? No, in fact we use the F register to store the extra carry in one of its bits,
strangely enough called the CARRY bit, or flag. The CARRY bit in essence represents 256, making
the result of the addition 510. There's more on the carry flag later.
Now, when we do subtraction we do things in a slightly different way. The way negative numbers are
represented is though a system called 'twos complement'. The reason it is called a complement is that
we represent negative numbers by inverting each bit of a positive number. It's twos complement
because we then add one to this inversion (ones complement). Why twos complement ? Well, it's quite
simple really.
Inverting all the bits to form ones complement seems a reasonable way to represent negative numbers,
if we have 00001011, or 11, -11 is simply 11110100. Obviously this means numbers above 127 will be
negative (01111111 is 127, thus -127 is 10000000, or 128 in positive representations). However look
at zero. If we invert the bits in zero we get 11111111 for -0 ! As there is no positive or negative sense
for zero clearly we have a problem here. We get around this in twos complement by adding 1.
11111111 + 1 = 0 plus a carry out - which we ignore. 00001011 will now be 11110100 + 1, or
11110101. We now have a range from -128, 10000000, to +127 01111111. The leftmost (or most
significant bit) thus determines whether or not the number is negative or positive.
Twos complement also makes subtraction easy - as adding two numbers represented in twos
complement together will always give the right result. For example, 11111111 + 00000001 (-1 + 1),
which we've already seen equals zero as expected. In ones complement we'd have 11111110 +
00000001 - which is 11111111 and still right as we have two zeros. If we went on to add 1 twos
complement would give us the correct answer but ones complement would not. - it would remain zero
- positive zero ! The Z80 cannot know whether or not a number is positive or signed in this system and
handle the two zeros correctly for subsequent instructions.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
146
Hence due to the fact ones complement has two zeros and would make the Z80 work harder we use
twos complement to perform subtraction - always treating both numbers as twos complement.
Here we can do 100 - 10 by adding 100 and 10 in twos complement.
01100100
11110110
01011010
1 11001000
100
+ -10
Result 90
Carry
What about something like 255 - 128 ? -128 doesn't have a positive representation in twos
complement. Well the Z80 doesn't make the distinction between twos complement and unsigned
numbers so what we're actually doing is -1 + 128 which is still 127. So when adding 255 + 128 this is
also -1 + 128 and again gives us 127. So 128 is treated as both positive and negative at the same time it's the context with which you use it that gives it a sign.
In essence don't worry about the way the Z80 actually performs the operation - (you won't get the carry
working as it does here with subtraction for example) - it'll always give the correct answer when
subtracting or adding. What you as a programmer need to worry about is whether or not you treat the
number as signed or unsigned.
There are four flags which will help you working with addition and subtraction operations:
The carry flag you have met. It will be set if an addition has a result greater than 255 or a subtraction
has a result less than 0.
The sign flag will be set if an operation on a register leaves a negative result (i.e. bit 7 is set).
The parity/overflow flag - which has two uses; the parity part we'll see later. In dealing with addition
and subtraction an overflow occurs if an operation causes a result larger than can be represented in
twos complement, i.e. something less than -128 or more than 127. So 127 + 1 or -128 - 1 would both
cause overflows.
Finally there is the zero flag which is set if an operation results in a zero result - no surprises there.
Along with carry flag these flags are helpful in dealing with the results of operations as will be seen
later.
The instructions for carrying out these operations are ADD and SUB, no prizes for guessing what they
do. For example:
LD A,23
LD B,100
LD C,53
ADD A,B
SUB C
Would leave A with 70, sign unset, carry.
ADD A, can work with any of the normal registers (excluding F of course) or an 8 bit number, so
ADD A,D or ADD A,65 are fine. ADD A,HL or ADD A,1000 are invalid.
SUB works in pretty much the same way, with any of the normal registers or an 8 bit number but not
with pairs or numbers larger than 255.
However, ADD can also work with register pairs. There are three ADD HL, instructions that work
with BC, DE or HL. SUB cannot do this however, it's always A take away another number and hence
the reason why A is not mentioned in the SUB C operation in the above example. Note that when
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
147
adding register pairs if carry is set it will represent 65536 (use your understanding of binary to figure
out why).
As seen above these operations can often produce a result that leads to carry being set. In this case
there are two further instructions that take heed of this, ADC and SBC, or add with carry and subtract
with carry.
ADC will treat the carry as 1, hence if carry is set ADC A,0 will actually add 1, not 0. SBC works
again in basically the same way, treating carry as 1. So SBC A,0 with carry set will subtract 1. Notice
that SBC is written with A, like ADD and ADC.
This is because SBC has some 16 bit subtraction instructions: SBC HL, and any valid register pair.
Remember EX DE,HL ? Well say instead of HL-DE you want to do DE-HL. Using EX DE,HL SBC
HL,DE EX DE,HL will achieve this. Very useful.
There's one final subtraction instruction you should know about, NEG. NEG is short for negate and
performs 0-A. In effect it will convert twos complement number from positive to negative. For
example if A is 1 NEG will be FF, or -1. If A is FF NEG will be 1 or +1. Remember however that
NEG 128 will be.
There are two final instructions for addition and subtraction which are very useful indeed. They are
INC and DEC and stand for increment and decrement. These basically add 1 or take away 1. You'll
find yourself using them all the time as they are much more convenient than the above instructions.
They work on any valid register pair or single register. Both instructions completely ignore the carry
flag and won't affect it at all. When you get to 255 or 65535 and increment you get zero, if you're at
zero and decrement you get 255 or 65535. Carry plays no part at all.
6.4.4.
Bit Manipulation
Beyond addition and subtraction there are numerous other ways in which you can affect registers.
They are called bitwise instruction because they work at the level of bits.
AND is short for, erm, and and works by comparing each bit and setting the result bit to 1 if they are
both 1. For example:
11000011 AND 10011001 = 10000001
OR is short for, well or, and works in a similar way to AND but will set the result but to 1 if either bit
being compared is 1. For example:
11000011 OR 10011001 = 11011011
XOR is short for exclusive or and works a bit like OR and a bit like AND. It will set the result bit to 1
if either bit being compared is 1 but *NOT* if both bits are 1. For example:
11000011 XOR 10011001 = 01011010
AND, OR and XOR all work on A and either a number or a single register, XOR B or AND 45 for
example. Note that XOR A will set A to 0 and is a very useful optimization (try to figure out why).
CPL is short for complement and basically inverts each bit, so a 1 is 0 and a 0 is 1. For example:
CPL 10010010 = 01101101
CPL only works on A and hence takes no operand. XOR FF is equivalent to CPL, can you see why ?
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
The next set of instructions all work by shifting and rotating bits rather than comparing them.
148
The rotation group works by moving all the bits either left or right and then moving the leftmost or
rightmost bit to the beginning or to the carry and the carry or the rightmost or leftmost bit to the end.
So starting from:
Register
10000001
C
0
00000010
01000000
00000011
11000000
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
6.4.5.
149
What is program flow ? Essentially it refers to the way we navigate a program's instructions. So far
you've only see things move linearly, that is to say when you execute one instruction you move onto
the next in memory straight after it and any operands. As you've heard PC keeps track of where code is
being fetched from the memory. For every instruction and operand fetched from memory PC is
incremented by one. However why should PC always being moving forward ? If we change it
completely we could move to an entirely different part of memory to execute instructions. Why we
would want to do this and how we do this are covered here. Firstly why. Well we've been talking a lot
about flags but so far only carry has been of any use. However say you want to execute one bit of code
depending on whether or not A-B is zero and another if it isn't it might look like this:
SUB B
JP Z,somewhere
JP NZ,elsewhere
JP is short for jump. It basically reads two bytes of information and sets PC to them. You could think
of it as LD PC,xxxxh. JP Z is a conditional jump, and this is where flags start to make more sense. JP
Z will only jump is the zero flag is set. That is to say IF Z=1 LD PC,xxxxh. JP NZ is another
conditional jump but will only jump if the zero flag isn't set. Can you see now why the above program
does what it's supposed to ? Conditions form the backbone of most programs - you'll find it next to
impossible to make useful programs without them. The conditions we can use with JP are:
Z, jump if the zero flag is set.
NZ, jump if the zero flag is reset.
C, jump if the carry flag is set.
NC, jump if the carry flag is reset.
PO, jump if parity odd or there's no overflow.
PE, jump if parity even or there's an overflow.
P, jump if positive.
M, jump if negative.
Let's look at PO, PE and P and M a bit more closely. As you already know 00 to 7F can represent
positive numbers and 80 to FF can represent negative numbers. P and M work with this convention as
you might expect - using the sign flag - depending on whether the result of an operation if positive or
negative using this convention. PO and PE have two uses. As outlined with the shift and rotate
instructions they stand for parity even and parity odd. However the flag is called the parity/overflow
flag and it also detects something called an overflow. What is an overflow ? Well as stated in chapter
6.4.3 if the result of an operation in two's complement produces a result that's signed incorrectly then
there's an overflow. For example 127+127 is 254, but in twos complement 254 is -2. Two positive
numbers added together don't form a negative so there's an overflow.
Now along side JP is the CALL instruction that works in a very similar way. The CALL instruction
also takes the conditions outlined above but it will first store a copy of the current PC value in a special
place called the stack. Why does it do this and what is the stack ?
Well the stack is a section of memory where registers can be stored temporarily. Think of it like a bit
spike where you can shove bits of paper on and take bits of paper off but only ever work with the top
of the spike. The Z80 uses a 16 bit register called SP, or the stack pointer, to point to the stack. Two
instructions are then used to manipulate the stack. They are PUSH and POP.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
150
PUSH does what you might expect, it PUSHes a register pair onto the stack. That's BC, DE, HL and
AF. AF ? Yes, in this case AF is treated as a register pair. Only pairs may be used with the stack. Once
pushed onto the stack the stack pointer is decremented twice to point to the next bit of memory where
the next item will be pushed on. It decrements SP as the stack works backwards, starting high and
getting lower with the more items on the stack. In essence the spike is stuck to the ceiling !
POP does the opposite, and POPs a register pair off the stack and increments SP twice. Note that it
doesn't have to be the same register pair at all, which can be useful for swapping register values around
in pairs.
So our CALL instruction is effectively PUSH PC. So what's POP PC ?
RET is. RET is POP PC essentially. It can also use the same conditions as CALL and JP. So using
CALL and RET you can CALL a subroutine and then use RET at the end of it to get back to where
you were. Trust me, this is incredibly useful. I should also note at this point that you can LD SP,HL,
ADD HL,SP, ADC HL,SP, SBC HL,SP, INC SP and DEC SP. There are other instructions with SP but
I'll wait another time to detail all the instructions and their various iterations.
Finally there is the JR instruction. JR is short for jump relative as doesn't LD PC,xxxxh, no, it's more
of a ADD +/-xxh,PC. That is to say using two's complement PC is moved up to 127 bytes forward or
128 bytes back. The advantage of JR is that it's one byte shorter than JP. The disadvantage is that only
Z, NZ ,C ,NC can be used as conditions.
Now on a different note is the CP instruction, compare. It works basically by doing a subtraction
without subtracting anything. So CP B is A-B but it doesn't affect A. So what's the use of it ? Well
what it will do is set the flags according to the result of A-B. So if A-B is zero the zero flag is set, if B
is greater than A then carry is set and so on. CP can be used with any single register or a number.
6.4.6.
Memory Manipulation
The final part of our introduction to Z80 deals with the memory. We've already been manipulating the
memory using POP and PUSH and CALL and RET, but this section covers the major tools.
Firstly our old friend LD. We use brackets to signify that instead of being a number or register we
actually mean the contents of the memory at that address. For example LD A,(ABCD) loads A with
the memory at ABCD, not with ABCD itself (it wouldn't fit anyway would it ?). LD A,(HL) will load
A with the contents at memory address HL, not with HL itself. We can also load memory with
registers, LD (HL),A and LD (ABCD),A for example. We can also load a memory address with HL, a
two byte number, or HL with a memory address of two bytes, a bit like using a stack at HL.
There are also a set of instructions called the block shift instructions because they are designed to
move chunks of memory around and block search because they are designed to search through chunks
of memory.
The block shift instructions start with LD, like load. Then they take either I or D, standing for
increment and decrement, and then a R for repeat. So we have LDI, LDD, LDIR and LDDR. How do
they work ?
Well each instruction uses BC, DE and HL. BC is a counter, DE is the target, HL is the source. Each
command works in a similar way, they'll load the memory at DE with the memory at HL (hence target
and source).
LDD will then decrement BC, DE and HL. It will then set the PV flag to zero, or parity odd, if BC is
zero. It leaves the other flags unaffected though. LDDR works in much the same way but will continue
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
151
working until BC is zero. LDI and LDIR are basically the same. However DE and HL are incremented
instead of decremented.
Here's an example of block shift:
LD DE,0000h
LD HL,4000h
LD BC,0100h
LDIR
Can you see how this works ? Basically 100h bytes of data starting at 4000h are copied to 0000h
through to 0100h. Block shift is useful in a text editor for example. You might want to delete a
character and then shift everything else down in memory. Block shift will do that quickly and easily.
You can think of it as a copy instruction.
Now block search is basically a CP with, I or D and R tacked onto the end. It works by comparing A
with the memory at HL, then setting PV if the result is zero, leaving the other flags alone. CPI
increments HL, CPD decrements HL and the both decrement BC. CPIR and CPDR repeat until BC is
zero (and the zero flag is set) or PV is set. So BC is again a counter, HL is the source and A is the
testing number.
So say you want to find the first occurrence of 124 in the valid memory space:
LD HL,0000h
LD BC,0000h
LD A,124
CPIR
Note if you used CPDR it would find the last occurrence of 124 in the valid memory space. Can you
figure out why ?
6.5.
Le TP lui-mme
6.5.1.
Lancement de Gens
(LOAD)
(")
(deuxime ")
(Passage en mode tendu)
(CODE)
(Attention pas par le clavier numrique qui n'est pas reconnu)
25/03/2005
1re Edition
Tome TP
152
Mthode 1
La premire mthode est la plus simple mais la moins pratique et celle qui consomme le plus de
mmoire. Elle consiste faire appel chaque fois au sous programme qui se trouve l'adresse #10 (ou
16). On le fera avec l'ordre RST qui ne prend qu'un octet au lieu de trois.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
153
6.5.2.1.2.
Mthode 2
Comme on remarque, la mthode 1 est fastidieuse. On peut alors l'amliorer un peu. On va mettre
chaque lettre du message la suite et on terminera par le chiffre 0 (zro). Il suffit alors de prendre
chaque caractre un par un de le tester, de s'arrter si il est gal zro sinon de l'afficher. Soit:
Avouez que c'est quand mme plus facile programmer ... et pourtant il y a encore plus simple.
6.5.2.1.3.
Mthode 3
Il suffit de faire appel au systme "PRINT chaine" qui justement se charge d'afficher une chane de
caractres. Il suffit de mettre l'adresse de la chane afficher dans DE et la longueur dans BC et
d'appeler l'adresse #203C ... et c'est tout !
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
154
6.5.2.2.
Bordure
6.5.2.2.1.
Devoir
Aprs avoir lu les informations techniques, le but est de faire un programme qui affiche plusieurs
couleurs sur le bord de l'cran. Vous pouvez faire deux versions, une o l'image n'est pas stabilise et
l'autre, en jouant sur les dlais, stabilise.
6.5.2.2.2.
Informations techniques
0 Clavier et entre cassette (en lecture) et haut-parleur, sortie cassette, border de l'cran (en sortie)
1 Priphrique optionnel
2 Imprimante
3 Priphrique optionnel
4 Priphrique optionnel
5 Non utilis
6 Non utilis
7 Non utilis
(Les bit nots "priphrique optionnel" sont utiliss par des extensions Sinclair. Il s'agit d'une interface
RS232, le micro-drive, et d'un priphrique rseau. Nous n'avons pas les informations permettant de
prciser quel bit correspond quel priphrique.)
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
155
Attention de n'crire que sur des ports accessibles en criture, ou de ne lire que sur des ports
accessibles en lecture, sinon il est possible que vous endommagiez irrmdiablement votre ordinateur !
A noter, les bits 5, 6 et 7 ne sont pas utiliss, cela veut dire que sur un Spectrum sans extension
matrielle la valeur de ces bits n'est pas prise en compte. Il est prfrable cependant de les garder 1,
car votre programme pourrait avoir des effets imprvisibles sur un Spectrum customis !
Et que se passe-t'il si on fait un out sur un port b11111010 ? Vous vous adresserez plusieurs
priphriques la fois. En l'occurrence, l'imprimante et la sortie cassette. Cette bidouille pourrait
tre utile dans certains cas bien particuliers, mais encore une fois il vaut mieux viter ! Et accder de
cette manire des ports en lecture pourrait se rvler fatal votre machine.
Quand le bit 0 du poids faible est zro...
En criture c'est trs simple: l'octet que vous envoyez sera interprt comme ceci:
Bit Signification
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
156
TP 7 EAU FORTE
Le but de ce TP est de voir un traitement de surface. Pour cela nous allons raliser une uvre d'art sous
la forme d'une eau forte.
On appelait avant l'acide nitrique de l'eau forte: c'est ce qui a donn le nom de eau forte dans
l'impression.
Les informations en italique m'ont t donnes oralement par le service Chalcographie de la
Bibliothque Royale de Bruxelles (place du muse,1 - 1000 Bruxelles 02/519.56.31).
!
!
!
!
!
On prend une plaque de cuivre (ou bien de zinc) et on met dessus un film de paraffine (ou de
vernis graver (liquide)).
Puis on prend un stylet fin et on creuse le dessin dans la paraffine (attention on creuse les
parties o il ne doit pas y avoir de dessin).
On prend la plaque et on la trempe dans de l'acide nitrique concentr (l'acide nitrique doit
avoir une concentration entre 10 et 25 Baumd): il y aura raction l o il n'y a plus de
paraffine. (On laisse 30 min si l'acide est faible et 5 min si l'acide est fort. C'est ce qu'on
appelle le temps de morsure.).(Plus l'acide est dilu, meilleur sera la gravure).
On rchauffe ensuite la plaque pour enlever la paraffine.
Puis on frotte du cirage noir (ou de l'encre "taille douce" (marque Charbonnel ou LefrancBourgeois) ou on la prpare en mlangeant des pigments avec de l'huile fine) sur la plaque
(qui va dans les sillons), puis on presse sur un papier buvard (ou du papier Franais Archesblanc-250 g ou Rives-250 g ou bien du papier Allemand Zierhall-demi encoll-250-230 g):
on obtient une uvre d'art que l'on nomme au forte.
Remarques:
Au lieu d'utiliser de la paraffine nous utiliserons du papier collant
L'attaque doit durer au moins 5 minutes, car le cuivre doit tre attaqu sur au moins 0,5 mm
Ce principe est utilis pour graver les circuits imprims en lectronique, sauf qu'on utilise du
perchlorure de fer au lieu d'acide nitrique.
Relation entre les Baum et la densit: Be=145145 . Calculez la dilution avec la table au 0.5.1 page 16.
d
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
157
TP 8 DETERMINATION D'ENTHALPIES
8.1.
La mthode dcrite ci-aprs permet la dtermination d'un Hneutralisation mais aussi le dosage d'un acide
(base) par une mesure de variation de temprature; dans ce cas on l'appelle titrage thermomtrique.
8.1.1.
Dispositif de mesure
burette NaOH 2 M
thermomtre au 1/10
tenu la main
gobelet (fragile) en
polystyrne expans
(isolant thermique)
jouant le rle de
calorimtre (scher
avec du papier, pas
1'actone !)
8.1.2.
!
!
!
!
!
!
!
50 ml d'acide
agitateur magntique
Mode opratoire
Refaire la mme exprience avec l'acide actique. Rincer, scher (au papier, pas l'actone) le
gobelet entre les 2 expriences.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
158
Superposer la courbe de l'acide actique celle de HCl, mais dans une autre couleur. Dduire les deux
Hneutralisation A quoi sont-ils dus ? Pourquoi diffrent-ils ?
8.2.
Le mlange H2SO4/H2O est rput dangereux cause de son fort dgagement de chaleur qui peut aller
jusqu faire bouillir leau au niveau du contact eau-acide et ainsi entraner des projections dacide. Ce
mlange est un des rares cas o un Hml peut tre mesur facilement vu son intensit. Lexistence
dun Hml lors du mlange de deux liquides est li des changements dinteractions molculaires par
rapport celles existant dans les deux liquides purs. Dans le cas du mlange H2SO4/H2O le
dgagement de chaleur est d principalement la formation dinteractions de type ponts hydrognes
entre les molcules H2SO4 et H2O.
8.2.1.
!
!
!
!
!
!
!
!
!
!
Mode opratoire
Calculs: Utilisez la formule du calorimtre pour calculer Hml en kJ par mole de H2SO4.
8.3.
Nous traiterons le cas du ttraborate de sodium dcahydrat dont la raction de dissociation ionique
est:
CHIMIE INDUSTRIELLE
K S = .m
Ks =
25/03/2005
1re Edition
Tome TP
159
(Rappel: la molalit ou concentration molale est le nombre de mole de solut par kg de solvant:
m = mol.kg -1 (mol.kg -1 =
g.kg
M
-1
-1
8.3.1.
!
!
!
!
!
!
!
!
!
!
!
Mode opratoire
Munissez-vous de deux erlenmeyers de 100 rincs, non secs ; numrotez-les (1) et (2)
Etude 20 C: dans lerlenmeyer (1) introduisez 3 g de borax (balance technique) + 50 ml
(prouvette gradue) deau distille
Etude 30 C: dans lerlenmeyer (2) introduisez 5 g de borax (balance technique.) + 50 ml
(prouvette gradue) deau distille ; plongez cet erlenmeyer dans un bain thermostatique
30 C, lerlenmeyer sera maintenu par une pince et un statif
Les deux erlenmeyers doivent tre agits rgulirement pendant 10 min (on observera un
excs de cristaux non dissous dans les deux cas, on sera donc en prsence de deux solutions
satures)
Pendant ce temps, tarer deux erlenmeyers 100 propres et secs munis de parafilms et
numrots (1') et (2') (balance technique)
Lorsque la phase dagitation des deux premiers erlenmeyers (borax) est termine, laissez
dcanter les cristaux 30 60 secondes en maintenant les erlenmeyers dans leurs milieux
thermiques dorigine
Transfrez depuis lerlenmeyer (1) (20 C) 10 ml de surnageant vers lerlenmeyer sec (1')
cela se fait laide dune pipette de 10 ml sans aspirer de cristaux ! Mesurez la
temprature dans le flacon dorigine au moment du prlvement
Transfrez depuis lerlenmeyer (2) (30 C) 10 ml de surnageant vers lerlenmeyer sec (2')
ce prlvement se fait hors du bain thermostatique, mais il faut dans ce cas agir
rapidement. Mesurez la temprature dans le flacon dorigine au moment du prlvement
Pesez (balance technique) les deux erlenmeyers ayant accueilli les deux prlvements et
munis de leurs parafilms
Titrez chaque erlenmeyer par HCl 0,1 M titrisol + 4 gouttes mthylorange
Tracez le tableau suivant
T
Vquivalence
m
(1)
(2)
Calculez les molalits des deux solutions satures ainsi que le Hdiss (kJ/mol) du borax
laide de la formule
ln(m1 / m 2 )
H diss = 3R
1 1
T2 T1
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
160
TP 9 EXTRACTION DAROME
9.1.
9.1.1.
!
!
!
Extraction du limonne
Figure 2
!
!
!
!
!
!
Porter le mlange bullition douce, maintenir pendant une vingtaine de minutes puis
augmenter le chauffage pour que le mlange vapeur d'eau/huile distille. Ce mlange se
condense dans le rfrigrant et, dans l'erlen, on recueille de l'eau avec un mince film d'huile
flottant la surface.
Transvaser le contenu de 1'erlen dans une ampoule dcanter ; liminer la phase aqueuse.
L'huile, recueillie dans un petit erlen (25 ml) ou un tube essais large, est dbarrasse des
dernires traces d'eau par addition d'un petit fragment de sulfate de calcium ou de chlorure de
calcium anhydre.
Filtrer pour liminer le desschant.
Observer l'huile obtenue (couleur, odeur) et mesurer l'indice de rfraction
Tester la solubilit de l'huile dans plusieurs solvants organiques: 0,5 ml de solvant/3 gouttes
d'huile ajouter en observant s'il y a solubilit aprs l'addition de chacune.
Comparer les rsultats : noter s'il y a des diffrences et si elles peuvent provenir de l'agrume
utilis.
Rechercher des informations sur le limonne dans le Handbook et le Merck Index.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
9.1.2.
161
Les armes caractristiques des plantes sont dus des huiles volatiles ou essentielles qui, ds
l'antiquit, furent l'origine des parfums et saveurs. Souvent concentres dans les brindilles, les fleurs
et les graines, ces huiles sont soit des mlanges complexes d'hydrocarbures, d'alcools, de composs
carbonyls appartenant la famille des terpnes (graniol, limonne) soit des phnols ou des aldhydes
aromatiques (armes des condiments tels que le clou de girofle, la vanille et la cannelle)
Le but de ce TP est l'isolement par entranement la vapeur de l'huile essentielle du clou de girofle
dont l'odeur agrable est due principalement l'eugnol ou 4-allyl-2-mthoxyphnol. Ce compos est
utilis comme analgsique local doux en soins dentaires et surtout, dans le domaine culinaire, pour
apporter des saveurs.
OH
OCH3
H2C
H
C
CH2
MODE OPERATOIRE
! Fixer un ballon de 500 ml 3 tubulures dans un manteau chauffant ; placer une tte
entranement la vapeur dans l'une des tubulures, une ampoule brome dans la deuxime et
boucher la 3me (voir Figure 2)
! Peser 12 g de clou de girofle, les placer dans le ballon avec 100 ml d'eau distille ; introduire
100 ml dans l'ampoule et prvoir un erlen de 150 ml pour recueillir le distillat.
! Chauffer le contenu du ballon (robinet de l'ampoule ferm) jusqu' bullition et distiller
vitesse rgulire; ajouter de temps en temps de l'eau dans le ballon afin de maintenir le niveau
constant.
! Aprs avoir recueilli 100 ml de distillat, changer de rcipient collecteur : si des gouttes
huileuses s'coulent encore, il y a lieu de distiller au moins 20 ml d'eau supplmentaires.
! Placer le distillat dans une ampoule dcanter, rincer les erlens avec 5 ml de
dichloromthane que l'on ajoute ensuite au distillat. Agiter l'ampoule, laisser les 2 phases se
sparer et recueillir la couche organique dans un erlen de 50 ml, pes au pralable. Rincer la
couche aqueuse et l'ampoule dcanter avec 2 ml de dichloromthane; ajouter cette nouvelle
phase organique celle contenue dans 1'erlen.
! Si la sparation a t soigneusement effectue, il est inutile de scher ; toutefois, si des traces
d'eau subsistent, scher sur sulfate de sodium anhydre et filtrer sur coton. Recueillir le filtrat
dans un autre erlen pes.
! Concentrer et vaporer le dichloromthane l'aide du rotavapor-micro. Peser 1'erlen
contenant le rsidu d'eugnol et calculer le rendement de l'extraction en tenant compte de la
masse de clous de girofle utiliss.
! Lire l'indice de rfraction.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
9.2.
162
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
163
TP 10 VISCOSIMETRIE
10.1.
VISCOMETER
FALLING BALL TYPE
The Falling Ball Viscometer has been recognized as one of the most effective and accurate instruments for the determination of viscosity.
Now for the first time, a simplified type is available at low cost.
This new instrument utilizes a novel method of releasing the ball and has the following features:
The tube is made of high precision bore glass tubing with stabilizing beads.
Two high precision balls, one of glass and one of stain-less steel, are supplied with each instrument to extend the range.
The ball release device is made of PTFE and sealed with a VITON fluoroelastomer O-ring.
The remaining plastic parts are made from corrosion resistant acetal copolymer.
The ball is observed against a white background with red lines permanently fused into the glass.
Available in three sizes to cover a wide range of viscosity.
Tantalum ball may be purchased separately to double range.
VISCOMETERS, FALLING BALL
Size No.
1
2
3
Range in cp.
0.2 - 10
2 - 100
20 - 1000
Approx K
0.3
3.3
35
Cat.No.
GV-2100
GV-2200
GV-2300
Maximum cp. for each size may be doubled using Tantalum ball, see Spare Parts List.
Cat. No.
GV-2101
GV-2201
GV-2301
GV-2102
GV-2111
Adapter
Knob
Lock Nut
Cap
GV-2112
GV-2113
GV-2114
GV-2115
PTFE Screw
Large VITON O-ring
Large O-ring, pkg/6
Large PTFE O-ring
Large O-ring, pkg/6
GV-2116
GV-2117
GV-2117/6
GV-2117T
GV-2117T/6
GV-2118
GV-2118/6
Glass Ball
S.S. Ball
Tantalum Ball
GF-1332
GV-2119S
GF-1332-T
NOTE: The same diameter (1/4 in) ball is used in ail three sizes.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
164
ASSEMBLY-The viscometer is supplied with a glass ball and a stainless steel ball (type 316). A tantalum ball may
be ordered separately. The recommended ranges of viscosity for each size and ball are as follows:
Size No.
1
2
3
Range in cp.
S. S.
1 to 10
10 to 100
100 to 1000
Glass
0.2 to 2
2 to 20
20 to 200
Tantalum
2 to 20
20 to 200
200 to 2000
The proper ball is selected and the instrument is scrupulously cleaned and dried. The ball is added to the tube and the
parts are assembled as in the diagram. The position of the knob and locknut are adjusted so that the PTFE screw will
just prevent the ball from falling when the knob is turned to meet the adapter. Unscrewing the knob should allow the
ball to be released. This adjustment should be made with care so as not to over-compress the end of the PTFE screw
which holds the ball.
FILLING WITH LIQUID-The nut and the adapter are separated and the cap is removed from the screw. The ball
is also removed from the tube. Approximately 5 mL of the test liquid is required to fill the tube. The liquid should be
clear of particles and filtered if necessary. Particles in the liquid will interfere with the motion of the ball and reduce
the accuracy of measurement. The liquid is carefully pipetted into the tube until nearly full (approximately 1/4 in
from the top of the flange). The ball is now carefully added and allowed to drop into the tube. The adapter and screw
assembly in the release position is now carefully inserted into the tube and liquid allowed to enter the capillary vent.
The nut and adapter are tightened on the flange of the tube until secure. The cap is replaced on the screw.
TAKING A READING-The instrument full of liquid is inverted until the ball enters the PTFE screw and the knob
turned until the closed position is reached. The instrument is restored to its normal vertical position and is ready for
taking a reading. For the most accurate work, the viscometer tube should be immersed in a constant temperature bath
with a transparent window to observe the fiduciary lines. At elevated temperatures the cap should be
removed to permit excess liquid to pass through the capillary vent. Air and gas bubbles should also be
vented after equilibrium is reached. Then the cap is replaced.
The ball is released by turning the knob to raise the screw. The time of descent between the two sets of
fiduciary lines is measured with a stop-watch. Repeat measurements can be made by removing the
viscometer from the bath and inverting to return the ball to the screw and turning to the closed position.
With good technique measurements, should be reproducible from 0.2 to 1.0 % depending upon the time of
descent.
CALCULATING THE VISCOSITY-For a falling ball viscometer the viscosity is calculated by the
simple formula:
= K(f-)t
where,
t
K
=
=
The approximate K for size 1=0.3, size 2=3.3 and size 3=35. The viscometer constant is obtained by
measuring the time of descent for a standard liquid (e.g. a viscosity standard solution).
K=
( f - )t
For the most accurate work, the standard liquid should have physical properties as close to that of the
unknown liquid as possible.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
165
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
10.2.
166
Manipulation 1
VISCOSIMETRIE
10.2.1.
Dfinition
La viscosit d'un liquide est la proprit de ce liquide, rsultant de la rsistance qu'opposent ses
molcules une force tendant les dplacer par glissement. Au sein d'un liquide homogne, dont la
masse volumique est suppose constante, les dformations auxquelles ce corps peut tre soumis sont
des glissements ou des cisaillements auxquels il oppose une rsistance mesurable. Les liquides
visqueux sont ceux qui manifestent une rsistance F, fonction de la vitesse laquelle se produisent les
glissements imposs et qui s'annule avec elle.
Si, au sein d'un tel liquide, un lment de surface S glisse sur un plan de mme liquide distant de dx,
dv
.
avec une vitesse relative dv, le gradient de vitesse G est conventionnellement gal
dx
F
dv
La tension tangentielle = , ou contrainte de cisaillement, est fonction de
.
S
dx
Si le gradient de vitesse est assez faible pour que la relation entre ces deux grandeurs soit linaire, elle
s'exprime alors par l'quation de Newton:
=
dv
dx
est par dfinition le coefficient de viscosit absolue dynamique ou "viscosit absolue" et est
indpendant du gradient de vitesse.
Les liquides qui suivent cette quation sont appels liquides "newtonien".
Par contre, pour les suspensions collodales, les mulsions, les solutions de composs masse
molculaire leve, la viscosit dpend notamment du prtraitement thermique ou mcanique et il n'y a
pas de relation linaire entre la contrainte et le gradient de vitesse. Ces liquides sont appels liquides
non newtoniens.
10.2.2.
10.2.2.1.
F dx
d'quation de dimension: M.L-1.T-1
S dv
La viscosit absolue s'exprime dans un systme cohrent d'units. Dans le cas du systme C.G.S. cette
unit est LE POISE (Po) dyne-seconde par cm2.
C'est la viscosit absolue dynamique d'un liquide opposant une rsistance d'une dyne au glissement
dans son plan de surface plane d'un centimtre carr, avec un gradient de vitesse d'un centimtre par
seconde et par centimtre.
Un sous-multiple couramment employ de cette unit est le centipoise (cPc).
En systme M.K.S.A. cette unit est le POISEUILLE (gale 10 poises).
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
10.2.2.2.
167
est le rapport du coefficient de viscosit absolue dynamique de ce liquide sa masse volumique ; il est
gnralement dsign par le symbole:
=
de dimension L2.T-1
Le STOKES (St) est l'unit de viscosit absolue "cinmatique". C'est la viscosit absolue cinmatique
d'un liquide dont la masse volumique est d'un gramme par centimtre cube et dont la viscosit absolue
dynamique est gale a un poise, tant la masse volumique du liquide, le coefficient est exprime en
stokes.
Un sous-multiple couramment employ de cette unit est le ''centistokes" (cSt).
10.2.3.
La viscosit spcifique est le rapport de la diffrence entre les viscosits de la solution et du solvant
la viscosit du solvant:
sp =
10.2.4.
- 0
= rel - 1
0
Loi de Einstein
5 v
-1 =
0
2V
v: volume occup par toutes les sphres,
V: volume total de solution.
Si vi est le volume d'une particule et C la concentration de la solution en mole/litre
Pour V = 1 litre
Nb de molcules par litre C x N
avec N nombre d'Avogadro = 6,03 1023
v = vi x N x C
4
vi = r 3
r: rayon de la molcule
3
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
5 4
= 1 + x r 3 x 6,03.10 23 x C
0
2 3
= 1 + 6,03 10 24 r 3 C
0
10.2.5.
168
Loi de Poiseuille
Dans le cas des liquides newtoniens, leur coulement travers un tube capillaire obit la loi de
Poiseuille. Le rgime d'coulement d'un liquide dans un canal cylindrique de longueur L et de rayon R
varie avec la vitesse d'coulement v et pour des valeurs suffisamment faibles les vitesses des molcules
sont parallles entre elles ; l'coulement se fait par couches concentriques, on obtient le rgime
laminaire ou rgime de Poiseuille.
Le volume total coul durant le temps t est:
v=
r4 t
(p1 - p 2 )
8L
p1 - p2 diffrence de pression aux deux extrmits du tube. Cette diffrence de pression est directement
proportionnelle la densit d du liquide.
L'application de cette formule suppose que le liquide arrive l'orifice de sortie du tube avec une
nergie cintique ngligeable. Si non, il est ncessaire d'effectuer une correction d'nergie cintique en
ajoutant au deuxime membre de l'quation de Poiseuille, le terme:
10.2.6.
V
8Lt
Thorie de Eyring
Eyring suppose que les liquides contiennent des rgions o les molcules peuvent se mouvoir aprs
activation. Les molcules se dplacent en couches parallles en passant par une barrire de potentiel
chaque fois qu'elles atteignent une nouvelle position d'quilibre.
Si Evisco est l'nergie libre standard d'activation par mole, on a:
= A e E visco /RT soit Ln =
E visco
+ Ln A (A = constante)
RT
= 0 e E/RT
On trace Ln = f
()
1
T
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
169
E/R
0
1/T
Remarque
La formule de Eyring n'est pas la seule propose mais c'est la plus simple d'emploi.
On suppose que l'coulement d'un liquide est le rsultat du mouvement des molcules dans les sites
vacants dans le liquide. La premire tape de ce processus devant tre la formation des sites
disponibles. Evidemment, la rupture des liaisons entre des molcules avoisinantes ncessaire dans la
formation d'un de ces sites, doit faire intervenir les mmes forces que celles qui interviennent dans le
processus de vaporisation.
Il est intressant de comparer l'nergie d'activation de viscosit et la variation d'nergie interne de
vaporisation (tude faite par Ewell et Eyring). Kincaid en a tir une loi empirique approche:
Evisco = Uvap / 2,45
10.2.7.
MANIPULATION
On tudiera:
1. La variation de viscosit absolue dynamique en fonction de la temprature avec un viscosimtre
chute de bille de HOPPLER, ce qui conduira au calcul de l'nergie d'activation Evisco et d'une
valeur approche de la variation d'nergie interne lors de la vaporisation.
2. La variation de viscosit absolue dynamique en fonction de la concentration avec un viscosimtre
coulement (application de la loi de EINSTEIN).
10.2.8.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
170
Tome TP
Dr. Gilles OLIVE
Avec s et l: masses volumiques de la sphre et du liquide en g/cm3.
4
Poids de la sphre: r 3 s g
3
4
Pousse d'Archimde: r 3 l g
3
4
W = 6 r v = r 3 g ( s - l )
3
2 2
= r ( s - l ) g/v
9
Or v =
L
t
2 2
r g/L
9
: centipoises
t : en secondes
K et l seront dtermins partir des abaques. On admet que la variation de s en fonction de la
temprature est ngligeable devant les erreurs de mesure. On prendra (s = 2,388 g/cm3) (Voir valeurs
du constructeur)
10.2.8.1.
Rglage de l'appareil
1
, t, eau, s - eau, K, , log .
T
Tracer log = f
CHIMIE INDUSTRIELLE
( ) et calculer E
1
T
25/03/2005
visco
et Uvap.
1re Edition
Tome TP
10.2.9.
171
Viscosimtre coulement
On mesure le temps mis par un volume de liquide contenu dans le rservoir du viscosimtre pour
s'couler par un capillaire calibr sous une charge de liquide exactement reproductible et une
temprature exactement contrle.
L'quation de Poiseuille peut s'crire:
cPo = A d t
A: constante de l'appareil
t: temps d'coulement du volume V dans le capillaire,
d: densit du liquide la temprature de l'appareil.
La densit des solutions tudies est donne en fonction de la concentration (voir fiche technique).
10.2.9.1.
Introduire dans le viscosimtre une quantit convenable de la solution au moyen d'une pipette jusqu'au
repre de remplissage.
Faire passer la solution par le capillaire du viscosimtre, par soufflage d'air sec au moyen d'une poire
de caoutchouc. Arrter l'opration lorsque le niveau du liquide est juste au-dessus du repre suprieur.
Immerger le viscosimtre dans le bain 25 C 0,1 C.
Fixer le viscosimtre de faon que, d'une part, le niveau du bain soit 20 mm au-dessus du repre de
graduation suprieur et que, d'autre part, l'axe du tube soit parfaitement vertical.
Aprs une attente de 15 minutes au moins laisser le liquide s'couler en mesurant au moyen du
chronomtre le temps mis par le mnisque pour redescendre du repre suprieur au repre infrieur,
c'est le temps d'coulement de la solution.
10.2.9.2.
Rsultats
Prparer 500 ml d'une solution M/2 dans de l'eau dgaze et prparer partir de celle-ci les solutions
suivantes:
M/2 M/3 M/4 M/6 M/8
Mesurer la viscosit 25 C du solvant pur et de chacune des 5 solutions. Calculer la valeur du rapport
/0.
On remarquera que la constante A du viscosimtre n'intervient pas. On dressera le tableau de rsultats
suivant:
C, t,
t d
td
,
,
=
t 0 d 0 0 t 0 d 0
Porter
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
172
10.2.10.
La temprature intervenant grandement dans les mesures de viscosit, il importe que l'quilibre
thermique soit correctement tabli.
1. Il n'y a qu'un seul appareil HOPPLER au laboratoire, chaque tudiant en disposera 2 heures. On le
trouvera rempli d'eau et prt fonctionner. Surtout ne pas l'ouvrir. Le rglage de la temprature se
fait par le thermostat plac ct. Si l'on ne sait pas rgler le thermostat demander des
explications. La lecture de la temprature se fait sur le thermomtre plac dans la jacquette et
proche du tube d'exprience.
2. En arrivant, on mettra le viscosimtre coulement, rempli de solvant (ici eau dgaze) stabiliser
en temprature.
3. Les solutions de glycrine dans l'eau dgaze sont prpares de la faon suivante:
Solution M/2: La quantit ncessaire de glycrine (ou glycrol) pure est pese l'aide de la balance
Mettler K7, et tendue avec de l'eau dgaze 500 ml. Bien agiter au fur et mesure que l'on
ajoute l'eau car l'homognit est difficile atteindre.
Solution M/3: A partir de la solution M/2. On dispose d'une fiole de 150 ml. Les autres solutions se
prparent dans des fioles de 100 ml.
Ds que la mesure t faite sur une solution en mettre une autre stabiliser.
10.2.11.
Pour chaque mesure, faire 3 essais de temps et faire le moyenne (les indiquer au dos de la feuille).
Viscosimtre chute de bille de Hoppler
Il n'y a aucune modification sur cette partie du laboratoire. Pour la densit de l'eau en fonction de la
temprature, on se reportera au 5.1 du Tome 2 de chimie industrielle (Tome sur l'eau).
Viscosimtre coulement
Comme il n'y a pas de viscosimtre coulement, on utilisera le viscosimtre d'HOPPLER. De plus,
au lieu de travailler sur la glycrine on travaille sur le saccharose de masse molaire 342 g.mol-1. On ne
fera pas les solutions M/2 et M/3. On partira directement par 250 ml d'une solution M/4, dont il faudra
calculer la quantit peser. En plus des solutions M/6 et M/8, on prparera des solutions M/12 et M/16
(par dilution bien sur).
Pour calculer les densits, ou du moins le rapport d/d0, on utilisera la relation suivante:
d
= 1 + 0,1306 C avec C = concentration en mol.l-1.
d0
10.3.
25/03/2005
1re Edition
Tome TP
173
Mesures
Vous devrez mesurer huile.
Faire au moins 4 mesures cohrentes du temps de chute (se placer assez loin du point de dpart pour
tre sr d'avoir une vitesse constante). Prendre la valeur moyenne.
En dduire le coefficient de viscosit dynamique (en mPl).
Travailler pour une gamme de temprature allant de la temprature la plus basse possible une
temprature d'au moins 80 C.
Tracer en fonction de T (en K).
Est-ce que la viscosit dynamique de lhuile de cette huile vrifie la loi de Guzman Andrade qui dit
que = A . exp(B/T) avec T en Kelvin.
(Pour rappel selon http://www.educnet.education.fr/rnchimie/gen_chim/sommaire.htm: Quand le
coefficient de viscosit dynamique ne dpend que de la temprature et de la pression, le fluide est dit newtonien ou
linaire.)
10.4. Manipulation 3 - Etude de la variation de la viscosit dune huile lors dun chauffage
trop intense
D'aprs http://www.educnet.education.fr/rnchimie/default.htm
10.4.1.
Manipulation
! le viscosimtre 1 a t rempli dhuile non chauffe et le capillaire rinc avec cette huile
! aspirer lhuile non chauffe au-dessus de lindex suprieur du viscosimtre
! dclencher le chronomtre lorsque la surface de lhuile passe au niveau de lindex suprieur
! arrter le chronomtre lorsque la surface de lhuile passe au niveau de lindex infrieur : soit t1
le temps dcoulement
! le viscosimtre 2 est rempli avec la mme huile mais qui a subi un chauffage trs intense
pendant quelques minutes
! mesurer de mme le temps t2 de vidange.
! on vrifiera chaque mesure que la temprature est la mme.
10.4.2.
1. A laide des certificats dtalonnage, dterminer les viscosits des deux huiles sachant que leur
densit mesure au densimtre et inchange au cours du chauffage est d = 0,917 temprature
ambiante.
2. Comment a vari la viscosit aprs le chauffage ?
10.5. Manipulation 4 - Contrle de la polymrisation du styrne - Relation entre masse
molaire et viscosit: loi de Mark - Houwink
D'aprs http://www.educnet.education.fr/rnchimie/default.htm
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
Dr. Gilles OLIVE
174
Laddition de molcules de polymre un solvant augmente invariablement sa viscosit.
Pour relier cet accroissement de la viscosit aux proprits du solut, on fait intervenir un certain
nombre de grandeurs dpendant de la viscosit dynamique du solvant pur 0 et , celle de la solution.
On dfinit ainsi:
! la viscosit relative: R = / 0
! la viscosit spcifique: sp =( - 0 ) / 0 = R - 1
! la viscosit rduite: Red = sp / C o C est la concentration en solut
! la viscosit intrinsque: [ Red ] = lim Red
C0
La viscosit intrinsque reprsente la variation relative de la viscosit dune solution par unit de
concentration de polymre, dilution infinie. Elle sexprime gnralement en cm3.g-1
Elle correspond labsence de toute interaction molculaire de par lextrapolation dilution infinie.
Elle est directement lie la nature des molcules du solut (polymre)
Relation entre masse molaire et viscosit: loi de Mark - Houwink
Cest une loi empirique : [Red] = K . M
o K et sont des constantes caractristiques du couple polymre - solvant une temprature donne
et M, la masse molaire moyenne du polymre.
La connaissance de K et (Polymer Handbook) permet de dterminer la masse molaire M du
polymre avec une prcision denviron 20 %.
Extrait du Polymre Handbook: ( concentrations exprimes en g/cm3 )
Polymre
Solvant
Temprature C
K.1000
polystyrne
benzne
25
1.03
polystyrne
tolune
20
4.16
polystyrne
mthylthylbutne
25
3.9
polyisobutne
cyclohexane
30
6.6
polyisobutne
benzne
24
8.3
caoutchouc
tolune
25
5.3
0.74
0.79
0.58
0.70
0.50
0.67
Remarque: leffet du polymre sur la viscosit dpend de la forme des molcules de polymre ; dans
un bon solvant, on sattend ce que les chanes de polymres soient solvates, donc allonges. Dans
un mauvais solvant, elles ont tendance rester enroules ou replies.
Etude exprimentale au viscosimtre dOstwald:
CONSTITUTION ET PRINCIPE:
Le viscosimtre dOstwald est un viscosimtre capillaire: on mesure le temps que met un volume V de liquide compris
entre deux repres scouler dans le capillaire (= temps de vidange).
Ce temps de vidange est proportionnel la viscosit dynamique du liquide et inversement proportionnel la pression
motrice ici uniquement de pesanteur (pression de la colonne de liquide) donc la masse volumique du liquide: t = k / .
Les constructeurs dlivrent avec chaque tube, un certificat dtalonnage o intervient plutt K: = K * * t (voir le
certificat dtalonnage du tube utilis)
Si on compare le temps dcoulement dun volume de solvant pur celui dune solution de polymre, on obtient: R = /
o = K t / K o to = t / to car, si la solution est suffisamment dilue, = o.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
10.5.1.
!
!
!
!
!
!
!
!
175
1 mL qsp 25 mL
2 mL qsp 25 mL
4 mL qsp 25 mL
6 mL qsp 25mL
10 mL qsp 25 mL
S0 = tolune pur
So
S1
S2
S3
S4
S5
2. Tracer grce lordinateur la courbe Red = f(C), montrer que cest une droite.
3. Dterminer [Red].
4. A laide des valeurs donnes par le Polymer Handbook, en dduire la masse molaire moyenne du
polystyrne tudi.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
176
SOMMAIRE
TP 0 INFORMATIONS DIVERSES ............................................................................. 5
0.1.
0.2.
0.2.1.
Premier mlange1 .................................................................................................................................5
0.2.2.
Deuxime mlange2 .............................................................................................................................7
0.2.3.
Troisime mlange3 .............................................................................................................................8
0.2.4.
Proprits des tampons2 .....................................................................................................................10
0.3.
SOLUTION DE CALIBRATION (PH MTRE)1............................................................................................10
0.4.
0.4.1.
0.4.1.1.
Indicateurs de pH................................................................................................................................10
De Riedel-deHan2 ......................................................................................................................11
0.4.1.2.
De Merck3 ...................................................................................................................................12
0.4.2.
Indicateurs d'Oxydo-rduction3 .........................................................................................................14
0.5.
TABLE DENSIT-POURCENTAGE DE QUELQUES BASES ET ACIDES3 .....................................................15
0.5.1.
Acide nitrique .....................................................................................................................................16
0.5.2.
Acide sulfurique .................................................................................................................................17
0.5.3.
Acide phosphorique............................................................................................................................18
0.5.4.
Acide chlorhydrique ...........................................................................................................................18
0.5.5.
Ammoniaque ......................................................................................................................................19
0.5.6.
Lessive de soude.................................................................................................................................19
0.5.7.
Lessive de potasse ..............................................................................................................................20
0.5.8.
Concentrations usuelles de quelques acides et bases..........................................................................20
0.6.
INTERPRTATION DES RSULTATS PAR LE CALCUL STATISTIQUE .......................................................21
0.6.1.
0.6.2.
0.6.3.
0.6.3.1.
Gnralit ...........................................................................................................................................21
Exemple..............................................................................................................................................23
Programmes Informatique en BASIC ................................................................................................24
Version PET CBM .......................................................................................................................24
0.6.3.2.
0.7.
TP 1 ACIDIMTRIE..................................................................................................... 30
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
177
1.6.1.
Titrage direct et inverse......................................................................................................................32
1.6.2.
Titrage en retour .................................................................................................................................32
1.7.
RALISATION PRATIQUE DES SOLUTIONS DILUES ...............................................................................33
1.7.1.
Quelques dfinitions...........................................................................................................................33
1.7.2.
Expression de la dilution ....................................................................................................................33
1.7.3.
Calcul de la dilution ...........................................................................................................................33
1.7.4.
Ralisation pratique............................................................................................................................34
1.8.
PRPARATION D'UNE SOLUTION D'HCL 0,1 M......................................................................................36
1.9.
1.10.
1.10.1.
Rappel thorique...............................................................................................................................37
1.10.2.
Ractifs .............................................................................................................................................37
1.10.3.
Mode opratoire................................................................................................................................37
1.11.
PRPARATION D'UNE SOLUTION DE NAOH 0,1 M............................................................................38
1.12.
1.12.1.
1.12.2.
1.12.3.
PRINCIPE ...............................................................................................................................................40
2.2.
TECHNIQUE GENERALE...................................................................................................................40
2.2.1.
PAPIER ..............................................................................................................................................40
2.2.2.
SOLVANT .........................................................................................................................................40
2.2.3.
APPLICATION DES ECHANTILLONS..........................................................................................40
2.2.4.
OPERATION .....................................................................................................................................40
2.2.5.
SECHAGE DU CHROMATOGRAMME .........................................................................................41
2.2.6.
DEVELOPPEMENT DU CHROMATOGRAMME .........................................................................41
2.2.7.
LE Rf ET LE Rx ..................................................................................................................................41
2.3.
REACTIFS ..............................................................................................................................................41
2.4.
2.4.1.
2.4.2.
2.4.3.
PRINCIPE ...............................................................................................................................................43
3.1.1.
Acetylation .........................................................................................................................................43
3.1.2.
Dosage de l'acide ................................................................................................................................44
3.1.3.
Hydrolyse basique ..............................................................................................................................44
3.2.
REACTIFS ..............................................................................................................................................44
3.3.
3.3.1.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
178
3.3.2.
INDICE DE SAPONIFICATION ......................................................................................................45
3.3.3.
Chromatographie sur couche mince (CCM).......................................................................................45
3.4.
RECRISTALLISATION .......................................................................................................................46
TP 4 SYNTHSE DU PARACETAMOL.................................................................... 47
4.1.
4.2.
4.2.1.
Dissolution du paraminophnol..........................................................................................................47
4.2.2.
Synthse du paractamol ....................................................................................................................48
4.2.3.
Cristallisation .....................................................................................................................................48
4.3.
PURIFICATION DU PARACTAMOL PAR RECRISTALLISATION ..............................................................48
4.4.
4.5.
DONNES ..................................................................................................................................................48
5.1.1.
5.1.1.1.
5.1.1.2.
Ractifs ........................................................................................................................................50
5.1.1.3.
Matriel ........................................................................................................................................51
5.1.1.4.
5.1.2.
5.1.2.1.
5.1.2.2.
Ractifs ........................................................................................................................................52
5.1.2.3.
Matriel ........................................................................................................................................52
5.1.2.4.
5.1.3.
5.1.3.1.
5.1.3.1.1.
Gnralits .............................................................................................................................53
5.1.3.1.2.
Principe..................................................................................................................................53
5.1.3.2.
Ractifs ........................................................................................................................................53
5.1.3.2.1.
5.1.3.2.2.
5.1.3.2.3.
5.1.3.2.4.
5.1.3.3.
5.1.3.3.1.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
179
5.1.3.3.2.
Dosage ...................................................................................................................................54
5.1.3.3.3.
Agiter.....................................................................................................................................55
5.1.3.3.4.
5.1.3.3.5.
Prcision ................................................................................................................................55
5.1.3.3.6.
Procs-verbal d'essai..............................................................................................................55
5.1.3.3.7.
Commentaires........................................................................................................................55
5.1.3.3.8.
5.1.4.
5.1.4.1.
5.1.4.2.
Ractifs ........................................................................................................................................56
5.1.4.3.
5.1.5.
5.1.5.1.
5.1.5.2.
Ractifs ........................................................................................................................................56
5.1.5.3.
5.1.6.
5.1.6.1.
5.1.6.1.1.
Dfinition...............................................................................................................................57
5.1.6.1.2.
Influence du pH .....................................................................................................................57
5.1.6.1.3.
Indicateurs .............................................................................................................................58
5.1.6.2.
5.1.6.2.1.
5.1.6.2.2.
5.1.6.2.3.
5.1.6.2.4.
5.1.6.3.
5.1.6.4.
5.2.
5.2.1.
5.2.2.
5.2.2.1.
5.2.2.2.
5.2.2.3.
Calculs..........................................................................................................................................61
5.2.3.
5.2.3.1.
5.2.3.2.
Ractifs ........................................................................................................................................62
5.2.3.3.
5.3.
5.4.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
180
5.4.1.
5.4.2.
5.4.2.1.
5.4.2.2.
Ractifs ........................................................................................................................................63
5.4.2.3.
5.4.2.4.
Calculs..........................................................................................................................................64
5.4.3.
Mesure de rsistivit...........................................................................................................................64
5.4.4.
Dtermination extrait sec....................................................................................................................64
5.5.
DOSAGE DES PHOSPHATES1 ...........................................................................................................64
5.5.1.
5.5.1.1.
5.5.1.2.
Appareillage.................................................................................................................................65
5.5.1.3.
Ractifs ........................................................................................................................................65
5.5.1.4.
5.5.2.
5.5.2.1.
Mthode acidimtrique.......................................................................................................................66
Principe ........................................................................................................................................66
5.5.2.2.
Ractifs ........................................................................................................................................66
5.5.2.3.
5.5.2.4.
Rsultats.......................................................................................................................................66
5.6.
5.6.1.
5.6.2.
5.6.3.
5.6.4.
5.6.4.1.
Principe...............................................................................................................................................67
Prcaution essentielle .........................................................................................................................67
Hydrolyse du polyphosphate ..............................................................................................................67
Dosage par la mthode colorimtrique au bleu de molybdne...........................................................67
Appareillage.................................................................................................................................67
5.6.4.2.
Ractifs ........................................................................................................................................68
5.6.4.3.
5.6.5.
Mthode AFNOR ...............................................................................................................................68
5.7.
DOSAGE DE L'OXYGNE1 ................................................................................................................68
5.7.1.
5.7.1.1.
Mthode polarographique...................................................................................................................68
Principe ........................................................................................................................................68
5.7.1.2.
Appareillage.................................................................................................................................69
5.7.1.3.
5.7.1.4.
Rsultats.......................................................................................................................................69
5.7.2.
5.7.2.1.
5.7.2.2.
5.7.2.3.
Ractifs ........................................................................................................................................70
5.7.2.4.
5.7.2.4.1.
colorimtrique........................................................................................................................70
5.7.2.4.2.
volumtrique..........................................................................................................................70
5.7.3.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
5.7.3.1.
181
Mthodes normalises..................................................................................................................71
5.7.3.1.1.
5.7.3.1.2.
5.7.3.1.3.
5.7.3.1.4.
Genve).
72
5.7.3.1.5.
France: NFT 90.010. Dtermination colorimtrique des faibles teneurs d'O2 libre...............72
5.8.
5.8.1.
5.8.1.1.
5.8.1.2.
Ractifs ........................................................................................................................................73
5.8.1.3.
5.8.1.3.1.
5.8.1.3.2.
5.8.2.
5.8.2.1.
5.8.2.2.
Ractifs ........................................................................................................................................74
5.8.2.3.
5.9.
5.9.1.1.
Matriel ........................................................................................................................................75
5.9.1.2.
Ractifs ........................................................................................................................................75
5.9.1.3.
5.9.1.4.
Normes Etrangres.......................................................................................................................76
5.9.1.4.1.
5.9.1.4.2.
5.9.1.4.3.
Genve)
76
5.10.
5.10.1.
5.10.1.1.
5.10.1.1.1.
Matriel................................................................................................................................77
5.10.1.1.2.
Ractifs ................................................................................................................................77
5.10.1.1.3.
Mode opratoire...................................................................................................................77
5.10.1.1.4.
5.10.1.2.
5.10.1.2.1.
Matriel................................................................................................................................78
5.10.1.2.2.
Ractifs ................................................................................................................................78
5.10.1.2.3.
Mode opratoire...................................................................................................................78
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
182
5.10.2.
5.10.2.1.
5.10.2.2.
Ractifs.......................................................................................................................................79
5.10.2.3.
5.10.3.
5.10.3.1.1.
5.10.3.1.2.
5.10.3.1.3.
5.10.3.1.4.
5.10.3.1.5.
Genve).
80
5.11.
5.11.1.
5.11.1.1.1.
5.11.1.1.2.
Ractifs ................................................................................................................................81
5.11.1.1.3.
Mode opratoire...................................................................................................................81
5.11.2.
5.11.2.1.
5.11.2.2.
Ractifs.......................................................................................................................................82
5.11.2.3.
5.11.3.
5.11.3.1.
5.11.3.2.
Appareillage ...............................................................................................................................84
5.11.3.3.
5.11.4.
5.11.4.1.1.
5.11.4.1.2.
5.11.4.1.3.
5.12.
5.12.1.
5.12.1.1.
Ractif de Griess...............................................................................................................................85
Matriel ......................................................................................................................................85
5.12.1.2.
Ractifs: .....................................................................................................................................85
5.12.1.3.
5.12.2.
5.12.2.1.
5.12.2.2.
Ractifs.......................................................................................................................................86
5.12.2.3.
5.12.3.
5.12.3.1.
5.12.3.2.
Mthode .....................................................................................................................................87
5.12.4.
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
183
5.12.4.1.1.
5.12.4.1.2.
5.12.4.1.3.
5.12.4.1.4.
Genve).
87
DOSAGE DES NITRATES5 ...............................................................................................................88
5.13.
5.13.1.
5.13.2.
5.13.3.
5.13.4.
5.13.5.
5.13.6.
5.13.6.1.
Ractif...............................................................................................................................................88
Principe.............................................................................................................................................88
Matriel.............................................................................................................................................88
Ractifs .............................................................................................................................................88
Mode opratoire................................................................................................................................88
Mthode utilise au CEBEDEAU ....................................................................................................89
Ractifs.......................................................................................................................................89
5.13.6.2.
Mthode .....................................................................................................................................89
5.13.6.3.
Calcul .........................................................................................................................................90
5.13.7.
5.13.7.1.
5.13.7.2.
5.13.7.3.
5.14.
5.14.1.
5.14.1.1.
5.14.1.2.
5.14.2.
A chaud (en milieu acide).................................................................................................................91
5.15.
DEMANDE CHIMIQUE EN OXYGENE (DCO)6 ...........................................................................91
5.15.1.
Ractifs ncessaires ..........................................................................................................................92
5.15.2.
Dtermination du titre exact de la solution de sulfate de fer et d'ammonium ..................................92
5.15.3.
Mode opratoire................................................................................................................................92
5.15.4.
Mesure ..............................................................................................................................................92
5.16.
DETERMINATION DES MATIERES EN SUSPENSION6 ............................................................93
5.16.1.
5.16.2.
5.16.3.
BUT ...........................................................................................................................................................95
6.2.
EMULATEUR ZX SPECTRUM...............................................................................................................95
6.2.1.
Historique des ordinateurs Sinclair ....................................................................................................95
6.2.2.
Les ordinateurs SINCLAIR................................................................................................................98
6.2.3.
Le ZX Spectrum .................................................................................................................................98
6.2.4.
L'mulateur spectaculator.................................................................................................................101
6.3.
DEVPAC................................................................................................................................................103
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
184
6.3.1.
6.3.1.1.
6.3.1.2.
6.3.1.2.1.
6.3.1.2.2.
6.3.1.2.3.
Labels. .................................................................................................................................107
6.3.1.2.4.
6.3.1.2.5.
Symbol Table.......................................................................................................................108
6.3.1.2.6.
Expressions..........................................................................................................................108
6.3.1.2.7.
Macros. ................................................................................................................................109
6.3.1.2.8.
Assembler Directives...........................................................................................................111
6.3.1.2.9.
6.3.1.2.10.
6.3.1.3.
6.3.1.3.1.
6.3.1.3.2.
6.3.1.3.3.
6.3.1.4.
6.3.1.5.
6.3.1.6.
6.3.1.7.
6.3.2.
6.3.2.1.
6.3.2.2.
6.3.2.3.
6.4.
6.4.1.
Binary vs Decimal vs Hexadecimal .................................................................................................142
6.4.2.
The Registers, Memory and Machine Language vs Assembler .......................................................144
6.4.3.
Addition and Subtraction..................................................................................................................145
6.4.4.
Bit Manipulation ..............................................................................................................................147
6.4.5.
Program Flow, more on Flags and The Stack ..................................................................................149
6.4.6.
Memory Manipulation......................................................................................................................150
6.5.
LE TP LUI-MME ...................................................................................................................................151
6.5.1.
6.5.2.
6.5.2.1.
6.5.2.1.1.
Mthode 1 ............................................................................................................................152
6.5.2.1.2.
Mthode 2 ............................................................................................................................153
6.5.2.1.3.
Mthode 3 ............................................................................................................................153
6.5.2.2.
6.5.2.2.1.
Bordure ......................................................................................................................................154
Devoir ..................................................................................................................................154
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
6.5.2.2.2.
185
8.1.1.
Dispositif de mesure.........................................................................................................................157
8.1.2.
Mode opratoire ...............................................................................................................................157
8.2.
MESURE DUNE ENTHALPIE DE MELANGE .............................................................................158
8.2.1.
Prparation: matriel - sous hotte .....................................................................................................158
8.2.2.
Mode opratoire ...............................................................................................................................158
8.3.
MESURE DUNE ENTHALPIE DE DISSOLUTION......................................................................158
8.3.1.
9.1.1.
Extraction du limonne ....................................................................................................................160
9.1.2.
Extraction de leugnol ....................................................................................................................161
9.2.
EXTRACTION PAR SOLVANT..................................................................................................................162
TP 10
10.1.
10.2.
MANIPULATION 1.................................................................................................................................166
10.2.1.
10.2.2.
10.2.2.1.
Dfinition........................................................................................................................................166
Coefficients et units de viscosit ..................................................................................................166
Le coefficient de viscosit absolue dynamique est gal .....................................................166
10.2.2.2.
10.2.3.
10.2.4.
10.2.5.
10.2.6.
10.2.7.
10.2.8.
10.2.8.1.
10.2.8.2.
10.2.9.
10.2.9.1.
Viscosimtre coulement.............................................................................................................171
Remplissage de l'appareil. Mesure du temps d'coulement .....................................................171
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
10.2.9.2.
186
Rsultats ...................................................................................................................................171
10.2.10.
ORDRE DES OPERATIONS....................................................................................................172
10.2.11.
MODIFICATIONS AU LABORATOIRE CI-DESSUS .........................................................172
10.3.
MANIPULATION 2 - VRIFICATION DE LA LOI DE GUZMAN ANDRADE ............................................172
10.4.
10.4.1.
Manipulation...................................................................................................................................173
10.4.2.
Exploitation des rsultats................................................................................................................173
10.5.
MANIPULATION 4 - CONTROLE DE LA POLYMRISATION DU STYRNE - RELATION ENTRE MASSE
MOLAIRE ET VISCOSIT: LOI DE MARK -
10.5.1.
10.5.2.
HOUWINK .......................................................................................173
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition
Tome TP
187
BIBLIOGRAPHIE
1.
2.
3.
4.
5.
6.
7.
Tonneau J. Tables de chimie - Un mmento pour le laboratoire. Bruxelles: De Boeck Wesmael, 1991
Laboratory auxiliary tables de Riedel-deHan.
Memento pour le laboratoire de chimie de Merck.
Germain L, Colas L, Jean R. Le traitement des eaux destines l'alimentation des chaudires
vapeur, aux circuits de rfrigration et aux rseaux de distribution d'eaux industrielles et
potables. Paris: Dunod, 1969
Analyse des eaux potables. In: Leclerc E, ed. Livre de l'eau. Lige: CEBEDEAU (Centre Belge
d'Etude et Documentation des Eaux), 1965 (vol Volume II),, 301-323
Mmento technique de l'eau. Paris: Degrmont, 1978
Document Internet: http://www.worldofspectrum.org/Z80.html (2003)
CHIMIE INDUSTRIELLE
25/03/2005
1re Edition