(123doc) - Do-An-Vi-Xu-Ly-Va-Vi-Dieu-Khien-Thiet-Ke-Bo-Dieu-Khien-Toc-Do-Cua-Dong-Co-Mot-Chieu-Su-Dung-Hop-Ngu-Assembly

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 37

GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

Đồ á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:

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

KHỐI ĐIỀU KHIỂN TRUNG TÂM

(VI ĐIỀU KHIỂN PIC16F877A)

HIỂN THỊ PWM


TỐC ĐỘ

Động cơ DC

Encoder

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


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

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

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.

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

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀ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 ty
Microchip Technology. Dòng PIC đầu tiên là PIC1650 được phát triển bở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 cho
dòng sản phẩm đầu tiên của họ là PIC1650. Lúc này, PIC 1650 được
dù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ảng
năm 1975để hỗ trợ hoạt động xuất nhập cho CP1600. PIC sử dụng
microcode đơ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úc
RISC, 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ữu
mớ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 nay
rất nhiềudòng PIC được xuất xưởng với hàng loạt các module ngoại vi
tí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à
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

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

− 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).
− 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 Enhanced

Flash.
− 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

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

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 Trang 5


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

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.

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

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

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 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

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

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.

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ột
chiề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.

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

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

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 đó,
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!
Đồ án vi xử lý và vi điều khiển Trang 9
GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

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ơ.

2.1.3 Màn hình LCD 16x2


Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử
dụng trong rất nhiều các ứng dụng của VĐK. LCD có rất nhiều ưu điểm
so với các dạng hiển thị khác: Nó có khả năng hiển thị kí tự đa dạng, trực
quan (chữ, số và kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo
nhiều giao thức giao tiếp khác nhau, tốn rất ít tài nguyên hệ thống và giá
thành rẽ …

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

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

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

Chân Ký hiệu Mức Logic I/0 Chức năng


1 VSS - - Nguồn (GND)
2 VDD - - Nguồn (+5V)
3 VEE - - Chỉnh độ tương phản
0 = Nhập lệnh
4 RS 0/1 I
1 = Nhập dữ liệu
0 = Ghi dữ liệu
5 R/W 0/1 I
1= Đọc dữ liệu
6 E 0/1 I Tín hiệu cho phép
7-14 DB0 - DB7 0/1 I/0 Bus dữ liệu từ 0⇒7
15 Lamp- - - Chân âm đèn LCD
16 Lamp+ - - Chân dương đèn LCD

∗ 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ào
vù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).

∗ 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 ứng
với các ô kí tự trên màn hình.
Hình2.6: Địa chỉ các ô hiển thị trên LCD

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

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.

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).

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

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 ℃

2.1.5 Thạch anh điện tử

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.

Hình 2.9 Thạch anh điện tử

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

Ứng dụng của thạch anh:

Cho ra tần số rất ổn định, sử dụng rất nhiều trong các đồng hồ điện tử
(như đồng hồ đeo tay, đồng hồ để bàn...), trong các thiết bị đo lường điện
tử (tạo xung chuẩn), trong mạch đồng bộ màu của TV, VCR, trong các
thiết bị tin học (máy vi tính, các thiết bị nối với máy vi tính), trong các
nhạc cụ điện tử như Piano điện, organ...

2.2 Tí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ính

hợ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 đầu
vào là mA < 25mA (dòng vào lớn nhất cho mỗi chân)
− Để 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 cho
thạ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 cho
LCD
CHƯƠNG 3: THUYẾT KẾ MẠCH NGUYÊN LÝ

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

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

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 Trang 15


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

Cài đặt vào ra, Timer0,


LCD,Thiết lập PWM

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


LCD

RA3==0 S
(START)

Đ
S
RA3==0
(START)

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

RA0==0 S
(TANG)
Kiểm tra nút giảm

RA0==1 S
(TANG)

CCPR1L=W

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


180-W=W
RA2==1
RA2==0
RA1==1
RA1==0
(GIAM)
(DAO)
STATUS,Z==1
CCPR1L=W W =30
= 30

Đ
0-W=W S SS
SS CCPR1L+30=
CCPR1L-30=
Kiểmtra
Kiểm tranút CCPR1L
nútSTOP
đảo
GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

RB1==1 S RB1=1

RB2=0

Đồ án vi xử lý và vi điều khiển RB1=0


Trang 17 CHIEU = +
RA3==1
RA3==0
Đ(STOP)
RB2=1
RB1=0,RB2=0,XUNG=0
Hiển thị “START VDK” trên
LCD = −
GIE=0,TMR0IE=0,INTE=
CHIEU S Kiểmtra nút TANG
Đ
GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

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

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


Kiểm tra ngắt ngoài
các biến tạm
INTF==1 CALL chia 10
GIE=1
Đồ án vi xử lý và vi điều khiển GIE=0,Trang
INTF=018 CALL HTTOCDO
Trả lại giá trị của thanh
ghi trong biến tạm thời Lap-1==0
LAP=100
XUNG=XUNG+1

RETFIE XUNG=0
GIE=0,TMR0IF=0
TMR0=24
GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

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

#include p16f877a.inc

__config _HS_OSC &_WDT_OFF &_LVP_OFF

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

cblock 0x20

XUNG,VONG1,VONG2,VONG3,CHIEU,CHUC,DONVI,DEM,STATUS_TE
MP,W_TEMP,LAP,

PCLATH_TEMP,FSR_TEMP,HT

ENDC

#define RS PORTC,6

#define E PORTC,7

Org 0x00

goto MAIN

org 0x04

goto NGAT

org0x05

;----CHUONG TRINH CHINH----;

MAIN

;---CAI DAT VAO RA---;

BSF STATUS,5

CLRF TRISD

CLRF TRISC

MOVLW 0X06

MOVWF ADCON1

MOVLW D'179'

MOVWF PR2

MOVLW B'00001111'

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

MOVWF TRISA

BSF TRISB,0

BCF TRISB,1

BCF TRISB,2

BCF TRISB,3

MOVLW B'00000111'

MOVWF OPTION_REG

CALL DELAY

CALL DELAY

BCF STATUS,5 ;CHUYEN QUA BANK0

;---CAI DAT TIMER1---;

MOVLW D'247'

MOVWF TMR0

MOVLW D'100'

MOVWF LAP

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

; V:VAN TOC CAN DO

; N:SO XUNG DO DUOC

; T:THOI GIAN DO

; D:DO PHAN GIAI DONG CO

;DE V=N THI T*D=1

;MA D=20 THI T=1/20(s)

;THOI GIAN DINH THOI=(256-TIMER0)*N*Tl*LAP

;TIMER0=247,N=256,LAP=100,TL=0.2

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

;THOI GIAN DINH THOI=46080(us)

;---CAI DAT PWM---;

MOVLW B'00000110'

MOVWF T2CON

BSF CCP1CON,2

BSF CCP1CON,3

MOVLW D'0'

MOVWF CCPR1L

CLRF XUNG

;---CAI DAT LCD---;

MOVLW 0X38 ;LCD CAI DAT 8 BIT

CALL GHILENH

CALL DELAY

MOVLW 0X0C

CALL GHILENH

CALL DELAY

;--HIEN THI LCD---;

;HIEN THI "DO AN VXL-VDK"

HIENTHILCD

MOVLW 0X80

CALL GHILENH

MOVLW 'S'

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

CALL GHIKYTU

MOVLW 'T'

CALL GHIKYTU

MOVLW 'A'

CALL GHIKYTU

MOVLW 'R'

CALL GHIKYTU

MOVLW 'T'

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW 'V'

CALL GHIKYTU

MOVLW 'D'

CALL GHIKYTU

MOVLW 'K'

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW 0XC0

CALL GHILENH

MOVLW ' '

CALL GHIKYTU

MOVLW ' '

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

GOTO START

GHILENH

BCF RS

MOVWF PORTD

BSF E

BCF E

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

CALL DELAY

RETURN

GHIKYTU

BSF RS

MOVWF PORTD

BSF E

BCF E

CALL DELAY

RETURN

DELAY

nop

nop

movlw d'149'

movwf VONG1

movlw d'3'

movwf VONG2

movlw d'1'

movwf VONG3

decfsz VONG1,f

goto $-1

decfsz VONG2,f

goto $-3

decfsz VONG3,f

goto $-5

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

return

;--CHUONG TRINH CON HIEN THI TOC DO--;

HIENTHI

MOVLW 0X80

CALL GHILENH

MOVLW ' '

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW 'T'

CALL GHIKYTU

MOVLW 'O'

CALL GHIKYTU

MOVLW 'C'

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW 'D'

CALL GHIKYTU

MOVLW 'O'

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

CALL GHIKYTU

HTTOCDO

MOVLW 0XC3

CALL GHILENH

MOVF CHIEU,W

CALL GHIKYTU

MOVF CHUC,W

CALL GHIKYTU

MOVF DONVI,W

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW 'V'

CALL GHIKYTU

MOVLW '/'

CALL GHIKYTU

MOVLW 'S'

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

MOVLW ' '

CALL GHIKYTU

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

MOVLW ' '

CALL GHIKYTU

RETURN

CHIA10

CLRF CHUC

CLRF DONVI

MOVF XUNG,W

MOVWF DEM

TRU10

MOVF DEM,W

MOVWF DONVI

MOVLW D'10'

SUBWF DEM,F

BTFSC STATUS,C

GOTO TANGCHUC

MOVLW 0X30

ADDWF CHUC,F

MOVLW 0X30

ADDWF DONVI,F

RETURN

TANGCHUC

INCF CHUC,F

GOTO TRU10

;---CHUONG TRINH LAP

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

;---KIEM TRA CAC NUT NHAN---;

;--KIEM TRA NUT START

START

BTFSC PORTA,3

GOTO $-1

BTFSS PORTA,3

GOTO $-1

CLRF CCPR1L

CLRF XUNG

BSF PORTB,1

BCF PORTB,2

MOVLW '+'

MOVWF CHIEU

CALL CHIA10

CALL HIENTHI

BSF INTCON,GIE

BSF INTCON,TMR0IE

BSF INTCON,INTE

;---KIEM TRA NUT TANG---;

TANG

BTFSC PORTA,0

GOTO GIAM

BTFSS PORTA,0

GOTO $-1

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

MOVF CCPR1L,W

SUBLW D'180'

BTFSS STATUS,Z

GOTO $+2

GOTO GIAM

MOVLW D'30'

ADDWF CCPR1L,F

;---KIEM TRA NUT GIAM---;

GIAM

BTFSC PORTA,1

GOTO DAO

BTFSS PORTA,1

GOTO $-1

MOVF CCPR1L,W

SUBLW D'0'

BTFSS STATUS,Z

GOTO $+2

GOTO DAO

MOVLW D'30'

SUBWF CCPR1L,F

;---KIEM TRA NUT DAO CHIEU---;

DAO

BTFSC PORTA,2

GOTO STOP

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

BTFSS PORTA,2

GOTO $-1

BTFSS PORTB,1

GOTO CHIEUDUONG

CHIEUAM

BCF PORTB,1

BSF PORTB,2

MOVLW '-'

MOVWF CHIEU

GOTO STOP

CHIEUDUONG

BSF PORTB,1

BCF PORTB,2

MOVLW '+'

MOVWF CHIEU

GOTO STOP

;--KIEM TRA NUT STOP--;

STOP

BTFSC PORTA,3

GOTO TANG

BTFSS PORTA,3

GOTO $-1

BCF PORTB,1

BCF PORTB,2

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

CLRF CCPR1L

BCF INTCON,GIE

BCF INTCON,TMR0IE

BCF INTCON,INTE

GOTO HIENTHILCD

;---CHUONG TRINH NGAT---;

NGAT

;--CHUONG TRINH PHUC VU NGAT--;

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

MOVWF W_TEMP

SWAPF STATUS,W

CLRF STATUS

MOVWF STATUS_TEMP

MOVF PCLATH,W

MOVWF PCLATH_TEMP

CLRF PCLATH

MOVF FSR,W

MOVWF FSR_TEMP

;--KIEM TRA NGAT--;

BTFSS INTCON,INTF

GOTO CAPNHAT

;--NGAT NGOAI--;

;DEM XUNG KHI DONG CO CHAY

BCF INTCON,7

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

BCF INTCON,1

INCF XUNG,F

GOTO THOATNGAT

;--NGAT TIMER1--;

;DE HIEN THI TOC DO KHI CO NGAT

CAPNHAT

BCF INTCON,7

BCF INTCON,TMR0IF

DECFSZ LAP,F

GOTO THOATCAPNHAT

MOVF HT,W ; LAY GIA TRI HIEN THI TAI LAN THU 10

SUBLW D'11'

BTFSS STATUS,Z

goto $+4

CALL CHIA10

CALL HTTOCDO

CLRF HT

INCF HT,F

MOVLW D'100'

MOVWF LAP

CLRF XUNG

THOATCAPNHAT

MOVLW D'247'

MOVWF TMR0

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

THOATNGAT

BSF INTCON,7

MOVF FSR_TEMP,W

MOVWF FSR

MOVF PCLATH_TEMP,W

MOVWF PCLATH

SWAPF STATUS_TEMP,W

MOVWF STATUS

SWAPF W_TEMP,F

SWAPF W_TEMP,W

RETFIE

END

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

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

a)

b)

c)

Hình 3.2 a),b),c) : Mô phỏng chương trình bằng proteus

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

CHƯƠNG 4: CHẾ TẠO MẠCH THỰC TẾ


4.1 Thiết kế mạch in

Hình 4.1: Mạch in được thiết kế trên phần mềm Altium

Hình4.2: Mạch in sau khi được in ra trên giấy

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


GVHD : NGUYỄN QUỐC ĐỊNH SVTH : NGUY ỄN HUY HOÀNG

4.2 Lắp đặp thiết bị và hoàn thiện mạch

Hình 4.3 Mạch sao khi được lắp đặp và hoàn thiện

4.3 Chạy mạch và đánh giá hoạt động

Hình 4.4 Mạch hoạt động điêu khiển động cơ

− Mạch hoạt động tốt và chạy ổn định có thể tăng, giảm, đảo chiều và hiển
thị tốc độ động cơ trên màn hình LCD

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

You might also like