1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỒ ÁN VI XỬ LÝ VÀ VI ĐIỀU KHIỂN: THIẾT KẾ BỘ ĐIỀU KHIỂN TỐC ĐỘ CỦA ĐỘNG CƠ MỘT CHIỀU SỬ DỤNG HỢP NGỮ(Assembly)

39 700 24

Đ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 39
Dung lượng 1,85 MB
File đính kèm VĐK.rar (2 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sơ đồ khối tổng quát của hệ thống: Hình1.1 Sơ đồ khối tổng quát của hệ thống 1.2 Nguyên lý hoạt động của hệ thống Đ án vi x lý và vi đi u khi n ồ án vi xử lý và vi điều khiển ử lý và v

Trang 1

Đồ án vi xử lý và vi điều khiển CHƯƠNG 1: NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG

1.1 Mục tiêu và sơ đồ khối của hệ thống dùng vi điều khiển PIC

a Mục tiêu:

Hiểu được cấu trúc và chức năng của vi điều khiển, cụ thể ở đây là

PIC16f877 Ứng dụng pic16f877 vào thiết kế và xây dựng mô hình điều khiển tốc độ động cơ DC Nắm bắt được ưu điểm và nhược điểm của hệ thống sử dụng PIC so với các hệ thống khác

Cải thiện, nâng cao kỹ năng sử dụng các phần mềm, kỹ năng viết chương trình và chế tạo mạch

b Sơ đồ khối tổng quát của hệ thống:

Hình1.1 Sơ đồ khối tổng quát của hệ thống

1.2 Nguyên lý hoạt động của hệ thống

Đ án vi x lý và vi đi u khi n ồ án vi xử lý và vi điều khiển ử lý và vi điều khiển ều khiển ển Trang 1

Khối nguồn nuôi Nút điều chỉnh

KHỐI ĐIỀU KHIỂN TRUNG TÂM (VI ĐIỀU KHIỂN PIC16F877A)

HIỂN THỊ TỐC ĐỘ

Động cơ DC

Encoder

Trang 2

Khối nguồn nuôi có nhiệm vụ cấp nguồn cho hệ thống Khối điều khiển trung tâm dùng vi điều khiển PIC16F877A nhận tín hiệu từ các nút bấm sau đó xử lý tín hiệu và xuất ra xung để điều khiển PWM nhằm tăng hay giảm tốc độ động cơ

Thay đổi độ rộng xung PWM để thay đổi điện áp trung bình đặt lên động

cơ DC Độ rộng xung càng lớn, điện áp đặt lên động cơ càng lớn, tốc độ động cơ càng nhanh, ngược lại, độ rộng xung càng bé động cơ chạy càng chậm

Lúc này Encoder có nhiệm vụ đọc tốc độ của động cơ rồi hồi tiếp lại cho khối điều khiển Khối điều khiển xử lý tín hiệu và hiển thị tốc độ trên màn hình LCD

Trang 3

CHƯƠNG 2: TÍNH TOÁN LINH KIỆN SỬ DỤNG TRONG HỆ THỐNG

2.1 Giới thiệu các linh kiện trong hệ thống

2.1.1 Tổng quan về họ vi điều khiển pic

PIC là một họ vi điều khiển RISC được sản xuất bởi công tyMicrochip Technology Dòng PIC đầu tiên là PIC1650 được phát triểnbởi Microelectronics Division thuộcGeneral_Instrument PIC bắt nguồn

từ chữ viết tắt của “Programmable Intelligent Computer” (Máy tính khảtrình thông minh) là một sản phẩm của hãng General Instrumentsđặt chodòng sản phẩm đầu tiên của họ là PIC1650 Lúc này, PIC 1650 đượcdùng để giaotiếp với các thiết bị ngoại vi cho máy chủ 16 bit CP1600, vìvậy, người ta cũng gọi PIC với tên “Peripheral Interface Controller” (Bộđiều khiển giao tiếp ngoại vi) CP1600 là một CPU tốt, nhưng lại kém vềcác hoạt động xuất nhập, và vì vậyPIC 8-bit được phát triểnvào khoảngnăm 1975để hỗ trợ hoạt động xuất nhập cho CP1600 PIC sử dụngmicrocode đơn giản đặt trong ROM, và mặc dù, cụm từ RISC chưa được

sử dụng thời bấygiờ, nhưng PIC thực sự là một vi điều khiển với kiến trúcRISC, chạy một lệnh một chu kỳmáy (4 chu kỳ của bộ dao động) Năm

1985 General Instruments bán bộ phận vi điện tử của họ, và chủ sở hữumới hủy bỏ hầu hết các dự án – lúc đó quá lỗi thời Tuy nhiên, PICđược

bổ sung EPROM để tạo thành 1 bộ điều khiển vào ra khả trình Ngày nayrất nhiềudòng PIC được xuất xưởng với hàng loạt các module ngoại vitích hợp sẵn (như USART,PWM, ADC…), với bộ nhớ chương trình từ

512 Word đến 32K Word

a) Một số đặc tính vi điều khiển PIC

Hiện nay có khá nhiều dòng PIC và có rất nhiều khác biệt về phần cứng,nhưng chúng ta có thể điểm qua một vài nét như sau :

 8/16 bit CPU, xây dựng theo kiến truc Harvard có sửa đổi Flash và

Đ án vi x lý và vi đi u khi n ồ án vi xử lý và vi điều khiển ử lý và vi điều khiển ều khiển ển Trang 3

Trang 4

ROM có thể tuỳ chọn từ 256 byte đến 256 Kbyte

 Các cổng Xuất/ Nhập (I/ O) (mức logic thường từ 0V đến 5.5V,ứng với logic 0 và logic 1)

 8/16 bit Timer

 Các chuẩn giao tiếp nối tiếp đồng bộ/ khung đồng bộ USART

 Bộ chuyển đổi ADC Analog-to-digital converters, 10/12 bit

 Bộ so sánh điện áp (Voltage Comparator)

 Các module Capture/ Compare/ PWM

 LCD 4

 MSSP Peripheral dựng cho các giao tiếp I2C, SPI

 Bộ nhớ nội EPROM – có thể ghi/ xoá lớn tới 1 triệu lần

 Module Điều khiển động cơ, đọc encoder

 Hỗ trợ giao tiếp USB

b) Những đặc tính ngoại vi

 Timer0 : 8- bit định thời/ đếm với 8- bit prescaler

 Timer1 : 16- bit định thời/ đếm với prescaler, có thể được tăng lên trong suốt chế độ Sleep qua thạch anh/ xung clock bên ngoài

 Timer2 : 8- bit định thời/đếm với 8- bit, prescaler và postscaler

 Hai module Capture, Compare, PWM:

 Capture có độ rộng 16 bit, độ phân giải 12.5ns

 Compare có độ rộng 16 bit, độ phân giải 200ns

 Độ phân giải lớn nhất của PWM là 10bit.- Có 13 ngõ I/O cóthể điều khiển trực tiếp

 Dòng vào và dòng ra lớn :

 25mA dòng vào cho mỗi chân

 20mA dòng ra cho mỗi chân

c) Đặc điểm về tương tự

 10 bit, với 8 kênh của bộ chuyển đổi tương tự sang số (A/D)

Trang 5

 Brown – out Reset (BOR).

 Module so sánh về tương tự

 Hai bộ so sánh tương tự

 Module điện áp chuẩn VREF có thể lập trình trên PIC

 Có thể lập trình ngõ ra vào đến từ những ngõ vào của PIC và trên điện áp bên trong

 Những ngõ ra của bộ so sánh có thể sử dụng cho bên ngoài

d) Các đặc điểm đặc biệt

 Có thể ghi/ xoá 100.000 lần với kiểu bộ nhớ chương trình EnhancedFlash

 ghi/ xoá với kiểu bộ nhớ EPROM

 EPROM có thể lưu trữ dữ liệu hơn 40 năm

 Có thể tự lập trình lại dưới sự điều khiển của phần mềm

 Mạch lập trình nối tiếp qua 2 chân

 Nguồn đơn 5V cấp cho mạch lập trình nối tiếp

 Watchdog Timer (WDT) với bộ dao động RC tích hợp sẵn trên Chip cho hoạt động đáng tin cậy

 Có thể lập trình mờ bảo vệ

 Tiết kiệm năng lượng với chế độ Sleep

 Có thể lựa chọn bộ dao động

e) Vi điều khiển PIC16F877A

PIC 16F877A là loại vi điều khiển 8 bit tầm trung của hãng microchip

 PIC 16F877A có kiến trúc Havard, sử dụng tập lệnh kiểu RISC với chỉ 35 lệnh cơ bản

 Tất cả các lệnh được thực hiện trong một chu kì lệnh ngoại trừ các lệnh rẽ nhánh

 Sơ đồ chân với chip loại cắm 40 chân:

Đ án vi x lý và vi đi u khi n ồ án vi xử lý và vi điều khiển ử lý và vi điều khiển ều khiển ển Trang 5

Trang 6

Hình 2.1: Sơ đồ chân với chip loại cắm 40 chân

f) Các cổng xuất nhập I/O:

Trong vi điều khiển PIC16F877A có 5 cổng:

- Cổng A gồm 6 chân: RA0, RA1 RA5

- Cổng B gồm 8 chân: RB0, RB1, RB7

- Cổng C gồm 8 chân: RC0, RC1, RC7

- Cổng D gồm 8 chân: RD0, RD1, RD7

- Cổng E gồm 3 chân: RE0, RE1, RE2

Mỗi cổng thực chất được quản lý bởi các thanh ghi PORTA, PORTB, PORTC, PORTD, PORTE nằm trong bộ nhớ RAM của vi điều khiển

Trang 7

Hình 2.2: Các bank thanh ghi trong bộ nhớ

Bộ nhớ RAM của vi điều khiển PIC 16F877A gồm 4 bank nhớ Nhìn vào các bank nhớ ta có thể thấy các thanh ghi được đặt tên và các thanh ghi đa mục đích (General Purpose Register)

 Các thanh ghi được đặt tên là các thanh ghi đặc biệt dùng để điều khiển, quản lý hoặc thể hiện trạng thái của các khối chức năng trong vi điều khiển

 Các thanh ghi đa mục đích được dùng để đặt biến trong một

chương trình ứng dụng của vi điều khiển Nhìn vào bản đồ bộ nhớ RAM, ta thấy biến có thể đặt từ địa chỉ 20F đến 7Fh trong bank nhớ 0, A0h-EFh, 120h-16Fh, 1A0h-1EFh Trở lại vấn đề về các cổng, tới đây ta có thể đưa ra

Đ án vi x lý và vi đi u khi n ồ án vi xử lý và vi điều khiển ử lý và vi điều khiển ều khiển ển Trang 7

Trang 8

nhận xét: Thanh ghi PORTA phản ánh trạng thái của các chân cổng A, nghĩa là muốn tín hiệu đầu ra của các chân cổng A như thế nào ta chỉ việc đưa giá trị vào các bit tương ứng 7 trên thanh ghi PORTA Cũng như khi đọc giá trị của thanh ghi PORTA ta sẽ biết được trạng thái của các chân cổng A

Ví dụ: Muốn RA0 ở mức logic 1 (mức 5V), RA1 ở mức logic 0 (mức 0V), RA2 ở mức logic 1, RA3 ở mức logic 0, RA4 ở mức logic 1, RA5 ở mức logic 1, ta chỉ việc gán giá trị 000110101 cho thanh ghi PORTA

g) Tính đa chức năng của một chân trên vi điều khiển:

Nhìn vào sơ đồ chân của vi điều khiển, ta có thể thấy một số chân của

vi điều khiển có tên gồm nhiều phần với dấu gạch chéo

Ví dụ: RA0/AN0, RC7/RX/DT, RC6/TX/CK

Đây chính là tính đa chức năng của một chân trên vi điều khiển hay còn gọi là sự dồn kênh Ý nghĩa của nó là: Bình thường nếu không được cài đặt thì tấc cả các chân trên 5 cổng A, B, C, D, E là các chân vào ra số I/O Nếu trong chương trình ta có cài đặt một chức năng nào đó như RS232, ADC hoặc PWM v.v thì các chân tương ứng với chức năng đó sẽ hoạt động theo chức năng đó Khi đó chân này sẽ không được dùng làm chân vào ra số như bình thường nữa

h) Cài đặt vào/ra cho các chân vào ra số trên các cổng:

Các chân vào/ra số trên vi điều khiển PIC phải được cài đặt là chân vào hoặc chân ra thì mới hoạt động đúng chức năng Việc một chân trên cổng X (X=A,B, E) được qui định là đầu ra hay đầu vào phụ thuộc vào bit tương ứng trên thanh ghi TRISX (X=A,B, E) là 0 hay 1

Trang 9

i) Các đặc tính ngoại vi:

Bao gồm các khối chức năng sau:

- Timer0: Bộ đếm 8 bit với bộ chia tần số 8 bit

- Timer1: Bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng

đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế

độ sleep

- Timer2: Bộ đếm 8 bit với bộ chia tần số, bộ postcaler.

2.1.2 Động cơ điện một chiều – Encoder

a) Động cơ một chiều

Động cơ điện một chiều là động cơ điện hoạt động với dòng điện mộtchiều

Động cơ điện một chiều ứng dụng rộng rãi trong các ứng dụng dân

dụng cũng như công nghiệp Thông thường động cơ điện một chiều chỉ

chạy ở một tốc độ duy nhất khi nối với nguồn điện, tuy nhiên vẫn có thểđiều khiển tốc độ và chiều quay của động cơ với sự hỗ trợ của các mạchđiện tử cùng phương pháp PWM

Đ án vi x lý và vi đi u khi n ồ án vi xử lý và vi điều khiển ử lý và vi điều khiển ều khiển ển Trang 9

Trang 10

Hình 2.3: Động cơ một chiều

b) Encoder

Đo tốc độ động cơ dùng encoder, tín hiệu từ encoder tạo ra các dạng xung vuông có tần số thay đôi phụ thuộc vào tốc độ động cơ Do đó các xung vuông này được đưa vào bộ vi xử lý để đếm số xung trong khoảng thời gian cho phép từ đó ta có thể tính được giá trị vận tốc của động cơ Đây cũng là phương pháp mà người ta sử dụng để ổn định tốc độ động cơhay điều khiển nhanh chậm…

Hình 2.4 : Cấu tạo và hoạt động của Encoder

Nguyên tắc hoạt động của Encoder

Nguyên lý cơ bản của encoder, đó là một đĩa tròn xoay, quay quanh trục Trên đĩa có các lỗ (rãnh) Người ta dùng một đèn led để chiếu lên mặt đĩa Khi đĩa quay, chỗ không có lỗ (rãnh), đèn led không chiếu xuyên qua được, chỗ có lỗ (rãnh), đèn led sẽ chiếu xuyên qua.Khi đó,

Trang 11

phía mặt bên kia của đĩa, người ta đặt một con mắt thu Với các tín hiệu

có, hoặc không có ánh sáng chiếu qua, người ta ghi nhận được đèn led có chiếu qua lỗ hay không.Số xung đếm được và tăng lên nó tính bằng số lầnánh sáng bị cắt!

Như vậy là encoder sẽ tạo ra các tín hiệu xung vuông và các tín hiệu xung vuông này được cắt từ ánh sáng xuyên qua lỗ Nên tần số của xung đầu ra sẽ phụ thuộc vào tốc độ quay của tấm tròn đó Môt số Encoder có

2 tín hiệu ra lệch pha nhau 90 Hai tín hiệu này có thể xác định được chiều quay của động cơ

Đ án vi x lý và vi đi u khi n ồ án vi xử lý và vi điều khiển ử lý và vi điều khiển ều khiển ển Trang 11

Trang 12

Hình 2.5: Vị trí các chân của LCD

Chức năng của các chân:

7-14 DB0 - DB7 0/1 I/0 Bus dữ liệu từ 07

Các thanh ghi:

 Thanh ghi IR: Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng.Người dùng chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi

IR Ví dụ: Lệnh hiển thị màn hình con trỏ có mã lệnh “00001110”

 Thanh ghi DR: Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vàovùng Ram Ddram hoặc GGRAM ( ở chế độ ghi) hoặc dùng để chứa dữliệu từ 2 vùng Ram này gửi ra cho MPU (ở chế độ đọc)

Trang 13

Các mã lệnh trong LCD

DDRAM đây là vùng dùng để hiển thị chứa các địa chỉ trên ram ứngvới các ô kí tự trên màn hình

Hình2.6: Địa chỉ các ô hiển thị trên LCD

CGROM chứa các mẫu kí tự loại 57 hoặc 5×10 điểm ảnh ký tự và cóđịa chỉ là 8bit

Đ án vi x lý và vi đi u khi n ồ án vi xử lý và vi điều khiển ử lý và vi điều khiển ều khiển ển Trang 13

Trang 14

Hình 2.7: Địa chỉ các ký tự của LCD

2.1.4 Modul điều khiển động cơ L298

Mạch điều khiển động cơ DC L298 có khả năng điều khiển 2 động cơ DC, dòng tối đa 2A mỗi động cơ, mạch tích hợp diod bảo vệ và IC nguồn 7805 giúp cấp nguồn 5V DC cho các modul khác (chỉ sử dụng 5V nếu nguồn cấp

< 12VDC)

Hình 2.8: Modul L298

Thông số kỹ thuật:

 IC chính: L298 Dual Full Brigde Driver

 Điện áp đầu vào: 5~30VDC

 Dòng tối đa cho mỗi cầu H là: 2A (=>2A cho mỗi motor)

 Công suất tối đa: 25W 1cầu (lưu ý công suất = dòng điện x điện áp nên

áp cấp vào càng cao, dòng càng nhỏ, công suất có định 25W)

 Mức điện áp logic: Low-0.3V~1.5V, High: 2.3V~Vss

 Nhiệt độ bảo quản: -25 ~ +130 ℃ ~ +130 ℃ ℃ ~ +130 ℃

2.1.5 Thạch anh điện tử

Trang 15

Thạch anh điện tử là một linh kiện làm bằng tinh thể đá thạch anh

được mài phẳng và chính xác Linh kiện thạch anh làm việc dựa trên hiệu ứng áp điện Hiệu ứng này có tính thuận nghịch Khi áp một điện áp vào

2 mặt của thạch anh, nó sẽ bị biến dạng Ngược lại, khi tạo sức ép vào 2 bề mặt đó, nó sẽ phát ra điện áp

2.2Tính toán linh kiện trong hệ thống

 Ta sử dụng nguồn adapter 9V nối dây qua L298 do L298 được tínhhợp IC7805 nên sẽ cho đầu ra 5V cung cấp nguồn cho vi điều khiển

 Điện trở cho các nút bấm ta chọn trở có giá trị 4.7k để có dòng đầuvào là 4.75 =1.06 mA < 25mA (dòng vào lớn nhất cho mỗi chân)

Đ án vi x lý và vi đi u khi n ồ án vi xử lý và vi điều khiển ử lý và vi điều khiển ều khiển ển Trang 15

Trang 16

 Để có thể đo được tốc độ động cơ ta phải dùng thạch anh 20MHz đểnâng cao tốc độ xử lý của vi điều khiển thì ta mới có kết quả chính xác

 Tra trong datasheet của pic16F877A(tr146) để tăng sự ổn định chothạch anh ta sử dụng tụ gốm có giá trị 33pF

 Chọn biến trở vuông có giá trị 1k Ω để điều chỉnh độ tương phản choLCD

CHƯƠNG 3 : THUYẾT KẾ MẠCH NGUYÊN LÝ

3.1 Thuyết kế mạch nguyên lý

Trang 17

Hình 3.1 Sơ đồ mạch nguyên lý

3.2 Lưu đồ thuật toán của chương trình chính

a) Chương trình chính

Đ án vi x lý và vi đi u khi n ồ án vi xử lý và vi điều khiển ử lý và vi điều khiển ều khiển ển Trang 17

Cài đặt vào ra, Timer0, LCD,Thiết lập PWM

Kiểm tra nút giảm

RA0==1

RA0==0 (TANG)

RB1=1,RB2=0,XUNG=0, CHIEU = +, Hiển thị “TOC DO” và “+00 v/s trên LCD

GIE=1,TMR0IE=1,INTE=1

RA3==0 (START)

RA3==0 (START)

Hiển thị “START VDK” trên

Trang 18

RA2==0 (DAO)

W = 30 CCPR1L-30= CCPR1L

S

STATUS,Z==1

S

CCPR1L=W 0-W=W

RA1==1 (GIAM)

RA1==0 (GIAM)

Đ

W =30 CCPR1L+30= CCPR1L STATUS,Z==1

Trang 19

RA3==1 (STOP)

RA3==0 (STOP)

Đ

Đ

RB2=0 CHIEU = +

RB1=0 RB2=1 CHIEU =  RB1==1

Trang 20

b) Chương trình ngắt

GIE=1 Trả lại giá trị của thanh ghi trong biến tạm thời

TMR0=247

CALL chia 10 CALL HTTOCDO LAP=100 XUNG=0

GIE=0,TMR0IF=0

GIE=0, INTF=0 XUNG=XUNG+1

Lap-1==0

Kiểm tra ngắt ngoài

INTF==1

Lưu giá trị các thanh ghi vào các

biến tạm

Trang 21

c) Chương trình chạy bằng ngôn ngữ ASEMBLY:

#include p16f877a.inc

config _HS_OSC &_WDT_OFF &_LVP_OFF

cblock 0x20

XUNG,VONG1,VONG2,VONG3,CHIEU,CHUC,DONVI,DEM,STATUS_TEMP,W_TEMP,LAP,

Trang 22

; -CAI DAT VAO RA -;

BCF STATUS,5 ;CHUYEN QUA BANK0

; -CAI DAT TIMER1 -;

MOVLW D'247'

MOVWF TMR0

MOVLW D'100'

MOVWF LAP

Trang 23

;TA CO: V=(N/T*D)

; V:VAN TOC CAN DO

; N:SO XUNG DO DUOC

Trang 30

; -CHUONG TRINH LAP

; -KIEM TRA CAC NUT NHAN -;

; KIEM TRA NUT START

Trang 33

; CHUONG TRINH PHUC VU NGAT ;

;LUU GIA TRI CUA CAC THANH GHI VAO BIEN TAM THOI

Trang 36

3.3 Chạy mô phỏng chương trình bằng phần mềm ứng dụng Proteus

a)

b)

Ngày đăng: 03/12/2017, 09:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w