Lời Nói Đầu
Ngày nay,các vi điều khiển đã thâm nhập vào mọi lĩnh vực vủa đời sống từ
dân sự ,quân sự đến an ninh quốc phòng,có mặt trong hầu hết các ứng dụng hàng
ngày từ những thiết bị nhỏ nh điện thoại di động,máy nhắn tin,trò chơi điện
tử,các thiết bị gia dụng(máy giặt,điều hòa,tủ lạnh.) đến những thiết bị lớn nh
ôtô,tàu thủy,xe lửa,máy bay,hệ thống mạng điện thoại,các bộ điều khiển tự động
trong nhà máy,các bộ điều chỉnh trong nhà máy điện hạt nhân,trong các hệ thống
điều khiển ánh sáng
Với một loạt các ứng dụng thú vị trên,ở đâyem xin giới thiệu một ứng dụng
nhỏ dùng vi điều khiển 8051(cụ thể là vi điều khiển AT89S52) để thiết kế hệ
thống điều khiển bãi đỗ xe tự động.Đây là một ứng dụng nhỏ của vi điều khiển
nhng thực tế sử dụng rất nhiều trong các hệ thống.
1
CHƯƠNG 1
TỔNG QUAN VỀ CÔNG NGHỆ ĐIỀU KHIỂN BÃI ĐỖ XE TỰ ĐỘNG
1.1. MỞ ĐẦU
Hiện nay, các bãi đỗ xe công cộng nhu ở các khu phố, khu chung cư, hội
chợ việc quản lý gặp nhiều khó khăn. Số lượng xe vào và xe ra là ngẫu nhiên,
có lúc nhiều xe, có lúc ít xe, nhiều khi lại ách tắc quá tải. Công việc quản lý
tưởng chừng như đơn giản song lại tốn nhiều nhân lực: người thì bán vé, người
thu vé người thì phải thường xuyên giám sát số lượng xe có trong bãi bên cạnh
đó việc kiểm soát vé là cũng khó khăn.
Ngày nay cùng với sự phát triển của các ngành khoa học kỹ thuật, kỹ
thuật điện tử mà trong đó là kỹ thuật số đóng vai trò quan trọng trong mọi lĩnh
vực khoa học kỹ thuật, quản lí, công nghiệp tự động hóa, cung cấp thông tin….
do đó chúng ta phải nắm bắt và vận dụng nó một cách có hiệu quả nhằm góp
phần vào sự phát triển nền khoa học kỹ thuật thế giới nói chung và trong sự phát
triển kỹ thuật điện tử nói riêng.
Áp dụng những thành tựu khoa học ta có thể sử dụng các phương tiện
hoàn toàn tự động để điều khiển bãi đỗ xe tự động, không những giảm được
nhân lực , đáp ứng được kinh tế mà còn có thể kiểm soát được số lượng vé trong
nhiều khi yêu cầu đó không thực hiện được bằng phương pháp này.
Với sự phát triển mạnh của nghành kỹ thuật số đặc biệt là cho ra đời các
họ vi xử lí và vi điều khiển rất đa chức năng do đó việc dùng kỹ thuật vi xử lí,
kỹ thuật vi điều khiển đã giải quyết những bế tắc và kinh tế hơn mà phương
pháp dùng IC rời kết nối lại không thực hiện được.
1.2.2. Với mạch đếm dùng kỹ thuật vi xử lí
Ngoài những ưu điểm như đã liệt kê trong phương pháp dùng IC rời thì
mạch đếm sản phẩm dùng kỹ thuật vi xử lí còn có những ưu điểm sau:
-Mạch có thể thay đổi số đếm một cách linh hoạt bằng việc thay đổi phần
mềm, trong khi đó phần cứng không cần thay đổi mà mạch dùng IC rời không
3
thể thực hiện được mà nếu có thể thực hiện được thì cũng cứng nhắc mà người
công nhân cũng khó tiếp cận, dễ nhầm.
- Số linh kiện sử dụng trong mạch ít hơn.
-Mạch đơn giản hơn so với mạch đếm sản phẩm dùng IC rời và có phần
cài đặt số đếm ban đầu
-Mạch có thể lưu lại số liệu của các ca sản xuất
-Mạch có thể điều khiển đếm được nhiều dây chuyền sản xuất cùng lúc
bằng phần mềm
-Mạch cũng có thể kết nối giao tiếp được với máy tính thích hợp cho những
người quản lí tại phòng kỹ thuật nắm bắt được tình hình sản xuất qua màn
hình của máy vi tính.
Nhưng trong thiết kế người ta thường chọn phương pháp tối ưu nhưng kinh
tế do đó chúng em chọn phương pháp đếm sản phẩm dùng kỹ thuật vi điều khiển
1.2.3. Phương pháp đếm dùng vi điều khiển
Ngoài những ưu điểm có được của hai phương pháp trên, phương pháp này
còn có những ưu điểm :
-Trong mạch có thể sử dụng ngay bộ nhớ trong đối với những chương trình
có quy mô nhỏ, rất tiện lợi mà vi xử lí không thực hiện được.
-Nó có thể giao tiếp nối tiếp trực tiếp với máy tính mà vi xử lí cũng giao
hn tuy nhiờn khi lp t thit b s phc tp hn.
H2.1: Mch to dao ng
Hoạt động của mạch điện này nh sau:
Ngay khi cung cấp điện lần đầu cho mạch này, điện áp trên tụ C1 bằng 0V
nên mạch ở trạng thái ban đầu nh sau: R = 0, S = 1 Q của FF ở mức logic cao
Q bù của FF ở mức logic thấp (0V) dẫn đến T1 tắt mức điện áp ra ở chân 3 ở
mức cao. Tụ C1 bắt đầu nạp điện qua điện trở R1, R2 cho đến khi điện áp trên
C1 tăng đến trị số 2/3Vcc ( lúc điện áp trên tụ C1 tăng quá Vcc/3, mạch so sánh
2 đổi trạng thái R = S = 0 nên FF vẫn giữ nguyên trạng thái cũ chân 3 vẫn ở mức
cao) ở thời điểm này mạch so sánh 1 đổi trạng thái nên R = 1, S = 0 FF đổi trạng
thái tức là Q bù ở mức cao phân cực cho T1 dẫn bão hoà làm cho chân 3 chuyển
trạng thái về mức thấp, tụ C1 phóng điện qua R1, chân 7 và T1cho đến khi điện
áp trên tụ giảm xuống còn 1/3Vcc mạch so sánh 2 đổi trạng thái S = 1, R = 0 Q
bù của FF chuyến lên mức điện áp cao T1 tắt tụ C1 lại bắt đầu nạp đến điện áp
2/3Vcc. Chu trình cứ lặp đi lặp lại tại chân 3 sẽ tạo dao động xung vuông. Vì R2
rất lớn hơn R1 nên thời gian nạp lớn hơn rất nhiều thời gian phóng nên một chu
kỳ của bộ định thời t = R2.C1 = 0,01 s Vậy tần số phát là f = 1/t = 100Hz.
B. H thng thu
Phớa thu ta dựng mch in nh sau:
6
H2.2: Mạch điện phía thu
Mạch điện phía thu gồm có ba khối chính như sau:
Khối 1: có nhiệm vụ tạo dao động theo tín hiệu của Diot thu hồng ngoại,
lọc và khuếch đại sơ bộ tín hiệu thu được.
Như vậy khối một sẽ gồm các linh kiện: Diot thu D2, bộ khuếch đại thuật
toán (IC1), tụ C2, C3, điện trở R4, R5.
Trong đó IC1, điện trở R4, tụ C2 đóng vai trò là bộ lọc tích cực thông thấp
một cực dùng hồi tiếp âm.
Khối 2: Có nhiệm vụ khuếch đại tín hiệu gồm IC 2 , tụ C4, R6, R7.
- Hình ảnh một màn hình LCD 16 chân được mô tả phía dưới
Đầu thu 1 Đầu phát 2
Đầu phát 1 Đầu thu 2
Vµo
Ra
8
Hình 2.6. Hình ảnh LCD 16 chân
*) Mô tả các chân của LCD
Chân V
cc
, V
ss
, V
ee
: là các chân cấp dương nguồn, -5V và đất tương ứng thì
V
EE
được dùng để điều khiển độ tương phản của LCD.
Chân chọn thanh ghi RS:
Có 2 thanh ghi rất quan trọng bên trong LCD, chân RS được dùng để chọn các
thanh ghi này như sau: Nếu RS = 0 thì thanh ghi mã lệnh được chọn để cho phép
người dùng gửi 1 lệnh tới LCD. Nếu RS =1 thì thanh ghi dữ liệu được chọn cho
phép người dùng gửi dữ kiệu cần hiển thị lên LCD.
Chân đọc/ghi (R/W)
Đầu vào đọc/ghi cho phép người dùng ghi thông tin lên LCD khi R/W = 0 hoặc
đọc thông tin từ nó khi R/W =1
Chân cho phép E.
Chân cho phép E được sử dụng bởi LCD để chốt thông tin hiện hữu trên chân dữ
liệu của nó. Khi dữ liệu được cấp tới chân dữ liệu thì một xung mức cao xuống
thấp phải được áp đến chân này để LCD chốt dữ liệu trên các chân dữ liệu.
hiện số ra cả dãy đèn. Quá trình trên lặp đi lặp lại làm cho ta có cảm giác là đèn
sáng liên tục mặc dù trong thực tế chúng được điều khiển để sáng không liên
tục.
Một phương pháp phối ghép giống như trên nhưng không dùng mạch giải
mã SN7447 cũng rất hay được sử dụng. Thay vì mạch SN7447 như trên, tại đây
ta dùng một bộ khuếch đại đệm chỉ để nâng cao khả năng tải của cổng PB. Vì
thế trong trường hợp này CPU phải đưa đến PB không phải là 4 bit mã BCD của
giá trị số hiển thị mà là các mẫu 7 bit để làm sáng các nét tương ứng với giá trị
số đó. Như vậy CPU phải để thì giờ để chuyển đổi từ giá trị số hệ 16 sang mẫu
bit dành cho các nét của LED.
2.1.3. Khối chấp hành
Đầu vào : Lấy từ 89C51.
Đầu ra : Nối với động cơ.
• Nhiệm vụ khối chấp hành:
Khối này nhận tín hiệu điều khiển từ 89C51 để điều khiển chiều quay
động cơ (chiều dịch chuyển của thanh chắn).
Sơ đồ khối.
Sơ đồ mạch điều khiển chiều quay động cơ.
12
VI ĐIỀU
KHIỂN
Điều khiển
chiều quay
động cơ
Động cơ
H2.6: Sơ đồ mạch điều khiển động cơ truyền động thanh chắn
• Nguyên lý hoạt động :
Đầu A, B lấy tín hiệu từ 89C51.
+Khi A=1, B=0 , thì đầu ra của mạch điều khiển sẽ đặt lên động cơ một
điện áp 1 chiều 7V Làm động cơ quay theo 1 chiều nhất định.
XTAL1
19
ALE
30
EA
31
PSEN
29
RST
9
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3
36
P0.4/AD4
35
P0.5/AD5
34
P0.6/AD6
33
P0.7/AD7
32
P1.0
1
P1.1
2
P2.0/A8
21
P2.1/A9
22
P2.2/A10
23
P2.3/A11
24
P2.4/A12
25
P2.5/A13
26
P2.6/A14
27
U1
AT89C51
H2.7 : Khối xử lý
A. chức năng , hoạt động
• Mạch tạo dao động.
Ta dùng thạch anh 11,0592 MHz ghép thêm hai tụ gốm 33pF để tạo xung
clock đồng bộ cho toàn hệ thống.
• Mạch Reset.
Trong ứng dụng này chúng em thực hiện cơ chế Reset nguồn, tức là khi cấp
nguồn cho hệ thống vi điều khiển sẽ được Reset để chuẩn hoá hoạt động. Mạch
Reset thực hiện thông qua mạch RC, khi cấp nguồn, sẽ có xung mức cao đưa
vào chân RS của 89C51 trong hơn 2 chu kỳ máy khi đó vi điều khiển Reset hoạt
động.
• Nhận dữ liệu vào từ khối cảm biến.
Khối cảm biến có 2 bộ thu phát tín hiệu hồng ngoại làm nhiệm vụ phát hiện
đối tượng. Hai đầu báo hiệu của 2 bộ thu phát được đưa vào vi điều khiển (Chân
8051
BÀN PHÍM
PORT 1
CHƯƠNG 3. THIẾT KẾ PHẦN MỀN
3.1. LƯU ĐỒ THUẬT TOÁN
Có xe qua
Nạp các giá trị ban đầu
Nhập số liệu từ bàn phím
Hết chỗ để
xe
S
Hiển thị số liêu đã nhập
Nâng thanh chắn
Gọi chương trình đếm
Chờ xe qua
Hạ thanh chắn
Kiểm tra chu
trình xe ra
vào
Không
có xe
Hiển thị
Hạ thanh chắn
End
Begi
n
Đ
16
a) Chương trình nhập số liệu từ bàn phím
Đ
Ret
lần để xem phím có còn được nhấn nữa hay không. Khi R3 = 0 thì lấy mã phím trao cho thanh
ghi A.
• Chương trình dò mã phím ấn:
8051 luôn đọc dữ liệu từ Port 1 để dò tìm mã phím. Khi có một phím được ấn thì cờ
C= 1 và mã của phím ấn được lưu tạm thời vào thanh ghi R6. Sau đó tăng dần R6 lên 4 đơn vị
để dò mã phím tiếp theo, (mã phím )→ (A)
#50→ (R3)
Gọi CT dò mã
phím
C=0
S
R3 - 1
Có phím ấn
Đ
Đ
R3=0
S
Cất ACC
50 → R3
Gọi CT dò mã phím
C=1
Đ
R3 - 1
S
R3=
0
S
Đ
Xoay phải A qua C
Xóa C
A = # 0F0H
R6 + 4
R5 - 1
Đặt cờ c; R6 → A
R6 → A
Đ
S
C = 0
Đ (3)
S
S
(3)
Đ
(3)
R5 = 0
S
RET
Đ
YES, NO = 0 và khi bit NO = 1 thì yêu cầu nhập lại sô khi bit YES = 1 thì thoát khỏi chương
trình. Các giá trị được nhập này được lưu vào các ô nhớ 7C (soluong1:lưu soluong byte thấp),
7D (soluong2: lưu soluong byte cao). Nếu đồng ý với số đã nhập thì nhấn A ngược lại là B
(xóa số đã nhập)
20
Bắt đầu
A = 0
Đ
S
Gọi nhấn số thứ 3
(2)
bit 7E = 1
Đ
S
Đ
bit 7E = 1
S
donvi,a
a + chuc
caidat1,a
p2, caidat1
RET
A=#0AH
S
S
A=#0BH
Đ
Gọi chương trình dò phím
bit 7D = 1
S
swap a
chuc,a
p2,a
Gọi nhấn số thứ 4
Đ (1)
bit 7D = 1
Đ (1)
S
+ Giai đoạn 2: P3.0 = 0; P3.1 = 1 ( Vào 1 )
S
S
S
S
Đ
BEGIN
1,1
11
1,0
0,1
1,0
1,0
0,0
0,1
0,1
00
0,1
00
00
1,0
00
1,0
00
0,1
0,1
1,1
1,0
11
Đ
Đ