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

Thiết Kế Hệ PLC

94 361 4
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Thiết Kế Hệ PLC
Tác giả Lê Thành Sơn
Trường học Đại Học Sư Phạm Kỹ Thuật Hưng Yên
Thể loại Đồ án tốt nghiệp
Thành phố Hưng Yên
Định dạng
Số trang 94
Dung lượng 713,53 KB

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

Nội dung

Giáo trình tham khảo học tập về điều khiển lập trình PLC - Mạng PLC. PLC viết tắt của Programmable Logic Controller , là thiết bị điều khiển lập trình được (khả trình) cho phép thực hiện linh... điều k

Trang 1

PhÇn I:

giíi thiÖu chung vÒ ®iÒu khiÓn

logic vμ thiÕt bÞ plc

Trang 2

Trong phần này chúng ta đi tìm hiểu về khái niệm điều khiển lôgic và các kiến thức về PLC

1.1 Khái niệm điều khiển logic

Trong thực tế công nghệ có nhiều đại lượng vật lý cần điêù khiển và quan tâm

đến giá trị của nó tại một thời điểm có thể là lớn hay nhỏ quá trình điều đó gọi là

điều khiển qúa trình Nhưng ngoài ra còn có một điều khiển khác trong quá trình sản xuất cần quan tâm tới đó là việc đồng bộ quá trình làm việc của toàn bộ hệ thống Khi đó ta chỉ quan tâm đến trạng thái của các thiết bị đang làm việc hay nghỉ quá trình này gọi là điều khiển lôgic

Điều khiển lôgic xuất phát từ thực tế ngoài việc thiết bị làm việc như thế nào người ta còn phải quan tâm tới việc khi nào cho thiết bị làm việc, khi nào cho thiết bị nghỉ để đạt được hiệu quả cao trong quá trình điều khiển

Vậy trong điều khiển lôgic ta cần quan tâm tới 2 trạng thái do đó về mặt tín hiệu người ta quan tâm đến 2 trạng thái: Trạng thái cao(High) và trạng thái thấp (low).Thông thường trong thiết kế điều khiển logic người ta ngầm qui ước thiết

bị đang làm việc có trạng thái Logic 1 hay trạng thái cao còn khi thiết bị đang nghỉ thì ở mức lôgic 0 hay trạng thái thấp Tuy nhiên việc quy ước trên chỉ là tương đối mà tuỳ theo thiết bị điều khiển mà tương ứng với 0 là điểm nghỉ và là

điều khiển làm việc hoặc ngược lại còn nếu con người chủ động áp đặt 1 là làm việc thì chọn thiết bị cho phù hợp và có thể đặt ngược lại

Trong điều khiển lôgic ta cần quan tâm đến các biến đầu vào để gia công theo hàm logic tạo nên giá trị đầu ra Quan hệ giữa đầu ra và đầu vào nhờ

chương trình phần mềm hay phần cứng điều khiển Các biến đầu vào được tạo nên từ các nút ấn, công tắc các giá trị này phụ thuộc vào người vận hành hay trình tự của công nghệ Ngoài ra các biến vào khác Sensor logic của các thiết bị

do lường các đại lựơng vật lý mà ta cần điều khiển như tín hiệu ra của các công tắc hành trình, Rơle điện áp, Rơle áp lực, Rơle nhiệt…

Hàm Logic đầu ra đưa tới điều khiển các đối tượng có thể là nhóm các thiết

bị như các cuộn hút các thiết bị đóng cắt hay động cơ của máy sản xuất…

Trang 3

1.2 Khái niệm chung - ứng dụng của PLC

1.2.1 Khái niệm về PLC

PLC (Programable Logic Controller) là một thiết bị điều khiển logic lập trình

được Thiết bị này có các đầu vào logic sau quá trình xử lý theo chương trình bên trong nó cho đầu ra là các mức logic có quan hệ với các đầu vào thông qua chương trình bên trong thiết bị PLC có ứng dụng rộng rãi và dần không thể thiếu

được trong các dây truyền sản xuất hiện đại Chức năng điều khiển của PLC rất

đa dạng nó có thể thay thế cho 1 mảng rơle hơn thế việc mở rộng PLC giống như một máy tính nó có thể lập trình được Chương trình của PLC thay đổi đơn giản

rễ ràng bằng một máy lập trình cầm tay hay một máy tính cá nhân có phần mềm trợ giúp Khi đó có thể một nhân viên vận hành cũng có thể lập trình được Sở dĩ PLC có vai trò quan trọng tới mức không thể thiếu được trong các giây truyền sản xuất hiện đại chính là bởi tính mềm dẻo và tiện dụng được ứng dụng trong mọi lĩnh vực vì quy luật điều khiển của nó hoàn toàn thay đổi được một cách rễ ràng

1.2.2 Cấu trúc chung của 1 bộ PLC

Một bộ PLC có cấu trúc chung như sau:

Khi nghiên cứu tới PLC điều đầu tiên đó là số lượng các đầu vào và đầu ra (Input, Output) đối với một PLC thì số đầu vào ra có thể là 6 hoặc 8 hay nhiều hơn Số lượng đầu vào và đầu ra cho biết mức độ quản lý được nhiều thiết bị

IN0

IN1

INK

Bộ điều khiển theo chương trình

độc lập

Các

đầu ra logic

độc lập

Trang 4

Vấn đề này đặc biệt quan trọng khi ứng dụng PLC cho một dây truyền sản xuất phức tạp cần gia công nhiều biến đầu vào

Các biến đầu vào được lấy từ các công tắc đóng cắt thông thường, công tắc

vị trí hay các Sensor logic để đặt các giá trị logic ở đầu vào Các đầu vào này thường có mức điện áp cao để tăng độ tin cậy khi cầu truyễn xa Vì bên trong của PLC là một bộ vi điều khiển với vi điều khiển không làm việc với mức điện

áp cao vì vậy cần một mạch chuyển mức điện áp về mức chuẩn với mức logic 1

là +5 và mức logic 0 là 0V Khi đó PLC (bộ điều khiển bên trong) sẽ quét các cổng vào để lấy dữ liệu sau một quá trình xử lý bên trong bằng chương trình phần mềm sau đó dữ liệu đầu ra dạng số với mức logic 1 là +5V mức logic 0 là 0V qua mạch chuyển mức ta có các mức ra điện áp cao hơn để đáp ứng yêu cầu

Ngoài ra các đầu vào ra logic thì PLC còn có các đầu vào để cấp nguồn thông thường nguồn nuôi PLC là một điện áp xoay chiều qua xử lý nguồn tạo ra

điện áp 1 chiều phù hợp để nuôi bộ vi điều khiển và các mạch điện tử khác 1.2.3 ứng dụng vμ ưu nhược điểm của bộ điều khiển logic có khả năng lập trình (PLC).

Sự ra đời của PLC đã đáp ứng được yêu cầu cần thiết của việc điều khiển các dây truyền sản xuất và một loạt các yêu cầu khác mà các thiết bị điều khiển logic trước nó không thể đáp ứng hoặc đáp ứng hạn chế

Đơn cử việc ứng dụng PLC để thay thế cho 1 mảng rơle Trong các hệ thống khống chế - điều khiển logic truyền thống qúa trình này được thực hiện bằng mảng các rơle - công tắc tơ và sau này còn được thay thế bằng các mạch IC

Trang 5

số rõ ràng thực hiện quá trình điều khiển này hoàn toàn thực hiện bằng phần cứng vì vậy mà mỗi một yêu cầu điều khiển thì lại phải đi xây dựng 1 phần cứng

đáp ứng yêu cầu trên mà việc xây dựng bằng phần cứng như vậy là cực kỳ khó khăn về mặt kỹ thuật, chi phí tốn kém về mặt kinh tế và đặc biệt là mất rất nhiều thời gian khi xây dựng cũng như khi có yêu cầu thay đổi hay hiệu chỉnh thì phải cho hệ thống dừng và tháo ra lắp lại hoàn toàn bằng phần cứng vì vậy mà tổng chi phí cho quá trình này là rất lớn Đặc biệt với các dây truyền yêu cầu điều khiển phức tạp thì mạch này chiếm một thể tích đáng kể và độ tin cậy không cao Việc đưa PLC vào để thay thế cho quá trình điều khiển logic đem lại những ưu điểm nổi bật

Với một hệ thống lớn thì chi phí cho một bộ PLC là rất nhỏ Một PLC rất gọn nhẹ mà mức độ điều khiển là vô cùng lớn Các tiếp điểm trong mạch điều khiển logic bằng cuộn dây rơle đã được thay thế bằng câu lệnh vì vậy số lượng tiếp điểm là không hạn chế

Đặc điểm tính mềm dẻo trong điều khiển mà ta có thể thay thế luật điều khiển rất đơn giản và nhanh gọn mà hầu như không phải chi phí tài chính trong khi hệ thống đang làm việc bằng một máy lập trình cầm tay (HPC) hay một máy tính cá nhân (PC) ta hoàn toàn có thể gọi chương trình ra đế sửa chữa Việc lắp

đặt PLC rất đơn giản nhanh gọn chỉ cần xác định các đầu vào và đầu ra việc lập trình cho PLC hoàn toàn thực hiện được bằng phần mềm do nhà sản xuất cung cấp, các nhà sản xuất

Các nhà sản xuất PLC có thể sản xuất theo phương pháp sản xuất hàng loạt tuỳ theo ứng dụng mà khi viết chương trình sẽ tạo ra các quy luật đều khác nhau vì vậy mà làm giảm giá thành của PLC

Vậy các ưu điểm khi dùng PLC

- Thời gian lắp đạt công trình ngắn

- Dễ dàng thay đổi mà không gây tổn thất đến tài chính

- Có thể dễ dàng tính toán chính xác giá thành

- Cần ít thời gian huấn luyện

Trang 6

- Phạm vi ứng dụng rộng

- Dễ dàng bảo trì, xử lý sự cố dễ nhanh hơn

- Độ tin cậy cao

- Chuẩn hoá được phần cứng điều khiển

- Thích ứng trong môi trường khắc nghiệt

Tuy nhiên với mức độ quản lý và điều khiển rộng thì PLC lại không phù hợp với những hệ thống nhỏ, đơn giản vì khi đó sẽ không tận dụng được khả năng làm việc của thiết bị này

Các ứng dụng chính của PLC

™ Điều khiển giám sát

a Thay cho điều khiển rơle

b Tạo bộ đếm thời gian

c Thay cho các Panell điều khiển mạch in

d Điều khiển tự động, bán tự động các qúa trình

™ Điều khiển dãy

a Các phép toán số học

b Cung cấp thông tin

c Điều khiển liên tục (nhiệt độ, áp suất)

d Điều khiển PID

e Điều khiển động cơ chấp hành

f Điều khiển động cơ bước

™ Điều khiển mềm dẻo

a Điều khiển qúa trình báo động

b Phát hiện lỗi điều hành

c Ghép nối máy tính với RS 232 / RS 242

d Ghép nối máy in

Trang 7

Như vậy ứng dụng PLC trong kỹ thuật là vô cùng phong phú trong rất nhiều lĩnh vực từ điều khiển đến xử lý thông tin vì vậy càng thấy vai trò của nó

1.3 Bộ vi điều khiển vμ ứng dụng của bộ vi điều khiển trong hệ PLC

Trong thời đại công nghệ thông tin và ứng dụng mạnh mẽ của nó vào đời sống và kỹ thuật thì những kiến thức về vi điều khiển (Micro Controller) và ứng dụng của nó càng trở nên cần thiết

1.3.1 Giới thiệu tổng quan về bộ vi điều khiển

1.3.1.1 Định nghĩa vi điều khiển

Bộ vi điều khiển MC (Micro Controller) là một mạng tích hợp rất cao trên một chip và có thể lập trình được dùng để điều khiển hệ thống

Bộ vi điều khiển suất hiện từ việc đưa bộ VXL vào quá trình điều khiển vì vậy có thể hiểu bộ vi điều khiển như bộ vi xử lý song song sức xử lý thường không lớn như những bộ vi xử lý lớn

Khi nghiên cứu vi điều khiển ta quan tâm đến các vấn đề như sau:

Nguyên lý hoạt động của bộ vi điều khiển như một bộ vi xử lý

Với mỗi một bộ vi điều khiển ngoài các phần tử phụ như các rắc cắm các mạch đệm và lâng mức điện áp cho phù hợp yêu cầu thì với mọi hệ vi điều khiển

đều chứa các phần tử cơ bản như sau:

- Chíp vi xử lý ở đây diễn ra các quá trình xử lý thông tin như các phép toán số học và logic, các thao tác vào ra dữ liệu mọi quá trình này theo một

Trang 8

chương trình đã được lạp sẵn để tạo ra quan hệ giữa đầu vào và đầu ra theo yêu cầu

- ROM (Read Only Memory) là một bộ nhớ chỉ đọc thường lưu trữ hệ điều hành để giúp chíp vi xử lý tiến hành các thao tác khởi tạo khi dừng và 1 số quá trình vào ra dữ liệu

- RAM (Ramdom Access Memory) là bộ nhớ vừa có khả khả năng đọc và ghi với bộ nhớ này thường dùng lưu trữ dữ liệu trong quá trình làm việc hoặc có thể dùng RAM như một ROM khi đó các thao tác chung nhập vào RAM như việc đọc chương trình ở ROM

Sơ đồ của một hệ vi điều khiển với các phần tử chính như sau:

Ban đầu khối tạo vi xử lý đọc chương trình trong ROM đó là chương trình

điều hành nó quét và kiểm tra toàn bộ hệ thống và đưa trạng thái cả hệ ở trạng thái sẵn sàng rồi chạy chương trình chính khi đó sẽ có quá trình quét lấy tín hiệu vào theo yêu cầu của chương trình rồi tiến hành xử lý, gia công để đưa ra điều khiển các thiết bị theo yêu cầu Các tín hiệu điều khiển này có thể là dạng số

được lưu trữ bằng một vi mạch đệm chốt và có thể chuyển mức điều khiển theo yêu cầu Nếu đối tượng điều khiển là tín hiệu tương tự thì từ tín hiệu số qua bộ chuyển đổi D/A tạo ra tín hiệu tương tự làm tín hiệu điều khiển

RAMd

aa

d

RoM ad

Cổng truyềnnối tiếp VXL

Trang 9

Tương tự như đầu ra, đầu vào cũng có thể chuyển mức chuẩn vì thường các tín hiệu số lấy từ Sensor logic vì yêu cầu truyền xa nên có mức điện áp

không phù hợp với yêu cầu làm việc của vi xử lý nếu đầu vào là một tín hiệu tương tự thì cần một bộ biến đổi A/D để đưa tín hiệu số vào vi xử lý

Như vậy vi điều khiển như một máy tính mà ứng dụng của nó là tạo ra các tín hiệu điều khiển hệ thống bằng chương trình phần mềm

1.3.1.3 ứng dụng của vi điều khiển

Sự lớn mạnh không ngừng của các thiết bị vi điều khiển (chip xử lý trung tâm) phần nào nói lên vai trò quan trọng của hệ vi điều khiển trong thực tế Vào những năm 1970 do sự phát triển của kỹ thuật vi điện tử dựa trên kỹ thuật MOS (Metal Oxire Semicon Ductor) với độ tích hợp ngày càng cao Vi mạch MSI (Mundium Size Integration) có độ tích hợp cỡ 103 Tranzito trên một chíp, vi mạch LSI (Large Size Integretion) có độ tích hợp cỡ 104 Trangito trên một chíp

và vi mạch VLSI (Verry LSI) có độ tích hợp 105 Tranzito trên chíp nhưng số bit

xử lý còn nhỏ Năm 1971 bộ vi xử lý Intel 4004 loại 4 bit ra đời có chứa 2250 Tranzito đến năm 1975 hãng Intel có ra đời chíp xử lý 8 bit 8080 và 8085 Năm

1978 hãng Intel cho ra đời vi xử lý 16bit 8086 có 29.000 Tranzito và hãng

Motorola cho ra đơì vi xử lý 68.000 với 70.000 Tranzito và vi xử lý 32bit của Henlet packand có 40.000 Tranzito

Vậy từ năm 1947 đến năm 1984 số Tranzito tích hợp trên một chíp đã tăng

100 lần Đến năm 1983 hãng Intel cho ra vi xử lý 8286 dùng cho máy tính AT (Advaned Tecchnology) dùng các đường I/0 16bit và có 24 đường địa chỉ và không gian nhớ địa chỉ thực là 16MB và năm 1987 vi xử lý 80386 xử lý 32bit năm 1989 hãng Intel cho ra đời chip xử lý 80486 phát triển trên cơ sở 80386 có thêm bộ nhớ ấn và mạch tính toán dấu phẩy động

Năm 1992 Intel cho ra 80586 còn gọi là Pentium 64bit có 4 triệu Tranzito Các bộ vi xử lý này phát triển theo hướng ngày càng tăng chức năng và độ tích hợp

Từ các con số trên ta thấy được sự phát triển mạnh mẽ lĩnh vực vi điều

Trang 10

ứng dụng của bộ vi điều khiển rất rộng rãi trong các thiết bị thông minh bằng việc lập trình tạo chương trình điều khiển vì vậy mà tính mềm dẻo của nó rất cao, thay đổi chương trình điều khiển đơn giản đặc biệt với các bộ đếm thời gian lập trình được càng tăng tính ứng dụng của nó

Trong công nghiệp dùng hệ vi điều khiển trong cánh tay robôt, các hệ thống điều khiển dây truyền hay tổng hợp thống kê các thông tin của quá trình sản xuất nhà máy hay dùng trong việc bảo vệ và tự động điều khiển các Camera quan sát

Việc kết hợp giữa hệ vi điều khiển và các cảm biến tạo nên các hệ điều khiển thông minh được ứng dụng trong các máy giặt, quạt gió, điều hoà nhiệt dộ,

đầu đĩa, ti vi, điện thoại di động…

Đặc biệt có thể tiêu chuẩn hoá phần cứng mà ứng dụng trong công nghiệp sản xuất hàng loạt

Vậy ứng dụng của thiết bị vi điều khiển là rất phong phú trong mọi lĩnh vực nhờ khả năng lập trình cao của thiết bị

1.3.2 ứng dụng bộ vi điều khiển trong PLC

Vi điều khiển trong bộ PLC là hạt nhân điều hành và kiểm soát mọi thao tác từ đọc dữ liệu đầu vào rồi xử lý và điều hành quá trình đưa dữ liệu ra Thiết bị PLC được tạo lên từ hệ vi điều khiển và các mạch điện chốt, chuyển mức điện áp

và một cổng truyền RS232 để đọc ra và đưa vào chương trình điều khiển Như vậy bộ vi điều khiển trong PLC quyết định mọi sự hoạt động của PLC

Kết luận: ở phần I này chúng ta đã đi tìm hiểu một số khái niệm chung và

một số kiến thức có liên quan tới PLC và bộ vi điều khiển Để tìm hiểu và xây dựng cụ thể bộ vi điều khiển và thiết bị PLC sẽ được đề cập ở phần sau

Trang 11

PhÇn II:

GIíI thiÖu hä vi ®iÒu khiÓn mcs-51

Trang 12

Vi điều khiển 8031 có những tính chất đặc trưng như: Đơn vị xử lý trung tâm 8bit đã được tối ưu hoá để đáp ứng các chức năng điều khiển

- Khối logic xử lý theo bit thuận thiện cho các phép toán Boolear

- Bộ tạo giao động giữ nhịp bên trong ( đến 12 MHZ)

- Tập lệnh rất phong phú

- Giao diện nối tiếp có khả năng hoạt động song song đồng bộ (UART) 16(32) đường dẫn vào/ra 2 hướng và từng đường dẫn có thể được định địa chỉ 1 cách tách biệt

- Năm nguồn ngắt với hai mức ưu tiên

- Dung lượng bộ nhớ chương trình bên ngoài ( ROM) có thể đến 64 KB

- Dung lượng bộ nhớ dữ liệu ( RAM ) bên ngoài đến 64KB

- Dung lượng bộ nhớ RAM trong 128byte

- Hai bộ đếm định thời 16 bit

- Bus và khối định thời tương thích với các khối ngoại vi của bộ vi xử lý 8085/88

- Tất cả các vi điều khiển của dòng vi điều khiển MCS - 51 đều có chung

bộ lệnh Nếu độ lớn của chương trình vừa trong một chip ROM và nếu Ram trong đầy đủ thì vi điều khiển 8031 không yêu cầu thêm logic để thi hành kết thúc điều khiển hệ thống

Trang 13

2.1 Cấu tạo chung của họ vi xử lý 8031

Vi xử lý 8031 là vi xử lý thuộc họ 8051 do hãng Intel chế tạo có sơ đồ chân chuẩn nh− sau:

*

1 40 2 39

3 38

4 37

5 36

6 35

7 34

8 33

9 32

Vcc P0.0 ADO P0.1 AD1 P0.2 AD2 P0.3 AD3 P0.4 AD4 P0.5 AD5 P0.6 AD6 P0.7 AD7

EA / Vpp ALE / PROG PSEN P2.7 A15 P2.6 A14 P2.5 A13 P2.4 A12 P2.3 A11 P2.2 A10 P2.1 A 9 P2.0 A 8

P1.0 P1.1 P1.2 P1.3 P1.4 P1.6 P1.6 P1.7 RST RXD P3.0 TXD P3.1 INTO P3.2 INT1 P3.3

TO P3.4 T1 P3.5

WR P3.6

RD P3.7 XTAL2 XTAL1 Vss

MCS 8031 DIP40

Trang 14

40 Vcc Nguån nu«i +5V

Trang 15

2.2 CÊu tróc bªn trong cña 8031

+ Thanh ghi tÝch lòy ( kÝ hiÖu lµ A)

+ Thanh ghi tÝch luü phô (B) dïnngcho phÐp nh©n vµ chia

+ §¬n vÞ logic (ALU: Arithmetic Logical Unit)

+ Tõ tr¹ng th¸i ch−¬ng tr×nh ( PSW: Progam Status Word)

Ram trong

128 byte ram

thanh

ghi sfr

Trang 16

+ Con trỏ ngăn xếp (SP) cũng như con trỏ dữ liệu để định địa chỉ cho bộ nhớ dữ liệu ngoài

+ Ngoài ra ở đây còn có: Bộ đếm chương trình (PC), bộ giải mã lệnh, bộ

điều khiển thời gian và logic

Đơn vị xử lý thông tin nhận trực tiếp xung nhịp từ bộ tạo dao động được lắp thêm vào, linh kiện phụ trợ có thêm là một khung dao động bằng vật liệu gốm hoặc một cộng hưởng bằng thạch anh

Chương trình đang chạy có thể dừng lại nhờ một khối logic 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

Bộ vi xử lý 8031 nhận được chương trình điều hành của nó từ một bộ nhớ chương trình bên ngoài, 8031 có 128 bytes RAM bên trong để có thể xắp xếp các dữ liệu và thông tin điều khiển 8031 có 2 bộ định thời 16 bit, chúng cũng

được xử dụng như là bộ đếm sự kiện

8031 có 4 cổng rộng 8 bit, độc lập với nhau, cổng P.0 dùng để truyền nửa dưới của các địa chỉ và cũng dùng cho các dữ liệu 8 bit Cổng P.2 để truyền nửa trên của các địa chỉ ở cổng P.3 còng có thêm các đường dẫn điều khiển dùng để trao đổi tin với bộ nhớ ngoài, để đấu nối giao diện nối tiếp cũng như các đường dẫn ngắt 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 Bằng cách đấu nối với các bộ đệm thích hợp, ta có thể hình thành một cổng nối tiếp RS - 232 đơn giản Tốc độ truyền qua cổng nối tiếp

có thể được đặt trong một vùng rộng và được ấn định bằng một bộ định thời

2.3 Hoạt động với bộ nhớ chương trình bên ngoμi của VXL 8031

Hình vẽ sau chỉ ra một sơ đồ nguyên tắc cấu trúc một mạch điện dùng với

bộ VXL 8031 và bộ nhớ chương trình bên ngoài cùng vớu bộ chốt ( latch) 8 bit

Trang 17

ROM: Read Only Memorry

Một vài vi xử lý họ MCS 8051 có nhớ ROM trong,nhưng 8031 không có bộ nhớ chương trình bên trong do đó hoạt động được thì 8031 phải làm việc với bộ nhớ chương trình ngoài(ROM ngoài) Khi làm việc với bộ nhớ chương trình

ngoài chân EA của vi xử lý 8031 phải được nối Mass.VXL8031 có thể địa chỉ

hoá được 64KB bộ nhớ chương trình ngoài

Khi lấy dữ liệu từ ROM vi xử lý 8031 thực hiện các bước sau:

- Đưa địa chỉ byte thấp (A0 ữ A7) lên bus dữ liệu

- Chốt các địa chỉ bằng mạch ngoài Việc này thực hiện bằng cách lập xung chốt qua chân ALE cho mạch chốt ngoài

Đưa địa chỉ byte cao đến ROM (nếu cần) cho phép ROM đưa dữ liệu lên bus dữ liệu Khi đọc dữ liệu từ ROM vi xử lý sẽ đưa chân PSEN suống mức thấp

Vi xử lý 8031 có thể địa chỉ hoá được 64KB bộ nhớ chương trình ngoài nên

ta có thể cho ROM 64KB Điển hình là loại 2764 gồm các chân như sau:

- A0 ữ A12 là các chân địa chỉ

- D0 ữ D7 các chân dữ liệu

- OE (Out Enable) chân cho phép dữ liệu ra khi chân OE ở mức thấp

thì ROM cho dữ liệu lên bus dữ liệu của vi xử lý

Trang 18

có bộ nhớ dữ liệu bên ngoài, tần số ALE cũng là hằng số ( OSC/6) Tín hiệu ALE trong trường hợp này có thể sử dụng làm tín hiệu giữ nhịp cho các mạch bên ngoài

Trong chu trình ALE được kích hoạt ở mức Hight, bộ VXL đặt ở trong

đường dẫn địa chỉ phía dưới để truy nhập lên bộ nhớ chương trình bên ngoài lên Bus chung dùng cho dữ liệu và địa chỉ Sau đó khi có sườn dốc xuống trên xung tín hiệu ALE thì nội dung của địa chỉ thấp này được chuyển vào bộ nhớ trung gian

Trang 19

Bằng việc xắp xếp các địa chỉ phía dưới vào Bus dữ liệu, các đường dẫn

địa chỉ A8 đến A15 được xếp vào cổng P2 mức cuả các đường dẫn này giữ nguyên

ổn định cho đến khi kết thúc chu trình truy nhập lệnh

Khi xung tín hiệu của ALE có đoạn dốc xuống thì bộ VXL đặt đường dẫn

điều khiển PSEN của nó vào mức Low Sau một vài chu trình giữ nhịp, bộ nhớ chương trình bên ngoài cần phải sắp xếp các dữ liệu( các lệnh) của nó lên Bus dữ liệu và Bus địa chỉ chung Sau đó bằng sườn dốc lên của PSEN bộ VXL đón nhận các dữ liệu đang được xếp ở cổng P0

2.5 Quá trình truy nhập lên bộ nhớ dữ liệu của VXL 8031

Hình vẽ dưới đây minh hoạ diễn biến của một quá trình truy nhập để đọc

bộ nhớ dữ liệu bên ngoài:

Giống như khi đọc bộ nhớ chương trình bên ngoài, trước hết 8 đường dẫn dẫn 8 địa chỉ thấy ở cổng P0 và được xếp lên Bus chung dùng cho dữ liệu và địa chỉ thấp để chuyển vào bộ nhớ trung gian dùng cho địa chỉ bằng sườn dốc xuống cuẩ tín hiệu ALE tiếp theo là sự kích hoạt của đường dẫn RD, điều khiển quá trình đọc dữ liệu bên ngoài Ngay trước khi đường dẫn RD trở về với mức High,

bộ xử lý đón nhận các dữ liệu đang được xếp ở bus Do đó, với nhiều ứng dụng

đường dẫn RD được nối tiếp hoặc qua một bộ giải mã địa chỉ với chân OE của thiết bị ngoại vi

A8 A15 P2

P0

RD

ALE

Trang 20

VXL 8031 nhận biết một quá trình truy nhập dữ liệu bên ngoài 8 và 16 bit, khi truy nhập dữ liệu 8 bit, nội dung của cỏng P2 giữ nguyên không thay đổi giống như khi viết, các địa chỉ được truy nhập được xuất ra Bus chung dùng cho dữ liệu và địa chỉ, từ đó suy ra rằng một vùng địa chỉ lớn nhất là 256 Byte có thể trao đổi được Còn khi sảy ra quá trình truy nhập 16 bit, bộ xử lý xuất ra 8 bit địa chỉ giá trị cao hơn qua cổng P2 Bằng cách này có thể truy nhập trực tiếp lên bộ nhớ dữ liệu bên ngoài đến 64 KB

Hình vẽ giản đồ sau đây biểu diễn diễn biến của một quá trình viết lên bộ nhớ dữ liệu bên ngoài của VXL 8031

Việc sắp xếp các địa chỉ giá trị thấp A0 đến A7 diễn ra giống như trong quá trình truy nhập để đọc, tiếp theo các dữ liệu cần viết được xuất ra cổng P0 Một xung Low được đặt lên đường dẫn WR Thông thường thì khi xuất hiện sườn dốc lên ở đường dẫn tín hiệu này, khối ngoại vi được nối vào Bus dữ liệu sẽ đón nhận các thông tin được sắp xếp trên Bus dữ liệu

Với quá trình truy nhập để viết, giống như khi đọc các quá trình truy nhập

8 hoặc 16 bit lên thiết bị ngoại vi bên ngoài là hoàn toàn có thể Khi truy nhập 8 bit, cổng P2 cũng giữ nguyên không thay đổi, trong khi ở quá trình truy nhập 16 bit các địa chỉgiá trị cao hơn được sắp xếp

Khi hoạt động với bộ nhớ bên ngoài, các cổng 0,2 và đôi khi cả cổng 3

đều được sắp xếp dùng cho việc định địa chỉ và truyền dữ liệu, một bộ nhớ Ram

Trang 21

ngoài sử dụng cùng Bus địa chỉ và Bus dữ liệu giống như bộ nhớ chương trình ở

ngoài nhưng chúng đươcn trao đổi với các đường dẫn điều khiển IOR và IOW , trong khi bộ nhớ chương trình ở ngoài được kích hoạt bằng tín hiệu PSEN

2.6 Vi điều khiển 8031

Phần trước ta đã tìm hiểu những nét cơ bản về họ VXL MCS -51 đại diện

lầ VXL 8031 Có thể nói bộ VXL 8031 của hãng INTEL là thế hệ kế tiêp của VXL 8048 sau khi đã được cải tiến và mở rộng thêm nhiều về phần cứng Hiện nay bộ VXL này là một bộ VXL được dùng thông dụng nhất Bộ VXL 8031 định

địa chỉ ô nhớ dữ liệu và chương trình đến 64 Kbyte Về phần cứng trong 8031

được bổ xung phải kể đến một giao diện nối tiếp và một bộ định thời bổ xung đã làm đơn giản hoá cả những ứng dụng phức tạp Ngoài ra tốc độ làm việc của

8031 cũng tăng lên Một bộ tạo tín hiệu giữ nhịp với tần số được xoá định bởi bộ cộng hưởng thạch anh đấu bên ngoài, xác định độ làm việc của VXL Các lệnh

được thực hiện tới mức tần số bằng 1/12 tần số riêng của bộ dao động thạch anh Khi tần số riêng của bộ dao động thạch anh bằng 12 MHz thì một lệnh một byte cần đúng một Micro giây Khi các lệnh có thạm số cần tra cứu trong bộ nhớ chương trình thì cần có thời gian dài gấp đôi

2.6.1 Bộ đếm chương trình của 8031

Bộ đếm chương trình được dùng để chỉ đếm byte lệnh tiếp theo sẽ được

đọc Nó không bị ảnh hưởng trực tiếp nhưng sẽ bị thay đổi bằng những lệnh rẽ nhánh như lệnh Jump hoặc Call Nó cũng có thể dùng như địa chỉ cơ sở cho chỉ

số địa chỉ khi đọc từ bộ nhớ chương trình

Khối Ram trong của 8031từ [ 0h 1Fh] được dùng cho các thanh ghi C 4 bank với 8 thanh ghi trong mỗi Bank đó từ R0 đến R7

Bank thanh ghi 0: Từ 00h đến 07h ( R0 dến R7)

Bank thanh ghi 1: Từ 08h đến 0Fh

Bank thanh ghi 2: Từ 10h đến 17h

Bank thanh ghi 3: Từ 18h đến 1Fh

Trang 22

Để chọn địa chỉ các thanh ghi, đầu tiên các thanh ghi Bank phải được kích hoạt (Active) Việc lựa chọn được làm bởi cờ trong từ trạng thái chưong trình PSW Sau khi đã được chọn thanh ghi 1 được kí hiệu là RI

Ví dụ:

Mov a , R5 sẽ chuyển nội dung thah ghi số 5 vào thanh ghi A, thanh ghi đó phụ thuộc vào thanh ghi Bank hiện tại được chọn, có thể là byte số 5, 0Dh, 15h hoặc 1Dh của Ram trong Các thanh ghi Bank thường được dùng dành cho chương trình con ( Subroutine) hoặc chưong trình con phục vụ ngắt ( Interup Service Routine)

2.6.2 Những thanh ghi chức năng đặc biệt: SFR ( Special Function Registers)

Trong phần trên của vùng địa chỉ Ram bên trong của VXL 8031 có đặt vô

số các thanh ghi có chức năng đặc biệt ( SFR) để qua đó có thể trao đổi với các

bộ phận ngoại vi ở bên trong của bộ VXL 8031

SFR bao gồm các thanh ghi dữ liệu vầ các thanh ghi điều khiển chúng nằm trong các cổng, time, hoặc là các thanh ghi điều khiển ngắt

Cổng nối tiếp được điều khiển bởi SFR Scon, trong khi dữ liệu vào ra cổng này đi qua thanh ghi SFR SBUF Những bit riêng lẻ của Scon xác lập những chế

độ khác nhau của cổng nói tiếp Scon có thể được xem như thanh ghi điều khiển

và SBUF được gọi là thah ghi dữ liệu

SFR có byte địa chỉ trong khoảng ( 80h FFh) ( tiếp theo phần địa chỉ của Ram trong từ 00h 07h như đã nói ở trên) 8031 có thể truy nhập Ram và SFR bằng chế độ địa chỉ gián tiếp thanh ghi

Ví dụ:

Mov A,80h: Chuyển giá trị lưu trữ trong SFR 80h vào thah ghi A Mov A, @ RO: RO đã được đặt 80h, sẽ chuyển nội dung của Ram vào trong thah ghi A

SFR bao gồm cả thanh ghi A, thanh ghi B và từ trạng thái chương trình PSW bao gồm cả cờ hệ thống như cờ Carry có 2 bit để kích hoạt thanh ghi Bank Sau đây là danh sách các thanh ghi có chức năng đặc biệt SFR của 8031:

Trang 23

Stt Register Address Mnemonic Internal

6 Timer/ Counter Control TCON 88h

7 Timer/ Counter Low Byte TLO 8Ah

8 Timer/ Counter Mode Control TMOM 89h

9 Timer/ Counter 1 Low Byte TL1 8Bh

10 Timer/ Counter 0 High Byte TH0 8Ch

11 Timer/ Counter 1 High Byte TH1 8Dh

18 Interrupt Priority Control IP B8h

Trang 24

2.6.3 RAM trong của 8031

RAM trong của 8031 bao gồm cả các thanh ghi và cácc thanh ghi có thể lập trình và xoá từng bit như là Ram đa mục đích Ram được dùng như là vùng làm việc đa năng Ram on chip có địa chỉ từ 00h đến 7Fh

Bộ VXL 8031 quản lý các địa chỉ tách rời nhau dùng cho bộ nhớ Ram bên trong bằng 128 byte ( ở 8032 là 256 byte), cho bộ nhớ chương trình và bộ nhớ dữ liệu ở bên ngoài ( nếu như có đầu vào) Cùng địa chỉ đó có thể xuất hiện đồng thời 3 lần Một đặc điểm của 8031 là khả năng truy nhập những lệnh đặc biệt lên các bit riêng lẻ cho bộ nhớ Ram bên trong Vùng bộ nhớ Ram 29h đến 2Fh được

sử dụng 1 cách tự do là có thể truy nhập tới bằng các địa chỉ bit 0 đến 7Fh

Bộ nhớ Ram bên trong cho phép xếp đặt trong vùng phía rưới 4 dãy thanh ghi độc lập với mỗi dãy 8 thanh ghi Sau mỗi lần đặt lại ( Reset), ngăn xếp bắt

đầu ở địa chỉ 08 và tăng dần lên phía trên với mỗi lần gọi chương trình con Để

có thể xử dụng những Bank thanh ghi cao hơn, con trỏ ngăn xếp phải đượ đặt lên một giá trị thích hợp ở chỗ bắt đầu của một chương trình

Chỉ thị Mov chuyển dữ liệu đến Ram hoặc từ Ram đi cho phép dùng cả 2 chế độ trực tiếp và gián tiếp địa chỉ

Ví dụ:

Mov A,35h; Sẽ chuyển nội dung của byte 35h của Ram trong của thanh ghi A

Lệnh của 8031 sử dụng kí hiệu # để chỉ ra đó là hằng số

Mov A,# 35h; Chuyển 35h vào thanh ghi A

Mov A,@ RO; Chuyển nội dung cuả byte nhớ ở Ram trong có địa chỉ

được chứa trong thanh ghi Ro vào thanh ghi A.( Các thanh ghi được dùng có thể

từ 0 đến 7)

8031 có 128 bye bộ nhớ, do đó có thanh ghi Ro chứa giá trị từ 00h đến 7hH Và chỉ có thanh ghi R0,R1 của những bank thanh ghi được chọn hiện thời

có thể dùng chế độ gián tiếp địa chỉ

Bộ nhớ Ram bên trong của 8031:

Trang 26

Một điều chú ý nữa là mặc dù tất cả các thao tác đọc mà đọc giá trị từ chân cổng, Có một vài thao tác vẫn đọc ngầm đọc giá trị của cổng chốt, gọi là thao tác Read Modify Wite

Ví dụ:

INC P1 sẽ đọc nội dung cuả cổng, tăng giá trị và ghi kết quả trở lại cổng Những thao tác đó được tiến hành hoàn toàn bằng phần cứng những chỉ thị read Modify Wite lầ ANL, ORL, XRL khi mà toán hạng đích là cá bit của cổng SFR, còn thao tác JBC và CPL được dùng khi toán hạng đích là các bit của cổng SFR INC, DEC, MOV, CLR và SET, DJNZ được dùng khi toán hạng thứ nhất là cổng SFR

Ví dụ:

MOV P1.0,c chuyển giá trị của cờ Carry vào bit 0 của Port 1 thao tác này

được tiến hành bằng phần cứng, chia làm 2 phần: Port 1 được đọc từ chốt sau đó bit 0 của nó sẽ bị thay đổi và sẽ được ghi trở lại chốt

Tổng cộng có 4 cổng, nhưng khi dụng bộ nhớ ở ngoài thì 3 cổng trong số

đó được sử dụng hoàn toàn hoặc một phần Chỉ còn lại cổng P1 có 8 lối ra vào

được sử dụng tự do Chúng được gọi là các cổng giả hai hướng (Quasi bidirectional), bởi vì trạng thái tĩnh của cổng này là cao và có điện trở cao, ngoài ra chúng có thể đóng vai trò như các lối vào ở trạng thái thấp chúng có điện trở thấp và có thể đệm trực tiếp cho các LED Cổng 0,2,3 có các chức năng thay đổi, những chân cổng này có thể được dùng như là những đường vào ra số liệu chung, hoặc

có thể dùng cho những chức năng thứ hai của chúng Chức năng thứ hai của cổng

0 và 2 là giao tiếp với bộ nhớ ngoài Cổng 3 có các chức năng thứ hai như sau: Bit Alternate Function Mnemonic/ Designation

0 Serial Input Port RxD

1 Serial Output Port TxD

2 External Interrupt 0 INT 0

3 External Interrupt 1 INT 1

4 Timer/ Counter 0 External Input T0

5 Timer/ Counter 1 External Input T1

Trang 27

6 External Memory Write Strobe WR

7 External Memory Read Strobe RD

Để tiến hành lựa chọn các chức năng thứ một hay hai của các cổng thì các SFR tương ứng phải được thiết lập

2.6.5 Cổng nối tiếp của 8031

Giao diện nối tiếp ở bên trong của VXL 8031 cho phép ghép nối bộVXL với một máy tính PC một cách rất đơn giản Bởi vì giao diện được thực hiện nhờ

bộ UART hoạt động độc lập( Autonomous), nên bộ VXL hoàn toàn tự do đối với các nhiệm vụ khác Cổng nối tiếp được điều khiển với thanh ghi có chức năng

đặc biệt (SFR) SCON Để khởi tạo giao diện thanh ghi SCON cần phải được nạp bằng các tham số thích hợp

SMO, SM1: Các bit chế độ nối tiếp 1 và 2 chọn loại hoạt động

Chế độ 0: Cổng nối tiếp dùng như một thanh ghi dịch và tốc độ dịch bằng một chu kỳ máy hay bằng 1/12 dao động tinh thể thạch anh

Chế độ 1: Dùng Timer 1 để phát ra tốc độ Baud để truyền và nhận 8 bit dữ liệu

Chế độ 2: Dùng cổng nối tiếp 9 bit với tốc dộ baud là 1/32 hay 1/64 dao

động tinh thể thạch anh

Chế độ 3: Dùng nối tiếp 9 bit với tốc độ baud được quyết định bởi Timer 1 SM2 dùng trong chố độ 2 hoặc 3 để đa xử lý được dễ dàng

Trang 28

REN: Được xác lập bằng phần mềm để cho phép nhận nối tiếp nếu bị xoá dữ liệu sẽ nhận theo từng khối

TB8: Được lập và xoá bằng phần mềm và bit thứ 9 sẽ được truyền trong Mode 2 và Mode 3

RB8: Phụ thuộc vào chế độ hoạt động của chế độ làm việc Nếu đang làm việc ở chế độ 2 hoặc 3 thì sẽ nhận 9 bit dữ liệu và bit cuối cùng được đưa vào RB8

TI: Được xác lập bởi phần cứng để báo hiệu việc truyền đã kết thúc Nó phải được xoá bằng phần mềm để cho phép truyền dữ liệu tiếp theo

RI: Được xác lập bằng phần cứng để báo hiệu việc nhận đã hoàn thành Nó cũng được xoá bằng phần mềm lúc đọc byte dữ liệu từ SBUF để cho phép nhận dữ liệu tiếp theo

Thanh ghi dữ liệu của giao dịch nối tiếp là SBUF (SFR 99h) dữ liệu vào và

ra cổng nối tiếp đều đi qua SFR SBUF Thực tế phía sau thanh ghi SBUF là hai thanh ghi cụ thể là thanh ghi dữ liệu truyền và thanh ghi dữ liệu nhận Quá trình

được truyền mở đầu bằng cách đơn giản bằng cách truy nhập để ghi lên thanh ghi SBUF Ngược lại, một byte đã được nhận có thể được đọc từ SBUF Trong chế độ 9 bit, mỗi một bit thứ 9(TB 8 hoặc TR 8) trong thanh ghi SMOD cần phải

được chú ý đến người ta hay dùng chế độ hoạt động loại 1 và như vậy có 1 bộ UART 8 bit, tốc độ Baud bằng bộ định thời 1 Dòng dữ liệu 8 bit được mở đàu bằng 1 bit Start kết thúc bằng 1 bit Stop Tốc độ Baud bằng 1/16(SMOD =1) hoặc 1/32 (SMOD=0) của tốc độ tràn của bộ định thời 1 SMOD là bít có giá trị cao nhất trong thanh ghi SCON ( SFR 87h)

SMOD: 1 bằng tốc độ Baud thấp, bằng 0 tốc độ baud cao

GF1, GF2: Cờ được sử dụng tự do

PD: Chế độ Power Down (chỉ ở loại CMOS 80C31)

IDL: Chế độ chạy không (IDLE)

2.6.6 Timer/ Counter của 8031

Việc tạo ra một tín hiệu giữ nhịp dùng cho giao diện nối tiếp đòi hỏi trước hết là việc lập trình cho bộ định thời 1 8031 có 2 Timer/ Counter, cả hai bộ định

Trang 29

thời này đều có hai thanh ghi đếm 8 bit trên mỗi bộ Các thanhghi này có thể

được nạp và được đọc ra Time / Counter 0 là thanh ghi TH0 và TL0, Timer/ Counter 1 là TH1 và TL1 Khi hoạt động, mỗi khi có xung đột nào thì số đếm xong lưu trong 1 hoặc 2 chân của cổng 3 (XTAL1, XTAL2) Số xung hiện tại của Timer/ Counter có thể đọc từ TL0 và TL 1 hoặc TH0 và TH1 Timer/Counter cũng phát ra ngắt với điều kiện là những ngắt đó không bị IE chắn, khi bộ đếm

bị tràn ( và lại quay về 0) thì ngắt được phát ra Trạng thái của các ngắt đó được quan sát qua SFR TCON

Hoạt động của Timer/ Counter được điều khiển bởi bộ xung ngẫu nhiên từ nguồn tới thanh ghi đếm dữ liệu Nguồn dữ liệu sẽ tới thanh ghi dữ liệu của Timer 0 nếu điều kiện là (Gate hoặc INTO) và TR0 Gate là bit điều khiển Timer 0 của TMOD 8031 coi bit điều khiển là Gate Tuy nhiên khi Timer/ Counter hoạt động trong lúc Gate đang ở mức logic thấp thì sẽ giống như trên chứng tỏ bit điều khiển là Gate TR0 cũng là bit điều khiển của Timer 0 trong

Sơ đồ khối của Timer/Counter

Trang 30

thanh ghi TMOD, INTO của 80331 ( chân 12 của 8031) Điều kiện trên đã chỉ rõ rằng những thanh ghi dữ liệu của Timer 0 đã được cập nhập nguồn khi bit điều khiển TR0 được thiết lập và cả bit điều khiển Gate bị xoá hoặc INT0 của 8031 ở mức 1

Thông thường người ta chia chế độ làm việc của bộ định thời ra làm 3 phần: + Nguồn vào

+ Điều khiển hoạt động

Bộ định thời 1 hoặc 0 đếm các xung nhịp bên trong của 8031 như là bộ

đếm liên tục tự do Vì thế nó được đưa vào như là một bộ định thời trong chế độ hoạt động loại 2 Khi đó cứ mỗi lần tràn thì một trạng thái đã được đặt trước bộ

đếm lại tái lập trong bộ đếm Mỗi một bộ đếm được khởi động qua bit TR của nó trong thanh ghi TCON, TCON cũng có chứa các cờ tràn của 2 bộ định thời và 4 bit điều khiển để điều khiển ngắt qua các chân INT và 0 INT 1

Đối với chế độ hoạt động như là máy phát tốc độ Baud, ở đây chỉ cần bit chạy ( Rn bit) TR1 phải được đặt Muốn thế phải định địa chỉ được tới bit là đạt tới được địa chỉ 8Eh Nhưng trước hết, khi bộ đếm được làm dừng thì tốc độ bộ chia tần cần phải được thiết lập ở loại hoạt động 2, byte bộ đếm có giá trị cao nhất TH1 có chứa giá trị nạp lại, giá trị mà cứ mỗi lần tràn lại được nạp vào thanh ghi bộ đếm Đối với vận tốc truyền 9600 Baud, ở bit SMOD đã được đặt cần có giá trị tần số bộ cộng hưởng thạch anh bằng 11,0592 MHz phải lựa chọn một số chia bằng 6

11059,2 KHz/12/6/16 = 9,6 KHz

Trang 31

Khi nạp giá trị bộ đếm bằng 256 - 6 = 250 = FAh thì hệ số chia bằng 6 vì

bộ đếm ở đây đếm theo hướng tiến

Timer/ Counter có 4 chế độ hoạt động, hoạt động của cả 2Timer/ Counter

được quyết đinh bởi SFR TMOD 4 bit thấp của TMOD điều khiển 0,4 bit cao

của TMOD điều khiển Timer 1

TMOD Register(89h) :

Gate: Mỗi một bộ đếm được cho phép qua chân INTO hoặc INT1 Khi TR0

(RT1) của TCON được thiết lập Gate sẽ xoá Timer/ Counter hoạt động Nếu

Gate và TR0 ( TR1) cũng được thiết lập thì cho phépTimer/ Counter hoạt động

nếu INTO (IMT1) được kích hoạt Low

C/T (Counter/Timer Select): 0: Timer

Bộ đếm sẽ tăng khi xung vào TO ( T1) cổng 3 ở chế độ Timer mỗi khi có

xung ( qua) thứ 12 thì bộ đếm sẽ tăng

M1 và M0 : Chộn chế độ làm việc

0 0 : Mode 0 bộ đếm/ bộ phát thời gian 13 bit Trong chế độ này

ngắt được phát ra khi có 213 = 8192 xung vào

0 1 : Mode 1 bộ đếm/ bộ phát thời gian 16 bit Trong chế độ này ngắt được phát ra khi có 216 = 65536 xung vào

1 0 : Bộ đếm/ bộ phát thời gian 8 bit, tự động nạp lại khi bật nguồn

nuôi

1 1 : Mode 3 chỉ dùng cho bộ đếm 0 : Hai bộ đếm 8 bit tách rời

nhau

Trang 32

TCON Register ( SFR 88h)

7 6 5 4 3 2 1 0

TF1: Cờ tràn dùng cho Timer 1 TF1 được thiết lập bằng phần cứng khi Timer/Counter bị tràn TF1 bị xoá khi có xử lý rẽ nhánh đến chương trình con, phục vụ ngắt, TF1 và IE1 có thể điều khiển bằng phần mềm để quyết định trạng thái của Timer 1

TR1: Đóng mạch Timer 1: Timer/Counter 1 không hoạt động khi bit này

bị xoá, bit này cần thiết được lập nhưng không đủ để cho phép Timer/Counter hoạt động TR1 điều khiển hoàn toàn bằng phần mềm

TF0: Cờ tràn dùng cho Timer 0

TR0: Đóng mạch Timer 0

IE1: Ngắt ở INT1 với kích chuyển bằng sường xung Được thiết lập bằng phần mềm khi ngắt ngoài được xác định, bit này sẽ bị xoá khi lệnh Return được thực hiện ( Return From Interrupt)

IT1: Cờ ngắt dùng cho INT1 Ngắt 1 ở ngoài nhận qua chân P3.3 của cổng 3 Xóa IT1 thì ngắt sẽ phát ra khi tín hiệu ngoài là thấp Nếu tín hiệu ngoài vẫn ở mức thấp INT1 sẽ được phát ra nếu INT1 bị xoá và sẽ không phát ra nếu INT1 được lập INT1 được điều khiển bằng phần mềm

IE0: Ngắt ở INT0 với kích chuyển bằng sườn xung

IT0: Cờ ngắt dùng cho INT0

2.6.7 Điều khiển ngắt

8031 có 5 ngắt: TF0, TF1, INT0, INT1 và kết quả của cổng nối tiếp TF0

và TF1 của các thanh ghi TCON tạo ra 2 ngắt, Timer/Counter tạo ra ngắt khi bộ

đếm bị tràn INT0 và INT1 tạo ra 2 ngắt ngoài, những ngắt đó do tín hiệu ngoài nhận được qua 2 chân P3.2 và P3.3 của cổng 3 Phần cứng điều khiển ngắt có thể lập trình để trả lời mỗi khi có sườn xuống của tín hiệu ngoài hoặc mức thấp của tín hiệu ngoài Sự lự chọn này sẽ quyết định bởi bit điều khiển INT0 và INT1 của SFR TCON Ngắt cuối cùng là từ cổng nối tiếp, cờ ngắt RT và TI của SCON kết

Trang 33

hợp bởi cổng OR do đó cờ thấp có thể phát ra ngắt Đó là nhiệm vụ của 2 cờ TI

và RI để xác định nguyên nhân gây ra ngắt

Có 2 SFR điều khiển ngắt: Thanh ghi cho phép ngắt IE dùng để che các ngắt riêng lẻ và thanh ghi ưu tiên ngắt IP định ra những ngắt có ưu tiên Khi có 2 ngắt cùng được lập trình cùng một mức ưu tiên thì mức ưu tên sẽ như sau:

IE0 là ngắt có ưu tiên cao nhất sau đó là TF0, IE1, TF1 và RI, TI là thấp nhất Với điều kiện à không được chắn( Not Masked) VXL chấp nhận ngắt và rẽ nhánh chương trình đến nơi trong bộ nhớ chương trình được gọi bởi lệnh Lcall Trong trường hợp này từ trạng thái chương trình không được cất vào Stack Sau

đây là địa chỉ các Vectơ ngắt:

Interrupt Service Rountine Address Defal Priority

EX0 (Enable Extenal Interrupt 0): Được thiết lập bằng phần mềm để cho phép ngắt 0 ngoài, xoá về 0 là không cho phép

ET0 ( Enable Timer/Counter Interrupt 0): Thiết lập bằng phần mềm cho phép Timer/Counter tràn Interrupt 0, xoá về 0 là không cho phép

EX1: Được thiết lập bằng phần mềm để cho phép ngắt 1 ngoài, xoá về 0 là không cho phép

ET1: Thiết lập bằng phần mềm cho phép Timer/Counter tràn Interrupt 1, xoá về 0 là không cho phép

ES: (Enable Serial Port Interrupt ): Được thiết lập bằng phần mềm cho phép cổng nối tiếp ngắt 1, xoá về 0 không cho phép

Trang 34

EA( Enable All): Khi bit này bị xoá tất cả các ngắt này đều bị xoá và khi

được lập sẽ cho phép phụ thuộc vào bit điều khiển

IP Register:

7 6 5 4 3 2 1 0

PX0 ( Priority of Enable Interrupt 0): Khi được thiết lập ngắt 0 ngoài nhận

được sẽ ở mức ưu tiên cao

PT0 ( Priority of Timer/Counter Interrupt 0 ): Khi bit này lập ngắt 0 ở ngoài Timer/Counter nhận được sẽ ở mức ưu tiên cao

PX1: Tương tự PX0 nhưng cho ngắt 1 ngoài

PT1: Tương tự PT0 nhưng cho ngắt 1 ngoài nhận được

PS: ( Priority of Serial Port Interrupt ): Ngắt cổng nối tiếp nhận được ở mức

ưu tiên cao khi bit này được lập

2.6.8 Bộ phát dao động

8031 có một bộ phát dao động dùng thạch anh bên ngoài Bộ tạo dao

động tần số giống như tần số của tinh thể thạch anh và được chia cho 12, nó có thể được dùng làm đầu vào của Timer

Dùng bộ phát dao động 12 MHz thì đầu vào của Timer sẽ là 1 MHz 8031

có 12 chu kỳ dao động trên một chu kỳ máy Nó có 255 thao tác những nhóm mã lệnh, tương đương 111 chỉ thị

Ví dụ:

Có 15 mã thao tác cụ thể phụ thuộc vào byte đích, byte nguồn và chế độ

địa chỉ Thêm vào đó, có 2 lệnh dịch chuyển bit và một lệnh dịch chuyển Word, lệnh đó dịch chuyển 16 bit vào con trỏ dữ liệu ( Data Poiter) Trong 255 mã thao tác đó,159 thao tác hết một chu kỳ máy, 51 thao tác cần 2 chu kỳ máy, 43 thao tác cần 3 chu kỳ máy và 2 thao tác cần 4 chu kỳ máy Trừ khi có nhiều thao tác chỉ cần có một chu kỳ máy, 8031 đã xem xét đến khả năng có thể thực hiện hàng triệu lệnh trong một giây Rất nhiều hệ thống 8031 dùng dao động tinh thể thạch

Trang 35

anh 11,0582 MHz, Sở dĩ có sự lựa chọn này vì thực tế nó có thể phát ra tốc độ Baud rất cao Dao động tinh thể 11,0592 MHz tốc độ có thể lên tới 19200 Baud Sau khi xung Reset tác động, vi xử lý đ−ợc khởi tạo lại ta có nội dung của các thanh ghi đặc biệt (SFR) nh− sau:

Trang 36

2.6.9 Bản đồ của bộ nhớ

Khối nhớ trong khoảng {20h 2Fh} gồm 16 byte = 128 bit có thể đánh địa chỉ theo từng bit Một bit có một địa chỉ từ 0h đến 7Fh Bit 0 của 20 là bit địa chỉ

0 và bit 7 của byte 2Fh là bit địa chỉ 7Fh

6 Date Pointer High byte DPH 00h

15 Timer/Counter Control TCON 0000 0000b

16 Timer/Counter 0 Low Byte TL0 00h

17 Timer/Counter 0 High Byte TH0 00h

18 Timer/Counter 1 Low Byte TL1 00h

19 Timer/Counter 1 High Byte TH1 00h

Trang 37

Ví dụ:

Mov C,13h chuyển nội dung boolean của bit 13h vào thanh ghi cờ Bit 13h

là bit số 3 của byte ở vị trí 22h của Ram trong Ta cũng có thể viết nh− sau: Mov C,22.3h cũng cho một kết quả Các SFR khác cũng có thể đánh địa chỉ theo từng bit, những bit địa chỉ đó nằm trong khoảng từ { 80h FFh}

Mov a, # 1; Chuyển 1 vào thanh ghi a

Mov PSW, # 0; Chọn Regiser Bank 0

Mov 0,# 1; Chuyển 1 vào thanh ghi 0 của thanh ghi Bank 0

- Chế độ địa chỉ trực tiếp ( Direct Addressing Mode) Trong chế độ này toán hạng nguồn và đích là các thanh ghi hoặc các SFR

80h 7Fh

FFh

Địa chỉ của các SFR

30h 2Fh

Sử Dụng tự do và ngăn xếp

00h

20h 1Fh

16 BYTE đánh địa chỉ theo bit

4 Bank thanh ghi 32 byte

Bản đồ bộ nhớ RAM trong 8031

Trang 38

Mov PSW,#2 : Chọn thanh ghi Bank 2

Mov R0, a: Chuyển nội dung thanh ghi a vào R0

Mov R2,b: Chuyển nội dung thanh ghi B vào R2

- Chế độ địa chỉ gián tiếp thanh ghi Trong chế độ này toán hạng nguồn hay là đích là một ô nhớ có địa chỉ chứa trong một thanh ghi của thanh ghi Bank

đ−ợc chọn

Ví dụ:

Mov PSW, #0: Chọn thanh ghi Bank 0

Mov R0, #a:

Mov @ R0,#1: Chuyển 1 vào ô nhớ có địa chỉ chứa trong R0

- Chế độ địa chỉ số thanh ghi (Register Indexed Addressing Mode) Trong chế độ này toán hạng nguồn hay toán hạng đích đ−ợc lấy bằng cách cộng giá trị của thanh ghi a với địa chỉ cơ sở Địa chỉ cơ sở có thể là DPTR ( Data Poiter) hoặc PC (Progam Counter)

Ví dụ:

Mov DPTR, # 800h: Chuyển địa chỉ bảng cơ sở vào data

Mov a, #0 : Pointer

Mov a, @ + DPTR : a:= ( a+ DPTR),ROM

Ngoài những chế độ địa chỉ trên 8031 còn có các chế độ địa chỉ làm việc với Stack, làm việc theo từng bit và có lệnh hoán đổi từng bit của 1 byte

Ví dụ:

Mov SP, #SFR: Khởi tạo Stack Pointer

Trang 39

Mov a, # 45h :

Push acc : Cất thanh ghi a vào Stack

Mov b, # 0 : Xoá thanh ghi B

Pop B : Chuyển nội dung từ định Stack (45h) vào thanh ghi B

Các lệnh hoán đổi của 8031 rất tiện lợi khi làm việc với các số BCD Nội

dung của thanh ghi a, Các thanh ghi khác có thể hoán đổi cho nhau mà không

cần biến trung gian

Ví dụ :

Mov a, # 0ah: Khởi tạo thanh ghi a

Mov b, # 0bbh: Khởi tạo thanh ghi a

Xch a,b : Hoán đổi a,b

Xch a,b : Trả lại giá trị cho thanh ghi a,b

Xch a,b : Hoán đổi 4 bit thấp của a,b

+ Tất cả các bit trong khoảng 20h đến 2Fh có thể đ−ợc xử lý đồng thời

từng byte hay từng bit và ta cũng có thể xử lý từng bit của cổng

74 Mov A, # Data 2 A: = dữ liệu

78 7F Mov R, # Data 2 R0 R7: = dữ liệu

76,77 Mov @R, # Data 2 R0,R1: = dữ liệu, bộ nhớ

Trang 40

2.7.2.2 Lệnh di chuyển dữ liệu

Lệnh Mã gợi nhớ Nhịp Chức năng

E8EF Mov A,R 1 A: = R0 R7

F8FF Mov A,R 1 R0 R7: = A

E6,E7 Mov A,@R 1 A: = (R0,R1), Ram trong

D6,F7 Mov @R,A 1 R0,R1: = A, Ram trong

F5 Mov adr,A 1 Adr:= A, Ram trong

E5 Mov A,adr 1 A: = Adr , Ram trong

A8AF Mov A,adr 2 R0 R7: = adr, Ram trong

888F Mov R,adr 2 adr: = R0 R7, Ram trong

86 87 Mov adr,@R 2 adr: = (R0,R1), Ram trong A6AF Mov @R,adr 2 R0,R1: = adr, Ram trong

86 Mov adrl, adr2 2 adrl: = adr2, Ram trong

C0 PUSH adr 2 Stack: = adr, Ram trong

D0 Pop adr 2 adr: = stack, Ram trong

E2,E3 Mov A, @R 2 A: =(R0,R1), Ram ngoài F2,F3 Mov @R,A 2 (R0,R1): = A, Ram ngoài

E0 Mov A, @DPTR 2 A: = DPTR, Ram ngoài F0 Mov @DPTR,A 2 DPTR: = A, Ram ngoài

93 MovC A@A+DPTR 2 A: = ( A+ DPTR), Rom

E3 Mov P3 A@A+PC 2 2 A: = (A + PC), Rom

- Lệnh hoán vị ( trao đổi dữ liệu):

Ngày đăng: 25/10/2012, 06:32

HÌNH ẢNH LIÊN QUAN

Sơ đồ của một hệ vi điều khiển với các phần tử chính nh− sau: - Thiết Kế Hệ PLC
Sơ đồ c ủa một hệ vi điều khiển với các phần tử chính nh− sau: (Trang 8)
Sơ đồ khối của Timer/Counter - Thiết Kế Hệ PLC
Sơ đồ kh ối của Timer/Counter (Trang 29)
Sơ đồ khối toàn bộ hệ thống. - Thiết Kế Hệ PLC
Sơ đồ kh ối toàn bộ hệ thống (Trang 46)
Sơ đồ chân của Max 232: - Thiết Kế Hệ PLC
Sơ đồ ch ân của Max 232: (Trang 52)
Bảng chức năng các chân cắm trong ổ cắm DB9: - Thiết Kế Hệ PLC
Bảng ch ức năng các chân cắm trong ổ cắm DB9: (Trang 54)
Sơ đồ nguyên lý của khối nh− sau: - Thiết Kế Hệ PLC
Sơ đồ nguy ên lý của khối nh− sau: (Trang 55)
Sơ đồ chân của SRAM 6264 nh− sau : - Thiết Kế Hệ PLC
Sơ đồ ch ân của SRAM 6264 nh− sau : (Trang 60)
Sơ đồ nguyên lý mạch lấy tín hiệu vào có chuyển mức điện áp. - Thiết Kế Hệ PLC
Sơ đồ nguy ên lý mạch lấy tín hiệu vào có chuyển mức điện áp (Trang 64)
Sơ đồ nguyên lí mạch d−a tín hiệu ra theo kiểu đóng cắt Rơle.  Nguyên lí hoạt động của khối lấy tín hiệu vào: - Thiết Kế Hệ PLC
Sơ đồ nguy ên lí mạch d−a tín hiệu ra theo kiểu đóng cắt Rơle. Nguyên lí hoạt động của khối lấy tín hiệu vào: (Trang 64)
Sơ đồ nguyên lý nguồn nuôi cho toàn - Thiết Kế Hệ PLC
Sơ đồ nguy ên lý nguồn nuôi cho toàn (Trang 65)
Hình vẽ sau đây minh hoạ hệ vi xử  lý đ−ợc ghép nối với máy tính nh− thế  nào : - Thiết Kế Hệ PLC
Hình v ẽ sau đây minh hoạ hệ vi xử lý đ−ợc ghép nối với máy tính nh− thế nào : (Trang 78)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w