1. Trang chủ
  2. » Luận Văn - Báo Cáo

Điều khiển động cơ bước bằng PIC 16F877A

43 5,1K 39

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 43
Dung lượng 1,61 MB

Nội dung

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN MÔN HỌC NGÀNH: CNKT ĐIỆN TỬ - TRUYỀN THÔNG ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC VỚI 16F877A GVHD: ThS. NGUYỄN NGÔ LÂM SVTH : NGUYỄN TẤN TRIỀU MSSV : 11141319 Khoá : 2011 Tp. Hồ Chí Minh, tháng 6 năm 2014 1 | CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc *** Tp. Hồ Chí Minh, ngày__tháng__ năm 20… NHIỆM VỤ ĐỒ ÁN MÔN HỌC Họ và tên sinh viên: Nguyễn Tấn Triều Lớp: 11141CL1 MSSV: 11141319 ĐT: 0935.062.851 Ngành: CNKT Điện tử - Truyền thông Email: thientamhai@hotmail.com GVHD: Nguyễn Ngô Lâm Ngày nhận đề tài: Ngày nộp đề tài: 1. Tên đề tài: Điều khiển động cơ với PIC 16F877A 2. Các số liệu, tài liệu ban đầu: 3. Nội dung thực hiện đề tài: Lập trình C cho PIC 16F877A điều khiển tốc độ, trạng thái cho động cơ bước. Tốc độ, trạng thái được nhập từ các nút nhấn và tốc độ tức thời được hiển thị trên LCD 16x2. 4. Giới hạn và phạm vi thực hiện: Sử dụng PIC 16F877A là vi điều khiển trung tâm. Dùng chương trình CCS lập trình C và biên dịch chương trình. Xây dựng khối nút nhấn gồm 7 nút để nhập tốc độ và điều khiển trạng thái động cơ bước: 5. Sản phẩm: Mạch điều khiển động cơ bước với PIC 16F877A TRƯỞNG NGÀNH GVHD 2 | CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc ******* Tp. Hồ Chí Minh, ngày__tháng__ năm 20… BẢNG NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ĐAMH… Họ và tên Sinh viên: MSSV: Ngành: Tên đề tài: Họ và tên Giáo viên hướng dẫn ĐAMH: NHẬN XÉT 1. Về nội dung đề tài & khối lượng thực hiện: 2. Ưu điểm: 3. Khuyết điểm: 4. Đề nghị (Cho phép SV được bảo vệ hay không được bảo vệ) 5. Đánh giá loại: 6. Điểm:……………….(Bằng chữ: ) Tp. Hồ Chí Minh, ngày tháng năm 20… Giáo viên hướng dẫn (Ký & ghi rõ họ tên) 3 | CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc ******* Tp. Hồ Chí Minh, ngày__tháng__ năm 20… BẢNG NHẬN XÉT CỦA GIÁO VIÊN CHẤM ĐAMH… Họ và tên Sinh viên: MSSV: Ngành: Tên đề tài: Họ và tên Giáo viên chấm ĐAMH: NHẬN XÉT 7. Về nội dung đề tài & khối lượng thực hiện: 8. Ưu điểm: 9. Khuyết điểm: 10. Đề nghị (Cho phép SV được bảo vệ hay không được bảo vệ) 11. Đánh giá loại: 12. Điểm:……………….(Bằng chữ: ) Tp. Hồ Chí Minh, ngày tháng năm 20… Giáo viên hướng dẫn 4 | (Ký & ghi rõ họ tên) MỤC LỤC NỘI DUNG CHƯƠNG 1: TỔNG QUAN TRANG Giới thiệu 6 Mục tiêu của đồ án 6 Đối tượng và phạm vi nghiên cứu 6 Tóm tắt hướng thực hiện đồ án 6 CHƯƠNG 2: GIỚI THIỆU VI ĐIỀU KHIỂN PIC VÀ LINH KIỆN PIC là gì? 8 Kiến trúc PIC 8 Giới thiệu PIC 16F877A 9 Tổ chức bộ nhớ 13 Các cổng xuất nhập của PIC 16F877A 16 Tỉmer0 18 Timer1 19 Timer2 21 ADC 22 Linh kiện 24 CHƯƠNG 3: GIỚI THIỆU VỀ HỆ THỐNG Sơ đồ khối và chúc năng 28 Phương hướng phát triển 29 Sơ đồ mạch theo khối 30 Tính toán và lưu đồ 35 7 CHƯƠNG 4: CODE CHƯƠNG TRÌNH 36 5 | CHƯƠNG 5: KẾT LUẬN 42 Tài liệu tham khảo 42 CHƯƠNG 1. TỔNG QUAN: 1.1. GIỚI THIỆU: Ngày nay kỹ thuật vi điều khiển đã trở nên quen thuộc trong các ngành kỹ thuật và trong dân dụng. Các vi điều khiển có khả năng xử lý những hoạt động phức tạp mà chỉ cần một chip vi mạch nhỏ, nó đã thay thế các mô hình điều khiển lớn và phức tạp bằng những mạch điện gọn nhẹ, dễ dàng thao tác sử dụng. Vi điều khiển không những góp phần vào kỹ thuật điều khiển mà còn góp phần to lớn vào việc phát triển thông tin. Chính vì các lý do trên, việc tìm hiểu, khảo sát vi điều khiển là điều mà các sinh viên ngành điện mà đặc biệt là chuyên ngành kỹ thuật điện - điện tử phải hết sức quan tâm. Đó chính là một nhu cầu cần thiết với mỗi sinh viên, đề tài này được thực hiện chính là đáp ứng nhu cầu đó. Các bộ điều khiển sử dụng vi điều khiển tuy đơn giản nhưng để vận hành và sử dụng đươc lại là một điều rất phức tạp. Phần công việc xử lý chính vẫn phụ thuộc vào con người, đó chính là chương trình hay phần mềm. Nếu không có sự tham gia của con người thì hệ thống vi điều khiển cũng chỉ là một vật vô tri. Do vậy khi nói đến vi điều khiển cũng giống như máy tính bao gồm 2 phần là phần cứng và phần mềm. Mặc dù vi điều khiển đã đi được những bước dài như vậy nhưng để tiếp cận được với kỹ thuật này không thể là một việc có được trong một sớm một chiều. Để tìm hiểu bộ vi điều khiển một cách khoa học và mang lại hiệu quả cao làm nền tản cho việc xâm nhập vào những hệ thống tối tân hơn. Việc trang bị những kiến thức về vi điều khiển cho sinh viên là hết sức cần thiết. Xuất phát từ thực tiển này em đã đi đến quyết định Thiết kế mạch điều khiển động cơ bước với PIC 16F877A nhằm đáp ứng nhu cầu ham muốn học hỏi của bản thân và hiểu sâu hơn về vi điều khiển PIC. 1.2. MỤC TIÊU CỦA ĐỒ ÁN: Lập trình PIC 16F877A điều khiển động cơ bước. 1.3. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU: Lập trình C cho PIC 16F877A điều khiển tốc độ, trạng thái cho động cơ bước. Tốc độ, trạng thái được nhập từ các nút nhấn và tốc độ tức thời được hiển thị trên LCD 16x2. 1.4. TÓM TẮT HƯỚNG THỰC HIỆN ĐỒ ÁN: - Sử dụng PIC 16F877A là vi điều khiển trung tâm. Dùng chương trình CCS lập trình C và biên dịch chương trình. - Xây dựng khối nút nhấn gồm 7 nút để nhập tốc độ và điều khiển trạng thái động cơ bước: o 3 phím để điều khiển quay hoặc dừng (STST), quay thuận hoặc nghịch ( TN ), chạy 1 bước hoặc nữa bước. o 3 phím để tăng hoặc giảm tốc độ, chuyển trạng thái đặt bước hoặc đếm bước, o 1 phím RESTART để khởi động lại. - Hiển thị tốc độ và trạng thái dùng màn hình LCD 16x2, lập trình ở chế độ 4 bit. CHƯƠNG 2. GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC: 2.1. PIC LÀ GÌ ? PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là “máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều khiển đầu tiên của họ: PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển thêm và từ đó hình thành nên dòng vi điều khiển PIC ngày nay. 2.2. KIẾN TRÚC PIC: Cấu trúc phần cứng của một vi điều khiển được thiết kế theo hai dạng kiến trúc: kiến trúc Von Neuman và kiến trúc Havard. Hình 2.1: Kiến trúc Havard và kiến trúc Von-Neuman Tổ chức phần cứng của PIC được thiết kế theo kiến trúc Havard. Điểm khác biệt giữa kiến trúc Havard và kiến trúc Von-Neuman là cấu trúc bộ nhớ dữ liệu và bộ nhớ chương trình. Đối với kiến trúc Von-Neuman, bộ nhớ dữ liệu và bộ nhớ chương trình nằm chung trong một bộ nhớ, do đó ta có thể tổ chức, cân đối một cách linh hoạt bộ nhớ chương trình và bộ nhớ dữ liệu. Tuy nhiên điều này chỉ có ý nghĩa khi tốc độ xử lí của CPU phải rất cao, vì với cấu trúc đó, trong cùng một thời điểm CPU chỉ có thể tương tác với bộ nhớ dữ liệu hoặc bộ nhớ chương trình. Như vậy có thể nói kiến trúc Von-Neuman không thích hợp với cấu trúc của một vi điều khiển. Đối với kiến trúc Havard, bộ nhớ dữ liệu và bộ nhớ chương trình tách ra thành hai bộ nhớ riêng biệt. Do đó trong cùng một thời điểm CPU có thể tương tác với cả hai bộ nhớ, như vậy tốc độ xử lí của vi điều khiển được cải thiện đáng kể. Một điểm cần chú ý nữa là tập lệnh trong kiến trúc Havard có thể được tối ưu tùy theo yêu cầu kiến trúc của vi điều khiển mà không phụ thuộc vào cấu trúc dữ liệu. Ví dụ, đối với vi điều khiển dòng 16F, độ dài lệnh luôn là 14 bit (trong khi dữ liệu được tổ chức thành từng byte), còn đối với kiến trúc Von-Neuman, độ dài lệnh luôn là bội số của 1 byte (do dữ liệu được tổ chức thành từng byte). Đặc điểm này được minh họa cụ thể trong hình 1.1. 2.3. GIỚI THIỆU PIC 16F877A: PIC 16F877A là loại vi điều khiển 8bit tầm trung do hãng Microchip sản xuất, PIC có cấu trúc Havard và sử dụng tập lệnh kiểu RISC với 35 câu lệnh cơ bản. Và tất cả các câu lệnh trong một chu kì lệnh ngoại trừ các câu lệnh nhánh. 2.3.1. SƠ ĐỒ CHÂN VÀ CHỨC NĂNG CÁC CHÂN CỦA PIC 16F877A: Hình 2.2 Sơ đồ các chân của PIC Chức năng của các chân PIC: • Chân OSC1/CLK1(13): ngõ vào kết nối với dao động thạch anh hoặc ngõ vào nhận xung clock từ bên ngoài. • Chân OSC2/CLK2(14): ngõ ra dao động thạch anh hoặc ngõ ra cấp xung clock. • Chân (1) có 2 chức năng - : ngõ vào reset tích cực ở mức thấp. - Vpp: ngõ vào nhận điện áp lập trình khi lập trình cho PIC. • Chân RA0/AN0(2), RA1/AN1(3), RA2/AN2(3): có 2 chức năng - RA0,1,2: xuất/ nhập số. - AN 0,1,2: ngõ vào tương tự của kênh thứ 0,1,2. • Chân RA2/AN2/VREF-/CVREF+(4): xuất nhập số/ ngõ vào tương tự của kênh thứ 2/ nhõ vào điện áp chuẩn thấp của bộ AD/ ngõ vào điện áp chẩn cao của bộ AD. • Chân RA3/AN3/VREF+(5): xuất nhập số/ ngõ vào tương tự kênh 3/ ngõ vào điện áp chuẩn (cao) của bộ AD. • Chân RA4/TOCK1/C1OUT(6): xuất nhập số/ ngõ vào xung clock bên ngoài cho Timer 0/ ngõ ra bộ so sánh 1. • Chân RA5/AN4/ / C2OUT(7): xuất nhập số/ ngõ vào tương tự kênh 4/ ngõ vào chọn lựa SPI phụ/ ngõ ra bộ so sánh 2. • Chân RB0/INT (33): xuất nhập số/ ngõ vào tín hiệu ngắt ngoài. • Chân RB1(34), RB2(35): xuất nhập số. • Chân RB3/PGM(36): xuất nhập số/ cho phép lập trình điện áp thấp ICSP. • Chân RB4(37), RB5(38): xuất nhập số. • Chân RB6/PGC(39): xuất nhấp số/ mạch gỡ rối và xung clock lập trình ICSP. • Chân RB7/PGD(40): xuất nhập số/ mạch gỡ rối và dữ liệu lập trình ICSP. • Chân RC0/T1OCO/T1CKI(15): xuất nhập số/ ngõ vào bộ giao động Timer1/ ngõ vào xung clock bên ngoài Timer 1. • Chân RC1/T1OSI/CCP2(16) : xuất nhập số/ ngõ vào bộ dao động Timer 1/ ngõ vào Capture2, ngõ ra compare2, ngõ ra PWM2. • Chân RC2/CCP1(17): xuất nhập số/ ngõ vào Capture1 ,ngõ ra compare1, ngõ ra PWM1. • Chân RC3/SCK/SCL(18): xuất nhập số/ ngõ vào xung clock nối tiếp đồng bộ, ngõ ra chế độ SPI./ ngõ vào xung clock nối tiếp đồng bộ, ngõ ra của chế độ I2C. • Chân RC4/SDI/SDA(23): xuất nhập số/ dữ liệu vào SPI/ xuất nhập dữ liệu I2C. • Chân RC5/SDO(24): xuất nhập số/ dữ liệu ra SPI. • Chân RC6/TX/CK(25): xuất nhập số/ truyền bất đồng bộ USART/ xung đồng bộ USART. • Chân RC7/RX/DT(26): xuất nhập số/ nhận bất đồng bộ USART. • Chân RD0-7/PSP0-7(19-30): xuất nhập số/ dữ liệu port song song. [...]... thiết bị ngoại vi 3.3.2 KHỐI ĐỘNG CƠ: - Nhiệm vụ: Điều khiển tốc độ và chiều quay của động cơ bước Hoạt động: IC ULN nhận tín hiệu từ vi điều khiển PIC rồi đưa qua các cổng đảo tín hiệu rồi đưa tới động cơ bước 3.3.3 KHỐI NÚT NHẤN: - Nhiệm vụ: Kích hoạt xung điều khiển động cơ bước và hiện thị lên LCD - Hoạt động: Tín hiệu được đưa tới vi điều khiển PIC, sau khi xử lý vi điều khiển sẽ xuất ra LCD và đưa... từ pin nếu động cơ có cơng suất nhỏ Với các động cơ có cơng suất lớn có thể dùng nguồn điện được chỉnh lưu từ nguồn xoay chiều 3.1.2 Khối động cơ: Động cơ bước Các thơng số của động cơ gồm có: Bước góc, sai số bước góc, mơmen kéo, mơmen hãm, mơmen làm việc.Đối với hệ điều khiển động cơ bước, ta thấy đó là một hệ thống khá đơn giản vì khơng hề có phần tử phản hồi Điều này có được vì động cơ bước trong... xung điện áp lên 1 cuộn dây stato (phần ứng) thì roto (phần cảm) của động cơ sẽ quay đi 1 góc nhất định, góc ấy là 1 bước quay của động cơ Vậy để điều khiển động cơ quay liên tục thì chúng ta chỉ việc cấp xung lần lượt cho các cuộn dây Có 2 cách điều khiển động cơ bước là Điều khiển FULL BƯỚC: Động cơ bước được cấp các xung điều khiển: Cuộn 1A 1000100010001000100010001 Cuộn 1B 0010001000100010001000100... 2B 0001000100010001000100010 Điều khiển NỬA BƯỚC: Động cơ bước được cấp các xung điều khiển: Cuộn 1A 11000001110000011100000111 Cuộn 1B 00011100000111000001110000 Cuộn 2A 01110000011100000111000001 Cuộn 2B 00000111000001110000011100 Điều khiển NHANH Điều khiển CHẬM Điều khiển GIỚI HẠN 3.2.2 PHƯƠNG HƯỚNG: TÍNH TỐN: Tìm hiểu về vi điều khiển PIC 16F877A Tìm hiểu về động cơ bước Tìm hiểu về LCD, nút nhấn,... nhấn, IC đảo – đệm dòng ULN2803 Điều khiển động cơ bước bằng PIC Kết nối các nút nhấn với PIC và lập trình điều khiển động cơ Xuất các tín hiệu ra LCD 3.2.2.1 - THIẾT KẾ: Vẽ mạch ngun lý bằng phần mềm Proteus Viết code chương trình bằng phần mềm Complier for PIC (lập trình và biên dịch chương trình cho vi điều khiển PIC) Mơ phỏng và test chạy thử trên board Vẽ mạch in bằng phần mềm Proteus Hàn linh... đưa dữ liệu tới OC ULN2803 để điều khiển động cơ bước 3.3.4 KHỐI HIỂN THỊ: - Nhiệm vụ: Dùng để hiện thị các trạng thái và bước của động cơ bước - Hoạt động: IC ULN2803 sẽ xuất dữ liệu về vi điều khiển PIC Vi điều khiển sẽ nhận tín hiệu đưa về và xuất ra LCD( Hiển thị) 3.3.5 KHỐI XỬ LÝ: - Nhiệm vụ: Nhận các tín hiệu đưa tới, xử lý và xuất đến các thiết bị ngoại vi để điều khiển 3.3.6 MẠCH NGUN LÝ: -... logic Có nhiệm vụ tạo ra tín hiệu điều khiển động cơ Khối logic này có thể là một nguồn xung, hoặc có thể là một hệ thống mạch điện tử Nó tạo ra các xung điều khiển Động cơ bước có thể điều khiển theo cả bước hoặc theo nửa bước 3.1.5 Khối xử lý: Điều khiển các Khối hiển thị và Khối động cơ khi có xung đến PHƯƠNG HƯỚNG PHÁP TRIỂN: 3.2 3.2.1 TĨM TẮT HOẠT ĐỘNG: Do đấu chung nguồn nên khi đặt mức điện... HOẠT ĐỘNG SS Đ BƯỚC ĐẶT = SỐ BƯỚC ≠ 0 ĐS S CHẾ ĐỘ 1 BƯỚC ĐS S THUẬN SS Đ DỪNG, CẤM NGẮT TIMER TĂNG BƯỚC THEO VỊNG 5-12 THIẾT LẬP CÁC GIÁ TRỊ BAN ĐẦU KHỞI TẠO LCD TĂNG SỐ BƯỚC XUẤT BƯỚC RA PORT GIẢM BƯỚC THEO VỊNG 12-5 GIẢM SỐ BƯỚC XUẤT BƯỚC RA PORT THUẬN SS Đ TĂNG BƯỚC THEO VỊNG 1-4 TĂNG SỐ BƯỚC XUẤT BƯỚC RA PORT GIẢM BƯỚC THEO VỊNG 4-1 GIẢM SỐ BƯỚC XUẤT BƯỚC RA PORT ĐỦ THỜI GIAN 1 BƯỚC SS Đ QT PHÍM... hoạt động khơng gây ra sai số tích lũy, sai số của động cơ do sai số trong khi chế tạo Việc sử dụng động cơ bước tuy đem lai độ chính xác chưa cao nhưng ngày càng được sử dụng phổ biến Vì cơng suất và độ chính xác của bước góc đang ngày càng được cải thiện 3.1.3 Khối hiển thị: Hiển thị dữ liệu từ Khối xử lý đưa tới 3.1.4 Khối nút nhấn: Đây là khối điều khiển logic Có nhiệm vụ tạo ra tín hiệu điều khiển. .. /AN6(9): xuất nhập số/ điều khiển ghi port song song/ ngõ vào tương tự kênh thứ 6 • Chân RE2/ /AN7(10): xuất nhấp số/ Chân chọn lụa điều khiển port song song/ ngõ vào tương tự kênh thứ 7 Chân VDD(11, 32) và VSS(12, 31): là các chân nguồn của PIC • /AN5(8): xuất nhập số/ điều khiển port song song/ ngõ vào 2.3.2 SƠ ĐỒ KHỐI PIC 16F877A : Hình 2.3 Sơ đồ khối của PIC Sơ đồ khối của PIC 16F877A gồm các khối: . mạch điều khiển động cơ bước với PIC 16F877A nhằm đáp ứng nhu cầu ham muốn học hỏi của bản thân và hiểu sâu hơn về vi điều khiển PIC. 1.2. MỤC TIÊU CỦA ĐỒ ÁN: Lập trình PIC 16F877A điều khiển động. đề tài: Điều khiển động cơ với PIC 16F877A 2. Các số liệu, tài liệu ban đầu: 3. Nội dung thực hiện đề tài: Lập trình C cho PIC 16F877A điều khiển tốc độ, trạng thái cho động cơ bước. Tốc. đồ án 6 CHƯƠNG 2: GIỚI THIỆU VI ĐIỀU KHIỂN PIC VÀ LINH KIỆN PIC là gì? 8 Kiến trúc PIC 8 Giới thiệu PIC 16F877A 9 Tổ chức bộ nhớ 13 Các cổng xuất nhập của PIC 16F877A 16 Tỉmer0 18 Timer1 19 Timer2

Ngày đăng: 31/07/2014, 20:33

w