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

thiết kế và xây dựng mô hình Điều khiển đèn giao thông

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 (663.66 KB, 44 trang )

Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

MỤC LỤC
LỜI MỞ ĐẦU
3
Phần I: GIỚI THIỆU ĐỀ TÀI
4
I. Mục đích về hệ thống điều khiển
4
II. Ưu thế khi sử dụng bộ VĐK
4
III. Trình tự thực hiện
4
PHẦN II : CƠ SỞ LÝ THUYẾT LIÊN QUAN
5
Chương I: Vi điều khiển 89C51
5
I. Giới thiệu chung về VĐK 89C51.
5
1. Sơ đồ khối.
8
2. Sơ đồ chân tín hiệu của 80C51/AT89C51
6
II.Tổ chức bộ nhớ
1. Bộ nhớ chương trình và
8
2.Bộ nhớ chương trình ngồi và
12


III. Chức năng của một số thanh ghi
13
IV. Khối tạo thời gian và bộ đếm
17
V. Hoạt động port nối tiếp
19
1. Giới thiệu
19
2. Thanh ghi điều khiển port nối tiếp
21
VI. Hoạt động ngắt
22
1. Tổ chức ngắt
22
2. Xử lý ngắt
23
3. Các ngắt của AT89C51
24
VII. Bộ nhớ trung tâm của hệ Vi xử lý
26
1. Bộ nhớ chỉ đọc
26
2. Bộ nhớ truy cập ngẫu nhiên
27
CHƯƠNG II: LED 7 ĐOẠN VÀ LED ĐƠN
28
I.CÁC KHÁI NIỆM CƠ BẢN
28
II. Kết Nối Với Vi Điều Khiển
30

III. Giao tiếp vi điều khiển với led 7 đoạn.
32
Chương III: Giới thiệu về các IC cần dùng
33
I. IC GIẢI MÃ
Phần III : Thiết kế và thi công mạch
36
I. Sơ đồ khối và chức năng từng khối.
36
II. Mạch nguồn
36
III. Mạch vi xử lý. ...........................................................................................................38

IV. Mạch giải mã....................................................................................................40
V. Mạch hiển thi.....................................................................................................41
CHƯƠNG II: NỘI DUNG ĐỀ TÀI
I. Hệ thống điều khiển...........................................................................................42
II. Hệ thống điều khiển.........................................................................................43

III. Kết cấu chương trình .......................................................................44
1.Giới thiệu chương trình ..................................................................................44
2.Lưu đồ thuật giải của tồn bộ chương trình..................................................45
GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên



Trường ĐHSPKT Hưng Yên
Đồ An Môn Học
Khoa Điện - Điện Tử
3. Chương trình đèn giao thông.........................................................................50
Phần iv : Tổng kết và khuyến nghị .....................................................................................62
Tài liệu tham khảo.....................................................................63

NHN XẫT CA GIO VIÊN
……………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………

…………………………………………………………………………………
…………………………………………………………………………………

Hưng Yên, Ngày…. tháng ...năm ...
Giáo viên hướng dẫn

Ngu

GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

LỜI MỞ ĐẦU
Ngày nay, sự phát triển mạnh mẽ của khoa học cơng nghệ, cuộc sống
của con người đã có những thay đổi ngày càng tốt hơn, với những trang thiết
bị hiện đại phục vụ cơng cuộc cơng nghiệp hố, hiện đại hố đất nước. Đặc
biệt góp phần vào sự phát triển đó thì ngành kĩ thuật điện tử đã góp phần
khơng nhỏ trong sự nghiệp xây dựng và phát triển đất nước. Trong đó mơn kỹ
thuật vi điều khiển được phát triển mạnh dựa trên những tiến bộ của cơng nghệ

tích hợp các linh kiện bán dẫn và hệ lập trình có bộ nhớ kết hợp với máy tính
điện tử. Từ những thời gian đầu phát triển đã cho thấy sự ưu việt của nó và cho
tới ngày nay tính ưu việt đó ngày càng được khẳng định thêm. Những thành
tựu của nó đã có thể biến được những cái tưởng chừng như khơng thể thành
những cái có thể, góp phần nâng cao đời sống vật chất và tinh thần cho con
người.
Để góp phần làm sáng tỏ hiệu quả của những ứng dụng trong thực tế
của môn vi điều khiển chúng em sau một thời gian học tập được các thầy, cô
giáo trong khoa giảng dạy về các kiến thức chuyên nghành, đồng thời được sự
giúp đỡ nhiệt tình của thầy NGUYỄN VĂN DIÊN chúng em đã thiết kế và xây
dựng mơ hình “ Điều khiển đèn giao thơng ”
Cùng với sự lỗ lực của bản thân nhưng do thời gian, kiến thức và kinh
nghiệm của chúng em còn có hạn nên sẽ khơng thể tránh khỏi những sai sót.
Chúng em rất mong được sự giúp đỡ & tham khảo ý kiến của thầy cơ và các
bạn nhằm đóng góp phát triển thêm đề tài.
Nhóm thực hiện
Nguyễn Thị Huyền
Hồng Quân Kha
GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử


Đồ An Môn Häc

....Kiên

Phần I: GIỚI THIỆU ĐỀ TÀI
I. Mục đích về hệ thống điều khiển hệ thống tín hiệu giao thơng.
Trước tình hình phương tiện tham gia giao thơng ngày càng gia tăng
không ngừng , hệ thống giao thông nước ta ngày dần được nâng cấp nhưng
chưa đáp ứng kịp số lượng gia tăng các phương tiện tham gia quá nhanh. Dẫn
đến tình trạng ùn tắc và tai nạn giao thơng ngày càng gia tăng . Vì vậy để đảm
bảo giao thơng được an tồn và thơng suốt thì việc sử dụng các hệ thống tín
hiệu để điều khiển và phân luồng tại các nút giao thông là rất cần thiết.Với tầm
quan trọng như vậy hệ thống điều khiển tín hiệu giao thông cần đảm bảo các
yêu cầu sau:
- Người tham gia giao thông dễ dàng nhận diện và thực hiện.
- Đảm bảo hoạt động một cách chính xác, liên tục.
- Độ tin cậy cao.
- Đảm bảo làm việc ổn định, lâu dài.
II. Ưu thế khi sử dụng bộ VĐK để điều khiển tín hiệu đèn giao thơng tại
một ngã tư : Điều khiển bằng vi điều khiển.
­Mạch chạy ổn định hơn làm theo kỹ thuật số và không cồng kềnh.
- Trong mạch có thể sử dụng ngay bộ nhớ trong đối với chương trình có
quy mơ nhỏ, rất tiện lợi mà vi xử lý khơng thực hiện được.
- Nó có thể giao tiếp nối tiếp trực tiếp với máy tính mà vi xử lý cũng
giao tiếp được nhưng là giao tiếp song song nên cần có linh kiện chuyển đổi
dữ liệu từ song song sang nối tiếp để giao tiếp với máy tính.
- Do trong vi điều khiển có sử dụng các bộ timer, các hệ thống ngắt, câu
lệnh đơn giản nên việc lập trình đơn giản, dễ thực hiện.
III. Tr×nh tù thùc hiƯn

1. §­a ra ý t­ëng thiÕt kÕ ( sử dụng vi điều khiển).
2. Thiết kế mạch phần cứng điều khiển bảng đèn giao thông.
3. Xác định nội dung cần hiển thị ở dạng chuyển động (đèn
báo tín hiệu và thời gian đếm ngược ).
GVHD: Nguyn Vn Diờn
Huyn

Nhóm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Học

4. Vẽ lưu đồ thuật toán .
5. Viết chương trình điều khiển.
6. Hiu chỉnh lại để phù hợp với thực tÕ.

PHẦN II : CƠ SỞ LÝ THUYẾT
Chương I:Vài điểm về vi điều khiển
I. Giới thiệu chung VĐK 89C51.
Bộ vi điều khiển viết tắt là Micro – controller, là mạch tích hợp trên một
chíp có thể lập trình được, dùng để điều khiển một hệ thống. Dựa vào tập lệnh
của chúng, lập trình viên sẽ viết được các chương trình điều khiển hệ thống
theo ý muốn của con người, sau đó nạp chương trình cho IC vi điều khiển, bộ

vi điều khiển tiến hành đọc, lưu trữ thông tin, đo thời gian, tiến hành đóng mở
một số cơ cấu nào đó.
Trong các thiết bị điện, điện tử dân dụng, các bộ vi điều khiển điều khiển
hoạt động của tivi, máy giặt, đầu đọc laser, điện thoại… Trong hệ thống sản
xuất tự động, bộ vi điều khiển được sử dụng trong robot, dây chuyền tự động.
Các hệ thống càng thơng minh thì vai trò của vi điều khiển càng quan trọng.
Vi điều khiển(VĐK) là một hệ vi xử lý (VXL) được tổ chức trong một
chip. Nó bao gồm:
- Bộ VXL .
- Bộ nhớ chương trình ( ROM / E ROM / EEPROM / FLASH)
- Bộ nhớ giữ liệu ( RAM) .
- Các thanh ghi chức năng , các cổng I/O , cơ chế điều khiển ngắt và truyền tin
nối tiếp .
- Các bộ thời gian dùng trong lĩnh vực chia tần và tạo thời gian thực .
- ……………….
- Bộ VĐK được lập trình để điều khiển các thiết bị thơng tin, viễn thông, thiết
bị đo lường, thiết bị điều chỉnh cũng như các ứng dụng trong công nghệ thông
GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử


Đồ An Môn Häc

tin, và kỹ thuật điều khiển tự động .Có thể xem bộ VĐK như một hệ VXL On
– chip, đối với họ AT89C51, nó có đầy đủ chức năng của một hệ VXL 8 bit,
được điều khiển bởi một lệnh, có số lệnh đủ mạnh, cho phép lập trình bằng
hợp ngữ (Asembly) .

Bộ VDK 89C51 là IC vi điều khiển do hãng Intel sản xuất , IC này có đặc
điểm như sau:
- Hoạt động ở tần số 12MHz
- 4k byte ROM, 128 byte RAM
- 4 PORT I/O 8 bit 2 chiều giao tiếp với thiết bị ngoại vi
- 2 bộ đếm/ định thời 16 bit (Timer 0 và Timer 1)
- Mạch giao tiếp nối tiếp
- CPU
-64k byte không gian bộ nhớ chương trình mở rộng
-64k byte khơng gian bộ nhớ dữ liệu mở rộng
-Bộ nhân / chia 4
- Có hệ thống điều khiển và xử lý ngắt.
- Các kênh điều khiển/ dữ liệu/ địa chỉ.
- Có các thanh nghi chức năng đặc biệt
1. Sơ đồ chân tín hiệu của 80C51/AT89C51.
1.1. Sơ đồ chân 89C51:

GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân


Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

1

40

Vcc

P1 .1

2

39

P0 .0 (AD 0 )

P1 .2

3

38

P0 .1 (AD 1 )


P1 .3

4

37

P0 .2 (AD 2 )

P1 .4

5

36

P0 .3 (AD 3 )

P1 .5

6

35

P0 .4 (AD 4 )

P1 .6

7

34


P0 .5 (AD 5 )

P1 .7

8

33

P0 .6 (AD 6 )

32

P0 .7 (AD 7 )

31

/EA / Vpp

30

ALE /(PROG )

29

/PSEN

28

P2 .7 (A15 )


27

P2 .6 (A14 )

RST

9

(RxD ) P3 .0

10

(TxD ) P3 .1

11

(/INT0 ) P3 .2

12

(/INT1 ) P3 .3

13

(T0 ) P3 .4

14

AT89C51


P1 .0

(T1 ) P3 .5

15

26

P2 .5 (A13 )

(/Wr) P3 .6

16

25

P2 .4 (A12 )

(/Rd) P3 .7

17

24

P2 .3 (A11 )

XTAL 2

18


23

P2 .2 (A10 )

XTAL 1

19

22

P2 .1 (A9 )

GND

20

21

P2 .0 (A8 )

Hình 2.2. IC 80C51/AT89C51

1.2.Chức năng của các chân của 89C51

- P0.0 đến P0.7 là các chân của cổng P0.
- P1.0 đến P1.7 là các chân của cổng P1.
- P2.0 đến P2.7 là các chân của cổng P2
- P3.0 đến P3.7 là các chân của cổng P3
- RxD: Nhận tín hiệu kiểu nối tiếp.

- TxD: Truyền tín hiệu kiểu nối tiếp.
- /INT0: Ngắt ngoài 0.
- /INT1: Ngắt ngoài 1.
- T0: Chân vào 0 của bộ Timer/Counter 0.
- T1: Chân vào 1 của bộ Timer/Counter
- /Wr: Ghi dữ liệu vào bộ nhớ ngoài.
- /Rd: Đọc dữ liệu từ bộ nhớ ngồi.
- RST: Chân vào Reset, tích cực ở mức logic cao trong khoảng 2 chu kỳ máy.
GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

- XTAL1: Chân vào mạch khuếch đaị dao động
- XTAL2: Chân ra từ mạch khuếch đaị dao động.
- /PSEN : Chân cho phép đọc bộ nhớ chương trình ngồi (ROM ngồi).
- ALE (/PROG): Chân tín hiệu cho phép chốt địa chỉ để truy cập bộ nhớ ngoài,
khi On-chip xuất ra byte thấp của địa chỉ. Tín hiệu chốt được kích hoạt ở mức
cao, tần số xung chốt = 1/6 tần số dao động của bộ VĐK. Nó có thể được dùng
cho các bộ Timer ngồi hoặc cho mục đích tạo xung Clock. Đây cũng là chân

nhận xung vào để nạp chương trình cho Flash (hoặc EEPROM) bên trong Onchip khi nó ở mức thấp.
- /EA/Vpp: Cho phép On-chip truy cập bộ nhớ chương trình ngồi khi /EA=0,
nếu /EA=1 thì On-chip sẽ làm việc với bộ nhớ chương trình nội trú. Khi chân
này được cấp nguồn điện áp 12V (Vpp) thì On-chip đảm nhận chức năng nạp
chương trình cho Flash bên trong nó.
- Vcc: Cung cấp dương nguồn cho On-chip (+ 5V).
- GND: nối mass.
2. Cấu trúc bên trong của 89C51
2.1.Sơ đồ khối bên trong của 89C51:

2.2.Bộ nhớ chương trình và bộ nhớ dữ liệu nội trú
GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

Bộ nhớ bên trong 89C51 bao gồm ROM và RAM bao gồm nhiều thành 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
chức năng đặc biệt.80C51 có bộ nhớ theo cấu trúc Harvard: có những vùng
nhớ riêng biệt cho chương trình và 64k byte bộ nhớ chương trình và 64k byte
bộ nhớ dữ liệu mở rộng.

Ram bên trong 89C51 được phân chia như sau:
-Các bank thanh ghi có địa chỉ từ 00h đến 1Fh
-Ram địa chỉ hóa từng bit có địa chỉ từ 20h đến 2Fh
-Ram đa dụng từ 30h đến 7Fh
-Các thanh ghi chức năng đặc biệt từ 80h đến FFh.

a. Bộ nhớ chương trình nội trú
Bộ nhớ chương trình của AT89C51 được tổ chức như thể hiện ở hình trên.
Không gian nhớ cực đại của bộ nhớ này chiếm 64 Kbyte, được định địa chỉ
GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

từ 0000h đến FFFFh, trong đó có 4 Kbyte Flash nội trú bên trong nó và được
định địa chỉ từ 0000h đến 0FFFh. Do đó có thể mở rộng thêm 60 Kbyte bộ nhớ
chương trình bên ngồi, được định địa chỉ từ 1000h đến FFFFh. Tuy nhiên bộ
VĐK này cũng có thể sử dung tồn bộ bộ nhớ chương trình ngoài bao gồm 64
Kbyte được định địa chỉ từ 0000h đến FFFFh.
Cũng từ hình trên ta thấy, thơng qua việc chọn mức logic cho bit /EA có

thể lựa chọn để truy cập bộ nhớ chương trình nội trú (4Kb), bộ nhớ chương
trình mở rộng ngoại trú (60Kb), hoặc tồn bộ bộ nhớ chương trình ngoại trú
bên ngồi On-chip (64Kb). Cụ thể, khi /EA = 1 thì bộ VĐK sử dụng cả bộ nhớ
chương trình nội trú và ngoại trú. Ngược lại, khi /EA = 0 thì bộ VĐK chỉ sử
dụng bộ nhớ chương trình ngoại trú.
Mỗi khi được Reset, bộ VĐK sẽ truy cập bộ nhớ chương trình tại địa chỉ
khởi đầu là 0000h, sau đó nếu cơ chế ngắt được sử dụng thì nó sẽ truy cập tới
địa chỉ quy định trong bảng vecter ngắt.
Khi truy cập bộ nhớ chương trình, bộ VĐK sử dụng xung chọn /PSEN để
điều khiển. Nếu on-chip làm việc với bộ nhớ chương trình nội trú thì chân
phát ra xung chọn /PSEN khơng sử dụng. Nếu bộ VĐK làm việc với bộ nhớ
chương trình ngoại trú thì chân phát ra xung chọn /PSEN được sử dụng. Khi
đó nếu /PSEN = 0 thì cho phép bộ VĐK đọc bộ nhớ chương trình ngồi, ngược
lại nếu /PSEN = 1 thì bộ VĐK chỉ làm việc với bộ nhớ chương trình nội trú.
b. Bộ nhớ dữ liệu nội trú.

AT89C51 có bộ nhớ dữ liệu chiếm một khoảng khơng gian bộ nhớ độc lập
với bộ nhớ chương trình. Dung lượng của RAM nội trú ở họ VĐK này là 128
GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử


Đồ An Môn Häc

Byte, được định địa chỉ từ 00h đến 7Fh. Phạm vi địa chỉ từ 80h đến FFh dành
cho SFR. Tuy nhiên bộ VĐK cũng có thể làm việc với RAM ngoại trú có dung
lượng cực đại là 64 Kbyte được định địa chỉ từ 0000h đến FFFFh.
+ Vùng nhớ 128 Byte thấp
Vùng nhớ 128 Byte thấp được định địa chỉ từ 00h đến 7Fh, được chia thành 3
vùng con như thể hiện ở hình 1.2.
- Vùng thứ nhất: địa chỉ từ 00h đến 1Fh(có độ lớn 32 Byte)
4 băng thanh ghi ( băng 0...băng 3), mỗi băng có 8 thanh ghi 8 bit. Các thanh
ghi trong mỗi băng có tên gọi từ R0 đến R7. Vùng RAM này được truy cập
bằng địa chỉ trực tiếp mức Byte, và quá trình chọn để sử dung băng thanh ghi
nào là tùy thuộc vào việc lựa chon giá trị cho RS1 và RS0 trong PSW.
- Vùng thứ 2: có độ lớn 16 Byte được định địa chỉ từ 20h đến 2Fh, cho phép
truy cập trực tiếp bằng địa chỉ mức bit. Bộ VĐK cung cấp các lệnh có khả
năng truy cập tới vùng nhớ 128 bit này (nếu truy cập ở dạng mức bit thì vùng
này có địa chỉ được định từ 00h đến 7Fh) ở mức bit. ở vùng nhớ này, địa chỉ
được truy xuất dưới dạng Byte hay Bit tuỳ vào lệnh cụ thể. Chẳng hạn, để đặt
bit tại địa chỉ 5Fh có mức logic 1, ta thực hiện lệnh: SETB 5Fh . Sau khi thực
hiện lệnh này, mặc dầu 5Fh là địa chỉ bit cao nhất trong Byte có địa chỉ 2Bh,
nhưng nó khơng làm ảnh hưởng tới các bit khác trong Byte này.
Đây là ưu điểm rõ nét của các bộ VĐK khi thực hiện việc truy xuất các bit
riêng rẽ thơng qua phần mềm. Các bit có thể đựơc đặt, xố, hay thực hiện chức
năng AND, OR...chỉ thơng qua 1 lệnh. Ngồi ra các cổng xuất/nhập cũng có
thể được định địa chỉ dạng bit, điều này làm đơn giản việc giao tiếp bằng phần
mềm với các thiết bị xuất/nhập đơn bit.
- Vùng nhớ còn lại gồm 80 Byte có địa chỉ từ 30h đến 7Fh được dành riêng
cho người sử dụng để lưu trữ dữ liệu. Đây có thể xem là vùng RAM đa mục
đích. Có thể truy cập vùng nhớ này bằng địa chỉ trực tiếp hoặc gián tiếp thông

qua các thanh ghi (R0 hoặc R1) ở dạng mức Byte.

GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

Hình 1.2 – 128 byte thấp của RAM nội
2.3.Bộ nhớ chương trình ngồi và bộ nhớ dữ liệu ngoại trú
a.Bộ nhớ chương trình ngoại trú:
AT 89C51
P1

EPROM
AD 0...AD 7

P0
/EA

Latch

D Q

A 0...A 7

ALE

P2
P3

PSEN

GVHD: Nguyễn Văn Diên
Huyền

A 8...A 15
/0E

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử
Truy cp b nh chng trỡnh ngoi

Đồ An Môn Học


B nh chng trỡnh ngoài là bộ nhớ chỉ đọc, được cho phép bởi tín hiệu
/PSEN. Khi có một EPROM ngồi việc sử dụng, cả P0 và P2 đều khơng cịn là
các cổng I/O nữa. Khi bộ vi điều khiển truy cập bộ nhớ chương trình ngoại trú,
nó ln sử dụng kênh địa chỉ 16 bit thông qua P0 và P2.
Một chu kỳ máy của bộ vi điều khiển có 12 chu kỳ dao động. Nếu bộ dao
động trên chíp có tần số 12MHz, thì một chu kỳ máy dài 1µs . Trong một chu
kỳ máy điển hình, ALE có hai xung và hai byte của lệnh được đọc từ bộ nhớ
chương trình (nếu lệnh chỉ có một byte thì byte thứ hai được loại bỏ). Khi truy
cập bộ nhớ chương trình ngoại trú, bộ vi điều khiển phát ra hai xung chốt địa
chỉ trong mỗi chu kỳ máy. Mỗi xung chốt tồn tại trong hai chu kỳ dao động từ
P2 - S1 đến P1 – S2, và từ P2 – S4 đến P1 – S5.
Để địa chỉ hố bộ nhớ chương trình ngoại trú, byte thấp của địa chỉ
(A0…A7) từ bộ đếm chương trình của bộ vi điều khiển được xuất qua cổng P0
tại các trạng thái S2 và S5 của chu kỳ máy, byte cao của địa chỉ (A8…A15) từ
bộ đếm chương trình được xuất qua cổng P2 trong khoảng thời gian của cả chu
kỳ máy. Tiếp theo xung chốt, bộ vi điều khiển phát ra xung chọn /PSEN. Mỗi
chu kỳ máy của chu kỳ lệnh gồm hai xung chọn, mỗi xung chọn tồn tại trong 3
chu kỳ dao động từ P1 – S3 đến hết P1 – S4 và từ P1 – S6 đến hết P1 – S1 của
chu kỳ máy tiếp theo. Trong khoảng thời gian phát xung chọn thì byte mã lệnh
được đọc từ bộ nhớ chương trình để nhập và on chip.

3. Chức năng của một số thanh ghi đặc biệt của 89C51
SFR đảm nhiệm các chức năng khác nhau trong bộ On- chip . Chúng nằm
ở RAM bên trong On- chip , chiếm vùng không gian trong bộ nhớ 128 Byte
được định đại chỉ từ 80h đến FFh . Cấu trúc của SFR bao gồm các chức năng
thể hiện theo bảng sau :
Ký hiệu

Tên gọi


Địa chỉ

Giá trị

*ACC

Thanh ghi tích luỹ.

0F0h

00000000b

GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hồng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử
*B
Thanh ghi B.

Đồ An M«n Häc
0F0h


00000000b

*PSW

Từ trạngthái chương trình.

0D0h

00000000b

SP

Con trỏ ngăn xếp .

81h

00000111b

DPH

Byte cao của con trỏ dữ liệu 0

83h

00000000b

DPL

Byte thấp của con trỏ dữ liệu 0


82h

00000000b

*P0

Cổng 0

80h

11111111b

*P1

Cổng 1.

90h

11111111b

*P2

Cổng 2.

0A09h

11111111b

*P3


Cổng 3.

0B0h

11111111b

*IP

TG điêù khiển ngắt ưu tiên .

0B8h

Xxx00000b

*IE

TG điếu khiển cho phép ngắt

0A8h

0xx00000b

TMOD

Điều khiển kiểu Time/ counter

89h

00000000b


*TCON

TG điều khiển kiểu Time/ counter

88hh

00000000b

TH0

Byte cao của Time / Counter 0

8Ch

00000000b

TL0

Byte thấp của Time / Counter 0

8Ah

00000000b

TH1

Byte cao của Time / Counter 1.

8Dh


00000000b

TL1

Byte thấp của Time / Counter 1

8Bh

00000000b

98h

00000000b

99h

Indeterminate

87h

0xxx0000b

*SCON
SBUF

Serial Control.
Serial Dât Buffer.

PCON


Power Control

3.1. Các thanh ghi chức năng đặc biệt.
Các thanh ghi trong AT89C51 được định dạng như một phần của RAM
trên chíp. Vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi trực
tiếp, sẽ khơng có lợi khi đặt chúng vào trong RAM trên chip). Đó là lý do để
AT89C51 có nhiều thanh ghi. Cũng như R0 đến R7, có 21 thanh ghi chức năng
đặc biệt ở vùng trên của RAM nội, từ địa chỉ 80H đến FFH. Chú ý rằng hầu
hết địa chỉ từ 80H đến FFH không được định nghĩa. Chỉ có 21 địa chỉ SFR là
được định nghĩa.
Ngoại trừ tích luỹ A có thể được truy xuất ngầm như đã nói, đa số các SFR
được truy xuất dùng địa chỉ trực tiếp. Chú ý rằng một vài SFR có thể được địa
chỉ hoá bit hoặc byte. Người thiết kế phải thận trọng khi truy xuất bit và byte
GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

a.Thanh ghi trạng thái chương trình:
Từ trạng chương (PSW) ở địa chỉ D0H chứa các bit trạng thái như bảng

tóm tắt sau:
Bit

Ký hiệu

Địa chỉ

ý nghĩa

PSW.7

CY

D7H

Cờ nhớ

PSW.6

AC

D6H

Cờ nhớ phụ

PSW.5

F0

D5H


Cờ 0

PSW.4

RS1

D4H

Bit 1 chọn thanh ghi

PSW.3

RS0

D3H

Bit chọn băng thanh ghi
00 = bank 0; địa chỉ 00H - 07H
01 = bank; địa chỉ 08H – 0FH
10 = bank 2; địa chỉ 10H – 17H
11 = back 3; địa chỉ 18H – 1FH

PSW.2

OV

D2H

Cờ tràn


D1H

Dự trữ

D0H

Cờ parity chẵn

PSW.1
PSW.0

P

Từ trạng thái chương trình

• Cờ nhớ (CY) : Thơng thường nó được dùng cho các lệnh tốn học : nó sẽ
được set nếu có một số nhớ sinh ra bởi phép cộng hoặc có một số mượn phép
trừ. Ví dụ, nếu thanh ghi tích luỹ chứa FFH, thì lệnh sau: ADD A,#1
Sẽ trở về thanh ghi tích luỹ kết quả 00H và set cờ nhớ trong PSW
Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thi
hành trên bit.
• Cờ nhớ phụ:
Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết quả của 4 bit thấp
trong khoảng OAH đến OFH. Nếu các giá trị cộng được là số BCD, thì sau
lệnh cộng cần có DA A (hiệu chỉnh thập phân thanh ghi tích luỹ) để mang kết
quả lớn hơn 9 trở về tâm từ 0 đến 9.
• Cờ 0
Cờ 0 (F0) là một bit cờ đa dụng dành các ứng dụng của người dùng
• Các bit chọn bank thanh ghi:

GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

Các bit chọn bank thanh ghi (RS0 và RS1) xác định bank thanh ghi được
tích cực. Chúng được xố sau khi reset hệ thống và được thay đổi bằng phần
mềm nếu cần
• Cờ tràn(OV):
Cờ tràn (OV) được set một lệnh cộng hoặc trừ nếu có một phép tốn bị
tràn. Khi các số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm
tra bit này để xác định xem kết quả của nó có nằm trong tầm xác định không.
Khi các số không dấu được cộng, bit OV có thể được bỏ qua. Các kết quả
lớn hơn + 127 hoặc nhỏ hơn -128 sẽ set bit OV.
b. Thanh ghi B:
Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi tích luỹ A cho
các phép tốn nhân và chia. Lệnh MUL AB sẽ nhân các giá trị không dấu 8 bit
trong A và B rồi trả về kết quả 16 bit trong A (byte thấp) và B (byte cao). Lệnh
DIV AB sẽ chia A cho B rồi trả kết quả nguyên trong A và phần nguyên trong
B. Thanh ghi B cũng có thể xem như thanh ghi đệm đa dụng. Nó được địa chỉ

hố tong bit bằng các địa chỉ bit FOH đến F7H.
c. Con 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
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ẽ
dọc dữ liệu làm giảm SP. Ngăn xếp của AT89C51 đượ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 AT89C51.
d. Con trỏ dữ liệu:
Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài là một thanh
ghi 16 bit ở địa chỉ 82H (DPL: byte thấp) và 83H (DPH: byte cao).

e. Các thanh ghi port xuất nhập:

GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc


Các port của AT89C51 bao gồm Port0 ở địa chỉ 80H, Port1 ở địa chỉ 90H,
port2 ở địa chỉ A0H và port3 ở địa chỉ B0H. Tất cả các port đều được địa chỉ
hố tong bit. Điều đó cung cấp một khả năng giao tiếp thuận lợi.
f. Các thanh ghi port nối tiếp:
AT89C51 chứa một port nối tiếp trên chip dành cho việc trao đổi thông
tin với các thiết bị nối tiếp như máy tính, modem hoặc cho việc giao tiếp với
các IC khác có giao tiếp nối tiếp. Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp
(SBUF) ở địa chỉ 99H sẽ giữ cả hai dữ liệu truyền và nhận. Khi truyền dữ liệu
thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF. Các mode vận hành khác
nhau được lập trình qua thanh ghi điều khiển port nối tiếp (SCON) (được địa
chỉ hoá từng bit) ở địa chỉ 98H.
g. Các thanh ghi ngắt:
AT89C51 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ỉ 8AH. Cả hai thanh ghi được địa chỉ hoá tưng bit.
3.2. Khối tạo thời gian và bộ đếm (Time / Counter).
On - chip AT89C51 có 2 thanh ghi Time/ Counter dài 16 bit, đó là: Time
0; Time1. Khi thanh ghi Time/ Counter làm việc ở kiểu Time, sau mỗi xhu kỳ
máy nội dung trong thanh ghi được gia tăng thêm một đơn vị. Vì vậy thanh
ghi này đếm số chu kỳ máy. Một chu kỳ có 12 dao động,do đó tốc độ đếm của
thanh ghi là 1/12 tần số dao động. Khi thanh ghi làm việc ở kiểu Counter, xung
nhịp bên ngoài được đưa vào vào để đếm ở T0 hoặc T1. Nội dung thanh ghi
được tăng lên khi có sự chuyển trạng thái từ 1 về 0 tại chân đầu vào ngồi T0
hoặc T1.Xung nhịp ở đầu ngịai được lấy mẫu tại thời điểm S5P2 của mỗi chu
kỳ máy. Khi quá trình lấy mẫu phát hiện ra mức cao ở 1 chu kỳ và mức thấp ở
chu kỳ tiếp theo , thì bộ đếm được tăng lên . Giá trị mới của bộ đếm xuất hiện
trong thanh ghi tại thời điểm S3P1 của chu kỳ máy sau khi sự chuyển trạng
thái đã được phát hiện . Vì vậy để nội dung của thanh ghi tăng lên 1 đơn vị
phải mất 2 chu kỳ máy , nên tốc độ đếm tối đa là 1/24 tần số dao động . Khơng
có sự giới hạn số vịng thực hiện của tín hiệu ở đầu vào ngồi , nhưng nó sẽ

giữ ít nhất 1 chu kỳ máy đầy đủ để đảm bảo chắc chắn rằng một mức đã cho
được lấy mẫu ít nhất 1 lần nữa trước khi thay đổi.
GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

a. Time 0 và Time 1
Trong AT 89 C51 . Chức năng Time hay Counter được chọn lựa bởi các
bit điều khiển trong thanh ghi TMOD . Hai bộ Time/ Counter này có 4 chế độ
hoạt động , được lựa chọn bởi cặp bit ( M1, M0) trong TN0D. Chế độ 0 , 1 và
2 giống nhau cho các chức năng Timer/ Counter , nhưng chế độ 3 thì khác .
Bốn chế độ hoạt động được mô tả như sau:
+ Chế độ 0:
Cả 2 bộ Time 0 và 1 ở chế độ có cấu hình như một thanh ghi 13 bit , bao gồm
8 bit của thanh ghi THx và 5 bit thấp của TLx . 3 bit cao của TLx không xác
định chắc chắn , nên được làm ngơ .
Khi hoạt động ở chức năng thời gian thì bit C/(T)= 0 do vậy xung nhịp từ bộ
dao động nội , qua bộ chia tần ra tần số cho ra tần số f = focs/12 được đưa vào
bộ đếm trong thanh ghi Time/ Counter. Khi hoạt động ở chức năng bộ đếm

thì bit C/ (T)

+ Chế độ 1;
Hoạt động tương tự như chế độ 0 , chỉ khác thanh ghi Time/ Counter được sử
dụng cả 16 bit .Xung nhịp được kết hợp với các thanh ghi thời gian byte thấp
và byte cao (TH1 và TL1). Khi xung clock được nhận , bộ Time sẽ đếm tăng
lên : 0000h , 0001h, 0002,…. Khi hiện tượng tràn xẩy ra ,cờ tràn sẽ chuyển
FFFFh về 0000h , và bộ Time tiếp tục đếm . Cờ tràn của Time 1 là bit TF1 ở
trong TCON , nó được đọc và ghi ở phần mềm :

GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

+ Chế độ 2
Chế độ hoạt động cũng tương tự như độ trên, nhưng nó được tổ chức như bộ 8
bit (TL1) với chế độ tự động nạp lại. Khi xảy ra hiện tượng tràn ở TL1, không
chỉ thiết lập bit TF1 mà còn tự động nạp lại cho phép nội dung của TH1, đã
được thiết lập ở phần mềm. Q trình nạp lại cho phép nội dung của TH1

khơng bị thay đổi. Chế độ hoạt động được mô tả như sau :

+ Chế độ 3
Chế độ này chức năng của Time/ Counter 0 và chức năng của Time/
Counter 1 khác nhau . Bộ Time 1 ở chế độ 3 chỉ chứa chức năng đếm của nó ,
kết qủa giống khi đặt TR1 = 0 . Bộ Time 0 ở chế độ 3 thiết lập TH0 , TL0 như
là hai bộ đếm riêng biệt .
Chế độ 3 thường dùng khi yêu cầu cần có bộ thời gian hoặc bộ đếm ngồi 8
bit.
4. Hoạt động port nối tiếp
4.1. Giới thiệu
AT89C51 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế độ
khác trên một dãy tần số rộng. Chức năng chủ yếu của một port nối tiếp là thực
hiện chuyển đổi song song với dữ liệu nhập.
GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

Truy xuất phần cứng đến port nối tiếp qua các chân TXD và RXD. Các chân

này có các chức năng khác với hai bit của port 3. P3.1 ở chân 11 (TXD) và
P3.0 ở chân 10 (RXD).
Port nối tiếp cho hoạt động song công (full duplex: thu và phát đồng thời)
và đệm lúc thu cho phép một ký tự sẽ được thu và được giữ trong khi ký tự thư
hai được nhận. Nếu CPU đọc ký tự thứ nhất trước khi ký tự thứ hai được thu
đầy đủ thì dữ liệu sẽ không bị mất. Hai thanh ghi chức năng đặc biệt cho phép
phần mềm truy xuất đến port nối tiếp là: SBUF và SCON. Bộ đếm port nối
tiếp (SBUF) ở địa chỉ 99H thật sự là hai bộ đếm. Viết vào SBUF để truy xuất
dữ liệu thu được. Đây là hai thanh ghi riêng biệt thanh ghi chỉ ghi để phát và
thanh ghi để thu.

Sơ đồ bus nối tiếp

Thanh ghi điều khiển port nối tiếp (SCON) ở địa chỉ 98H là thanh ghi có
địa chỉ bit chứa các bit trạng thái và các bit điều khiển. Các bit điều khiển đặt
chế độ hoạt động cho port nối tiếp, và các bit trạng thái báo cáo kết thúc việc
phát hoặc thu ký tự. Các bit trạng thái có thể được kiểm tra bằng phần mềm
hoặc có thể được lập trình để tạo ngắt.
Tần số làm việc của port nối tiếp cịn gọi là tốc độ baud có thể cố định (lấy
từ bộ dao động của chip). Nếu sử dụng tốc độ baud để thay đổi timer 1 sữ cung
cấp xung nhịp tốc độ baud và phải được lập trình.
GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên



Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

4.2. Thanh ghi điều khiển port nối tiếp
Chế độ hoạt động của port nối tiếp được đặt bằng cách chi vào thanh ghi chế
độ port nối tiếp (SCON) ở địa chỉ 98H. Sau đây các bảng tóm tắt thanh ghi và
chế độ của port nối tiếp
Bit

Ký hiệu

địa chỉ

Mô tả

SCON.7

SM0

9FH

Bit 0 của chế độ port nối tiếp

SCON.6

SM1


9EH

Bit 1 của chế độ port nối tiếp

SCON.5

SM2

9DH

Bit 2 của chế độ port nối tiếp cho
phép truyền thông tin đã xử lý trong
các chế độ 2 và 3; RI sẽ không bị
tác động nếu bit thứ 9 thu được là 0

SCON.4

REN

9CH

Cho phép bộ thu phải đặt lên 1 để
thu (nhận) các ký tự

SCON.3

TB8

9BH


Bit 8 phát, bit thứ 9 được phát các
chế độ 2 và 3; được đặt và xoá bằng
phần mềm

SCON.2

RB8

9AH

Bit 8 thu, bit thứ 9 thu

SCON.2

T1

99H

Cờ ngắt phát. Đặt lên 1 khi kết thúc
phát ký tự ; được xoá bằng phần
mềm

SCON.0

R1

98H

Cờ ngắt thu. Đặt lên 1 khi kết thúc
thu ký tự; được xoá bằng phần mềm


Tóm tắt thanh ghi chế độ port nối tiếp SCON.
SM0

SM1

Chế độ

Mô tả

Tốc độ baud

0

0

0

Thanh ghi dịch

Cố định (Fosc/12)

0

1

1

UART 8 bit


Thay đổi ( đằt bằng timer)

1

0

2

UART 9 bit

Thay đổi (Fosc/12 hoặc

GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc
Fosc/64)

1


1

3

UART 9 bit

Thay đổi ( đằt bằng timer)

Các chế độ port nối tiếp

Trước khi sử dụng port nối, phải khởi động SCON cho đúng chế độ. Ví dụ
lệnh sau:
MOV SCON,#0101001B
Khởi động port nối tiếp cho chế độ 1 (SMO/SM1 = 0/1), cho phép bộ thu
(REN = 1) và đặt cờ ngắt phát (TP = 1) để chỉ bộ phát sẵn sàng hoạt động.
5. Hoạt động ngắt
Ngắt là hoạt động ngừng tạm thời một chương trình này để thi hành một
chương trình khác. Các ngắt có một vai trị quan trọng trong thiết kế và khả
năng thực thi của vi điều khiển. Chúng cho phép hệ thống đáp ứng không cùng
lúc tới một công việc và giải quyết một công việc đó trong khi một chương
trình khác đang thực thi.
Một hệ thống được điều khiển bằng ngắt cho ảo giác là làm nhiều việc
đồng thời. Dĩ nhiên CPU mỗi lần không thể thực thi một chương trình để
thực thi một chương trình khác, rồi quay về chương trình ban đầu. Khi có u
cầu ngắt. Chương trình giải quyết ngắt được gọi là chương trình phục vụ ngắt
(ISR: Interrup Sevice Reutine).
5.1. Tổ chức ngắt
Ở AT89C51 có 5 nguồn ngắt:- 2 ngắt ngồi
- 2 ngắt timer
- 1 ngắt port nối tiếp

Tất cả các ngắt sẽ không được đặt sau khi reset hệ thống và cho phép ngắt
riêng rẽ bởi phần mềm.
a. Cho phép và không cho phép ngắt.
Mỗi nguồn ngắt được cho phép hoặc không cho phép từng ngắt một qua
thanh ghi chức năng đặc biệt cố định địa chỉ bit IE (Intereup Enable: cho phép
ngắt ở địa chỉ A8H. Cũng như các bit cho phép mỗi nguồn ngắt, có một bit cho
phép hoặc cấm tồn bộ được xố để cấm tất cả ngắt hoặc được đặt lên 1 để cho
phép tất cả các ngắt
Bit

Ký hiệu

GVHD: Nguyễn Văn Diên
Huyền

địa chỉ

Mô tả (1 = cho phép, 0 = cấm)
Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc


IE.7

EA

AFH

Cho phép hoặc cấm tồn bộ

IE.6

EA

AEH

Khơng được định nghĩa

IE.5

ET5

ADH

Cho phép ngắt từ timer 2 (8052)

IE.4

E5

ACH


Cho phép ngắt port 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 ngồi 0

Tóm tắt thanh ghi IE
b. Ưu tiên ngắt:
Mỗi nguồn ngắt được lập trình riêng vào một trong hai mức ưu tiên qua
thanh ghi chức năng đặc biệt được địa chỉ bit IP (Interrup Pritority: ưu tiên
ngắt) ở địa chỉ B8H.
Bit

Ký hiệu địa chỉ

Mô tả (1 = cho phép, 0 = cấm)

IP.7

Không được định nghĩa

IP.6

Không được định nghĩa

IP.5

PT2

BDH

Ưu tiên ngắt từ timer 2 (8052)


IP.4

PS

BCH

Ưu tiên ngắt port nối tiếp

IP.3

PT1

BBH

Ưu tiên ngắt từ timer 1

IP.2

PX1

BAH

Ưu tiên ngắt ngoài 1

IP.1

PT0

B9H


Ưu tiên ngắt từ timer 0

IP.0

PX0

B8H

Ưu tiên ngắt ngồi 0
Tóm tắt thanh ghi IP

Các ngắt ưu tiên được xoá sau khi reset hệ thống để đặt tất cả các ngắt ở
mức ưu tiên thấp hơn.
5.2. Xử lý ngắt
Khi có một ngắt xảy ra và được CPU chấp nhận, chương trình chính bị
ngắt qng. Những hoạt động sau xảy ra:
- Thi hành hoàn chỉnh lệnh đang thi hành
- Các DC vào ngăn xếp
- Trạng thái ngắt hiện hành được cất bên trong.
GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên



Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

- Các ngắt được chặn tại mức của ngắt
- Nạp DC vào địa chỉ vector ISR
- ISR thực thi:
ISR thực thi và đáp ứng ngắt. ISR hoàn tất bằng lệnh RETI. Điều này làm
lấy lại giá trị cũ của PC từ ngăn xếp và lấy lai trạng thái ngắt cũ. Chương trình
lại tiếp tục thi hành tại nơi mà nó dừng.


Các vector ngắt.

Khi chấp nhận ngắt, giá trị được nạp vào PC được gọi là vector ngắt. Nó là
địa chỉ bắt đầu của ISR cho nguồn tạo ngắt. Các vector ngắt được cho ở bảng
sau:
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

Port nối tiếp

TI hoặc RI

0023H


Các vector ngắt
Vector reset hệ thống (RST ở địa chỉ 0000H) nó giống như một ngắt. Nó
ngắt chương trình chính và tải vào PC một giá trị mới.
Khi chỉ đến một ngắt cờ gây ngắt tự động bị xoá bới phần cứng, trừ ra
RI và TI cho các ngắt cổng nối tiếp. Vì có hai nguồn có thể có cho ngắt này,
khơng thực tế để CPU xoá cờ ngắt này. Các bit phải được kiểm tra trong ISR
để xác định nguồn ngắt và cờ tạo ngắt sẽ được xoá bằng phần mềm.
5.3. Các ngắt của AT89C51
a. Các ngắt timer

GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị
Hoàng Quân

Kha
...Kiên


Trường ĐHSPKT Hưng Yên
Khoa Điện - Điện Tử

Đồ An Môn Häc

Các ngắt timer có địa chỉ vector ngắt là 000BH (timer 0) và 001BH (timer
1). Ngắt timer xảy ra khi các thanh ghi timer (TLx, ITHx) tràn và set cờ báo
tràn (TFx) lên 1. Các cờ timer (TFx) không bị xoá bằng phần mềm. Khi cho
phép các ngắt,TFx tự động bị xoá bằng phần cứng khi CPU chuyển đến ngắt.
b.


Các ngắt cổng nối tiếp.

Ngắt cổng nối tiếp xảy ra khi hoặc cờ phát (TI) hoặc cờ ngắt thu (KI) được
đặt lên 1. Ngắt phát xảy ra khi một ký tự đã được nhận xong và đang đợi trong
SBUP để được đọc.

Các ngắt cổng nối tiếp khác với các ngắt timer. Cờ gây ra ngắt cổng nối
tiếp khơng bị xố bằng phần cứng khi CPU chuyển tới ngắt. Do có hai nguông
ngắt cổng nối tiếp TI và RI. Nguồn ngắt phải được xác định trong ISR và cờ
tạo ngắt sẽ được xoá bằng phần mềm. Các ngắt timer cờ ngát được xoá bằng
phần cứng khi CPU hướng tới ISR.
c. Các ngắt ngồi:
Các ngắt ngồi xảy ra khi có một mức thấp hoặc cạnh xuống trên chân
INT0 hoặc INT1 của vi điều khiển. Đây là chức năng chuyển đổi của các bit
port 3. (port 3.2 và port 3.3).
Các cờ tạo ngắt này là các bit IE0 và IE1 trong TCON. Khi quyền điều
khiển đã chuyển đến ISR, cờ tạo ra ngắt chỉ được xố nếu ngắt được tích cực
bằng cạnh xuống. Nếu ngắt được tích cực theo mức, thì nguồn u cầu ngắt
bên ngoài sẽ điều khiển mức của cờ thay cho phần cứng.
Sự lựa chọn ngắt tích cực mức thấp hay tích cực mức cạnh xuống được
lập trình qua các bit IT0 và IT1 trong TCON. Nếu IT1 = 0, ngắt ngoài 1 được
tác động bằng mức thấp ở chân IT1. Nếu IT1 = 1, ngắt ngoài 1 được tác động
bằng cạnh xuống. Trong chế độ này, nếu các mẫu liên tiếp trên chân INT1 chỉ
mức cao trong một chu kỳ và chỉ mức thấp tring chu kỳ kế, cờ yêu cầu ngắt
IE1 trong TCON được đặt lên 1, rồi bit IE yêu cầu ngắt.
GVHD: Nguyễn Văn Diên
Huyền

Nhãm SVTH : Nguyễn Thị

Hoàng Quân

Kha
...Kiên


×