Bộ vi điều khiển 8051

Một phần của tài liệu Nghiên cứu kết nối thiết bị kiểm tra lực phanh MB 6000 với máy tính tại phòng thực hành khung gầm, bộ môn kỹ thuật ô tô khoa cơ khí (Trang 46 - 91)

Bộ vi điều khiển 8051 là thành viên đầu tiên của họ 8051. Hãng Intel kí hiệu là MCS51. Chip có các đặc trưng được tóm tắt như sau:

 4KB ROM.  128 byte RAM.

 4 port xuất nhập (I/O port) 8-bit.  2 bộ định thời 16-bit.

 Mạch giao tiếp nối tiếp.

 Không gian nhớ chương trình (mã) ngoài 64K.  Không gian nhớ dữ liệu ngoài 64K.

 Bộ xử lí bit (thao tác trên các bit riêng rẽ)  210 vị trí nhớ được định địa chỉ, mỗi vị trí 1 bit.  Nhân/chia trong 4 µs.

Hình 3.5 : Sơ đồ khối cấu tạo bộ vi điều khiển 8051. 3.2.2.3 Các phiên bản của họ 8051

8051 là họ vi điều khiển phổ biến nhất, tuy nhiên chúng ta sẽ không thấy nguyên phần kí hiệu số “8051” trên chip. Nguyên nhân là do 8051 có nhiều phiên bản, ví dụ với các kiểu bộ nhớ khác nhau như UV-PROM, FLASH và NV-RAM và chúng đều được thể hiện ở kí hiệu linh kiện. Ví dụ, 8051 với bộ nhớ UV-PROM được kí hiệu là 8751. Phiên bản FLASH ROM cũng được nhiều hãng sản xuất,

Điều khiển ngắt CPU Bộ tạo dao động Bus điều khiển 4 cổng vào - ra Cổng nối tiếp RAM 128 byte ROM Timer 1 Timer 0 ETC P0 P1 P2 P3 TxD RxD Địa chỉ/ dữ liệu Ngắt ngoài Vào bộ đếm

chẳng hạn, của Atmel Cornporation có tên gọi là AT89C51. Còn phiên bản NV- RAM của Dalas Semiconductor thì gọi là DS5000. Ngoài ra còn có phiên bản OTP (khả trình một lần) cũng được nhiều hãng sản xuất.

 Bộ vi điều khiển 8751

Chip 8751 chỉ có 4Kbyte bộ nhớ UV-EPROM trên chip. Để sử dụng chíp này cần có bộ xóa ROM và bộ xóa UV-EPROM. Do ROM trên chip của 8751 là UV- EPROM nên cần mất đến 20 phút để xóa 8751 trước khi được lập trình. Vì đây là quá trình mất nhiều thời gian nên nhiều nhà sản xuất đã cho ra mắt phiên bản FLASH ROM và UV- RAM.

 Bộ vi điều khiển AT89C51 của Atmel Cornporation

AT89C51 là phiên bản của 8051 có ROM trên chip là bộ nhớ là FLASH. Phiên bản này rất thích hợp cho các ứng dụng nhanh vì bộ nhớ FLASH có thể được xóa trong vài giây. Để tiện sử dụng, hiện nay hãng này đang nghiên cứu một phiên bản của AT89C51 có thể được lập trình qua cổng COM của máy tính IBM PC và như vậy sẽ không cần bộ xóa PROM.

Bảng 3.2: Các phiên bảng của 8051 của Atmel (FLASH ROM)

Kí hiệu ROM RAM Chân I/0 Timer Ngắt Vcc Đóng vỏ

AT89C51 4K 128 32 2 6 5V 40 AT89LV51 4K 128 32 2 6 3V 40 AT89C1051 1K 64 15 1 3 3V 20 AT89C2051 2K 128 15 2 6 3V 20 AT89C52 8K 128 32 3 8 5V 40 AT89LV52 8K 128 32 3 8 3V 40

Ghi chú: Chữ C trong kí hiệu AT89C51 là CMOS.

Thông số về kiểu đóng vỏ và tốc độ của bộ vi điều khiển cũng được thể hiện ở kí hiệu. Ví dụ, bộ vi điều khiển có kí hiệu AT89C51-12PC; chữ C đứng trước số 51 ở kí hiệu AT89C51-12PC là chỉ tiêu chuẩn công nghệ CMOS (tiêu thụ năng lượng thấp), “12” để chỉ tốc độ 12MHZ và “P” là kiểu đóng vỏ DIP, và chữ “C” cuối cùng

là kí hiệu cho thương mại (ngược với chữ “M” là quân sự). AT89C51-12PC rất thích hợp cho các thử nghiệm của học sinh, sinh viên.

 Phiên bản OTP của 8051

Phiên bản OTP (One Timer Programmable) của 8051 là các chip 8051 có thể lập trình được một lần và được nhiều hãng sản xuất khác nhau cung cấp. Các phiên bản FLASH và NV-RAM thường được dùng để phát triển sản phẩm mẫu. Khi sản phẩm mẫu được hoàn tất thì phiên bản OTP của 8051 được dùng để sản xuất hàng loạt vì giá thành trên một đơn vị sản phẩm sẽ rẻ hơn nhiều.

 Họ vi điều khiển 8051 của hãng Philips

Một nhà sản xuất quan trọng khác của họ 8051 là Philips Cornporation. Quả thực, hãng này có một dải các lựa chọn các bộ vi điều khiển họ 8051 rất rộng. Nhiều sản phẩm của hãng đã gộp luôn một số chức năng của bộ chuyển đổi ADC, DAC, cổng I/O mở rộng, cả các phiên bản OTP và FLASH.

 Bộ vi điều khiển DS5000 của hãng Dallas Semiconductor

Một phiên bản phổ biến khác nữa của 8051 là DS5000 của hãng Dallas Semiconductor. Bộ nhớ ROM trên chip của DS5000 là NV-RAM. DS5000 có khả năng nạp chương trình vào ROM trên chip trong khi nó vẫn ở trong hệ thống mà không cần phải lấy ra. Cách thực hiện là dùng qua cổng COM của máy tính IBM PC. Đây là một điểm mạnh rất được ưa chuộng. Ngoài ra, NV-RAM còn có ưu việt là cho phép thay đổi nội dung ROM theo từng byte. Cần lưu ý rằng, bộ nhớ FLASH và EPROM phải được xóa hết trước khi lập trình lại.

Bảng 3.3: Các phiên bảng 8051 của hãng Dallas Semiconductor

Kí hiệu ROM RAM Chân I/O Timer Ngắt Vcc Đóng vỏ

DS5000-8 8K 128 32 2 6 5V 40

DS5000-32 32K 128 32 2 6 5V 40

DS5000T-8’ 8K 128 32 2 6 5V 40

DS5000T-32’ 32K 128 32 2 6 5V 40

Lưu ý đồng hồ thời gian thực RTC (Real-Time Clock) khác với bộ định thời Timer. RTC tạo và lưu giữ thời gian của ngày (giờ, phút, giây) và ngày, tháng (ngày, tháng, năm) kể cả khi tắt nguồn.

Có nhiều phiên bản DS5000 với những tốc độ và kiểu đóng gói khác nhau. Ví dụ, DS5000-8-8 có 8K NV-RAM và tốc độ 8MHZ. Thông thường DS5000-8-12 hoặc DS5000T-8-12 là thích hợp cho các nghiên cứu, thử nghiệm của sinh viên.

Bảng 3.4: Các phiên bản của DS5000 với các tốc độ khác nhau.

Kí hiệu NV-RAM Tốc độ DS5000-8-8 8K 8MHz DS5000-8-12 8K 12MHz DS5000-32-8 32K 8MHz DS5000T-32-8 32K 8MHz DS5000-32-12 32K 12MHz DS5000-8-12 8K 12MHz ( có RTC)

3.2.3 Lựa chọn bộ vi điều khiển

Có bốn họ vi điều khiển 8 bit chính, đó là 6811 của Motorola, 8051 của Intel, Z8 của zilog và PIC 16x của Microchip Technology. Mỗi loại trên đều có một tập lệnh và thanh ghi riêng, nên chúng không tương thích lẫn nhau. Các tiêu chuẩn để chọn bộ vi điều khiển gồm:

 Đáp ứng yêu cầu tính toán một cách hiệu quả và kinh tế.

 Có sẵn các công cụ phát triển phần mềm, chẳng hạn như các trình biên dịch, trình hợp dịch và gỡ rối.

 Nguồn cung cấp bộ vi điều khiển có nhiều và tin cậy. Ta sẽ nghiên cứu rõ hơn về các tiêu chuẩn này:

Tiêu chuẩn đầu tiên khi lựa chọn một bộ vi điều khiển đó là phải đáp ứng yêu cầu về tính toán một cách hiệu quả và kinh tế. Do vậy, trước hết cần xem xét bộ vi điều khiển 8 bit, 16 bit hay 32 bit là thích hợp. Một số tham số kĩ thuật cần nhắc đến khi lựa chọn là:

a. Tốc độ: Tốc độ lớn nhất mà bộ vi điều khiển hỗ trợ là bao nhiêu.

b. Kiểu đóng vỏ: Là kiểu 40 chân DIP (là kiểu vỏ dạng 2 hàng chân) hay là kiểu đóng vỏ khác (QFP là vỏ vuông dẹt). Kiểu đóng vỏ quan trọng khi có yêu cầu về không gian, kiểu lắp ráp và tạo mẫu thử cho sản phẩm cuối cùng.

c. Công suất tiêu thụ: Là một tiêu chuẩn đặc biệt cần lưu ý nếu sản phẩm dùng pin hoặc acquy.

d. Dung lượng bộ nhớ RAM và ROM trên chip. e. Số chân ra vào và bộ nhớ trên chip.

f. Khả năng dễ dàng nâng cao hiệu suất hoặc giảm công suất tiêu thụ.

g. Giá thành trên một đơn vị sản phẩm khi mua số lượng lớn: Đây là vấn đề có ảnh hưởng đến giá thành cuối cùng của sản phẩm.

Tiêu chuẩn thứ hai khi lựa chọn bộ vi điều khiển là khả năng phát triển các sản phẩm như thế nào. Ví dụ, khả năng có sẵn các trình hợp dịch, gỡ rối, biên dịch ngôn ngữ C, mô phỏng, điều kiện hỗ trợ kĩ thuật cũng như khả năng sử dụng trong nhà và bên ngoài môi trường.

Tiêu chuẩn thứ ba là khả năng sẵn sàng đáp ứng về số lượng hiện tại cũng như ở tương lai. Đối với một số nhà thiết kế, vấn đề này còn quan trọng hơn cả hai tiêu chuẩn đầu tiên.

Hiện nay, trong các họ vi điều khiển 8 bit hàng đầu thì 8051 có số lượng lớn nhất và có nhiều hãng cung cấp. Đối với 8051 thì nhà sáng chế là Intel, nhưng hiện nay có rất nhiều hãng sãn xuất. Các hãng này gồm: Intel, Atmel, Philips/Signetics, AMD, Semens, Matra và Dallas Semiconductor.

Vi điều khiển trên thị trường hiện nay có rất nhiều loại với nhiều phiên bản và nhiều hãng khác nhau. Bộ vi điều khiển đầu tiên là 8051 của hãng Intel, và phiên bản của nó là AT89C51 của hãng Atmel rất thích hợp cho việc nghiên cứu và các úng dụng nhanh, đồng thời tập lệnh của nó cũng tương đối dễ nghiên cứu hơn so với những người bước đầu làm quen với vi điều khiển. Hơn nữa giá thành cho vi điều khiển AT89C51 cũng tương đối phải chăng. Vì vậy, ta sẽ chọn vi điều khiển AT89C51 làm cơ sở để thiết kế.

3.2.4 Tổng quát về vi điều khiển AT89C51

AT89C51 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS chất lượng cao, với 4KB FLASH ROM. Thiết bị này tương thích với chuẩn công nghiệp MCS- 51 về tập lệnh và các chân ra. AT89C51 là một vi điều khiển mạnh, nó cung cấp một sự linh động cao về giải pháp và giá cả đối với nhiều ứng dụng vi điều khiển.

Nó có các đặc điểm sau:

 4 KB bộ nhớ FLASH ROM bên trong dùng để lưu trữ chương trình điều khiển. Có khả năng lưu tới 1000 chu kỳ ghi xóa.

 3 mức khóa bộ nhớ lập trình.  Có 128 byte RAM nội.  4 port xuất nhập I/O 8 bit.  Hai bộ định thời (timer) 16 bit.  6 ngắt.

 Giao tiếp nối tiếp.

 Xử lý Boolean (hoạt động trên bit đơn).

 64 KB không gian bộ nhớ chương trình mở rộng.  64 KB không gian bộ nhớ dữ liệu mở rộng.  210 bit được địa chỉ hóa.

 Bộ nhân/chia 4 µs.

 Tương thích với các sản phẩm MCS-51.  Hoạt động tĩnh đầy đủ: 0Hz đến 24MHz..  Mạch đồng hồ và bộ dao động trên chip.  Hỗ trợ chế độ nguồn thấp khi hoạt động.

3.2.4.1 Khảo sát bên ngoài của vi điều khiển AT89C51

Vi điều khiển AT89C51 có tất cả 40 chân. Trong đó có 24 chân có tác dụng kép (có nghĩa là 1 chân có 2 chức năng), mỗi đường có thể hoạt động như đường xuất nhập điều khiển IO (Input/Output) hoặc là thành phần của các bus dữ liệu và bus địa chỉ để tải địa chỉ và dữ liệu khi giao tiếp với bộ nhớ ngoài. Các chân còn lại có chức năng đặc biệt.

Hình 3.6: Sơ đồ chân IC AT89C51. Chức năng các chân của AT89C51

 Port 0: Là port với số thứ tự chân 32-39. Trong các hệ thống điều khiển đơn giản sử dụng bộ nhớ bên trong không dùng bộ nhớ mở rộng bên ngoài thì port 0 được dùng làm các đường điều khiển IO (Input/Output).

Trong các hệ thống điều khiển lớn sử dụng bộ nhớ mở rộng bên ngoài thì port 0 có chức năng là bus địa chỉ và bus dữ liệu AD7-AD0.

 Port 1: Là port với số thứ tự chân từ 1-8 chỉ có chức năng dùng làm các đường điều khiển xuất nhập IO, port 1 không có chức năng khác. Vì vậy, port 1 chỉ được dùng cho giao tiếp với các thiết bị bên ngoài.

 Port 2: Là port với số thứ tự chân 21-28, port 2 có 2 chức năng. Trong các hệ thống điều khiển đơn giản thì không dùng đến bộ nhớ bên ngoài thì port 2 được dùng làm các đường điều khiển IO (Input/Output). Trong các hệ thống điều khiển lớn sử dụng bộ nhớ ngoài thì port 2 có chức năng là bus địa chỉ cao A8-A15.

 Port 3: Là port xuất nhập 8 bit hai chiều, hay nói cách khác là port có 2 chức năng, với số thứ tự chân 10-17. Các chân của port này có nhiều chức năng, công dụng chuyển đổi có liên hệ với các đặc tính của AT89C51 như ở bảng sau:

Bảng3.5: Các chức năng đặc biệt của các chân đặc biệt của port 3

Bit Tên Chức năng chuyển đổi P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RxD TxD INT0 INT1 T0 T1 WR RD

Ngõ vào nhận dữ liệu nối tiếp. Ngõ xuất dữ liệu nối tiếp Ngõ vào ngắt cứng thứ 0 Ngõ vào ngắt cứng thứ 1

Ngõ vào của timer/counter thứ 0 Ngõ vào của timer/counter thứ 1

Tín hiệu điều khiển ghi dữ liệu lên bộ nhớ ngoài Tín hiệu điều khiển đọc dữ liệu từ bộ nhớ ngoài.

Các ngõ tín hiệu điều khiển

 Ngõ tín hiệu PSEN (Program Store Enable)

PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương trình mở rộng thường kết nối đến chân OE (Output Enable hoặc RD) của EPROM cho phép đọc byte mã lệnh. Khi có giao tiếp với bộ nhớ chương trình bên ngoài thì mới dùng đến PSEN, nếu không giao tiếp thì chân PSEN bỏ trống. PSEN ở mức thấp trong thời gian vi điều khiển AT89C51 lấy lệnh. Các mã lệnh của chương trình đọc từ EPROM qua bus dữ liệu và được chốt vào thanh ghi lệnh bên trong AT89C51 để giải mã lệnh.

 Ngõ tín hiệu điều khiển ALE/ PROG (Adress Lacth Enable)

Khi vi điều khiển AT89C51 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus tải địa chỉ và bus dữ liệu [AD7-AD0] do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt.

Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động của thạch anh gắn vào vi điều khiển và có thể dùng tín hiệu xung ngõ ra ALE làm xung clock cung cấp cho các phần khác của hệ thống.

Khi cần, hoạt động cho phép chốt byte thấp của địa chỉ sẽ được vô hiệu hóa bằng cách set bit 0 của thanh ghi chức năng đặc biệt có địa chỉ byte là 8EH. Khi bit này được set, ALE chỉ tích cực trong thời gian thực thi lệnh MOVX hoặc MOVC. Ngược lại chân này sẽ được kéo lên mức cao. Việc set bit không cho phép hoạt động chốt byte thấp của địa chỉ sẽ không có tác dụng nếu bộ vi điều khiển đang ở chế độ thực thi chương trình ngoài.

 Ngõ tín hiệu EA (External Access)

Tín hiệu vào EA ở chân 31 thường nối lên mức 1 hoặc mức 0.

Nếu nối EA lên mức logic 1 (+5V) thì vi điều khiển sẽ thi hành chương trình từ bộ nhớ nội.

Nếu nối EA với mức logic 0 (0V) thì vi điều khiển sẽ thi hành chương trình từ bộ nhớ ngoài.

Chân EA/Vpp còn nhận điện áp cho phép lập trình Vpp trong thời gian lập trình Flash, điện áp này cấp cho các bộ phận có yêu cầu điện áp 12V.

 Ngõ tín hiệu RST (Reset):

Ngõ vào RST ở chân 9 là ngõ vào reset của AT89C51. Khi cấp điện cho hệ thống hoặc khi nhấn nút reset thì mạch sẽ reset vi điều khiển. Khi reset thì tín hiệu reset phải ở mức cao ít nhất là 2 chu kỳ máy, khi đó các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống.

 Các ngõ vào bộ dao động Xtal1, Xtal2 (Chân 18,19):

Xtal1, Xtal2 là hai ngõ vào và ra của một khuếch đại dao động nghịch được cấu hình để dùng như một bộ dao động trên chip. Nó thường được nối với bộ dao động thạch anh để tạo xung nhịp cho vi điều khiển.

 Chân 40 (Vcc) được nối lên nguồn 5V  Chân 20 GND nối đất.

Sơ đồ cấu trúc bên trong được trình bày như hình 3.7. Các thanh ghi có trong vi điều khiển bao gồm:

 Khối ALU đi kèm với các thanh ghi tempt1, tempt2 và các thanh ghi trạng thái PSW.

 Bộ điều khiển logic (Timing and Control).

 Vùng nhớ RAM nội và vùng nhớ FLASH ROM lưu trữ chương trình.  Mạch tạo dao động nối kết hợp với bộ thạch anh bên ngoài để tạo dao động.  Khối xử lý ngắt, truyền dữ liệu, khối timer/counter.

Một phần của tài liệu Nghiên cứu kết nối thiết bị kiểm tra lực phanh MB 6000 với máy tính tại phòng thực hành khung gầm, bộ môn kỹ thuật ô tô khoa cơ khí (Trang 46 - 91)

Tải bản đầy đủ (PDF)

(91 trang)