Tải bản đầy đủ (.doc) (34 trang)

Thiết kế bộ đo và khống chế nhiệt độ hiển thị bằng màn hình tinh thể lỏng (LCD)

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 (521.62 KB, 34 trang )

Báo cáo đồ án vi điều khiển

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CƠ KHÍ

****    ****

BÁO CÁO
ĐỒ ÁN VI ĐIỀU KHIỂN

Giáo viên: Lê Anh Dũng
Sinh viên thực hiện:
Nguyễn Thị Dung
Dương Văn Phong
Nguyễn Bá Vịnh

Trường đại học công nghiệp Hà Nội

Page 1


Báo cáo đồ án vi điều khiển

NỘI DUNG
1. Thiết kế bộ đo và khống chế nhiệt độ hiển thị bằng màn hình tinh thể lỏng
(LCD) .
Yêu cầu :
Mạch điện tử được thiết kế trên máy tính bằng phần mềm chuyên dụng.
Sai số cho phép: ±1oC.
Thao tác điều khiển khống chế được mô phỏng bằng 3 LED: LED màu đỏ sáng
khi nhiệt độ môi trường nhỏ hơn nhiệt độ khống chế; LED màu xanh sáng khi nhiệt


độ môi trường lớn hơn nhiệt độ khống chế; LED màu vàng sáng khi nhiệt độ mơi
trường bằng nhiệt độ khống chế.

BÀI LÀM

A. LÍ THUYẾT
I.

Giới thiệu về vi điều khiển 8051 ……………………………...

3

II.

Cảm biến nhiệt độ LM335 ……………………………………

22

III.

Bộ chuyển đổi ADC0804 ……………………………………

23

IV.

Khối hiển thị LCD ……………………………………………

26


B. MẠCH NGUYÊN LÝ ………………………………………………

27

C. CODE ………………………………………………………………..

27

D. KẾT LUẬN…………………………………………………………..

34

Trường đại học công nghiệp Hà Nội

Page 2


Báo cáo đồ án vi điều khiển

A. LÍ THUYẾT
I.

Giới thiệu về vi điều khiển 8051:

IC vi điều khiển 89S52 có các đặc điểm sau :
-

128 byte RAM

-


4 port 8bit

-

Hai bộ định thời 16 bit

-

Giao tiếp nối tiếp

-

64KB không gian bộ nhớ chương trình mở rộng

-

64 KB khơng gian bộ nhớ dữ liệu mở rộng

-

Một bộ xử lý bít (thao tác trên các bit đơn)

-

210 bit được địa chỉ hóa và mỗi vị trí một bít

1.

4kbyte ROM (được lập trình bởi nhà sản xuất chỉ có ở 8051)


Bộ nhân/chia 4µs
CẤU TRÚC BÊN TRONG 89S52

Trường đại học công nghiệp Hà Nội

Page 3


Báo cáo đồ án vi điều khiển

1.1.

Cấu tạo chân

Tuỳ theo khả năng của từng người (về kinh tế, kỹ thuật…) mà các nhà sản xuất
các sản phẩm ứng dụng có thể chọn 1 trong 3 kiểu chân do ATMEL đưa ra.

Trường đại học công nghiệp Hà Nội

Page 4


Báo cáo đồ án vi điều khiển

1.2.

Sơ đồ khối :

Trường đại học công nghiệp Hà Nội


Page 5


Báo cáo đồ án vi điều khiển

Phần chính của vi điều khiển 89S52 là bộ xử lý trung tâm (CPU: central
processing unit ) bao gồm :
-

Các thanh ghi chức năng đặc biệt (SFR).

-

Đơn vị logic học (ALU : Arithmetic Logical Unit )

-

cổng vào ra (I/O)

-

Bộ nhớ chương trình và bộ nhớ dữ liệu.

Đơn vị xữ lý trung tâm nhận trực tiếp xung từ bộ giao động, ngồi ra cịn có khả
năng đưa một tín hiệu giữ nhịp từ bên ngồi.

Trường đại học công nghiệp Hà Nội

Page 6



Báo cáo đồ án vi điều khiển
Chương trình đang chạy có thể cho dừng lại nhờ một khối điêu khiển ngắt ở bên
trong. Các nguồn ngắt có thể là: các biến cố ở bên ngoài, sự tràn bộ đếm định thời, hoặc
cũng có thể là giao diện nối tiếp. Hai bộ định thời 16 bit hoạt động như một bộ đếm.
Các cổng (port0, port1, port2, port3 ). Sữ dụng vào mực đích điều khiển.
Ở cổng 3 cịn có thêm các đường dẫn điều khiển dùng để trao đổi với bộ nhớ bên
ngoài, hoặc để đầu nối giao diện nối tiếp,cũng như các đường ngắt dẫn bên ngoài.
Giao diện nối tiếp cũng chứa một bộ truyền và bộ nhận không đồng bộ làm việc
độc lập với nhau.Tốc độ truyền qua cổng nối tiếp có thể đặt trong dải rộng và được ấn
định bằng một bộ định thời.
Trong vi điều khiển 89S52 có hai thành phần quan trọng khác là bộ nhớ và thanh
ghi :
Bộ nhớ gồm có bộ nhớ RAM và bộ nhớ ROM dùng để lưu trữ dữ liệu và mã lệnh.
Các thanh ghi sữ dụng để lưu trữ thông tin trong q trình xữ lý. Khi CPU làm
việc nó thay đổi nội dung của các thanh ghi.

Hình dạng thật của AT89S52:

1

.3.

Mô tả chức năng các chân:

Trường đại học công nghiệp Hà Nội

Page 7



Báo cáo đồ án vi điều khiển

a.

port0 : là port có hai chức năng ở trên chân từ chân 32 đến 39 trong các

thiết kế cỡ nhỏ ( không dùng bộ nhớ mở rộng) có hai chức năng như các đường I/O. Đối
với các thiết kế cỡ lớn với bộ nhớ mở rộng nó được kết hợp kênh giữa các bus.
b.

port1 : port1 là một port I/O trên các chân từ 1-8. Các chân có thể dùng

cho thiết bị ngoại vi nếu cần. Port1 khơng có chức năng khác vì vậy chúng chỉ được dùng
trong giao tiếp các thiết bị ngồi.
c.

port2 : port2 là một port cơng dụng kép trên các chân 21 đến 28 được

dùng như các đường xuất nhập hoặc là byte cao của bus địa chỉ 16 bit đối với các thiết kế
dùng bộ nhớ mở rộng hoặc các thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngồi.
d.

Port3 : port3 là một port cơng dụng kép trên các chân 10 – 17. Các chân

của port này có nhiều chức năng riêng, các cơng dụng chuyển đổi có liên hệ với các đặc
tính đặc biệt của 8051/89S52 như ở bảng sau:

Trường đại học công nghiệp Hà Nội


Page 8


Báo cáo đồ án vi điều khiển

e.

PSEN (Program Store Enable ) : 89S52 có 4 tín hiệu điều khiển

PSEN là tín hiệu trên chân 29. Nó là tín hiệu điều khiển cho phép bộ nhớ chương
trình mở rộng và thường được nối đến chân OE (Output Enable) của một EPROM để cho
phép đọc các byte mã lệnh.
PSEN sẽ ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của chương trình
được đọc từ EPROM qua bus và được chôt vào thanh ghi lệnh của 89S52 để giải mã lệnh.
Khi thi hành chương trình trong ROM nội (89S52) PSEN sẽ ở mức thụ động( mức cao).
f.

ALE (Address Latch Enable ) :

Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc vớicác xữ lý
8585, 8088, 8086, 8051 dùng ALE một cách tương tự cho việc giải mã các kênh các bus
địa chỉ và dữ liệu khi port 0 được dùng trong chế độ chuyển đổi của nó: vừa là bus dữ
liệu vừa là bus thấp của địa chỉ, ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên
ngoài trong nữa đầu của chu ký bộ nhớ. Sau đó các đường port 0 dùng để xuất hoặc nhập
dữ liệu trong nữa sau chu kỳ của bộ nhớ.
Các xung tín hiệu chân ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và
có thể dùng làm nguồn xung nhịp cho các hệ thống. Nếu xung trên chân 8051 là 12MHz
thì ALE có tần số 2MHz. Chỉ ngoại trừ khi thi hành lệnh MOVX, một xung ALE sẽ bị
mất. Chân này cũng được làm ngõ vào cho xung lập trình cho EPROM trong 8051.
g.


EA (External Access) :

Trường đại học công nghiệp Hà Nội

Page 9


Báo cáo đồ án vi điều khiển
Tín hiệu vào EA trên chân 31 thường được mắc lên mức cao (+5V) hoặc mức
thấp (GND). Nếu ở mức cao, 8051 thi hành chương trình từ ROM nội trong khoảng địa
chỉ thấp (4K). Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng. Khi
dùng 8031, EA luôn được nối mức thấp vì khơng có bộ nhớ chương trình trên chip. Nếu
EA được nối mức thấp bộ nhớ bên trong chương trình 89S52 sẽ bị cấm và chương trình
thi hành từ EPROM mở rộng. Người ta còn dùng chân EA làm chân cấp điện áp 21V khi
lập trình cho EPROM trong 89S52.
h.

SRT (Reset) :

Ngõ vào RST trên chân 9 là ngõ reset của 8051. Khi tín hiệu này được đưa lên
múc cao (trong ít nhất 2 chu kỳ máy ), các thanh ghi trong 89S52 được tải nhưõng giá trị
thích hợp để khởi động hệ thống.
i.

Các ngõ vào bộ dao động trên chip :

Như đã thấy trong các hình trên , 89S52 có một bộ dao động trên chip. Nó thường
được nối với thạch anh giữa hai chân 18 và 19. Các tụ giữa cũng cần thiết như đã vẽ. Tần
số thạch anh thông thường là 12MHz

j.

Các chân nguồn :

89S52 vận hành với nguồn đơn +5V. Vcc được nối vào chân 40 và Vss (GND)
được nối vào chân 20.

2.

TỔ CHỨC BỘ NHỚ.

Trường đại học công nghiệp Hà Nội

Page 10


Báo cáo đồ án vi điều khiển
89S52 có bộ nhớ theo cấu trúc Harvard : có những vùng cho bộ nhớ riêng biệt cho
chương trình, dữ liệu. Như đã nói ở trên, cả chương trình và dữ liệu có thể ở bên trong
89S52, 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 (89S52) 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 như các địa chỉ bộ nhớ khác.

-

Ngăn xếp trong RAM nội thay vì ở trong RAM ngồi như trong các bộ vi

xử lí khác.

Trường đại học cơng nghiệp Hà Nội

Page 11


Báo cáo đồ án vi điều khiển

Chi tiết về bộ nhớ RAM trên chip :
Như ta đã thấy trên hình sau, RAM bên 89S52 đượ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à cac thanh ghi chức năng đặc biệt (80H - FFH).
AT89S52 có 21 thanh ghi chức năng ở vùng trên của RAM nội từ địa chỉ
80H đến FFH.
Thanh ghi trạng thái chương trình : thanh ghi trạng thái của chương trình ở
địa chỉ DOH chứa các bit như sau :

Các thanh ghi port xuất nhập : Các port của AT89S52 bao gồm port 0 ở địa chỉ
90H,port 2 ở địa chỉ A0H,và port 3 ở địa chỉ B0H.Tất cả các port này đều có thể truy xuất
từng bit nên rất thuận tiện cho khả năng giao tiếp.
Các thanh ghi Timer : AT89S52 có chứa 2 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à
8DH(TH1 : byte cao).Việc khởi động timer được set bởi 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.
Các thanh ghi port nối tiếp : AT89S52 chứa một port nối tiếp 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 giao tiếp nối tiếp với các

Trường đại học công nghiệp Hà Nội

Page 12


Báo cáo đồ án vi điều khiển
IC khác . Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả 2
dữ liệu truyền và dữ liệu nhận.Khi truyề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 ở địa chỉ 98H.
Các thanh ghi ngắt : AT89S52 có cấu trúc 6 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ả 2 thanh ghi được địa chỉ hóa từng bit.

Tín hiệu Reset :
VC C

C 7
SW 1
C AP

R 9
R

AT89S52 có ngõ vào reset RST tác động ở mức cao trong khoảng thời gian 2 chu
kỳ , sau đó xuống mức thấp để nó bắt đầu làm việc .RST có thể được kick bằng tay bởi
một nút bấm thông thường.
Mạch tạo dao động :


Trường đại học công nghiệp Hà Nội

Page 13


Báo cáo đồ án vi điều khiển
AT89S52 có một bộ chia tần số bên trong chip,bộ này sẽ cung cấp xung clock
cho các khối trên chip từ nguồn dao động bên ngoài qua 2 chân XTAL1 và XTAL2.
3.

HOẠT ĐỘNG ĐỊNH THỜI CỦA AT89S52

Các bộ định thời (Timer) được sử dụng rộng rãi trong các ứng dụng đo lường và
điều khiển.Vi điều khiển AT89S52 có 3 bộ định thời 16 bit trong đó 2 bộ timer 0 và 1 có
4 chế độ hoạt động,timer 2 có 3 chế độ hoạt động.Các bộ định thời dùng để định khoảng
thời gian(hẹn giờ),đếm sự kiện xảy ra bên ngoài bộ vi điều khiển hoặc tạo tốc độ baud
cho công nối tiếp của vi điều khiển.
Trong các ứng dụng định hoảng thời gian,timer được lập trình sao cho sẽ tràn
sau một khoảng thời gian và thiết lập cờ tràn bằng 1.Cờ tràn được sử dụng bởi chương
trình để thực hiện một hành động tương ứng như kiểm tra trạng thái của các ngõ vào hoặc
gửi các sự kiện cho các ngõ ra.
Đếm sự kiện dùng để xác định số lần xảy ra của một sự kiện.Trong ứng dụng
này người ta tìm cách quy các sự kiện thành sự chuyển mức từ 1 xuống 0 trên cá chân T0
hoặc T1 hoặc T2 để dùng các timer tương ứng đếm các sự kiện đó.
CÁC THANH GHI CỦA BỘ ĐỊNH THỜI
Các thanh ghi của Timer 0 và Timer 1
Thanh ghi chế độ định thời(TMOD)
Thanh ghi TMOD chứa 2 nhóm 4 bit dùng để đặt chế độ làm việc cho Timer 0 và
Timer 1.


Trường đại học công nghiệp Hà Nội

Page 14


Báo cáo đồ án vi điều khiển

Thanh ghi TMOD
7

6

5

4

3

2

1

0
G
ATE1

C/
#T1

Bit

7

M
0

M
1

ATE0
Kí hiệu
GATE1

G

C/
#T0

M

M

1
0
Chức năng
Bit điều khiển
cổng. Khi set lên 1, bộ
định thời chỉ hoạt động

6


C/#T1

trong khi INT1 ở mức cao
Bit chọn chức
năng đếm hoặc định thời.
1= đếm sự kiện
0= định thời trong

5
4

M1

một khoảng thời gian
Bit chọn chế độ

M0

thứ nhất
Bit chọn chế độ
thứ hai
00: chế độ 0 timer 13 bit
01: chế độ 1 –
timer 16 bit
10: chế độ 2 - 8
bit tự lặp lại

Trường đại học công nghiệp Hà Nội

Page 15



Báo cáo đồ án vi điều khiển
11: chế độ 3 –
GATE0

2

tách timer
Bit

C/#T0

3

cổng cho bộ định thời 0
Bit chọn chức

điều

khiển

năng đếm hoặc định thời
1

cho bộ định thời 0
Bit chọn chế độ

M1


thứ nhất cho bộ định thời
0
0

M0

Bit chọn chế độ
thứ 2 cho bộ định thời 0

Thanh ghi điều khiển Timer (TCON)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho Timer 0 và
Timer 1.
TCON.7

TCON.6

TCON.5 TCON.4

TCON.3

T

T

I

TCON.2

TCON.1


TCON.0
T
F1

R1
B

it

F0


T
R0

E1

T1
Chức năng

I

I
E0

I
T0

hiệu
TCO


Điều khiển bộ định thời

N
TCO

TF1

N.7

Cờ tràn của bộ định thời 1. Cờ này được set bởi
phần cứng khi có tràn, được xóa bởi phần mềm, hoặc phần

TCO

TR1

N.6

cứng khi bộ vi xử lí trỏ đến trình phục vụ ngắt
Bit điều khiển hoạt động của bộ định thời 1. Bit
này được set hay xóa bằng phần mềm để điều khiển bộ

TCO

TF0

đinh thời hoạt động hay ngưng
Cờ tràn của bộ định thời 0


Trường đại học công nghiệp Hà Nội

Page 16


Báo cáo đồ án vi điều khiển
N.5
TCO

TR0

Bit điều khiển hoạt động của bộ định thời

TCO

IE1

Cờ ngắt bên ngồi 1(kích khởi cạnh). Cờ này được

N.4
N.3

set bởi phần cứng khi có cạnh âm xuất hiện trên chân
INT1, được xóa bởi phần mềm, hoặc phần cứng khi con
TCO

IT1

N.2


trỏ đến trình phục vụ ngắt
Cờ ngắt bên ngồi 1(kích khởi cạnh hoặc mức). Cờ
này set hay xóa bởi phần mềm khi xảy ra cạnh âm hoặc

TCO

IE0

TCO

IT0

mức thấp ở chân ngắt ngoài
Cờ ngắt bên ngoài 0 (kích khởi cạnh)

N.1
Cờ ngắt bên ngồi 0 (kích khởi cạnh hoặc mức)

N.0

4.

CÁC CHẾ ĐỘ ĐỊNH THỜI CỦA TIMER 0 VÀ 1

1.

Chế độ 0 : là chế độ định thời 13 bit , chế độ này tương thích với các bộ vi

điều khiển trước đó , trong các ứng dụng hiện nay chế độ này khơng cịn thích hợp.
Trong chế độ này bộ định thời dùng 13 bit(8 bit cua TH và 5 bit cao của TL) để

chứa giá trị đếm ,3 bit thấp của TL không được sử dụng.
2.

Chế độ 1 : Trong chế độ này , bộ timer dùng cả 2 thanh ghi TH và TL để

chứa giá trị đếm , vì vậy chế độ này cịn được gọi là chế độ định thời 16 bit . Bit MSB sẽ
là bit D7 của TH còn bit LSB là D0 của TL
3.

Chế độn 2 : Trong chế độ 2 , bộ định thời dùng TL để chứa giá trị đếm và

TH để chứa giá trị nạp lại vì vậy chế độ này còn gọi là chế độ tự nạp lại 8 bit.Sau khi đếm
255 sẽ xảy ra tràn,khi đó TF được đặt bằng 1 đồng thời giá trị của timer tự động được nạp
lại bằng nội dung của TH.
4.

Chế độ 3 : Trong chế độ 3 , Timer 0 được tách thành 2 bộ Timer hoạt động

độc lập , chế độ này sẽ cung cấp cho bộ vi điều khiển thêm một Timer nữa.
Bộ timer thứ nhất với nguồn xung clock được lấy từ bộ chia tần trên chip hoặc
từ bộ tạo xung bên ngoài qua chân T0 tùy thộc vào giá trị của bit C-/T0.Việc điều khiển

Trường đại học công nghiệp Hà Nội

Page 17


Báo cáo đồ án vi điều khiển
hoạt động của bộ thứ nhất do bit GATE , bit TR0 và mức logic trên chân INT0 (giống
chế độ 0 , 1 ,2).Giá trị đếm của Timer được chứa trong TL0 , khi xảy ra tràn cờ TF0 được

đặt bằng một và gây ngắt do Timer 0 (nếu được đặt).
Bộ Timer thứ hai với nguồn xung clock lấy từ bộ chia tần trên chip .Việc hoạt
động của bộ thứ hai chỉ là việc đặt giá trị của bit TR0.Giá trị đếm của Timer được chứa
trong TH0,khi xảy ra tràn cờ TF1 được đặt bằng một và gây ra ngắt do Timer 1 (nếu được
đặt).
Khi Timer 0 được tách thành 2 Timer 8 bit thì Timer 1 vẫn có thể hoạt động
bình thường ở các chế độ 0 , 1 , 2 ,tuy nhiên khi xảy ra tràn cờ TF1 không được thiết lập
bằng một .NHư vậy trong trường hợp này Timer 1 chỉ có thể sử dụng cho những ứng
dụng khơng cần đến ngắt (TF1 = 1),chẳng hạn như tốc độ baud cho port nối tiếp .
Tổ chức ngắt ở AT89S52
AT89S52 chỉ có 6 nguồn ngắt:
-

Ngắt ngoài đến từ chân #INT0.

-

Ngắt ngoài đến từ chân #INT1.

-

Ngắt ngoài do bộ Timer 0.

-

Ngắt ngoài do bộ Timer 0.

-

Ngắt ngoài do bộ Timer 0.


-

Ngắt do Port nối tiếp.

Bảng tóm tắt các ngắt trong AT89S52 như sau:

ST
T

Tên
ngắt

1


tả

INT)

Cờ
ngắt

Ngắ
t ngồi 0

IE0

Thanh
ghi chứa cờ

TCO

Vector
ngắt
0x0003

N

khi có tín
hiệu

tích

cực

theo

Trường đại học cơng nghiệp Hà Nội

Page 18


Báo cáo đồ án vi điều khiển
kiểu

đã

chọn
2


Timer
0

Ngắ

TF0

t tràn timer

TCO
N

0x000
B

0 khi giá trị
timer

tràn

từ giá trị
max
3

INT1

Ngắ

IE1


t ngồi 1

TCO

0x0013

TCO

0x001

N

khi có tín
hiệu

tích

cực

theo

kiểu

đã

chọn
4

Timer
1


Ng
ắt

TF1

tràn

N

B

timer 1 khi
giá trị timer
1 tràn từ
5

Serial
Port

giá trị max
Ngắ

TI,

t cổng nối RI

SCO

0x0023


T2Co

002BH

N

tiếp khi vi
điều khiển
nhận hoặc
truyền
6

Timer
2

xong 1 byte
Ngắ

TX

t tràn timer 2

hoặc n

2 khi giá trị EXF2
timer 2 tràn

Trường đại học công nghiệp Hà Nội


Page 19


Báo cáo đồ án vi điều khiển
Mỗi ngắt được dành cho một vector ngắt kéo dài 8byte. Về mặt lý thuyết, nếu
chương trình đủ ngắn, mã tạo ra chứa đủ trong 8 byte, người lập trình hồn tồn có
thể đặt phần chương trình xử lý ngắt ngay tại vector ngắt. Tuy nhiên trong hầu hết
các trường hợp, chương trình xử lý ngắt có dung lượng mã tạo ra lớn hơn 8byte nên
tại vector ngắt, ta chỉ đặt lệnh nhảy tới chương trình xử lý ngắt nằm ở vùng nhớ khác.
Nếu khơng làm vậy, mã chương trình xử lý ngắt này sẽ lấn sang, đè vào vector ngắt
kế cận.
Cho phép ngắt và cấm ngắt :
M ỗi nguồn ngắt được cho phép hoặc cấm qua một thanh ghi chức năng đặc
biệt có địa chỉ bit IE ở địa chỉ A8H.

Thanh ghi IE là thanh ghi đánh địa chỉ bit, do đó có thể dùng các lệnh tác
động bit để tác động riêng rẽ lên từng bit mà không làm ảnh hưởng đến giá trị các
bit khác. Cờ ngắt hoạt động độc lập với việc cho phép ngắt, điều đó có nghĩa là cờ ngắt

Trường đại học công nghiệp Hà Nội

Page 20


Báo cáo đồ án vi điều khiển
sẽ tự động đặt lên bằng 1 khi có sự kiện gây ngắt xảy ra, bất kể sự kiện đó có được
cho phép ngắt hay không. Do vậy, trước khi cho phép một ngắt, ta nên xóa cờ của
ngắt đó để đảm bảo sau khi cho phép, các sự kiện gây ngắt trong quá khứ khơng thể
gây ngắt nữa. Ví dụ trước khi cho phép ngắt timer0 mà timer 0 đã chạy và tràn (dù là
tràn một hay nhiều lần) thì cờ TF0 sẽ bằng 1, nếu sau đó ta cho phép ngắt timer0 thì

sẽ gây ra ngắt ngay do cờ tràn đang bằng 1 (sự kiện tràn gây ngắt trong trường hợp
này là tràn trong quá khứ, không phải sự kiện ta quan tâm đến). Vì vậy hãy xóa cờ
TF0 trước khi cho phép ngắt tràn timer0. Ngoại trừ cờ của của ngắt nối tiếp và cờ
của ngắt timer2, các cờ ngắt khác đều tự động được xóa khi CPU thực hiện chương
trình ngắt .
Nói đến ngắt khơng thể khơng nói đến mức ưu tiên của ngắt. Mức ưu tiên
của ngắt ở đây có thể được hiểu là sự phân bậc, quyết định xử lý ngắt nào khi hai
hay nhiều ngắt xảy ra.
Ngắt ngồi (External Interrupt)
Như đã nói ở trên, AT89S52 có 2 ngắt ngoài là INT0 và INT1. Ngắt ngoài
được hiểu là ngắt được gây ra bởi sự kiện mức lôgic 0 (mức điện áp thấp, gần 0V)
hoặc sườn xuống (sự chuyển mức điện áp từ mức cao về mức thấp) xảy ra ở chân
ngắt tương ứng (P3.2 với ngắt ngoài 0 và P3.3 với ngắt ngoài 1). Việc lựa chọn kiểu
ngắt được thực hiện bằng các bit IT (Interrupt Type) nằm trong thanh ghi TCON. Đây
là thanh ghi điều khiển timer nhưng 4 bit LSB (bit0..3) được dùng cho các ngắt ngồi.
Khi bit ITx = 1 thì ngắt ngồi tương ứng được chọn kiểu là ngắt theo sườn
xuống, ngược lại nếu bit ITx = 0 thì ngắt ngồi tương ứng được sẽ có kiểu ngắt là ngắt
theo mức thấp. Các bit IE là các bit cờ ngắt ngồi, chỉ có tác dụng trong trường hợp
kiểu ngắt được chọn là ngắt theo sườn xuống.
Khi kiểu ngắt theo sườn xuống được chọn thì ngắt sẽ xảy ra duy nhất một lần
khi có sườn xuống của tín hiệu, sau đó khi tín hiệu ở mức thấp, hoặc có sườn lên,
hoặc ở mức cao thì cũng khơng có ngắt xảy ra nữa cho đến khi có sườn xuống tiếp

Trường đại học cơng nghiệp Hà Nội

Page 21


Báo cáo đồ án vi điều khiển
theo. Cờ ngắt IE sẽ dựng lên khi có sườn xuống và tự động bị xóa khi CPU bắt đầu xử

lý ngắt.
Khi kiểu ngắt theo mức thấp được chọn thì ngắt sẽ xảy ra bất cứ khi nào tín
hiệu tại chân ngắt ở mức thấp. Nếu sau khi xử lý xong ngắt mà tín hiệu vẫn ở mức thấp
thì lại ngắt tiếp, cứ như vậy cho đến khi xử lý xong ngắt lần thứ n , tín hiệu đã lên
mức cao rồi thì thơi không ngắt nữa. Cờ ngắt IE trong trường hợp này khơng có ý
nghĩa gì cả.
Thơng thường kiểu ngắt hay được chọn là ngắt theo sườn xuống.
Ngắt do các timer
AT89S52 có 3 Timer là Timer 0 và Timer 1 và Timer 2. Các Timer
này đều là Timer 16 bit, giá trị đếm max do đó bằng 65535 (đếm từ 0 đến
65535).Ba timer có ngun lý hoạt động hồn tồn giống nhau và độc lập.
Các ngắt do các bộ Timer xảy ra do sự kiện tràn ở các Timer, khi đó các
cờ tràn TFx sẽ đươc đặt bằng 1.Khi ISR được đáp ứng, các cờ TFx sẽ tự động
được xóa bởi phần mềm.
Ngắt do cổng nối tiếp
Ngắt do cổng nối tiếp xảy ra khi hoặc cờ phát ngắt (TI) hoặc cờ ngắt thu
(RI) được đặt bằng 1.ngắt phát xảy ra khi bộ đệm truyền rỗng , ngắt thu xảy ra khi 1 ký
tự đã được nhận xong và đang đợi trong SBUF để được đọc.
Các ngắt do cổng nối tiếp khác các ngắt do timer.cờ gây ra ngắt do PORT nối
tiếp không bị xoá bằng phần cứng khi CPU chuyển tới ISR do có 2 nguồn ngắt do 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.
II.

Cảm biến nhiệt độ LM335:

Trường đại học công nghiệp Hà Nội

Page 22



Báo cáo đồ án vi điều khiển
Ðể đo nhiệt độ được chính xác, tất nhiên cần có một đầu dị thích hợp. Ðầu dị là
một cảm biến nhiệt độ có nhiệm vụ vận chuyển từ nhiệt độ qua tín hiệu điện. Có rất nhiều
loại cảm biến như giới thiệu ở chương V. Nhưng dựa vào lý thuyết và thực tế của mạch
cần thiết kế ta dùng phương pháp đo bằng IC cảm biến nhiệt độ. Các IC cảm biến nhiệt
độ có độ chính xác cao, dễ tìm và giá thành rẽ. Một trong số đó là IC LM335, là loại
thơng dụng trên thị trường hiện nay, đồng thời nó có nhưõng đặc tính làm việc phù hợp
với thiết kế chi tiết của mạch.
a.

LM335 có độ biến thiên theo nhiệt độ: 10mV / 1oC.

b.

Ðộ chính xác cao, tính năng cảm biến nhiệt độ rất nhạy, ở nhiệt độ 25 oC

nó có sai số không quá 1%. Với tầm đo từ 0 oC - 128oC, tín hiệu ngõ ra tuyến tính liên tục
với ngưỡng thay đổi của tín hiệu ngõ vào.
c.

Thơng số kỹ thuật:
Định thang nhiệt độ theo độ celsius( C).
Tín hiệu lối ra bằng 10mv/0 c.
Ðộ chính xác được đảm bảo : khơng kém 0,5 0 c.
Độ chính xác trong vùng nhiệt độ phịng: 0,250 c.

d.

Ðặc tính điện:

Theo thơng số của nhà sản xuất LM335, quan hệ giữa nhiệt độ và

điện áp ngõ ra như sau:
Vout = 0,01?ToK
= 2,73 + 0,01ToC.
Vậy ứng với tầm hoạt động từ 0oC - 100oC ta có sự biến thiên điện áp ngõ ra là:
Ở 0oC thì điện áp ngõ ra Vout = 2,73 (V).
Ở 5oC thì điện áp ngõ ra Vout = 2,78 (V).
Ở 100oC thì điện áp ngõ ra Vout = 3,73 (V).
Tầm biến thiên điện áp tương ứng với nhiệt độ từ 0oC - 100oC là 1V.

Trường đại học công nghiệp Hà Nội

Page 23


Báo cáo đồ án vi điều khiển

III.

Bộ chuyển đổi ADC0804

Bộ ADC0804 là một thiết bị CMOS tích hợp với một bộ chuyển đổi tương tự
sang số 8 bit, một bộ logic điều khiển tương thích. Bộ chuyển đổi tương tự sang số này sử
dụng phương pháp chuyển đổi xấp xỉ, các lối ra dữ liệu song song, các lối ra này đều
tương thích TTL. Thiết bị này loại trừ khả năng cần thiết để điều chỉnh điểm zero bên
ngoài và khả năng điều chỉnh tỉ số làm cho ADC dễ dàng giao tiếp với các bộ vi xử lý.
Các đặc điểm của ADC0804
-


Nguồn ni 5 V, hiệu suất cao.

-

Dãi tín hiệu lối vào tương tự 5V khi nguồn nuôi là +5V. Có thể mở rộng thang đo
bằng các giải pháp kỹ thuật cho từng mạch cụ thể

-

Dễ dàng giao tiếp với vi xữ lý vì đầu ra co bộ đệm 3 trạng thái nên có thể ghép
trực tiếp vào kênh dữ liệu của hệ VXL

-

Tổng sai số chưa chỉnh là ½ LSB.

-

Thời gian chuyển đổi 100µs.

-

Bus dữ liệu 8 bit

-

Các tín hiệu đều tương thích TTL.

-


Tần số xung clock 10khz-1208khz.

-

Đảm bảo sai số tuyến tính trong dãi nhiệt độ từ -40 0C - 85 0C

-

Bộ phát xung nhịp nằm trên chip.

-

Khơng cần điều chỉnh điểm 0.

-

Dịng tiêu thụ cỡ 1.9mA

Trường đại học công nghiệp Hà Nội

Page 24


Báo cáo đồ án vi điều khiển


Sơ đồ chân ADC 0804:

* Ý nghĩa các chân:
-


Các chân từ 11 đên 17 (DB7- DB1) : là các đầu ra số.

-

/CS cho phép chọn IC hoạt động

-

/RD chân tác động từ bên ngoài để IC thực hiện quá trình chuyển đổi.

-

CLKin : Đầu vào xung clock.

-

REF (+)

: điện áp vào chuẩn +5V

-

REF (-)

:điện áp vào chuẩn 0v

-

VCC


-

AGND, RGND: chân nối đất.

-

Vref/2 : ½ điện áp chuẩn.

: nguồn cung cấp

* Hoạt động chuyển đổi:
Quá trình biến đổi được bắt đầu bằng mộ xung thấp ngắn hạn ở lối vào /WR.
Muốn thề điều kiện cần có là một mức thấp của tín hiệu /CS. Sau thời gian biến đổi 100s,
lối ra /INTR chuyển sang mức thấp và báo hiệu việc kêt thúc quá trình biến đổi. Sau đó
qua một mức thấp ở lối vào /RD có thể đọc ra các bit số liệu. Sự truy nhập để đọc sẽ dẫn

Trường đại học công nghiệp Hà Nội

Page 25


×