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

đồ án ĐK tốc độ động cơ DC hiển thị trên màn hình máy tính (có cos và mạch)

13 587 5

Đ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 13
Dung lượng 292 KB
File đính kèm DK TOC DO DONG CO HT MAN MAY TINH.rar (36 KB)

Nội dung

 Bộ nhớ chương trình Program Memory Không gian bộ nhớ chương trình của AT89 là 64K, tuy nhiên hầu hết các vi điều khiển AT89 trên thị trường chỉ tích hợp sẵn trên chip một lượng bộ nh

Trang 1

Báo cáo đồ án môn vi điều khiển nhóm 13

Lớp CDT – K9 Khoa Cơ Khí

Đề tài: Điều khiển tốc độ động cơ hiển thị trên màn

hình máy tính

Nhóm thực hiện: Nguyễn Văn Thảo Nguyễn Quang Huy

Cao Xuân Hòa

Trang 2

Phần I: Cơ Sở Lý thuyết

Năm 1981 họ vi điều khiển 8051 được hãng intel giới thiệu Họ vi điều khiển này gồm 128 byte RAM, 4 byte ROM, hai bộ định thời, một

cổng nối tiếp và bốn cổng vào/ra song song( độ rộng 8bit ) Cho đến bây giờ thì đã có rất nhiều các biến thể của 8051 do các hãng khác trên thế

giới sản xuất Vi điều khiển AT89S52 là một trong những biến thể của

8051 Và trong bài này chúng ta dùng vi điều khiển AT89S52 để điều

khiển tốc độ của động cơ

Giới thiệu về AT89S52

Cấu trúc ở dạng sơ đồ khối tổng quát

Cấu trúc bus

Bus địa chỉ của họ vi điều khiển 8051 gồm 16 dường tín hiệu ( thường gọi là bus địa chỉ 16 bit ) Với số lượng bít địa chỉ như trên, không gian nhớ của chip được mở rộng tối đa là 216 tương đương với 65536 địa chỉ Bus dữ liệu của họ vi điều khiển 8051 gồm 8 đường tín hiệu ( thường gọi

CPU

Bộ nhớ

chương

trình

Bộ nhớ

dữ liệu Vào/ra song

song

Vào/ra nối tiếp Ngắt Bộ nhớ đinh

thời/

bộ đếm

Time1 Timer0

P3 P2 P1

Trang 3

là bus dữ liệu 8 bit ) vì thế 8051 là họ vi điều khiển 8bit Với độ rộng của bus dữ liệu như vậy, các chip của họ 8051 có thể xử lý các nguồn dữ liệu 8bit trog một chu kỳ lệnh, nếu lớn hơn 8 bít thì dc chia thành nhiều dữ liệu 8bit để xử lý

CPU ( Central processing Unit )

CPU là đơn vị xử lý trung tâm, đó là bộ não của toàn bộ hệ thống vi

điện tử được tích hợp trên chip vi điều khiển CPU ca cấu tạo chính là một đơn vị xử lý số học và logic ALU ( Arithmethic Logic Unit ) là nơi

thực hiện tất cả các phép toán số học và phép logic cho quá trình xử lý

Bộ nhớ chương trình ( Program Memory )

Không gian bộ nhớ chương trình của AT89 là 64K, tuy nhiên hầu hết các vi điều khiển AT89 trên thị trường chỉ tích hợp sẵn trên chip một lượng bộ nhớ chương trình nhất định và chiếm dãi địa chỉ từ 0000h trở đi.

AT89s52 có 4k bộ nhứ chương trình loại Flash tích hợp sẵn bên trong

chip Đây là bộ nhớ cho phép ghi/xóa nhiều lần Bộ nhớ chương trình được dùng để chứa mã chương trình nạp vào chip Mỗi lện được mã hóa bởi một hoặc vài byte, dung lượng của bộ nhớ chương trình phản ánh số lượng lệnh mà bộ nhớ có thể chứa được bộ nhớ đầu tiên của bộ nhớ

chương trình là 0x0000 chính là địa chỉ RESET của 8051 Ngay sau khi reset( do tăt/bật nguồn, do mức điện áp tại chân reset bị kéo lên 5V…),

CPU sẽ chảy đến thực hiện lệnh dặt tại địa chỉ này trước tiên, luôn luôn

là như vậy phần còn trống trong không gian chương trình không được dùng Nếu muốn mở rộng bộ nhớ chương trình ta phải dùng bộ nhớ ngoài Khi dùng bộ nhớ ngoài thì bộ nhớ trong của chip sẽ không được

dùng nữa và nó chiếm dãi địa chỉ ngay từ 0x0000.

Bộ nhớ dữ liệu ( Data Memory )

8051 có bộ nhớ dữ liệu là 64k địa chỉ, đó cũng là dung lượng bộ nhớ

dữ liệu lớn nhất trong họ 8051 Đây chính là nơi chứa các biến trung gian

trong quá trình hoạt động của chip

Trang 4

Đối với các chip có bộ nhớ SRAM 128 byte thì địa chỉ của các byte SRAM này được đánh số từ 00H đến 7FH Đối với các chip có bộ nhớ SRAM 256 byte thì địa chỉ của các byte trong SRAM được đánh số

từ 00H đến FFh SRAM có địa chỉ từ 00H – 7FH là vùng RAM thấp và phần có địa chỉ từ 80H – FFH là vùng RAM cao.

Cổng vào/ra song song( I/O Port )

8051 có 4 cổng vào/ra song song là P0,P1,P2,P3 Tất cả các cổng này

đều là cổng vào/ra cả hai chiều 8bit Các bit của mỗi cổng là một chân trên chip, như vậy mỗi cổng sẽ có 8 chân trên chip

Cổng P0 không có điện trở treo cao bên trong, mạch lái tạo mức cao chỉ có khi sử dụng cổng này với tính năng là bus dồn kênh địa chỉ/dữ liệu như vậy với chức năng ra thông thường thì P0 là cổng ra còn với

chức năng vào thì P0 là cổng vào cao trở Nếu muốn sử dụng P0 làm

cổng vào/ra thông thường ta phải thêm điện trở bên ngoài Giá trị điện trở

bên ngoài thường là 4k – 10k

Các cổng p1, p2, p3 đều có điện trở bên trong, do đó có thể dùng

với các chức năng cổng vào/ra thông thường mà không cần thêm điện trở

ngoài Thực chất điện trở bên ngoài các FET không phải điện trở tuyến

tính thông thường nhưng khả năng tạo dòng ra của mạch lái khi đầu ra ở mức cao( hoặc khi là đầu vào ) rất nhỏ, chỉ khoảng 100 micro Ampe

Cổng vào ra nối tiếp ( Serial Port )

Cổng này thường chỉ được sử sụng khi giao tiếp với mày tính hoặc

giao tiếp với vi điều khiển khác Cổng nối tiếp có hai thanh ghi SCON,

SBUF và PCON Thanh ghi PCON không định địa chỉ bit và có bít 7 là SMOD quy định tốc độ truyền của cổng nối tiếp ( tốc độ gấp đôi nếu SMOD = 1 và không gấp đôi nếu SMOD = 0).

Trang 5

Ngăt ( Interrupt)

8051 chỉ có một số ít các nguồn ngắt hay gọi là nguyên nhân ngắt Mỗi ngắt có một vector ngắt riêng đó là một địa chỉ cố định nằm trong bộ nhớ chương trình Khi sảy ra ngắt thì CPU sẽ tự động chuyển đến thực hiện lệnh tại địa chỉ này

Các nguồn ngắt

STT Tên ngắt Mô tả Cờ ngắt Thanh ghi

chứa cờ ngắt

Vector ngắt

1 INT0 Ngắt ngoài 0

khi co tín hiệu tích cực theo kiểu đã chọn

ở chân P3.2

IE0 TCON 0x0003

2 Timer0 Ngắt tràn

timer0 khi giá trị timer0 tràn từ giá trị max về giá trị min

TF0 TCON 0x000B

3 INT1 Ngắt ngoài 1

khi có tín hiệu tích cực theo kiểu đã chọn

ở chân P3.3

IE1 TCON 0x0013

4 Timer2 Ngắt tràn

timer1 khi giá trị timer1 tràn từ max đến min

TF1 TCON 0x001B

5 Por nối

tiếp

Khi vi điều khiển nhận hoặc truyền xong 1byte

TI, RI SCON 0x0023

Thanh ghi cho phép ngăt IE (interrupt Enable)

Trang 6

Bit Ký hiệu Địa chỉ

bit

Mô tả

IE.7 EA AFH Cho phép hoặc cấm toàn bộ

IE.6 ─ AEH Không được định nghĩa

IE.5 ET5 ADH Cho phép ngăt từ timer2

IE.4 ES ACH Cho phép ngắt từ port nối tiép

IE.3 ET1 ABH Cho phép ngắt từ timer1

IE2 EX1 AAH Cho phét ngắt ngoài 1

IE1 ET0 AH9 Cho phép ngắt từ timer0

IE.0 EX0 A8H Cho phép ngắt ngoài 0

Để cho phép một ngắt ngoài thì bit tương ứng với ngắt đó và bit

EA phải được đặt băng 1 Thanh ghi IE là thanh định địa chỉ bit nên có thể dùng các lệnh tác động bit để tác động riêng lẻ lên từng bit mà không làm anh hưởng đến các giá trị bit khác Cờ ngát hoạt đông jđộc lập với việc cho phép ngắt, điều đó có nghĩa là cờ ngắt sẽ tự động đật lên bằng 1 khi có sự kiện gây ngắt sảy ra bất kể sự kiện đó có được cho phép ngắt hay không Do vậy, trước khi cho phép một ngắt ta nên xóa cờ ngắt đó

để đảm bảo sau khi cho phép các sự kiện gây ngắt trong quá khứ không thể gây ngắt nữa

8051 có hai ngắt ngoài là INT0 và INT1 Ngăt ngoài được hiểu là ngắt được gây ra bởi sự kiện mức logic 0 ( mức điện áp thấp gần về 0V)

hoặc sườn xuống ( sự chuyển mức điện áp từ mức cao về mức thấp ) sảy

ra ở chân ngăt tương ứng ( P3.2 với ngắt ngoài 0 và P3.3 với ngắt ngoài 1) Việc lựa chọn kiểu ngăt được thực hiện bằng các bit IT ( Interrupt Type ) nằm trong thanh ghi TCON Đây là thanh ghi điều khiển timer nhưng 4 bit LSB ( bit 0 - 3) được dùng cho các ngắt ngoài.

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

Khi ITx = 1 thì ngắt ngoài tương ứng được chọn kiểu là ngắt theo sườn xuống, ITx = 0 thì ngắt theo mức thấp Cac bit IE là các bit cờ ngắt

ngoài chỉ có tac dụng trong trường hợp ngắt theo sườn xuống khi kiểu ngắt theo sườn xuống được chọn thì ngắt sẽ sảy ra duy nhất một lần khi

có sườn xuống của tín hiệu, sau đó khi tín hiệu ở mức thấp hoặc sườn lên hay ở mức cao cũng không sảy ra ngắt cho đến khi có sườn xuống tiếp theo Cờ ngắt IE sẽ có khi có sườn xuống và tự động bị xóa khi CPU bắt đầu xử lý ngắt Nếu kiểu ngắt ở mức thấp được chọn thì ngắt sẽ sảy ra bất kỳ khi nào tín hiệu tại chân ngắt ở mức thấp và cờ ngắt IE không được sử dụng Thông thương thì người ta chọn ngắt theo sườn xuống

Trang 7

Bộ định thời/ bộ đếm (Timer/Counter)

AT89S52 có 3 bộ định thời 16bit là Timer0, Timer1, Timer2 Giá trị

đếm max là 65536 Các bộ định thời hoạt động độc lập với nhau Sau khi

cho phép hoạt động thì cứ có thêm một xung tại đầu vào đếm thì giá trị của Timer tăng thêm một đơn vị Khi tăng đến giá trị max thì timer tự

động được đưa về giá trị min ( thông thường min = 0 ) Sự kiện gọi là tràn timer và có thể gây ra ngăt nếu tràn timer được cho phép ( bit ETx =

1) Việc cho Timer hoạt động hay dừng được thực hiện bở các bít TR

trong thanh ghi TCON ( đánh địa chỉ từng bit )

TRx = 1 thì Timer hoạt động, TRx = 0 thì Timer không hoạt động dù

vẫn có xung vào Khi dừng đếm, giá trị của timer giữ nguyên Cac bit TFx là các cờ báo tràn của timer, khi sự kiện tràn say ra cờ tràn sẽ tự động được đặt bằng 1 và nếu ngắt tràn timer được cho phép thì ngắt sẽ

sảy ra Khi CPU xử lý ngắt tràn timer cờ ngắt TFx tương ứng sẽ tự động

được xóa băng phần mềm Giá trị đếm 16bit của timer được lưu trong

thanh ghi THx ( byte cao) và thanh TLx ( byte thấp ) Hai thanh ghi này

có thể ghi đọc bất kỳ lúc nào Tuy nhiên nên dừng timer ( TRx = 0) trước

khi ghi/đọc các thanh ghi chứa giá trị đếm các timer có thể hoạt động

theo nhiều chế độ được quy đinh bởi các bit trong thanh TMOD.

Để xác định thời gian người ta chọn nguồn xung nhịp (clock) đưa vào

đếm trong timer là xung nhịp bên trong( dành cho CPU) Nguôn xung

clock này thường có tần số ổn định, do đó từ số đếm của timer ta có thể xác định thời gian thực

Để đếm các sự kiện bên ngoài ta chọn xung vuông để đưa vào timer

(0V/5V) Các tín hiệu này sẽ được nối với các bit cổng dồn kênh thêm các tính năng T0/T1/T2 Khi có sự thay đổi mức xung thì timer sẽ tăng

thêm một dơn vị cho đến lúc tràn Và lúc này người ta gọi timer là counter

Giao tiếp với máy tính

Như đã nói trên thì AT89S52 có thể giao tiếp với bên ngoài qua cổng nối tiếp Do mức logic ở vi điều khiển và cổng COM của máy tính khác nhau nên chúng ta phải sử dụng vi mạch MAX232 để chuẩn hóa mức logic này

So sánh điện áp của các mức logic giữa RS232C và TTL

Trang 8

Đối tượng Mức logic Mức điện áp

Cổng COM

(mức RS232C)

AT89S52

( mức TTL)

Vi mạch MAX232 chứa hai bộ chuyển đổi mức logic TTL sang RS232C và ngược lại

Phần II: Mạch Nguyên Lý

Trang 9

Các bộ phận chính trong mạch

Vi điều khiển AT89S52

Đây là chip điều khiển trong mạch

Trang 10

Bộ giao tiếp với máy tính

IC MAX 232 thực hiện biến đổi số - tương tự để giao tiếp với máy tính qua cổng CON 9 (Cổng này có 9 chân)

Bộ dao động tạo xung

Thạch anh ( crystal) dao động với tần số 12MHz để cấp xung cho AT89S52

Trang 11

Bộ điều khiển tốc độ động cơ

Thay đổi tốc độ của động cơ bằng cách thay đổi dòng điện vào động cơ thông qua điều chỉnh biến trở R2

Mạch nguyên lý

Trang 12

Chương trình lập trình cho AT89S52

#include<regx52.h>

#include<stdio.h>

unsigned int i,n,v;

void delay50ms(int n)

{

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

{

TH0=39;

TL0=176;

TR0=1;

while(!TF0);

TF0=0;

TR0=0;

}

}

void main()

{

SCON=0X52;

TMOD=0X21;

TH1=TL1=-3;

TR1=1;

IE=0X81;

IT0=1;

n=6;v=0;

while(1)

{

v=0;

delay50ms(A[n]);

if((v<=30)&&(n<11)) n++;

if((v>=100)&&(n>0))n ;

v=v*600/A[n];

printf("VAN TOC CUA MOTOR (VONG/PHUT) : %d\n",v);

Trang 13

}

}

{

v++;

Ngày đăng: 27/04/2016, 19:02

TỪ KHÓA LIÊN QUAN

w