vi xử lý mạch đếm sản phẩm, đếm người ra vào phòng, đếm xe ra vào bãi đỗ sử dụng 8051 và cảm biến hồng ngoại. vi xử lý mạch đếm sản phẩm, đếm người ra vào phòng, đếm xe ra vào bãi đỗ sử dụng 8051 và cảm biến hồng ngoại. vi xử lý mạch đếm sản phẩm, đếm người ra vào phòng, đếm xe ra vào bãi đỗ sử dụng 8051 và cảm biến hồng ngoại.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KHOA CÔNG NGHỆ ĐIỆN TỬ VÀ TRUYỀN THÔNG
BÁO CÁO THỰC HÀNH THỰC HÀNH VI ĐIỀU KHIỂN VÀ VI XỬ LÝ
Đề Tài:
GIAO TIẾP GIỮA VI ĐIỀU KHIỂN 8051 VỚI CẢM BIẾN HỒNG NGOẠI
THIẾT KẾ MẠCH ĐẾM XE RA VÀO BÃI ĐỖ
Giảng viên hướng dẫn : Đinh Quý Long Lớp : Kỹ Thuật Y Sinh – K14A Sinh viên thực hiện : Nguyễn Anh Hoàng
Thái Nguyên, ngày 20 tháng 3 năm 2018
Trang 2MỤC LỤC
CHƯƠNG 1 PHÂN TÍCH BÀI TOÁN 3
1.1Tính cấp thiết của đề tài 3
1.2Yêu cầu bài toán 3
1.3 Giải pháp thiết kế 3
1.4 Lựa chọn linh kiện 4
CHƯƠNG 2 NGÔN NGỮ LẬP TRÌNH VÀ PHẦN MỀM PHỤ TRỢ 12
2.1 Ngôn ngữ lập trình 12
2.2 Phần mềm phụ trợ 13
CHƯƠNG 3 THỰC THI THIẾT KẾ 17
3.1Thiết kế phần cứng 17
3.2 Mã nguồn chương trình 19
3.3Một số hình ảnh của bài tập 22
CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 23
Kết luận 23
TÀI LIỆU THAM KHẢO 24
Trang 3CHƯƠNG 1 PHÂN TÍCH BÀI TOÁN
1 Tính cấp thiết của đề tài
Ngày nay cùng với sự phát triển của khoa học kỹ thuật, xã hội ngày càng vănminh và hiện đại, nên việc ứng dụng khoa học vào đời sống càng được coi trọng và pháttriển mạnh mẽ Đặc biệt là trong ngành công nghiệp điện tử thì không thể thiếu vi điềukhiển với ứng dụng to lớn như được dùng để xây dựng hệ thống nhúng Nó xuất hiệnnhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, dâytruyền tự động
Từ đó có thể thấy được tầm quan trọng của vi điều khiển trong đời sống hằng ngày
Từ thực tế đó, chúng em quyết định chọn đề tài “Giao tiếp giữa vi điều khiển 8051 với cảm biến hồng ngoại” cho bài tập lớn môn học “Thực hành vi điều khiển và vi xử lý” để
thể hiện một phần nào đó cách giao tiếp giữa vi điều khiển và cảm biến qua mạch “Đếm xe ra vào trong bãi đỗ xe” rồi hiển thị lên led 7 thanh
2 Yêu cầu bài toán
Tìm hiểu về giao tiếp giữa vi điều khiển 8051 với cảm biến hồng ngoại.
- Thiết kế mạch đếm
- Hiển thị được kết quả mạch lên led 7 thanh
- Viết được mã nguồn chương trình để điều khiển hệ thống
1.3 Giải pháp thiết kế
Hệ thống gồm 4 khối:
Hình 1 1 Sơ đồ hệ thống
Trang 41.3.1 Khối cảm biến
Sử dụng cảm biến hồng ngoại để quét vật cản đi qua
1.3.2 Khối điều khiển trung tâm
Đề tài sử dụng khối vi điều khiển là vi điều khiển 8051 chức năng nhận tín hiệuthu về của cảm biến hồng ngoại và xử lý rồi hiển thị kết quả lên led 7 thanh
1.3.3 Khối hiển thị
Trong giao tiếp này nhóm chúng em sử dụng led 7 thanh anot chung
1.4 Lựa chọn linh kiện
1.4.1 Sơ lược về vi điều khiển 8051
Năm 1980 khi intel tung ra chip 8051 , bộ vi điều khiển đầu tiên của họ MCS-51 và làchuẩn công nghệ cho nhiều họ vi điều khiển được sản xuất sau này
Năm 1980 Intel công bố chip 8051 (80C51),bộ vi điều khiển đầu tiên của họ vi điều khiển MCS-51 bao gồm:
Trang 5Hình ảnh AT98s52.
Hiện nay, Intel không còn cung cấp các loại Vi điều khiển họ MCS-51 nữa, thay vào
đó các nhà sản xuất khác như Atmel, Philips/signetics, AMD, Siemens, Matra&Dallas,Semiconductors được cấp phép làm nhà cung cấp thứ hai cho các chip của họ MSC-51
Chip Vi điều khiển được sử dụng rộng rãi trên thế giới cũng như ở Việt Nam hiện nay
là Vi điều khiển của hãng Atmel.các mã số chip được thay đổi chút ít khi được Atmel sản xuất Mã số 80 chuyển thành 89, chẳng hạn 80C52 của Intel khi sản xuất ở Atmel
mã số thành 89C52 (Mã số đầy đủ: AT89C52) với tính năng chương trình tương tự nhưnhau Tương tự 8051,8053,8055 có mã số tương đương ở Atmel là
89C51,89C53,89C55
Sau khoảng thời gian cải tiến và phát triển, hãng Atmel tung ra thị trường dòng Vi điềukhiển mang số hiệu 89Sxx với nhiều cải tiến và đặc biệt là có thêm khả năng nạp chương trình theo chế độ nối tiếp rất đơn giản và tiện lợi cho người sử dụng
Dung lượng RAM Dung lượng ROM Chế độ nạp:
89S51 128 byte 4 Kbyte nối tiếp
89S52 128 byte 8 Kbyte nối tiếp
Sơ đồ chân
Trang 6sơ đồ chân AT89S52.
– Nhóm chân nguồn:
+ VCC: chân 40, điện áp cung cấp 5VDC
+ GND: chân 20(hay nối Mass)
– Nhóm chân dao động: gồm chân 18 và chân 19 (Chân XTAL1 và XTAL2), cho phép ghép nối thạch anh vào mạch dao động bên trong vi điều khiển, được sử dụng để nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ để tạo nguồn xung clock ổn định
XTAL 1: Ngõ vào đến mạch khuếch đại dao động đảo và ngõ vào đến mạch tạo xung clock bên trong
XTAL 2: Ngõ ra từ mạch khuếch đại dao động đảo
+ Chân chọn bộ nhớ chương trình: chân 31 (EA/VPP): dùng để xác định chương trình thực hiện được lấy từ ROM nội hay ROM ngoại
– Chân 31 nối mass: sử dụng bộ nhớ chương trình bên ngoài vi điều khiển
-Chân 31 nối VCC: sử dụng bộ nhớ chương trình (4Kb) bên trong vi điều
v RST(Chân RESET): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng thái ban đầu cho vi điều khiển Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy
+Chân cho phép bộ nhớ chương trình PSEN:
PSEN ( program store enable) tín hiệu được xuất ra ở chân 29 dùng để truy xuất bộ nhớ chương trình ngoài Chân này thường được nối với chân OE (output enable) của ROM ngoài
Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát ra tín hiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kì máy
Khi thực thi một chương trình ở ROM nội, chân này được duy trì ở mức logic không tích cực (logic 1)
(Không cần kết nối chân này khi không sử dụng đến)
v Chân ALE :(chân cho phép chốt địa chỉ-chân 30)
Khi Vi điều khiển truy xuất bộ nhớ từ bên ngoài, port 0 vừa có chức năng là bus địa chỉ, vừa có chức năng là bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ Tín
Trang 7hiệu ở chân ALE dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và các đường dữ liệu khi kết nối chúng với IC chốt.
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động đưa vào Vi điều khiển, như vậy có thể dùng tín hiệu ở ngõ ra ALE làm xung clock cung cấp cho các phần khác của hệ thống
*Ghi chú : khi không sử dụng có thể bỏ trống chân này
+ Nhóm chân điều khiển vào/ra:
Ø Port 0:
gồm 8 chân (từ chân 32 đến 39) có hai chức năng:
-Chức năng xuất/nhập :các chân này được dùng để nhận tín hiệu từ bên ngoài vào để
xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất tín hiệu để điều khiển led đơn sáng tắt
– Chức năng là bus dữ liệu và bus địa chỉ (AD7-AD0) : 8 chân này (hoặc Port 0) còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối với bộ nhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉ của bộ nhớ ngoài
Ø Port 3 (P3):
gồm 8 chân (từ chân 10 đến 17):
Chức năng xuất/nhập
Với mỗi chân có một chức năng riêng:
P3.0 RxD : Ngõ vào nhận dữ liệu nối tiếp
P3.1 TxD : Ngõ xuất dữ liệu nối tiếp
Trang 8P3.2 INT0: Ngõ vào ngắt cứng thứ 0
P3.3 INT1: Ngõ vào ngắt cứng thứ 1
P3.4 T0 : Ngõ vào của Timer/Counter thứ 0
P3.5 T1 : Ngõ vào của Timer/Counter thứ 1
P3.6 WR : Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài
P3.7 RD : Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài
P1.0 T2 : Ngõ vào của Timer/Counter thứ 2
P1.1 T2X : Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2
Chức năng:
Là vi điều khiển chính của mạch, 8 KB EPROM bên trong, 256 Byte RAM nội, 4 Port xuất /nhập I/O 8 bít, 3 bộ định thời 16 bit Watch dog timer
1.4.2 Led 7 thanh (anot chung)
LED 7 đo n hay LED 7 thanh (Seven Segment display) ạ là 1 linh ki n r t ph d ng , ệ ấ ổ ụ
được dùng nh là 1 công c hi n th đ n gi n nh t .ư ụ ể ị ơ ả ấ
Trong LED 7 thanh bao g m ít nh t là 7 con LED m c l i v i nhau , vì v y mà có tên ồ ấ ắ ạ ớ ậ
là LED 7 đo n là v y ,7 LED đ n đạ ậ ơ ược m c sao cho nó có th hi n th đắ ể ể ị ược các s ố
t 0 9 , và 1 vài ch cái thông d ng, đ phân cách thì ngừ ữ ụ ể ười ta còn dùng thêm 1 led
đ n đ hi n th d u ch m (dot) .ơ ể ể ị ấ ấ
Các led đ n l n lơ ầ ượ ượt đ c g i tên theo ch cái A B CDEFG, và d u ch mọ ữ ấ ấdot .
Nh v y n u nh mu n hi n th ký t nào thì ta ch c n c p ngu n vào chân đó là ư ậ ế ư ố ể ị ự ỉ ầ ấ ồled s sáng nh mong mu n .ẽ ư ố
Thông s :ố
LED 7 thanh dù có nhi u bi n th nh ng t u chung thì cũng ch v n có 2 lo i đó là :ề ế ể ư ự ỉ ẫ ạ + Chân Anode chung (chân + các led m c chung l i v i nhau .)ắ ạ ớ
+ Chân Catode chung (Chân các led được m c chung v i nhau .)ắ ớ
* Đ i v i lo i Anode chung :ố ớ ạ
+ Chân 3 và 8 là 2 chân Vcc(n i ng n m ch l i v i nhau , sau đó n i chung ố ắ ạ ạ ớ ố
v i chân anode c a 8 led đ n .), v y mu n led nào đó sáng thì ch vi c n i ớ ủ ơ ậ ố ỉ ệ ốchân catot xu ng mass .ố
Đi n áp gi a Vcc và mass ph i l n h n 1.3 V m i cung c p đ led sáng, tuy ệ ữ ả ớ ơ ớ ấ ủnhiên không được cao quá 3V .
Trang 9Trong các m ch thì thạ ường dùng ngu n 5V nên đ tránh vi c đót cháy led thì cách ồ ể ệ
Trang 10- Kích Thước: LED Phi 3 ( 3mm).
- Ánh sáng phát ra từ LED hồng ngoại 3mm không nhìn thấy được
Led phát hồng ngoại
Trang 11Led thu hồng ngoại
CHƯƠNG 2 NGÔN NGỮ LẬP TRÌNH VÀ PHẦN MỀM PHỤ TRỢ2.1 Ngôn ngữ lập trình
Khi sử dụng ngôn ngữ C người lập trình không cần hiểu sâu sắc về cấu trúc của bộ viđiều khiển
Cấu trúc chương trình C
Một chương trình viết bằng ngôn ngữ C thường gồm 2 phần : Phần khai báo và phầnthân chương trình Trong đó phần thân trương trình bắt buộc phải có
- Khai báo chỉ thị tiền xử lý
- Khai báo các biến toàn cục
- Khai báo nguyên mẫu các hàm
- Xây dựng các hàm và chương trình chính
Các kiểu dữ liệu
Trang 12 Khai báo biến :
Cú pháp: Kiểu_dữ_liệu Vùng_nhớ Tên_biến_at_ Đia_chỉ;
Ví dụ: Unsigned char data x;
Unsigned char x;
Khi khai báo biến có thể gán luôn cho biến giá trị ban đầu
Ví dụ: Thay vì: unsigned char x; x = 0;
Ta chỉ cần: unsigned char x = 0;
Có thể khai báo nhiều biến cùng một kiểu một lúc
Ví dụ: unsigned int x,y,z,t;
Trang 13Hình 2 1 Giao diện khi bắt đầu mở Proteus 8.5
Nhấn ‘P’ để tìm kiếm linh kiện
Hình 2 2 Cách tìm linh kiện
Sắp xếp linh kiện, nối dây rồi chạy mô phỏng
Trang 14Ảnh mô phỏng
2.2.2 Keil C
Để lập trình được cho 8051, các bạn cần phải có một công cụ gọi là Keil C là một
trình soạn thảo văn bản, giúp bạn viết code để nạp vào bo mạch 8051
Một trương trình viết bởi Keil C được lưu dưới định dạng hex
Các bước để sử dụng Keil C
ẢNH MÔ PHỎNG
Trang 15 Vùng điện áp lối vào: -0.3V đến +32V
Dòng cực máng nhỏ: 0.7mA
Dòng offset lối vào: 30nA max
Điện áp offset lối vào: 3mA max
Vùng nhiệt độ hoạt động: 0 đến 70 độ C
Sơ đồ chân
Trang 16 Button
-Là một khí cụ đóng cắt bằng tay kiểu hộp, dung để đóng cắt mạch điện
Hình ảnh button
Điện trở
Điện trở là sự cản trở dòng điện của một vật dẫn điện, nếu một vật dẫn điện
tốt thì điện trở nhỏ, vật dẫn điện kém thì điện trở lớn, vật cách điện thì điện trở là vô cùng lớn
Trang 17 Biến trở
Biến trở là các thiết bị có điện trở thuần có thể biến đổi được theo ý muốn Chúng có thể được sử dụng trong các mạch điện để điều chỉnh hoạt động của mạch điện
Điều chỉnh giá trị điện trở, điều khiển tốc độ động cơ, độ sáng lcd
CHƯƠNG 3 THỰC THI THIẾT KẾ
1 Thiết kế phần cứng
Mạch đếm xe tại bãi đỗ xe sử dụng 2 cặp led thu phát hồng ngoại, khi led thu hồng ngoại không nhận được tín hiệu từ led phát(do có xe đi qua cản trở tia hồng ngoại ktới được led thu) ,điện trở của led thu rất lớn ,V2>V3 => lối ra điện áp bằng 0 ,khi led thu nhân được tín hiệu từ led phát ,điện trở của led thu giảm xuống mạnh (sự giảm đó phụ thuộc vào cường độ led phát ),khi đó V2<V3=>lối ra điện áp bằng 5v(ở mức cao)
Tín hiệu từ bộ cảm biến thu phát hồng ngoại sẽ đc đưa qua bộ so sánh trong
LM324 Bộ so sánh LM324 sẽ nhận tín hiệu ở mức cao hoặc thấp từ led thu hồng ngoại để đưa vào bộ vi điều khiển, bộ vi điều khiển sẽ sử lý thông tin sau đó hiển thị ra bộ hiển thị là led 7 thanh số xe có ở trong bãi xe
3.1.2 SƠ ĐỒ KHỐI
Biến trở tam giác
Trang 18SƠ ĐỒ KHỐI
KHỐI CẢM BIẾN HỒNG NGOẠI
Trang 19KHỐI ĐIỀU KHIỂN, KHỐI ĐẾM, KHỐI HIỂN THỊ
Trang 20if(i<0){
Trang 21if(i<0){
Trang 22}}
}
2 Một số hình ảnh của bài tập
Mạch in
Trang 23em đã hoàn thành được đề tài: “ Thiết kế giao tiếp vi điều khiển 8051 với cảm biến
hồng ngoại” Trong quá trình thực hiện đề tài chúng em đã đúc kết được nhiều kinh
nghiệm quý báu cho bản thân để phục vụ trong quá trình học tập và thực tế sau này
Sinh viên học tập môn học có được những kinh nghiệm thựchành tốt, được làm quen với các thiết bị hỗ trợ học tập.Trong phầnmềm thiết kế mạch sử dụng phần mềm vẽ mạch là phần mềmproteus 8.5 phầm mềm hỗ trợ vẽ mạch dễ sử dụng, phù hợp, có thế
vẽ thêm các linh kiện khác nhanh chóng Qua quá trình làm đề tàinhóm đã có được những kinh nghiệm làm mạch in, biết được cáchhoạt động của các linh kiện điện tử, có thêm được nhiều hiểu biết vềđiện tử, ứng dụng những kinh nghiệm học được vào cuộc sống
Ưu điểm
-Mạch đơn giản dễ lắp đặt
-Hoạt động ổn định, chính xác
Nhược điểm
-Còn hạn chế trong ý tưởng phát triển thực tế
Tuy nhiên bài báo cáo trên của chúng em vẫn còn nhiều thiếu sót chưa giảiquyết được hết yêu cầu như việc phân tích đề bài chúng em còn sơ sài do chúng emchưa hiểu kỹ về đề bài nên làm và phát triển theo hướng nào Về phần ngôn ngữa lậptrình và phần mền thì chúng em cũng tiến hành tìm kiếm và làm code cũng như cácphần mềm hỗ trợ, nhưng chúng em đã cố gắng tìm hiểu nghiên cứu về chương trình
mã nguồn
Qua bài báo cáo này chúng em mong thầy sẽ gúp đỡ chúng em thêm về các kỹ năng như lập trình và cách phân tích cái bài toán nhiều hơn để chúng em có thể cố gắng làm tốt hơn các bài tiếp theo
Trang 24* Hướng phát triển
Trong suốt quá trình làm bài thực hành chúng em thấy đề tài này rất hay và cótính ứng dụng tương đối tốt Tuy nhiên với khả năng có hạn nên độ chính xác của sảnphẩm còn chưa cao Vì vậy nhóm chúng em đang cố gắng để hướng tới một sản phẩmtoàn diện hơn, độ chính xác cao hơn và có thể sử dụng vào trong thực tiễn
TÀI LIỆU THAM KHẢO
[1] Giáo trình Vi Xử Lý & vi điều khiển, Khoa CNĐTTT, Đại học CNTT & TT
[2] Giáo trình Nguyên lý điện tử 1, Khoa CNĐTTT, Đại học CNTT & TT
[3] Giáo trình Lý thuyết mạch, Khoa CNĐTTT, Đại học CNTT & TT
[4] Giáo trình Thực hành điện tử tương tự và số 2, Khoa ĐTTT, Đại học CNTT&TT[5] Hocdientu.vn
[6] Http://tailieu.vn
[7] Http://dientuvietnam.net
[8] Htttp://linhkien69.vn
[9] Http://youtube.com