Professional Documents
Culture Documents
Bao Cao VI Xu Ly
Bao Cao VI Xu Ly
Bao Cao VI Xu Ly
com
LI NI U
1
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
Cu trc bus
2
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
3
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
4
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
5
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
Ngt (Interrupt)
6
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
7
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
Khi bit ITx = 1 th ngt ngoi tng ng c chn kiu l ngt theo
sn xung, ngc li nu bit ITx = 0 th ngt ngoi tng ng c s c
kiu ngt l ngt theo mc thp. Cc bit IE l cc bit c ngt ngoi, ch c
tc dng trong trng hp kiu ngt c chn l ngt theo sn xung. Khi
kiu ngt theo sn xung c chn th ngt s xy ra duy nht mt ln
khi c sn xung ca tn hiu, sau khi tn hiu mc thp, hoc c sn
ln, hoc mc cao th cng khng c ngt xy ra na cho n khi c sn
xung tip theo. C ngt IE s dng ln khi c sn xung v t ng b xa
khi CPU bt u x l ngt. Khi kiu ngt theo mc thp c chn th ngt
s xy ra bt c khi no tn hiu ti chn ngt mc thp. Nu sau khi x l
xong ngt m tn hiu vn mc thp th li ngt tip, c nh vy cho n
khi x l xong ngt ln th n , tn hiu ln mc cao ri th thi khng
ngt na. C ngt IE trong trng hp ny khng c ngha g c.Thng
thng kiu ngt hay c chn l ngt theo sn xung.
B nh thi/B m (Timer/Counter)
8
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
c cho php (bit ETx trong thanh ghi IE = 1). Vic cho timer chy/dng
c thc hin bi cc bit TR trong thanh ghi TCON (nh a ch n tng
bit).
9
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
- Quy nh ch hot ng cho timer bng cch tnh ton v ghi gi tr cho
cc bit trong thanh ghi TMOD.
- Ghi gi tr m khi u mong mun vo 2 thanh ghi m THx v TLx.
i
khi ta khng mun timer/counter bt u m t 0 m t mt gi tr no
thi im trn gn hn, hoc chn hn trong tnh ton sau ny. V d nu
cho timer m t 15535 th sau 50000 xung nhp (tc 50000 micro giy vi
thch anh 12MHz) timer s trn, v thi gian mt giy c th d dng tnh ra
kh chnh xc = 20 ln trn ca timer (ng nhin mi ln trn li phi np
li gi tr 15535).
- t mc u tin ngt v cho php ngt trn timer (nu mun).
- Dng bit TRx trong thanh ghi TCON cho timer chy hay dng theo
mun.
Chng II :
10
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
11
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
* Hm ngt:
Void tenhamngat(void) interrupt ngun ngt
{
// Chng trnh ngt y
}
+ Ch v hm ngt.
- Hm ngt khng c tr li hay truyn bin vo hm
- Tn hm bt k
- Interrupt l hm ngt phi phn bit vi hm khc
- Ngun ngt t 0-5 theo bng vecto ngt
- Bng thanh ghi Ram chn t 0-3
-
Cc bng ca ngun ngt.
12
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
1) Cch to hm ngt.
to c hm ngt ta phi lm nhng cng vic sau y:
a) Khi to hm ngt
Dng ngt no th cho php ngt hot ng bng cch gn gi tr cho
thanh ghi cho php ngt IE
b) Cu hnh ngt
Trong 1 ngt c nhiu ch . Vi ngt Timer0 cu hnh cho n chy ch
no, ch timer hay counter, ch 8bit ,16bitbng cch gn cho gi
tr tng ng TMOD.
13
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
14
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
a) To timer 0
Do yu cu ca bi ton l iu khin tc ng c quay nhanh v quay
chm trong khi chy thun nghch nn d nguyn chu k v thay i thi
gian m. Yu cu nh:
+ ng c quay thun nghch bnh thng : 1000us
+ ng c tng tc ln nht : 100us
+ ng c gim tc ln nht : 2000us
15
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
* Hm khi to timer0
16
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
* Hm ngt.
bit PWM;
unsigned char dem=0;// Khai bao bien dem de dem tu 1 den 10
unsigned char phantram_PWM =10 ;// Bien chua phan tram xung(0...10)
void timer0(void) interrupt 1 //Ngat timer 0
{
TR0=0;// Dung chay timer 0
TF0=0;// Xoa co, o che do co tu duoc xoa
dem++;
if(dem<phantram_PWM) PWM=1;// Neu bien dem < phan tram xung thi
dua gia tri 1 ra chan, xung 5V
else PWM=0;// Neu dem = phan tram xung
if(dem==20) dem=0;// Neu dem du 20 thi gan lai bang 0 de bat dau chu ki
moi
TR0=1;// Cho chay timer
}
17
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
CHNG III :
LU - CHNG TRNH MCH NGUYN L
I : Lu chng trnh
Phc v ngt
Timer 0
Dem++
dem >
phantram_PW
M
Dem=2
0
PWM=1 PWM=0
Dem=0 exit
Chng trnh
chnh
18
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
Begin
II ) Chng trnh :
/* Dieu khien toc do dong co DC : Quay thuan, quay nghich, tang toc, giam
toc
Nhom 6: Nguyen Van Bien --- TBD47
Nguyen Son Tung --- TBD47
Nguyen Duc Hanh --- TBD47
Quan Duc Huong --- TBD47
Do Van Khang --- TBD47
Dang Thi Tuyet Lan --- TBD47
Nghiem Minh Tuan --- TBD47
19
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
*/
// 2 Chan dieu khien dong co la : P2_0 va P2_1
// 5 chan de dieu khien : Quay thuan, quay nghich, Dung, Tang toc, giam toc
// 3 chan bao hieu dong co dang o che do nao.
#include <REGX51.H>
bit PWM;
unsigned char dem=0;
unsigned int phantram_PWM=10;
20
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
delay(2);
P0_1=0;
}
/* Khoi tao Timer 100us*/
void khoitaohethong()
{
//ES=1;
EA=0;
TMOD=0x02; // che do 8 bit tu nap
TH0=0x9b; // nap gia tri 155 ma hex
TL0=0x9b;
EA=1;
TR0=1;
ET0=1;
}
/* Ngat tao ra PWM*/
}
/* Ham dung dong co*/
void stopdc(void)
{
P2_0=0;
P2_1=0;
21
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
P2_2=0;
P2_3=1;
P2_4=1;
}
void quaynghich(void)
{
P2_0=0;
P2_1=PWM;
P2_4=0;
P2_3=1;
P2_2=1;
}
/* Ham dieu khien tang toc*/
unsigned char tangtoc(void)
{
if(tang==0)
{
while(tang==0)
{;}
phantram_PWM--;
delay(100);
if(phantram_PWM<1)
{
phantram_PWM=1;
22
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
} }
return (phantram_PWM);
}
/* Ham dieu khien giam toc*/
unsigned char giamtoc(void)
{
if(giam==0)
{
while(giam==0)
{;}
phantram_PWM++;
delay(100);
if(phantram_PWM>20)
phantram_PWM=20;
}
return (phantram_PWM);
}
/* Lua chon che do cua dong co*/
unsigned char n;
unsigned char chonchedo(void)
{
if(stop==0) n=1;
if(thuan==0) n=2;
if(nghich==0) n=3;
switch(n)
{
case 0: {break;}
case 1: {stopdc();break;}
case 2: {quaythuan();break;}
case 3: {quaynghich();break;}
}
return (n);
}
/* Chuong trinh chinh*/
void main()
{
khoitaohethong();
while(1)
{
23
Vi x l : iu khin ng c 1 chiu biendt.biendt@gmail.com
tangtoc();
giamtoc();
chonchedo();
hienthi((20-phantram_PWM)/10,(20-phantram_PWM)%10);
}
}
Chng trnh ny c kim tra trn m phng phn mn Protues.
KT LUN
24