Khi có sản phẩm đi qua giữa phần phát và phần thu ánh sáng hồng ngoại bị che bộ phận thu sẽ hoạt động với tấn số khác so với tần số phát như thế tạo ra một xung tác động tới bộ phận xử l[r]
Trang 1ĐỀ TÀI
THIẾT KẾ BỘ ĐẾM SẢN PHẨM SỬ DỤNG CẢM BIẾN HỒNG NGOẠI, SẢN PHẨM HIỂN THỊ TRÊN
LCD.
Phụ lục
Lời nói đầu :
Phần một: Cơ sở lý thuyết.
Trang 2I: Giới thiệu về bộ vi điều khiển 8051(89S52):
1: Đặc điểm của IC vi điều khiển
2: Cấu trúc bên trong của 8051(89S52)
3: Các Port của 89S52
a: Port 0 (P0.0-P0.7)
b: Port 1 (P1.0-P1.7)
c: Port 2 (P2.0-P2.7)
d: Port 3 (P3.0-P3.7)
4: Nghiên cứu tổng thể về vi điều khiển 4.1: Hoạt động định thời:
4.2: Cổng nối tiếp:
4.2: Ngắt và xử lý ngắt:
II: Giới thiệu về LM358: 1: Cấu tạo của LM358:
2: Hoạt động của LM358:
III: Bộ cảm biến hồng ngoại: 1: Cấu tạo:
2: Hoạt động:
Phần hai :Nội dung thiết kế sản phẩm. 1: Sơ đồ nguyên lý:
2: Nguyên lý hoạt động:
3: Thuật toán chương trình:
4: Phần mềm:
5: Thuyến trình phần mềm:
Phần ba: Mạch demo kết luận ưu nhược điểm của sản phẩm. 1: Mạch demo:
2: Ưu điểm:
3: Nhược điểm:
4: Khắc phục nhược điểm:
5: Ứng dụng thực tế:
Phần ba: Tài liệu tham khảo
LỜI NÓI ĐẦU
Trang 3Bộ vi điều khiển viết tắt là Micro-controller, là mạch tích hợp trên một chíp có thể lập trình được, dùng để điều khiển hoạt động của hệ thống Bộ
vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo lường thời gian và tiến hành đọc mở một cơ cấu nào đó
Người lập trình có thể sử dụng nhiều ngôn ngữ để lập trình cho vi điều khiển; Nhưng thường sử dụng hai ngôn ngữ chính để lập trình đó là : Ngôn ngữ lập trình C và ngôn ngữ lập trình Assembly (lập trình trên phần cứng của máy tính)
Sau khi lập trình xong phần trình dịch được nạp vào IC và dùng IC này để điều khiển các hệ thống theo yêu cầu đề ra:
Hiện nay vi điều khiển rất phát triển, nó được ứng dụng vào rất nhiều lĩnh vực như: Sản xuất công nghiệp, tự động hoá và rất nhiều lĩnh vực khác
So với kỹ thuật số thì vi điều khiển nhỏ gọn hơn rất nhiều do nó được tích hợp lại và được lập trình để điều khiển
Tiếp xúc và nghiên cứu vi điều khiển ban đầu cũng có nhiều điều bỡ ngỡ
và lúng túng trong lập trình; Nhưng qua học tập và được sự hướng dẫn nhiệt tình của các thầy cô bộ môn và đặc biệt là thầy giáo bộ môn Nguyễn Anh Dũng thì chúng em cũng từng bước nắm được những kiến thức về vi điều khiển cũng như những yêu cầu sử lý:
Với đề tài : Mạch đếm sản phẩm hiện thị LCD sử dụng cảm biến hồng ngoại chúng em hy vọng sẽ đạt kết quả tốt Có thể trong quá trình thiết kế
và ứng dụng có nhiều vấn đề có thể chưa được như mong muốn, chúng
em mong được sự nhận xét chỉ bảo của các thầy để chúng em có thể hoàn thành tốt hơn những đồ án về sau
Chúng em xin chân thành cảm ơn!!!
Giáo viên hướng dẫn : Nguyễn Anh Dũng Sinh viên thực hiên : Đặng Văn Hoan
Nguyễn Văn Hiếu
Phạm Sỹ Thìn
PHẦN MỘT
CƠ SỞ LÝ THUYẾT
I: Giới thiệu sơ lược về bộ vi điều khiển 8051(89S52):
Trang 41: IC vi điều khiển thuộc họ MCS51 có các đặc điểm sau:
4 kbyte ROM
128 byte RAM
4 port I/O 8 bit
2 bộ định thời
1 cổng nối tiếp
6 nguồn ngắt
Nhưng thực tế hiện nay ta hay sử dụng 8052 (89S52) cũng là một thành viên họ 8051 8052 có tất cả các đặc tính của 8051 ngoài ra còn có thêm
4 kbyte ROM, 128 byte RAM và một bộ định thời nữa
Hình1 : Vi điều khiển 8051
2: Cấu trúc bên trong IC8051:
Phần chính của vi điều khiển 8051 là bộ vi xử lý trung tâm ( CPU: central processing unit)
Đơn vị xử lý trung tâm nhận trực tiếp xung từ bộ dao động, ngoài ra còn
có khả năng đưa một tín hiệu giữ nhịp từ bên ngoài
Trang 5Chương trình đang chạy có thể dừng lại nhờ một khối điều khiển ngắt ở bên trong Các nguồn ngắt có thể là : Các biến cố ở bên ngoài, sự tràn của
bộ đếm định thời hoặc cũng có thể là giao diện nối tiếp
Ba bộ định thời 16bit hoạt động như một bộ đếm
Các cổng Port0, Port1, Port2, Port3 Sử dụng vào mục đích điều khiển và xuất nhập tín hiệu Ở cổng Port3 có thêm các đường dẫn điều khiển dùng
để trao đổi với bộ nhớ bên ngoài, hoặc để đầu nối giao diện nối tiếp, cũng như các đường ngắt dẫn ở bên ngoài
Hình2 : Sơ đồ khối 89S52
Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ, làm việc độc lập với nhau Tốc độ truyền qua cổng nối tiếp có thể đặt trong dải rộng và được ấn định bằng một bộ định thời
Trong vi điều khiển 8051 có hai thành phần quan trọng khác đó là bộ nhớ
và các thanh ghi:
Trang 6Bộ nhớ gồm có bộ nhớ RAM và bộ nhớ ROM dùng để lưư trữ dữ liệu và
mã lệnh
Các thanh ghi sử dụng để lưư trữ thông tin trong quá trình xử lý Khi CPU làm việc nó thay đổi nội dung các thanh ghi
3: Các Port của 89S52:
a :Port0 (P0.0-P0.7):
Port 0 gồm 8 chân, ngoài chức năng xuất nhập, Port 0 còn là bus đa hợp
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 thíêt bị ngoài có các kiến trúc bus như mạch nhớ, mạch PIO…
Hình 3: Cấu trúc của các chân trên Port 0
b :Port1 (P1.0-P1.7):
Đối với 8051, chức năng duy nhất của Port 1 là chức năng xuất nhập, cũng như các Port khác Port 1 có thể xuất nhập theo bit hoặc theo byte
Hình 4: Cấu trúc của các chân trên Port 1 và Port3
c :Port2 (P2.0-P2.7):
Trang 7Port 2 là một Port công dụng kép trên các chân 21-28 được dùng như các đường xuất nhập hoặc là byte cao cua Bus địa chỉ với các thiết kế dùng
bộ nhớ mở rộng
Hình 5 : Cấu trúc các chân trên Port 2
d :Port3 (P3.0-P3.7):
Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng, cụ thể như sau :
4 : Nghiên cứu tổng thể về vi điều khiển :
Nhìn tổng thể chúng ta có thể tìn hiểu về vi điều khiển trong 3 mảng vấn
đề chính là: Các bộ định thời Timer, Port nối tiếp và Ngắt
4.1: Hoạt động định thời :
Các thanh ghi:
Timer 0 và Timer 1 : Thanh ghi chế độ định thời (TMOD)
Thanh ghi điều khiển Timer ( TCON)
Các thanh ghi chứa giá trị của các bộ định thời Timer 2 : Thanh ghi T2CON
Trang 8Thanh ghi T2MOD
Thanh ghi TH2 và TL2,RCAP2H và RCAP2L
Các chế độ hoạt động của Timer:
Timer 0 và Timer 1: Chế độ 0 : Timer 13 bit
Chế độ 1: Timer 16 bit
Chế độ 2 : 8 bit tự động nạp lại
Chế độ 3 : Tách Timer
Timer 2 : Chế độ thu nhận (Captuer) : 16bit tự nạp lại
Chế độ tự nạp lại (Auto-Reload) : 16bit thu nhận
Chế độ cung cấp tốc độ Baud cho cổng nối tiếp
4.2: Cổng nối tiếp:
Các thanh ghi cổng nối tiếp: Thanh ghi điều khiển cổng nối tiếp (SCON), thanh ghi đệm truyền nhận ở cổng nối tiếp (SBUF)
Các chế độ hoạt động: Chế độ 0 và chế độ 1, chế độ 2
Ứng dụng truyền nhận qua cổng nối tiếp và truyền thông đa xử lý
4.3: Ngắt và xử lý ngắt:
Thanh ghi cho phép ngắt IE ( Interrupt Enable)
Thanh ghi ưu tiên ngắt IP
Các vector ngắt và số hiệu ngắt
89S52 có 6 nguồn ngắt: Ngăt ngoài INT0\
Ngắt ngoài 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
Các ngắt ngoài sảy ra khi có mức thấp hoặc sườn xuống trên chân INT0 hoặc INT1 của vi điều khiển Đây là chức năng chuyển đổi của các bit Port 3 (P3.2 và P3.3)
Ngắt cổng nối tiếp xảy ra khi cờ phát (TI) hoặc cờ ngắt thu (RI) được đặt lên mức1 Ngắt phát xảy ra khi một ký tự đã nhận xong và đang đợi trong SBUF để được đọc
Trang 9Các ngắt cổng nối tiếp khác với các ngắt Timer Cờ gây ra ngắt cổng nối tiếp không bị xáo bằng phấn cứng khi CPU chuyển tới ngắt, do có hai nguồn ngắt cổng nối tiếp TI và RI Nguồn ngắt phải được xác định trong ISR và cờ tạo ngắt sẽ được xoá bằng phần mềm Các ngắt Timer cờ ngắt được xoá bằng phần cứng khi CPU hướng tới ISR
II : Giới thiệu về LM358 :
1 : Cấu tạo của LM358 :
Hình 5 : Cấu tạo và hình dạng thực tế của LM358
Cấu trúc mạch điện thực tế của LM358 :
Trang 10Hình 6 : Cấu tạo mạch điện LM358
2 : Hoạt động của LM358 :
IC LM358 thực hiện nhiệm vụ so sánh tín hiệu vào để đưa ra tín hiệu chuẩn, nguồn cấp cho IC là : 3V-32V Mỗi khi có sự thay đổi về điện áp tại chân 3 tín hiệu đầu vào của LM358 thì nó thực hiện so sánh điện áp với điện áp chuẩn chân 8 để tạo ra sự biến đổi tín hiệu đẩu ra tại chân 1
III : Bộ cảm biến hồng ngoại:
1 : Cấu tạo : Gồm có phần phát và phần thu.
Phần phát gồm 1 con LED hồng ngoại
Phần thu gồm 1 con Transistor
Hình 7: Cấu tạo của LM358
2: Hoạt động:
Trang 11Để cảm nhận mỗi lần sản phẩm đi qua thì cảm bíên hồng ngoại của phấn phát phát ra ánh sáng hồng ngoại và phần thu hấp thụ ánh sáng hồng ngoại vì ánh sáng hồng ngoại có đặc điểm ít bị nhiễu so với các loại ánh sáng khác Hai bộ phận phát và thu hoạt động cùng tần số Khi có sản phẩm đi qua giữa phần phát và phần thu ánh sáng hồng ngoại bị che bộ phận thu sẽ hoạt động với tấn số khác so với tần số phát như thế tạo ra một xung tác động tới bộ phận xử lý Vậy bộ phận phát và thu phải có nguồn tạo dao động
PHẦN HAI NỘI DUNG THIẾT KẾ SẢN PHẨM
Trang 121: Sơ đồ nguyên lý mạch đếm sản phẩm hiện thị LCD:
Mạch gồm IC 89S52, IC LM358, IC 7805, LCD(1602), bộ cảm biến hồng ngoại, thạch anh 12MHz, biến trở 20k, nút nhấn, điện trở(220R,10k,1k),
tụ (33pF,10uF,100uF,104), đèn LED báo
Hình 8: Sơ đồ nguyên lý mạch đếm sản phẩm
2: Nguyên lý hoạt động của mạch:
Ở chế độ bình thường thì chân INT0( chân 12 của 89S52) luôn ở mức cao Khi có một sản phẩm đi qua bộ cảm biến hồng ngoại, sản phẩm che không cho ánh sáng hống ngoại từ bên phát tới bên thu lên sảy ra sự chênh lệch về điện áp tạo nên sự chênh lệch về tần số giữa bên phát và bên thu lên không có tín hiệu ra ở chân 3 của IC LM358 Khi đó IC LM358 sẽ thực hiện so sánh tín hiệu này với tín hiệu nguồn cấp tại chân 2 của LM358 qua biến trở VR2, khi đó đầu ra tai chân 1 của LM358 là mức thấp đưa tới chân INT0 (chân 12) tại đây sẽ sảy ra hiện tượng ngắt và khi
đó biến đếm được tăng lên 1 và trên LCD sẽ hiển thị kết quả đếm
C 1
3 0 p F
L C D L M O 1 6 0 2
L C D
L M O 1 6 0 2
R E D D D D A K
8 9 S 5 2
8 0 5 1
2 9
2 0
3 1
1 9
1 8
9
3 9
3 7
3 5
3 3 1 3 5 7
2 1
2 3
2 5
2 7
1 0
1 2
1 4
1 6
G N D
E A
X 1
X 2
R S T
P 0 0 / A D 0
P 0 2 / A D 2
P 0 4 / A D 4
P 0 6 / A D 6
P 1 0
P 1 2
P 1 4
P 1 6
P 2 0 / A 8
P 2 2 / A 1 0
P 2 4 / A 1 2
P 2 6 / A 1 4
P 3 0 / R X D
P 3 1 / T X D
P 3 2 / I N T 0
P 3 4 / T 0
P 3 6 / W R
P 3 7 / R D
C 2
3 0 p F
V C C
9 V
1
Y 1
1 2 M H z
R 3
1 0 k
V R 1
2 0 k
C 3
1 0 u F
O N A P
7 8 H T 2
C 4
1 0 0 u F
-+
K D _ T T A
L M 3 5 8
3
R 4 4 7 0
I S O 1
T H U _ P H A T
D 2
L E D
C 5
1 0 4
R 1 1 0 k
V R 2
2 0 K
R 2
2 2 0
Trang 133: Thuật toán chương trình:
Trang 144:Phần mềm:
#include<reg52.h>
#include<stdio.h>
#include<intrins.h>
sbit RS_LCD = P1^0;
sbit RW_LCD = P1^1;
sbit E_LCD = P1^2;
unsigned char dong[] = {0x00 , 0x80 , 0xc0};
unsigned long d=0;
unsigned int i;
for(i=0;i<=3;i++);
}
{
TH0 = -1000/256; // Chu ky xung 2000us TH0 = -1000%256;
TR0 = 1;
while (!TF0);
TR0 = 0;
TF0 = 0;
}
void ktra_coban(){
unsigned char x;
hoat dong;
delay_short();
x=P2;
}
while(x!=0x80);
}
void ghi_lenh(unsigned char command){
ktra_coban();
Trang 15P2 = command;
E_LCD = 1;
delay_short();
E_LCD = 0;
}
void ghi_kytu(unsigned char kytu){
ktra_coban();
delay();
P2 = kytu;
E_LCD =1;
delay_short();
E_LCD = 0;
}
void ghi_nhanh ( unsigned char kytu){
delay_short();
P2 = kytu;
E_LCD = 1;
delay_short();
E_LCD = 0;
}
void ghi_chuoi(char *str){
while(*str){
ghi_kytu(*str);
str++;
}
void ghi_nhanh_chuoi(char *str){
while(*str){
ghi_nhanh(*str);
str++;
}
}
tro tren man hinh LCD
Trang 16ghi_lenh(dong[y]+x); // y la dong, x
la cot
}
ghi_lenh(0x01);
ghi_lenh(0x38);
ghi_lenh(0x0e);
sang phai
}
void write_number(unsigned long number){ //Ham tao mot day so dem;
int j;
unsigned char array[10]; //Day 10 phan tu tren mot dong;
{ array[j] = number%10; //chia lay du roi thuc hien dua vao mang
}
ghi_nhanh(array[j]+0x30); //00110000 : Hien thi mot dong Font 5*7;
}
}
void main(){
setting();
ghi_lenh(0x01); //00000001 : Xoa man hinh
ghi_lenh(0x80); //10000000 : Thiet lap dia chi DDRAM chua
dl hien thi
ghi_chuoi(" CDDT2-K9");
dia chi cua CGRAM or DDRAM
ghi_chuoi(" DH CONG NGHIEP ");
delay();
ghi_lenh(0x01);
ghi_chuoi(" DO AN ");
Trang 17ghi_chuoi("DEM SAN PHAM LCD");
delay();
ghi_lenh(0x01);
ghi_chuoi(" SVTH ");
ghi_lenh(0xc0);
ghi_chuoi(" HOAN_HIEU_THIN ");
delay();
ghi_lenh(0x01);
ghi_nhanh_chuoi(" SO SAN PHAM LA");
IE = 0x81; //10000001 : Cho phep ngat ngoai Timer0;
while(1){
move(2,3); // Di chuyen den vi tri 3 dong 2;
write_number(d-1);
} }
{
d++;
}
5: Thuyết trình phần mềm:
Khi có sản phẩm đi qua bộ cảm biến hồng ngoại khi đó chân ngắt INT0 của IC 89S52 chuyển mức cao xuống mức thấp tức là sảy ra hiện tượng ngắt cho chân INT0 Chương trình sẽ thực hiện lệnh ngắt :
Void ngat() interrupt 0 (Ngắt ngoài Timer0) cho quá trính đếm sản phẩm
Trang 18PHẦN BA MẠCH DEMO, KẾT LUẬN ƯU NHƯỢC ĐIỂM CỦA SẢN
PHẨM
1: Mạch demo:
2: Ưu điểm:
Cho phép tăng năng suất lao động
Đảm bảo độ chính sác
Cho phép đếm với tần số cao
Khi phần phát và thu xa nhau ta co thể ứng dụng vào thực tế để đếm những sản phẩm lớn
Tổn hao công suất bé, do đó mach có thể dung pin, biến áp…
Giá thành rẻ
3: Nhược điểm:
Do sử dụng cảm biến hồng ngoại nên nếu có 2 sản phẩm đi qua cùng lúc thì sẽ dẫn đến đếm nhầm sản phẩm
Trang 19Hai con thu phát làm việc với tần số giống nhau nên nhiều khi không ổn định
Tầm nhìn của hồng ngoại yêu cầu độ chính xác
4: Khắc phục nhược điểm:
Nhược điểm lớn nhất của mạch là những linh kiện thụ động và bộ cảm biến hồng ngoại vậy nên khi lắp mạch ta cần phải chọn các linh kiện tốt
có tính ổn định cao
5: Ứng dụng thực tế:
Mạch được ứng dụng trong các hệ thống cửa tự động, trong các khách sạn, công ty…
Dùng để đếm sản phẩm thu được trong các dây truyền nhà máy như: Các siêu thị… Và còn nhiều ứng dụng khác nữa
Trang 20PHẦN BỐN TÀI LIỆU THAM KHẢO
1:Cấu trúc và lập trình họ vi điều khiển 8051
Nguyễn Tăng Cường- Phan Quốc Thắng 2: Vi điều khiển với lập trình C
Ngô Diên Tập
3:Giáo trình vi điêu khiển
Khoa điện tử
4: Họ vi điều khiển 8051
Tống Văn On
5:diendandientu.com
6:dientuvietnam.net