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

ĐO VẬN TỐC TRUNG BÌNH CỦA MỘT VẬT CHUYỂN ĐỘNG TỊNH TIẾN HIỂN THỊ TRÊN 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 (564.76 KB, 27 trang )

Trường Đại Học Công Nghiệp Hà Nội
LỜI NÓI ĐẦU
Bước sang thế kỷ XXI thế giới và Việt Nam đều khẳng định có 4
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
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 tính vào sản xuất sẽ mang
lại lợi ích to lón về nhiều mặt.

I: Đặt vấn đề

Ngày nay kỹ thuật vi diều khiển đã trở nên quen thuộc trong nganh
kỹ thuật và trong dân dụng .từ các dây truyền sản xuất lớn tới các thiết bị
dân dụng .chung ta đều thấy có mặt của vi điều khiển .các bộ vi điều
khiển có khả năng sử lý nhiều hoạt động phức tạp mà chỉ cần 1 con chip
vi mạch nhỏ ,nó đã thay thế các tủ điều khiển lớn và phức tạp bằng những
mạch điện nhỏ gọn ,dễ thao tác sử dụng .
Vi điều khiển không những góp phần vào kỹ thuật điều khiển mà
còn góp phần to lớn vào việc phát triển thông tin .Đó chính là sự ra đời
của hàng loạt các thiết bị tối tân trong ngành điện tử viễn thông ,truyền
hình ,đặc biệt là sự ra đời của mạng internet siêu xa lộ thông tin .góp
phấn đưa con người tới đỉnh cao của nền văn minh nhân loại.


Chính các lý do trên ,việc tìm hiểu vi điều khiển là điều kiện mà các
sinh viên các ngành đặc biệt là ngành điện_điện tử phải hết sức quan
tâm .Đó chính là một nhu cầu cấp bách và cần thiết với mỗi sinh viên .đề
tài được thực hiện chính là đáp ứng nhu cầu đó.



Lớp Điện Tử 4_K - 1 –

Trường Đại Học Công Nghiệp Hà Nội
Các bộ vi điều khiển sử dụng các vi điều khiển tuy đơn giản nhưng
vận hành và sử dụng được là một điều rât phức tạp .Phần công việc sử lý
chính vẫn phụ thuocj vào con người đó chính là chương trính hay phần
mềm.Tuy chúng ta thấy các máy tinh cực kỳ thông minh giải quyết các
bài toán phức tạp trong vài phần triệu giây nhưng đó cũng là dựa trên
những sự hiểu biết của con người .Nếu không có sự tham gia của con
người thì hệ thống vi điều khiển cũng chỉ là một vật vô tri.đo vậy khi nói
đến vi điều khiển cũng giống như máy tính bao gôm hai phần là phần
cứng và phần mềm.

Các bộ vi điều khiển theo thời gian cùng với sự phát triển của công
nghệ bán dẫn đã tiến triển rất nhanh từ bộ vi điều khiển 4 bit đơn giản đến
bộ vi điều khiển 32 bit.Với công nghệ tiên tiens ngày nay máy tính có thể
đi đến viêc suy nghĩ tri thức các thông tin đưa vào đó là các máy tính
thuộc thế hệ trí tuệ nhân tạo.
Để tài tìm hiểu vi điều khiển một cách thực tế và tích lũy thêm kinh
nghiệm ,ngay khi đang là sinh viên ,việc làm đồ án là vô cùng cần thiết
Sau đây chúng ta tìm hiểu về đề tài “ ĐO VẬN TỐC TRUNG BÌNH
CỦA MỘT VẬT CHUYỂN ĐỘNG TỊNH TIẾN HIỂN THỊ TRÊN LCD
“ .Đây là một cách hiển thị khá phổ biến hiện nay.
Lớp Điện Tử 4_K - 2 –

Trường Đại Học Công Nghiệp Hà Nội
II: Mục đích yêu cầu của đề tài.

Đề tài “ ĐO VẬN TỐC TRUNG BÌNH CỦA MỘT VẬT CHUYỂN

ĐỘNG TỊNH TIẾN HIỂN THỊ TRÊN LCD”
Hệ thống sử dụng 2 cảm biến phát hiện vật đặt tại 2 vị trí khác nhau trên
hướng chuyển động của vật.
III :Cơ sở lý luận:
Dựa trên cơ sở của các đề tài vi điều khiển ,đặc biệt là các tính năng
của chúng cũng như các họ IC giao tiếp ,hiển thị và giải mã …. Nhằm
thiết kế môt hệ thống vi điều khiển góp phần làm phong phú cho việc
hiểu biết về lĩnh vực này đồng thời có thể mở rộng và định hướng về sau .

Đề tài này được thực hiện chủ yếu dựa trên kiến thức về vi điều khiển
,các phương pháp truyền dữ liệu ,tìm hiểu vè các IC được dung .
Các linh kiện được dùng trong đề tài bao gôm:
• Vi điều khiển IC AT89S52
• LCD 16*2
• IC LM358
• Cảm biến(octo)
VI: Giới hạn của đề tài:
Do thời gian nghiên cứu và thực hiện có hạn mặc dù đã nỗ lực nên
đồ án không tránh khỏi những thiếu sót. Vì thế,nhóm chúng tôi rất mong
nhận được những đóng góp từ thầy cô và các bạn để đề tài hoàn thiện
hơn.

Xin chân thành cảm ơn !!!

Lớp Điện Tử 4_K - 3 –

Trường Đại Học Công Nghiệp Hà Nội
GIỚI THIỆU CHUNG VỀ BỘ VI ĐIỀU
KHIỂN
Bộ vi điều khiển viết tên tiếng anh là Micro- Controller là mạch tích hợp

trên 1 chip có thể lập trình được ,dung để đ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 chữ thông tin ,đo thời gian và tiến hành đóng mở một co
cấu nào đó

Trong các thiết bị đ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 loicj lazer ,điện thoại,lò vi song…
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 thi vai trò của vi
điều khiển càng quan trọng .

Vi điều khiển 8051 được Intel cho ra đời vào năm 1980 thuộc vi điều
khiển đầu tiên của họ MCS-51. Hiện tại rất nhiều nhà sản xuất như
Siemens, Advanced Micro Devices, Fusisu và Philips tập trung phát triển
các sản phẩm trên cơ sở 8051.
hgAtmel là hãng đã cho ra đời các chip 89C51, 52, 55 và sau đó cải tiến
thêm, hãng cho ra đời 89S51, 52, 89S8252…
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 .8051 là một bộ vi sử lý 8 bit có nghĩa
la CPU chỉ co 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 sử 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 chip.
Đặc tính Số lượng
Rom 4K byte
Ram 128 byte
Bộ định thời 2
Chân vào/ra 32
Cổng nối tiếp 1
Nguồn ngắt 6

Bảng đặc tính của 8051 đầu tiên
Lớp Điện Tử 4_K - 4 –

Trường Đại Học Công Nghiệp Hà Nội
I:Sơ đồ khối và chức năng các khối của 8051/8052/AT89S52
Sơ đồ khối của bộ vi điều khiển AT89S52
II:Bộ vi điều khiển AT89S52 gồm các khối chức năng là :
Lớp Điện Tử 4_K - 5 –

Trường Đại Học Công Nghiệp Hà Nội
1. CPU(Centralprocessing unit):
• Thanh ghi tích lũy A
• Thanh ghi tích lũy phụ B
• Đơ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
2. Bộ nhớ chương trình:( bộ nhớ ROM ) gồm 8 Kbyte flash
3. Bộ nhớ giữ liệu:( bộ nhớ RAM ) gồm 256 byte
4. Bộ UART: có chức năng truyền nhận nối tiếp,AT89S52 có
thể giao tiếp với cổng nối tiếp với máy tính thông qua bộ
UART.
5. 3 bộ timer/counter: 26 bit thực hiện chức năng định thời và
đếm sự kiện.
6. WDM ( Wath Dog Timer ): để phục hồi lại hoạt động của
CPU khi nó bi treo.
Thanh ghi WDTPRG
7 6 5 4 3 2 1 0
- - - - - S2 S1 S0

Tùy theo các giá trị khác nhau được ghi vào SO,S1,S2 sẽ có số chu kỳ
máy mà WDT sẽ đếm trong bảng sau
S2 S1 S0 Machine Cyle Count
0 0 0 2
14
0 0 1 2
15
0 1 0 2
16
0 1 1 2
17
1 0 0 2
18
1 0 1 2
19
1 1 0 2
20
1 1 1 2
21
SƠ LƯỢC VỀ CÁC LINH KIỆN
Lớp Điện Tử 4_K - 6 –

Trường Đại Học Công Nghiệp Hà Nội
I: Sơ đồ chân,chức năng các chân của AT89S52.
Sơ đồ chân IC AT89S52
II: Chức năng của các chân của
1. Port 0 (P0.0 - P0.7)
Port 0: gồm 8 chân (chân 39-32) ngoài chức năng xuất nhập port
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ó kieents trúc bus

như là các vi mạch nhớ ,mạch PIO …
2. Port 1 (P1.0 - P1.7)
Port 1 (chân 1 – 8) có chức năng xuất nhập theo bit và theo
byte .Đối với dòng 89Sxx ba chân P1.5,P1.6,P1.7 dduocj dung để
nạp ROM theo chuẩn ISP ,2 chân P1.0 và P1.1 được dùng cho bộ
timer 2.
3. Port 2 (P2.0 – P2.7)
Port 2( chân 21-28)là cổng vào/ra là còn byte cao của Bus địa chỉ
khi sử dụng bộ nhớ ngoài
4. Port 3 (P3.0_P3.7)
Lớp Điện Tử 4_K - 7 –

Trường Đại Học Công Nghiệp Hà Nội
P ort 3(chân 10 – 17) mỗi chân trên port3 ngoài chức năng nhập
còn
có chức năng riêng:
5. Chân /PSEN( program Store Enable):
/PSEN Là chân điều khiển đọc chương trình ở bộ nhớ ngoài nó
được nối với chân /OE để cho 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ệm chương trình trong 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 có tần số bằng 1/6 tần số dao
động của vi điều khiển
7. Chân /EA: (External Access )
Tín hiệu /EA 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 /EN ở mức cao thì vi điều khiển thi

hành chương trình trong ROM nội. nếu /EA ở mức thấp thì vi điều
khiển thi hành chương trình từ bộ nhớ ngoài,
8. RST( 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 ,các thanh ghi trong bộ vi điều khiển được
tải những giá trị thích hợp để khởi động hệ thống
9. XTAL1,XTAL2
Lớp Điện Tử 4_K - 8 –

Trường Đại Học Công Nghiệp Hà Nội
AT89S52 có một bộ dao động trên chip,nó thường được gắn với bộ
dao động thạch anh có tần số lớn nhất là 33MHz ,thông thường là
12MHz
10.VCC,GND
AT89S52 dùng nguồn 1 chiều có dải điện áp từ 4V đến 5.5V được
cấp qua chân 40 và 20.
III: Tổ chức bộ nhớ
AT89S52 có bộ nhớ theo cấu trúc Harvard có những vùng chia bộ
nhớ riêng biệt cho chương trình và dữ liệu:
1. Bộ nhớ chương trình
AT89S52 có 8 Kbyte flash ROM trên chip ,khi chân /EA
được đặt ở mức logic cao bộ vi điều khiển sẽ thực hiện
chương trình trong bộ nhớ mày bắt dầu từ địa chỉ
0000H.số lần lập trình cho bộ nhớ này là khoảng 1000
lần.còn nếu chân /EA đặt ở mức thấp thì thực hiện
chương trình ở bộ nhớ chương trình ngoài (EPPOM ngoài
)
2. Bộ nhớ dữ liệu
AT89S52 có 256 byte RAM nội được chia làm thành
• Các bank thanh ghicos đị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 FFH
• Các thanh ghi chức năng đặc biệt từ 80H đến
FFH
IV: Các thanh ghi chức năng
1, Từ trạng thái chương trình(PSW: Program Status Word )

Bit Ký hiệu Địa chỉ Mô tả
PSW.7 CY D7H Cary Flag
PSW.6 AC D6H Auxiliary Cary Flag
PSW.5 FO D5H Flag o
PSW.4 RS1 D4H Register Bank Select 1
PSW.3 RS0 D3H Register Bank Select 0
PSW.2 OV D2H Overlow Flag
PSW.1 - D1H Reserved
PSW.0 P D0H Even Parity Flag
• Cờ nhớ CY:( Cary Flag )
• Cờ nhớ phụ AC: (Auxiliary Cary Flag )
Lớp Điện Tử 4_K - 9 –

Trường Đại Học Công Nghiệp Hà Nội
• Cờ 0 : (Flag o )
• Bit chọn Bank thanh ghi truy xuất RS0,RS1
• Cờ tràn OV : (Overlow Flag )
• Bit Parity : ( P)
2, Thanh ghi B
Ở địa chỉ F0H được dùng cùng thanh ghi A trong các phép toán nhân
.cũng có thể dùng như một thanh ghi trung gian,thanh ghi này được
định địa chỉ theo bit từ F0H đến F7H

3, Con trỏ ngăn xếp SP(Stack Pointer)
Là 1 thanh ghi 8 bit ở địa chỉ 81H để chứa địa chỉ của đỉnh ngăn xếp
4, Con trỏ dữ liệu DPTR( Data pointer )
Dùng để truy xuất bộ nhớ ngoài
5, Thanh ghi của các công ( port register )
• Port 0 ở địa chỉ 80H
• Port 1 ở địa chỉ 90 H
• Port 2 ở địa chỉ A0H
• Port 3 ở địa chỉ B0H
Các thanh ghi của các Port này đều có thể truy xuất theo Bit và theo
Byte
6, Thanh ghi của các bộ định thời( Timer Register )
Chứa 3 bộ đếm định thời (Timer/counter) 16 Bit được dùng cho việc
định
thời hoặc đếm sự kiện
7, Thanh ghi của cổng nối tiếp (Serial port Register)
At89S52 chứa 1 port nối tiếp phục vụ cho việc trao đổi thông tin
với các thiết bị có khả năng giao tiếp nối tiếp
8, Thanh ghi ngắt ( interrupt register)
AT89s52 có 6 nguồn ngắt ,2 mức ưu tiên
9, Thanh ghi điều khiển nguồn PCON (power Control Register)
PCOM gồm 8 bit nằm ở địa chỉ 87H,thanh ghi nay không được định địa
chỉ theo bit.ý nghĩa của từ bit như sau:
Bit
7(SMOD)
Bit tăng tốc độ Bank ở mode1,2,3 của cổng nối tiếp
Bit 6,5,4 Không sử dụng
Bit 3(GF1) Bit cờ đa năng 1
Bit 2(GF0) Bit cờ đa năng 2
Bit 1(PD) Bit khởi tạo hế độ Power Down

BiT 0(IDL) Bit khởi tạo chế độ IDLE
Lớp Điện Tử 4_K - 10 –

Trường Đại Học Công Nghiệp Hà Nội
V: Mạch tạo dao động và Reset
1, Mạch tạo dao động:

X T A L 2
X T A L 1
1 8
1 9
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 XTAL 1 và XTAL 2
Hoạt động ở 2 chế độ:
• Chế độ X1: (chế độ mặc định)
• Chế độ X2:

Sử dụng nguồn tạo dao động bên ngoài


Lớp Điện Tử 4_K - 11 –

Trường Đại Học Công Nghiệp Hà Nội
2,Mach RESET

+
C 3
1 0 u F
V C C

S W 1
R S T
9
1 0 k
Có 4 cách Reset AT89S52 là :
1. Reset khi cấp nguồn
2. Reset bởi WDT
3. Reset bằng phần mền
4. Reset bằng mạch ngoài qua chân RST
Chân Reset là chân 9 của AT89S52
AT89S52 có ngõ vào 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
kích bằng tay bởi một nút nhấn thông thường
Hoạt động định thời của AT89S52
Lớp Điện Tử 4_K - 12 –

Trường Đại Học Công Nghiệp Hà Nội
Các bộ định thời (Timer) được sử dụng rộng dã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 sảy ra bên ngoài bộ vi điều khiển hoặc tốc độ Baud cho cổng nối tiếp
của vi điều khiển.
I : Các thanh ghi của bộ định thời:
1,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
Time 0 và Timer 1
7 6 5 4 3 2 1 0
GATE1 C/#T1 M1 M0 GATE0 C/#T0 M1 M0

_______timer1________ _ _ ________timer0_________
.Thanh ghi TMOD
bit
7
6
5
4
3
2
1
0
Tên
GATE1
C/#T1
M1
M0
GATE0
C/#T0
M1
M0
Timer
1
1
1
1
0
0
0
0
Mô tả

Bit mở cổng cho timer 1,=1thì timer 1 chỉ chạy
khi chân INT1ở mức cao ,=0 hoạt động của
timer không bị ảnh hưởng bởi mức logic trên
chân INT1
Bit chọn chế độ counter/timer của timer 1
1=bộ đếm sự kiện
0=bộ định khoảng thời gian
M1M0:00 chế độ 0 01 chế độ 1
10 chế độ 2 10 chế độ 3
Mở cửa cho timer 0
Bit chọn chế độ counter/timer của timer 0
Bit 1 chọn chế độ của timer 0
Bit 0 chọn chế độ của timer 0
2, Thanh ghi điều khiển timer(TCON)
TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0
TF1 TR1 TF0 TR0 IT1 IE1 IT0 IE0
Thanh ghi TCON.
Lớp Điện Tử 4_K - 13 –

Trường Đại Học Công Nghiệp Hà Nội
Bit
TCON.7

TCON.6

TCON.5
TCON.4
TCON.3
TCON.2
TCON.1

TCON.
0

hiệu
TF1

TR1
TF0
TR0
IT1
IE1
IT0
IE0
Địa
chỉ
8FH
8EH
8DH
8CH
8BH
8AH
89H
88H
Mô tả
Cờ báo tràn của timer 1,được đặt bởi phần
cứng khi có tràn ,xóa bởi p mềm hoặc p
cứng khi bộ vsl chỉ đến chương trình ngắt
Bit điều khiển timer 1 hoạt động ,được đặt
xóa bằng phần mềm để diều khiển cho
timer 1 chạy dừng

Cờ báo tràn cho timer 0
Bit điều khiển cho timer 0 hoạt động
Cờ ngắt do timer 1
Cờ ngắt ngoài 1
Cờ ngắt do timer 0
Cờ ngắt ngoài 0
*Các thanh ghi chứa giá trị của bộ định thời
các timer 0 & timer 1 đều là các timer 16 bit mỗi timer có hai thanh ghi
8bit dùng để chứa giá trị khởi tạo hoặc giá hiệu thời của các timer cụ thể
như timer 0 co TH0 & TL0 ,timer 1 có TH1 & TL1
TH0 TL0
Timer 0 Timer 1
Các thanh ghi chứa giá trị của bộ định thời
3,Các thanh ghi của Timer 2
Thanh ghi T2CON.
Lớp Điện Tử 4_K - 14 –

Trường Đại Học Công Nghiệp Hà Nội
T2CON.7 T2CON.6 T2CON.5 T2CON.4 T2CON.3 T2CON.2 T2CON.1 T2CON.0
TF1 EXF2 RCLK TCLK EXEN2 TR2 C/#T2 CP/#RL2
Bit
T2CON.7

T2CON.6

T2CON.5
T2CON.4
T2CON.3
T2CON.2
T2CON.1

T2CON.
0
Ký hiệu
TF1

EXF2
RCLK
TCLK
EXEN2
TR2
C/#T2
CP/#RL2
Địa chỉ
CFH
CEH
CDH
CCH
CBH
CAH
C9H
C8H
Mô tả
Cờ báo tràn của timer 2,TF2 được
đặt khi Timer 2 tràn và được xóa
bởi phần mềm TF2 không được
thiết lập khi TCLK hoặc RCLK
được đặt =1
Cờ ngắt ngoài Timer 2,TXF2 =1 khi
sảy ra sự nạp lại hoặc thu nhận,
EXF2=1 cũng gây ra ngắt do Timer

2 nếu như ngắt này được lập trình
cho phép .
Bit chọn Timer cung cấp xung nhip
cho đường nhận của cổng nối tiếp
Bit chọn Timer cung cấp xung nhip
cho đường truyền của cổng nối tiếp
Bit điều khiển hoạt động của
Timer2
Bit điều khiển cho timer 2 hoạt
động
Bit chọn chế độ đếm hoặc định thời
của Timer 2
Bit chọn chế độ thu nhận hay nạp
lại của Timer 2
II:,hoạt động của cổng nối tiếp
1,giới thiệu
AT89S52có một cổng nối tiếp trên chip có thể hoạt ở nhiều chế độ khác
nhau với các tốc độ khác nhau
Lớp Điện Tử 4_K - 15 –

Trường Đại Học Công Nghiệp Hà Nội
Chức chủ yếu của cổng nối tiếp là thực hiện chuyển đổi song song sang
nối tiếp với dữ liệu xuất & chuyển đổi nối tiếp
sang song song với dữ liệu nhập để có thể giao tiếp với máy tính qua
cổng nối tiếp hoặc qua các thiết bị tương tự
2,các thanh ghi của cổng nối tiếp
Thanh ghi diều khiển cổng nối tiếp (SCON _serial controller)

SM0 SM1 SM2 REN TB8 RB8 TI RI
Thanh ghi SCON

bit
7
6
5
4
3
2
1
0
Ký hiệu
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
Địa chi
9FH
9EH
9DH
9CH
9BH
9AH
99H
98H
Mô tả
Bit 0 chọn chế độ cho cổng nối tiếp
Bit 1 chọn chế độ cho cổng nối tiếp

00:cổng nối tiếp hd ở chế độ 0
01:___________chế độ 1
10:____________chế độ 2
11:_____________chế độ 3
Bit 2 chọn chế độ cho cổng nối tiếp
Bit này cho phép truyền thông đa xử lý
Cho phép thu ,bit này phải được đặt =1
Bit truyền thứ 9
Bit nhận thứ 9
Cờ ngắt truyền ,TI dược đặt =1 bởi phần
cứng khi kết thúc việc truyền một ký tự
,được xóa bởi phần mềm
Cờ ngắt truyền,cờ ngắt RI được đặt bằng 1
bởi phần cứng khi kết thúc việc nhận một
ký tự,được xóa bởi phần mềm
*thanh ghi đệm truyền nhận ở cổng nối tiếp (SBUF _serial bufer)
thanh ghi này có chức năng đệm các ký tự khi chúng được nhận về từ
cổng nối tiếp hoặc được truyền đi từ cổng nối tiếp ,việc truyền nhận qua
cổng nối tiếp thực chất là việc truy xuất thanh ghi này
III,ngắt & xử lý ngắt
1,giới thiệu
At89s52 có 6 nguồn ngắt_ngắt ngoài đến từ chân #INT0,ngắt
Lớp Điện Tử 4_K - 16 –

Trường Đại Học Công Nghiệp Hà Nội
ngoài đến từ chân #INT1,ngắt do bộ timer 0,ngắt do bộ timer 1,ngắt do
bộ timer 2,ngắt do port nối tiếp
6 nguồn ngắt này được xóa khi reset & được đặt riêng bằng phần mềm
bởi các bit trong thanh ghi cho phép ngắt(IE),thanh ghi ưu tiên ngắt(IP)
2,các thanh ghi ngắt

*thanh ghi cho phép ngắt IE

EA ET2 ES ET1 EX1 ET0 EX0
Bit
IE.7
IE.6
IE.5
IE.4
IE.3
IE.2
IE.1
Ký hiệu
EA

ET2
ES
ET1
EX1
ET0
EX0
Địa chỉ
bit
AFH
AEH
ADH
ACH
ABH
AAH
A9H
A8H

Mô tả
Cho phép hoặc cấm toàn bộ
Không được định nghĩa
Cho phép ngắt từ timer 2
Cho phép ngắt port nối tiếp
Cho phép ngắt từ timer1
Cho phép ngắt ngoài 1
Cho phép ngắt từ timer 0
Cho phép ngắt ngoài 0
*thanh ghi ưu tiên ngắt
Mỗi nguồn ngắt được lập trình riêng để đặt vào một trong hai mức ưu
tiên qua thanh ghi chức năng đặc biệt dược địa chỉ bit IPở địa chỉ B8H
PT2 PS PT1 PX1 PT0 PX0
Bit
IP.7
IP.6
IP.5
IP.4
IP.3
IP.2
IP.1
IP.
0
Ký hiệu


PT2
PS
PT1
PX1

PT0
PX0
Địa chỉ bit
BDH
BCH
BBH
BAH
B9H
B8H
Mô tả
Không được định nghĩa
Ưu tiên cho ngắt từ timer 2
Ưu tiên cho ngắt từ port nối tiếp
Ưu tiên cho ngắt từ timer1
Ưu tiên cho ngắt ngoài 1
Ưu tiên cho ngắt từ timer 0
Ưu tiên cho ngắt ngoài 0
Phần hiển thi
Hiển thị giá trị vận tốc trung bình đo được trên LCD
Lớp Điện Tử 4_K - 17 –

Trường Đại Học Công Nghiệp Hà Nội
Trong những năm gần đây LCD ngày càng được sử dụng rộng dãi thay
thế dần cho các loại đen LED ( các đen LED 7 đoạn hay nhiều đoạn ) đó
là vì:
• Khả năng hiển thi các số ,ký tự và đồ họa tốt hơn nhiều so với các
đèn LED( vì đèn LED chi hiển thị được các số và một số ký tự)
• Nhờ kết hợp một bộ vi điều khiển làm tươi vào LCD làm giải
phóng cho CPU công việc làm tươi LCD trong khi đen LED phải
được làm tươi bằng CPU (hoặc bằng cách nào đó) để duy trì việc

hiển thị các dữ liệu
• Dễ dàng lập trình cho các ký tự và đồ họa
I. Phân loại LCD:
Có thể chia các mudule LCd thành 2 loại chính là:
• Loại hiển thị ký tự:
• Loại hiển thị đồ họa :
II,Ý nghĩa các chân và mã lệnh điều khiển LCD hiển thị ký tự

Lớp Điện Tử 4_K - 18 –

Trường Đại Học Công Nghiệp Hà Nội
Hầu các mudule LCd hiển thị ký tự được thiết kế dựa trên bộ điều
khiển HD44780 của Hitachi nên chúng có tập lệnh và các chân tương
thích nhau
Tên Bit Mô tả
I/D 0=Decrement cursor
position
1=Increment cursor possition
S 0=không dịch chuyển
hiển thị
1=dịch chuyển hiển thị
D 0=tắt hiển thị 1=bật hiển thị
C 0= tắt con trỏ 1= bật con trỏ
B 0=con trỏ không nhấp
nháy
1= con trỏ nhấp nháy
S/C 0= di chuyển con trỏ 1= dịch chuyển hiển thị
R/L 0=dịch trái 1= dịch phải
DL 0=chế độ 4 bit dữ lệu 1= chế độ 4 bit dữ liệu
N 1 dòng 2 dòng

F 0= font chữ 5*7 1=font chữ 5*10
BF 0= không bận 1=đang bận
Các chân của LCD :
• Chân 1,16:VSS nối với GND
• Chân 2,15:VDD nối với VCC
• Chân 3: VEE nối với biến trở
• Chân 4 _RS,5_RW,6_EN nối với 3 chân đầu Port 1 của vi điều
khiển
• Các chân 7,8,9,10,11,12,13,14 dùng để truyền và nhận tín hiệu
III,Nguyên tắc hiển thị ký tự trên LCD
Một chương trình hiển thị ký tự trên LCD sẽ đi theo 4 bước sau :
1. Xóa toàn bộ màn hình
2. Đặt chế độ hiển thị
3. Đặt vị trí con trỏ(nơi bắt đầu của ký tự hiển thị )
4. Hiển thị ký tự
IV, Bộ đếm sản phẩm sử dụng ngắt ngoài(Cảm biến hồng
ngoại)
Lớp Điện Tử 4_K - 19 –

Trường Đại Học Công Nghiệp Hà Nội
Cặp thu phát hồng ngoại :
cảm biên chữ U
Đặc điểm
Loại thân vỏ bằng nhựa có gia cố
Nâng cao khả năng chống lại ánh sáng bên ngoài (3000lx -> 5000lx)
Chức năng ngăn ngừa giao thoa lẫn nhau (Có thể lắp đặt nhiều tầng)
Thêm vào các lỗ lắp đặt (Có thể cố định nhiều hướng)
Chức năng chuyển Light ON/Dark ON bởi dây điều khiển
Có điều chỉnh độ nhạy bên trong (BUP-30S)
IP65 (Tiêu chuẩn IEC)

Giới thiệu:
Cảm biến hồng ngoại (IR Senor) được dùng khá phổ biến trong các ứng
dụng thực tế.tùy từng ứng dụng khác nhau người ta có thể dùng các kỹ
thuật khuếch đại,điều chế điện,điều chế quang… để nâng cao độ
nhạy,độ tin cậy…. của cảm biến.
Nguyên lý hoạt động:
Bộ khuếch đại thuật toán làm việc như một bộ so sánh ,biến trở 100K có
chức năng điều khiển điện áp ngưỡng so sánh .mỗi khi có một vật đi qua
tức là có sự che,không che khuất tia hồng ngoại từ diode phát sang
photo_transistor dẫn đến sự chuyển mức từ 1 sang 0 ở đầu ra của bộ
khuếch đại thuật toán gây ra ngắt ngoài INT 1.
Lớp Điện Tử 4_K - 20 –

Trường Đại Học Công Nghiệp Hà Nội
Sơ đồ nguyên lý của mạch đo vận tốc
trung bình của một vật chuyển động
tịnh tiến
I : Sơ đồ nguyên lý
Mạch nguyên lý
II : Sơ đồ mạch in
Lớp Điện Tử 4_K - 21 –

Trường Đại Học Công Nghiệp Hà Nội
Mạch in
III: Phần lập trình hoạt đông của mạch

Lớp Điện Tử 4_K - 22 –

Trường Đại Học Công Nghiệp Hà Nội
/*

Đề số 30: Đo Vận Tốc Trung Bình Của Một Vật Chuyển
Động Tịnh Tiến Hiển Thị Trên LCD
*/
#include<reg52.h>
#include<stdio.h>
#include<math.h>
int m,n,t,v,a,b,c,d,e;
sbit RS=P1^0;
sbit RW=P1^1;
sbit EN=P1^2;
char x;
void delay30ms(void)
{
TMOD=0x10;
TH1=35535/256;
TL1=35535%256;
TR1=1;
while(!TF1);
TR1=TF1=0;
}
void delay(unsigned long int t)
{
unsigned long int i;
for(i=0;i<t;i++);
}
void busy_flag(void)
{
P2=0xff;
RS=0;
RW=1;

do
{EN=1;
delay(10);
EN=0;
x=P2;
x=x&0x80;
}
while(x==0x80);
Lớp Điện Tử 4_K - 23 –

Trường Đại Học Công Nghiệp Hà Nội
}
void write_command (unsigned char LCD_command)
{
busy_flag();
P2=LCD_command;
RS=0;
RW=0;
EN=1;
delay(10);
EN=0;
delay(10);
}
void write_data(unsigned char LCD_data)
{
busy_flag();
P2=LCD_data;
RS=1;
RW=0;
EN=1;

delay(50);
EN=0;
delay(50);
}
void write_string(char *s)
{
while(*s)
{
write_data(*s);
s++;
}
}

void init(void)
{
write_command (0x03);
write_command(0x38);
write_command(0x06);
write_command(0x0e);
}
Lớp Điện Tử 4_K - 24 –

Trường Đại Học Công Nghiệp Hà Nội
void main(void)
{TMOD=0X01;
IE=0x87;
IT0=IT1=1;
TR0=0;
TL0=(65535-5000)/256;
TH0=(65535-5000)%256;

TR0=1;

delay30ms();
init();
while(1)
{
write_command (0x01);
write_command (0x38);
write_string(" DH CONG NGHIEP ");
write_command (0xc0);
write_string (" HA NOI ");
write_command(0x01);
while(1)
if(m==0)
{
v=1000/(t*0.005);
a=v/10000+0x30;
b=v%10000/1000+0x30;
c=v%10000%1000/100+0x30;
d=v%10000%1000%100/10+0x30;
e=v%10000%1000%100%10+0x30;
{
write_command (0x02);
write_string ("VAN TOC:");
write_command (0xc0);
write_data(a);
write_data(b);
write_data(46);
write_data(c);
write_data(d);

write_data(e);
write_string (" m/s");
Lớp Điện Tử 4_K - 25 –

×