Académique Documents
Professionnel Documents
Culture Documents
program ultrason;
var
Tmesure : ...................;
Distance : .............;
temps_afichage : string[....];
distance_afichage : string[.....];
signal : sbit at portb.1;
echo
: sbit at portb.0;
// connections de l'LCD
// transformation du temps de s en s
Page 1
Distance_m := (temps_s*.......................)/2;
la Distance en metre
calcul_distance_mm := Distance_m * pow(10,....);
en mm
// calcul de
// transformation
end;
begin
lcd_init();
// initialisation de l'LCD
lcd_cmd(_LCD_CURSOR_OFF);
lcd_out(1,1,'Temps ');
lcd_out(2,1,'Dist. ');
trisB:=$FD; // RB1 : ..................., RB0 : ....................
portb.1:=0; // inisialisation de RB1 ........
OPTION_REG := $.....;
while true do
begin
Tmesure:=.......; // initialisation du temps mesur 0
signal:=1; // envoie du signal
TMR0 := 0; // ...........................du Tmer 0
// attente de l'echo
while (TMR0 <= 250) do
begin
if (echo = 1) then
begin
Tmesure:=TMR0; // reception de l'cho alors lecture du TIMER0
break; // ...................de la boucle
end;
end;
signal:=.......; // remise zro du signal
Page 2
// affichage de l'unit s
// conversion de la distance
lcd_out(2,9,...........................);
calcul en mm
// affichage de la distance
lcd_out(2,16,'.........');
// affichage de l'unit mm
end;
end.
LCD1
LM032L
RETARDER DE 100S
C2
C1
2
3
4
5
6
7
1
OSC1/CLKIN
OSC2/CLKOUT
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
MCLR/Vpp/THV
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT
21
22
23
24
25
26
27
28
RV1
10k
11
12
13
14
15
16
17
18
PIC16F876A
Page 3
D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14
1
2
3
U1
9
10
50%
16MHz
4
5
6
VSS
VDD
VEE
DELAY_1
X1
RS
RW
E
15p
15p