HỌC VIỆN NÔNG NGHIỆP VIỆT NAM
KHOA CƠ – ĐIỆN
BÁO CÁO ĐỒ ÁN MÔN HỌC
Đề tài:
“Nghiên cứu thiết kế bộ đếm sản phẩm sử dụng Vi điều
khiển họ 8051”
Cán bộ hướng dẫn
:Lại Văn Song
Bộ môn
:Tự Động Hóa
Nhóm SV thực hiện
:Nguyễn Thị Phượng
576127 – K57TDHA
:Thân Văn Quyết
576214 – K57TDHB
NGHIÊN CỨU THIẾT KẾ BỘ ĐẾM
SẢN PHẨM SỬ DỤNG VI ĐIỀU
KHIỂN HỌ 8051
Phần 1 : Đặt vấn đề
phải sử dụng công nhân lao động . Từ đó , chúng em muốn làm một điều gì nhỏ
trong phạm vi khả năng của bản thân góp phần giúp người lao động bớt mệt mỏi
chân tay ,không những cho phép tăng hiệu suất lao động lên nhiều lần mà còn đảm
bảo được độ tin cậy.
Và đề tài mà chúng em nghiên cứu đó là :”Nghiên cứu thiết kế bộ đếm sản
phẩm sử dụng Vi điều khiển họ 8051”. Mạch đếm sản phẩm sử dụng AT89C52
có thể thay đổi số đếm một cách linh hoạt bằng việc thay đổi chương trình mà phần
cứng không hề thay đổi.Đặc biệt với mạch này cũng khá đơn giản, ít linh kiện sử
dụng trong mạch mà có thể kết nối giao tiếp được với máy tính thích hợp nhằm
giúp người quản lí 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.
Em xin chân thành cảm ơn..!
1. Mục tiêu của đề tài:
-Mạch có khả năng đếm sản phẩm hoạt động chính xác, thực hiện được đúng
yêu cầu.
2. Thời gian và địa điểm thực hiện:
-Thời gian: trong khoảng 2 tháng
-Địa điểm: tại nhà
3. Ý nghĩa khoa học của đề tài:
-Giúp sinh viên có thể gần gũi hơn với việc lập trình từ đó có thể tiếp cận
gần hơn với bộ môn tự động hóa trong quá trình sản xuất .
PHẦN 2 GIỚI THIỆU LINH KIỆN
2.1 Khối nguồn
Ổn áp L7805 : Là IC ổn áp 5V, tương ứng với dòng là 1A.
Với những mạch điện không đòi hỏi độ ổn định của điện áp quá cao, sử dụng IC ổn
áp thường được người thiết kế sử dụng vì mạch điện khá đơn giản. Và 7805 cho ổn
và đầu vào của MCU (không phải GND). Do đó, mức điện áp tại đầu vào của
MCU sẽ đọc là mức điện áp Vcc (HIGH). Khi nút nhấn được bấm, nó sẽ kết nối
trực tiếp đầu vào MCU với GND. Dòng điện sẽ chạy thẳng qua điện trở kéo xuống
GND, vì thế mức điện áp đọc tại đầu vào MCU là 0V (LOW). Nếu không có điện
trở kéo lên, khi bạn nhấn nút sẽ xảy ra hiện tượng đoản mạch.
Chọn giá trị điện trở kéo
Chọn giá trị điện trở kéo cỡ trên dưới 10KΩ là ổn.
Giá trị điện trở thấp cho dòng lớn đi qua, gọi là kéo mạnh. Ngược lại, giá trị điện
trở cao gọi là kéo yếu.
Trở kháng tại đầu vào của MCU nằm trong khoảng 100KΩ – 1MΩ.
Giá trị điện trở kéo cần đáp ứng 2 điều kiện sau:
Khi nút bấm được bấm: dòng điện chạy trực tiếp từ Vcc xuống GND thông qua
R1, vì thế giá trị của R1 không được thấp quá để tránh lãng phí dòng điện cũng
như ko làm ảnh hưởng đến toàn mạch.
Khi nút bấm không được bấm: R1 kết hợp với trở kháng (R2) của đầu vào MCU
tạo ra mạch phân áp, điện áp tại đầu vào sẽ phụ thuộc vào R1. Nếu R1 quá cao dẫn
đến sụt áp quá nhiều, MCU không phân biệt được chính xác trạng thái tại đầu vào.
Thông thường người ta chọn giá trị điện trở kéo (R1) bằng 1/10 trở kháng (R2) của
MCU.
Hiện nay, hầu hết các dòng vi điều khiển đã được nhà sản xuất tích hợp điện trở
kéo bên trong, có thể điều khiển chức năng này một cách nhanh chóng thông qua
các đoạn mã lệnh.
Ý kiến khác chỉ ra rằng khi sử dụng điện trở kéo có trị số lớn, tốc độ phản hồi của
hệ thống sẽ chậm đi. Đó là do hệ thống có sử dụng mạch lọc RC, mạch RC cần
một khoảng thời gian đủ để xả hoặc nạp đầy tụ điện trước khi hệ thống đáp ứng tín
hiệu. Trên một đường truyền có tốc độ cao (USB chẳng hạn) thì điện trở kéo có giá
khiển. AT89C52 cung cấp những đặc tính chuẩn như:
+8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000
chu kỳ ghi/xoá
+Tần số hoạt động từ: 0Hz đến 24 MHz
+3 mức khóa bộ nhớ lập trình
+3 bộ Timer/counter 16 Bit
+128 Byte RAM nội. (256x8 bit RAM)
+4 Port xuất /nhập I/O 8 bit.
+Giao tiếp nối tiếp.
+64 KB vùng nhớ mã ngoài
+64 KB vùng nhớ dữ liệu ngoại4µs cho hoạt động nhân hoặc chia.
Sơ đồ khối của IC AT89C52
*Các chân của vi điều khiển :
*Một số lưu ý về ngắt trong 8051:
Ø Phân biệt cơ chế ngắt với hỏi vòng
Ø Nắm rõ các loại ngắt trong 8051
· Ngắt timer/counter
· Ngắt ngoài
· Ngắt truyền thông nối tiếp
Ø Lập trình các ngắt
· Trình phục vụ ngắt là gì?
· Cho phép ngắt và cấm ngắt
· Thiết lập mức ưu tiên của các ngắt
Giới thiệu
Ngắt (Interrupt) - như tên của nó, là một số sự kiện khẩn cấp bên trong
hoặc bên ngoài bộ vi điều khiển xảy ra, buộc vi điều khiển tạm dừng thực hiện
ngắt (Interrupt handler). Sau khi phục vụ ngắt xong, bộ vi xử lý lại quay trở lại
điểm bị ngắt trước đó và tiếp tục thực hiện công việc.
Ø Trong phương pháp thăm dò: bộ vi điều khiển kiểm tra liên tục tình trạng
của tất cả các thiết bị, nếu thiết bị nào có yêu cầu thì nó dừng lại phục vụ thiết bị
đó. Sau đó nó tiếp tục kiểm tra tình trạng của thiết bị kế tiếp cho đến hết.
Phương pháp thăm dò rất đơn giản, nhưng nó lại rất lãng phí thời gian để kiểm
tra các thiết bị kể cả khi thiết bị đó không cần phục vụ. Trong trường hợp có
quá nhiều thiết bị thì phương án thăm dò tỏ ra không hiệu quả, gây ra chậm trễ
cho các thiết bị cần phục vụ.
Điểm mạnh của phương pháp ngắt là:
Ø Bộ vi điều khiển có thể phục vụ được rất nhiều thiết bị (tất nhiên là không tại
cùng một thời điểm). Mỗi thiết bị có thể nhận được sự chú ý của bộ vi điều khiển
dựa trênmức ưu tiên được gán cho nó. Đối với phương pháp thăm dò thì không
thể gán mức ưu tiên cho các thiết bị vì nó kiểm tra tất cả mọi thiết bị theo kiểu
hỏi vòng.
Ø Quan trọng hơn, trong phương pháp ngắt thì bộ vi điều khiển còn có
thể che (làm lơ) một yêu cầu phục vụ của thiết bị. Điều này lại một lần nữa
không thể thực hiện được trong phương pháp thăm dò.
Ø Lý do quan trọng nhất mà phương pháp ngắt được ưu chuộng là vì nó không
lãng phí thời gian cho các thiết bị không cần phục vụ. Còn phương pháp thăm dò
làm lãng phí thời gian của bộ vi điều khiển bằng cách hỏi dò từng thiết bị kể cả
khi chúng không cần phục vụ.
Ví dụ trong các bộ định thời được bàn đến ở các bài trước ta đã dùng một
vòng lặp kiểm tra và đợi cho đến khi bộ định thời quay trở về 0. Trong ví dụ đó,
nếu sử dụng ngắt thì ta không cần bận tâm đến việc kiểm tra cờ bộ định thời, do
vậy không lãng phí thời gian để chờ đợi, trong khi đó ta có thể làm việc khác có
ích hơn.
1.2 Sáu ngắt trong 8051
chúng ta cùng đi tìm hiểu về nguyên lý làm việc của hai loại cảm biến này.
Nguyên lý làm việc của cảm biến tiệm cận điện cảm:
Inductivity Proximity Sensor phát hiện được sự suy giảm từ tính nhờ vào dòng
điện xoáy sinh ra phía trên bề mặt của vật dẫn do từ trường ngoài. Trường điện từ
được sinh ra nhờ xoay chiều sinh ra trên cuộn dây và thay đổi trở kháng phụ phụ
thuộc dòng điện xoáy ở trên bề mặt của những vật thể kim loại được chúng phát
hiện.
Một số phương pháp khác dùng để phát hiện vật thể bằng nhôm nhờ vào sự phát
hiện pha của tần số. Những dòng cảm biến kiểu điện cảm phát hiện kim loại đều
được sử dụng cuộn dây để làm phát hiện sự thay đổi của điện cảm. Mặt khác còn
có nhiều loại cảm biến đáp ứng xung, loại này sẽ phát ra dòng điện xoáy dưới dạng
xung và nó sẽ phát hiện số lần thay đổi dòng điện xoáy với điện áp được sinh ra ở
trêncuộndây.
Những vật thể cần được phát hiện và cảm biến khi tiến lại gần nhau thì tương tự
như hiện tượng của cảm ứng điện từ ở trong máy biến áp.
Nguyên lý làm việc của cảm biến điện dung:
Capacitve Proximity Sensor hay còn gọi là cảm biến điện dunglàm việc theo
nguyên lý phát hiện sự thay đổi điện dung giữa cảm biến với đối tượng cần được
phát hiện. Giá trị của điện dung phụ thuộc chính vào khoảng cách và kích thước
của đối tượng cần được phát hiện. Một dòng cảm biến tiệm cận kiểu điện dung
thông thường sẽ tương tự với tụ điện có 2 bản điện cực song song với nhau, và điện
dung sẽ thay đổi ở giữa 2 bản cực đó sẽ được phát hiện. Một tấm điện cực khác
chính là đối tượng cần được phát hiện và một tấm kia chính là bề mặt của cảm
biến. Đối tượng cũng có thể được phát hiện phụ thuộc vào những giá trị điện môi
của chúng.
những con GLCD trên thị trường cũng khá đắt khoảng từ 250-800K tùy loại, có
đèn nền mầu trắng hoặc màu vàng sẫm tùy đời máy Gphone, giao tiếp SPI 4line
tiết kiệm chân MCU, điện áp hoạt động theo mình dò được khoảng 2.2-3.3V
(2.5V), và các tính năng khác mình có nêu rõ trong ghi chú Code.
3.2 Sơ đồ nguyên lý tổng hợp
Nguyên lý hoạt động:
Chế độ tự động
Khi cấp nguồn cho Vi xử lý, hệ thống được cấp điện áp lúc này chưa có sản
phẩm đi qua tức cảm biến chưa tác động, chưa có tín hiệu đến mạch điều khiển ta
thấy màn LCD hiển thị số sản phẩm = 0, 4 LED hiển thị giá trị 0000.
Khi có sản phẩm đi qua cảm biến thì Module cảm biến đưa ra tín hiệu mức 0
cho vào chân ngắt ngoài của vi điều khiển. VĐK nhận tín hiệu đã được lập trình
trước đồng thời xuất tín hiệu ra chân P0 và P1. P1 xuất ra LCD, P0 xuất ra 4 IC
quét 74HC595. Màn LCD hiển thị 1 và LED hiển thị 0001. Mỗi sản phẩm đi qua
cảm biến ghận tín hiệu đưa về vi điều khiển và đưa đến LCD cùng LED hiển thị
mức sản phẩm tăng lên 1 đơn vị. Ở LED khi giá trị tăng đến 9 là chuyển bộ đếm
giá trị sang LED kế bên. Sản phấm đếm được từ 0000 đến 9999 sau đó lại quay về
0000.
Chế độ bằng tay
Khi ấn nút Up thì tín hiệu ở mức logic thấp đưa vào khối VXL rồi đưa đến
hiển thị trên màn LCD giá trị =1, trên 4 LED tương ứng là 0001. Mỗi lần ấn
nút Up trên màn hình LCD và LED tăng lên 1 giá trị tương ứng như ở chế độ
tự động.
Khi ấn nút Down thì tín hiệu được đưa vào VXL đưa đến LCD và LEDhiển
if (dem == 0)
{
dem =0;
while (nutbam1 != 1);
}
else
{
dem--;
while (nutbam1 != 1);
}
}
}
if(nutbam2 != 1)
{
delay_ms(200);
if(nutbam2 != 1)
{
if (dem == 9999)
{
dem =0;
while (nutbam2 != 1);
}
else
{
dem++;
while (nutbam2 != 1);
}