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

Tài liệu Thiết bị báo cháy và điều khiển tự động, chương 4 doc

11 474 1
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 đề Các thanh ghi có chức năng đặc biệt
Định dạng
Số trang 11
Dung lượng 116,27 KB

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

Nội dung

Vì vậy mỗi thanh ghi sẽ có một địa chỉ ngoại trừ thanh ghi đếm bộ nhớ chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp.. Ngoại trừ thanh ghi A có thể đư

Trang 1

Chương 4: CÁC THANH GHI CÓ CHỨC

NĂNG ĐẶC BIỆT

Các thanh ghi của C8031/8051 được truy xuất ngầm định bởi bộ lệnh Ví dụ “INC A” sẽ tăng nội dung thanh ghi A lên một đơn vị Tác động này được ngầm định trong mã lệnh

Các thanh ghi trong C8031/8051 được định dạng như một phần của RAM trên chip Vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi đếm bộ nhớ chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp) Cũng như R0  R7, 8031 có 21 thanh ghi có chức năng đặc biệt

ở vùng trên của RAM nội có địa chỉ từ 80HFFH

 Chú ý: tất cả 128 địa chỉ từ 80H  FFH không được định nghĩa chỉ có 21 thanh ghi có chức năng đặc biệt được định nghĩa sẳn các địa chỉ

Ngoại trừ thanh ghi A có thể được truy xuất ngầm như đã nói, đa số các thanh ghi có chức năng đặc biệt SFR có địa chỉ hóa từng bit hoặc byte

 Chú ý: một vài thanh ghi SFR có thể địa chỉ hóa từng bit hoặc byte nên người lập trình phải thận trọng khi truy xuất bit hoặc byte

1 Từ trạng thái chương trình: (PSW: Program Status Word)

Thanh ghi trạng thái chương trình PSW (Program Status Word) ở địa chỉ D0H chứa các bit trạng thái được tóm tắt như sau:

hiệu

Địa chỉ

Ý nghĩa

Trang 2

7

PSW

PSW

5

PSW

PSW

3

RS0 D3H Bit 0 chọn bank thanh ghi

00 = bank 0: địa chỉ 00H07H

01 = bank 1: địa chỉ 08H0FH

10 = bank 2: địa chỉ 10H17H

11 = bank 3: địa chỉ 18H1FH

PSW

2

PSW

PSW

0

PORT D0H Cờ parity chẳn lẻ

Bảng : Các bit của thanh ghi PSW

 Cờ nhớ (CY):

Cờ nhớ Carry có tác dụng kép Thông thường nó được dùng cho các lệnh toán học: C = 1 nếu phép toán cộng có tràn hoặc phép trừ có mượn và ngược lại C = 0 nếu phép toán cộng không tràn và phép trừ không có mượn

Trang 3

Ví dụ: lệnh sau sẽ trả về thanh ghi tích lũy kết quả 00H và set cờ nhớ trong PSW nếu thanh ghi tích lũy A chứa FFH

 Cờ nhớ phụ AC: (AC: Auxillary Carry Flag)

Khi cộng các số BCD, cờ nhớ phụ AC = 1 nếu kết quả 4 bit thấp trong khoảng 0A0F và ngược lại cờ nhớ phụ AC = 0

 Cờ 0 (F0):

Cờ 0 là một bit cờ đa dụng dùng cho các ứng dụng cho người dùng

 Các bit chọn bank thanh ghi truy xuất (RS0 và RS1): Các bit chọn bank thanh ghi nhằm để xác định bank thanhghi được truy xuất Chúng được xoá sau khi Reset hệ thống và được thay đổi bằng phần mềm nếu cần

Ví dụ: 3 lệnh sau đây cho phép bank thanh ghi 3 được

chọn và di chuyển nội dung thanh ghi R7 (có địa chỉ byte 1FH) vào thanh ghi A

SETB RS1 SETB RS0 MOV A, R7 Khi chương trình được dịch sang mã máy cho 8031 thi hành, các địa chỉ bit được thay thế bằng các ký tự RS1 và RS0 Vậy lệnh SETB RS1 là SETB 0DH

 Cờ tràn 0V: (Overlow Flag)

Cờ tràn có tác dụng như sau: 0V = 1 sau một lệnh cộng hoặc trừ nếu có phép toán bị tràn Khi các số có dấu được cộng hay trừ với nhau, phần mềm có thể kiểm tra bit này để kiểm tra

Trang 4

xem kết quả có trong tầm xác định hay không Khi có số không dấu được cộng, bit 0V có thể được bỏ qua Các kết quả lớn hơn +127 hoặc nhỏ hơn –128 thì bit 0V=1

Ví dụ: phép cộng sau bị tràn và bit 0V sẽ được set: 0FH +

7FH = 8EH Kết quả là một số có dấu 8E được xem như –116, không phải là kết quả đúng 142 vì vậy bit 0V = 1

2 Thanh ghi B:

Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi tích lũy A cho các phép toán nhân và chia Lệnh MUL AB sẽ nhân các giá trị không dấu 8 bit trong A và B rồi trả về kết quả

16 bit A (byte thấp) và B (byte cao) Lệnh DIV AB sẽ chia A cho B và trả kết quả phần nguyên trong A và phần dư trong B Thanh ghi có thể được xem là một thanh ghi đệm đa dụng Nó được địa chỉ hóa từng bit với các địa chỉ từ F0H  F7H

3 Con trỏ ngăn xếp:

Con trỏ ngăn xếp SP là một thanh ghi 8 bit ở địa chỉ 81H Nó chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh ngăn xếp Các lệnh trên ngăn xếp bao gồm các lệnh cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu và lệnh lấy dữ liệu ra khỏi ngăn xếp sẽ làm giảm SP Ngăn xếp của 8031 được giữ trong RAM ngoại và giới hạn các địa chỉ có thể truy xuất bằng địa chỉ gián tiếp, chúng là 128 byte đầu của 8031

Ví dụ: Để khởi động SP với ngăn xếp bắt đầu tai địa chỉ

60H, thì dùng lệnh sau đây:

MOV SP, #5F Với lệnh trên thì ngăn xếp của 8031 chỉ có 32 byte vì địa chỉ cao nhất của RAM trên vi điều khiển là 7F Sở dĩ giá trị 5F

Trang 5

được nạp vào SP vì SP sẽ tăng lên 60H trước khi cất byte dữ liệu đầu tiên

Khi Reset 8031, SP sẽ mang giá trị mặc định là 07H và dữ liệu đầu tiên sẽ được nạp vào ô nhớ ngăn xếp có địa chỉ 08H Nếu phần mềm ứng dụng không khởi động SP một giá trị mới thì bank thanh ghi l có thể cả 2 và 3 sẽ không dùng được vì dùng RAM này đã được dùng làm ngăn xếp Ngăn xếp được truy xuất trực tiếp bằng lệnh PUSH và lệnh POP để lưu trữ tạm thời và lấy dữ liệu, hoặc truy xuất ngầm bằng lệnh gọi chương trình con (ACALL và LCALL) và lệnh trở về (RET, RETL) để lưu giá trị của bộ đếm chương trình khi bắt đầu thực hiện chương trình con và lấy lại khi kết thúc chương trình con

4 Con trỏ dữ liệu: (DPTR: Data Poiter)

Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài là một thanh ghi 16 bit ở địa chỉ 82H (DPL: byte thấp) và 83H (DPH: byte cao) 3 lệnh sau đây sẽ ghi địa chỉ 55H vào RAM ngoại ở địa chỉ 1000H:

MOV A,#55H

MOV DPRT, ##1000H

MOVX@ DPTR,A

Lệnh đầu tiên dùng để nạp dữ liệu 55H vào thanh ghi tích lũy Lệnh thứ 2 được dùng để nạp dữ liệu 1000H vào con trỏ dữ liệu DPTR Lệnh thứ 3 sẽ di chuyển nội dung trong thanh ghi A (55H) vào ô nhớ RAM ngoài có địa chỉ chứa trong DPTR (là 1000H)

5 Các thanh ghi port xuất nhập:

Các Port của 8031 gồm port 0 ở địa chỉ 80H, port 1 ở địa chỉ 90H, port 2 ở địa chỉ A0H và port 3 ở địa chỉ B0H Tất cả

Trang 6

các port này có thể truy xuất từng bit nên rất thuận tiện trong chức năng giao tiếp

Ví dụ: Nếu một motor được nối với cuộn dây có transitor lái đến bit 7 của port 1, 8031 có bật và tắt bằng một lệnh đơn:

SETB P1.7

CLR P1.7

Và có thể thực hiện tương tự bằng hai lệnh sau:

SETB P1.7

CLR 97H

6 Các thanh ghi Timer:

8031 có chứa hai bộ định thời/ đếm 16 bit được dùng cho việc định thời hoặc đếm sự kiện Timer 0 ở địa chỉ 8AH (TLO: byte thấp) và 8CH (THO: byte cao) Timer 1 ở địachỉ 8BH (TL1: byte thấp)và 8DH (TH1: byte cao) việc khởi động Timer được set bởi Timer mode (TMOD) ở địa chỉ 89 và thanh ghi điều khiển Timer (TCON) ở địa chỉ 88H Chỉ có TCON được địa chỉ hóa từng bit

7 Các thanh ghi port nối tiếp:

8031 chứa 1 port nối tiếp dùng cho việc trao đổi thông tin với các thiết bị nối tiếp như máy tính moderm hoặc giao tiếp với các IC khác (các bộ chuyển đổi A\D, các thanh ghi dịch…) Một thanh ghi gọi là bộ đếm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả hai dữ liệu phát và dữ liệu nhận Khi truyền dữ liệu thì ghi lên SUBF, khi nhận dữ liệu thì đọc SUBF Các mode vận hành khác nhau được lập trình qua thanh ghi điều khiển port nối tiếp (SCON: được địa chỉ hóa từng bit ở địa chỉ 98H)

Trang 7

8 Các thanh ghi ngắt:

8031 có cấu trúc 5 nguồn ngắt và 2 mức ưu tiên Các ngắt

bị cấm sau khi Reset hệ thống và sẽ được cho phép bằng việc thanh ghi cho phép ngắt (LE) ở địa chỉ A8H Cả hai thanh ghi được địa chỉ hóa từng bit

9 Thanh ghi điều khiển công suất:

Thanh ghi điều khiển công suất (PCON) ở địa chỉ 97H chứa nhiều bit điều khiển chúng được tóm tắt ở bảng sau:

Bit Kí

hiệu

Ý nghĩa 7

6

5

4

3

2

1

0

SMO

D

-GF1

GF0

PD

IDL

Bit gấp đôi tốc độ band, nếu được set thì tốc độ baud sẽ tăng gấp đôi trong các mode 1,2 và 3 của port nối tiếp

Không ý nghĩa Không ý nghĩa Không ý nghĩa Bit cờ đa dụng 1 Bit cờ đa dụng 2 Giảm công suất, được set hoạt mode giảm công suất, chỉ thoát khi reset

Mode chờ, set để kích hoạt mode chờ, chỉ thoát khi có ngắt hoặc reset hệ thống

V BỘ NHỚ NGOÀI:

8031 có khả năng mở rộng bộ nhớ lên đến 64 kB bộ nhớ chương trình và 64 KB bộ nhớ dữ liệu bên ngoài Do đó có thể dùng ROM và RAM nếu cần Khi dùng bộ nhớ ngoài port 0 cũng là một port I/O thuần tuý Nó được kết hợp với Bus địa chỉ

Trang 8

A0 đến A7 và Bus dữ liệu D0 đến D7 với tín hiệu ALE để chốt byte thấp của Bus địa chỉ khi bắt đầu mỗi chu kỳ nhớ Port 2 được cho phép byte cao của địa chỉ

1 Truy xuất bộ nhớ chương trình ngoài:

Bộ nhớ chương trình bên ngoài là một bộ nhớ ROM được cho phép bởi tín hiệu PSEN\ Hình vẽ sau đây sẽ mô tả cách kết nối 1 bộ nhớ EPROM với C8031/8051

Giản đồ thời gian đọc bộ nhớ chương trình ngoài

Một chu kỳ của C8031/8051 có 12 xung nhịp Nếu một dao động trên chip được lái bằng thạch anh 12 Mhz thì một chu kỳ máy kéo dài 1s Trong một chu kỳ máy sẽ có 2 xung ALE và 2 byte được đọc từ bộ nhớ chương trình (nếu lệnh hiện hành

Port 0 EA\

ALE

Port 2 PSEN\

D7-D0 A7-A0 EPROM

A15-A8 OE\

D Q

74373

E

OSC

ALE

PSEN\

PORT2

PORT1

PC PCH (byte của PC)

P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1

Một chu kỳ máy

Trang 9

là lệnh 2 byte thì byte được loại bỏ) Giản đồ thời gian của một lần lấy lệnh được vẽ ở hình trên:

2 Truy xuất bộ nhớ dữ liệu ngoài:

Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được cho phép ghi /đọc bằng các tín hiệu điều khiển WR\ và RD\

C8031/8051 có một lệnh duy nhất truy xuất dữ liệu của bộ nhớ dữ liệu ngoài là MOVX dùng con trỏ 16 bit (PDRT) hoặc R0 và R1 xem như thanh ghi địa chỉ

3 Giải mã địa chỉ:

Nếu nhiều EPROM hoặc nhiều RAM được giao tiếp với

8031 thì cần có mạch giải mã địa chỉ Mạch giải mã cũng được thực hiện như các vi xử lý khác, sử dụng IC 74138 để giải mã

4 Xếp chồng các vùng bộ nhớ và dữ liệu bên ngoài:

Vì bộ nhớ chương trình là ROM nên nảy sinh một vấn đề bất tiện khi phát triển phần mềm cho 8031 là tổ chức bộ nhớ như thế nào để có thể sửa đổi chương trình và có thể ghi trở lại nó được chứa trong bộ nhớ ROM Cách giải quyết là xếp chồng các vùng nhớ chương trình và dữ liệu Một bộ nhớ RAM có thể chứa cả chương trình và dữ liệu bằng cách nối đường OE\ của RAM với một cổng AND có hai ngõ vào PSEN\ và RD\

Sơ đồ mạch như hình sau cho phép bộ nhớ RAM có hai chức năng vừa là bộ nhớ chương trình vừa là bộ nhớ dữ liệu:

WR\

RAM

OE\

WR\

RD\

PSEN\

Trang 10

Vậy một chương trình có thể được tải vào RAM bằng cách xem nó như một bộ nhớ dữ liệu và thi hành bằng cách xem nó như một bộ nhớ chương trình

VI NGÕ VÀO TÍN HIỆU RESET:

C8031/8051 có ngõ vào Reset RST tác động ở mức cao trong khoảng thời gian hai chu kỳ xung máy, sau đó xuống mức thấp để 8031 bắt đầu làm việc RST có thể kích bằng tay bằng một phím thường hở, sơ đồ mạch Reset như sau:

Trạng thái của tất cả thanh ghi trong C8031/8051 sau khi Reset hệ thống được tóm tắt như sau:

Đếm chương trình PC Thanh ghi tích lũy A Thanh ghi B Thanh ghi trạng thái

PSW SP DPRT Port 0 đến port 3

IP IE Các thanh ghi định

thời

0000H 00H 00H 00H 07H 0000H FFH XXX0 0000B 0XX0 0000B 00H 00H 00H

+5v 10f 10k

100k

Trang 11

SCON SBUF PCON(HMOS) PCON(CMOS)

0XXX XXXXB 0XXX 0000B

Quan trọng nhất trong các thanh ghi trên là thanh ghi đếm chương trình, nó được đặt tại 0000H Khi Reset trở lại mức thấp, việc thi hành chương trình luôn bắt đầu ở địa chỉ đầu tiên trong bộ nhớ chương trình: địa chỉ 0000H Nội dung của RAM trên chip không bị thay đổi bởi lệnh Reset

Ngày đăng: 15/12/2013, 07:15

HÌNH ẢNH LIÊN QUAN

Bảng : Các bit của thanh ghi PSW - Tài liệu Thiết bị báo cháy và điều khiển tự động, chương 4 doc
ng Các bit của thanh ghi PSW (Trang 2)
Sơ đồ mạch như hình sau cho phép bộ nhớ RAM có hai  chức năng vừa là bộ nhớ chương trình vừa là bộ nhớ dữ liệu: - Tài liệu Thiết bị báo cháy và điều khiển tự động, chương 4 doc
Sơ đồ m ạch như hình sau cho phép bộ nhớ RAM có hai chức năng vừa là bộ nhớ chương trình vừa là bộ nhớ dữ liệu: (Trang 9)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w