Professional Documents
Culture Documents
8051 Week2
8051 Week2
8051 Week2
NHNG
BI QUC BO
Vi iu khin 8051
Vi iu khin 8051
Phn mm
KEIL
PROTEUS
Cu trc b nh ca 8051
Cu trc b nh ca 8051
8051 c 3 vng nh ring bit (b nh
chng trnh, b nh d liu trong, b
nh d liu ngoi). Mi vng nh c
truy cp bng cc cu lnh khc nhau.
Khi khai bo cc bin, ta phi xc nh
vng nh cho cc bin .
Cu trc b nh ca ARM7
LPC2000
Cc vi x l c kin trc VonNewman (VD: ARM) dng
chung 1 khng gian nh cho
b nh chng trnh v d
liu.
Lnh assembly:
MOV
MOV
R0, #80H
A, @R0
10
MOV
DPTR, #2000H
MOVX A,@DPTR
11
VD:
Vit hm c prototype nh sau:
unsigned int checksum (unsigned int
start, unsigned int end)
tnh checksum ca vng nh
ch*+ng trnh t a ch start n end
(code)
12
13
Cc ki thng dng
Type
Bits
Bytes
Range
char
-128 to +127
unsigned char
0 to 255
enum
16
-32,768 to +32,767
short
16
-32,768 to +32,767
unsigned short
16
0 to 65,535
int
16
-32,768 to +32,767
unsigned int
16
0 to 65,535
long
32
-2,147,483,648 to 2,147,483,647
unsigned long
32
0 to 4,294,697,295
14
Ki float v double
15
Bits
Bytes
Range
bit
0 or 1
sbit
0 or 1
sfr
0 to 255
sf16
16
0 to 65,535
16
Thanh ghi
Keil cho php khai bo cc thanh ghi
bng t kha sfr
VD:
sfr P0 = 0x80;
P0 = 0x0F;
17
18
19
a ch ca cc bin sfr,
sfr16, sbit phi nm bn
ngoi hm.
20
10
Vng nh c nh a ch bit
21
Lu :
Cc khai bo code, idata, xdata, bdata,
sfr, sbit l c bit cho trng hp lp
trnh 8051.
22
11
VD:
Vit chng trnh cho 8051 to hm nh
sau:
P1.0 = P1.1 AND P1.2
23
}
BM K Thut in T - H Bch Khoa TP.HCM
24
12
Endless loop
u im:
n gin.
D thc hin, sa li v bo tr
Khng cn s dng nhiu ti nguyn h
thng (VD: timer)
D dng thay i chy vi cc vi x l
khc (portable)
25
Endless loop
Nhc im:
Khng ph hp vi cc ng dng i hi
thi gian chnh xc (VD: ng h s).
Tiu tn nng lng v CPU hot ng
ch bnh thng trong ton b thi gian
26
13
Look-up table
unsigned char code
square[]={0,1,4,9,16,25,36,49,64,81};
unsigned char cal_square(unsigned char num)
{
return square[num];
}
Assembly:
MOV
A,R7
MOV
DPTR, #SQUARE
MOVC
A,@A+DPTR
MOV
R7,A
BM K Thut in T - H Bch Khoa TP.HCM
27
28
14
Question
a ch ca LED 7 on l bao nhiu?
lm LED hin th s 8, ta dng lnh
cho 8051 nh th no? (dng assembly
v C)
Xy dng bng m 7 on cho LED (cho
cc s ln hn 9 tt tt c on LED).
Vit chng trnh C c gi tr t 4 SW
v hin th ln LCD. (Dng bng tra
ly m 7 on).
29
30
15
Chng rung
delay
Not pressed
Press
detected
Read again
Confirmed
delay
Press
detected
Read again
Just a bounce
31
32
16
33
34
17
V lu
Vit code C
35
36
18
37
38
19
39
Hm printf()
40
20
Th vin ca Keil C
Keil C h tr rt nhiu th vin nh th
vin xut nhp (stdio), ton (math),
Cc th vin v hm ca Keil C c th
tham kho ti:
http://www.keil.com/support/man/docs/c5
1/c51_library.htm
41
21