13
Bài tập lớn Môn vi xử lý và vi điều khiển trong đo lường và điều khiển I/ Cơ sở lý thuyết : Việc phát triển ứng dụng các hệ vi xử lí đòi hỏi những hiểu biết cả về phần cứng cũng như về phần mềm, nhưng cũng chính vì vậy mà các hệ vi xử lý được sử dụng để giải quyết những bài toán rất khác nhau. Tính đa dạng của các ứng dụng phụ thuộc vào việc lựa chọn các hệ vi xử lý cụ thể cũng như vào kĩ thuật lập trình. Ngày nay các bộ vi xử lí có mặt trong rất nhiều thiết bị điện tử hiện đại: từ đầu đĩa CD, máy thu hình, máy ghi hình, dàn âm thanh HiFi , bộ điều khiển lò sưởi cho đến các thiết bị điều khiển dùng trong công nghiệp. Lĩnh vực ứng dụng của các hệ vi xử lí cũng rất rộng lớn: từ nghiên cứu khoa học, truyền dữ liệu, đến công nghiệp, năng lượng, giao thông và y tế … Trong bài tập mà chúng tôi sẽ tiến hành sau đây, chúng ta sẽ xem xét một hệ vi xử lí trong lĩnh vực công nghiệp. Chúng ta sẽ thực hiện mạch đếm sản phẩm của một băng chuyền trong sản xuất. Mạch này sẽ đếm số lượng các sản phẩm đến 9999 sản phẩm và có thể lớn hơn nếu cần thiết. Đầu tiên chúng ta sẽ tìm hiểu về vi điều khiển P89v51RD2. I.1 Khái quát vi điều khiển P89v51RD2 : P89V51RD2 là vi điều khiển 80C51 có 64kB Flash và 1024bytes (1kB) bộ nhớ dữ liệu RAM. Tính năng đặc biệt của P89V61RD2 là ở chế độ hoạt động mode x2. Người thiết kế chọn chạy ứng dụng của mình ở chế độ này để nâng đôi tốc độ khi hoạt động ở cùng tần số dao động (một chu kì máy=6 chu kì xung nhịp) Bộ nhớ chương trình Flash cho phép lập trình ISP hoặc/và song song. Chế độ lập trình song song được đưa ra để thích ứng với tốc độ cao, giảm thời gian và giá thành. IAP/ISP. I.2 Các tính năng: CPU 80C51. Hoạt động ở 5VDC trong tầm tần số dao động đến 40MHz. 64kB ISP.

Báo cáo bài tập lớn vi xử lí trong đo lường và điều khiển

Embed Size (px)

Citation preview

Page 1: Báo cáo bài tập lớn vi xử lí trong đo lường và điều khiển

Bài tập lớn

Môn vi xử lý và vi điều khiển trong đo lường và điều khiển

I/ Cơ sở lý thuyết :

Việc phát triển ứng dụng các hệ vi xử lí đòi hỏi những hiểu biết cả về phần cứng cũng như về phần mềm, nhưng cũng chính vì vậy mà các hệ vi xử lý được sử dụng để giải quyết những bài toán rất khác nhau. Tính đa dạng của các ứng dụng phụ thuộc vào việc lựa chọn các hệ vi xử lý cụ thể cũng như vào kĩ thuật lập trình. Ngày nay các bộ vi xử lí có mặt trong rất nhiều thiết bị điện tử hiện đại: từ đầu đĩa CD, máy thu hình, máy ghi hình, dàn âm thanh HiFi , bộ điều khiển lò sưởi cho đến các thiết bị điều khiển dùng trong công nghiệp. Lĩnh vực ứng dụng của các hệ vi xử lí cũng rất rộng lớn: từ nghiên cứu khoa học, truyền dữ liệu, đến công nghiệp, năng lượng, giao thông và y tế …

Trong bài tập mà chúng tôi sẽ tiến hành sau đây, chúng ta sẽ xem xét một hệ vi xử lí trong lĩnh vực công nghiệp. Chúng ta sẽ thực hiện mạch đếm sản phẩm của một băng chuyền trong sản xuất. Mạch này sẽ đếm số lượng các sản phẩm đến 9999 sản phẩm và có thể lớn hơn nếu cần thiết. Đầu tiên chúng ta sẽ tìm hiểu về vi điều khiển P89v51RD2.

I.1 Khái quát vi điều khiển P89v51RD2 : P89V51RD2 là vi điều khiển 80C51 có 64kB Flash và 1024bytes (1kB) bộ nhớ dữ liệu

RAM. Tính năng đặc biệt của P89V61RD2 là ở chế độ hoạt động mode x2. Người thiết kế chọn

chạy ứng dụng của mình ở chế độ này để nâng đôi tốc độ khi hoạt động ở cùng tần số dao động (một chu kì máy=6 chu kì xung nhịp)

Bộ nhớ chương trình Flash cho phép lập trình ISP hoặc/và song song. Chế độ lập trình song song được đưa ra để thích ứng với tốc độ cao, giảm thời gian và giá thành.

IAP/ISP.I.2 Các tính năng:

CPU 80C51. Hoạt động ở 5VDC trong tầm tần số dao động đến 40MHz. 64kB ISP. SPI 5 PCA với chức năng PWM/capture/compare 16bits. 4 cổng xuất nhập. 3 Timers/Couters 16bits. Watchdog Timer có thể lập trình được. 8 nguồn ngắt. 2 thanh ghi DPTR. Tương thích mức logic TTL và CMOS. Phát hiện nguồn yếu <Brownout Detect> Chế độ Low-power, Power down, Idle.

I.3 Sơ đồ khối vi điều khiển P89v51RD2:

Page 2: Báo cáo bài tập lớn vi xử lí trong đo lường và điều khiển
Page 3: Báo cáo bài tập lớn vi xử lí trong đo lường và điều khiển

I.4 Sơ qua về các chân của vi điều khiển:Port 0, Port 1, Port 2, Port 3: Như cấu trúc 8051 kinh điển.P1.0 - T2: Ngõ vào Counter cho Timer/Counter 2 hoặc ngõ ra cho Counter/Timer 2.P1.1 - T2EX: Điều khiển hướng và cạnh kích chức năng Capture cho timer/Counter 2.P1.2 – ECI: Ngõ vào xung nhịp. Tín hiệu này là nguồn xung nhịp ngoài cho chức năng PCA.P1.3 –CEX0: ngõ vào xung nhịp cho chức năng Capture/Compare modul 0.P1.4:

SS : Chọn cổng phụ vào cho SPI. CEX1: ngõ vào xung nhịp cho chức năng Capture/Compare modul 1.

P1.5: MOSI: phục vụ SPI CEX2: ngõ vào xung nhịp cho chức năng Capture/Compare modul 2.

P1.6: MISO: phục vụ SPI CEX3: ngõ vào xung nhịp cho chức năng Capture/Compare modul 3.

P1.7: SCK: phục vụ SPI CEX4: ngõ vào xung nhịp cho chức năng Capture/Compare modul 4.

P S E N : Cho phép dùng bộ nhớ chương trình ngoài. Khi MCU sử dụng bộ nhớ chương trình trong chip,P S E N không tích cực. Khi sử dụng bộ nhớ chương trình ngoài, P S E N thường ở mức tích cực 2 lầntrong mỗi chu kì máy. Sự chuyển mức cao sang thấp ↓ trên P S E N cưỡng bức từ bên ngoài khi ngõ vàoRST đang ở mức cao trong hơn 10 chu kì máy sẽ đưa MCU vào chế độ lập trình host từ bên ngoài.RST: Khi nguồn dao động đang hoạt động, mức cao trên chân RST trong ít nhất 2 chu kì máy sẽ Reset lạihệ thống. Nếu chân P S E N chuyển mức ↓ trong khi RST vẫn còn ở mức cao, MCU sẽ vào chế độ lậptrình host từ bên ngoài, nếu không, sẽ hoạt động bình thường.E A : Cho phép sử dụng bộ nhớ chương trình ngoài.

E A=’0’ Bộ nhớ ngoài. E A=’1’ Bộ nhớ trong chip.

ALE/ PROG : Cho phép khóa địa chỉ<Như 8051 cổ điển> ngoài ra, chân này còn được dùng để đưa vàochế độ lập trình FLASH.

II/ Phân tích mạch nguyên lý Hệ vi điều khiển đang xem xét bao gồm các module như sau:II.1 Khối nguồn:Điện áp(>8V) đưa vào IC ổn áp LM7805 cho ra đầu ra 5VDC ổn định. Các tụ điện đóng vai trò nắn nguồn, san phẳng điện áp

Page 4: Báo cáo bài tập lớn vi xử lí trong đo lường và điều khiển

II.2 Khối CPU:

Page 5: Báo cáo bài tập lớn vi xử lí trong đo lường và điều khiển

Port 0 của P89V51RD là một PORT với cực máng hở, do vậy nếu muốn dùng PORT0 như một cổng vào ra ( I/O port ) thì cần có điện trở treo (10K) lên dương nguồn Vcc ( Pull-up ).

Khối gồm dao động thạch anh và 2 tụ 33pF có chức năng tạo xung nhịp cho hệ vi điều khiển.

Mạch reset điển hình gồm tụ C5 và trở 10K. Khi nhấn nút reset chương trình sẽ bắt đầu lại từ đầu.

II.3 Khối đầu vào đếm

Biến trở R8 có tác dụng tạo điện áp so sánh, tùy chỉnh biến trở này ta sẽ điều chỉnh được mức độ nhạy của cảm biến.

Đèn Led ở đây có tác dụng báo hiệu có sản phẩm hay không, Led đỏ tương ứng với không có sản phẩm, Led tắt tương ứng với có sản phẩm.

LM324 là một IC công suất thấp bao gồm 4 bộ khuếch đại thuật toán (Op Amp) trong nó.

Page 6: Báo cáo bài tập lớn vi xử lí trong đo lường và điều khiển

LM324 là một chip so sánh:

Khi điện áp V+ > V- thì ngõ ra của op amp ở mức +Vcc

Khi điện áp V+ < V- thì ngõ ra của op amp ở mức Gnd hoặc -Vcc.

Tín hiệu đầu ra LM324 được đưa qua transistor khuếch đại và đưa vào chân P2.3 của P89v51RD2. Tại đây vi điều khiển sẽ điều khiển xuất giá trị ra khối hiển thị.

II.4 Khối hiển thị

Page 7: Báo cáo bài tập lớn vi xử lí trong đo lường và điều khiển

Khối hiển thị bao gồm 4 Led 7 đoạn Anode chung được điều khiển qua các chân P2.4, P2.5, P2.6, P2.7 của P89v51RD2. Chúng ta sẽ xuất ra các tín hiệu điều khiển ra các chân này để mở các transistor tương ứng nối với nó. Việc mở các transistor sẽ nguồn cho các Led 7 đoạn hoạt động. Và như thế giá trị sẽ được hiển thị trên Led 7 đoạn.

II.5 Mạch nạp P89V51RD2

Việc nạp chương trình được thực hiện bằng phần mềm Flash Magic. Việc nạp vi điều khiển p89v51rd2 được truyền qua chân 2 và nhận qua chân 3 của cổng COM.

III Thi công mạch

III.1 Mạch nguyên lí :

Nguyên lí hoạt động của mạch chúng ta đã khảo sát trong phần trước. Sau đây mạch được vẽ mô phỏng trong proteus. Đây là một mạch đếm khá đơn giản có thể mở rộng việc đếm dễ dàng bằng cách mắc thêm Led 7 đoạn và transistor. Hiệu chỉnh lại chương trình nữa thì việc đếm có thể mở rộng được.

Page 8: Báo cáo bài tập lớn vi xử lí trong đo lường và điều khiển

III.2 Mạch in

Mạch in được vẽ bằng phần mềm vẽ mạch Orcad

Page 9: Báo cáo bài tập lớn vi xử lí trong đo lường và điều khiển

IV. Chương trình(phần mềm của hệ thống)

Chương trình thực thi trong hệ thống được viết bằng ngôn ngữ C dựa trên phần mềm Keil C. Chương trình được viết như sau:

#include <P89V51Rx2.H> // Khai báo thư viện P89V51RD2

sbit sensor = P2^3; // Khai báo dữ liệu dò được từ khối đầu vào đếm

sbit led1 = P2^4; // Khai báo các chân điều khiển quét Led 7 đoạn

sbit led2 = P2^5;

sbit led3 = P2^6;

sbit led4 = P2^7;

// Khai báo mảng giá trị Led 7 đoạn

unsigned int chu_so[10]={ 0x01, 0x67, 0x12, 0x42, 0x64, 0x48, 0x08, 0x63, 0x00, 0x40};

unsigned int dem, l1, l2, l3, l4;

void delay(int n)

{

int j;

for (j=0; j<n; j++);

}

void quet_led()

{

///////////////// Quet Led1/////

dem = l1;

led1=0;

P0 = chu_so[dem]; //Xuất gía trị;

delay(100);

led1=1;

Page 10: Báo cáo bài tập lớn vi xử lí trong đo lường và điều khiển

/////////////////Quet Led2/////

dem = l2;

led2=0;

P0 = chu_so[dem]; //Xuất gía trị;

delay(100);

led2=1;

/////////////Quet Led3/////

dem = l3;

led3=0;

P0 = chu_so[dem]; //Xuất gía trị;

delay(100);

led3=1;

/////////////////Quet Led4/////

dem = l4;

led4=0;

P0 = chu_so[dem]; //Xuất gía trị;

delay(100);

led4=1;

}

void main()

{

dem=0;

l1=l1=l3=l4=0;

led1=led2=led3=led4 = 0; //bật led

P0 = chu_so[dem]; //Hiển thị số 0

while (1)

{

Page 11: Báo cáo bài tập lớn vi xử lí trong đo lường và điều khiển

while (sensor == 0) quet_led() ;//Chờ xuất hiện sản phẩm;

while (sensor == 1) quet_led() ; //Chờ sản phẩm di qua;

l1++; //Nếu có sản phẩm, thì tăng biến đếm;

if (l1 > 9)

{

l1 = 0;

//Trở về giá trị 0;

l2++;

if (l2>9)

{

l2=0;

l3++;

if (l3 >9)

{

l3 = 0;

l4++;

if (l4>9)

{

l1=l2=l3=l4=0; //Trở lại ban đầu;

}

}

}

}

quet_led();

}

}