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

ĐO vận tốc TRUNG BÌNH của một vật CHƯYỂN ĐỘNG TỊNH TIẾN

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 (419.82 KB, 33 trang )


TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA : ĐIỆN TỬ
ĐỒ ÁN MÔN HỌC
ĐỀ TÀI: ĐO VẬN TỐC TRUNG BÌNH CỦA MỘT VẬT CHƯYỂN ĐỘNG TỊNH
TIẾN.
Giáo viên hướng
dẫn:
Nguyễn Anh Dũng
Sinh viên thực hiện:
1.Nguyễn Đức Mạnh
2.Nguyễn Xuân Hùng


LỜI NÓI ĐẦU
Bước sang thế kỷ XXI, thế giới và Việt nam đều khẳng
định có 04 lĩnh vực khoa học được gọi là lĩnh vực công
nghệ cao, đó là: Công nghệ điện tử; Công nghệ Vật liệu
mới; Công nghệ sinh học và Công nghệ năng lượng
mới. Ngành Công nghệ Điện tử ở đây thực chất được hiểu
bao gồm từ công nghệ Nano, Kỹ thuật điện tử, Kỹ thuật
máy tính, Điện tử viễn thông và Điều khiển Tự động .Một
trong những yếu tố tạo ra những tiền đề đó là ngành Công
nghệ kỹ thuật Điện Tử -Tự Động Hoá.Việc áp dụng hợp lý
các thành tựu của điều khiển tự động và máy vi tính vào
sản xuất sẽ mang lại lợi ích to lớn về nhiều mặt.
Môn học vi xử lý là một trong ứng dụng to lớn đó, với
sự ra đời của các bộ vi xử lý nói chung, các bộ vi điều
khiển nói riêng đã tạo ra một bước ngoặt lớn trong việc
thiết kế các hệ thống xử lý thông tin, đo lường điều khiển
và truyền thông….


Được sự hướng dẫn nhiệt tình của cô giáo nhóm
em đã nghiên cứu thành công và đã hoàn thành xong nội
dung đề tài đồ án môn học vi điều khiển:

PHẦN I : GIỚI THIỆU CHUNG VỀ BỘ VI ĐIỀU
KHIỂN

Bộ vi điều khiển viết tắt là Micro-controller,là mạch
tích hợp trên một chip có thể lập trình được,dùng để điều
khiển hoạt động của một hệ thống.Theo các tập lệnh của
người lập trình , bộ vi điều khiển tiến hành đọc,lưu trữ
thông tin,đo thời gian và tiến hành đóng mở một cơ cấu nào
đó.

Trong các thiết bị điện và điện và điện tử dân dụng,các
bộ vi điều khiển,điều khiển hoạt đọng của TV,máy giặt,đầu
đọc laser,điện thoại,lò viba….Trong hệ thống sản xuất tự
động,bộ vi điều khiển được sử dụng trong Robot,dây truyền
tự động.Các hệ thống càng “thông minh” thì vai trò của hệ
vi điều khiển càng quan trọng.
Hiện nay các bộ vi điều khiển 8 bit đứng đầu là họ
8051 có số lượng lớn nhất các nhà cung cấp đa dạng (nhiều
nguồn ).Nhà cung cấp có nghĩa là nhà sản xuất bên cạnh
nhà sáng chế của bộ vi điều khiển .Trong trường hợp 8051
thì nhà sản xuất là Intel , nhưng hiện nay có rất nhiều hãng
sản xuất nó (cũng như trước kia đã sản xuất).8051 là một
bộ sử lý 8 bit có nghĩa là CPU chỉ có thể làm việc với 8 bit
dữ liệu tại một thời điểm.Dữ liệu lớn hơn 8 bit được chia ra
thành các dữ liệu 8 bit để cho xử lý.8051 có tất cả 4 cổng
vào – ra I/O mỗi cổng rộng

8 bit.Các nhà sản xuất đã cho xuất xưởng chỉ với 4K byte
ROM trên chíp.

Bảng đặc tính của 8051 đầu tiên
IC AT89S52
Bộ vi điều khiển AT89S52 gồm các chức năng chính sau
đây :
• CPU (Centralprocessing unit) bao gồm :
Thanh ghi tích lũy A
Đặc tính Số lượng
ROM trên chíp
RAM
Bộ định thời
Các chân vào ra
Cổng nối tiếp
Nguồn ngắt
4K byte
128 byte
2
32
1
6
Thanh ghi tích lũy B ,dùng cho phép nhân và phép
chia
Đơn vị logic học (ALU : Arithmetic Logical Unit)
Thanh ghi từ trạng thái chương trình (PSw :
Program Status Word)
Bốn băng thanh ghi
Con trỏ ngăn xếp
• Bộ nhớ chương trình (bộ nhớ ROM)gồm 8kbyte Flash

• Bộ nhớ dữ liệu (bộ nhớ RAM) gồm 256 byte
• Bộ UART (Universal Ansynchronous Receiver and
Tranmistter) có chứ năng truyền nhận nối tiếp ,
AT89S52 có thể giao tiếp với cổng nối tiếp của máy
tính thông qua bộ UART
• 3 bộ Timer/Counter 16 bit thực hiện các chức năng định
thời và đếm sự kiện
• WDM (Watch Dog Timer) : WDM được dùng để phục hồi lại hoạt
động của của CPU khi nó bị treo bởi một nguyên nhân nào
đó.WDM
ở AT89S52 gồm 1 bộ timer 14 bit ,1 bộ 7 bit ,thanh ghi WDTPRG
(WDT programable).Bình thường WDT không hoạt động (bị cấm),
để cho phép WDT ,các giá trị 1EH và E1H cần phải được ghi liên
tiếp vào thanh ghi WDTRST.Timer 14 bit của WDT sẽ đếm tăng
dần sau mỗi chu kỳ đồng hồ cho đến giá trị 16383 thì xảy ra tràn.
Khi xảy ra tràn,chan Reset sẽ được đặt ở mức cao trong khoảng
thời
gian 98*T
OSC
(T
OSC
= 1/F
OSC)
và AT89S52 sẽ được reset .Khi WDT
hoạt động , ngoại trừ Reset phần cứng và Reset cho WDT tràn thì
không có cách nào để cấm được WDT , vì vậy khi sử dụng WDT
thì
các đợn mã của chương trình phải được đặt trong các khe thời gian
giữa các lần WDT được khởi tạo lại.
• Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4

nguồn ngắt trong
• Bộ lập trình(ghi chương trình lên Flash ROM) cho phép
người sử dụng có thể nạp các chương trình cho chíp mà
không cần đến bộ nạp chuyên dụng
• Bộ chia tần số với hệ số chia là 12
• 4 cổng xuất nhập với 32 chân
Sơ đồ chân , chức năng của các chân của AT89S52


CHỨC NĂNG CÁC
CHÂN CỦA HỌ 8051
1. Port 0(P0.0 – P0.7) :
Port 0 gồm 8
chân,ngoài chức năng
xuất nhập ,port 0 còn là
bus dữ liệu và địa chỉ
(AD0 –
AD7),chức năng này sẽ
được sử dụng khi 8051
giao tiếp
với các thiết bị ngoài có kiến trúc Bus như các vi mạch
nhớ…
1. Port 1 (P1.0 – P1.7) : có chức năng xuất nhập theo bit
và theo byte.Bên cạnh đó 3 chân P1.5 , P1.6 , P1.7
được dùng để nạp ROM theo chuẩn ISP , 2 chân P1.0
và P1.1 được dùng cho bộ Timer 2.
2. Port 2 : là cổng vào/ra còn là byte cao của bus địa chỉ
khi sử dụng bộn nhớ ngoài.
3. port 3 : ngoài chức năng xuất nhập còn có chức năng
riêng

Dữ liệu nhận cho
port nối tiếp
4.
P3.0 RXD
Bit Tên Chức năng
P3.1 TXD Dữ liệu truyền cho
port nối tiếp
P3.2 INT0 Ngắt bên ngoài 0
P3.3 INT1 Ngắt bên ngoài 1
P3.4 T0 Ngõ vào của
Timer/counter 0
P3.5 T1 Ngõ vào của
Timer/counter 1
P3.6 /WR Xung ghi nhớ dữ
liệu ngoài
P3.7 /RD Xung đọc bộ nhớ
dữ liệu ngoài
5. Chân /PSEN (Program Store Enable) : là chân điều
khiển đọc chương trình ở bộ nhớ ngoài,nó được phép
đọc các byte mã lệnh trên ROM ngoài./PSEN sẽ ở
mức thấp trong thời gian đọc mã lệnh.Mã lệnh được
đọc từ bộ nhớ ngoài qua bus dữ liệu (port 0) thanh ghi
lệnh để được giải mã.khi thực hiện chương trình ROM
nội thì /PSEN ở mức cao
6. Chân ALE (Address Latch Enable) : ALE là tín hiệu
điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao
động của vi điều khiển.Tín hiệu ALE được dùng để
cho phép vimachj chốt bên ngoài hư 74373,74573
chốt byte địa chỉ thấp ra khỏi bus đa hợp địa chỉ/dữ
liệu (Port 0).

7.Chân /EA(External Access) : tín hiệu cho phép chọn bộ
nhớ chương trình là bộ nhớ trong hay ngoài vi điều
khiển.Nếu /EA ở mức cao (nối với V
CC
),thì vi điều khiển
thi hành n chương trình trong ROM nội.Nếu /EA ở mức
thấp(vi điều khiển thi hành chương trình bộ nhớ ngoài.
8 .XTAL1,XTAL2 áp từ 4V đến 5,5V được cấp qua chân
40 và 20.: AT89S52 có một bộ dao động trên chíp , nó
thường được nối với bộ dao động thạch anh có tần số lớn
nhất là 33MHz,thông thường là 12MHz
9.V
CC
nối GND)thì,GND : AT89S52 có dải điện dùng
nguồn một chiều
Cấu trúc bên trong của
AT89S52
T 1
T0
Điều
khiển ngắt
Các thanh
ghi khác
256
byte RAM
MRO
noäi
Timer
2Timer
1Timer 0

CPU
Oscillator Điều khiển bus
Các port I/O
Port nối tiếp
Port ngoài
tieáp
Timer 0
Timer 1
Timer 2
INT0
INT1
EA
RST
PSEN
ALE
P0 P2 P1 P3
TxD RxD
T2
EX
TE
RN
AL
II/KHẢO SÁT CÁC KHỐI NHỚ BÊN TRONG
AT89S52
• Tổ chức bộ nhớ :
Bộ nhớ bên trong của AT89S52 bao gồm 8k ROM và
256 byte RAM.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 và các thanh ghi chức năng đặc biệt.
AT89S52 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à dữ liệu .
Chương trình và dữ liệu có thể chứa bên trong AT89S52
nhưng AT89S52 vẫn có thể kết nối với 64k byte bộ nhớ
chương trình và 64k byte bộ nhớ dữ liệu mở rộng.
Bộ nhớ dữ liệu : Ram bên trongAT89S52 đượ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
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 :

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 bank thanh ghi
PSW.3 RS0 D3H Bit 0 chọn bak thanh ghi
00=bank 0 ; địa chỉ 00H _
07H
01=bank 1 ; địa chỉ 08H _
0FH
10=bank 2 ; địa chỉ 10H _
1FH
11=bank 3 ; địa chỉ 18H _
1FH
PSW.2 0V D2H Cờ tràn

PSW.1 _ D1H Dự trữ
PSW.0 P D0H Cờ parity chẵn lẻ
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 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 :
C 7
C A P
S W 1
R 9

R
V C C
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 :

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.
III/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.
Thanh ghi TMOD
7 6 5 4 3 2 1
GATE1 C/#T1 M1 M0 GATE0 C/#T0 M1 M0
Bit Ký hiệu Chức năng
7 GATE1 Bit điều khiển cổng.Khi set lên 1,bộ định
thời chỉ hoạt động trong khi INT1 ở mức
cao
6 C/#T1 Bit chọn chức năng đếm hoặc định thời
1=đếm sự kiện
0=định thời trong 1 khoảng thời gian
5 M1 Bit chọn chế độ thứ nhất
4 M0 Bit chọn chế độ thứ 2
00 chế độ 0 – Timer 13 bit
01 chế độ 1 – Timer 16 bit
10 chế độ 2 – 8 bit tự động nạp lại
11 chế độ 3 – tách Timer
3 GATE0 Bit điều khiển cổng cho bộ định thời 0
2 C/#T0 Bit chọn chức năng đếm hoặc định thời
cho bộ định thời 0
1 M1 Bit chọn chế độ 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

TCON.2 TCON.1 TCON.0
TF1 TR1 TF0 TR0 IT1 IE1 IT0 IE0
Bit Ký hiệu Chức năng
TCON Điều khiển bộ
định thời
TCON.7 TF1 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
bởi phần cứng khi bộ vi xử lý trỏ
đến trình phục vụ ngắt
TCON.6 TR1 Bit điều khiển hoạt đong 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ộ định thời hoạt động hay ngưng
TCON.5 TF0 Cờ tràn của bộ định thời 0
TCON.4 TR0 Bit điều khiển hoạt động của bộ
định thời
TCON.3 IE1 Cờ ngắt bên ngoài 1(kích khởi
cạnh).Cờ này được set bởi phần
cứng khi có cạnh âm (cuống) xuất
hiện trên chan INT1,được xóa bởi
phần mềm,hoặc phần cứng khi
CPU trỏ đến trình phục vụ ngắt
TCON.3 IE1 Cờ ngắt bên ngoài 1(kích khởi
cạnh).Cờ này được set bởi phần
cứng khi có cạnh âm (cuống) xuất
hiện trên chan INT1,được xóa bởi
phần mềm,hoặc phần cứng khi
CPU trỏ đến trình phục vụ ngắt
TCON.2 IT1 Cờ ngắt bên ngoài 1(kích khởi

cạnh hoặc mức).Cờ này được set
hay xóa bởi phần mềm khi xảy ra
cạnh âm hoặc mức thấp ở chân
ngắt ngoài
TCON.1 IE0 Cờ ngắt bên ngoài 0(kích khởi
cạnh)
TCON.0 IT0 Cờ ngắt bên ngoài 0(kích khởi
cạnh hoặc mức)
*/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
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 .

IV/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

tả
Cờ
ngắt

thanh
ghi
chứa
cờ
Vector
ngắt
1
INT0 Ngắt ngoài 0
khi có tín hiệu
tích cực theo
kiểu đã chọn ở
chân P3.2
IE0 TCON 0x0003
2
Timer0 Ngắt tràn
timer0 khi giá
trị timer0 tràn
từ giá trị max về
giá trị min
TF0 TCON 0x000B
3
INT1 Ngắt ngoài 1
khi có tín hiệu

tích cực theo
kiểu đã chọn ở
chân P3.3
IE1 TCON 0x0013
4
Timer1 Ngắt tr
àn
timer1 khi giá
trị timer1 tràn
từ giá trị max về
giá trị min
TF1 TCON 0x001B

5
Serial
Port
Ngắt cổng
nối
tiếp khi vi điều
khiển nhận hoặc
truyền xong một
byte bằng cổng
nối tiếp
TI, RI SCON 0x0023
6
Timer2 Ngắt tràn
timer2 khi giá
trị timer2 tràn
TX2
Hoặc

EXF2
T2CON 002BH
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 hoàn toà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
Bit Ký
hiệu
Địa chỉ
bit
Mô tả

IE.7 EA AFH Cho phép / cấm toàn
bộ
IE.6 _ AEH Không được miêu tả
IE.5 ET2 ADH Cho phép ngắt từ
Timer 2 (8052)
IE.4 ES ACH Cho phép ngắt 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 ngoài
0
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 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 đếTF0 trước khi cho phép ngắt
tn). Vì vậy hãy xóa cờ ràn timer0. Ngoại trừ cờ của của
gắ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.
1.Ngắt ngoà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 ngoài.
7 6 5 4 3 2 1 0
TF1 TR1 TF0 TR1 IE1 IT1 IE0 IT0
Khi bit ITx = 1 thì ngắt ngoà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
ngoà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 ngoà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 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.
2.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ó nguyên lý hoạt động hoàn toà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.
3.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 .Khối hiển thị LCD
5> Module LCD 16x2;
Chân số Ký hiệu Mức logic I/O Chức năng
1 Vss - - Nguồn cung cấp(GND)
2 Vdd - - Nguồn cung cấp(+5V)
3 Vee - I Điện áp để điều chỉnh độ tương phản
4 RS 0/1 I Lựa chọn thanh ghi
0= thanh ghi lệnh
1=thanh ghi dữ liệu
5 R/W 0/1 I 0=ghi vào LCD module
1=đọc từ LCD module
6 E 1,1=>0 I Tín hiệu cho phép

7 DB1 0/1 I/O Data bus line 0(LSB)
8 DB2 0/1 I/O Data bus line1
9 DB3 0/1 I/O Data bus line2
10 DB4 0/1 I/O Data bus line3
11 DB5 0/1 I/O Data bus line4
12 DB6 0/1 I/O Data bus line5
13 DB7 0/1 I/O Data bus line6
14 DB8 0/1 I/O Data bus line7(MSB)
15 Vcc - - Nguồn cung cấp
16 GND - - mass
III .LED (cảm biến hồng ngoại)
1.Giới thiệu
LED (viết tắt của Light Emitting Diode, có nghĩa là điốt phát
quang) là các điốt có khả năng phát ra ánh sáng hay tia hồng
ngoại, tử ngoại. Cũng giống như điốt, LED được cấu tạo từ
một
khối bán dẫn loại p ghép với một khối bán dẫn loại
2.Hoạt động
Hoạt động của LED giống với nhiều loại điốt bán dẫn.Khối
bán dẫn loại p chứa nhiều lỗ trống tự do mang điện tích
dương nên khi ghép với khối bán dẫn n (chứa các điện tử tự
do) thì các lỗ trống này có xu hướng chuyễn động khuếch
tán sang khối n. Cùng lúc khối p lại nhận thêm các điện tử
(điện tích âm) từ khối n chuyển sang. Kết quả là khối p tích
điện âm (thiếu hụt lỗ trống và dư thừa điện tử) trong khi
khối n tích điện dương (thiếu hụt điện tử và dư thừa lỗ
trống).
Ở biên giới hai bên mặt tiếp giáp, một số điện tử bị lỗ trống
thu hút và khi chúng tiến lại gần nhau, chúng có xu hướng
kết hợp với nhau tạo thành các nguyên tử trung hòa. Quá

trình này có thể giải phóng năng lượng dưới dạng ánh sáng
(hay các bức xạ điện từ có bước sóng gần đó).
VI.Sơ đồ nguyên lý mạch đo vận tốc trung bình của vât
chuyển động tịnh tiến.
1. Khối 7805 la khối cấp nguồn chuẩn 5v cho mạch
hoạt động
2. khối thạch anh và tụ 33 picôfara la khối dao động
của mạch ở đây nó có tac dụng cấp xung clock cho
mạch hoạt động.
3. port 0 của vy điều khiển là chân xuất nhập dữ liệu
vao LCD.
4. ba chân p2^0,p2^1 và p2^2 là 3 chân điều khiển

×