-
Notifications
You must be signed in to change notification settings - Fork 0
thuantn210823/DC-Motor-Speed-Control-System
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
ĐỒ ÁN MÔN HỌC THIẾT KẾ HỆ THỐNG ĐO VÀ ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ MỘT CHIỀU DỰA TRÊN VI ĐIỀU KHIỂN MCS-51 Project này được sử dụng để đo và điều khiển tốc độ động cơ một chiều sử dụng VĐK AT89S52. - Đo tốc độ và hiển thị lên LCD/PC. - Đặt tốc độ thông qua Hex-keyboard. - Điều khiển tốc độ theo thuật toán PID. - Vẽ đường đặc tính PID. 1. Chuẩn bị Trước khi bắt đầu, cần giải nén file đính kèm. Cần có: - Phần mềm Keil u5, hoặc trình biên dịch C/Assembly tương đương. - Phần mềm Visual Studio 2019 trở lên. - Phần mềm mô phỏng Proteus, hoặc các phần mềm mô phỏng tương đương, hỗ trợ mô phỏng họ vi điều khiển MCS-51. - Phần mềm Virtual Serial Port Driver tạo cổng COM ảo. 2. Sử dụng Sau khi giải nén file gốc, sẽ thu được 2 folder. Folder đầu tiên DC_Motor: Chứa code (*.C, *.asm), Keil Project file (*.uvproj), Proteus Project File (*.pdsproj). Foldef thứ hai C# GUI: Chứa CS file (*.cs), Visual Studio Solution file (Uart_Com_0.sln) và các file liên quan. 2.1. Sử dụng Code C/Assembly Trong folder DC_Motor sẽ có các folders nhỏ chứa các file khác nhau phục vụ cho Project chính. Gồm các folders: - Lib: Chứa các thư viện cơ bản (các file .c) đã được lập trình module sẵn, gồm: Delay (Delay.h, Delay.c), PID (pid.h, pid.c) - DC Motor: Gồm 3 folders con: Listings, Objects (chứa .hex files), Project Backups và các file nhỏ (.c, .asm, .pdsproj, .uvproj) liên quan. Nên tham khảo trước mô phỏng Protues của nhóm (để xem các kết nối, ngoại vi liên quan đến Project) trước khi xem qua code và sử dụng code cho các mục đích khác nhau. Để truy cập vào Code, nên mở Keil Project File (.uvproj), trong project file này sẽ chứa sẵn các file nhỏ mà nhóm sử dụng trong dự án (Source Group sẽ có: Delay.c , pid.c, pid_test.c (main file), uart_s.asm, lcd_4_.asm), nếu thiếu cần add lại đủ các file trên. Trong các files trên: - Delay.c: Chứa chương trình con Delay_ms: Delay chương trình với thời gian (cỡ ms) cho trước. - pid.c: Chứa hai chương trình con PIDController_Init: Khởi tạo PID và PIDController_Update: Cập nhật PID - pid_test.c: Chương trình chính, có các khai báo chân cho ma trận phím (Ci, Ri) và chân PWM. Gồm các chương trình con liên quan: Quét phím, Băm xung,... (đã được chú thích/hướng dẫn cụ thể trong file) - uart_s.asm: File asm sử dụng để mixing C và Assembly. Có các khai báo thanh ghi cho Timer 2. Gồm 3 Subroutine: _Uart_Char_Out, _Uart_Write, Uart_Init ứng với 3 chương trình con ở C: Uart_Char_Out: gửi đi 1 string thông qua cổng truyền tin nối tiếp, Uart_Write: gửi đi 1 kí tự thông qua cổng truyền tin nối tiếp, Uart_Init: khởi tạo Uart. - lcd_4_.asm: File asm sử dụng để mixing C và Assembly. Có các khai báo kết nối LCD cho chế độ giao tiếp 4 bit. Gồm các subroutine ứng với các hàm chính: Lcd_Init: Khởi tạo LCD chế độ giao tiếp 4 bit 2 dòng, Lcd_Chr_Nibbles: Gửi 1 kí tự lên LCD, Lcd_Cmd_Nibbles: Gửi một lệnh cho LCD. Các subroutine khác có thể tham khảo thêm trong file. 2.2. Sử dụng C# GUI Bước 1: Tải phần mềm Virtual Serial Port Driver, tạo một cổng COM ảo bằng cách chọn Pair -> Create. Trong phần mềm Proteus, nháy đúp chuột vào COMPIM, điều chỉnh các thông số như sau. Physical Port: COM1. Physical Baud Rate = Virtual Baud Rate = 1200. Bước 2: Mở file Uart_Com_0.sln. Nhấn Start để khởi tạo chương trình. Chọn cổng COM2, Baud rate 1200, nhấn Connect để cho phép máy tình nhận dữ liệu từ vi điều khiển được mô phỏng trên Proteus. Bước 3: Khởi động phần mềm mô phỏng Proteus. Nhấn phím "A" để cho phép giao tiếp UART, phím D để ngắt kết nối. Bước 4: Nhấn phím "*" để nhập tốc độ đặt. Lưu ý: Nếu có bất kì lỗi nào xảy ra trong quá trình chạy phần mềm, vui lòng nhấn "Stop Debugging" ở phần mềm Visual Studio 2022 rồi lặp lại các bước trên. Demo: Dưới đây là toàn bộ demo của nhóm: https://drive.google.com/drive/folders/1Yx-nY74pmrB8pfKO0kleOfV1jBbyLetb
About
Developed a DC motor speed control system using the MCS-51 microcontroller family
Topics
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published