NOI DUNG
Transcript of NOI DUNG
![Page 1: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/1.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
MỤC LỤC
LỜI CẢM ƠN -------------------------------------------------------------------------
LỜI MỞ ĐẦU ------------------------------------------------------------------------
Phần I : Giới thiệu các linh kiện trong mạch.
1.1 Các linh kiện sử dụng trong mạch ---------------------------------------------------------1.2 Giới thiệu linh kiện ---------------------------------------------------------------------------1.2.1 Led 7 đoạn1.2.2 Transistor1.2.3 IC 89C51
1.2.4 IC L298NPhần 2 :Xử lý Điều rộng xung (PWM) điều khiển động cơ.
2.1 Ngắt do bộ định thời Timer 0 ------------------------------------------------------2.2 Tạo PWM từ Timer 0 ---------------------------------------------------------------
Phần 3 : Tinh toán thiết kế mạch --------------------------------------------------------------
3.1 Sơ đồ khối -----------------------------------------------------------------------------3.2 Phân tích chức năng của từng khối và tính toán thiêt kế mạch ------------
3.2.1 Khối điều khiển trung tâm3.2.2 Khối bàn phím3.2.3 Khối hiển thị3.2.4 Khối Reset 3.2.5 Khối công suất
3.3 Sơ đồ Mạch nguyên lý 3.4 Sơ đồ thi công.
Phần 4 : Lưu đồ - Chương trình
4.1 Lưu đồ chương trình ----------------------------------------------------------------4.2 Lưu đồ giải thuật---------------------------------------------------------------------4.3 Chương trình -------------------------------------------------------------------------
Phần 5 : Kết luận----------------------------------------------------------------------------------
Phần 6 : Tài liệu tham khảo----------------------------------------------------------------------
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 1
![Page 2: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/2.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
PHẦN 1
GIỚI THIỆU CÁC LINH KIỆN TRONG MẠCH
1.1 CÁC LINH KIỆN SỬ DỤNG TRONG MẠCH
Điện trở Tụ điện Diode Led đơn Transistor Led 7 đoạn IC 89C51 IC L298N
1.2 GIỚI THIỆU LINH KIỆN1.2.1 Led 7 đoạn
Hình - Sơ đồ chân và cấu tạo của led 7 đoạnLed 7 đoạn là một công cụ thông dụng được dùng để hiển thị thông số dưới dạng
các số từ 0 đến 9. Mặc dù công cụ LCD giúp ta thể hiện các thông số một cách linh động hơn nhưng LED 7 đoạn vẫn được sử dụng nhiều trong công nghiệp do các ưu thế của nó như : ít chịu ảnh hưởng của nhiệt độ, dễ tạo sự chú ý và góc nhìn rộng.
Led 7 đoạn gồm 7 đoạn Led được đánh dấu là các ký tự a, b, c, d, e, f, g và một dấu chấm thập phân ký hiệu là dp. Ta có thể xem Led 7 đoạn là một tổ hợp gồm 8 LED. 8 LED này có một đầu ( Anode hoặc Cathode ) được nối chung và được bố trí theo một qui tắc nhất định dùng để hiển thị các chữ số thập phân.
Có hai loại LED 7 đoạn, đó là loại Anode chung ( cực Anode của các LED được nối chung với nhau) và loại Cathode chung ( cực Cathode của các LED được nối chung với nhau ). Tùy theo từng loại LED mà ta có các phương pháp điều khiển các LED trong tổ hợp đó sáng tắt một cách thích hợp. Đối với loại Anode chung, một LED sẽ được bật sáng nếu mức logic đưa vào chân điều khiển đoạn LED đó là mức logic 0. Đối với loại Cathode chung, một LED sẽ được bật sáng nếu mức logic đưa vào chân điều khiển đoạn
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 2
![Page 3: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/3.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
LED đó là mức logic 1. Một phương pháp để xác định chính xác các chân điều khiển của Led 7 đoạn là kiểm tra từng chân của LED đó.
Dựa vào hình vẽ cấu tạo LED 7 đoạn ta có thể hiểu một phần nào phương pháp hiển thị của LED. Ví dụ, muốn hiển thị số “6”, ta sẽ điều khiển các đoạn LED a, c, d, e, g, f sáng lên.
Việc điều khiển sáng tắt được thực hiện bằng cách đưa dữ liệu thích hợp vào các chân từ a-g và dp ( tạm gọi là các chân dữ liệu) của LED 7 đoạn. Đó là cách hiển thị từng LED. Tuy nhiên, trong thực tế, để tiết kiệm số chân cần thiết để điều khiển cùng một lúc nhiều LED 7 đoạn, các dữ liệu của các LED sẽ được nối song song với nhau, các chân anode chung ( hoặc cathode chung) được dùng để cho phép LED đó sáng hay tắt (tạm gọi là các chân điều khiển).
1.2.2 TransistorTransistor BJT gồm ba miền tạo bởi hai tiếp giáp p–n, trong đó
miền giữa là bán dẫn loại p. Miền có mật độ tạp chất cao nhất, kí hiệu n+ là miền phát (emitter). Miền có mật độ tạp chất thấp hơn, kí hiệu n, gọi là miền thu (collector). Miền giữa có mật độ tạp chất rất thấp, kí hiệu p, gọi là miền gốc (base). Ba chân kim loại gắn với ba miền tương ứng với ba cực emitter (E), base (B), collecter (C) của transistor.
Đặc tính kỹ thuật của transistor :
-Điện áp giới hạn : có 3 loại :
BVCEO : điện áp đánh thủng giữa C và E khi cực B hở.
BVCBO : điện áp đánh thủng giữa C và B khi cực E hở.
BVEBO : điện áp đánh thủng giữa E và B khi cực C hở.
-Dòng điện giới hạn :
Icmax là dòng điện tối đa ở cực C và Ibmax là dòng điện tối đa ở cực b.
Dòng tối đa đưa vào cực B là : 10mA.
Dòng tối đa đưa vào cực C là : 100mA.
Chức năng của transistor chủ yếu là khuyếch đại tín hiệu và đóng ngắt các mạch điện.
-Công suất giới hạn :
Khi có dòng điện qua transisor sẽ sinh ra 1 công suất nhiệt làm nóng
transistor, công suất sinh ra được tính theo công thức : PT=IC.VCE
Ký hiệu: transistor loại PNP :
1.2.3 IC 89C51
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 3
![Page 4: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/4.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
a. Khối điều khiển trung tâm ( CPU ) :Vi điều khiển 89C51. Với 4 Port điều khiển.
b. Sơ đồ khối của một hệ vi xử lý: Định nghĩa hệ vi xử lý:- Khả năng được lập trình để thao tác trên các dữ liệu mà không cần sự can
thiệp của con người.- Khả năng lưu trữ và phục hồi dữ liệu. Tổng quát hệ vi xử lý gồm:
Phần cứng (hardware): các thiết bị ngoại vi → để giao tiếp với con người. Phần mềm (software):chương trình → để xử lý dữ liệu.
CPU (Central Processing Unit): đơn vị xử lý trung tâm. RAM (Random Access Memory): bộ nhớ truy xuất ngẫu nhiên. Rom (Read Only Memory): bộ nhớ chỉ đọc. Interface Circuitry: mạch điện giao tiếp. Peripheral Devices (Input): các thiết bị ngoại vi (thiết bị nhập) Peripheral Devices (Output): các thiết bị ngoại vi (thiết bị xuất). Addressbus: bus địa chỉ. Data bus: bus dữ liệu. Control bus: bus điều khiển.
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 4
![Page 5: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/5.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
c. Đơn vị xử lý trung tâm:
CPU đóng vai trò chủ đạo trong hệ vi xử lý, nó quản lý tất cả các hoạt động của hệ và thực hiện tất cả các thao tác trên dữ liệu.
CPU là một vi mạch điện tử có độ tích hợp cao. Khi hoạt động CPU đọc mã lệnh được ghi dưới dạng các bit 0 và bit 1 từ bộ nhớ, sau đó nó sẽ thực hiện giải mã các lệnh này thành các dãy xung điều khiển tương ứng với các thao tác trong lệnh để điều khiển các khối khác thực hiện từng bước các thao tác đóvà từ đó tạo ra các xung điều khiển cho toàn hệ.
IR/IP (Instruction Register/Intruction Pointer): thanh ghi lệnh con trỏ lệnh. PC (Program Counter): bộ đếm chươngtrình. Instruction decode and control unit: đơn vị giải mã lệnh và điều khiển. ALU (arithmetic and Logic Unit): đơn vị số học và logic. Registers: Các thanh ghi.
Tóm lại: Khi hoạt động CPU sẽ thực hiện liên tục 2 thao tác: tìm nạp lệnh và giãi mã - thực hiện lệnh.
Thao tác tìm nạp lệnh:
Nội dung của thanh ghi PC đượcCPU đưa lên bus địa chỉ. Tín hiệu điều khiển đọc (Read) chuyển sang trạng thái tích cực. Mã lệnh (Opcode) từ bộ nhớ được đưa lên bus dữ liệu. Mã lệnh được chuyển vào trong thanh ghi IR trong CPU. Nội dung của thanh ghi PC tăng lên một đơn vị để chuẩn bị tìm nạp lệnh
kế tiếp từ bộ nhớ.
Thao tác giải mã - thực hiện lệnh:
Mã lệnh từ thanh ghi IR được đưa vào đơn vị giải mã lệnh và điều khiển. Đơn vị giải mã lệnh và điều khiển sẽ thực hiện giải mã opcode và tạo ra
các tín hiệu để điều khhiển việc xuất nhập dữ liệu giữ ALU và các thanh ghi(Register).
Căn cứ trên các tín hiệu điều khiển này, ALU thực hịên các thao tác đã được xác định.
Một chuỗi các lệnh (Opcode) kết hợp lại với nhau để thực hiện một công việc có nghĩa được gọi là chương trình (Program) hay phần mềm(Softwave).
d. Bộ nhớ bán dẫn:- Bộ nhớ bán dẫn là một khác rất quan trọng của hệ vi xử lý, các chương
trình và dữ liệu đều được lưu giữ trong bộ nhớ.
Bộ nhớ bán dẫn trong hệ vi xử lý gồm:
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 5
![Page 6: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/6.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
ROM: bộ nhớ chương trình → lưu giữ chương trình điều khiển hoạt động của toàn hệ thống.
RAM: bộ nhớ dữ liệu → lưu giữ dữ liệu, một phần chương trình điều khiển hệ thống, các ứng dụng và kết quả tính toán.
Sơ lược về cấu trúc và phân loại ROM – RAM: ROM (Read Only Memory): bộ nhớ chỉ đọc RAM (Random Access Memory): bộ nhớ truy xuất ngẫu nhiên (bộ nhớ
ghi đọc)
e. Hệ thống bus:
Bus là tập hợp các đường dây mang thông tin có cùng chức năng. Việc truy xuất thông tin tới một mạch điện xung quanh CPU thì nó sử dụng 3 loại bus: bus địa chỉ, bus dữ liệu và bus điều khiển. CPU sử dụng hệ thống bus này để thực hiện các thao tác đọc(READ) và ghi(WRITE) thông tin giữa CPU với bộ nhớ hoặc các thiết bị ngoại vi.
Bus địa chỉ(Address bus):- Để chuyển tải thông tin của các bit địa chỉ.- Là loại bus 1 chiều(CPU→MEM hay I/O).- Để xác định bộ nhớ hoặc thiết bị ngoại vi mà CPU cần trao đổi thông tin.- Để xác định dung lượng bộ nhớ hoặc thiết bị ngoại vi mà CPU có khả
năng truy xuất.
Bus dữ liệu(Data bus):
- Để chuyển tải thông tin của các bit dữ liệu.- Là loại bus 2 chiều(CPU↔MEM hay I/O).- Để xác định số bit dữ liệu vi mà CPU có khả năng xử lý cùng một lúc.
Bus điều khiển (Control bus):
- Để chuyển tải thông tin của các bit dữ liệu(mỗi đường dây là một tín hiệu điều khiển khác nhau).
- Là loại bus 1 chiều(CPU→MEM - I/O hoặc MEM - I/O→ CPU ).- Để điều khiển các khối khác trong hệ và nhận tín hiệu điều khiển từ các
khối đó để phối hợp hoạt động.
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 6
![Page 7: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/7.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
f. Các chân của chip 89C51:
- Sơ đồ khối và chức năng các khối của chip 89C51:
CPU (Central Processing Unit): Đơn vị xử lý trung tâm → tính toán và điều khiển quá trình hoạt động của hệ thống.
OSC (Oscillator): Mạch dao động → tạo tín hiệu xung clock cung cấp cho các khối trong chip hoạt động.
Interrupt control: Điều khiển ngắt → nhận tín hiệu ngắt từ bean ngoài (INT0\, INT1\), từ bộ định thời (TIMER0, TIMER1) và từ cổng nối tiếp (SERIAL PORT), lần lượt đưa các tín hiệu ngắt này đến CPU để xử lý.
Other registers: Các thanh ghi khác → lưu trữ dữ liệu của các port xuất/nhập, trạng thái làm việc của các khối trong chip trong suốt quá trình hoạt động của hệ thống.
RAM (Random Access Memory): Bộ nhớ dữ liệu trong chip → lưu trữ các dữ liệu.
ROM (Read Only Memory): Bộ nhớ chương trình trong chip → lưu trữ chương trình hoạt động của chip.
I/O ports (In/Out ports): Các port xuất/nhập → điều khiển việc xuất nhập dữ liệu dưới dạng song song giữa trong và ngoài chip thông qua các port P0, P1, P2, P3.
Serial port: Port nối tiếp → điều khiển việc xuất nhập dữ liệu dưới dạng nối tiếp giữa trong và ngoài chip thông qua các chân TxD, RxD.
Timer 0, Timer 1: Bộ định thời 0, 1 → dùng để định thời gian hoặc đếm sự kiện (đếm xung) thông qua các chân T0, T1.
Bus control: Điều khiển bus _ điều khiển hoạt động của hệ thống bus và việc di chuyển thông tin trên hệ thống bus.
Bus system: Hệ thống bus → liên kết các khối trong chip lại với nhau.
- Sơ đồ chân và chức năng các chân của chip 8051:
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 7
![Page 8: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/8.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
Port 0:- Port 0 (P0.0 – P0.7) có số chân từ 32 – 39.- Port 0 có hai chức năng:- Port xuất nhập dữ liệu (P0.0 - P0.7) → không sử dụng bộ nhớ ngoài.- Bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7) → có sử dụng
bộ nhớ ngoài.
+ Lưu ý: Khi Port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử dụng các điện trở kéo lên bên ngoài.
- Khi lập trình cho ROM trong chip thì Port 0 đóng vai trò là ngõ vào của dữ liệu (D0 -> D7)
Port 1:- Port 1 (P1.0 – P1.7) có số chân từ 1 – 8.- Port 1 có một chức năng:- Port xuất nhập dữ liệu (P1.0 – P1.7) → sử dụng hoặc không sử dụng bộ
nhớ ngoài.- Khi lập trình cho ROM trong chip thì Port 1 đóng vai trò là ngõ vào của
địa chỉ byte thấp (A0 – A7)
Port 2:- Port 2 (P2.0 – P2.7) có số chân từ 21 – 28.
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 8
![Page 9: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/9.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
- Port 2 có hai chức năng:- Port xuất nhập dữ liệu (P2.0 – P2.7) → không sử dụng bộ nhớ ngoài.- Bus địa chỉ byte cao (A8 – A15) → có sử dụng bộ nhớ ngoài.- Khi lập trình cho ROM trong chip thì Port 2 đóng vai trò là ngõ vào của
địa chỉ byte cao (A8 – A11) và các tín hiệu điều khiển Port 3:- Port 3 (P3.0 – P3.7) có số chân từ 10 – 17.- Port 3 có hai chức năng:- Port xuất nhập dữ liệu (P3.0 – P3.7) → không sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt.- Các tín hiệu điều khiển → có sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt.- Khi lập trình cho ROM trong chip thì Port 3 đóng vai trò là ngõ vào của các tín hiệu điều khiển.
- Chức năng của các chân Port 3:
Bit Tên Địa chỉ bit Chức năng
P3.0 RxD B0H Chân nhận dữ liệu của port nối tiếp
P3.1 TxD B1H Chân phát dữ liệu của port nối tiếp
P3.2 INT0\ B2H Ngõ vào ngắt ngoài 0
P3.3 INT1\ B3H Ngõ vào ngắt ngoài 1
P3.4 T0 B4H Ngõ vào của bộ định thời đếm 0
P3.5 T1 B5H Ngõ vào của bộ định thời đếm 1
P3.6 WR\ B6H Điều khiển ghi bộ nhớ dữ liệu Ram ngoài
P3.7 RD\ B7H Điều khiển đọc bộ nhớ dữ liệu Ram ngoài
Chân PSEN\:- PSEN (Program Store Enable): cho phép bộ nhớ chương trình, chân số 29.- Chức năng:
• Là tín hiệu cho phép truy xuất (đọc) bộ nhớ chương trình (ROM) ngoài.• Là tín hiệu xuất, tích cực mức thấp.PSEN\ = 0 → trong thời gian CPU tìm-nạp lệnh từ ROM ngoài.PSEN\ = 1 → CPU sử dụng ROM trong (không sử dụng ROM ngoài).
- Khi sử dụng bộ nhớ chương trình bên ngoài, chân PSEN\ thường được nối với chân OE\ của ROM ngoài để cho phép CPU đọc mã lệnh từ ROM ngoài.
Chân ALE:- ALE (Address Latch Enable): cho phép chốt địa chỉ, chân số 30.
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 9
![Page 10: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/10.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
- Chức năng:• Là tín hiệu cho phép chốt địa chỉ để thực hiện việc giải đa hợp cho bus địa chỉ byte thấp và bus dữ liệu đa hợp(AD0 – AD7).• Là tín hiệu xuất, tích cực mức cao.
ALE = 0 → trong thời gian bus AD0 – AD7 đóng vai trò là bus D0 – D7.ALE = 1 → trong thời gian bus AD0 – AD7 đóng vai trò là bus A0 – A7.
- Khi lập trình cho ROM trong chip thì chân ALE đóng vai trò là ngõ vào của xung lập trình (PGM\)
- Khi lệnh lấy dữ liệu từ RAM ngoài (MOVX) được thực hiện thì 1 xung ALE bị bỏ qua.
Chân EA\:- EA (External Access): truy xuất ngoài, chân số 31.- Chức năng:
• Là tín hiệu cho phép truy xuất (sử dụng) bộ nhớ chương trình (ROM) ngoài.• Là tín hiệu nhập, tích cực mức thấp.EA\ = 0 → Chip 8051 sử dụng chương trình của ROM ngoài.EA\ = 1 → Chip 8051 sử dụng chương trình của ROM trong.
- Khi lập trình cho ROM trong chip thì chân EA đóng vai trò là ngõ vào của điện áp lập trình (Vpp = 12V/89xx, 21V/80xx,87xx)+ Lưu ý: Chân EA\ luôn luôn phải được nối lên Vcc (sử dụng chương trình của ROM trong) hoặc xuống Vss (sử dụng chương trình của ROM ngoài),không bao giờ được phép bỏ trống chân này.
Chân XTAL1, XTAL2:- XTAL (Crystal): tinh thể thạch anh, chân số 18-19.- Chức năng:
• Dùng để nối với thạch anh hoặc mạch dao động tạo xung clock bên ngoài, cung cấp tín hiệu xung clock cho chip hoạt động.• XTAL1 → ngõ vào mạch tạo xung clock trong chip.• XTAL2 → ngõ ra mạch tạo xung clock trong chip.
Chân RST:- RST (Reset): thiết lập lại, chân số 9.- Chức năng:
• Là tín hiệu cho phép thiết lặp (đặt) lại trạng thái ban đầu cho hệ thống.• Là tín hiệu nhập, tích cực mức cao.RST = 0 _ Chip 8051 hoạt động bình thường.RST = 1 _ Chip 8051 được thiết lặp lại trạng thái ban đầu.
Chân Vcc, GND:- Vcc, GND: nguồn cấp điện, chân số 40-20.
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 10
![Page 11: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/11.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
- Chức năng:• Cung cấp nguồn điện cho chip 89V51 hoạt động.• Vcc = +5V ± 10%.• GND = 0V.
g. Tổ chức bộ nhớ: - Bộ vi xử lý có không gian bộ nhớ chung cho dữ liệu và chương trình.
Chương trình và dữ liệu nằm chung trên RAM trước khi đưa vào CPU để thực thi.
- Bộ vi điều khiển có không gian bộ nhớ riêng cho dữ liệu và chương trình
Chương trình và dữ liệu nằm trên RAM và ROM trước khi đưa vào CPU để thực thi.
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 11
![Page 12: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/12.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
- Tổ chức bộ nhớ của chip 8051:
Không gian bộ nhớ của chip 89C51
h. Thanh ghi chức năng đặc biệt:- Thanh ghi A:
- Thanh ghi B:
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 12
![Page 13: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/13.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
- Thanh ghi từ PSW:
- Thanh ghi SP:
- Thanh ghi DPTR:
- Thanh ghi Port xuất nhập:
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 13
![Page 14: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/14.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
- Thanh ghi Port nối tiếp:
- Thanh ghi định thời:
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 14
![Page 15: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/15.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
- Thanh ghi ngắt:
Cấu trúc thanh ghi IE:
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 15
![Page 16: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/16.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
Hai điều kiện để một ngắt được phép hoạt động là: Bit EA=1. Bit ngắt tương ứng =1.
1.2.4 IC L298N
- Điện áp cấp lên đến 46V
- Tổng Dòng DC chịu đựng lên đến 4A
- Điện áp bão hòa
- Chức năng bảo vệ quá nhiệt
- Điện áp logic‘0’từ 1.5V trở xuống
a. Tần công suất ngõ ra:
IC L298 tích hợp 2 tầng công suất (A, B). Tần công suất chính là mạch cầu
và ngõ ra của nó có thể lái các loại tải cảm thông dụng ở nhiều chế độ hoạt
động khác nhau (tùy thuộc vào sự điều khiển ở ngõ vào) .
Dòng điện từ chân ngõ ra chảy qua tải đến chân cảm ứng dòng : điện trở
ngoài RSA, RSB cho phép việc cảm ứng cường độ dòng điện này.
b. Tần ngõ vào:
Mỗi cầu được điều khiển bởi 4 cổng ngõ vào In1, In2, EnA, và In3, In4, EnB.
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 16
![Page 17: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/17.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
Các chân In có tác dụng khi chân En ở mức cao, khi chân En ở mức thấp, các
chân ngõ vào In ở trạng thái cấm. Tất cả các chân đều tương thích với chuẩn
TTL.
PHẦN 2
XỬ LÝ ĐIỀU RỘNG XUNG (PWM) CHO ĐỘNG CƠ
Để điều khiển được tốc độ động cơ thì ta chỉ cần thay đổi độ rộng xung trong vi điều khiển. Độ rộng xung càng lớn thì động cơ quay càng nhanh. Như chúng ta đã biết thì việc điều khiển nhấp nháy 1 con LED cũng là chúng ta đã điều chế được PWM rồi nhưng xung đó có độ rộng thay đổi và tần số lớn và có thể điều khiển nó bằng hàm trễ (delay). Tuy nhiên khi dùng hàm delay thì trong thời gian xung lên 5V và xuống 0V thì vi điều khiển không làm gì cả hơn nữa việc tạo xung hàm delay thì nếu ta muốn phát xung ở 2 kênh có độ rộng thay đổi là rất khó khăn cho nên chúng ta sử dụng bộ định thời timer ở đây là phương pháp tối ưu nhất.
2.1 Ngắt do bộ định thời Timer 0
Ngắt là sự đáp ứng những sự kiện bên trong và bên ngoài nhằm thông bào cho bộ vi điều khiển biết thiết bị đang cần phục vụ.
Một chương trình không có ngắt thì chạy liên tục, còn chương trình mà có ngắt thì cứ khi nào có ngắt được đảm bảo thì con trỏ sẽ nhảy sang hàm ngắt thực hiện xong thì hàm ngắt quay trở về đúng chỗ cũ và thực hiện tiếp chương trình chính. Nhìn vào tiến trình của hàm main và có ngắt : Chương trình chính đang chạy, ngắt xẩy ra, thực hiện hàm ngắt rồi quay lại chương trình chính. Thời gian thực
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 17
![Page 18: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/18.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
hiện hàm ngắt rất nhỏ cho nên thời gian thực hiện hàm ngắt không ảnh hưởng gì đến chức năng của hàm chính như vậy là trong hàm ngắt thực hiện 1 công việc và trong hàm chính chúng ta thực hiện 1 công việc.
Hàm ngắt: Void tenhamngat(void) interrupt nguồn ngắt { // Chương trình ngắt ở đây } + Chú ý về hàm ngắt.
- Hàm ngắt không được trả lại hay truyền biến vào hàm- Tên hàm bất kỳ- Interrupt là hàm ngắt phải phân biệt với hàm khác - Nguồn ngắt từ 0-5 theo bảng vecto ngắt- Băng thanh ghi Ram chọn từ 0-3
Các bảng của nguồn ngắt.
2.2 Tạo PWM từ Timer 0a. Cách tạo hàm ngắt
Để tạo được hàm ngắt ta phải làm những công việc sau đây:- Khởi tạo hàm ngắt:
Dùng ngắt nào thì cho phép ngắt đó hoạt động bằng cách gán giá trị cho thanh ghi cho phép ngắt IE
- Cấu hình ngắt:
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 18
![Page 19: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/19.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
Trong 1 ngắt có nhiều chế độ . Với ngắt Timer0 cấu hình cho nó chạy ở chế độ nào, chế độ timer hay counter, chế độ 8bit ,16bit…bằng cách gán cho giá trị tương ứng TMOD.
- Bắt đầu chương trình ngắt :+ Trước khi chạy chương trình ngắt ta phải cho phép ngắt toàn cục được xẩy ra bằng cách gán EA =1 thì ngắt mới xẩy ra + Các giá trị thanh ghi TCON.
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 19
![Page 20: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/20.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
b. Tạo PWM có chu kì max : 100us- Tạo timer 0Do yêu cầu của bài toán là điều khiển tốc độ động cơ quay nhanh và quay
chậm trong khi chạy thuận nghịch nên dữ nguyên chu kì và thay đổi thời gian mở. Yêu cầu như:
+ Động cơ quay thuận nghịch bình thường : 1000us+ Động cơ tăng tốc lớn nhất : 100us+ Động cơ giảm tốc lớn nhất : 2000usKhi bắt đầu cho timer 0 chạy thì bộ đếm của timer sẽ đếm dao động thạch
anh, cứ 12 dao động cửa thạch anh thì bộ đếm timer 0 TL0 sẽ đếm tăng 1 , có thể nói timer 0 đếm chu kì máy đối với chế độ 8bit
TL0 là thanh ghi 8 bit nó đếm từ 0 đến 255 . Nếu nó đếm đến 256 thì nó tràn bộ đếm . TL0 lại quay về 0 và cờ ngắt TF0 tự động nạp lại giá trị 1 và ngắt được xảy ra
Như đối với bài toán này thì ta chỉ cần tạo timer 0 là 100us nên ta tính theo công thức ta có :
Timer0 = (255 – TL0) * 1us
Như vậy để tạo được timer0 là 100us thì cần phải gán giá trị TL0=155 thì nó đếm từ 155 – 255 tức là 100 lần thì ngắt mới xẩy ra
Để điều khiển nhanh chậm của động cơ ta phải tạo ra các xung có độ rộng là 5%, 10%.......95%,100%.
Như trên ta có khoảng thời gian kéo lên 5V là T1. Xung có độ rộng 10% tức là T1/T=10%......
- Nguyên lý hoạt động PWM PWM : Đưa ra để mở các transitor , xung có độ rộng lớn hơn thì transitor
sẽ mở lâu hơn động cơ sẽ quay nhanh hơn nhưng mà không tuyến tính . Không có xung thì động cơ sẽ không quay, xung có độ rộng 100% thì động cơ quay là lớn nhất. Tuy nhiên xung phải lớn hơn 1 mức nào đó mới đủ khởi động động cơ.
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 20
![Page 21: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/21.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
Để có thể thay đổi được độ rộng xung theo 10 cấp khác nhau ( lấy giá trị quay thuận nghịch lúc bình thường là 1000us) với chu kì là 2000us.ta phải khởi tạo timer cứ 1000us lại ngắt 1 lần.
Hàm khởi tạo timer 0Như đã nói ở trên muốn có giá trị timer0 nào chỉ cần gán cho TL0 để cho
thanh ghi đếm sau đó tràn nhưng ở đây do tạo timer là 100us nên ta dùng chế độ 2 8 bit tự nạp
void khoitaotimer0(void)// Ham khoi tao{
EA=0;// Cam ngat toan cuc TMOD=0x02;// Timer 0 che do 2 8 bit auto reload TH0=0x9B;// Gia tri nap lai 155 doi ra so hex TL0=0x9B;// Gia tri khoi tao 155 doi ra so hex ET0=1;// Cho phep ngat timer 0 EA=1;// Cho phep ngat toan cuc TR0=1;// Chay timer 0 bat dau dem so chu ki may
}
Hàm ngắt.bit PWM;unsigned char dem=0;// Khai bao bien dem de dem tu 1 den 10unsigned char phantram_PWM =10 ;// Bien chua phan tram xung(0...10)void timer0(void) interrupt 1 //Ngat timer 0{TR0=0;// Dung chay timer 0TF0=0;// Xoa co, o che do co tu duoc xoadem++;if(dem<phantram_PWM) PWM=1;// Neu bien dem < phan tram xung thi dua gia tri 1 ra chan, xung 5Velse PWM=0;// Neu dem = phan tram xungif(dem==20) dem=0;// Neu dem du 20 thi gan lai bang 0 de bat dau chu ki moiTR0=1;// Cho chay timer}
Do yêu cầu bài toán là điều khiển thuận nghịch nên ta cần phải lưu biến PWM này. Do PWM có chu kì không đổi nên do đó ta chỉ cần thay đổi phantram_PWM là có thể thay đổi được độ rộng xung.
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 21
![Page 22: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/22.jpg)
Khối nguồn
Vi điều khiểnAT89c51
Tạo xung dao động
Reset
Khối bàn phím
Khối công suất điều khiển động
cơ DC
Khối hiển thị
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
PHẦN 3
TÍNH TOÁN THIẾT KẾ MẠCH
3.1 Sơ đồ khối
3.2 Phân tích chức năng của từng khối và tính toán thiêt kế mạch
3.2.1 Khối điều khiển trung tâmVi điều khiển AT89C51 là phần tử thu nhập xử lý thông tin và đưa ra các tín
hiệu điều khiển thiết bị.
3.2.2 Khối bàn phím .Sử dụng 5 phím. Sơ đồ như sau :
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 22
![Page 23: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/23.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
P1.0 đến P1.4 được xem như các chân nhận tín hiệu ngõ vào từ bàn phím.
Bình thường các phím được nối qua điện trở và kéo lên nguồn Vcc.
Khi nhấn phím thì ta thực hiện nối xuống mass.
Các phím được ấn thường xảy ra hiện tượng nảy trong khoảng 10 – 20 ms
đầu:
Trong thiết kế không sử dụng mạch chống nảy bằng phần cứng, phần chống
nảy sẽ được thực hiện bằng phần mềm. Khi lập trình đọc trạng thái các phím, ta chỉ
cần chờ khoảng 10 – 20 ms rồi mới đọc dữ liệu là khắc phục được.
3.2.3 Khối Reset hệ thống
Để reset 89C51 qua phím ấn, chân reset phải ở mức cao ít nhất 2 chu kỳ máy
và điện áp reset Vreset phải lớn hơn 2.5V. Sơ đồ mạch như sau :
Vreset = Vcc* exp(
TR 8∗C 18 )
Chọn Vreset = 3V, T=40ms, R8 = 8K2 => C18 =
40 . 10−3
8,2 . 103 . ln( 53
)= 9,6.10-6 F
Vậy chọn C18 = 10 µF và R8 = 8,2 KΩ
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 23
![Page 24: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/24.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
3.2.3 Khối hiển thị
Để hiển thị tốc độ, ta cần trong đó 2 Led sẽ hiển thị số từ 0 đến 20 .
Các chân chọn led được sử dụng vì phương pháp hiển thị quét led được chọn.
So với phương pháp chốt, phương pháp quét led sẽ đơn giản phần cứng hơn, phần
mềm không quá khó và điểm đặc biệt là ít tiêu tốn công suất từ nguồn.
Điện áp rơi trên các đoạn của Led thường là 2V, dòng cung cấp tốt nhất cho
mỗi đoạn khoảng 10 mA. Để hiện thị ký hiệu nhiệt độ, mỗi led cần thấp sáng 4
đoạn tương đương với dòng tổng qua 4 led là 40 mA. Như vậy áp rơi trên các điện
trở R11, R12 sẽ là : Vcc-2 = 5-2 = 3V và dòng qua nó là 40 mA. Từ đó suy ra giá trị
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 24
Q2A1015
Q1A1015
R1
10k
R2
10k
P0.0 P0.1
12345678
161514131211109
RN1
4.7K
P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7
LED 1LED 2
![Page 25: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/25.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
các điện trở R11 = R12 = 3
40=
75 Ω . Vậy ta chọn R11 = R12 = 82 Ω là giá trị tiêu
chuẩn.
Để tính các trở R9 và R13 cho mạch chọn led, ta chọn transitor A1015 :
ICMAX = -150mA
β = 10 – 400
VCESAT MAX = -0,3 V
VBESAT MAX = -1,1 V
Tương tự mạch điều khiển rơle, ta tính cho trường hợp xấu nhất : VCESAT = 0
và VBESAT MAX = -1.1 V. Áp rơi trên 1 đoạn Led là khoảng 2 V, dòng cấp tốt nhất là
10mA, suy ra áp trên R13 là 5-2 = 3 V. Giá trị điện trở 330Ω được chọn.
ICS = 10 mA
=> IBS =
ICS
βmin =
1010 = 1 mA
=> R18 =
Vcc−V BESAT MAX
I BS
=
5−1,11
= 3,9KΩ
Ta có thể tăng R18 lên 4,7 KΩ để giảm dòng IBS , lúc này thực nghiệm đo
được IBS = 0.9 mA, ICS = 10,5 mA, VCESAT = 50mV, VBESAT = 0.7V.
3.2.3 Khối công suất
Trong khối công suất ta sử dụng IC L298N để điều khiển động cơ. IC tích
hợp được hai cầu H. Với một
cầu H thì ta có thể điểu khiển
lên đến 2A và để lên tới 4A thì
ta phải nối song song hai cầu H
lại với nhau.
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 25
![Page 26: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/26.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
Nguyên lý hoạt động như sau :- IN1 = 1; IN2=0; Quay ngược chiều kim đồng hồ (ngõ OUT1 và OUT2)- IN1=0; IN2=1; Quay cùng chiều kim đồng hồ.- IN1=IN2=0 Hoặc bằng 1 thì không quay.Với ENA=SENSA=1; (Quay); Nếu bằng 0 thì dừng.Tương tự với OUT3 Và OUT4, phụ thuộc vào (IN3, IN4, ENB, SENSB).
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 26
![Page 27: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/27.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
3.3. Sơ đồ Mạch nguyên lý
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 27
![Page 28: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/28.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
3.4. Sơ đồ Mạch thi công
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 28
![Page 29: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/29.jpg)
Phục vụ ngắt Timer 0
Dem++
dem > phantram_PWM
PWM=1
Chương trình chính
PWM=0
Dem=20
Dem=0 exit
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
PHẦN 4
LƯU ĐỒ - CHƯƠNG TRÌNH
Do yêu cầu của bài toán ứng dụng trên thực tế là khi nhấn nút thì động cơ chuyển tác động tương ứng với các chế độ : Stop, thuận , nghịch , tăng , giảm.
4.1 Lưu đồ chương trình
Chương trình phục vụ ngắt
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 29
![Page 30: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/30.jpg)
Begin
Stop Thuận Nghịch
P1_0 P1_1 P1_2
P2_0= pwmP2_1=0Báo hiệu
Khai báo các biếnKhởi động Timer0Khởi tạo Stack
P2_0=0P2_1=0Báo hiệu
P2_0=0P2_1=pwm
Báo hiệu
exit exit exit
P1_3 P1_4
Tăng tốc Giảm tốc
Phantram_pwm - -Hiện thị
Phantram_pwm ++-Hiện thị
exit exit
Phục vụ ngắt Timer0
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
4.2 Lưu đồ giải thuật
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 30
![Page 31: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/31.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
4.3 Chương trình
/* Dieu khien toc do dong co DC : Quay thuan, quay nghich, tang toc, giam toc.*/// 2 Chan dieu khien dong co la : P2_0 va P2_1// 5 chan de dieu khien : Quay thuan, quay nghich, Dung, Tang toc, giam toc// 3 chan bao hieu dong co dang o che do nao.
#include <REGX51.H>
/* Dinh nghia cac nut nhan*/#define stop P1_0#define thuan P1_1#define nghich P1_2#define tang P1_3#define giam P1_4
bit PWM;unsigned char dem=0;unsigned int phantram_PWM=10;
/* Ham tao thoi gian tre*/
void delay(unsigned int t) { unsigned int i,j; for(i=0;i<100;i++) for(j=0;j<t;j++); }
/* Hien thi gia tri tang giam toc*/ unsigned char LED[10]={0x40,0xf9,0x24,0x30,0x19,0x12,0x02,0xf8,0x80,0x10}; void hienthi(unsigned char digit1, unsigned char digit2) { /*Hien thi so thu nhat*/
P3=LED[digit1];P0_0=1;delay(2);
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 31
![Page 32: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/32.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
P0_0=0; /*Hien thi so 2*/
P3=LED[digit2];P0_1=1;delay(2);P0_1=0;
} /* Khoi tao Timer 100us*/
void khoitaohethong() {
//ES=1; EA=0; TMOD=0x02; // che do 8 bit tu nap TH0=0x9b; // nap gia tri 155 ma hex TL0=0x9b; EA=1; TR0=1; ET0=1;
} /* Ngat tao ra PWM*/
void ngat_timer0(void) interrupt 1 {
TR0=0;TF0=0;dem++;if(dem>=phantram_PWM) { PWM=1; } else { PWM=0;
} if(dem==20) dem=0; TR0=1;
} /* Ham dung dong co*/
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 32
![Page 33: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/33.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
void stopdc(void) {
P2_0=0;P2_1=0;P2_2=0;P2_3=1;P2_4=1;
}
/* Ham quay thuan dong co*/ void quaythuan(void) {
P2_1=0; P2_0=PWM; P2_3=0;
P2_2=1;P2_4=1;
}
/* Ham quay nghich dong co*/
void quaynghich(void) {
P2_0=0; P2_1=PWM; P2_4=0; P2_3=1; P2_2=1;
} /* Ham dieu khien tang toc*/
unsigned char tangtoc(void) {
if(tang==0) {
while(tang==0){;}phantram_PWM--;
delay(100);
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 33
![Page 34: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/34.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
if(phantram_PWM<1) { phantram_PWM=1;
} } return (phantram_PWM); }
/* Ham dieu khien giam toc*/ unsigned char giamtoc(void) { if(giam==0)
{ while(giam==0)
{;} phantram_PWM++;
delay(100); if(phantram_PWM>20) phantram_PWM=20;
} return (phantram_PWM);}
/* Lua chon che do cua dong co*/
unsigned char n; unsigned char chonchedo(void) { if(stop==0) n=1; if(thuan==0) n=2; if(nghich==0) n=3; switch(n)
{ case 0: {break;} case 1: {stopdc();break;} case 2: {quaythuan();break;} case 3: {quaynghich();break;}}
return (n); }
/* Chuong trinh chinh*/void main()
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 34
![Page 35: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/35.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
{ khoitaohethong(); while(1) {
tangtoc(); giamtoc();
chonchedo();hienthi((20-phantram_PWM)/10,(20-phantram_PWM)%10); }
}
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 35
![Page 36: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/36.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
PHẦN 5
KẾT LUẬN
Vi điều khiển 89c51 hiện nay được ứng dụng rất nhiều trong thực tế. Ưu điểm của loại chip này là rẻ tiền và thông dụng, đặc biệt là ứng dụng trong Led quang báo, trong các phòng thí nghiệm. Tuy nhiên có một số hạn chế là tốc độ quét còn rất chậm, một số ứng dụng như màn hình LED hoặc điều khiển thiết bị ngoại vi thì việc lập trình cho 89c51 rất khó khăn.
Nên hiện nay đa số các ứng dụng người ta đã dần chuyển qua sử dụng PIC16F877A, AVR, ARM…Ưu điểm của các loại chip này là tốc độ quét nhanh, và thường sử dụng ngôn ngữ C để viết. Vì ra đời trễ hơn và dựa trên nền tảng của 89c51 thì việc lập trình sẽ dễ dàng hơn.
Trong đồ án điều khiển động cơ DC này thì em đã cố gắng trình bày chi tiết nhất về nguyên lý để điều khiển động cơ như quay thuận, nghịch, tăng, giảm tốc độ. Việc ứng dụng ngoài thực tế sẽ yêu cầu động cơ có công suất lớn hơn rất nhiều, và quá trình khởi động còn phải có nhiều ưu việt hơn nên sẽ yêu cầu nhiều thứ hơn.
Hướng phát triển đề tài điểu khiển động cơ DC của em là sẽ điều khiển qua mạng máy tính. Việc lập trình và phần cứng sẽ có nhiều thay đổi hơn.
TPHCM, ngày 01 tháng 07 năm 2012
Trần Lê Cường
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 36
![Page 37: NOI DUNG](https://reader036.fdocument.pub/reader036/viewer/2022081515/55cf9d40550346d033acdd7e/html5/thumbnails/37.jpg)
Trường Đại Học KTCN TPHCM Đồ Án 2: Điều Khiển Động Cơ DC
PHẦN 5TÀI LIỆU THAM KHẢO
Tài liệu từ internet
Giáo trinh vi xử lý_ Phạm quang trí
Vi điều khiển – Cấu trúc – Lập trình và ứng dụng_ Kiều xuân thực, Vũ thị thu hương, Vũ trung kiên.
Giáo trình mạch điện tử_Đại học KTCN Thành Phố Hồ Chí Minh
Hướng dẫn sử dụng phần mềm keil C...
GVHD : NGUYỄN THỊ NGỌC ANH SVTH: TRẦN LÊ CƯỜNG Page 37