Sử dụng Dspic để đo tốc độ động cơ có số xung là 100 xung, mô phỏng trên phần mềm Proteus

66 679 0
Sử dụng Dspic để đo tốc độ động cơ có số xung là 100 xung, mô phỏng trên phần mềm Proteus

Đ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

Hiện nay sự tiến bộ khoa học kĩ thuật trên thế giới diễn ra nhanh chóng, với sự ra đời của hàng loạt những sản phẩm mới ứng dụng những tiến bộ ở những nước phát triển. Đặc biệt trong những năm gần đây kĩ thuật điều khiển phát triển mạnh mẽ, có nhiêug công nghệ điều khiển mới được ra đời để thay thế cho những công nghệ truyền thống.Để bắt kịp với tiến bộ khoa học kĩ thuật trên thế giới cũng như đáp ứng yêu cầu CNH_HĐH đất nước thì ngành công nghiệp Việt Nam đang thay đổi nhanh chóng, công nghệ và thiết bị hiện đại đang dần dần được thay thế các công nghệ lạc hậu và thiết bị cũ. Các thiết bị công nghệ tiên tiến với hệ thống điều khiển lập trình PLC, Vi xử lý, điện khí nén, điện tử đã và đang được ứng dụng rộng rãi trong công nghiệp như các dây truyền sản xuất, chế biến, máy điều khiển theo chương trình CNC, các hệ thống đèn giao thông, các hệ thống báo động…vv. Trong các trường đại học, cao đẳng và các trường trung học đã và đang đưa các thiết bị hiện đại có khả năng lập trình được vào giảng dạy. Một trong những loại thiết bị có ứng dụng mạnh mẽ và đảm bảo có độ tin cậy cao là hệ thống vi xử lýVới yêu cầu “Sử dụng Dspic để đo tốc độ động cơ có số xung là 100 xung, mô phỏng trên phần mềm Proteus”. Em đã nhận thấy được những ưu điểm của hệ thống điều khiển có hiệu quả cao này. Sau quá trình học tập rèn luyện và nghiên cứu em đã tích luỹ được vốn kiến thức để thực hiện tiểu luận của mình.

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT TIỂU LUẬN XỬ LÝ TÍN HIỆU TRONG CÔNG NGHIỆP Giảng viên hướng dẫn : PGS.TS NGUYỄN ĐỨC KHOÁT Học viên : NGUYỄN HỮU CƯỜNG Lớp : Tự động hóa K26 Hà Nội tháng 5 – 2014 Lời nói đầu Hiện nay sự tiến bộ khoa học kĩ thuật trên thế giới diễn ra nhanh chóng, với sự ra đời của hàng loạt những sản phẩm mới ứng dụng những tiến bộ ở những nước phát triển. Đặc biệt trong những năm gần đây kĩ thuật điều khiển phát triển mạnh mẽ, có nhiêug công nghệ điều khiển mới được ra đời để thay thế cho những công nghệ truyền thống. Để bắt kịp với tiến bộ khoa học kĩ thuật trên thế giới cũng như đáp ứng yêu cầu CNH_HĐH đất nước thì ngành công nghiệp Việt Nam đang thay đổi nhanh chóng, công nghệ và thiết bị hiện đại đang dần dần được thay thế các công nghệ lạc hậu và thiết bị cũ. Các thiết bị công nghệ tiên tiến với hệ thống điều khiển lập trình PLC, Vi xử lý, điện khí nén, điện tử đã và đang được ứng dụng rộng rãi trong công nghiệp như các dây truyền sản xuất, chế biến, máy điều khiển theo chương trình CNC, các hệ thống đèn giao thông, các hệ thống báo động…vv. Trong các trường đại học, cao đẳng và các trường trung học đã và đang đưa các thiết bị hiện đại có khả năng lập trình được vào giảng dạy. Một trong những loại thiết bị có ứng dụng mạnh mẽ và đảm bảo có độ tin cậy cao là hệ thống vi xử lý Với yêu cầu “Sử dụng Dspic để đo tốc độ động cơ có số xung là 100 xung, mô phỏng trên phần mềm Proteus”. Em đã nhận thấy được những ưu điểm của hệ thống điều khiển có hiệu quả cao này. Sau quá trình học tập rèn luyện và nghiên cứu em đã tích luỹ được vốn kiến thức để thực hiện tiểu luận của mình. Cùng với sự hướng dẫn tận tình của thầy giáo Nguyễn Đức Khoát, đến nay em đã hoàn thành đề tài này với nội dung sau: 1. Tìm hiểu được ngôn ngữ lập trình C cho vi điều khiển 2. Tìm hiểu nghiên cứu bộ vi điều 8 bit PIC16F877 3. Thiết kế mô hình mô phỏng dựa trên phần mềm Proteus 4. Chạy mô phỏng và hoàn thành thuyết minh. Do thời gian nghiên cứu có hạn nên không thể tránh khỏi nhưng sai sót, em rất mong nhận đựơc sự chỉ dẫn của thầy hướng dẫn,và sự góp ý các bạn học viên để giúp chuyên đề của em hoàn thiện hơn, đáp ứng đầy đủ những mục tiêu đã đặt ra. Em xin chân thành cảm ơn! Vĩnh Phúc, ngày 8 tháng 5 năm 2014 HỌC VIÊN Nguyễn Hữu Cường CHƯƠNG I. TÌM HIỂU NGÔN NGỮ LẬP TRÌNH CHO VI ĐIỀU KHIỂN I. Ngôn ngữ C cho vi điều khiển 1.1. Giới thiệu ngôn ngữ C Trong kỹ thuật lập trình vi điều khiển nói chung, ngôn ngữ lập trình được sử dụng thường chia làm 2 loại: Ngôn ngữ bậc thấp và Ngôn ngữ bậc cao. Ngôn ngữ bậc cao là các ngôn ngữ gần vơi ngôn ngữ con người hơn, do đó việc lập trình bằng các ngôn ngữ này trở nên dễ dàng và đơn giản hơn. Có thể kể đến một số ngôn ngữ lập trình bậc cao như C, Basic, Pascal… trong dó C là ngôn ngữ thông dụng hơn cả trong kỹ thuật vi điều khiển. Về bản chất, sử dụng các ngôn ngữ này thay cho ngôn ngữ bậc thấp là giảm tải cho lập trình viên trong việc nghiên cứu các tập lệnh và xây dựng các cấu trúc giải thuật. Chương trình viết bằng ngôn ngữ bậc cao cũng sẽ được một phần mềm trên máy tính gọi là trình biên dịch (Compiler) chuyển sang dạng hợp ngữ trước khi chuyển sang mã máy. Khi sử dụng ngôn ngữ C người lập trình không cần hiểu sâu sắc về cấu trúc của bộ vi điều khiển. Có nghĩa là với một người chưa quen với một vi điểu khiển cho trước sẽ xây dựng được chương trình một cách nhanh chóng hơn, do không phải mất thời gian tìm hiểu kiến trúc của vi điều khiển. 1.2. Ngôn ngữ C 1.2.1. Kiểu dữ liệu a. Kiểu dữ liệu trong C Kiểu Số Byte Khoảng giá trị Char 1 -128 – +127 Unsigned char 1 0 – 255 Int 2 -32768 - +32767 Unsigned int 2 0 - 65535 Long 4 -2147483648 - +2147483647 Unsigned long 4 0 – 4294697295 Float 4 b. Kiểu dữ liệu trong Keil C Kiểu Số bit Bit 1 Sbit 1 Sfr 8 Sfr16 16 c. Mảng Mảng là một tập hợp nhiều phần tử cùng một kiểu giá trị và chung một tên. Các phần tử của mảng phân biệt với nhau bởi chỉ số hay số thứ tự của phần tử trong dãy phẩn tử. Mỗi phần tử có vai trò như một biến và lưu trữ được một giá trị độc lập với các phần tử khác của mảng. Mảng có thể là mảng một chiều hoặc mảng nhiều chiều Khai báo: - Cú pháp: Tên_kiểu Vùng_nhớ Tên_mảng[số_phần_tử_mảng]; d. Con trỏ Con trỏ là một biến dùng để chứa địa chỉ mà không chứa giá trị, hay giá trị của con trỏ chính là địa chỉ khoảng nhớ mà nó trỏ tới. Loại con trỏ Kích thước Con trỏ tổng quát 3 byte Con trỏ XDATA 2 byte Con trỏ CODE 2 byte Con trỏ DATA 1 byte Con trỏ IDATA 1 byte Con trỏ PDATA 1 byte 1.2.2. Phép toán Phép gán kí hiệu: “=”. - Cú pháp: Biến_1 = Biến_2; Trong đó Biến_2 có thể là giá trị xác định cũng có thể là biến. a. Phép toán số học Phép toán ý nghĩa Ví dụ + Phép cộng X=a+b - Phép trừ X=a-b * Phép nhân X=a*b / Phép chia lấy phần nguyên X=a/b: (a=9, b=2 → X=4) % Phép chia lấy phần dư a%b : (a=9, b=2 → X=1) b. Phép toán Logic AND: && OR: || NOT: ! c. Các phép toán so sánh: d. Phép toán thao tác Bit Phép toán Ý nghĩa Ví dụ & Phép và (AND) Bit_1 & Bit_2 | Phép hoặc (OR) Bit_1 | Bit_2 ! Phép đảo (NOT) !Bit_1 ^ Phép hoặc loại trừ (XOR) Bit_1 ^ Bit_2 << Dịch trái a<<3 >> Dịch phải a>>4 ~ Lấy bù theo bit ~a 1.2.3. Cấu trúc chương trình C a. Cấu trúc chương trình * Cấu trúc 1. Khai báo chỉ thị tiền xử lý 2. Khai báo các biến toàn cục 3. Khai báo nguyên mẫu các hàm 4. Xây dựng các hàm và chương trình chính b. Chỉ thị tiền xử lý + Phép thay thế #define + Phép chèn tệp #include + Phép lựa chọn biên dịch #ifdef * Chỉ thị #define - Cú pháp: #define Tên_thay_thế dãy_kí_tự * Chỉ thị #include - Cú pháp: Phép toán ý nghĩa Ví dụ > So sánh lớn hơn a>b : 4>5 các giá trị 0 >= So sánh lớn hơn hoặc bằng a>=b : 6>=2 các giá trị 1 < So sánh nhỏ hơn a<b : 6<7 các giá trị 1 <= So sánh nhỏ hơn hoặc bằng a<=b : 8<=5 các giá trị 0 == So sánh bằng nhau a==b : 6==6 các giá trị 1 != So sánh khác nhau a!=b : 9!=9 các giá trị 0 Cách 1: #include<tên_tệp> Cách 2: #include“tên_tệp” * Chỉ thị #ifdef - Cú pháp: Cách 1: #ifdef ten_macro Đoạn chương trình #endif Cách 2: #ifdef ten_macro Đoạn chương trình 1 #else Đoạn chương trình 2 #endif * Chỉ thị #ifndef - Cú pháp: Cách 1: #ifndef ten_macro Đoạn chương trình #endif Cách 2: #ifndef ten_macro Đoạn chương trình 1 #else Đoạn chương trình 2 #endif 1.2.4. Các lệnh cơ bản trong C + Câu lệnh rẽ nhánh if: - Cấu trúc: if(dieu_kien) { // Đoạn chương trình } - Cấu trúc: if(dieu_kien) { // Đoạn chương trình 1 } else { // Đoạn chương trình 2 } + Câu lệnh lựa chọn: Cấu trúc: switch(bien) { case gia_tri_1: {//các câu lệnh break;} …………………………………… case gia_tri_n: {//các câu lệnh break;} } + Vòng lặp xác định: Cấu trúc: for(n=m;n<l;n++) { // các câu lệnh xử lí } + Vòng lặp không xác định while: Cấu trúc: while(dieu_kien) { // các câu lệnh } + Vòng lặp không xác định do while: Cấu trúc: do { // các câu lệnh } while(dieu_kien); 1.3. Trình biên dịch Keil C (compiler) 1.3.1. Khởi tạo cho Project. Để tạo 1 project mới chọn project → New project như sau: Đánh tên và chuyển đến thư mục bạn lưu project.bạn nên tạo mỗi một thư mục cho 1 project. rồi chọn save. Hộp thoại sau hiện ra: Trong này có 1 loạt các hãng điện tử sản xuất 8051. bạn lập trình cho con nào thì chọn con đấy, kích chuột vào dấu + để mở rộng các con IC của các hang. ở đây ta lập trình cho AT89C51 của hang ATMEL nên ta chọn như trên. Khi chọn chip thì ngay lập tức 1 bảng hiện ra 1 số tính năng của chip các bạn có thể nhìn thấy: 8051 based fully static 24Mhz …. nhập OK. Để tạo một file code các bạn chọ file → new hoặc ấn ctrl+N. như sau: Cửa sổ text1 hiện ra. Tiếp theo bạn chọn File → save As hoặc Ctrl+S, để lưu File mặc dù chưa có gì như sau: Được cửa sổ sau: Các bạn nhập tên vào text box file name.chú ý tên gì cũng được nhưng không được thiếu đuôi mở rộng .C, và nhấn SAVE. Trong ô bên trái màn hình, cửa sổ PROJECT WORKSPACE, các bạn mở rộng cái target 1 ra như sau: [...]... tiếp + Nguồn khởi động lại (POR) + Bộ tạo xung thời gian (PWRT) và bộ tạo dao động (OST) + Bộ đếm xung thời gian (WDT) với nguồn dao động trên chíp (nguồn dao động RC ) hoạt động đáng tin cậy + Có mã chương trình bảo vệ + Phương thức cất giữ SLEEP + Có bảng lựa chọn dao động + Công nghệ CMOS FLASH /EEPROM nguồn mức thấp ,tốc độ cao + Thiết kế hoàn toàn tĩnh + Mạch chương trình nối tiếp có 2 chân + Xử... trong khi ở chế độ Sleep qua xung đồng hồ được cung cấp bên ngoài + Timer 2: 8 bít của bộ định thời, bộ đếm với 8 bít của hệ số tỷ lệ trước, hệ số tỷ lệ sau + Có 2 chế độ bắt giữ, so sánh, điều chế độ rộng xung( PWM) + Chế độ bắt giữ với 16 bít, với tốc độ 12.5 ns, chế độ so sánh với 16 bít, tốc độ giải quyết cực đại là 200 ns, chế độ điều chế độ rộng xung với 10 bít + Bộ chuyển đổi tín hiệu số sang tương... EECON2 không phải là thanh ghi vật lý Khi đọc thanh ghi EECON2 sẽ đọc toàn bộ là 0 Thanh ghi EECON2 đựơc sử dụng dành riêng cho việc ghi một cách trình tự vào bộ nhớ Bit điều khiển EEPGD xác định nếu việc nhập dữ liệu sẽ là nhập một chương trình hoặc nhập một bộ nhớ dữ liệu Khi xoá, một số hoạt động tiếp theo sẽ hoạt động trên bộ nhớ dữ liệu Khi set, một số hoạt động tiếp theo sẽ hoạt động trên bộ nhớ chương... hệ thống sử dụng một bộ vi xử lý công dụng chung chẳng hạn như Pentium hay 68040 sẽ phải bổ xung thêm RAM, ROM, các cổng vào ra và các bộ định thời ngoài để làm cho chúng hoạt động được Mặc dù việc bổ xung các RAM, ROM, các cổng vào ra sẽ làm cho hệ thống cồng kềnh lên nhưng nó lại có ưu điểm khi sử dụng các bộ vi xử lý này là rất linh hoạt Chẳng hạn như người thiết kế có thể quyết định về số lượng... những đặc tính trên thì bộ vi điều khiển PIC16F877 còn có một đặc điểm hơn hẳn so với 8051 là có 10 bít chuyển đổi A/D trên chíp điều này sẽ giúp chúng ta không phải mất một bộ chuyển đổi (sẽ dẫn đến kết nối dây trở nên phức tạp) Một đặc điểm nữa là bộ vi điều khiển PIC16F877 có bộ tạo dao động chủ trên chíp điều này sẽ tránh được những sai số không cần thiết trong việc tạo xung dao động, vi điều khiển... 16 bit Có khả năng quản lý được 64 KB bộ nhớ mã chương trình ngoài (ROM ngoài) Có khả năng quản lý được 64 KB bộ nhớ dữ liệu ngoài (RAM ngoài) Có bộ xử lý logic riêng (thao tác trên các bit) Có thể thao tác trực tiếp được 210 bit (các bit này đã được địa chỉ hoá) Có 5 ngắt Dùng nguồn dao động ngoài Dùng điện áp 5V để cho chip hoạt động *Cổng P0: Có dạng cực máng hở và có 8 chân (8 bit) là cổng... ngắt hoạt nếu ngăt cho phép 2.4 Cổng vào ra Một số chân của các cổng vào/ra được tích hợp với một số hàm có thể thay đổi để phù hợp với những thiết bị ngoại vi Nhìn chung khi thíêt bị ngoại vi hoạt động, các chân có thể không sử dụng với mục đích làm chân vào ra 2.4.1 Cổng A và thanh ghi TRISA Cổng A là cổng hai chiều với độ rộng đường truyền là 6 bit Để điều khiển việc truy xuất dữ liệu người ta dùng... điều khiển đang có ứng dụng ngày càng rộng rãi trong các lĩnh vực kỹ thuật và đời sống xã hội, đặc biệt là trong kỹ thuật tự động hoá và điều khiển từ xa Giờ đây với nhu cầu chuyên dụng hoá, tối ưu (thời gian, không gian, giá thành), bảo mật, tính chủ động trong công việc ngày càng đòi hỏi khắt khe Việc đưa ra công nghệ mới trong lĩnh vực chế tạo mạch điện tử để đáp ứng những yêu cầu trên là hoàn toàn... trình Các bit điều khiển RD và WR kích hoạt các hoạt động đọc và ghi theo thứ tự Trong phần mềm những bit này không thể bị xoá, chỉ được set Chúng bị xoá trong phần cứng khi mà các hoạt động đọc hoặc ghi hoàn thành Việc không thể xoá bit WR trong phần mềm ngăn ngừa sự kết thúc bất ngờ hoặc kết thúc sớm của một hoạt động ghi 2.3.6 Đọc bộ nhớ dữ liệu EEPROM Để đọc một vị trí bộ nhớ dữ liệu, ta phải ghi địa... đưa ra để cân nhắc là: Tốc độ: Tốc độ lớn nhất mà bộ vi điều khiển hỗ trợ là bao nhiêu Kiểu đóng vỏ: Đó là kiểu 40 chân DIP hay QFP hay là kiểu đóng vỏ khác Đây là điều quan trọng đối với yêu cầu về không gian, kiểu lắp ráp và tạo mẫu thử cho sản phẩm cuối cùng Công suất tiêu thụ: Điều này đặc biệt khắt khe đối với những sản phẩm dùng pin, ắc quy Dung lượng bộ nhớ RAM và ROM trên chíp Số chân . đại có khả năng lập trình được vào giảng dạy. Một trong những loại thiết bị có ứng dụng mạnh mẽ và đảm bảo có độ tin cậy cao là hệ thống vi xử lý Với yêu cầu Sử dụng Dspic để đo tốc độ động cơ. Sử dụng Dspic để đo tốc độ động cơ có số xung là 100 xung, mô phỏng trên phần mềm Proteus . Em đã nhận thấy được những ưu điểm của hệ thống điều khiển có hiệu quả cao này. Sau quá trình học. bộ vi điều 8 bit PIC16F877 3. Thiết kế mô hình mô phỏng dựa trên phần mềm Proteus 4. Chạy mô phỏng và hoàn thành thuyết minh. Do thời gian nghiên cứu có hạn nên không thể tránh khỏi nhưng sai

Ngày đăng: 10/05/2015, 08:39

Từ khóa liên quan

Mục lục

  • BỘ GIÁO DỤC VÀ ĐÀO TẠO

  • TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT

Tài liệu cùng người dùng

Tài liệu liên quan