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.
Trang 1Lờ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àngngày từ những thiết bị nhỏ nh điện thoại di động,máy nhắn tin,trò chơi điệntử,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ự độngtrong 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ụngnhỏ 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ểnnhng thực tế sử dụng rất nhiều trong các hệ thống
Trang 2CHƯƠ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ộichợ 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ườithu 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ĩnhvự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ópphầ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áttriể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ệnhoàn toàn tự động để điều khiển bãi đỗ xe tự động, không những giảm đượcnhân lực , đáp ứng được kinh tế mà còn có thể kiểm soát được số lượng vé trongngày, tháng quý
Trong giới hạn đề tài em chỉ thiết kế hệ thống điều khiển bãi đỗ xe vớiviệc đếm số lượng xe ra vào hay quản lý số chỗ đỗ xe, số xe có trong bãi và điềukhiển thanh chắn ra vào
Để thực hiện được điều đó cần phải thiết kế hai phần chính sau: bộ phậncảm biến và bộ phận đếm
* Bộ phận cảm biến: gồm phần phát và phần thu Thông thường người ta
sử dụng phần phát là led hồng ngoại để phát ra ánh sáng hồng ngoại mục đích đểchống nhiễu so với các loại ánh sáng khác, còn phần thu là transistor quang đểthu ánh sáng hồng ngoại
Trang 3-Lắp mạch dùng kỹ thuật số với các IC đếm, chốt, so sánh ghép lại
-Tần số đáp ứng của mạch nhanh, cho phép đếm với tần số cao
-Khoảng cách đặt phần phát và phần thu xa nhau cho phép đếm những sảnphẩm lớn
-Tổn hao công suất bé, mạch có thể sử dụng pin hoặc accu
-Khả năng đếm rộng
-Giá thành hạ
-Mạch đơn giản dễ thực hiện
Với việc sử dụng kỹ thuật số khó có thể đáp ứng được việc thay đổi sốđếm Muốn thay đổi một yêu cầu nào đó của mạch thì buộc lòng phải thay đổiphần cứng Do đó mỗi lần phải lắp lại mạch dẫn đến tốn kém về kinh tế mà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ươngpháp dùng IC rời kết nối lại không thực hiện được
Trang 4thể thực hiện được mà nếu có thể thực hiện được thì cũng cứng nhắc mà ngườicô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ầncà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úcbằ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ữngngườ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ànhì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àycò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 giaotiếp được với máy tính nhưng là giao tiếp song song nên cần có linh kiệnchuyển đổi dữ liệu từ song song sang nối tiếp để giao tiếp với máy tính
Trang 5CHƯƠNG 2 THIẾT KẾ MẠCH PHẦN CỨNG
2.1 SƠ ĐỒ HỆ THỐNG
Sơ đồ cấu trúc tổng quát
Hệ thống gồm 4 khối chính:
- Khối cảm biến: Khối cảm biến có nhiệm vụ phát hiện đối tượng (xe ra vào)
- Khối xử lý: Khối xử lý có nhiệm vụ nhận tín hiệu từ khối cảm biến, nhận biếtđối tượng và đưa ra các lệnh điều khiển tới khối chấp hành
- Khối hiển thị: Khối hiện thị có nhiệm vụ hiển thị trạng thái của hệ thống LCD
2.1.1 Khối cảm biến
A Hệ thống phát hồng ngoại
Để có thể nhận biết được sản phẩm có rất nhiều phương pháp như siêu âm,laser hay hồng ngoại mỗi phương pháp có ưu và nhược điểm riêng Với ưu điểmgiá thành và dễ dàng thiết kế và thi công phương pháp cảm biến bằng hồngngoại được chọn Tuy nhiên phương pháp này cho ta độ ổn định và tin cậykhông cao
Với hồng ngoại có rất nhiều cách có thể được sử dụng để cảm biến Với cácsản phẩm có độ bóng cao có thể ứng dụng đặc tính phản xạ của hồng ngoại đểcảm biến, bằng phương pháp này chúng ta sẽ bố trí cặp thu phát ở cùng mộtphía, rất dễ cho lắp đặt, nhưng với các sản phẩm có độ phản xạ không cao thi ta
KHỐI XỬ LÝ
KHỐI HIỂN THỊ
Chấp hành
Trang 6sẽ bố trớ cặp thu phỏt ở hai phớa, phương phỏp này cho chỳng ta độ tin cậy caohơn tuy nhiờn khi lắp đặt thiết bị sẽ phức tạp hơn.
H2.1: Mạch tạo 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 0Vnê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ênC1 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ứccao) ở 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ạngthá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ểntrạ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 áp2/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ì R2rấ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ệ thống thu
Phớa thu ta dựng mạch điện như sau:
Trang 7H2.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ậttoá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ấpmộ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.
Với hệ số khuếch đại tính theo công thức:
Yêu cầu cần hệ số khuếch đại cỡ 150 lần ta chọn R7 = 330K,
R6 = 1K, tụ C4 = 1F suy ra Z 2K
Tín hiệu sau khi được khuếch đại qua tụ nối tầng C5 đưa vào khối 3
Khối 3: Có nhiệm vụ tách sóng tạo tín hiệu một chiều để đưa vào bộ so sánh
tạo mức điện áp ra một chiều ở mức logic 0, 1 có thể tích hợp với bộ xử lý số
Để thực hiện tách sóng ta dùng một Diot D3 (1N4148) và tụ lọc C6(1F).D4(1n4148), R8(1K), R9(1K) tạo thành một mạch phân áp có nhiệm vụ bù sụt
áp tín hiệu xoay chiều được chỉnh lưu bởi D3
Hoạt động phát hiện xe ra vào của khối Cảm biến
Z
R 1
u
Trang 8Trong hệ thống sử dụng 2 bộ thu phát hồng ngoại (bộ 1 và bộ 2) để nhậnbiết sự xuất hiện và chiều di chuyển của xe (đi vào hay đi ra) Căn cứ vào thứ tựchắn các đèn hồng ngoại mà ta có thể kết luận rằng xe đó đi vào hay đi ra
Cụ thể như sau:
H2.3: Sơ đồ bố trí cảm biếnNhư vậy đối tượng đi vào và đi ra theo 2 chu trình khác hẳn nhau, ta sửdụng sự khác biệt này để lập trình cho Vi diều khiển nhận ra chúng
2.1.2 Khối hiển thị
- Chức năng của LCD trong hầu hết các mạch, các bộ điều khiển đảmnhân vai trò hiển thị các thông số, các thông tin mà chúng ta muốn nhập vào haycác thông tin xử lý mà bộ điều khiển đang hoạt động được hiển thị ra màn hình,giúp chúng ta giao tiếp gần hơn với quá trình hoạt đông của hệ thống LCD cóloại 14 chân hoặc 16 chân
- 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
Trang 9Hình 2.6 Hình ảnh LCD 16 chân
*) Mô tả các chân của LCD
Chân Vcc, Vss, Vee: là các chân cấp dương nguồn, -5V và đất tương ứng thì
VEE đượ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épngườ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
Xung này phải rộng tối đa 450ns
Chân D0-D7
Đây là 8 chân dữ liệu 8bit, được dùng để gửi thông tin lên LCD hoặc đọc nội dung của các thanh ghi trong LCD
Trang 10Để hiển thị các chữ cái và con số ta hiển thị mã ASCII của các chữ cái từ A đến
Z, a đến f và các con số từ 0 - 9 đến các chân này khi bật RS =1
Cũng có các mã lệnh có thể gửi đến LCD để xoá màn hình hoặc đưa con trỏ về đầu dòng, hoặc nhấp nháy con trỏ
Chúng ta cũng sử dụng RS = 0 để kiểm tra bit cờ bận xem LCD có sẵn sàng nhận thông tin Cò bận là D7 và có thể được đọc khi R/W = 1 và RS = 0 như sau:
Nếu R/W = 1, RS = 0 khi D7 =1 thì LCD bận bởi các công việc bên trong
và sẽ không nhận bất kì thông tin mới nào Khi D7 = 0 thì LCD sẵn sàng nhận thông tin mới Lưu ý chúng ta nên kiểm tra cờ bận trước khi ghi bất kỳ thông tin nào lên LCD
Bảng mô tả các chân của LCD 14 chân:
Ghép nối giữa LCD và vi điều khiển
Trang 11Hình 2.7 Ghép nối giữa vi xử lý và LCD
Nguyên tắc hoạt động
Giá trị số cần hiển thị của mỗi con số được gửi đến cổng P2 từ CPU dướidạng mã BCD Từ đây BCD được mạch SN7447 giải mã và tạo ra các tín hiệuđiều khiển thích hợp đưa đến các chân catốt a.b, g của LED Mỗi giá trị cầnhiển thị được đưa đến cổng P2cứ mỗi 2ms một lần cho một đèn
Giá trị số nói trên được hiện ra trên chử số thập phân nào lại là do các bitcủa byte dữ liệu từ CPU đưa đến cổng PA của mạch 8255A quyết định
Như vậy cứ mỗi 2ms thì ta phải đưa dữ liệu ra PB rồi PA và cho hiện ra
Trang 12hiệ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à đènsáng liên tục mặc dù trong thực tế chúng được điều khiển để sáng không liêntụ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ủagiá 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ẫubit 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ơ
Động cơ
Trang 13H2.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
+Khi A=0, B=1 , 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 ngược cực tính với trường hợp trước Làm động cơ quaytheo chiều ngược với trường hợp trước
Như vậy, với việc điều khiển mức tín hiệu ra của vi điều khiển ta đã điềukhiển được chiều quay của động cơ theo ý muốn
Động cơ được lựa chọn trong mạch ứng dụng này là động cơ 1 chiều Động
cơ quay khi điện áp đặt vào nó từ 5V-12V Chiều quay của động cơ thay đổi khiđổi vị trí 2 cực điện áp đặt vào
2.1.4 Khối xử lý
Trang 14ALE 30 EA 31 PSEN 29
RST 9
P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35 P0.5/AD5 34P0.6/AD6 33 P0.7/AD7 32
P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
P3.0/RXD 10 P3.1/TXD 11P3.2/INT0 12 P3.3/INT1 13P3.4/T0 14 P3.7/RD 17 P3.6/WRP3.5/T1 1615 P2.7/A15 28
P2.0/A8 21 P2.1/A9 22P2.2/A10 23 P2.3/A11 24P2.4/A12 25 P2.5/A13 26P2.6/A14 27
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ânP3.0 và chân P3.1) Như đã trình bày ở trên đối đi vào hay đi ra theo 2 chu trìnhkhác nhau, nhờ đó mà phân biệt được Sau khi được nối với vi điều khiển, cácthông tin về 2 quá trình này được đưa vào khối xử lý nhận biết và ra quyết địnhcho khối chấp hành
Trang 15 Kết nối với khối hiển thị.
Dùng Port 2 (8 bit )của 89C51 để xuất dữ liệu cần hiển thị Dữ liệu cần hiểnthị chính là số vị trí còn trống trong bãi đỗ Đây là 8 bit nhị phân sau đó đượcgiải mã thành BCD rồi đưa ra khối hiển thị
Kết nối với khối chấp hành:
Dùng 2 chân của 89C51 để điều khiển khối chấp hành (điều chỉnh chiều quayđộng cơ)
9999 vì vậy có thể nhập vào số đếm trong phạm vi từ 0 đến tối đa 9999, do đótrong mạch sử dụng 10 phím số từ 0 đến 9 Và mỗi lần nhập số vào để nhận biết
là nhập mấy số hoặc đã nhập xong và muốn biết cho phép đếm chưa hoặc hủy
bỏ số vừa nhập phải cần sử dụng thêm các phím chức năng, nên em dùng thêm 6phím chức năng từ A đến F Do đó bàn phím gồm 16 phím được kết nối vào port
1 của 8051:
Sơ đồ khối kết nối như sau:
H2.8 : Sơ đồ khối kết nối bàn phím
8051
BÀN PHÍM
PORT 1
Trang 16CHƯƠ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
Đ
Trang 17a) Chương trình nhập số liệu từ bàn phím
Chương trình con nhấn số
Chương trình này cho phép nhập số thập phân Nếu phím nhấn từ 0 đến 9thì nhận số còn phím từ A đến F thì xóa số Số nhận thì bit YES = [0], NO = [0].Sau khi nhập số liệu xong nếu thấy qua led hiển thị đúng số liệu đã nhập vào thìnhấn phím A tức là đặt bit YES = 1 (7E = 1) để kết thúc quá trình nhập số liệu.Còn đang nhập nếu muốn bỏ số liệu vừa nhập vào thì nhấn phím phím B tức làđặt bit NO = 1 (7D = 1)
Chương trình con kiểm tra phím ấn: kiểm tra phím ấn
Nếu như có phím được ấn thì bit C = 1 Vì có khoảng thời gian nhấn phím nên gọi chương trình dò tìm mã phím ấn 50 lần bằng việc nạp 50 vào R3 và giảm R3 Khi R3 = 0 thì cất mã
Đ Ret
Trang 18lầ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.
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 Đ
18
Bắt đầu
Không có phím ấn
Đ