1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài Tập Lớn Vi Xử Lý

43 608 2

Đ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 43
Dung lượng 1,8 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài Tập Lớn Vi Xử Lý Trong Đo Lường Và Điều Khiển,Hệ thống đóng gói sản phẩm sử dụng băng chuyền và động cơ,Bài tập lớn vi xử lý.Hệ thống băng chuyền tự động.Chương ITổng quan về Vi sử lý trong Đo lường và Điều khiểnXây dựng ứng dụng trên cơ sở 8051

Trang 1

MỤC LỤC

L i C m n ờ ả Ơ

rong những năm gần đây những tiến bộ của khoa học kĩ thuật đã đóng góp rất nhiều vàothành công cho các lĩnh vực của đời sống xã hội Các ngành Tự động hóa, Đo lường và Điềukhiển cũng đã có những tiến bộ vượt bậc về mặt công nghệ và giải pháp, trong đó sự hiểubiết và khả năng ứng dụng kỹ thuật vi xử lý nói chung và kỹ thuật vi điều khiển nói riêng làrất cần thiết đối với công nhân, cử nhân, kỹ sư… hiện nay Chính điều đó đã giúp ích rất nhiều cho hệthống điều khiển tự động thay thế con người trong các công việc đòi hỏi sự chính xác và kỹ thuật cao

T

Để hiểu rõ hơn về vai trò cũng như sự hữu ích của các hệ thống vi điều khiển này trong thực tếthì nhóm sinh viên chúng em sau một thời gian học tập được các thầy cô trong khoa giảng dạy về kiếnthức chuyên ngành đồng thời dưới sự giúp đỡ tận tình của thầy *** đã tiến hành nghiên cứu và thực hiện

đề tài: “Điều khiển hệ thống đóng bao sản phẩm”

Với đề tài này giúp chúng ta có thể biết được một hệ thống đóng gói sản phẩm hoạt động nhưthế nào, sự hoạt động chính xác cao của các băng chuyền mà không cần tác động trực tiếp của con người.Hơn nữa là giúp chúng ta tầm quan trọng của các vi điều khiển trong việc điều khiển hệ thống đòi hỏi

Trang 2

I Tổng quan về Vi sử lý trong Đo lường và

Điều khiển

Có thể nói việc sử dụng các loại vi điều khiển và vi xử lý trong các thiết bị điện tử

tự động ở Việt Nam rất đa dạng, phong phú tùy vào yêu cầu kỹ thuật và giá thành sảnphẩm

Đối với các thiết bị như các máy ATM, máy giặt thường sử dụng vi điều khiển

8051, các bộ điều khiển trong robot công nghiệp, trong hệ thống ô tô thường sử dụngPIC, AVR, PsoC, còn trong điện thoại sử dụng các chip ARM…

1 Cấu trúc hệ thống đo lường điều khiển có sử dụng Vi xử lý

I.1.1 Khái quát chung về hệ thống.

Việc ứng dụng khoa học công nghệ vào sản xuất công nghiệp nhằm mục tiêu tăng năng xuất lao động, cải thiện chất lượng sản phẩm, độ chính xác cao, giá thành hạ

Các hệ thống đo lường điều khiển được đưa vào sản xuất trong các xí nghiệp, nhà máy với độ tin cậy cao, hoạt động ổn định, ít hư hỏng và giảm nhân công lao động Điều này đòi hỏi hệ thống điều khiển có khả năng xử lý, kiểm soát được các sự cố và có thể tự khắc phục được sự cố, các sai sót khi vận hành Một hệ thống như trên gọi là hệ thống điều khiển

Tự động hoá là bước phát triển tiếp theo sau cơ khí hoá và điện khí hoá Tự động hoá là quá trình

sử dụng thiết bị dể thay thế chức năng kiểm tra và điều khiển của con người trong một quy trình sản xuất Hệ thống tự động hoá bắt đầu xuất hiện với việc sử dụng các thiết bị đo lường kiểm tra các thông

số công nghệ và chất lượng sản phẩm Các hệ thông này thông báo khá chính xác các thông tin về trạng thái của thiết bị, các thông số của quy trình công nghệ v.v Các thông tin này trước đây chỉ có những người dày dạn kinh nghiệm mới chuẩn đoán được, nhưng cũng chỉ bảo đảm ở mức độ chính xác tương đối Các thông tin quá trình hoàn thiện quy trình công nghệ.

Như vạy các hệ thống đo lường điểu khiển đã góp phần quan trọng trong điều khiển các dây chyền sản xuất cần độ chính xác cao trong các nhà máy xí nghiệp, nâng cao năng suất lao động, phát triển kinh

tế

I.1.2 Hệ thống đóng bao sản phẩm có sử dụng vi xử lý

Trang 3

2 Giới thiệu một số vi điều khiển thông dụng có trên thị trường Việt Nam

1Vi điều khiển 8051

8051 - là vi điều khiển đơn tinh thể kiếntrúc Harvard, lần đầu tiên được sản xuất bởiIntel năm 1980, để dùng trong các hệ thốngnhúng Trong những năm 1980 và đầu những năm 1990 đã rất nổi tiếng Tuy nhiên hiệntại đã cũ và được thay thế bằng các thiết bị hiện đại hơn, với các lõi phối hợp 8051, đượcsản xuất bởi hơn 20 nhà sản xuất độc lập như Atmel, Maxim IC (công ty con của DallasSemiconductor), NXP Semiconductors (Philips Semiconductor trước đây), Winbond,Silicon Laboratories, Texas Instruments và Cypress Semiconductor Tên gọi chính thứccủa họ vi điều khiển Intel 8051 - MCS 51 Những vi điều khiển Intel 8051 được sản xuấtvới việc dùng công nghệ MOSFET, những những bản sau, chứa kí hiệu “C” trong tên,như 80C51, dùng công nghệ CMOS và yêu cầu công suất thấp, hơn những cái MOSFETtrước (điều này cho phép trang bị cho các thiết bị với nguồn là pin) Các thông số kỹthuật: 8 bit ALU, 8 bit thanh ghi 8 bit dữ liệu bus 16 bit địa chỉ bus vì vậy không gian bộnhớ tối đa cho ROM và RAM lên tới 64 kb Bộ nhớ dữ liệu SRAM 128 bytes Bộ nhớchương trình ROM 4 kb 32 chân vào/ra đa hướng Giao tiếp nối tiếp UART Hai bộ

Hình 1.2.1 1 sơ đồ chân 8051

Hình 1.2.1 2 hình ảnh về AT89S52

Trang 4

timer/counter 16 bit Hai ngắt ngoài Sơ đồ chân của 8051: Sơ đồ khối điều khiển: Lậptrình cho 8051: Các nhà sản xuất 8051 đều hỗ trợ ngôn ngữ lập trình Assembler tuy nhiênngôn ngữ này thường ít được dùng cho những ứng dụng lớn do tính phù hợp của nó, vìvậy trong các ứng dụng thực tế hay sử dụng ngôn ngữ C Ngoài ra còn một số ngôn ngữkhác được phát triển cho 8051 như Pascal, Basic, Forth.

2Vi điều khiển AVR

Là dòng vi điều khiển do hãng Atmel sản xuất có nhiều loại AVR như:

 32-bit AVR UC3

 8/16-bit AVR XMEGA

 8-bit mega AVR

 8-bit tiny AVR

Vi điều khiển Atmega 16: Là vi điều khiển 8 bit với tiêu thụ điện năng thấp dựa trênkiến trúc RISC (Reduced Instruction Set Computer) Vào ra Analog – digital và ngượclại Với công nghệ này cho phép các lệnh thực thi chỉ trong một chu kì xung nhịp, vì thếtốc độ xử lý dữ liệu có thể đạt đến 1 triệu lệnh trên giây ở tần số 1Mhz Vi điều khiển nàycho phép người thiết kế có thể tối ưu hoá chế độ tiêu thụ năng lượng mà vẫn đảm bảo tốc

độ xử lý Lõi AVR có tập lệnh phong phú với số lượng với 32 thanh ghi làm việc chungvới nhau Tất cả 32 thanh ghi đều được nối trực tiếp với ALU (Arithmetic Logic Unit),cho phép 2 thanh ghi truy cập độc lập trong một chỉ lệnh đơn trong một chu kỳ xungnhịp Kiến trúc đạt được có tốc độ xử lý nhanh gấp 10 lần vi điều khiển dạng CISC(Complex Instruction Set Computer) thông thường Atmega 16 được hỗ trợ đầy đủ phầnmềm và công cụ phát triển hệ thống bao gồm: Trình dịch Assembly như AVR studio củaAtmel, Trình dịch C như win AVR, CodeVisionAVR C, ICCAVR C - CMPPILER củaGNU… Trình dịch C đã được nhiều người dùng và đánh giá tương đối mạnh, dễ tiếp cậnđối với những người bắt đầu tìm hiểu AVR, đó là trình dịch CodeVisionAVR C Phầnmềm này hỗ trợ nhiều ứng dụng và có nhiều hàm có sẵn nên việc lập trình tốt hơn - Bộnhớ: Flash 16KB EEPROM 512 Byte SRAM 1KB - Ngoại vi: Hai timer 8 bit Một timer

16 bit Bộ counter với tần số riêng Bốn bộ điều chế độ rộng xung PWM Tám kênh ADC

10 bit USART Giao tiếp SPI, Giao diện I2C Watchdog timer Bộ so sánh tương tự trênchip - Tính năng: Tập lệnh gồm 131 lệnh, hầu hết thực hiện trong một chu kỳ máy Xử lý

Trang 5

40 pin kiểu PDIP, 44 pin kiểu TQFP và kiểu QFL/MLF 32 thanh ghi 8 bit đa dụng Ngắttrong và ngắt ngoài Điện áp hoạt động từ 2,7-5,5V cho Atmega 16A.

i

điều khiển PIC

Microchip Technology Dòng PIC đầu tiên là PIC1650 được phát triển bởiMicroelectronics Division thuộc General Instrument PIC bắt nguồn là chữ viết tắt của

"Programmable Intelligent Computer" (Máy tính khả trình thông minh) Là vi điều khiểnvới kiến trúc RISC thực thi một lệnh với một chu kỳ máy (bằng bốn chu kỳ của bộ daođộng) Ngày nay có nhiều dòng PIC được sản xuất với hàng loạt các mô đun ngoại vi tíchhợp sẵn như ADC, PWM, USART, SPI…với bộ nhớ chương trình từ 512 word đến 32Kword Các họ vi điều khiển PIC: - Họ 8 bit: PIC 10/ PIC 12/ PIC 16/ PIC 18 - Họ 16 bit:PIC 24F/ PIC 24H/ dsPIC 30/ dsPIC 33 - Họ 32 bit: PIC 32 Một vài đặc tính:

 Chân vào/ra I/O có thể lập trình được

 Flash và ROM có thể tuỳ chọn từ 256 byte đến 512 Kbyte

 Bộ dao động bên trong

 8/16/32 bit Timers

 Bộ nhớ EEPROM nội

 Chuẩn giao tiếp nối tiếp đồng bộ và không đồng bộ USART

 MSSP Peripheral cho giao tiếp I2C và SPI

 Các chế độ so sánh, bắt giữ và điều chế độ rộng xung PWM

Hình 1 2.2một số hình ảnh về AVR

Trang 6

 Bộ so sánh điện áp.

 Bộ chuyển đổi ADC (tần số có thể lên tới 1 MHz)

 Hộ trợ các giao thức USB, CAN, Ethernet

 Mô đun điều khiển động cơ, mô đun đọc encoder

 Hộ trợ bộ nhớ ngoài

 DSP những tính năng xử lý tín hiệu số (dsPIC)

Lập trình cho PIC: Hãng Microchip cung cấp môi trường lập trình MPLAB nó baogồm phần mềm mô phỏng, trình dịch ASM, liên kết và gỡ rối Ngoài ra hãng này cũngbán trình biên dịch C cho các dòng PIC18 và dsPIC tích hợp trong MPLAB Ngoài ra cònmột số công ty khác cung cấp trình biên dịch C, PASCAL, BASIC cho PIC đó có thể làphần mềm thương mại hoặc phần mềm mã nguồn mở

4

Vi điều khiển ARM

Cấu trúc ARM (viết tắt từtên gốc là Acorn RISC Machine) là một loại cấu trúc vi xử lý 32-bit kiểu RISC được sửdụng rộng rãi trong các thiết kế nhúng Được phát triển lần đầu trong một dự án của công

ty máy tính Acorn Do có đặc điểm tiết kiệm năng lượng, các bộ CPU ARM chiếm ưu thếtrong các sản phẩm điện tử di động, mà với các sản phẩm này việc tiêu tán công suất thấp

là một mục tiêu thiết kế quan trọng hàng đầu Ngày nay, hơn 75% CPU nhúng 32-bit làthuộc họ ARM, điều này khiến ARM trở thành cấu trúc 32-bit được sản xuất nhiều nhấttrên thế giới CPU ARM được tìm thấy khắp nơi trong các sản phẩm thương mại điện tử,

từ thiết bị cầm tay (PDA, điện thoại di động, máy đa phương tiện, máy trò chơi cầm tay,

Hình 1.2.3 Một số hình ảnh về

PIC

Trang 7

bàn.) Một nhánh nổi tiếng của họ ARM là các vi xử lý Xscale của Intel Giới thiệu về viđiều khiển LPC2148: Là dòng vi điều khiển ARM được sản xuất bởi hãng Philips Tínhnăng:

 Vi điều khiển 16/32-bit ARM7TDMI-S

 Khả năng thiết lập chế độ ưu tiên và định địa chỉ cho ngắt

 45 chân GPIO vào ra đa dụng

 9 chân ngắt ngoài (tích cực cạnh hoặc tích cực mức)

 CPU clock đạt tối đa 60MHz thông qua bộ PLL lập trình được

 Xung PLCK hoạt động độc lập

On-chip Flash Memory: LPC 2148 có 512K bộ nhớ Flash có thể được dùng để lưutrữ code và dữ liệu Trong khi thực thi ứng dụng, vẫn có thể xóa hoặc lập trình Flashthông qua IAP (In Application Programming) Khi đó trình loader trên chip được sửdụng, bộ nhớ trống còn lại là 500K Bộ nhớ Flash có thể ghi xóa được ít nhất 100000 lần,lưu trữ dữ liệu đến 20 năm On-chip Static RAM: LPC 2148 có 32K RAM tĩnh, có thểđược truy xuất theo đơn vị byte, half word & word Bộ điều khiển SRAM sử dụngphương thức write-back buffer để ngăn chặn tình trạng treo CPU khi có thao tác ghi Bộđệm luôn giữ dữ liệu cuối cùng từ chương trình gửi tới bộ nhớ Dữ liệu chỉ được ghi vàoSRAM khi có 1 thao tác ghi khác từ chương trình Lập trình cho ARM: Ngôn ngữ lậptrình chính cho ARM hiện nay là ngôn ngữ C Các trình biên dịch cho ARM thường đượcdùng:

 Keil ARM

 HTPICC for ARM

 ImageCraft ICCV7 for ARM

3 Tổng quan về ngôn ngữ C và các hàm, kiểu dữ liệu hay dùng cho việc lập trình cho Vi điều khiển

1Ngôn ngữ C

Trang 8

C là ngôn ngữ lập trình cấp cao, được sử dụng rất phổ biến để lập trình hệ thốngcùng với Assembler và phát triển các ứng dụng.

Vào những năm cuối thập kỷ 60 đầu thập kỷ 70 của thế kỷ XX, Dennish Ritchie(làm việc tại phòng thí nghiệm Bell) đã phát triển ngôn ngữ lập trình C dựa trên ngôn ngữBCPL (do Martin Richards đưa ra vào năm 1967) và ngôn ngữ B (do Ken Thompson pháttriển từ ngôn ngữ BCPL vào năm 1970 khi viết hệ điều hành UNIX đầu tiên trên máyPDP-7) và được cài đặt lần đầu tiên trên hệ điều hành UNIX của máy DEC PDP-11.Năm 1978, Dennish Ritchie và B.W Kernighan đã cho xuất bản quyển “Ngôn ngữlập trình C” và được phổ biến rộng rãi đến nay

Lúc ban đầu, C được thiết kế nhằm lập trình trong môi trường của hệ điều hànhUnix nhằm mục đích hỗ trợ cho các công việc lập trình phức tạp Nhưng về sau, vớinhững nhu cầu phát triển ngày một tăng của công việc lập trình, C đã vượt qua khuôn khổcủa phòng thí nghiệm Bell và nhanh chóng hội nhập vào thế giới lập trình để rồi các công

ty lập trình sử dụng một cách rộng rãi Sau đó, các công ty sản xuất phần mềm lần lượtđưa ra các phiên bản hỗ trợ cho việc lập trình bằng ngôn ngữ C và chuẩn ANSI C cũngđược khai sinh từ đó

Ngôn ngữ lập trình C là một ngôn ngữ lập trình hệ thống rất mạnh và rất “mềmdẻo”, có một thư viện gồm rất nhiều các hàm (function) đã được tạo sẵn Người lập trình

có thể tận dụng các hàm này để giải quyết các bài toán mà không cần phải tạo mới Hơnthế nữa, ngôn ngữ C hỗ trợ rất nhiều phép toán nên phù hợp cho việc giải quyết các bàitoán kỹ thuật có nhiều công thức phức tạp Ngoài ra, C cũng cho phép người lập trình tựđịnh nghĩa thêm các kiểu dữ liệu trừu tượng khác Tuy nhiên, điều mà người mới vừa họclập trình C thường gặp “rắc rối” là “hơi khó hiểu” do sự “mềm dẻo” của C Dù vậy, Cđược phổ biến khá rộng rãi và đã trở thành một công cụ lập trình khá mạnh, được sửdụng như là một ngôn ngữ lập trình chủ yếu trong việc xây dựng những phần mềm hiệnnay

Ngôn ngữ C có những đặc điểm cơ bản sau:

Tính cô đọng (compact): C chỉ có 32 từ khóa chuẩn và 40 toán tử chuẩn, nhưng hầu hết

Trang 9

Tính cấu trúc (structured): C có một tập hợp những chỉ thị của lập trình như cấu trúc lựa

chọn, lặp… Từ đó các chương trình viết bằng C được tổ chức rõ ràng, dễ hiểu

Tính tương thích (compatible): C có bộ tiền xử lý và một thư viện chuẩn vô cùng phong

phú nên khi chuyển từ máy tính này sang máy tính khác các chương trình viết bằng Cvẫn hoàn toàn tương thích

Tính linh động (flexible): C là một ngôn ngữ rất uyển chuyển và cú pháp, chấp nhận

nhiều cách thể hiện, có thể thu gọn kích thước của các mã lệnh làm chương trình chạynhanh hơn

Biên dịch (compile): C cho phép biên dịch nhiều tập tin chương trình riêng rẽ thành các

tập tin đối tượng (object) và liên kết (link) các đối tượng đó lại với nhau thành mộtchương trình có thể thực thi được (executable) thống nhất

……….

Các câu lệnh

}

 Trong đó:

• Tên_hàm: là bất kỳ tên hợp lệ nào

• [kiểu_giá_trị_trả_về]: là kiểu dữ liệu của kết quả trả lại cho hàm nó gọi

• [danh sách tham số]: mô tả kiểu dữ liệu cùng thứ tự của các tham số hàmnhận được khi nó được gọi

• Các khai báo và câu lệnh trong cặp dấu {} tạo thành phần thân củahàm(khối)

Sự hoạt động của 1 hàm:

Trang 10

• Cấp phát bộ nhớ cho các đối và biến toàn cục.

• Gán giá trị của cá tham số thực sự cho các đối tương ứng

• Thực hiện các câu lệnh trong thân hàm

• Khi gặp câu lệnh return hoặc dấu } cuối cùng của thân hàm thì máy sẽ xóa các đối

Trang 11

Một giá trị kiểu số nguyên là một phần tử của một tập các số nguyên mà máy tính

có thể biểu diễn Trong ngôn ngữ lập trình C có nhiều kiểu dữ liệu số nguyên với dải giátrị khác nhau cụ thể:

Long double 3.4E-4932 -> 3.4E+4932 10

2 Các toán tử điều khiển chương trình:

I Cấu trúc điều khiển if

*Cấu trúc rẽ nhánh if dạng khuyết

Cú pháp câu lệnh:

If(bt) Công_việc;

Trang 12

*Cấu trúc rẽ nhánh if dạng đầy đủ

Cú pháp câu lệnh

If(bt) Công_việc 1;

Else Công_việc 2;

Trong đó:

- if, else là từ khóa

- bt là một biểu thức

- công_việc 1, công_việc 2 có thể là một lệnh đơn hay khối lệnh

II Cấu trúc điều khiển switch

Cú pháp câu lệnh:

Switch (biểu_thức)

{

case e1: Khối_lệnh_1;[break;]

case e2: Khối_lệnh_2;[break;]

- switch, case, default là các từ khóa

- biểu_thức: là một biểu thức nguyên bất kỳ

Trang 13

- ei: là giá trị nguyên mà biểu thức có thể nhận được Có thể là kiểuchar vì nó có thể chuyển đổi thành kiểu int

- Những phần đặt trong hai dâu[và] có thể có hoặc không

III Cấu trúc lặp while

Trang 14

- công_việc có thể là một lệnh đơn hay một khối lệnh

phần cơ bản

1 Cấu trúc phần cứng 8051

1Sơ đồ khối

- Kiến trúc cơ bản bên trong 8051 bao gồm các khối chức năng sau :

- CPU (Central Processing Unit): đơn vị điều khiển trung tâm

- Bộ nhớ chương trình ROM bao gồm 4 Kbyte

- Bộ nhớ dữ liệu RAM bao gồm 128 byte

- Bốn cổng xuất nhập

- Hai bộ định thời/bộ đếm 16 bit thực hiện chức năng định thời và đếm sự kiện

- Bộ giao diện nối tiếp (cổng nối tiếp)

- Khối điều khiển ngắt với hai nguồn ngắt ngoài

- Bộ chia tần số

Hình 2.1.1-1: Sơ đồ khối của bộ vi điều khiển 8051

Trang 15

2Sơ đồ chân và chức năng các chân của vi điều khiển 8051

Hình 2.2 cho ta sơ đồ chân của chip 8051, mô tả chức năng các chân như sau:

* Chân 1 đến 8: Được gọi là Cổng 1 (Port 1), Tám chân này có duy nhất 1 chức

năng là xuất và nhập Cổng 1 có thể xuất và nhập theo bit hoặc byte Ta đánh tên cho mỗichân của Port 1 là P1.X (X = 0 đến 7)

* Chân 9: Là chân vào reset của 8051 Khi tín hiệu này được đưa lên mức cao trong

ít nhất là 2 chu kỳ máy, các thanh ghi trong bộ vi điều khiển được tải những giá trị thíchhợp để khởi động hệ thống Hay nói cách khác là vi điều khiển sẽ bị reset nếu chân nàyđược kích hoạt mức cao

Hình 2.1.2-2: Sơ đồ chân của 8051

Trang 16

* Chân 10 đến 17: Được

gọi là Cổng 3 (Port 3) Tám chân này ngoài chức năng là xuất và nhập như các chân ởcổng 1 (chân 1 đến 8) thì mỗi chân này còn có chức năng riêng nữa, cụ thể như sau:

Hình 2.1.2-4: Chân số 10-17

* Chân 18 và 19: (XTAL1 & XTAL2)

Hai chân này được sử dụng để nối với bộ dao động ngoài

Hình 2.1.2-3: Sơ đồ mạch reset ngoài của 8051

Trang 17

Thông thường một bộ dao động thạch anh sẽ được nối tới các chân đầu vào XTAL1(chân 19) và XTAL2 (chân 18) cùng với hai tụ gốm giá trị khoảng 30pF Một phía của tụđiện được nối xuống đất như hình trên.

Các hệ thống xây dựng trên 8051 thường có tần số thạch anh từ 10 đến 40 MHz,thông thường ta dùng thạch anh 12 Mhz

* Chân 20: Được nối vào chân 0V của nguồn cấp.

* Chân 21 đến chân 28: Được gọi là cổng 2 (Port 2)

Tám chân của cổng 2 có 2 công dụng, ngoài chức năng là cổng xuất và nhập nhưcổng 1 thì cổng 2 này còn là byte cao của bus địa chỉ khi sử dụng bộ nhớ ngoài

* Chân 29 (PSEN):

Chân PSEN là chân điều khiển đọc chương trình ở bộ nhớ ngoài, nó được nối vớichân OE của ROM ngoài để cho phép đọc các byte mã lệnh trên ROM ngoài PSEN ởmức thấp trong thời gian đọc mã lệnh

Khi thực hiện chương trình trong ROM nội thì PSEN được duy trì ở mức cao

* Chân 30 (ALE): Chân ALE cho phép tách các đường dữ liệu và các đường địa

chỉ tại Port 0 và Port 2

Hình 2.1.2-5: Mạch dao động ngoài

Trang 18

* Chân 31 (EA): Tín hiệu chân EA cho phép chọn bộ nhớ chương trình là bộ nhớ

trong hay ngoài vi điều khiển Nếu chân EA được nối ở mức cao (nối nguồn Vcc), thì viđiều khiển thi hành chương trình trong ROM nội Nếu chân EA ở mức thấp (được nốiGND) thì vi điều khiển thi hành chương trình từ bộ nhớ ngoài

* Chân 32 đến 39: Được gọi là cổng 0 (Port 0)

Cổng 0 gồm 8 chân cũng có 2 công dụng, ngoài chức năng xuất nhập, cổng 0 còn làbus đa hợp dữ liệu và địa chỉ, chức năng này sẽ được sử dụng khi 8051 giao tiếp với cácbiết bị ngoài có kiến trúc Bus như các vi mạch nhớ

Vì cổng P0 là một máng mở khác so với các cổng P1, P2 và P3 nên các chân ở cổng

0 phải được nối với điện trở kéo khi sử dụng các chân này như chân vào/ra Điện trở nàytùy thuộc vào đặc tính ngõ vào của thành phần ghép nối với chân của port 0 Thường tadùng điện trở kéo khoảng 4K7 đến 10K

Hình 2.1.2-6:Nối điện trở kéo xuống cho cổng 0 của 8051

* Chân 40: chân nguồn của vi điều khiển, được nối vào chân Vcc của nguồn.

3Tổ chức bộ nhớ

Trang 19

Trên vi điều khiển 8051/8052 đều có cả bộ nhớ chương trình (ROM) và bộ nhớ dữliệu (RAM) Tuy nhiên dung lượng của các bộ nhớ trên chip là hạn chế Khi thiết kế cácứng dụng đòi hỏi bộ nhớ lớn người ta có thể dùng bộ nhớ ngoài.

1 Bộ nhớ chương trình

Bộ nhớ chương trình là bộ nhớ chỉ đọc, là nơi lưu trữ chương trình của vi điềukhiển Bộ nhớ chương trình của họ 8051 có thể thuộc một trong các loại sau ROM,EPROM, FLASH hoặc không có bộ nhớ chương trình trên chip Với họ vi điều khiển89xx, bộ nhớ chương trình được tích hợp sẵn trong chip có kích thước nhỏ nhất là4kByte Với các vi điều khiển không tích hợp sẵn bộ nhớ chương trình trên chip, buộcphải thiết kế bộ nhớ chương trình bên ngoài

Địa chỉ đầu tiên của bộ nhớ chương trình là 0000H, chính là địa chỉ reset của vi điềukhiển Ngay khi bật nguồn hoặc reset vi điều khiển, thì CPU sẽ nhảy đến thực hiện lệnh ởđịa chỉ 0000H này

Khi sử dụng bộ nhớ trên chip thì chân EA phải được nối lên mức logic cao (+5V).Nếu bạn muốn mở rộng bộ nhớ chương trình thì chúng ta phải dùng bộ nhớ ngoài vớidung lượng tối đa là 64Kbyte

2 Bộ nhớ dữ liệu

Bộ nhớ dữ liệu tồn tại độc lập so với bộ nhớ chương trình Họ vi điều khiển 8051 có

bộ nhớ dữ liệu tích hợp trên chip nhỏ nhất là 128byte và có thể mở rộng với bộ nhớ dữliệu ngoài lên tới 64kByte

2 Các chức năng Timer và Ngắt của 8051

1Ngắt của 8051

Ngắt (Interrupt) - như tên của nó, là một số sự kiện khẩn cấp bên trong hoặc bên

ngoài bộ vi điều khiển xảy ra, buộc vi điều khiển tạm dừng thực hiện chương trình hiệntại, phục vụ ngay lập tức nhiệm vụ mà ngắt yêu cầu – nhiệm vụ này gọi là trình phục vụ

ngắt (ISR: Interrupt Service Routine).

Trang 20

2 Ngắt khác với thăm dò

Trong phương pháp sử dụng ngắt : mỗi khi có một thiết bị bất kỳ cần được phục vụ

thì nó báo cho bộ vi điều khiển bằng cách gửi một tín hiệu ngắt Khi nhận được tínhiệu ngắt thì bộ vi điều khiển ngừng tất cả những gì nó đang thực hiện để chuyển sangphục vụ thiết bị gọi ngắt Chương trình ngắt được gọi là trình phục vụ ngắt ISR(InterruptService Routine) hay còn gọi là trình quản lý ngắt (Interrupt handler) Sau khi phục vụngắt xong, bộ vi xử lý lại quay trở lại điểm bị ngắt trước đó và tiếp tục thực hiện côngviệc

Trong phương pháp thăm dò: bộ vi điều khiển kiểm tra liên tục tình trạng của tất

cả các thiết bị, nếu thiết bị nào có yêu cầu thì nó dừng lại phục vụ thiết bị đó Sau đó nótiếp tục kiểm tra tình trạng của thiết bị kế tiếp cho đến hết Phương pháp thăm dò rất đơngiản, nhưng nó lại rất lãng phí thời gian để kiểm tra các thiết bị kể cả khi thiết bị đókhông cần phục vụ Trong trường hợp có quá nhiều thiết bị thì phương án thăm dò tỏ rakhông hiệu quả, gây ra chậm trễ cho các thiết bị cần phục vụ

*Điểm mạnh của phương pháp ngắt là:

Bộ vi điều khiển có thể phục vụ được rất nhiều thiết bị (tất nhiên là không tại cùngmột thời điểm) Mỗi thiết bị có thể nhận được sự chú ý của bộ vi điều khiển dựa trên mức

ưu tiên được gán cho nó Đối với phương pháp thăm dò thì không thể gán mức ưu tiêncho các thiết bị vì nó kiểm tra tất cả mọi thiết bị theo kiểu hỏi vòng

Quan trọng hơn, trong phương pháp ngắt thì bộ vi điều khiển còn có thể che (làmlơ) một yêu cầu phục vụ của thiết bị Điều này lại một lần nữa không thể thực hiện đượctrong phương pháp thăm dò

Lý do quan trọng nhất mà phương pháp ngắt được ưu chuộng là vì nó không lãngphí thời gian cho các thiết bị không cần phục vụ Còn phương pháp thăm dò làm lãng phíthời gian của bộ vi điều khiển bằng cách hỏi dò từng thiết bị kể cả khi chúng không cầnphục vụ

Ví dụ trong các bộ định thời khi ta dùng một vòng lặp kiểm tra và đợi cho đến khi

bộ định thời quay trở về 0 Trong ví dụ đó, nếu sử dụng ngắt thì ta không cần bận tâm đếnviệc kiểm tra cờ bộ định thời, do vậy không lãng phí thời gian để chờ đợi, trong khi đó ta

có thể làm việc khác có ích hơn

Trang 21

1 Nó kết thúc lệnh đang thực hiện và lưu địa chỉ của lệnh kế tiếp (PC) vào ngănxếp.

2 Nó cũng lưu tình trạng hiện tại của tất cá các ngắt vào bên trong (nghĩa là khônglưu vào ngản xếp)

3 Nó nhảy đến một vị trí cố định trong bộ nhớ được gọi là bảng véc tơ ngắt nơi lưugiữ địa chi của một trình phục vụ ngát

4 Bộ vi điểu khiển nhận địa chỉ ISR từ bảng véc tơ ngắt và nhảy tới đó Nó bắt đầuthực hiện trình phục vụ ngắt cho đến lệnh cuối cùng của ISR là RETI (trở về từngắt)

5 Khi thực hiện lệnh RETI bộ vi điều khiên quay trở về nơi nó đã bị ngắt Trướchết nó nhận địa chỉ của bộ đếm chương trình PC từ ngăn xếp bằng cách kéo haibyte trên đỉnh của ngăn xếp vào PC Sau đó bắt đầu thực hiện các lệnh từ địa chỉđó

4 Sáu ngắt trong 8051

Thực tế chỉ có 5 ngắt dành cho người dùng trong 8051 nhưng các nhà sản xuất nói

rằng có 6 ngắt vì họ tính cả lệnh RESET Sáu ngắt của 8051 được phân bố như sau:

1 RESET: Khi chân RESET được kích hoạt từ 8051, bộ đếm chương trình nhảy về

địa chỉ 0000H Đây là địa chỉ bật lại nguồn

2 2 ngắt dành cho các bộ định thời: 1 cho Timer0 và 1 cho Timer1 Địa chỉ tương

ứng của các ngắt này là 000BH và 001BH

3 2 ngắt dành cho các ngắt phần cứng bên ngoài: chân 12 (P3.2) và 13 (P3.3) của

cổng P3 là các ngắt phần cứng bên ngoài INT0 và INT1 tương ứng Địa chỉtương ứng của các ngắt ngoài này là 0003H và 0013H

4 Truyền thông nối tiếp: có 1 ngắt chung cho cả nhận và truyền dữ liệu nối tiếp.

Địa chỉ của ngắt này trong bảng vector ngắt là 0023H

5 Trình phục vụ ngắt

Đối với mỗi ngắt thì phải có một trình phục vụ ngắt (ISR) hay trình quản lý ngắt đểđưa ra nhiệm vụ cho bộ vi điều khiển khi được gọi ngắt Khi một ngắt được gọi thì bộ viđiều khiển sẽ chạy trình phục vụ ngắt Đối với mỗi ngắt thì có một vị trí cố định trong bộnhớ để giữ địa chỉ ISR của nó Nhóm vị trí bộ nhớ được dành riêng để lưu giữ địa chỉ củacác ISR được gọi là bảng vector ngắt

Ngày đăng: 12/06/2018, 23:16

TỪ KHÓA LIÊN QUAN

w