Tải bản đầy đủ (.pdf) (31 trang)

Xây dựng chương trình và thiết kế mạch chống trộm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (229.71 KB, 31 trang )

SHARE BY KYSUBACHKHOA.COM



I. Giới thiệu khái quát về họ IC MCS-51™
MCS-51

 là một họ IC vi điều khiển do Intel phát triển và sản xuất. Một
số nhà sản xuất được phép cung cấp các IC tương thích với các sản phẩm MCS-
51 của Intel là Siemens, Advanced Micro Devices, Fujitsu, Philips, Atmel…
Các IC của họ MCS-51 có các đặc trưng chung như sau:
• 4 port I/O 8 bit
• Giao tiếp nối tiếp
• 64K không gian bộ nhớ chương trình mở rộng
• 64K không gian bộ nhớ dữ liệu mở rộng
• Một bộ xử lý luận lý (thao tác trên các bit đơn)
• 210 bit được đòa chỉ hóa
• Bộ nhân/chia 4 µs.
Ngoài ra, tùy theo số hiệu sản xuất mà chúng có những khác biệt về bộ nhớ
và bộ đònh thời/bộ đếm như trong bảng so sánh dưới đây:

Số hiệu sản
xuất
Bộ nhớ chương
trình trên chip
Bộ nhớ dữ liệu
trên chip
Số bộ đònh thời
(bộ đếm)
8031
8051


8751
8951
0K
4K ROM
4K EPROM
4K FLASH
128 byte
128 byte
128 byte
128 byte
2
2
2
2
8032
8052
8752
8952
0K
8K ROM
8K EPROM
8K FLASH
256 byte
256 byte
256 byte
256 byte
3
3
3
3



2 Giới thiệu AT89C51
AT89C51 là một Microcomputer 8 bit, loại CMOS, có tốc độ cao và công suất thấp với
bộ nhớ Flash có thể lập trình được. Nó được sản xuất với công nghệ bộ nhớ không bay
hơi mật độ cao của hãng Atmel, và tương thích với chuẩn công nghiệp của 80C51 và
80C52 về chân ra và bộ lệnh. Vì lý do đó, kể từ đây về sau ta sẽ dùng thuật ngữ
“80C51” (hoặc "8051") Sơ đồ khối của AT89C51

2.1 Những đặc trưng của AT89C51.
+ Tương thích với các sản phẩm MCS-51
+ 4KByte bộ nhớ Flash có thể lập trình lại với 1000 chu kỳ đọc/xoá
+ Hoạt động tónh đầy đủ: 0Hz đến 24MHz
+ Khoá bộ nhớ chương trình ba cấp
+ 128 x 8 bit RAM nội
+ 32 đường xuất-nhập lập trình được (tương ứng 4 port)
+ Hai timer/counter 16 bit
+ Một port nối tiếp song công lập trình được
+ Mạch đồng hồ và bộ dao động trên chip
Cấu hình chân của AT89C51 như sau:

Như vậy AT89C51 có tất cả 40 chân. Mỗi chân có chức năng như các đường I/O
(xuất/nhập), trong đó 24 chân có công dụng kép: mỗi đường có thể hoạt động
như một đường I/O hoặc như một đường điều khiển hoặc như thành phần của
bus đòa chỉ và bus đữ liệu.
Mô tả chân
• VCC (chân 40)
Chân cấp nguồn.
• GND (chân 20)
Chân nối đất.

• Port 0
Port 0 là một port xuất/nhập song hướng cực máng hở 8 bit. Nếu
được sử dụng như là một ngõ xuất thì mỗi chân có thể kéo 8 ngõ
vào TTL. Khi mức 1 được viết vào các chân của port 0, các chân
này có thể được dùng như là các ngõ nhập tổng trở cao.
Port 0 có thể được đònh cấu hình để hợp kênh giữa bus đòa chỉ và
bus dữ liệu (phần byte thấp) khi truy cập đến bộ nhớ dữ liệu và bộ
nhớ chương trình ngoài. Ở chế độ này, P0 có các điện trở pullup bên
trong.
Port 0 cũng nhận các byte code (byte mã chương trình) khi lập trình
Flash, và xuất ra các byte code khi kiểm tra chương trình. Cần có
các điện trở pullup bên ngoài khi thực hiện việc kiểm tra chương
trình.
• Port 1
Port 1 là một port xuất/nhập song hướng 8 bit có các điện trở pullup
bên trong. Các bộ đệm ngõ ra của port 1 có thể kéo hoặc cung cấp 4
ngõ nhập TTL. Khi mức 1 được viết vào các chân của port 1, chúng
được kéo lên cao bởi các điện trở pullup nội và có thể được dùng
như là các ngõ nhập. Nếu đóng vai trò là các ngõ nhập, các chân
của port 1 (được kéo xuống thấp qua các điện trở bên ngoài) sẽ cấp
dòng I
IL
do các điện trở pullup bên trong.
• Port 2
Port 2 là một port xuất/nhập song hướng 8 bit có các điện trở pullup
bên trong.
Các bộ đệm ngõ ra của port 2 có thể kéo hoặc cung cấp 4 ngõ vào
TTL. Khi các mức 1 được viết vào các chân của port 2 thì chúng
được kéo lên cao bởi các điện trở pullup nội và có thể được dùng
như các ngõ vào. Khi được dùng như các ngõ vào, các chân của port

2 (được kéo xuống qua các điện trở bên ngoài) sẽ cấp dòng I
IL
do có
các điện trở pullup bên trong.
Port 2 phát ra byte cao của đòa chỉ khi đọc từ bộ nhớ chương trình
ngoài và khi truy cập bộ nhớ dữ liệu ngoài dùng các đòa chỉ 16 bit
(MOVX @DPTR). Trong ứng dụng này, nó dùng các điện trở pullup
nội "mạnh" khi phát ra các mức 1. Khi truy cập bộ nhớ dữ liệu ngoài
dùng các đòa chỉ 8 bit (MOVX @RI), port 2 phát ra các nội dung của
thanh ghi chức năng đặc biệt P2.
Port 2 cũng nhận các bit cao của đòa chỉ và một vài tín hiệu điều
khiển khi lập trình và kiểm tra Flash.
• Port 3
Port 3 là một port xuất-nhập song hướng 8 bit có điện trở pullup nội
bên trong.
Các bộ đệm ngõ ra của port 3 có thể kéo hoặc cung cấp 4 ngõ vào
TTL. Khi các mức 1 được viết vào các chân của port 3 thì chúng
được kéo lên cao bởi các điện trở pullup nội và có thể được dùng
như các ngõ vào. Khi được dùng như các ngõ vào, các chân của port
3 (được kéo xuống qua các điện trở bên ngoài) sẽ cấp dòng I
IL
do có
các điện trở pullup bên trong.
Port 3 cũng cung cấp các chức năng của các đặc trưng đặc biệt như
được liệt kê dưới đây:

Chân Tên Các chức năng chuyển đổi
P3.0
P3.1
P3.2

P3.3
P3.4
P3.5
P3.6
P3.7
RXD
TXD
INT0
INT1
T0
T1
WR
RD

Port nhập nối tiếp
Port xuất nối tiếp
Ngắt 0 bên ngoài
Ngắt 1 bên ngoài
Ngõ vào Timer/Counter 0
Ngõ vào Timer/Counter 1
Xung ghi bộ nhớ dữ liệu ngoài
Xung đọc bộ nhớ dữ liệu ngoài
Các chức năng chuyển đổi trên Port 3

• RST (chân 9)
Ngõ vào reset. Một mức cao trên chân này khoảng hai chu kỳ máy
trong khi bộ dao động đang chạy sẽ reset thiết bò.
lên cao bởi các điện trở pullup "nhẹ". Việc set bit cấm-ALE không
có tác dụng khi bộ vi điều khiển đang ở chế độ thi hành ngoài.



EA
/Vpp
EA
(External Access Enable) phải được nối với GND để cho phép
thiết bò đọc code từ bộ nhớ chương trình ngoài có đòa chỉ từ 0000H
đến FFFFH. Tuy nhiên, lưu ý rằng nếu bit khoá 1 (lock-bit 1) được
lập trình,
EA
sẽ được chốt bên trong khi reset.
EA
phải được nối với Vcc khi thi hành chương trình bên trong.
Chân này cũng nhận điện áp cho phép lập trình Vpp=12V khi lập
trình Flash (khi đó áp lập trình 12V được chọn).
Khi bit khoá 1 được lập trình, mức logic tại chân
EA
được lấy mẫu và chốt
khởi tạo với một giá trò ngẫu nhiên cho đến khi được reset. Giá trò được
chốt
của
EA
phải bằng với mức logic hiện tại ở chân đó để cho thiết bò làm
việc
một cách chính xác.
 XTAL1 và XTAL2
XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại dao
động nghòch được cấu hình để dùng như một bộ dao động trên chip.


Hình. Các kết nối của bộ dao động


Không có yêu cầu nào về duty cycle của tín hiệu xung ngoài,vì ngõ nhập nối
với mạch tạo xung nội là một flip-flop chia đôi, nhưng các chỉ đònh về thời gian
high và low, các mức áp tối đa và tối thiểu phải được tuân theo.
Các đặc trưng khác sẽ được trình bày một cách chi tiết hơn ở những phần tiếp
theo sau đây.

3 Tổ chức bộ nhớ
8051/8031 có bộ nhớ theo cấu trúc Harvard: có những vùng bộ nhớ riêng biệt
cho chương trình và dữ liệu. Như đã nói ở trên, cả chương trình và dữ liệu có thể
ở bên trong; dù vậy chúng có thể được mở rộng bằng các thành phần ngoài lên
đến tối đa 64 Kbytes bộ nhớ chương trình và 64 Kbytes bộ nhớ dữ liệu.
Bộ nhớ bên trong bao gồm ROM và RAM trên chip, RAM trên chip bao gồm
nhiều phần : phần lưu trữ đa dụng, phần lưu trữ đòa chỉ hóa từng bit, các bank
thanh ghi và các thanh ghi chức năng đặc biệt.
Hai đặc tính cần lưu ý là :
• Các thanh ghi và các port xuất nhập đã được xếp trong bộ nhớ và
có thể được truy xuất trực tiếp giống như các đòa chỉ bộ nhớ khác.
• Ngăn xếp bên trong RAM nội nhỏ hơn so với RAM ngoài như
trong các bộ vi xử lý khác.
Chi tiết về bộ nhớ RAM trên chip:
Như ta thấy trên hình ( ), RAM bên trong 8051/8031 được phân chia giữa các
bank thanh ghi (00H–1FH), RAM đòa chỉ hóa từng bit (20H–2FH), RAM đa dụng
(30H–7FH) và các thanh ghi chức năng đặc biệt (80H–FFH).
3.1 RAM đa dụng
Mặc dù trên hình cho thấy 80 byte RAM đa dụng chiếm các đòa chỉ từ 30H–
7FH, 32 byte dưới cùng từ 00H đến 1FH cũng có thể được dùng với mục đích
tương tự (mặc dù các đòa chỉ này đã có mục đích khác).
Mọi đòa chỉ trong vùng RAM đa dụng đều có thể được truy xuất tự do dùng cách
đánh đòa chỉ trực tiếp hoặc gián tiếp. Ví dụ, để đọc nội dung ở đòa chỉ 5FH của

RAM nội vào thanh ghi tích lũy, lệnh sau sẽ được dùng :
MOV A, 5FH
Lệnh này di chuyển 1 byte dữ liệu dùng cách đánh đòa chỉ trực tiếp để xác đònh
“đòa chỉ nguồn” (5FH). Đích nhận dữ liệu được ngầm xác đònh trong mã lệnh là
thanh ghi tích lũy A.
RAM bên trong cũng có thể được truy xuất dùng cách đánh đòa chỉ gián tiếp qua
R0 hay R1. Ví dụ, hai lệnh sau thi hành cùng nhiệm vụ như lệnh đơn ở trên :
Tóm tắt các vùng bộ nhớ của 8031/8051.












MOV R0, #5FH
MOV A, @R0
Lệnh đầu dùng đòa chỉ tức thời để di chuyển giá trò 5FH vào thanh ghi R0, và
lệnh thứ hai dùng đòa chỉ trực tiếp để di chuyển dữ liệu “được trỏ bởi R0” vào
thanh ghi tích lũy.



Bộ nhớ
chương trình


được chọn
qua PSEN
FFFF

0000



Bộ nhớ
dữ liệu

được chọn
qua WR
và RD
FFFF

0000






F

00

Bộ nhớ trên chip


Bộ nhớ mở rộng
































Tóm tắt bộ nhớ dữ liệu trên chip.

3.2 RAM đòa chỉ hóa từng bit
8051/8031 chứa 210 bit được đòa chỉ hóa, trong đó 128 bit là ở các đòa chỉ byte
20H đến 2FH, và phần còn lại là trong các thanh ghi chức năng đặc biệt.
7F

7E

7D

7C

7B

7A

79

78

2F

77

76

75


74

73

72

71

70

2

6F

6E

6D

6C

6B

6A

69

68

2


67

66

65

64

63

62

61

60

2

5F

5E

5D

5C

5B

5A


59

58

2

57

56

55

54

53

52

51

50

2

4F

4E

4D


4C

4B

4A

49

48

29

47

46

45

44

43

42

41

40

28


3F

3E

3D

3C

3B

3A

39

38

27

37

36

35

34

33

32


31

30

26

2F

2E

2D

2C

2B

2A

29

28

25

27

26

25


24

23

22

21

20

24

1F

1E

1D

1C

1B

1A

19

18

23


17

16

15

14

13

12

11

10

22

0F

0E

0D

0C

0B

0A


09

08

21

07

06

05

04

03

02

07

00

20

Bank 3

1F

18


Bank 2

17

10

Bank 1

0F

08

Bank thanh ghi 0
(mặc đònh cho R0
-
R7)

07

00




RAM đa dụng
7F

30


RAM

Đòa chỉ bit

Đòa chỉ
byte

87

86

85

84

83

82

81

80

80

P0

không được đòa chỉ hóa bit

81


SP

không được đòa chỉ hóa bit

82

DPL

không được
đòa chỉ hóa bit

83

DPH


không được đòa chỉ hóa bit

87

PCON

8F

8E

8D

8C


8B

8A

89

88

88

TCON

không được đòa chỉ hóa bit

89

TMOD

không được đòa chỉ hóa bit

8

TL0

không được đòa chỉ hóa bit

8

TL1


không được đòa chỉ ho
ùa bit

8

TH0


97

96

95

94

93

92

91

90

90

P1

9F


9E

9D

9C

9B

9A

99

98

98

SCON

không được đòa chỉ hóa bit

99

SBUF

A

A

A


A

A

A

A

A

A

P2

AF







A
C

A
B

A

A

A9

A8

A

IE










B
C

B
B

B
A

B9


B
8

B

IP

E7

E6

E5

E4

E3

E2

E1

E0

E

ACC

D

D


D

D

D

D




D

D

PSW

B

B

B

B

B

B


B

B

B

P3

F7

F6

F5

F4

F3

F2

F1

F0

F0

B

CÁC THANH GHI CHỨC NĂNG ĐẶC


Đòa chỉ
byte

Đòa chỉ bit

không được đòa c
hỉ hóa bit

8

TH1

F

Ý tưởng truy xuất từng bit riêng rẽ bằng phần mềm là một đặc tính tiện
lợi của vi điều khiển nói chung. Các bit có thể được đặt, xóa, AND, OR, với
một lệnh đơn. Đa số các vi xử lý đòi hỏi một chuỗi lệnh đọc-sửa-ghi để đạt
được hiệu quả tương tự. Hơn nữa, các port I/O cũng được đòa chỉ hóa từng bit
làm đơn giản phần mềm xuất nhập từng bit.
Có 128 bit được đòa chỉ hóa đa dụng ở các byte 20H đến 2FH. Các đòa
chỉ này được truy xuất như các byte hoặc như các bit phụ thuộc vào lệnh được
dùng. Ví dụ, để đặt bit 67H, ta dùng lệnh sau :
SETB 67H
4.1Con trỏ ngăn xếp .
Con trỏ ngăn xếp (SP) là một thanh ghi 8 bit ở đòa chỉ 81H. Nó chứa đòa chỉ của
byte dữ liệu hiện hành trên đỉnh của ngăn xếp. Các lệnh trên ngăn xếp bao gồm
các thao tác cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp. Lệnh cất
dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu, và lệnh lấy dữ liệu ra
khỏi ngăn xếp sẽ đọc dữ liệu và giảm SP. Ngăn xếp của 8051/8031 được giữ
trong RAM nội và được giới hạn các đòa chỉ có thể truy xuất bằng đòa chỉ gián

tiếp. Chúng là 128 byte đầu của 8051/8031.
Để khởi động lại SP với ngăn xếp bắt đầu tại 60H,các lệnh sau đây được dùng:
MOV SP, #5FH
Trên 8051/8031 ngăn xếp bò giới hạn 32 byte vì đòa chỉ cao nhất của RAM trên
chip là 7FH. Sở dó dùng giá trò 5FH vì SP sẽ tăng lên 60H trước khi cất byte dữ
liệu đầu tiên.
Người thiết kế có thể chọn không phải khởi động lại con trỏ ngăn xếp mà để nó
lấy giá trò mặc đònh khi reset hệ thống. Giá trò mặc đònh đó là 07H và kết quả là
ngăn đầu tiên để cất dữ liệu có đòa chỉ là 08H. Nếu phần mềm ứng dụng không
khởi động lại SP, bank thanh ghi 1 (có thể cả 2 và 3) sẽ không dùng được vì
vùng RAM này đã được dùng làm ngăn xếp.
Ngăn xếp được truy xuất trực tiếp bằng các lệnh PUSH và POP để lưu trữ tạm
thời và lấy lại dữ liệu, hoặc được truy xuất ngầm bằng các lệnh gọi chương trình
con (ACALL, LCALL) và các lệnh trở về (RET, RETI) để cất và lấy lại bộ đếm
chương trình.



4.2 Bộ Đònh Thì Timer.
8051/8031 chứa hai bộ đònh thời / đếm 16 bit được dùng cho việc đònh thời
hoặc đếm sự kiện. Timer 0 ở đòa chỉ 8AH (TL0 : byte thấp) và 8CH (TH0 : byte
cao). Timer 1 ở đòa chỉ 8BH (TL1 : byte thấp) và 8DH (TH1 : byte cao). Việc
vận hành timer được set bởi thanh ghi Timer Mode (TMOD) ở đòa chỉ 89H và
thanh ghi điều khiển timer (TCON) ở đòa chỉ 88H. Chỉ có TCON được đòa chỉ
hóa từng bit.
*Thanh Ghi Chế Độ Timer(TMOD)
Thanh ghi TMOD gồm 2 nhóm 4 bit để đặt chế độ làm việc cho timer0 và
timer1
Bảng .Tóm tắt thanh ghi TMOD
Bit Tên Timer Mô tả

7 GATE 1
Bit mở cổng. Khi bit này 1, timer chỉ chạy trong khi
INT1 ở mức cao nhất

6

C/ T

1
Bit chọn counter (bộ đếm) hay timer
1 = bộ đếm sự kiện
0 = timer khoảng thời gian
5 M1 1 Bit 1 của chọn chế độ (xem bảng 3.)
4 M0 1 Bit 0 của chọn chế độ (xem bảng 3.)
3 GATE 0 Bit mở cổng cho timer 0
2 C/ T 0 Bit chọn counter (bộ đếm) hay timer của timer 0
1 M1 0 Bit 1 của chọn chế độ của timer 0
0 M0 0 Bit 0 của chọn chế độ của timer 0
Bảng .Các chế độ hoạt động của timer
M1 M0

Chế độ Mô tả
0
0
1
1

0
1
0

1
0
1
2
3
Chế độ timer 13 bit (chế độ 8048)
Chế độ timer 16 bit
Chế độ timer 8 bit tự nạp lại giá trò đầu
Chế độ tách timer
Timer 0 :TL0 là timer 8 bit được điều khiển
bằng
các bit chế độ của timer 0 ; TH0 là timer 8 bit
được điều khiển bằng các bit chế độ của timer
1
Timer 1:bò dừng lại


Chú ý là TM0D không có đòa chỉ bit.Thường thì người ta nạp giá trò cho nó
một lần bằng phần mềm ở đầu chương trình để khởi tạo trò đặt chế độ timer. Sau
đó timer có thể bò dừng, cho chạy, và v. v. . . bằng cách truy cập các SFR timer
khác
4.3 Thanh Ghi Điều Khiển TIMER(TCON).
Thanh ghi TCON chứa các bit điều khiển và trạng thái cho timer0 và
timer1.Bốn bit cao của TCON(TCON.4-TCON.7)được dùng để bật ttimer chạy
và tắt timer(TF0,TF1).
Bốn bit thấp trong TCON(TCON.0-TCON.3)không ảnh hưởng đến các
timer.Chúng được dùng dể phát hiện và khởi động ngắt ngoài
Bảng Tóm Tắt Thanh Ghi TCON

Bit Ký

hiệu
Đòa
chỉbit
Mô tả
TCON.7


TCON.6
TCON.5
TCON.4
TCON.3



TCON.2
TCON.1
TCON.0
TF1


TR1
TF0
TR0
IE1



IT1
IEO
IT0

8FH


8EH
8DH
8CH
8BH



8AH
89H
88H
Cờ báo tràn timer 1. Đặt lên bởi 1 phần cứng khi
tràn; được xoá về 0 bởi phần mềm hoặc phần
cứng khi bộ xử lý chỉ đến chương trình phục vụ
ngắt
Bit điều khiển Timer 1 chạy. Đặt /xoá bằng phần
mềm để cho timer chạy /ngưng
Cờ báo tràn Timer 0
Bitđiều khiển Timer 0 chạy
Cờ cạnh ngắt 1bên ngoài. Đặt bởi phần cứng khi
phát hiện có cạnh xuống ở INT1; xoá bằng phần
mềm hoặc phần cứng khi CPU chỉ đến chương
trình phục vụ ngắt
Cờ kiểu ngắt 1 bên ngoài. Đặt/xoá bằng phần
mềm để ngắt ngoài tích cực cạnh xuống/mức thấp
Cờ cạnh ngắt 0 bên ngoài
Cờ kiểu ngắt 0 bên ngoài




Chế độtimer 13 bit (chế độ 0)
Chế độ 0 là chế độ timer 13 bit để tương thích với bộ xử lý trước 8051 là
8048. với các thiết kế người ta ít dùng chế độ hoạt động này. Byte cao của timer
(THx) nối tiếp với 5 bit thấp của byte thấp của timer(TLx) để tạo thành timer
13bit. Ba bit cao của TLx không được sử dụng
Chế độ timer 16 bit (chế độ 1)
Chế độ 1 là chế độ timer 16 bit giống như chế độ 1, ngoại trừ lúc này timer
hoạt động như timer 16 bit đầy đủ. Xung nhòp đượcđưa vào thanh ghi 16 bit đượ
kết hợp bởi THx và TLx.Khi nhận được các xung nhòp thì timer đếm lên
:0000H,0001H,0002H, v. v. . .Tràn xảy ra khi có chuyển tiếp từ FFFFH sang
0000H trong số đếm và nó đặt cờ báo tràn timer lên 1. Timer tiếp tục đếm tiếp.
Cờ báo tràn là bit TFx trong TCON mà người ta có thể đọc ra hoặc ghi vào bảng
phần mềm (xem hình 3.23b)
MSB của giá trò trong các thanh ghi timer là 7 bit của THx, và LSB là bit 0
của TLx. LSB cứ đảo giá trò của nó ở tần số xung nhòp vào chia cho 65536
(nghóa là 2 ).Người ta có thể đọcra hoặc ghi vào thanh ghi timer TLx/THx bằng
phần mềm.
Chế độ timer 8 bit tự nạp lại trò đầu (chế độ 2)
Chế độ 2 là chế độ tựđộng nạp giá trò đầu. Byte thấp của timer TLx làm
việc như timer 8 bit trong khi đó byte cao của timer THx giữ giá trò cần nạp lại.
Khi bộ dếm tràn từ FFH sang 00H thì không những cờ timer được đặt len 1 giá
trò mà giá trò trong THx còn được nạp vào TLx, việc đếm tiếp tục từ giá trò này
đến chuyển tiếp từ FFH sang 00H kế,và cứ tiếp tục như vậy. Chế độ này tiện lợi
vì tràn timer xảy ra theo những khoảng thời gian có chu kỳ một khi TM0D và
THx đã được khởi tạo trò (xem hình 3.23c)
Chế độ tách timer (chế độ 3)
Chế độ 3 là chế độ tách timer thì khác nhau vớimỗi timer. Timer 0 ở chế
độ 3 đựoctách thành 2 timer 8 bit. TL0 và TH0 làm việc như 2 timer độclập

vớicác báo cáo tràn đặt các cờ TF0 và TF1 tương ứng
Timer bò dừng ở chế độ 3, nhưng có thể cho nó chạy bằng cách chuyển
sang 1 trong các chế klhác. Gíơi hạn duy nhất là cờ báo tràn thông thường của
timer 1 (TF1)không bò ảnh hưởng bởi sự báo tràn trong timer 1 vì TF1 đã đượ
nối vào TH0.
Chế độ 3 chủ yếu cho thêm 1 timer 8 bit (8051 giống như có thêm timer
thứ ba ).Khi timer 0 ở chế độ , ta co 1thể bật hay tắt timer 1 bằng cách chuyển
nó ra khỏi hay đi vào chính chế độ 3 của nó. Nó vẫn có thể được cổng nối tiếp
sử dụng làm bộ tạo tốc độ baud hoặc có thể sử dụng theo bất cứ cách nào mà
không cần ngắt (vì nó không còn đượcvới TH1)
 Cho chạy, dừng và điều khiển các timer
Ta sẽ khảo sát cách cho chạy, dừng và điều khiển các timer
Phương pháp đơn nhất để cho chạyvà dừng các timer là sử dụngbitđiều khiển
chạy TRx (timer Run)trong TCON.TRx=0 sau khi reset hệ thống; như vậy mặc
nhiên các timer dừng lại.TRx đượcđặt bằng phần mềm để cho timer chạy hình
Hình . Cho chạy và dừng các timer

Xung nhòp
timer Các thanh ghi

0 = lên :timer dừng
1 = xuống :timer chạy

Vì TRx ở trong thanh ghi TCON có đòa chỉ bit, do đó ta dễ dàng cho chạy và
dừng các timer trong chương trình. Thí dụ, Timer 0 đượccho chạy bằng lệnh sau
SETB TR0
và làm nó dừng bằng
CLR TR0
Assembler sẽ thực hiện chuyển đổi ký hiệu cần thiết từ TR0 thành đòa chỉ bit
đúng.

5. Các thanh ghi ngắt.
8051/8031 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên. Các ngắt bò cấm sau khi
reset hệ thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt (IE)
ở đòa chỉ A8H. Cả hai thanh ghi được đòa chỉ hóa từng bit.

Cho Phép & Cấm Ngắt.
Mỗi nguồn ngắt cho phép ngắt qua một chức năng của thanh ghi đặc biệt có
các đòa chỉ bit IE ỏ đòa chỉ A8H.Cũng như các bit cho phép riêng biệt cho mỗi
nguồn ngắt,có một bit cho phép/cấm toàn bộ mà được xoá để cấm tất ca ûcác
ngắt hoặc được đặt lên 1 để cho phép tất cả các ngắt


TRx

Bảng .Tóm tắt thanh ghi cho phép ngắt IE (interrup Enable)

Bit Ký hiệu Đòa chỉ bit Mô tả (1 = cho phép, 0 = cấm)
IE.7 EA AFH Cho phép/cấm toàn bộ
IE.6 _ AEH Không được đònh nghóa
IE.5 ET2 ADH Cho phép ngắt từ timer 2(8052)
IE.4 ES ACH Cho phép ngắt của cổng nối tiếp
IE.3 ET1 ABH Cho phép ngắt từ Timer 1
IE.2 EX1 AAH Cho phép ngắt ngoài 1
IE.1 ET0 A9H Cho phép ngắt từ Timer 0
IE.0 EX0 A8H Cho phép ngắt ngoài 0

Hai bit phải được đặt lên 1để cho phép bất kỳ ngắt nào:bit cho phép riêng và bit
cho phép toàn bộ. Vídụ,các ngắt từ timer1 được cho phép như sau:
SETB ET1
SETB EA

Ta cũng có thể sử dụng lệnh sau:
Mov IE,#10001000B
Mặc dù hai cách này có cùng hiệu ứng sau khi reset hệ thống,nhưng hiệu
ứng sẽ khác nếu IE được ghi lúc đang chạy ỏ giữa chương trình.Cách thứ nhất
không ảnh hưởng đến 5 bit khác trong thanh ghi IE ,trái lại cách thứ hai sẽ
xoácác bit khác.Do đó ta nên khởi trò IE theo cách thứ hai ở dầu chương trình
(nghỉa là sau khi mở máy hoặc reset hệ thống ), nhưng cho phép và cấm các
ngắt trong chương trình nên dùng cách thứ nhất để tránh ảnh hưởng của các bit
khác trong thanh ghi IE.







Bảng .Các bit cờ ngắt

Ngắt Cờ Bit
Bên ngoài 0 IE0 TCON.1
Bên ngoài 1 IE1 TCON.3
Timer 1 TF1 TCON.7
Timer 0 TF0 TCON.5
Cổng nối tiếp TI TCON.1
Cổng nối tiếp RI SCON.0
Timer 2 TF2 T2CON.7(8052)
Timer 2 EXF2 T2CON.6(8052)

Các vector ngắt
Khi chấp nhận ngắt, giá trò đòa chỉ nạp vào PC đượcgọi là vector ngắt. Nó

là đòa chỉ bắt đầu của ISR ứng với nguồn tạo ngắt. Các vector ngắt được cho ở
Bảng .Các vector ngắt
Ngắt Cờ Đòa chỉ vector
Reset hệ thống RST 0000H
Bên ngoài 0 IE0 0003H
Timer 0 TF0 000BH
Bên ngoài 1 IE1 0013H
Timer 1 TF1 001BH
Cổng nối tiếp TI hoặc RI 0023H
Timer 2 TF2 hoặc EXF2 002BH










PHẦN 2 : LINH KIỆN MOSFET
I. GIỚI THIỆU:
MOSFET là loại transistor có khả năng đóng ngắt nhanh và tổn hao
do đóng ngắt thấp.Với cổng điều khiển bằng điện trường (điện áp) nên
MOSFET còn được gọi là transistor trường có cực cửa cách ly.MOSFET
được sử dụng nhiều trong các ứng dụng công suất nhỏ(vài kW) và không
thích hợp sử dụng cho các ứng dụng có công suất lớn.Tuy nhiên ,linh kiện
MOSFET khi kết hợp với công nghệ linh kiện GTO lại phát huy hiệu quả
cao và chúng kết hợp với nhau tạo nên linh kiện MTO có công dụng cho
các tải có công suất lớn.

II. CẤU TẠO VÀ HOẠT ĐỘNG :
Linh kiện MOSFET có thể có cấu trúc pnp và npn.Trên H.1.1 mô tả
cấu trúc MOSFET loại npn. Giửa lớp kim loại mạch cổng và các mối nối
n+ và p có lớp điện môi silicon oxid SiO.Điểm thuận lợi cơ bản của
MOSFET làkhả năng điều khiển kích đóng ngắt linh kiện bằng xung điện
áp ở mạch cổng. Khi điện áp dương áp đặt lên giửa cổng G và
Source(emitter), tác dụng của điện trường(FET) sẽ kéo các electron từ
lớp n+ vào lớp p tạo điều kiện hình thành một kênh nối gần cổng nhất, cho
phép dòng điện dẫn từ cực drain(collector) tới cực Source(emitter).
MOSFET đòi hỏi công suất tiêu thụ ở mạch cổng kích thấp , tốc độ
kích đóng nhanh và tổn hao do đóng ngắt thấp. Tuy nhiên ,MOSFET có
điện trở khi dẫn điện lớn. Do đó, công suất tổn hao khi dẫn điện lớn làm
nó không thể phát triển thanh linh kiện công suất lớn.
Đặc tính V-A linh kiện loại n được vẽ trên hình H.1.1 , có dạng
tương tự với đặc tính V-A của BJT . Điểm khác biệt là tham số điều khiển
là điện áp kích UGS thay cho dòng điện kích IBE
MOSFET ở trạng thái ngắt khi điện áp cổng thấp hơn giá trò UGS .
Để MOSFET ở trạng thái đóng , đòi hỏi điện áp cổng tác dụng liên
tục . Dòng điện đi vào mạch cổng điều khiển không đáng kể trừ khi mạch
ở trạng thái quá độ , đóng hoặc ngắt dòng . Lúc đó xuất hiện dòng phóng
và nạp điện cho tụ của mạch cổng . Thời gian đóng ngắt rất nhỏ ,khoảng
vài ns đến hàng trăm ns phụ thuộc vào linh kiện . Điện trở trong của
MOSFET khi dẫn điện Ron thay đổi phụ thuộc vào khả năng chòu áp của
linh kiện . Do đó , các linh kiện MOSFET thường có đònh mức áp thấp
tương ứng với trở kháng trong nhỏ và tổn hao ít.

Tuy nhiên , do tốc độ đóng ngắt nhanh , tổn hao phát sinh thấp . Do











Hình 2.1
đó , với đònh mức áp từ 300V-400V MOSFET tỏ ra ưu điểm so với BJT ở
tần số vài chục kHz .
MOSFET có thể sử dụng đến mức điện áp 1000V , dòng điện vài chục
ampere và với mức điện áp vài trăm volt với dòng cho phép đến khoảng
100A . Điện áp điều khiển tối đa +20V (2V ,5V ,10V….tùy theo loại) ,
mặt dù thông thường có thể dùng áp đến 5V để điều khiển được nó .
Các linh kiện MOSFET có thể đấu song song để mở rộng công suất.
MOSFET gồm 2 loại :MOSFET kênh có sẵn và MOSFET kênh cảm
ứng .
 MOSFET kênh có sẵn :
Từ phiến Si loại p , người ta tạo ra trên bề mặt một lớp loại N dùng
làm kênh dẫn . Ở hai đầu khuếch tán hai miền N+ dùng làm cực nguồn (S)
và cực máng (D) . Trên mặt phiến Si được phủ màng SiO2 bảo vệ . Phía
trên màng này , đối diện với kênh dẫn , gắn một băng kim loại , dùng làm
cực cửa (G) . Thông qua “cửa sổ “ khoét xuyên qua màng SiO2 ở vùng
thích hợp , người ta phun kim loại , tạo tiếp xúc tuyến tính với hai vùng
N+, dùng làm đầu dẫn ra cho cực S vàa cực D. Đáy của phiến Si đôi khi
cũng được gắn vơi sợi kim loại , dùng làm cực đế SUB (substrate) . Thông
thường cực đế được nối với cực nguồn .
Như vậy là đã hình thành cấu trúc MOSFET kênh có sẵn loại N .
Ký hiệu qui ước như hình h.2.1.a .Tương tự , nếu phiến Si ban đầu thuộc
loại N , kênh dẫn loại P thì có MOSFET kênh P , ký hiệu quy ước như

h.2.1.b .











Hình 2.2
Hãy xét hoạt động của MOSFET kênh N trong mạch điện H.2.2 .
Ban đầu , dưới tác dụng của điện áp VDS (do nguồn ED tạo ra) , qua kênh
dẫn và cực máng có dòng điện Id , tạo bởi hạt dẫn đa số của kênh (điện
tử) . Nếu có thêm điện áp VDS (do EG tạo nên ) với cực tính như hình vẽ thì
cũng giống như quá trình xảy ra ở một tụ điện , các điện tích âm sẽ tích tụ
trên cưc G , các điện tích dương sẽ tích tụ trên cực dối diện , tức là trong
kênh dẫn (lớp SiO2 đóng vai trò điện môi của tụ ). Các điện tích dương
này sẽ tái hợp với điện tử , làm giảm nồng độ hạt dẫn vốn có trong kênh ,
khiến điện trở của kênh tăng và dòng máng ID giảm . Càng tăng trò số VGS
dòng ID càng giảm . Chế độ làm việc như thế gọi là chế độ làm nghèo hạt
dẫn (gọi tắt:chế độ nghèo-depletion) . Nếu đổi cực tính nguồn EG (VGS trở
thành điện áp dương ) thì tình hình diễn ra trái lại :càng tăng trò số VGS ,
nồng độ hạt dẫn tronh kênh càng tăng thêm , điện trở kênh càng giảm và
dòng ID càng tăng . Chế độ làm việc với cực tính VGS như thế gọi là chế
độ giàu (enhancement) .
Như vậy là ngay khi VGS=0 , MOSFET kênh có sẵn đã có dòng
máng ban đầu ID#0 . Tùy cực tính của VGS mà MOSFET này hoạt động ở

chế độ giàu hay chế độ nghèo ,dùng giá trò của VGS để điều khiển dòng ID
tăng hay giảm . Trên cơ sở đó , nếu có tín hiệu xoay chiều ES đưa đến ngõ
vào thì hiển nhiên dòng ID sẽ biến đổi theo ES và trên tải ở ngõ ra sẽ nhận
được tín hiệu đã khuếch đại .










Hình 2.3
Đặc tuyến truyền đạt và đặc tuyến ra của MOSFET kênh có sẵn
loại n (H.1.3) hoàn toàn phản ánh quá trình trên . Mỗi đặc tuyến ra bao
gồm 3 đoạn :đoạn ID tăng gần tuyến tính theo VDS , đoạn ID bão hòa
(trạng thái thắt kênh ) và đoạn đánh thủng . Ở đây , chuyển tiếp P-N hình
thành giửa kênh dẫn và phiến Si ban đầu . Do VDS gây ra phân bố điện
thế dọc chiều dài kênh dẫn , tình trạng phân cực nghòch của chuyển tiếp
P-N không đồng đều , dẫn tới hậu quả tiết diện kênh dẫn giảm dần về
phía cực máng . Diểm uốn A trên đặc tuyến ra tương ứng với trạng thái
bắt đầu thắt kênh . Phạm vi AB (vùng thắt kênh ) là miền làm việc chủ
yếu của MOSFET khi khuếch đại tín hiệu . Mạch hoạt động của MOSFET
kênh có sẵn loại P giới thiệu trên H.2.4 .













Hình 2.4
 MOSFET kênh cảm ứng :
Cấu tạo của MOSFET kênh cảm ứng loại N như hình H.2.5 . Giửa
miền máng (loại N+ ) và phiến Si loại P hình thành chuyển tiếp P-N ( cực
đế thường nối với cực nguồn nên chuyển tiếp giửa nguồn và đế bò nối tắt).
Vì vậy khi có điện áp VDS đặt vào , trong mạch máng chỉ có một dòng
điện rất nhỏ chạy qua chuyển tiếp P-N phân cực ngược . Điện trở tương
đương giửa S và D coi như vô cùng lớn .










Hình 2.5
Khi có thêm điện áp dương VGS , điện tích dương sẽ tích tụ trên cực
G , còn điện tích âm tích tụ trên vùng đối diện , phía bên kia của màng
SiO2 ( vùng nằm giửa hai miền N+ ) . Tuy vậy khi VGS còn nhỏ , lượng

điện tích cảm ứng này không lớn , chúng bò lổ trống của phiến loại P tái
hợp mất . Chỉ khi VGS vượt quá một điện áp ngưỡng VT nào đó , lượng
điện tích âm cảm ứng nói trên mới trở nên đáng kể . Chúng tạo thành một
lớp bán dẫn N ở trên bề mặt phiến Si loại P ( do đó có tên là lớp đảo ) ,
đóng vai trò như một kênh dẫn nối liền hai miền N+ của cực nguồn và cực
máng . Do xuất hiện kênh dẫn , điện trở tươnh đương giửa S và D giảm
xuống và do đó dòng máng ID tăng lên . Trò số VGS càng tăng , nồng độ
điện tích âm trong kênh dẫn càng nhiều , dòng ID sẽ càng lớn . Chế độ làm
việc khi VGS > VT như vậy gọi là chế độ làm giàu điện tích ( gọi tắt :chế
độ giàu ) .
Ký hiệu quy ước cùng với sơ đồ khuếch đại của MOSFET kênh cảm
ứng loại N được cho trên hình H.2.6 . Ta thấy rõ : điện áp tín hiệu xoay
chiều es ( xếp chồng lên điện áp một chiều VGS do nguồn EG tạo ra ) điều
khiển nồng độ điện tích âm cảm ứng trong kênh dẫn và do đó điều khiển













Hình 2.6
dòng ID tăng giảm . Trên điện trở RD và trên tải Rl sẽ cdó điện áp đã
khuếch đại của es .

Đặc tuyến truyền đạt và đặc tuyến ra của MOSFET kênh cảm ứng
loại N cho ở hình H.2.7











Hình 2.7
Ta thấy rõ : chỉ khi VGS > VT mới có dòng máng ID . MOSFET kênh
cảm ứng chỉ làm việc ở chế độ giàu .
Nếu phiến Si ban đầu thuộc loại N , các miền nguồn và máng thuộc
loại P+ ,thì sẽ có MOSFET kênh cảm ứng loại P . Ký hiệu như hình H.2.8.
Nguyên lý làm việc tương tự , ở đây điện áp VGS và VDS có cực tính ngược
lại .







Hình 2.8
III. NHẬN XÉT CHUNG :
MOSFET hoạt động dựa trên sự điều khiển điện trở kênh dẫn bởi

điện trường ( điện trường này do điện áp trên hai ngõ vào sinh ra , còn
dòng điện vào luôn luôn xấp xỉ bằng không ) . Từ đó khống chế dòng điện
ra . Do đặc điểm này , người ta xếp transistor trường vào loại linh kiện
điều khiển bằng điện áp (tương tự như đèn điện tử ) , trong khi BJT thuộc
loại điều khiển bằng dòng điện .
Dòng điện máng ID tạo nên bởi chỉ một loại hạt dẫn ( hạt đa số của
kênh ) , do đó transistor trường thuộc loại đơn cực tính . Do không có vai
trò của hạt dẫn thiểu số ,không có quá trình sản sinh và tái hợp của hai
loại hạt dẫn cho nên tham số của MOSFET ít chiệu ảnh hưởng của nhiệt
độ .
Ngõ vào của MOSFET có điện trở rất lớn , dòng điện vào gần như
bằng không nên mạch vào hầu như không tiêu thụ năng lượng . Điều này
đặc biệt thích hợp cho việc khuếch đại các nguồn tín hiệu yếu ,hoặc
nguồn có nội trở lớn .
Vai trò cực nguồn và cực máng có thể đổi lẫn cho nhau mà tham số
của MOSFET không thay đổi đáng kể .
Kích thước các điện cực S,G,D có thể giảm xuống rất bé ( dựa trên
công nghệ MOS ) , thu nhỏ thể tích transistor một cách đáng kể và nhờ đó
transistor trường rất thông dụng trong các vi mạch có mật độ tích hợp cao .
Còn trong lãnh vực điện tử công suất , MOSFET được sử dụng như
một công tắc đóng ngắt các mạch điện .


PHẦN 3 :SƠ ĐỒ CẤU TẠOVÀ HOẠT ĐỘNG

I. SƠ ĐỒ CẤU TẠO :
Sơ đồ cấu tạo của mạch điều khiển tốc độ động cơ một chiều (cả
chiều thuận và chiều nghòch) được cho dưới HÌNH 3.0 . Sơ đồ gồm các
linh kiện : AT89C51, OPTO, MOSFET,BJT A1015, IC 74LS08 và các điện
trở.

II.HOẠT ĐỘNG :
1) HOẠT ĐỘNG CỦA PHẦN CỨNG :
Theo sơ đồ cấu tạo, để điều khiển động cơ DC quay thuận ta phải
điều khiển Q1 và Q3 cùng hoạt động (cùng dẫn) trong khi đó Q2 và Q4
cùng không hoạt động(cùng ngắt).
Q1 hoạt động khi P3.0 tích cực mức thấp . Khi đó Q6 hoạt động dẫn
đến OPTO hoạt động và cực G của Q1 được nối lên nguồn 9V và Q1 dẫn .
Q3 dẫn khi P2.0 và P3.1 cùng tích cực mức cao. P2.0 và P3.1 nối
vào hai ngõ vào cổng AND của IC_74LS08.Ngõ ra cổng AND nối vào cực
G của Q3. Khi P2.0 và P3.1 cùng tích cực mức cao thì ngõ ra của cổng
AND cũng tích cực mức cao dẫn đến G của Q3 cũng tích cực mức cao và
Q3 dẫn .
Tương tự , khi ta điều khiển quay nghòch thì ta điều khiển Q2 và Q4
cùng dẫn và Q1 và Q3 cùng ngắt .Khi đó P3.1 tích cực mức thấp còn P3.0
và P2.1 cùng tích cực mức cao .
Cổng AND của IC_74LS08 có tác dụng bảo vệ phần cứng ,nghóa là
nó không cho Q1 và Q3 hay Q2 và Q4 cùng dẫn (khi đó sẽ ngắn mạch
nguồn động lực ) .
2) HOẠT ĐỘNG CỦA PHẦN MỀM AT89C51 :
Để điều khiển động cơ quay thuận , ta phải kích chân P1.6 tích cực
mức thấp . Khi đó chân P3.0 xuất ra sẽ tích cực mức thấp còn P3.1 tích
cực mức cao và P2.0 xuất ra xung vuông tần số 20kHz .Độ rộng của xung
này được điều khiển tương ứng khi ta kích tích cực mức thấp của từng
chân P1.0, P1.1, P1.2, P1.3 và P1.4 . Ứng với mỗi chân được kích là mỗi
độ rộng khác nhau của xung 20kHz trên chân P2.0 .Khi đó ta sẽ có 5 cấp
tốc độ của động cơ được điều khiển .
Điều khiển quay nghòch tương tự như điều khiển quay thuận nhưng
lúc này chân P1.7 được kích tích cực mức thấp . Khi đó chân P3.1 tích cực
mức thấp , P3.0 tích cực mức cao , xung vuông tần số 20kHz được xuất ra
trên chân P2.1 .Tốc độ động cơ cũng được điều khiển bởi các chân từ

P1.0 đến P1.4 và cho ra 5 cấp tốc độ quay ngược củng như khi quay
thuận.





×