Luận Án Tốt Nghiệp Trang 1
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
PHẦN I: GIỚI THIỆU CHUNG
CHƯƠNG I: SƠ LƯC VỀ HỆ THỐNG BÁO CHÁY VÀ ĐIỀU KHIỂN
A. HỆ THỐNG BÁO CHÁY:
I. CÁCH NHẬN BIẾT VÀ BÁO CHÁY:
Khi một đám cháy xảy ra, ở những vùng cháy thường có những dấu hiệu
sau:
Lửa, khói, vật liệu chỗ cháy bò phá hủy.
Nhiệt độ vùng cháy tăng lên cao.
Không khí bò Oxy hóa mạnh.
Có mùi cháy, mùi khét.
Để đề phòng cháy chúng ta có thể dựa vào những dấu hiệu trên để đặt các
hệ thống cảm biến làm các thiết bò báo cháy. Kòp thời khống chế đám cháy ở giai
đoạn đầu.
Thiết bò báo cháy điện tử giúp chúng ta liên tục theo dõi để hạn chế các vụ
cháy tai hại, tăng cường độ an toàn, bình yên cho mọi người.
II. CÁC BỘ PHẬN CHÍNH:
1. Cảm biến:
Cảm biến là bộ phận hết sức quan trọng, nó quyết đònh độ nhạy và sự chính
xác của hệ thống.
Cảm biến hoạt động dựa vào các đặt tính vật lý của vật liệu cấu tạo nên
chúng. Cảm biến được dùng để chuyển đổi các tín hiệu vậy lý sang tín hiệu điện.
Các đặc tính của cảm biến: độ nhạy, độ ổn đònh, độ tuyến tính.
Luận Án Tốt Nghiệp Trang 2
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
a. Cảm biến nhiệt:
Là loại cảm biến dùng để chuyển tín hiệu vật lý (nhiệt độ) thành tín hiệu
điện, đây là loại cảm biến có độ nhạy tương đối cao và tuyến tính. Nguyên tắc làm
việc của nó là dòng điện hay điện áp thay đổi khi nhiệt độ tại nơi đặt nó thay đổi.
Tuy nhiên nó cũng dễ báo động nhầm khi nguồn điện bên ngoài tác động không
theo ý muốn.
Các loại cảm biến nhiệt:
IC cảm biến:
Là loại cảm biến bán dẫn được chế tạo thành các IC chuyên dụng với độ
nhạy cao, điện áp ra thay đổi tỉ lệ thuận với nhiệt độ, một số loại IC được bán bên
ngoài thò trường là: LM355, LM334,…
Thermistor:
Thermistor là loại điện trở có độ nhạy nhiệt rất cao nhưng không tuyến tính
và với hệ số nhiệt âm. Điện trở giảm phi tuyến với sự tăng của nhiệt độ. Vì bản
thân là điện trở nên trong quá trình hoạt động Thermistor tạo ra nhiệt độ vì vậy gây
sai số lớn.
Thermo Couples:
Thermo Couple biến đổi đại lượng nhiệt độ thành dòng điện hay điện áp
DC nhỏ. Nó gồm hai dây kim loại khác nhau nối với nhau tại hai mối nối. Khi các
dây nối đặc ở các vò trí khác nhau, trong dây xuất hiện suất điện động. Suất điện
động tỉ lệ thuận với sự chênh lệnh nhiệt độ giữa hai mối nối. Thermo couple có hệ
số nhiệt dương.
b. Cảm biến lửa:
Khi lửa cháy thì phát ra ánh sáng hồng ngoại, do đó ta sử dụng các linh
kiện phát hiện tia hồng ngoại để phát hiện lửa. Nguyên lý hoạt động là điện trở
của các linh kiện thu sóng hồng ngoại tăng, nó chuyển tín hiệu ánh sáng thu được
thành tín hiệu điện để báo động. Loại này rất nhạy đối với lửa. Tuy nhiên cũng dễ
báo động nhầm nếu ta để cảm biến ngoài trời hoặc gần ánh sáng bóng đèn tròn.
c. Cảm biến khói:
Thường cảm biến khói là bộ phân riêng biệt chạy bằng PIN được thiết kế
để lắp đặt trên trần nhà, trên tường. Ngoài yêu cầu kỹ thuật (chính xác, an toàn)
còn đòi hỏi phải đảm bảo về mặt thẩm mỹ. Có hai cách cơ bản để thiết kế bộ cảm
biến khói.
Luận Án Tốt Nghiệp Trang 3
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
Cách thứ nhất sử dụng nguyên tắc Ion hóa. Người ta sử dụng một lượng nhỏ
chất phóng xạ để Ion hóa trong bộ cảm biến. Không khí bò Ion hóa sẽ dẫn điện và
tạo thành một dòng điện chạy giữa chạy giữa hai cực đã đợc nạp điệän. Khi các
phần tử khói lọt vào khu vực cảm nhận được Ion hóa sẽ làm tăng điện trở trong
buồng cảm nhận và làm giảm luồng điện giữa hai cực. Khi luồng điện giảm xuống
tới một giá trò nào đó thì bộ cảm biến sẽ phát hiện và phát tín hiệu báo động.
Cách thứ hai sử dụng các linh kiện thu phát quang. Người ta dùng linh kiện
phát quang (Led, Led hồng ngoại…) chiếu một tia ánh sáng qua vùng bảo vệ vào
một linh kiện thu quang (photo diode, photo transistor, quang trở…). Khi có cháy,
khói đi ngang qua vùng bảo vệ sẽ che chắn hoặc làm giảm cường độ ánh sáng
chiếu vào linh kiện thu. Khi cường độ giảm xuống tới một giá trò nào đó thì bộ cảm
biến sẽ phát hiện và phát tín hiệu báo động.
Trong hai cách này thì phương pháp thứ nhất nhạy hơn và hiệu quả hơn
phương pháp thứ hai, nhưng khó thực thi, khó lắp đặt. Còn cách thứ hai tuy ít nhạy
hơn nhưng linh kiện dễ kiếm và dễ thực thi cũng như dễ lắp đặt.
Một nhược điểm của các loại cảm biến này là: mạch báo động có thể sai
nếu vùng bảo vệ bò xâm nhập bởi các lớp bụi…
d. Một số loại cảm biến quang:
Cảm biến quang có thể hoạt động với ánh sáng thấy được hoặc ánh sáng
hồng ngoại, tử ngoại…
- Quang trở:
Quang trở còn có tên gọi khác là vật dẫn quang (photo con) là linh kiện thụ
động được tạo ra từ vật liệu bán dẫn mà bề mặt của nó được phơi sáng và điện trở
của nó giãm khi tăng cường độ ánh sáng. Trong quang trở các điện tử tự do được
tạo bằng năng lượng ánh sáng, cường độ ánh sáng càng lớn thì số lượng điện tử tự
do càng lớn. Loại cảm biến này phi tuyến và có độ trể, do đó ít được dùng.
Đặc tuyến của một loại quang trở thông dụng:
Luận Án Tốt Nghiệp Trang 4
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
- Cảm biến quang bán dẫn:
Đây là loại cảm biến dùng các linh kiện bán dẫn quang như: diode, photo
diode, phototransistor, …Khi có ánh sáng đập vào mặt bán dẫn làm giải phóng các
điện tử tự do và các đện tử này sẽ chuyễn động tạo thành dòng điện.
- Cảm biến quang nhiệt:
Cảm biến này chuyển quang năng thành nhiệt năng và nhiệt năng này sẽ
được nhận biến bằng bộ cảm biến nhiệt, nhiệt độ tỉ lệ với cường độ ánh sáng chiếu
vào. Loại cảm biến này có độ nhạy thấp, thời gian đáp ứng chậm.
Như vậy mỗi loại cảm biến có tính ưu việc riêng của nó. Tuy nhiên nếu
mạnh ở mặt này thì nó sẽ bò hạn chế ở mặt khác, chẳng hạn bộ cảm biến nhiệt chỉ
phát hiện cháy ở vùng gần cảm biến cảm biến và tỏ ra không hiệu quả ở vùng có
nhiều nguồn nhiệt không phải phát sinh ra cháy. Còn các bộ cảm biến khác có thể
phát hiện cháy trong một phạm vi rộng nhưng có đám cháy có ít khói hoặc do các
tác động không phải do cháy ở tại nơi đặt cảm biến thì sẽ bò phát hiện nhầm. Vì
vậy tùy theo từng vùng, từng nơi mà ta thiết kế những bộ cảm biến thích hợp.
2.Thiết bò báo động:
Thiết bò báo động gồm có hai loại:
Báo động tại chỗ.
Báo động qua điện thoại.
Báo động tại chỗ ta có thể sử dụng các chuông điện, mạch tạo còi hụ hay
phát ra tiếng nói để cảnh báo.
Trong các hệ thống báo cháy, bộ cảm biến thường đặt ở những nơi dễ cháy
và nối với các thiết bò báo động bằng dây dẫn điện, do đó trong một số trường hợp
R
1M
10M
1000
1
1 10 100 1000 Cường độ ánh sáng
1m/m
2
Luận Án Tốt Nghiệp Trang 5
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
có thể làm dây bò đứt. Vì vậy một hệ thống báo cháy sẽ trở nên hiệu quả khi sử
dụng các bộ phát vô tuyến. Trong đó bộ phận thu gắn với mạch báo động, còn
mạch phát gắn với bộ cảm biến. Tuy nhiên việc lắp đặt gặp nhiều khó khăn và giá
thành cao.
Báo động qua điện thoại giúp ta đáp ứng nhanh các thông tin về sự cố đến
các cơ quan chức năng. Khi có tín hiệu báo động sẽ tự động quay số đến các cơ
quan như: nhà riêng, công an, phòng cháy chữa cháy…
B. SƠ LƯC VỀ HỆ THỐNG ĐIỀU KHIỂN:
I. GIỚI THIỆU CÁC DẠNG MẠCH TỒN TẠI:
1. Mạch điểu khiển xa dùng hồng ngoại:
Mạch này thiết kế và thi công không phứ c tạp, chi phí tổn hao thấp nhưng
thuộc loại điều khiển giới hạn ở khoảng cách. Khoảng cách điếu khiển càng xa thì
công suất bức xạ tia hồng ngoại sẽ giảm đi làm cho mạch thu tia hồng ngoại không
nhận dạng được tín hiệu điều khiển.
2. Mạch điều khiển xa dùng kỹ thuật số:
Mạch này điều khiển rất thích hợp cho các thí nghiệm có quy mô nhỏ, tốn
kém, thiết kế và thi công rất phức tạp hơn các mạch điều khiển khác và giới hạn
về chức năng vì mạch điện do dùng quá nhiều IC số nên mạch điện khá phức tạp
rất nhiều. Khi muốn mở rộng các chức năng điểu khiển thêm thì phải làm lại từ
đầu nên khả năng thực thi rất nhỏ.
3. Mạch điều khiển bằng Vi xử lý:
Mạch này rất thích hợp trong các hệ thống điều khiển có quy mô lớn, phức
tạp và sử dụng nhiều chức năng. Mạch này không phức tạp ở phần cứng nhưng đòi
hỏi kỹ thuật viết chương trình vi xử lý thật tốt. Mạch này thi công khá phức tạp
nhưng tình hiệu quả của nó rất cao so với các mạch điều khiển khác. Đối với các
mạch sử dụng nhiều chức năng thì ta nên dùng dạng mạch này vì nó sẽ làm đơn
giản rất nhiều mạch phần cứng bù lại chương trình phần mềm trở nên rất phức tạp.
II. HƯỚNG CHỌN CỦA ĐỀ TÀI:
Trong đồ án này, chúng em trình bày hai phần “ báo cháy qua điện thoại và
điều khiển thiết bò bằng điện thoại” nên trong phần điều khiển thiết bò chúng em
chọn mạch điểu khiển bằng vi xử lý. Sử dụng toàn bộ phần mạch chính và phát
triển thêm các phàn bổ sung thì chúng em có phần mạch điều khiển nên phần
mạch không có phức tạp mà lại còn rất đơn giản.
Luận Án Tốt Nghiệp Trang 6
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
CHƯƠNG II: GIỚI THIỆU VI ĐIỀU KHIỂN 8031
A. TÓM TẮC PHẦN CỨNG:
I. GIỚI THIỆU MCS-51: (MCS-51: Family Overview)
MCS-51 là một họ IC điều khiển (micro controller), được chế tạo và bán
trên thò trường bởi hãng Intel của Mỹ. Họ IC này được cung cấp các thiết bò bởi
nhiều hãng sản xuất IC khác trên thế giới chẳng hạn: nhà sản xuất IC SIEMENS
của Đức, FUJITSU của Nhật và PHILIPS của Hà Lan. Mỗi IC trong họ đều có sự
hoàn thiện riêng và có sự hãnh diện riêng của nó, phù hợp với nhu cầu của người
sử dụng và yêu cầu đặt ra của nhà sản xuất.
IC 8031 là IC tiêu biểu trong họ MCS-51 được bán trên thò trường. Tất cả
các IC trong họ đều có sự tương thích với nhau và có sự khác biệt là sản xuất sau
có cái mới mà cái sản xuất trước không có, để tăng thêm khả năng ứng dụng của
IC đó. Chúng có đặc điểm như sau:
OTHER
REGISTER
128 byte
RAM
128 byte
RAM
8032\8052
ROM
0K:
8031\8032
4K: 8031
8K:8052
INTERRUPT
CONTROL
INT1\
INT0\
SERIAL PORT
TEMER0
TEMER1
TEMER2
8032\8052
CPU
OSCILATOR
BUS
CONTROL
I/O PORT
SERIAL
PORT
EA\
RST
ALE\
PSEN\
P
0
P
1
P
2
P
3
Address\Data
TXD RXD
TEMER2
8032\8052
TEMER1
TEMER1
Luận Án Tốt Nghiệp Trang 7
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
4k byte ROM (được lập trình bởi nhà sản xuất, chỉ có 8051)
128 byte RAM
4 Port I/O 8 bit
2 bộ đònh thời 16 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 ly ù(thao tác trên các bit đơn)
210 bit được đòa chỉ hóa
Bộ nhân /chia 4 bit
1. Bộ nhớ bán dẫn ROM v RAM:
Bộ nhớ là một phần của cấu trúc vi điều khiển, các chương trình và dữ liệu
được lưu trữ trong bộ nhớ, bộ nhớ bán dẫn gồm ROM và RAM.
RAM: Là bộ nhớ bán dẫn đọc được hoặt ghi được nhưng không kiên đònh
(không kiên đònh có nghóa là : nội dung của dữ liệu sẽ bò mất đi khi mất điện).
ROM: Là bộ nhớ bán dẫn chỉ đọc và kiên đònh (kiên đònh có nghóa là : nội
dung dữ liệu sẽ không bò mất đi khi mất điện).
Hầu hết các hệ thống dùng RAM để lưu trữ chương trình thi hành khi mà
cần giữ lại để lưu trữ thì ghi vào đóa để cất, còn ROM dùng để lưu trữ thông tin hệ
thống để khi cấp điện là nó có thể hoạt động hệ thống.
2. Các BUS:
Bus là tập hợp nhiều đường dẫn, mỗi bus có một hoặc nhiều mục đích khác
nhau tùy thuộc vào cách cài đặt của người sử dụng và cách thiết kế của nhà sản
xuất. CPU thường có 3 bus: bus điều khiển, bus đòa chỉ, và bus dữ liệu. Đối với mỗi
hoạt động của mình thì CPU lấy dữ liệu trên bus dữ liệu theo đòa chỉ được cung cấp
bởi bus đòa chỉ và hoạt động đó là hoạt động gì thì CPU thi hành theo lệnh được
cấp từ bus điều khiển.
Bus đòa chỉ cung cấp đòa chỉ cho CPU biết đòa chỉ để đọc hoặc ghi dữ liệu.
Nếu CPU có n đường đòa chỉ thì có thể truy xuất được 2
n
ô nhớ đòa chỉ.
Luận Án Tốt Nghiệp Trang 8
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
Bus điều khiển là hỗn hợp các tín hiệu điều khiển để điều khiển sự hoạt
động của CPU (trong CPU hoặc CPU với các thiết bò bên ngoài) để đồng bộ hoạt
động trên các bus đòa chỉ, dữ liệu.
Bus dữ liệu mang thông tin giữa CPU và bộ nhớ, hoặc giữa CPU với các
thanh ghi hoặc giữa CPU với các thiết bò bên ngoài thông qua các thiết bò I/O.
II. SƠ LƯC VỀ CÁC CHÂN CỦA C 8031:
8031 là IC vi điều khiển (Microcontroller) do hãng intel sản xuất. C 8031
có tất cả 40 chân có chức năng như các đường xuất nhập. Trong đó có 24 chân có
tác dụng kép, mỗi đường có thể hoạt động như các đường xuất nhập hoặc như các
đường điều khiển hoặc là thành phần của bus dữ liệu.
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
XTAL1
XTAL2
GDN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
V
CC
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
EA\
ALE
PSEN\
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
8
0
5
1
Sơ Đồ Chân Của 8031
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
PSEN\
ALE
EA\
RST
RXD
TXD
INT0\
INT1\
T0
T1
WR\
RD\
Sơ đồ logic của 8031
Luận Án Tốt Nghiệp Trang 9
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
Chức năng các chân của 8031:
Port 0:
Port 0 là port có hai chức năng ở các chân từ 3239 của 8031. Trong các
thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường vào
ra.
Port 1:
Port 1 là port I\O ở các chân từ 1-8. Các chân được ký hiệu là P0.0, P0.1,
P0.2,…P1.7, có thể dùng cho giao tiếp vớicác thiết bò bên ngoài nếu cần. Port 1
không có chức năng khác vì vậy nó chỉ dùng cho giao tiếp với các thiết bò bên
ngoài(chẳng hạn ROM, RAM,8255,8279,…).
Port 2:
Port2 là một port có tác dụng kép ở các chân từ 21-28 được dùng như các
đường xuất nhập hoặc là các byte cao của Bus đòa chỉ đối với các thiết kế cỡ lớn.
Port3:
Port3 là một port có tác dụng kép từ chân 10 –17. Các chân của port này
có nhiều chức năng, các công dụng chuyển đổi có liên hệ với đặc tính đặc biệt của
8031 như bảng sau:
Bit Tên 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\
Ngõ vào dữ liệu nối tiếp
Ngõ ra dữ liệu nối tiếp
Ngõ vào ngắt cứng thứ 0
Ngõ vào ngắt cứng thứ 1
Ngõ vào của temer\counter thứ 0
Ngõ vào của temer\counter thứ 1
Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
Tín hiệu đọc bộ nhớ dữ liệu ngoài
Bảng: Chức năng của các chân port 3
Ngõ tín hiệu PSEN\ (Progam store enable):
PSEN\ là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ
chương trình mở rộng và thường được nối với chân EO\ (output enable) của
EPROM cho phép đọc các byte mã lệnh.
Luận Án Tốt Nghiệp Trang 10
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
PSEN ở 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 dữ liệu và được chốt vào thanh ghi bên trong
8031 để giải mã lệnh. Khi thi hành chương trình trong ROM nội(C 8051) PSEN\
sẽ ở mức 1.
Ngõ tín hiệu điều khiển ALE (Address latch enable):
Khi 8031 truy xuất bộ nhớ bên ngoài, port0 có chức năng là đòa chỉ và dữ
liệu do đó phải tách đường đòa chỉ và dữ liệu. Tín hiệu ra ALE ở chân thứ 30 dùng
làm tín hiệu điều khiển để giải đa hợp các đường đòa chỉ và dữ liệu khi kết nối với
IC chốt.
Tín hiệu ra ở ALE là một xung trong khoảng thời gian port 0 đóng vai trò
là đòa chỉ thấp nên nên chốt đòa chỉ hoàn toàn tự động. Các xung tín hiệu ALE có
tốc độ bằng 1\6 tần số dao động trên vi điều kkiển và có thể được dùng làm tín
hiệu clock cho các phần khác của hệ thống. Chân ALE được dùng làm ngõ vào
xung lập trình cho FEROM trong 8051.
Ngõ tín hiệu EA\ (External Access: truy xuất dữ liệu bên ngoài):
Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0. Nếu
ở mức 1 thì C8051 thi hành chương trình trong ROM nội trong khoảng đòa chỉ thấp
4k. Nếu ở mức 0 thì 8031 thi hành chương trình từ bộ nhớ mở rộng (vì C8031
không có bộ nhớ chương trình trên chip). Chân EA\ được lấy làm chân cấp nguồn
21v lập trình cho FROM trong 8051.
Ngõ tín hiệu RST (Reset):
Ngõ tín hiệu RST ở chân 9 và ngõ vào Reset của 8031. Khi ngõ vào tín
hiệu đưa lên mức cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạp
những giá trò thích hợp để khởi động hệ thống. Khi cấp điện mạch tự động Reset.
Ngõ vào bộ dao động X
1
, X
2
:
Bộ tạo dao động được tích hợp bên trong 8031, khi sử dụng 8031 người
thiết kế cần ghép nối thêm tụ, thạch anh. Tần số thạch anh được sử dụng cho 8031
là 12MHz.
Nguồn cho 8031:
Nguồn cho 8031 được cung cấp ở 2 chân là 20 và 40 cấp GND và Vcc.
Nguồn cung cấp ở đây là +5v.
Luận Án Tốt Nghiệp Trang 11
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
Khả năng của tải port 0 là LS –TTL của port 1,2,3 là 4LS –TTL. Cấu trúc
của port được xây dựng từ FET làm cho port có thể xuất nhập dễ dàng. Khi FET tắt
thì port dễ dàng dùng chức năng xuất. Khi FET họat động thì port làm chức năng
nhập thì khi đó ngõ nhập mức cao sẽ làm hỏng port.
III. KHẢO SÁT CÁC KHỐI BÊN TRONG 8031 TỔ CHỨC BỘ NHỚ:
Bộ nhớ trong 8031 ba gồm ROM và RAM. RAM trong 8031 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 và các thanh ghi chức năng đặc biệt. 8031 có cấu trúc bộ nhớ theo kiểu
Harvard: có những vùng nhớ riêng biệt cho chương trình và dữ liệu. Chương trình
và dữ liệu có thể chứa bên trong 8051, nhưng 8051 vẫn có thể kết nối với 64k byte
chương trình và 64k byte dữ liệu.
Hai đặc tính cần chú ý khi dùng C8031/8051 là:
Các thanh ghi và các port xuất nhập đã được đònh vò (được đònh vò có
nghóa là xác đònh) trong bộ nhớ và có thể truy xuất trực tiếp giống như các bộ nhớ
đòa chỉ khác.
Ngăn xếp bên trong RAM nội nhỏ hơn so với ROM ngoại như các
bộ vi xử lý khác.
RAM bên trong 8031 được phân chia như sau:
Các Bank thanh ghi có đòa chỉ 00H 1FH.
RAM đòa chỉ hóa từng bit có đòa chỉ 20H 2FH.
RAM đa dụng có đòa chỉ 30H 7FH.
Các thanh ghi có chức năng đặc biệt 80H FFH.
Luận Án Tốt Nghiệp Trang 12
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
a.RAM đa dụng:
Mặc dù trên hình vẽ cho thấy 80 byte đadụng chiếm các đòa chỉ từ
30H7FH, 32 đòa chỉ dưới từ 00H1FH 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ũng đã đònh với mục đích khác).
Mọi đòa chỉ trong vùng RAM đa dụng đều có thể truy xuất tự do dùng kiểu
đòa chỉ gián tiếp hoặc trực tiếp. Ví dụ: để đọc nội dung ở đòc chỉ 5FH của RAM nội
vào thanh ghi tích lũy A, có thể dùng một trong hai cách sau:
- Cách 1: MOV A, 5FH
GENERAL
PURPOSE
RAM
7F 7E 7D 7C 7B 7A 79 78
77 76 75 74 73 72 71 70
6F 6E 6D 6C 6B 6A 69 68
67 66 65 64 63 62 61 60
5F 5E 5D 5C 5B 5A 59 58
57 56 55 54 53 52 51 50
4F 4E 4D 4C 4B 4A 49 48
47 46 45 44 43 42 41 40
3F 3E 3D 3C 3B 3A 39 38
37 36 35 34 33 32 31 30
2F 2E 2D 2C 2B 2A 29 28
27 26 25 24 23 22 21 20
1F 1E 1D 1C 1B 1A 19 18
17 16 15 14 13 12 11 10
0F 0E 0D 0C 0B 0A 09 08
07 06 05 04 03 02 01 00
Bank 3
Bank 2
Bank 1
Bank 0
(Cho R
0
R
7
)
7F
30
2F
3E
2D
2C
2B
2A
29
28
27
26
25
24
23
22
21
20
1F
18
17
10
0F
08
07
00
Byte address
Bit address
F7 F6 F5 F4 F3 F2 F1 F0
E7 E6 E5 E4 E3 E2 E1 E0
D7 D6 D5 D4 D3 D2 D1 D0
- - - BC BB BA B9 B8
B7 B6 B5 B4 B3 B2 B1 B0
AF - - AC AB AA A9 A8
A7 A6 A5 A4 A3 A2 A1 A0
Not bit addressable
9f 9e 9d 9c 9b 9a 99 98
97 96 95 94 93 92 91 90
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
8F 8E 8D 8C 8B 8A 89 88
Not bit addressable
Not bit addressable
Not bit addressable
Not bit addressable
87 86 85 84 83 82 81 80
Byte address Bit address
FF
F0
E0
D0
B8
B0
A8
A0
99
98
90
8D
8C
8B
8A
89
88
87
83
82
81
80
FF
B
ACC
PSW
IP
P3
IE
P2
SBUF
SCON
P1
TH1
TH0
TL1
TL0
TMOD
TCON
PCON
DPH
DPL
SP
P0
Hình II.2.1: Sơ đồ tổ chức bộ nhớ
Luận Án Tốt Nghiệp Trang 13
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
- Cách 2: Ngoài cách trên RAM bên trong cũng có thể được truy xuất bằng
cách dùng đòa chỉ gián tiếp hoặc trực tiếp qua R0 hay R1:
MOV R0, #%FH
MOV A, @R0
Lệnh đầu tiên dùng để nạp đòa chỉ tức thời #5FH vào thanh ghi R0, lệnh
thứ 2 dùng để chuyển nội dung của ô nhớ có đòa chỉ mà R0 đang chỉ tới vào thanh
ghi tích lũy A.
b. RAM đòa chỉ hóa từng bit:
8031 chứa 210 bit được đòa chỉ hóa, trong đó có 128bit chứa các byte có đòa
chỉ từ 20H2FH và các bit còn lại chức trong nhóm thanh ghi có chứa năng đặc
biệt.
Ý tưởng truy xuất từng bit bằng phần mềm là một đặc tính mạnh 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.
Mà điều này đối với vi xử lý đòi hỏi phải có một chuỗi lệnh đọc - sửa - ghi để đạt
được mục đích tương tự như vi điều khiển. Ngoài ra các port cũng có thể truy xuất
được từng bit làm đơn giản đi phần mềm xuất nhập từng bit. 128 bit truy xuất từng
bit này cũng có thể truy xuất như các byte hoặc các bit phụ thuộc vào lệnh được
dùng.
Ví dụ: để đặt bit thứ 57 ta dùng lệnh sau:
SETB 67H
c.Các Bank thanh ghi:
32 byte thấp của bộ nhớ RAM nội được dùng cho các bank thanh ghi. Bộ
lệnh 8031 hỗ trợ 8 thanh ghi nói trên có tên là R0 R7 và theo mặc đònh khi reset
hệ thống, các thanh ghi này có đòa chỉ từ 00H 07H.
Ví dụ: lệnh sau đây sẽ đọc nội dung của ô nhớ có đòa chỉ 05H vào thanh
ghi A.
MOV A, R5
Đây là lệnh 1 byte dùng đòachỉ thanh ghi. Tuy nhiên yêu cầu trên có thể thi
hành bằng lệnh 2 byte dùng đòa chỉ trực tiếp nằm trong byte thứ hai:
MOV A,05H
Luận Án Tốt Nghiệp Trang 14
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
Các lệnh dùng các thanh ghi R0 R7 sẽ ngắn hơn và nhanh hơn so với các
lệnh có chức năng tương tự dùng kiểu đòa chỉ trực tiếp. Các dữ liệu được dùng
thường xuyên nên dùng một trong các thanh ghi này. Do có 4 bank thanh ghi nên
tại một thời điểm chỉ có một bank thanh ghi được truy xuất bởi các thanh ghi R0
R7. Để chuyển đổi việc truy xuất các bank thanh ghi ta phải thay đổi các bit chọn
bank trong thanh ghi trong thanh ghi trạng thái. Giả sử bank thanh ghi thứ 3 đang
được truy xuất lệnh sau đây sẽ chuyển nội dung của thanh ghi A vào ô nhớ RAM
có đòa chỉ 18H:
MOV R0, A
Tóm lại ý tưởng dùng các bank thanh ghi cho phép ta chuyển hướng
chương trình nhanh và hiệu quả hơn.
IV. CÁC THANH GHI CÓ CHỨC NĂNG ĐẶC BIỆT:
Các thanh ghi của C8031/8051 được truy xuất ngầm đònh bởi bộ lệnh. Ví
dụ “INC A” sẽ tăng nội dung thanh ghi A lên một đơn vò. Tác động này được ngầm
đònh trong mã lệnh.
Các thanh ghi trong C8031/8051 được đònh dạng như một phần của RAM
trên chip. Vì vậy mỗi thanh ghi sẽ có một đòa chỉ (ngoại trừ thanh ghi đếm bộ nhớ
chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bò tác động trực tiếp).
Cũng như R0 R7, 8031 có 21 thanh ghi có chức năng đặc biệt ở vùng trên của
RAM nội có đòa chỉ từ 80HFFH.
Chú ý: tất cả 128 đòa chỉ từ 80H FFH không được đònh nghóa chỉ có
21 thanh ghi có chức năng đặc biệt được đònh nghóa sẳn các đòa chỉ.
Ngoại trừ thanh ghi A có thể được truy xuất ngầm như đã nói, đa số các
thanh ghi có chức năng đặc biệt SFR có đòa chỉ hóa từng bit hoặc byte.
Chú ý: một vài thanh ghi SFR có thể đòa chỉ hóa từng bit hoặc byte
nên người lập trình phải thận trọng khi truy xuất bit hoặc byte.
1. Từ trạng thái chương trình: (PSW: Program Status Word)
Thanh ghi trạng thái chương trình PSW (Program Status Word) ở đòa chỉ
D0H chứa các bit trạng thái được tóm tắt như 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
Luận Án Tốt Nghiệp Trang 15
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
PSW.4 RS1 D4H Bit 1 chọn bank thanh ghi
PSW.3
RS0
D3H
Bit 0 chọn bank thanh ghi
00 = bank 0: đòa chỉ 00H07H
01 = bank 1: đòa chỉ 08H0FH
10 = bank 2: đòa chỉ 10H17H
11 = bank 3: đòa chỉ 18H1FH
PSW.2 0V D2H Cờ tràn
PSW.1 0V D1H Dự trữ
PSW.0 PORT D0H Cờ parity chẳn lẻ
Bảng : Các bit của thanh ghi PSW
Cờ nhớ (C
Y
):
Cờ nhớ Carry có tác dụng kép. Thông thường nó được dùng cho các lệnh
toán học: C = 1 nếu phép toán cộng có tràn hoặc phép trừ có mượn và ngược lại C
= 0 nếu phép toán cộng không tràn và phép trừ không có mượn.
Ví dụ: lệnh sau sẽ trả về thanh ghi tích lũy kết quả 00H và set cờ nhớ trong
PSW nếu thanh ghi tích lũy A chứa FFH.
ADD C,25H
Cờ nhớ phụ AC: (AC: Auxillary Carry Flag)
Khi cộng các số BCD, cờ nhớ phụ AC = 1 nếu kết quả 4 bit thấp trong
khoảng 0A0F và ngược lại cờ nhớ phụ AC = 0.
Cờ 0 (F0):
Cờ 0 là một bit cờ đa dụng dùng cho các ứng dụng cho người dùng.
Các bit chọn bank thanh ghi truy xuất (RS0 và RS1):
Các bit chọn bank thanh ghi nhằm để xác đònh bank thanhghi được truy xuất.
Chúng được xoá sau khi Reset hệ thống và được thay đổi bằng phần mềm nếu cần.
Ví dụ: 3 lệnh sau đây cho phép bank thanh ghi 3 được chọn và di chuyển
nội dung thanh ghi R7 (có đòa chỉ byte 1FH) vào thanh ghi A.
SETB RS1
SETB RS0
MOV A, R7
Luận Án Tốt Nghiệp Trang 16
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
Khi chương trình được dòch sang mã máy cho 8031 thi hành, các đòa chỉ bit
được thay thế bằng các ký tự RS1 và RS0. Vậy lệnh SETB RS1 là SETB 0DH.
Cờ tràn 0V: (Overlow Flag)
Cờ tràn có tác dụng như sau: 0V = 1 sau một lệnh cộng hoặc trừ nếu có
phép toán bò tràn. Khi các số có dấu được cộng hay trừ với nhau, phần mềm có thể
kiểm tra bit này để kiểm tra xem kết quả có trong tầm xác đònh hay không. Khi có
số không dấu được cộng, bit 0V có thể được bỏ qua. Các kết quả lớn hơn +127
hoặc nhỏ hơn –128 thì bit 0V=1.
Ví dụ: phép cộng sau bò tràn và bit 0V sẽ được set: 0FH + 7FH = 8EH. Kết
quả là một số có dấu 8E được xem như –116, không phải là kết quả đúng 142 vì
vậy bit 0V = 1.
2. Thanh ghi B:
Thanh ghi B ở đòa chỉ F0H được dùng cùng với thanh ghi tích lũy A cho các
phép toá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 A (byte thấp) và B (byte cao). Lệnh DIV AB sẽ chia
A cho B và trả kết quả phần nguyên trong A và phần dư trong B. Thanh ghi có thể
được xem là một thanh ghi đệm đa dụng. Nó được đòa chỉ hóa từng bit với các đòa
chỉ từ F0H F7H.
3. 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 ngăn xếp. Các lệnh trên ngăn xếp bao gồm
các lệnh 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ẽ làm giảm SP. Ngăn xếp của 8031 được giữ trong RAM ngoại và 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
8031.
Ví dụ: Để khởi động SP với ngăn xếp bắt đầu tai đòa chỉ 60H, thì dùng lệnh
sau đây:
MOV SP, #5F
Với lệnh trên thì ngăn xếp của 8031 chỉ có 32 byte vì đòa chỉ cao nhất của
RAM trên vi điều khiển là 7F. Sở dó giá trò 5F được nạp vào SP vì SP sẽ tăng lên
60H trước khi cất byte dữ liệu đầu tiên.
Luận Án Tốt Nghiệp Trang 17
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
Khi Reset 8031, SP sẽ mang giá trò mặc đònh là 07H và dữ liệu đầu tiên sẽ
được nạp vào ô nhớ ngăn xếp có đòa chỉ 08H. Nếu phần mềm ứng dụng không khởi
động SP một giá trò mới thì bank thanh ghi l có thể cả 2 và 3 sẽ không dùng được vì
dù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 lệnh PUSH và lệnh POP để lưu trữ tạm thời và lấy dữ liệu, hoặc truy xuất
ngầm bằng lệnh gọi chương trình con (ACALL và LCALL) và lệnh trở về (RET,
RETL) để lưu giá trò của bộ đếm chương trình khi bắt đầu thực hiện chương trình
con và lấy lại khi kết thúc chương trình con.
4. Con trỏ dữ liệu: (DPTR: Data Poiter)
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) 3 lệnh sau đây
sẽ ghi đòa chỉ 55H vào RAM ngoại ở đòa chỉ 1000H:
MOV A,#55H
MOV DPRT, ##1000H
MOVX@ DPTR,A
Lệnh đầu tiên dùng để nạp dữ liệu 55H vào thanh ghi tích lũy. Lệnh thứ 2
được dùng để nạp dữ liệu 1000H vào con trỏ dữ liệu DPTR. Lệnh thứ 3 sẽ di
chuyển nội dung trong thanh ghi A (55H) vào ô nhớ RAM ngoài có đòa chỉ chứa
trong DPTR (là 1000H).
5. Các thanh ghi port xuất nhập:
Các Port của 8031 gồm port 0 ở đòa chỉ 80H, port 1 ở đòa chỉ 90H, port 2 ở
đòa chỉ A0H và port 3 ở đòa chỉ B0H. Tất cả các port này có thể truy xuất từng bit
nên rất thuận tiện trong chức năng giao tiếp.
Ví dụ: Nếu một motor được nối với cuộn dây có transitor lái đến bit 7 của
port 1, 8031 có bật và tắt bằng một lệnh đơn:
SETB P1.7
CLR P1.7
Và có thể thực hiện tương tự bằng hai lệnh sau:
SETB P1.7
CLR 97H
Luận Án Tốt Nghiệp Trang 18
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
6. Các thanh ghi Timer:
8031 có 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 (TLO: byte thấp) và 8CH (THO: byte
cao). Timer 1 ở đòachỉ 8BH (TL1: byte thấp)và 8DH (TH1: byte cao) việc khởi
động Timer được set bởi Timer mode (TMOD) ở đòa chỉ 89 và thanh ghi điều khiển
Timer (TCON) ở đòa chỉ 88H. Chỉ có TCON được đòa chỉ hóa từng bit.
7. Các thanh ghi port nối tiếp:
8031 chứa 1 port nối tiếp dùng cho việc trao đổi thông tin với các thiết bò
nối tiếp như máy tính moderm hoặc giao tiếp với các IC khác (các bộ chuyển đổi
A\D, các thanh ghi dòch…). 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 phát và dữ liệu nhận. Khi truyền dữ liệu thì ghi
lên SUBF, khi nhận dữ liệu thì đọc SUBF. 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ỉ hóa từng bit ở đòa
chỉ 98H).
8. Các thanh ghi ngắt:
8031 có cấu trúc 5 nguồn ngắt và 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 thanh ghi cho phép ngắt (LE) ở đòa
chỉ A8H. Cả hai thanh ghi được đòa chỉ hóa từng bit.
9. Thanh ghi điều khiển công suất:
Thanh ghi điều khiển công suất (PCON) ở đòa chỉ 97H chứa nhiều bit điều
khiển chúng được tóm tắt ở bảng sau:
Bit Kí hiệu Ý nghóa
7
6
5
4
3
2
1
0
SMOD
-
-
-
GF1
GF0
PD
IDL
Bit gấp đôi tốc độ band, nếu được set thì tốc độ baud sẽ
tăng gấp đôi trong các mode 1,2 và 3 của port nối tiếp
Không ý nghóa
Không ý nghóa
Không ý nghóa
Bit cờ đa dụng 1
Bit cờ đa dụng 2
Giảm công suất, được set hoạt mode giảm công suất, chỉ
thoát khi reset.
Mode chờ, set để kích hoạt mode chờ, chỉ thoát khi có
Luận Án Tốt Nghiệp Trang 19
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
ngắt hoặc reset hệ thống.
V. BỘ NHỚ NGOÀI:
8031 có khả năng mở rộng bộ nhớ lên đến 64 kB bộ nhớ chương trình và
64 KB bộ nhớ dữ liệu bên ngoài. Do đó có thể dùng ROM và RAM nếu cần. Khi
dùng bộ nhớ ngoài port 0 cũng là một port I/O thuần tuý. Nó được kết hợp với Bus
đòa chỉ A0 đến A7 và Bus dữ liệu D0 đến D7 với tín hiệu ALE để chốt byte thấp
của Bus đòa chỉ khi bắt đầu mỗi chu kỳ nhớ. Port 2 được cho phép byte cao của đòa
chỉ.
1. Truy xuất bộ nhớ chương trình ngoài:
Bộ nhớ chương trình bên ngoài là một bộ nhớ ROM được cho phép bởi tín
hiệu PSEN\. Hình vẽ sau đây sẽ mô tả cách kết nối 1 bộ nhớ EPROM với
C8031/8051.
Giản đồ thời gian đọc bộ nhớ chương trình ngoài
Một chu kỳ của C8031/8051 có 12 xung nhòp. Nếu một dao động trên chip
được lái bằng thạch anh 12 Mhz thì một chu kỳ máy kéo dài 1s. Trong một chu kỳ
Port 0
EA\
ALE
Port 2
PSEN\
D7-D0
A7-A0
EPROM
A15-A8
OE\
D Q
74373
E
OSC
ALE
PSEN\
PORT2
PORT1
PCL
Mã lệnh
PCL Byte 2
PC PCH (byte của PC)
P1 P1 P1 P2 P2 P1 P2 P1 P1 P2 P2 P2 P1 P2 P1
S1 S2 S3 S4 S5 S6 S1
Một chu kỳ máy
Luận Án Tốt Nghiệp Trang 20
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
máy sẽ có 2 xung ALE và 2 byte được đọc từ bộ nhớ chương trình (nếu lệnh hiện
hành là lệnh 2 byte thì byte được loại bỏ). Giản đồ thời gian của một lần lấy lệnh
được vẽ ở hình trên:
2. Truy xuất bộ nhớ dữ liệu ngoài:
Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được cho phép ghi /đọc bằng các
tín hiệu điều khiển WR\ và RD\. C8031/8051 có một lệnh duy nhất truy xuất dữ
liệu của bộ nhớ dữ liệu ngoài là MOVX dùng con trỏ 16 bit (PDRT) hoặc R0 và R1
xem như thanh ghi đòa chỉ.
3. Giải mã đòa chỉ:
Nếu nhiều EPROM hoặc nhiều RAM được giao tiếp với 8031 thì cần có mạch
giải mã đòa chỉ. Mạch giải mã cũng được thực hiện như các vi xử lý khác, sử dụng
IC 74138 để giải mã.
4. Xếp chồng các vùng bộ nhớ và dữ liệu bên ngoài:
Vì bộ nhớ chương trình là ROM nên nảy sinh một vấn đề bất tiện khi phát
triển phần mềm cho 8031 là tổ chức bộ nhớ như thế nào để có thể sửa đổi chương
trình và có thể ghi trở lại nó được chứa trong bộ nhớ ROM. Cách giải quyết là xếp
chồng các vùng nhớ chương trình và dữ liệu. Một bộ nhớ RAM có thể chứa cả
chương trình và dữ liệu bằng cách nối đường OE\ của RAM với một cổng AND có
hai ngõ vào PSEN\ và RD\.
Sơ đồ mạch như hình sau cho phép bộ nhớ RAM có hai chức năng vừa là
bộ nhớ chương trình vừa là bộ nhớ dữ liệu:
Vậy một chương trình có thể được tải vào RAM bằng cách xem nó như một
bộ nhớ dữ liệu và thi hành bằng cách xem nó như một bộ nhớ chương trình.
VI. NGÕ VÀO TÍN HIỆU RESET:
C8031/8051 có ngõ vào Reset RST tác động ở mức cao trong khoảng thời
gian hai chu kỳ xung máy, sau đó xuống mức thấp để 8031 bắt đầu làm việc RST
có thể kích bằng tay bằng một phím thường hở, sơ đồ mạch Reset như sau:
WR\
RAM
OE\
WR\
RD\
PSEN\
Luận Án Tốt Nghiệp Trang 21
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
Trạng thái của tất cả thanh ghi trong C8031/8051 sau khi Reset hệ thống
được tóm tắt như sau:
Thanh ghi Nội dung
Đếm chương trình PC
Thanh ghi tích lũy A
Thanh ghi B
Thanh ghi trạng thái PSW
SP
DPRT
Port 0 đến port 3
IP
IE
Các thanh ghi đònh thời
SCON SBUF
PCON(HMOS)
PCON(CMOS)
0000H
00H
00H
00H
07H
0000H
FFH
XXX0 0000B
0XX0 0000B
00H
00H
00H
0XXX XXXXB
0XXX 0000B
Quan trọng nhất trong các thanh ghi trên là thanh ghi đếm chương trình, nó
được đặt tại 0000H. Khi Reset trở lại mức thấp, việc thi hành chương trình luôn bắt
đầu ở đòa chỉ đầu tiên trong bộ nhớ chương trình: đòa chỉ 0000H. Nội dung của
RAM trên chip không bò thay đổi bởi lệnh Reset.
B. HOẠT ĐỘNG CỦA BỘ ĐỊNH THÌ TIMER:
I. GIỚI THIỆU:
Một đònh nghóa đơn giản của timer là một chuỗi các flip-flop chia đôi tần sồ
nối tiếp với nhau, chúng nhận tín hiệu vào làm nguồn xung nhòp. Ngõ ra của tầng
cuối làm xung nhòp cho flip - flop báo tràn của timer (flip - flop cờ). Giá trò nhò
phân trong các flip - flop của timer có tể xem như đếm số xung nhòp (hoặc các sự
kiện) từ khởi động timer. Ví dụ timer 16 bit sẽ đếm từ 0000H đến FFFFH. Cờ báo
tràn sẽ lên 1 khi số đếm tràn từ FFFFH đến 0000H.
+5v
10f
10k
100k
Luận Án Tốt Nghiệp Trang 22
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
C8031/8051 có hai timer 16 bit, mỗi timer có 4 cách làm việc. Người ta sử
dụng các timer để:
a. Đònh khoảng thời gian.
b. Đếm sự kiện.
c. Tạo tốc độ baud cho port nối tiếp trong C8051/8031.
Trong các ứng dụng đònh nghóa khoảng thời gian, người ta sử dụng lập trình
timer ở một khoảng đều đặn và đặt cờ tràn timer. Cờ được sử dụng để đồng bộ hóa
chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ vào
hoặc gởi sự kiện ra các ngõ ra. Các ứng dụng khác có thể sử dụng việc tạo xung
nhòp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (Ví dụ: đo độ rộng
xung).
Đếm sự kiện dùng để xác đònh số lần xảy ra của một số sự kiện. Một “sự
kiện” là bất cứ tác động ngoài nào có thể cung cấp một chuyển trạng thái trên một
chân của 8051/8031.
Truy xuất các timer của 8051/8031 dùng 6 thanh ghi chức năng đặc biệt
trong bảng sau:
SFR MỤC ĐÍCH
Đòa chỉ Đòa chỉ hóa từng bit
TCON Điều khiển timer 88H Có
TMOD Chế độ timer 89H Không
TLO Byte thấp của timer 0 8AH Không
TL1 Byte thấp của timer 1 8BH Không
TH0 Byte cao của timer 0 8CH Không
TH1 Byte cao của timer 1 8DH Không
II. THANH GHI CHẾ ĐỘ TIMER (TMOD):
Thanh ghi TMOD chứa hai nhóm 4 bit dùng để đặt chế độ làm việc cho
timer 0 và timer1.
Bit Tên Timer Mô tả
7 GATE 1 Bit (mở cổng), khi lên, timer chỉ chạy khi
INT1 ở mức cao
6 C/
T
1 Bit chọn chế độ counter/ timer
Luận Án Tốt Nghiệp Trang 23
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
1 = Bộ đếm sự kiện
0 = Bộ đònh khoảng thời gian
5 M1 1 Bit1 của chế độ ( mode)
4 M0 1 Bit 0 của chế độ
00: Chế độ 0: timer 13 bit
01: Chế độ 1: timer 16 bit
10: Chế độ 2: tự động nạp lại 8 bit
11: Chế độ 3: tách timer
3 GATE 0 Bit (mở) cổng
2 C/T 0 Bit chọn counter/ timer
1 M1 0 Bit 1 của chế độ
0 M0 0 Bit 0 của chế độ
Tóm tắt thanh ghi TMOD.
III. 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 timer0
và timer1.
Bit Ký hiệu Đòa chỉ Mô tả
TCON.7 TF1 8FH Cờ báo tràn timer. Đặt bởi phần cứng khi
tràn, được xóa 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.
TCON.6 TR1 8EH Bit điều khiển timer1 chạy. Đặt/ xóa bằng
timer để cho phần mềm chạy/ ngưng.
TCON.5 TF0 8DH Cờ báo tràn timer 0.
TCON.4 TR0 8CH Bit điều khiển timer chạy.
TCON.3 IE1 8BH Cờ cạnh ngắt cạnh bên ngoài. Đặt bởi phần
cứng khi phát hiện một cạnh xuống ở
INT1:xóa 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.
TCON.2 IT1 8AH Cờ kiểu ngắt một bên ngoài. Đặt/xóa bằng
phần mềm để ngắt ngoài tích cực cạnh
xuống/mức thấp.
TCON.1 IE0 89H Cờ cạnh ngắt 0 bên ngoài
TCON.0 ITO 88H Cờ kiểu ngắt 0 bên ngoài
Tóm tắt thanh ghi TCON.
Luận Án Tốt Nghiệp Trang 24
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
IV. CHẾ ĐỘ TIMER:
1. Chế độ 0 – Chế độ TIMER 13 BIT:
- Để tương thích với 804 (có trước 8051).
- 3 bit cao của TLx (TL0 và hoặc TL1) không dùng.
2. Chế độ 1 – Chế độ TIMER 16 BIT:
- Hoạt động như timer 16 bit đầy đủ.
- Cờ báo tràn là bit TFx trong TCON có thể đọc hoặc ghi bằng phần
mềm.
- MSB của giá trò trong thanh ghi timer là bit 7 của THx và LSB là bit
0 của TLx. Các thanh ghi timer (TLx/THx) có thể đọc hoặc ghi bất cứ
lúc nào bằng phần mềm.
3. Chế độ 2 – Chế độ tự động nạp lại 8 bit:
TLx hoạt động như 1 timer 8 bit, trong đó THx vẫn giữ nguyên giá trò khi
nạp. Khi số đếm tràn từ FFH đến 00H, không những cờ timer được xét mà giá trò
trong THx đồng thời được nạp vào TLx, việc đếm tiếp tục từ giá trò này lên đến
FFH xuống 00H và nạp lại .v.v…Chế độ này rất thông dụng vì sự tràn timer xảy ra
trong những khoảng thời gian nhất đònh và tuần hoàn một khi khởi động TMOD và
THx.
TLx
(5 bit)
THx
(8 bit)
TFx
Xung nhòp timer
Cờ báo tràn
TLx
(8 bit)
THx
(8 bit)
TFx
Xung nhòp timer
Cờ báo tràn
TLx
(8 bit)
THx
(8 bit)
TFx
Xung nhòp timer
Cờ báo tràn
Luận Án Tốt Nghiệp Trang 25
Thiết Bò Báo Cháy Và Điều Khiển Tự Động Lê Đức Nhật
4. Chế độ 3 – Chế độ tách timer:
- Timer 0 tách thành 2 timer 8 bit (TL0 và TH0), TL0 có cờ báo tràn là
TF0 và TH0 có cờ báo tràn là TF1.
- Timer 1 ngưng chế độ 3, nhưng có thể khởi động bằng cách chuyển
sang chế độ khác. Giới hạn duy nhất là cờ báo tràn TF1 không còn bò tác động khi
timer 1 bò tràn vì nó được nối với tới TH0.
- Khi timer 1 ở chế độ 3, có thể có thể cho timer 1 chạy và ngưng bắng
cách chuyển nó ra ngoài và vào chế độ 3. Nó vẫn có thể được sử dụng bởi port nối
tiếp như bộ tạo tốc độ baud hoặc nó có thể sử dụng bằng bất cứ cách nào mà không
cần ngắt (vì nó không còn được nối với TF1).
5. Nguồn tạo xung nhòp:
Có hai nguồn tạo xung nhòp có thể có, được chọn bằng cách ghi vào C/T
(counter/timer) trong TMOD khi khởi động timer. Một nguồn tạo xung nhòp dùng
cho đònh khoảng thời gian, cái khác cho đếm sự kiện.
Đònh khoảng thời gian (interval timing):
TL1 TH1
TH0
TH0 TF1
TF0
Xung nhòp timer
Xung nhòp timer
1/12 Fose
Cờ báo tràn
12
Bộ dao
động trong
C/T
Thạch
anh
Chân T0
hoặc T1
Xung nhòp
timer
0: (lên) đònh khoảng thời gian