Đồ án môn: Vi xử lý và Đo lờng Sinh viên: Chu Tiến Đạt
Đồ án môn: Vi Xử Lý và Đo Lờng.
Yêu cầu của đề bài
1. Phần cứng:
+ Bộ Vi điều khiển 8051.
+ Bộ nhớ chơng trình Rom 8k byte từ địa chỉ 0000H
+ Bộ nhớ dữ liệu Ram 4k byte về địa chỉ tùy chọn.
+ Cổng vào ra tơng tự gồm n kênh nhận tín hiệu nhiệt độ từ 0~5V, tơng ứng
trong trờng hợp m từ các cổng vào ra và các mạch điều khiển.
+ Thiết bị đo nhiệt độ tùy chọn.
2. Phần mềm:
+ Tín hiệu cho phép chạy và dừng chơng trình ( tín hiệu dừng khẩn).
+ Đọc tín hiệu từ n kênh đo, lu trữ trong vùng Ram.
+ Sau mỗi lần đọc đánh giá, giá trị trung bình của nhiệt độ và gửi kết quả ra
cổng hiển thị Led.
+ So sánh nhiệt độ trung bình với từng kênh, nếu cao hơn hoặc thấp hơn gửi kết
quả báo ra từng kênh. (giá trị cho phép này đặt tại ô nhớ của Ram).
+ Chơng trình dừng lại báo động bằng còi nếu xảy ra các điều kiện sau:
- Giá trị trung bình hoặc giá trị min hoặc max tơng ứng cho trớc. Các giá trị
min hoặc max này đặt trong hai ô nhớ của Ram. Có i kênh đo vợt quá hoặc
nhỏ hơn giá trị giới hạn cho phép so với giá trị trung bình.
- n = số d ( phép chia STT:3) +5.
- m= số d ( phép chia STT:4)
- 0 từ 0~200C
- 1 từ 0~300C
- 2 từ 0~400C
- 3 từ 0~500C
- i= phần nguyên của phép chia n:2
Yêu cầu viết 30~40 trang.
**************************************************************************
Chơng 1. Tổng quan về vi điều khiển
các bộ vi xử lý công dung chung nh họ Intell là 86 (8086, 80286, 80386, 80486 v Pentium)
hoặc họ Motorola 680 là 0(68000, 68010, 68020, 68030, 68040 v.v...). Những bộ VXL n y
không có RAM, ROM v không có các cổng v o ra trên chíp. Với lý do đó m chúng đ ợc
gọi chung l các bộ vi xử lý công dụng chung.
Hình 2.1: Hệ thống vi xử lý đ ợc so sánh với hệ thống vi điều khiển.
a) Hệ thống vi xử lý công dụng chung
b) Hệ thống vi điều khiển
Một nh thiết kế hệ thống sử dụng một bộ vi xử lý công dụng chung chẳng hạn nh
Pentium hay 68040 phải bổ xung thêm RAM , ROM, các cổng v o ra v các bộ định thời
ngo i để l m cho chúng hoạt động đ ợc. Mặc dù việc bổ xung RAM, ROM v các cổng v o
ra bên ngo i l m cho hệ thống cồng cềnh v đắt hơn, nh ng chúng có u điểm l linh hoạt
chẳng hạn nh ng ời thiết kế có thể quyết định về số l ợng RAM, ROM v các cổng v o ra
cần thiết phù hợp với b i toán trong tầm tay của mình.
Điều n y không thể có đ ợc đối với các bộ vi điều khiển. Một bộ vi điều khiển có một
CPU (một bộ vi xử lý) cùng với một l ợng cố định RAM, ROM, các cổng v o ra v một bộ
định thời tất cả trên cùng một chíp. Hay nói cách khác l bộ xử lý, RAM, ROM các cổng v o
ra v bộ định thời đều đ ợc nhúng với nhau trên một chíp; do vậy ng ời thiết kế không thể bổ
xung thêm bộ nhớ ngo i, cổng v o ra hoặc bộ định thời cho nó. Số l ợng cố định của RAM,
ROM trên chíp v số các cổng v o - ra trong các bộ vi điều khiển l m cho chúng trở nên lý
t ởng đối với nhiều ứng dụng m trong đó giá th nh v không gian lại hạn chế. Trong nhiều
ứng dụng, ví dụ một điều khiển TV từ xa thì không cần công suất tính toán của bộ vi sử lý 486
hoặc thậm chí nh 8086. Trong rất nhiều ứng dụng thì không gian nó chiếm, công suất nó tiêu
tốn v giá th nh trên một đơn vị l những cân nhắc nghiêm ngặt hơn nhiều so với công suất
tính toán. Những ứng dụng th ờng yêu cầu một số thao tác v o - ra để đọc các tín hiệu v tắt -
mở những bit nhất định. Vì lý do n y m một số ng ời gọi các bộ xử lý n y l IBP (Itty-
Bitty-Processor), (tham khảo cuốn Good things in small packages are Generating Big
product opportunities do Rick Grehan viết trên tạp BYTE tháng 9.1994; WWW. Byte. Com
để biết về những trao đổi tuyệt vời về các bộ vi điều khiển).
Điều thú vị l một số nh sản xuất các bộ vi điều khiển đã đi xa hơn l tích hợp cả một
2
Đây l một chuỗi các câu lệnh hoặc các dòng lệnh đ ợc viết hoặc bằng các
lệnh hợp ngữ nh ADD v MOV hoặc bằng các câu lệnh đ ợc gọi l các chỉ dẫn.
Trong khi các lệnh hợp ngữ thì nói CPU phải l m gì thì các chỉ lệnh (hay còn gọi l giả lệnh)
thì đ a ra các chỉ lệnh cho hợp ngữ. Ví dụ, trong ch ơng trình 2.1 thì các lệnh ADD v MOV
l các lệnh đến CPU, còn ORG v END l các chỉ lệnh đối với hợp ngữ. ORG nói hợp ngữ đặt
mã lệnh tại ngăn nhớ 0 v END thì báo cho hợp ngữ biết kết thúc mã nguồn. Hay nói cách
khác một chỉ lệnh để bắt đầu v chỉ lệnh thứ hai để kết thúc ch ơng trình.
Cấu trúc của một lệnh hợp ngữ có 4 tr ờng nh sau:
[nhãn:] [từ gợi nhớ] [các toán hạng] [; chú giải]
Các tr ờng trong dấu ngoặc vuông l tuỳ chọn v không phải dòng lệnh n o cũng có
chúng. Các dấu ngoặc vuông không đ ợc viết v o. Với dạng thức trên đây cần l u ý các điểm
sau: Tr ờng nhãn cho phép ch ơng trình tham chiếu đến một dòng lệnh bằng tên. Nó không
đ ợc viết quá một số ký tự nhất định. Hãy kiểm tra quy định n y của hợp ngữ m ta sử dụng.
Từ gợi nhớ (lệnh) v các toán hạng l các tr ờng kết hợp với nhau thực thi công việc thực tế
của ch ơng trình v ho n thiện các nhiệm vụ m ch ơng trình đ ợc viết cho chúng. Trong
hợp
ngữ các câu lệnh nh :
ADD A, B
MOV A, #67H
Thì ADD v MOV l những từ gơi nhớ tạo ra mã lệnh, còn A, B v A, #67H l
những toán hạng thì hai tr ờng có thể chứa các lệnh giả hoặc chỉ lệnh của hợp ngữ. Hãy nhớ
rằng các chỉ lệnh không tạo ra mã lệnh n o (mã máy) v chúng chỉ dùng bởi hợp ngữ, ng ợc
lại đối với các lệnh l chúng đ ợc dịch ra mã máy (mã lênh) cho CPU thực hiện. Trong
ch ơng trình 2.1 các lệnh ORG v END l các chỉ lệnh (một số hợp ngữ của 8051 sử dụng
3
Đồ án môn: Vi xử lý và Đo lờng Sinh viên: Chu Tiến Đạt
dạng .ORG v .END). Hãy đọc quy định cụ thể của hợp ngữ ta sử dụng. Tr ơng chú giải luôn
phải bắt đầu bằng dấu chấm phẩy (;). Các chú giải có thể bắt đầu ở đầu dòng hoặc giữa dòng.
Hợp ngữ bỏ qua (l m ngơ) các chú giải nh ng chúng lại rất cần thiết đối với lập trình viên.
Mặc dù các chú giải l tuỳ chọn, không bắt buộc nh ng ta nên dùng chúng để mô tả ch ơng
cho ADD A, R7. Mã lệnh đối với lệnh ADD A, #12H đ ợc đặt ở ngăn nhớ 0008 v toán
hạng 12H đ ợc đặt ở ngăn nhớ 0009. Ngăn nhớ 000A có mã lệnh của lệnh SJMP v địa chỉ
đích của nó đ ợc đặt ở ngăn nhớ 000B. Lý do vì sao địa chỉ đích l FE đ ợc giải thích ở
3.5 Bản đồ nhớ ROM trong họ 8051.
Nh ta đã thấy ở ch ơng tr ớc, một số th nh viên họ 8051 chỉ có 4k byte bộ nhớ
ROM trên chíp (ví dụ 8751, AT 8951) v một số khác nh AT 8951 có 8k byte ROM, DS
5000-32 của Dallas Semiconductor có 32k byte ROM trên chíp. Dallas Semiconductor cũng có
motọ 8051 với ROM trên chíp l 64k byte. Điểm cần nhớ l không có th nh viên n o của họ
8051 có thể truy cập đ ợc hơn 64k byte mã lệnh vì bộ đếm ch ơng trình của 8051 l 16 bit
(dải địa chỉ từ 0000 đến FFFFH). Cần phải ghi nhớ l lệnh đầu tiên của ROM ch ơng trình
đều đặt ở 0000,
còn lệnh cuối cùng phụ thuộc v o dung l ợng ROM trên chíp của mỗi th nh viên họ 8051.
Trong số các th nh viên họ 8051 thì 8751 v AT 8951 có 4k byte ROM trên chíp. Bộ nhớ
ROM trên chíp n y có các địa chỉ từ 0000 đến 0FFFH. Do vậy, ngăn nhớ đầu tiên có địa chỉ
0000 v ngăn nhớ cuối cùng có địa chỉa 0FFFH. Hãy xét ví dụ.
Ví dụ:
Tìm địa chỉ bộ nhớ ROM của mỗi th nh viên họ 8051 sau đây.
a) AT 8951 (hoặc 8751) với 4k byte
b) DS 5000-32 với 32k byte
Lời giải:
4
Đồ án môn: Vi xử lý và Đo lờng Sinh viên: Chu Tiến Đạt
a) Với 4k byte của không gian nhớ ROM trên chíp ta có 4096 byte bằng 1000H ở dạng
Hex (4 ì 1024 = 4096 hay 1000 ở dạng Hex). Bộ nhớ n y đ ợc xắp xếp trong các ngăn
nhớ từ 0000 đến 0FFFFH. L u ý 0 luôn l ngăn nhớ đầu tiên.
b) Với 32k byte nhớ ta có 32.768 byte (32 ì 1024). Chuyển đổi 32.768 về số Hex ta nhận
đ ợc giá trị 8000H. Do vậy, không gian nhớ l dải từ 0000 đến 7FFFH.
Dải địa chỉ của ROM trên chíp một số th nh viên họ 8051 .
3.6 Các kiểu dữ liệu v các chỉ lệnh .
a) Phân bố không gian bộ nhớ RAM trong 8051.
vỏ khác nhau, chẳng hạn nh hai h ng chân DIP (Dual In-Line Pakage) dạng vỏ dẹt vuông
QFP (Quad Flat Pakage) v dạng chíp không có chân đỡ LLC (Leadless Chip Carrier) thì
chúng đều có 40 chân cho các chức năng khác nhau nh v o ra I/0, đọc RD , ghi WR , địa chỉ,
dữ liệu v ngắt. Cần phải l u ý rằng một số hãng cung cấp một phiên bản 8051 có 20 chân với
số cổng v o-ra ít hơn cho các ứng dụng yêu cầu thấp hơn. Tuy nhiên, vì hầu hết các nh phát
triển chính sử dụng chíp đóng vỏ 40 chân với hai h ng chân DIP nên ta chỉ tập chung mô tả
phiên bản n y.
6
Đồ án môn: Vi xử lý và Đo lờng Sinh viên: Chu Tiến Đạt
Sơ đồ bố trí chân của 8051.
Trên hình l sơ đồ bố trí chân của 8051. Ta thấy rằng trong 40 chân thì có 32 chân
d nh cho các cổng P0, P1, P2 v P3 với mỗi cổng có 8 chân. Các chân còn lại đ ợc d nh cho
nguồn VCC, đất GND, các chângiao động XTAL1 v XTAL2 tái lập RST cho phép chốt địa
chỉ ALE truy cập đ ợc địa chỉ ngo i EA , cho phép cất ch ơng trình PSEN . Trong 8 chân
n y thì 6 chân VCC , GND, XTAL1, XTAL2, RST v EA đ ợc các họ 8031 v 8051 sử
dụng. Hay nói cách khác l chúng phải đ ợc nối để cho hệ thống l m việc m không cần biết
bộ vi điều khiển thuộc họ 8051 hay 8031. Còn hai chân khác l PSEN v ALE đ ợc sử dụng
chủ yếu trong các hệ thống dựa trên 8031.
1. Chân VCC: Chân số 40 l VCC cấp điện áp nguồn cho chíp. Nguồn điện áp l +5V.
2. Chân GND: Chân GND: Chân số 20 l GND.
3. Chân XTAL1 v XTAL2:
8051 có một bộ giao động trên chíp nh ng nó yêu cầu có một xung đồng hồ ngo i để
chạy nó. Bộ giao động thạch anh th ờng xuyên nhất đ ợc nối tới các chân đầu v o XTAL1
(chân 19) v XTAL2 (chân 18). Bộ giao động thạch anh đ ợc nối tới XTAL1 v XTAL2 cũng
cần hai tụ điện giá trị 30pF. Một phía của tụ điện đ ợc nối xuống đất nh đ ợc trình b y
trên hình vẽ. Cần phải l u ý rằng có nhiều tốc độ khác nhau của họ 8051. Tốc độ đ ợc coi
nh l tần số cực đại của bộ giao động đ ợc nối tới chân XTAL. Ví dụ, một chíp 12MHz
hoặc thấp hơn. T ơng tự nh vậy thì một bộ vi điều khiển cũng yêu cầu một tinh thể có tần số
không lớn hơn 20MHz. Khi 8051 đ ợc nối tới một bộ giao động tinh thể thạch anh v cấp
nguồn thì ta có thể quan sát tần số trên chân XTAL2 bằng máy hiện sóng. Nếu ta quyết định sử
MOV R5, TH0 l l u byte cao TH0 của Timer 0 v o R5.
Các thanh ghi của bộ Timer 0.
4.6 Các thanh ghi của bộ Timer 1.
Bộ định thời gian Timer 1 cũng d i 16 bít v thanh ghi 16 bít của nó đ ợc chia ra
th nh
hai byte l TL1 v TH1. Các thanh ghi n y đ ợc truy cập v đọc giống nh các thanh ghi
của
bộ Timer 0 ở trên.
8
Đồ án môn: Vi xử lý và Đo lờng Sinh viên: Chu Tiến Đạt
Các thanh ghi của bộ Timer 1.
4.7 Thanh ghi TMOD (chế độ của bộ định thời).
Cả hai bộ định thời Timer 0 v Timer 1 đều dùng chung một thanh ghi đ ợc gọi l
IMOD để thiết lập các chế độ l m việc khác nhau của bộ định thời. Thanh ghi TMOD l thanh
ghi 8 bít gồm có 4 bít thấp đ ợc thiết lập d nh cho bộ Timer 0 v 4 bít cao d nh cho Timer 1.
Trong đó hai bít thấp của chúng dùng để thiết lập chế độ của bộ định thời, còn 2 bít cao dùng
để xác định phép toán. Các phép toán n y sẽ đ ợc b n d ới đây.
Thanh ghi TMOD.
4.8 Các bít M1, M0:
L các bít chế độ của các bộ Timer 0 v Timer 1. Chúng chọn chế độ của các bộ định
thời: 0, 1, 2 v 3. Chế độ 0 l một bộ định thời 13, chế độ 1 l một bộ định thời 16 bít v chế
độ 2 l bộ định thời 8 bít. Chúng ta chỉ tập chung v o các chế độ th ờng đ ợc sử dụng rộng
rãi nhất l chế độ 1 v 2. Chúng ta sẽ sớm khám phá ra các đặc tính củ các chế độ n y sau khi
khám phần còn lại của thanh ghi TMOD. Các chế độ đ ợc thiết lập theo trạng thái của M1 v
M0 nh sau:
4.9 C/ T (đồng hồ/ bộ định thời).
Bít n y trong thanh ghi TMOD đ ợc dùng để quyết định xem bộ định thời đ ợc dùng
nh một máy tạo độ trễ hay bộ đếm sự kiện. Nếu bít C/T = 0 thì nó đ ợc dùng nh một bộ
định thời tạo độ chễ thời gian. Nguồn đồng hồ cho chế độ trễ thời gian l tần số thạch anh của
8051. ở phần n y chỉ b n về lựa chọn n y, công dụng của bộ định thời nh bộ đếm sự kiện
Các bộ định thời tren 8051 có cả hai. Việc khởi động v dừng bộ định thời đ ợc khởi động
bằng phần mềm bởi các bít khởi động bộ định thời TR l TR0 v TR1. Điều n y có đ ợc nhờ
các lệnh SETB TR1 v CLR TR1 đối với bộ Timer1 v SETB TRO v CLR TR0 đối
với bộ Timer0. Lệnh SETB khởi động bộ định thời v lệnh CLR dùng để dừng nó. Các lệnh
n y khởi động v dừng các bộ định thời khi bít GATE = 0 trong thanh ghi TMOD. Khởi động
v ngừng bộ định thời bằng phần cứng từ nguồn ngo i bằng cách đặt bít GATE = 1 trong
thanh ghi TMOD. Tuy nhiên, để tránh sự lẫn lộn ngay từ bây giờ ta đặt GATE = 0 có nghĩa l
không cần khởi động v dừng các bộ định thời bằng phần cứng từ bên ngo i. Để sử dụng phần
mềm để khởi động v dừng các bộ định thời phần mềm để khởi động v dừng các bộ định thời
khi GATE = 0. Chúng ta chỉ cần các lệnh SETB TRx v CLR TRx. Việc sử dụng phần
cứng ngo i để khởi động v dừng bộ định thời ta sẽ b n ở ch ơng 11 khi b n về các ngắt.
4.12 Lập trình cho mỗi chế độ Mode1.
a) Những đặc tính v những phép toán của chế độ Mode1:
1. Nó l bộ định thời 16 bít, do vậy nó cho phép các giá trị 0000 đến FFFFH đ ợc nạp
v o các thanh ghi TL v TH của bộ định thời.
2. Sau khi TL v TH đ ợc nạp một giá trị khởi tạo 16 bít thì bộ định thời phải đ ợc
khởi
động. Điều n y đ ợc thực hiện bởi SETB TR0 đối với Timer 0 v SETB TR1 đối
với Timer1.
3. Sau khi bộ định thời đ ợc khởi động, nó bắt đầu đếm lên. Nó đếm lên cho đến khi
đạt đ ợc giới hạn FFFFH của nó. Khi nó quay qua từ FFFFH về 0000 thì nó bật lên bít cờ TF
đ ợc gọi l cờ bộ định thời. Cờ bộ định thời n y có thể đ ợc hiển thị. Khi cờ bộ định thời
n y đ ợc thiết lập từ một trong các ph ơng án để dừng bộ định thời bằng các lệnh CLR
TR0 đối với Timer0 hoặc CLR TR1 đối với Timer1. ở đây cũng cần phảI nhắc lại l đối với
bộ định thời đều có cờ TF riêng của mình: TF6 đối với Timer0 v TF1 đối với Timer1.
10
Đồ án môn: Vi xử lý và Đo lờng Sinh viên: Chu Tiến Đạt
4. Sau khi bộ định thời đạt đ ợc giới hạn của nó v quay quan giá trị FFFFH, muốn
lặp
lại quá trình thì các thanh ghi TH v TL phải đ ợc nạp lại với giá trị ban đầu v TF
đối với Timer0 v SETB TR1 đối với Timer1 giống nh ở chế độ 1.
3. Sau khi bộ định thời đ ợc khởi động, nó bắt đầu đếm tăng lên bằng cách tăng thanh
ghi TL. Nó đếm cho đến khi đại giá trị giới hạn FFH của nó. Khi nó quay trở về 00 từ FFH, nó
thiết lập cờ bộ định thời TF. Nếu ta sử dụng bộ định thời Timer0 thì đó l cờ TF0, còn Timer1
thì đó l cờ TF1
11
Đồ án môn: Vi xử lý và Đo lờng Sinh viên: Chu Tiến Đạt
4. Khi thanh ghi TL quay trở về 00 từ FFH thì TF đ ợc bật lên 1 thì thanh ghi TL
đ ợc tự động nạp lại với giá trị ban đầu đ ợc giữ bởi thanh ghi TH. Để lặp lại quá trình chúng
ta đơn giản chỉ việc xoá cờ TF v để cho nó chạy m không cần sự can thiệp của lập
trình viên để nạp lại giả trị ban đầu. Điều n y l m cho chế độ 2 đ ợc gọi l chế độ từ
nạp lại so với chế độ 1 thì ta phải nạp lại các thanh ghi TH v TL.
Cần phải nhấn mạnh rằng, chế độ 2 l bộ định thời 8 bít. Tuy nhiên, nó lại có khả
năng tự nạp khi tự nạp lại thì TH thực chất l không thay đổi với giá trị ban đầu đ ợc
giữ nguyên, còn TL đ ợc nạp lại giá trị đ ợc sao từ TH. Chế độ n y có nhiều ứng dụng
bao gồm việc thiết lập tần số baud trong truyền thông nối tiếp.
b) Các b ớc lập trình cho chế độ 2.
Để tạo ra một thời gian trễ sử dụng chế độ 2 của bộ định thời cần thực hiện các
b ớc sau:
1. Nạp thanh ghi giá trị TMOD để báo bộ định thời gian n o (Timer0 hay Timer1)
đ ợc
sử dụng v chế độ l m việc n o của chúng đ ợc chon.
2. Nạp lại các thanh ghi TH với giá trị đếm ban đầu.
3. Khởi động bộ định thời.
4. Duy trì hiển thị cờ bộ định thời TF sử dụng lệnh JNB TFx, đích để xem nó sẽ đ ợc
bật ch a. Thoát vòng lặp khi TF lên cao.
5. Xoá cờ TF.
6. Quay trở lại b ớc 4 vì chế độ 2 l chế độ tự nạp lại.
4.15 Lập trình cho bộ đếm.
ở phần trên đây ta đã sử dụng các bộ định thời của 8051 để tạo ra các độ trễ thời gian.
của cờ TF l một sự lãng phí thời gian của BVĐK. Điều đó đúng có một giải pháp cho vấn đề
n y l sử dụng các ngắt. Khi sử dụng các ngắt ta có thể đi thực hiện các công việc khác với
BVĐK. Khi cờ TF đ ợc bật thì nó báo cho ta biết đây l điểm quan trọng về thế mạnh của
8051.
2. Chúng ta muốn biết các thanh ghi TR0 v TR1 thuộc về đâu. Chúng thuộc về một
thanh ghi gọi l TCON mã sẽ đ ợc ban sau ở đây (TCON - l thanh ghi điều khiển bộ
đếm (bộ định thời)).
4.17 Thanh ghi TCON.
13
Đồ án môn: Vi xử lý và Đo lờng Sinh viên: Chu Tiến Đạt
Trong các ví dụ trên đây ta đã thấy công dụng của các cờ TR0 v TR1 để bật/ tắt các
bộ định thời. Các bít n y l một bộ phận của thanh ghi TCON (điều khiển bộ định thời). Đây
l thanh ghi 8 bít, nh đ ợc chỉ ra trong bảng 9.2 thì bốn bít trên đ ợc dùng để l u cất các
bít TF v TR cho cả Timer0 v Timer1. Còn bốn bít thấp đ ợc thiết lập d nh cho điều khiển
các bít ngắt m ta sẽ b n ở ch ơng 11. Chúng ta phải l u ý rằng thanh ghi TCON l thanh
ghi có thể đánh địa chỉ theo bít đ ợc. Nên ta có thể thay các lệnh nh SETB TR1 l CLR
TR1 bằng các lệnh t ơng ứng nh SET TCON.6 v CLR TCON.6.
4.18 Tr ờng hợp khi bít GATE = 1 trong TMOD.
Tr ớc khi kết thúc ch ơng ta cần b n thêm về tr ờng hơpợ khi bít GATE = 1trong
thanh ghi TMOD. Tất cả những gì chúng ta vừa nói trong ch ơng n y đều giả thiết GATE = 0.
Khi GATE = 0 thì bộ định thời đ ợc khởi động bằng các lệnh SETB TR0 v SETB TR1
đối với Timer0 v Timer1 t ơng ứng. Vậy điều gì xảy ra khi bít GATE = 1? Nh ta có thể
nhìn thây thì nếu GATE = 1 thì việc khởi động v dừng bộ định thời đ ợc thực hiện từ bên
ngo i qua chân P2.3 v P3.3 đối với Timer0 v Timer1 t ơng ứng. Mặc dù rằng TRx đ ợc
bật lên bằng lệnh SETB TRx thì cũng cho phép ta khởi động v dừng bộ định thời từ bên
ngo i tại bất kỳ thời điểm n o thông qua công tắc chuyển mạch đơn giản. Ph ơng pháp điều
khiển phần cứng để dừng v khởi động bộ định thời nay có thể có rất nhiều ứng dụng. Ví dụ,
chẳng hạn 8051 đ ợc
dùng trong một sản phẩm phát báo động mỗi giây dùng bộ Timer0 theo nhiều việc khác. Bộ
Timer0 đ ợc bật lên bằng phần mềm qua lệnh SETB TR0 v nằm ngo i sự kiểm soát của