CHƯƠNG 1: GIỚI THIỆU VỀ HỆ THỐNG ĐIỀU KHIỂN VÀ NHỮNG LINH KIỆN SỬ DỤNG TRONG THIẾT KẾ 1.1 Giới thiệu về hệ thống điều khiển Hiện này, trong các nhà máy hay doanh nghiệp sản xuất thì có nhiều khâu tự động hóa trong sản xuất. Một trong những khâu đơn giản trong dây chuyền sản xuất tự động hóa đó là số lượng sản phẩm làm ra được đếm một cách tự động. Tuy nhiên, trong các doanh nghiệp vừa và nhỏ thì việc hoàn toàn tự động hóa còn chưa được áp dụng trong những khâu đếm sản phẩm mà vẫn sử dụng nhân công. Là sinh viên được học về chuyên ngành điện tử, em muốn khai thác và tìm hiểu ứng dụng của các vi điều khiển trong lĩnh vực tự động hóa.
Em muốn lập trình cho vi điều khiển AT89S52 để điều khiển băng tải và tự động đếm số lượng sản phẩm chạy trên băng tải. Từ đó, em quyết định chọn đề tài: “HỆ THỐNG ĐIỀU KHIỂN BĂNG TẢI VÀ ĐẾM SỐ LƯỢNG SẢN PHẨM BẰNG VI ĐIỀU KHIỂN” làm đề tài khóa luận tốt nghiệp.2 Nguyên lý hoạt động “HỆ THỐNG ĐIỀU KHIỂN BĂNG TẢI VÀ ĐẾM SỐ LƯỢNG SẢN PHẨM BẰNG VI ĐIỀU KHIỂN” bao gồm khối chính là: khối nguồn, khối xử lý trung tâm, khối chấp hành, khối cảm biến và khối hiển thị. Hệ thống hoạt động theo nguyên lý: gồm 2 động cơ DC dùng để kéo băng tải chạy, trên băng tải do động cơ DC 1 điều khiển thì được gắn 2 cảm biến để phát hiện sản phẩm ( một cảm biến để phát hiện sản phẩm lỗi, cảm biến còn lại để phát hiện sản phẩm cần chọn và đếm số lượng) và trên băng tải của động cơ DC 2 điều khiển thì có gắn 1 cảm biến dùng để phát hiện thùng đựng sản phẩm cần chọn và đếm số lượng thùng đó. Hệ thống còn có 2 xy lanh khí nén hành trình 10cm có nhiệm vụ để đẩy thùng đựng sản phẩm vào vị trí nhận sản phẩm và đẩy thùng đựng đủ sản phẩm cần chọn qua băng tải do động cơ DC 2 điều khiển.
Khối hiện thị gồm có 4 LED 7 đoạn trong đó 2 LED 7 đoạn dùng để hiển thị số lượng sản phẩm cần chọn và 2 LED 7 đoạn còn lại dùng để hiển thị số lượng thùng đựng sản phẩm. Lập trình cho vi điều khiển để điều khiển hoạt động của hệ thống như sau: Đầu tiên, bật công tắc khởi động hệ thống và xy lanh 1 đẩy thùng vào vị trí 3 nhận sản phẩm. Sau khi nhấn nút Start thì hệ thống bắt đầu làm việc, băng tải do động cơ DC 1 điều khiển chạy thì các sản phẩm di chuyển trên băng tải đó ( gồm sản phẩm lỗi và sản phẩm cần chọn) nếu cảm biến phát sản phẩm lỗi thì động cơ Servo quay gạt cần gạt để cho sản phẩm lỗi đó ra khỏi băng tải; nếu cảm biến phát hiện được sản phẩm cần chọn và hiển thị số lượng sản phẩm mà do cảm biến phát hiện được lên 2 LED 7 đoạn. Tiếp theo, nếu số lượng sản phẩm cần chọn vào trong thùng đựng đã đủ ( ví dụ: 10 sản phẩm cần chọn trong thùng) thì băng tải do động cơ DC 1 điều khiển dừng lại và xy lanh 2 sẽ đẩy thùng đựng này qua băng tải do động cơ DC 2 điều khiển, tại đây thùng sẽ di chuyển trên băng tải và được một cảm biến phát hiện được thùng đừng sản phẩm rồi hiển thị số lượng này lên 2 LED 7 đoạn còn lại.
Sau khoảng thời gian 1 giây sau khi xy lanh 2 đẩy thùng qua băng tải thì ngay lập tức thì xy lanh 1 sẽ đẩy thùng không vào vị trí nhận sản phẩm và đồng thời động cơ một hoạt động lại và hệ thống tiếp tục đếm sản phẩm.3 Cấu trúc phần cứng AT89S52 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ều khiể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 89S53 128 byte 12 Kbyte nối tiếp 89S55 128 byte 20 Kbyte nối tiếp 1.1 Các chức năng của bộ vi điều khiển AT89S52 4 CPU (Centralprocessing unit) bao gồm : + Thanh ghi tích lũy A + Thanh ghi tích lũy B ,dùng cho phép nhân và phép chia + Đơn vị logic học (ALU : Arithmetic Logical Unit) + Thanh ghi từ trạng thái chương trình (PSw : Program Status Word) + Bốn băng thanh ghi + Con trỏ ngăn xếp Bộ nhớ chương trình (bộ nhớ ROM)gồm 8kbyte Flash Bộ nhớ dữ liệu (bộ nhớ RAM) gồm 256 byte Bộ UART (Universal Ansynchronous Receiver and Tranmistter) có chức năng truyền nhận nối tiếp , AT89S52 có thể giao tiếp với cổng nối tiếp của máy tính thông qua bộ UART 3 bộ Timer/Counter 16 bit thực hiện các chức năng định thời và đếm sự kiện WDM (Watch Dog Timer) : WDM được dùng để phục hồi lại hoạt động của của CPU khi nó bị treo bởi một nguyên nhân nào đó. Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong Bộ lập trình(ghi chương trình lên Flash ROM) cho phép người sử dụng có thể nạp các chương trình cho chíp mà không cần đến bộ nạp chuyên dụng Bộ chia tần số với hệ số chia là 12 4 cổng xuất nhập với 32 chân 1.1: Sơ đồ chân của vi điều khiển AT89S52 5 PORT 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 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 các thiết bị ngoài có kiến trúc Bus như các vi mạch nhớ… PORT 1 (P1.7) Có chức năng xuất nhập theo bit và theo byte.Bên cạnh đó 3 chân P1.7 được dùng để nạp ROM theo chuNn ISP , 2 chân P1.1 được dùng cho bộ Timer 2.7) Là cổng vào/ra còn là byte cao của bus địa chỉ khi sử dụng bộn nhớ ngoài.7) Ngoài chức năng xuất nhập còn có chức năng riêng Bit Tên Chức năng P3.0 RXD Dữ liệu nhận cho port nối tiếp P3.1 TXD Dữ liệu truyền cho port nối tiếp P3.2 INT0 Ngắt bên ngoài 0 P3.3 INT1 Ngắt bên ngoài 1 P3.4 T0 Ngõ vào của Timer/counter 0 P3.5 T1 Ngõ vào của Timer/counter 1 P3.6 WR Xung ghi nhớ dữ liệu ngoài P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài Bảng 1.1 : Chức năng riêng của Port 3 Chân PSEN (Program Store Enable) : Là chân điều khiển đọc chương trình ở bộ nhớ ngoài,nó được phép đọc các byte mã lệnh trên ROM ngoài. PSEN sẽ ở mức thấp trong thời gian đọc mã lệnh.Mã lệnh được đọc từ bộ nhớ ngoài qua bus dữ liệu (port 0) thanh ghi lệnh để được giải mã.khi thực hiện chương trình ROM nội thì PSEN ở mức cao. Chân ALE (Address Latch Enable) : 6 ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao động của vi điều khiển.Tín hiệu ALE được dùng để cho phép vi mạch chốt bên ngoài như 74373,74573 chốt byte địa chỉ thấp ra khỏi bus đa hợp địa chỉ/dữ liệu (Port 0).
Chân EA (External Access) : Tín hiệu cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay ngoài vi điều khiển.Nếu EA ở mức cao (nối với VCC), thì vi điều khiển thi hành chương trình trong ROM nội.Nếu EA ở mức thấp(nối GND)thì vi điều khiển thi hành chương trình bộ nhớ ngoài. Các chân XTAL1, XTAL2 : AT89S52 có một bộ dao động trên chíp , nó thường được nối với bộ dao động thạch anh có tần số lớn nhất là 33MHz,thông thường là 12MHz. Chân Reset (RST) : Ngõ vào RST (chân 9) là ngõ vào xóa chính (master reset) của AT89C51 dùng để thiết lập lại trạng thái ban đầu cho hệ thống hay gọi tắt là reset hệ thống. Chân Vcc, GND : AT89S52 dùng nguồn một chiều có dải điện áp từ 4V đến 5,5V được cấp qua chân 40 và 20.4 Hoạt động định thời của AT89S52 Vi điều khiển AT89S52 có 3 bộ định thời 16 bit trong đó 2 bộ timer 0 và 1 có 4 chế độ hoạt động,timer 2 có 3 chế độ hoạt động.Các bộ định thời dùng để định khoảng thời gian(hẹn giờ),đếm sự kiện xảy ra bên ngoài bộ vi điều khiển hoặc tạo tốc độ baud cho công nối tiếp của vi điều khiển.1 Thanh ghi chế độ định thời TMOD GATE C/T0 M1 M0 GATE0 C/T1 M1 M0 Bit Ký hiệu Chức năng 7 GATE1 Bit điều khiển cổng.Khi set lên 1,bộ định thời chỉ hoạt động trong khi INT1 ở mức cao 7 6 C/T1 Bit chọn chức năng đếm hoặc định thời 1=đếm sự kiện 0=định thời trong 1 khoảng thời gian 5 M1 Bit chọn chế độ thứ nhất 4 M0 Bit chọn chế độ thứ 2 00 chế độ 0 – Timer 13 bit 01 chế độ 1 – Timer 16 bit 10 chế độ 2 – 8 bit tự động nạp lại 11 chế độ 3 – tách Timer 3 GATE0 Bit điều khiển cổng cho bộ định thời 0 2 C/T0 Bit chọn chức năng đếm hoặc định thời cho bộ định thời 0 1 M1 Bit chọn chế độ thứ nhất cho bộ định thời 0 0 M0 Bit chọn chế độ thứ 2 cho bộ định thời 0 Bảng 1.2 : Thanh ghi chọn chế độ định thời 1.2 Thanh ghi điều khiển Timer ( TCON) Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho Timer 0 và Timer 1.
TF1 TR1 TF0 TR0 IT1 IE1 IT0 IE0 Bit Ký hiệu Chức năng TCON Điều khiển bộ định thời TCON.7 Cờ tràn của bộ định thời 1.Cờ này được set bởi TF1 phần cứng khi có tràn,được xóa bởi phần mềm,hoặc bởi phần cứng khi bộ vi xử lý trỏ đến trình phục vụ ngắt TCON.6 Bit điều khiển hoạt đong của bộ định thời 1.Bit TR1 này được set hay xóa bằng phần mềm để điều khiển bộ định thời hoạt động hay ngưng TCON.5 Cờ tràn của bộ định thời 0 TF0 TCON.4 Bit điều khiển hoạt động của bộ định thời TR0 TCON.3 Cờ ngắt bên ngoài 1(kích khởi cạnh).Cờ này IE1 được set bởi phần cứng khi có cạnh âm (cuống) xuất hiện trên chan INT1,được xóa bởi phần 8 mềm,hoặc phần cứng khi CPU trỏ đến trình phục vụ ngắt TCON.