Giới thiệu Vi điều khiển P89V51RD

Một phần của tài liệu ĐATN Thiết kế máy định lượng trong dây chuyền sản xuất, chế biến gạo (Trang 57 - 65)

CHƯƠNG 4: THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN TỰ ĐỘNG

4.2.2Giới thiệu Vi điều khiển P89V51RD

Bộ vi điều khiển viết tắt là Micro-controller, là mạch tích hợp trên một chip có thể lập trình được, dùng để điều khiển hoạt động của một hệ thống, theo các chương trình đã nạp sẵn bên trong chip.

Trong các thiếh bị điện và điện và điện tử dân dụng, các bộ vi điều khiển, điều khiển hoạt động của TV, máy giặt, đầu đọc laser, điện thọai, lò vi-ba … Trong hệ thống sản xuất tự động, bộ vi điều khiển được sử dụng trong Robot, dây chuyền tự động. Các hệ thống càng “thông minh” thì vai trò của hệ vi điều khiển càng quan trọng.

Bộ vi điều khiển thực ra, là một loại vi xử lí trong tập hợp các bộ vi xử lý nói chung. Bộ vi điều khiển được phát triển từ bộ vi xử lí, từ những năm 70 do sự phát triển và hoàn thiện về công nghệ vi điện tử dựa trên kỹ thuật MOS (Metal-Oxide- Semiconductor), mức độ tích hợp của các linh kiện bán dẫn trong một chip ngày càng cao.

Đến nay họ vi điều khiển 8 bit MCS51 đã có đến 250 thành viên và hầu hết các công ty hàng đầu thế giới chế tạo. Đứng đầu là công ty INTEL và rất nhiều công ty khác như : AMD, SIEMENS, PHILIPS, DALLAS, OKI …

IC vi điều khiển P89V51RD2 của hãng Philips có các đặt điểm sau : - 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.

Phần chính của vi điều khiển 8051 / 8031 là bộ xử lí trung tâm (CPU: central processing unit ) bao gồm :

- Thanh ghi tích lũy A.

- Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia. - Đơn vị logic học (ALU : Arithmetic Logical Unit ).

- Từ trạng thái chương trình (PSW : Prorgam Status Word). - Bốn băng thanh ghi.

- Con trỏ ngăn xếp.

Ngoài ra còn có bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiển thời gian và logic.

Đơn vị xử lí trung tâm nhận trực tiếp xung từ bộ giao động, ngoài ra còn có khả năng đưa một tín hiệu giữ nhịp từ bên ngoài.

Chương trình đang chạy có thể cho dừng lại nhờ một khối điều khiển ngắt ở bên trong. Các nguồn ngắt có thể là : các biến cố ở bên ngoài , sự tràn bộ đếm định thời hoặc cũng có thể là giao diện nối tiếp.

Hai bộ định thời 16 bit hoạt động như một bộ đếm.

Các cổng (port0, port1, port2, port3 ). Sử dụng vào mục đích điều khiển.

Ở cổng 3 có thêm các đường dẫn điều khiển dùng để trao đổi với một bộ nhớ bên ngoài, hoặc để đầu nối giao diện nối tiếp, cũng như các đường ngắt dẫn bên ngoài. Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ, làm việc độc lập với nhau. Tốc độ truyền qu ổng nối tiếp có thể đặt trong vảy rộng và được ấn định bằng một bộ định thời.

Trong vi điều khiển 8051 / 8031 có hai thành phần quan trọng khác đó là bộ nhớ và các thanh ghi :

Bộ nhớ gồm có bộ nhớ Ram và bộ nhớ Rom (chỉ có ở 8031) dùng để lưu trữ dữ liệu và mã lệnh.

Các thanh ghi sử dụng để lưu trữ thông tin trong quá trình xử lí. Khi CPU làm việc nó làm thay đổi nội dung của các thanh ghi.

* Tổ chức ngắt:

+ Các ngắt timer

Các ngắt timer có địa chỉ Vector ngắt là 000BH (timer 0) và 001BH (timer 1). Ngắt timer xẩy ra khi các thanh ghi timer (TLx ITHx) tràn và set cờ báo tràn (TFx) lên 1. Các cờ timer (TFx) không bị xóa bằng phần mềm. Khi cho phép các ngắt, TFx tự động bị xóa bằng phần cứng khi CPU chuyển đến ngắt.

+ Các ngắt cổng nối tiếp

Ngắt cổng nối tiếp xẩy ra khi hoặc cờ phát (TI) hoặc cờ ngắt thu (KI) được đặt lên 2. Ngắt phát xảy ra khi một ký tự đã được nhận xong và đang đợi trong SBUP để được đọc. (adsbygoogle = window.adsbygoogle || []).push({});

Các ngắt cổng nối tiếp khác với các ngắt timer. Cờ gây ra ngắt cổng nối tiếp không bị xóa bằng phần cứng khi CPU chuyển tới ngắt. Do có hai nguồn ngắt cổng nối tiếp Ti và RI. Nguồn ngắt phải được xác định trong ISR và cờ tạo ngắt sẽ được xóa bằng phần mềm. Các ngắt timer cờ ngắt cờ ngắt được xóa bằng phần cứng khi CPU hướng tới ISR.

+ Các ngắt ngoài.

Các ngắt ngoài xẩy ra khi có một mức thấp hoặc cạnh xuống trên chân INT0 hoặc INT1 của vi điều khiển. Đây là chức năng chuyển đổi của các bit Port 3.(Port 3.2 và Port 3.3).

Các cờ tạo ngắt này là các bit IE0 vá IE1 trong TCON. Khi quyền điều khiển đã chuyển đến ISR, cờ tạo ra ngắt chỉ được xóa nếu ngắt được tích cực bằng cạnh xuống. Nếu ngắt được tích cực theo mức, thì nguồn yêu cầu ngắt bên ngoài sẽ điều khiển mức của cờ thay cho phần cứng.

Sự lựa chọn ngắt tích cực mức thấp hay tích cực cạnh xuống được lập trình qua các bit IT0 và IT1 trong TCON. Nếu IT1 = 0, ngắt ngoài 1 được tác động bằng múc thấp ở chân IT1. Nếu IT1 = 1 ngắt ngoài 1 sẽ được tác động bằng cạnh xuống. trong chế độ này, nếu các mẫu liên tiếp trên chân INT1 chỉ mức cao trong một chu kỳ và chỉ mức thấp trong chu kỳ kế, cờ yêu cầu ngắt IE1 trong TCON được đặt lên 1, rồi bit IE yêu cầu ngắt.

Nếu ngắt ngoài được tác động bằng cạnh xuống thì nguồn bên ngoài phải giữ chân tác động ở mức cao tối thiểu một chu kỳ và giữ nó ở mức thấp thêm một chu kỳ nữa để đảm bảo phát hiện được cạnh xuống. Nếu ngắt ngoài được tác động theo mức thì nguồn bên ngoài phải giữ tín hiệu yêu cầu tác động cho đến khi ngắt được yêu cầu được thật sự tạo ra và không tác động yêu cầu ngắt trước khi ISR được hoàn tất . Nếu không một ngắt khác sẽ được lặp lại.

* Chức năng PCA

Chức năng nổi bật của P89V51RD2 là 5 kênh PCA, các thanh ghi chịu tácđđộng: CMOD, CCON, CCAPMn.

Hình 4.2: Mô tả chức năng PCA

+ Thanh ghi chức năng đặc biệt CMOD: Không thể can thiệp vào từng bit.

Bảng 4.3: Các bit định nghĩa cho thanh ghi CMOD

Bit Kí hiệu Chức năng

7 CIDL

Điều khiển trạng thái rỗi của Counter PCA. CIDL=0 sẽ cho Counter PCA tiếp tục hoạt động bất chấp đang trong trạng thái rỗi. CIDL=1 sẽ lập trình cho

nó không hoạt động trong trạng thái rỗi. 6 WDTE Cho phép Watchdog Timer trên modul 4. 5-3 - Chưa được khai báo

2-1 CPS1 CPS0

Lựa chọn nguồn xung đếm cho PCA <Xem bảng dưới>

0 ECF Cho phép ngắt khi tràn Counter PCA.

Ta sẽ dùng chức năng PWM của PCA để đđiều xung, nhằm chỉnh mức áp đặt vào động cơ để thay đổi tốc độ của nó.

PCA là Timer 16bit đđặc biệt, gồm 5 modul. Mỗi modul có thể lập trình để vận hành 1 trong 4 chế độ: capture cạnh lên/xuống, timer, ngõ ra tốc đđộ cao, hay PWM. Timer PCA có thể vận hành nhờ các nguồn xung nhịp: ½ OscFreq ; 1/6OscFreq; tốc đđộ tràn của timer 0; hay từ ngõ vào trên chân ECI(P1.2). Nguồn xung nhịp của PCA đđược chọn nhờ các bit CPS1-CPS0 trên thanh ghi đđa dụng CMOD.

Bảng 4.4 : Quy định cách chon xung nhịp cho PCA

CPS1 CPS0 Chọn xung nhịp cho PCA

0 0 Fosc/6

0 1 Fosc/2

1 0 Tràn từ Timer 0

1 1 Xung nhịp ngoài (ECI) Tốc độ lớn nhất Fosc/4

+ Thanh ghi chức năng đặc biệt CCON: Có thể can thiệp từng Bit. Bảng 4.5: Các bit định nghĩa của thanh ghi CCON

Bit Kí hiệu Chức năng

7 CF Cờ đếm tràn PCA.

6 CR Bit điều khiển chạy counter PCA (adsbygoogle = window.adsbygoogle || []).push({});

5 - Chưa định nghĩa

4 CCF4 Cờ ngắt modul PCA 4 3 CCF3 Cờ ngắt modul PCA 3 2 CCF2 Cờ ngắt modul PCA 2

1 CCF1 Cờ ngắt modul PCA 1 0 CCF0 Cờ ngắt modul PCA 0

+ Thanh ghi chức năng so sánh/capture cho các modul PCA: CCAPMn, không can thiệp được vào từng bit.

Bảng 4.6: Thanh ghi chức năng so sánh/capture

Bảng 4.7: Các bit định nghĩa thanh ghi CCAPMn

Bit Kí hiệu Chức năng

7 - Chưa định nghĩa

6 ECOMN Cho phép bộ so sánh 5 CAPPN Cho phép capture cạnh lên 4 CAPNN Cho phép capture cạnh xuống

3 MATN Cho phép kết nối với cờ ngắt CCFn ở thanh ghi CCON

2 TOGN Lật mức ngõ ra. Tác động đến chân CEXn 1 PWMN Chế độ điều xung. Tác động đến chân CEXn 0 EXCFN Cho phép ngắt CCFn.

Bảng 4.8: Các chế độ hoạt động của modul PCA

ECOM CAPP CAPN MAT TOG PWM ECCF Chế độ hoạt động

0 0 0 0 0 0 0 Không hoạt động

cạnh lên CEX

x 0 1 0 0 0 x Capture 16 bit kíchcạnh xuống CEX

x 1 1 0 0 0 x Capture 16 bit kíchcạnh CEX

1 0 0 1 0 0 x Timer 16 bit

1 0 0 1 1 0 x Ngõ ra tốc độ cao 16bit

1 0 0 0 0 1 0 PWM 8 bit

1 0 0 1 x 0 x Đồng hồ Watchdog

+ Chế độ Capture của PCA:

Phải có ít nhất 1 bit trong CAPP hoặc CAPN được bật; sự chuyển mức CEX sẽ thành ngõ vào Capture cho modul này.Khi có sự chuyển mức hợp lệ tràn CEX, phần cứng của modul PCA sẽ tự nạp các giá trị thanh ghi Timer/Counter của PCA (CH về CL) vào các thanh ghi Capture modul PCA đở <CCAPnL, CCAPnH>. Xem hình vẽ dưới để thấy rõ hơn chức năng này.

Hình 4.3: Chế độ capture của modul PCA

Hình 4.4: Mô tả chức năng PWM

Ở chức năng này, giá trị ở ngõ ra CEX phụ thuộc vào giá trị của 2 thanh ghi: CCAPnL và CL, khi CL tăng lớn hơn CCAPnL thì CEX sẽ chuyển sang mức 1, ngược lại, sẽ ở mức 0, mỗi lần tràn cờ, CCAPnL sẽ nạp lại giá trị từ CCAPnH, chính điều này cũng cho phép ta cập nhật duty cycle mới mà không gây ảnh hưởng tới quá trình PWM.

Chức năng PWM này có độ phân giải 8 bit, tức là ta được 256 mức chia (tương đối mịn với áp 24V thì mỗi mức sẽ được 24/256≈94mV).

Một phần của tài liệu ĐATN Thiết kế máy định lượng trong dây chuyền sản xuất, chế biến gạo (Trang 57 - 65)