1. Trang chủ
  2. » Luận Văn - Báo Cáo

Mạng quang báo giao tiếp với máy tính

93 502 1
Tài liệu được quét OCR, nội dung có thể không chính xác
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 đề Mạng Quang Báo Giao Tiếp Với Máy Tính
Trường học University of Information Technology
Chuyên ngành Computer Science
Thể loại Luận Văn
Năm xuất bản 2023
Thành phố Ho Chi Minh City
Định dạng
Số trang 93
Dung lượng 3,82 MB

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

Nội dung

Mạng quang báo giao tiếp với máy tính

Trang 1

CHUONG I: Giới thiệu về mạch quang báo -: e-+ -sexe2 11

I Các phương pháp thực hiện mạch quang báo . - + seseeneeerese 11

II Giới thiệu sơ lược các loại quang báo - - sen ghe 12

II Các phương pháp quét Led - - «5 n9 1913841321181 118 1111 re 12

CHƯƠNG II: Vi điều khiển -5 5c552cccrerrrrrrrerrterirrrirrrirre 17

L Giới thiệu về cấu trúc vi xử lý họ MSC51

II Khảo sát vi xử lý 895] .- - «tì nHư HH 41871 0111111110110 10 11 ren 19

II Cấu trúc bên trong vi điều khiỂn 5-5-5 set 22

IV Các chế độ timer và CỜ trần G + t2 x91 vn nh ghe 34 N@;p i09 80 1 36

VI Tổ chức ngắt trong 895 l + St xt2tEEEHrrrerrrke 42 VII Tóm tắc các tập lệnh của 895 l 2< + +séretrrrrrrrrrirrrrsrrrie 43

CHUONG III: Điều khiển ghép nối máy tính với thiết bị ngọai vi 48

I Giao tiếp máy tính qua rãnh cắm mở rỘng - - + +s+s+s++xexexssersres 48

II Giao tiếp máy tính qua cổng song SONg . - 5s +ctseeterrrsrrrrrrrrre 49

II Giao tiếp máy tính qua cổng nối tiẾp «55+ +cessreterrrtrrrrrrrree 49

TV Truyén div 116 T17 53

V Thông tin nối tiếp đồng bộ - - + 5 HH 2101211111 1.1 erre 58

VI Lưu đồ và chương trình dành cho phần cứng . -7 5sxecsrsrrzrses 59

VIII Chương trình giao tiếp giữa máy tính và vi điều khiển 89C51 64

IX Mạch điện giao tiếp với máy tính s -+cs+treekererrrrrrrrrrrrrrrrrre 65

PHAN IL THIET KE VA THI CONG MACH

CHUONG I: GiGi thiệu linh kiện - - <6 6 Ăn v re g vưy 71

TI Vi mach diéu khi€n 74HC5S73 71

Trang 2

VI Ma tran Led 21 86

CHUONG II: Thiết kế phần cứng - - +5 5555525 css+vreersreree 89 I8 s J0 89

II Sơ đồ từng khốii cccrrieerriirtrirrriiriiiriiriiirriieriririiiirie 89

Trang 3

PHẦN I:CƠ SỞ LÝTHUYẾT

Trang 4

CHƯƠNG I: GIGI THIEU VE MACH QUANG BAO

I CÁC PHƯƠNG PHÁP THUC HIEN MACH QUANG BAO

Có nhiễu cách để thực hiện một mạch quang báo: dùng IC rời, dùng

EPROM, dùng vi điều khiển Nếu dùng IC rời thì ta sử dụng các IC giải đa hợp (Demultiplexer) kết hợp với diod để tạo thành mạch ROM, kiểu này được gọi là MADE HOME Chương trình loại này được tạo ra bằng cách sắp xếp vị trí các diod Dung lượng bộ nhớ này thay đổi theo kích thước mạch, kích thước càng lớn

thì dung lượng mạch càng lớn Nếu muốn đủ độ nhớ để chạy một mạch quang báo bình thường thì kích thước mạch rất lớn và vì vậy giá thành sẽ rất cao, thực hiện sẽ

vô cùng phức tạp, nếu muốn thay đổi thông tin trên bảng led hiển thị thì phải thay đổi lại mạch Do đó không thực tế Vì thế, dạng ROM này không sử dụng trong thực tế Tương tự nếu sử dụng IC có lập trình như PLC, tuy mạch có giảm nhưng nhìn chung mạch vẫn rất lớn so với sử dụng vi điểu khiển

Khi thay các IC rời bằng EPROM thì kích thước mạch và giá thành sẽ giảm bớt đi rất đáng kể Kích thước mạch của EPROM hầu như không tăng theo dung lượng bộ nhớ,ngoài ra khi muốn thay đổi chương trình hiển thị thì ta chỉ việc xoá chương trình củ và thay thế vào đó một chương trình phần mềm khác Mặc dù việc

thực hiện quang báo bằng EPROM có nhiều ưu điểm hơn IC rời nhưng cả hai đều

có một khuyết điểm lớn là dữ liệu chưa được xử lý trước khi xuất ra Led.Khuyết Lliểm này làm cho hai phương pháp dùng IC rời và dùng EPROM phụ thuộc nhiều vào phần cứng Nếu ta sử dụng vi điều khiển để thực hiện mạch quang báo với nhiều kỹ xảo hơn, linh hoạt hơn chỉ bằng cách thay đổi phần mềm thay vì phải thay đổi phân cứng Để dùng vi điều khiển làm mạch quang báo thì cần có những linh kiện kèm theo như: IC ghi dịch, IC đệm dòng, các linh kiện rời dùng làm mạch đệm khác

I GIỚI THIÊU SƠ LƯỢC CÁC LOẠI QUANG BÁO:

Dựa vào phạm vi ứng dụng và sự linh hoạt của nó mà ta có thể chia quang

báo thành các loại như sau:

Trang:11

Trang 5

> Loại quang báo mà nội dung hiển thị của nó được lưu trữ trong bộ nhớ Rom Loại quang báo này rất bất tiện vì khi muốn thay đổi nội dung của nó ta cần phải nạp lại nội dung trong Rom, điều đó thì rất bất tiện và không có tính kinh tế Chính

vì vậy mà nó ít được sử dụng

> Loại quang báo giao tiếp với bàn phím: để nhập nội dung cần hiển thị ta chỉ cần dùng bàn phím nhập vào nội dung, nó có thể thay đổi nội dung cần hiển thị một cách nhanh chóng nhưng khả năng hiển thị của nó bị giới hạn vì nó chỉ có thể hiển thị các chữ cái đơn giản

> Loại quang báo giao tiếp với máy tính: loại quang báo này được điều khiển bằng máy vi tính, khả năng hiển thị của nó rất đa dang Thông thường loại quang báo này được thiết kế để truy xuất từng điểm

> Loại quang báo giao tiếp kết hợp giữa Kit vi điều khiển với máy tính: loại này được sử dụng rất phổ biến vì tính đa dạng và phong phú của nó, nó rất thuận tiện khi thay đổi nội dung hiển thị cũng như khả năng hiển thị các dạng hình ảnh phức tạp khác Nó có thể kiểm tra nội dung cần hiển thị một cách chính xác và nhanh chóng thông qua màn hình giao tiếp của máy vi tính

1 Phương pháp quét Led đối với ma trận Led

Để điều khiển ma trận Led cần có mạch chốt dữ liệu, xuất dữ liệu các mạch này phải kết hợp chặt chẽ với nhau Số mạch chốt tỷ lệ với số lượng Led

Với ma trận hiển thị, số lượng Led rất lớn, kéo theo số mạch chốt nhiều, dẫn đến phần hiển thị quang báo trở nên phức tạp, cổng kểnh, khó kết nối, khó vẽ mạch

in không có tính kinh tế Phương pháp MULTIPLEX cho phép ta điều khiển ma trận

led với số lượng đường dây và mạch in giảm đáng kể

Theo phương pháp này tại mỗi thời điểm chỉ có một Led sáng Các Led phát sáng theo tần số đủ nhanh để mắt người cảm thấy Led sáng liên tục nhờ hiện tượng lưu ảnh trên võng mạc của mắt, nhưng chú ý làm sao cho các Led sáng rõ không có

cảm giác rung

Trang:12

Trang 6

Do Led được cấu dòng phát sáng trong thời gian ngắn nên để Led thấy rõ

biên độ dòng xung phải lớn hơn nhiều lần so với dòng DC trung bình qua Led Vì vậy các ma trận Led phải được bảo vệ thích hợp tránh hư hỏng

Phương pháp MULTIPLEX được dùng trong phương pháp truyền Data nối tiếp hay song song được chia làm hai loại: quét hàng hay quét cột trên bảng Led

2 Phương pháp quét theo hàng

Dữ liệu thể hiện nội dung của một hàng sẽ được nạp vào trên tất cả các cột trong hàng trước khi điều khiển hàng đó bật sáng Như vậy, để điều kiển một bảng Led có m hàng* n cột thì cần có:

Một hay nhiều thanh ghi dịch có n bit để điều khiển các cột của bảng đèn Thanh ghi này có nhiệm vụ ghi lại quá trình tối, sáng của từng cột trong từng hàng tương ứng với nội dung cần thể hiện

Một bộ giải mã để điều khiển chọn hàng bật sáng

Để đảm bảo an toàn cho mạch điểu khiển, giữa bộ giải mã và tầng công

suất cũng như giữa thanh ghi và bảng đèn cần có thêm một bộ đệm Ở chế độ xung

ta có thể tăng dòng lên 1 — 5 lần để tăng cường độ sáng của điểm sáng

———————=—=ZaAaAỚ(_Ớ_ÐỀGGEEợAaqaẽaBaBaBaaynnnnnnnnnnnnnnnnnnnnnnnng

Trang:13

Trang 7

SƠ ĐỒ KHOI CUA PHUONG PHAP QUET THEO HÀNG

KHOI DIEU KHIEN COT KHOI KHOI

GIAO DIEU TIEP KHIEN

>

CHOT DU

LIEU COT

MACH GHI DICH NOI

Hình III.1: Sơ đỗ khối phương pháp quét hàng:

Cách quét cụ thể đối với một bảng LED gồm 8 hàng * 64 cột như sau:

Khi kích dòng nhận từ mạch vi điểu khiển lên từng hàng từ hàng 1 thì một

điểm trên hàng đó sẽ được bật sáng đồng thời thanh ghi dịch điểu khiển cột sẽ điều

khiển một điểm tương ứng trên hàng đó sáng Trong mỗi lần quét trên một hàng

như vậy thì có tối đa 64 cột sáng tương ứng với 64 điểm trên một hàng và sáng thấp nhất là một điểm trên một hàng

Một điểm trong một hàng sáng hay tối phụ thuộc vào dữ liệu ta khai báo tức

định nghĩa dữ liệu Tương tự ta cho cách quét một hàng ta sẽ quét lần lượt sáng cho

16 hàng trên một bảng Led

ẳẮẳằồ5ŠồŠồŠồ5ŠồŠồ®ồồồồỒồỀ‹:‹5ẳẳồồ ———GGGEagatễtễễnnnnnnnnznan

Trang:14

Trang 8

Việc chọn hàng nào sáng là do bộ giải mã điều khiển xuất ở ngõ ra từ YO đến Y15 tương ứng xuất từ hàng 1 đến hàng 8 Hàng nào sáng thì tương ứng với ngõ

ra Y của hàng đó tích cực mức l1

Về màu sắc thể hiện ví dụ khi muốn thể hiện Led màu đỏ hay màu xanh trên một điểm nào đó thì ta sẽ kích dòng trên hàng đó đồng thời thanh ghi dịch sẽ điều khiển chân của cột tương ứng với màu đó sáng

3 Phương pháp quét theo cột

Phương pháp này thì dữ liệu nội dung của một cột sẽ được nạp trên tất cả các hàng Bộ giải mã để điều khiển chọn cột bật sáng

Tín hiệu từ máy tính qua khối giao tiếp đến khối điều khiển Khối điều khiển đưa dữ liệu đến khối giải mã cột, tiến hành giải mã dữ liệu, đưa đến khối khuếch đại cột lựa chọn dữ liệu sẽ xuất trên cột nào của bãng Led Mỗi lần xuất ra bảng Led chỉ được một cột, nhưng có thể xuất dữ liệu ra trên nhiều hàng Sau khi xuất dữ liệu ra trên cột bảng Led thì khối điều khiển sẽ tiến hành đưa dữ liệu đến khối KD hang và bắt đầu lựa chọn xem sẽ xuất dữ liệu ra là màu xanh hay là mau

đỏ Nếu là màu xanh thì dữ liệu sẽ đưa đến khối KÐ xanh và xuất ra bảng Led Nếu là màu đỏ thì đữ liệu được đưa đến khối KD hang đỏ Mỗi lần dữ liệu xuất ra hàng là có thể nhiều hàng Mỗi một cột được đưa ra bảng Led ứng với nhiều hàng trên cột đó Ta cần tốn nhiều lần cho việc mở hàng

Trang 9

CHƯƠNG I MACH QUANGBÁO GIAO TIẾP VỚI MÁY TÍNH

THIẾT BỊ ĐIỀU KHIỂN (MÁY VI TÍNH)

Trang 10

CHƯƠNG II MẠCH QUANG BÁO GIAO TIẾP VỚI MÁY TÍNH

CHƯƠNG II:VI ĐIỀU KHIỂN

1 Giới thiệu cấu trúc vỉ xử lý họ MSC-51:

> Đặc điểm và chức năng hoạt động của các IC ho MSC-51 hoan toan tương tự nhau Họ IC vi điều khiển 89C51 do hãng INTEL sản xuất có một số đặc

_ điểm chung như sau:

e 4KB eprom bén trong

128 byte ram nội

e 4 port xuadt_nhap 8 bit

e_ Giao tiếp nối tiếp

Trang 11

P0.0 + PO.7 P2.0 + P2.7

Vee T KH mm nem 211224 “ma K 11111117 ¬ eres :

Trang 12

18 ÈxTAL2 P2.o/As LÊ:

| P141 P3.1/TXD -†a P12 P3.2/INTO [45 A+ P13 P3.3/INT1 [3

2 Chức năng của các chân:

> _ IC 89C51 có tất cả 40 chân, trong đó có 24 chân có tác dụng kép(nghĩa

là một chân có hai chức năng, mỗi chân có thể họat động như những đường xuất nhập, đường điều khiển hoặc là thành phần của các bus dữ liệu và bus địa chỉ

> IC 89C51 gồm 4 port, có một số chức năng và đặc điểm như sau:

2.1 Port 0:

> Port 0 1a port xudt_nhap 8 bit cực điện hở Khi làm nhiệm vụ là port xuất, mỗi chân của port có thể hút dòng của 8 ngõ vào TTL Khi các mức lôgïc 1 được ghi vào chân port 0 các chân này có thể sử dụng làm các ngõ vào có tổng trở

cao

> _ Port0 cũng được dùng làm bus địa chỉ byte thấp và làm bus dữ liệu đa

hợp trong khi truy xuất bộ nhớ dữ liệu ngoài và bộ nhớ chương trình ngoài Trong

chế độ đa hợp này port 0 có các điện trở kéo lên ở bên trong

> Port O cũng nhận cdc byte mã trong khi lập trình cho Flash và xuất các

byte mã trong khi kiểm tra chương trình Các điện trở kéo lên ở bên ngoài cần đến khi kiểm tra chương trình

nee

Trang: 19

Trang 13

ừttẳẮ.ẳẮ _ỪỪ———Ằ—=ZAỚïỚïY-aaagnnẵẳng

2.2 Port 1:

> Port 1 14 port xuat_nhap hai chiều có điện trở kéo lên bên trong Các bộ

đệm của port này có thể hút và cấp dòng cho 4 ngõ vao TTL

> Port 1 ciing là byte dia chỉ thấp trong thời gian lập trình cho Flash và kiểm

tra chương trình

2.3 Port 2:

> Port 2 là port xuất_nhập có tác dụng kép, có điện trở kéo lên ở bên trong

Các bộ đệm của port 2 có thể hút và cấp dòng cho 4 ngõ vào TTL

> Port 2 là byte cao của bus địa chỉ trong thời gian tìm và nạp lệnh từ bộ nhớ chương trình ngoài và thời gian truy xuất bộ nhớ dữ liệu ngoài

> Port 2 cũng nhận các bit địa chỉ cao và vài tín hiệu điều khiển trong thời

gian lập trình cho Flash và kiển tra chương trình

dưới đây:

P3.6 WR Tín hiệu ghi dữ liệu lên bộ nhớ ngoài P3.7 RD Tín hiệu đọc bộ nhớ dữ liệu ngoài

> Port 3 cũng nhận các bit dia chi cao va vài tín hiệu điều khiển trong thời

gian lập trình cho Flash và kiểm tra chương trình

ef

Trang: 20

Trang 14

CHUONG II MACH QUANG BAO GIAO TIẾP VỚI MAY TINH

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

2.5.1 Ngõ tín hiệu PSEN(program store enable):

> PSEN là ngõ tín hiệu ra có tác dụng cho phép đọc bộ nhớ chương trình mở

rộng, thường được nối đến chân OE(output enable) của Eprom cho phép đọc các

byte mã lệnh

> PSEN ở mức thấp trong thời gian 89C51 lấy lệnh

> Các mã lệnh của chương trình được đọc từ eprom qua bus dữ liệu và được

chốt vào thanh ghi lệnh bên trong 89C51 để giải mã lệnh Khi 89C51 thi hành chương trình trong Rom nội, PSEN sẽ ở mức lôgic 1

2.5.2 Ngo tin hiéu diéu khién ALE(Address Latch Enable

> Khi 89C51 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ

và bus dữ liệu, do đó cần phải tách thành hai đường riêng biệt Tín hiệu ALE

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

> Tin hiéu vao EA có thể ở mức lôgic 1 hoặc mức lôgic 0 Nếu ở mức lôgic 1 thì 89C51 thi hành chương trình từ Rom nội trong khỏang địa chỉ thấp 4KB Nếu ở

mức lôgic 0 thì 89C51 sẽ thi hành chương trình từ bộ nhớ mở rộng Chân EA được lấy làm chân cấp nguồn 12V khi lập trình cho Eprom trong 89C51

> Nếu bit khóa 1 được lập trình thì EA sẽ được chốt bên trong khi reset

Trang 15

CHUONG II MACH QUANG BAO GIAO TIẾP VOI MAY TINH

FFH | On-Chip FFFFH CODE FFFFH CODE

Enable via Enable via

thanh ghi có chức năng đặc biệt

1.3 IC 89C51 có bộ nhớ theo cấu trúc Havard:

> _ Tức là có những vùng nhớ riêng biệt cho chương trình và dữ liệu Chương

trình và dữ liệu có thể chứa bên trong 89C51 nhưng 89C51 vẫn có thể kết nối với

64K byte bộ nhớ chương trình và 64K byte bộ nhớ dữ liệu ngoài

1.3.1 Có hai đặc tính cần chú ý là:

s* Các thanh ghi và các port xuất_ nhập đã được định vị trong bộ nhớ và có thể truy xuất trực tiếp giống như các địa chỉ bộ nhớ khác

s* Ngăn xếp bên trong Ram nội nhỏ hơn ngăn xếp ở trong Ram ngoại

1.3.2 Ram bên trong 89C51 được phan chia nhu sau:

> Ram da dung:

+ Gồm có 80 byte, chiếm địa chỉ từ 30H đến 7FH

Trang: 22

Trang 16

+ Moi dia chi trong ving Ram da dụng đều có thể truy xuất tự do dùng kiểu định vị địa chỉ trực tiếp hoặc gián tiếp

> Ramcé thé truy xuat ting bit:

+ IC 89C51 chita 210 bit được địa chỉ hóa, trong đó có 128 bịt tạo thanh 16

byte nim từ vị trí 20H đến 2FH, các bit còn lại tạo thành các thanh ghi có chức

năng đặc biệt

+ Các bit được SET, CLR, AND, OR, với một lệnh đơn Ngoài ra các port

cũng có thể truy xuất từng bit

> Cac bank thanh ghi:

+ 32 byte thấp của Ram nội được dành cho các bank thanh ghi Bộ lệnh 89C51

hổ trợ 8 thanh ghi có tên là RO đến R7 và theo mặt định sau khi reset hệ thống, các thanh ghi này có các địa chỉ từ 00H đến 07H

+ _ Các lệnh dùng các thanh ghi R0 đến R7 sẽ ngắn hơn và nhanh hơn so với các lệnh có chức năng tương ứng dùng kiểu định địa chỉ trực tiếp Các đữ liệu được dùng thường xuyên nên dùng trong các thanh ghi này

+ Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi được truy xuất bởi các bank thanh ghi R0 đến R7 Để chuyển đổi việc truy xuất

các bank thanh ghi ta phải thay đổi các bit chọn bank trong thanh ghi trạng thái

2 Các thanh ghỉ có chức năng:

»> Các thanh ghi của 89C51 được truy xuất ngầm định bởi bộ lệnh

»> Các thanh ghi trong 89C51 được định dạng như một phần của Ram trên chip vì vậy mỗi thanh ghi có một địa chỉ (ngoại trừ thanh ghi bộ đếm 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ư các thanh ghi RO đến R7, 89C51 có 21 thanh ghi có chức năng đặc biệt

(SFR: Special Function Register) ở vùng trên của Ram nội từ địa chỉ 80H đến FFH

> Tat cd 128 địa chỉ từ 80H đến 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ỉ

Trang: 23

Trang 17

2.1 Thanh ghỉ trạng thái chương trình (PSW:Program Status Word):

PSW.0 Port DOH Even parity flag

Bảng II.2.1: Bảng thanh ghi trạng thái

2.2 Chức năng từng bit của thanh ghỉ trạng thái chương trình ;

> Cờ cary CY: là cờ nhớ có tác dụng kép Thông thường nó được dùng cho

các lệnh toán học Nếu phép cộng có sự tràn hoặc phép trừ có mượn thì C=1, ngược

lại C=0

> _ Cờ cary phụ AC: cờ này được sử dụng khi cộng những giá trị BCD Cờ nhớ phụ được SET nếu kết quả 4 bit thấp nằm trong phạm vi điều khiển (từ OAH + 0FH), ngược lại cờ AC=0

> _ Cờ F0: là 1 bit cờ đa dụng dùng cho một số ứng dụng của người lập trình

> _ Những bit chọn bank thanh ghi truy xuất RSO và RSI:

> _ Các bit này quyết định dãy thanh ghi tích cực Chúng được xóa sau khi

reset hệ thống và được thay đổi bởi phần mềm khi cần thiết

Tùy theo giá tri cia RSO va RS1 ma bank tích cực tương ứng là Bank 0, Bank 1, Bank 2 hoặc là Bank 3

Trang: 24

Trang 18

Bảng IL2.2: Bảng chức năng từng bit thanh ghi trạng thai

>_ Cờ tràn OV: cờ tràn được SET sau một hoạt động cộng hoặc trừ nếu có

sự tràn toán học Khi các số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit này để xác định xem kết quả có nằm trong tầm xác định hay không Khi các số không có dấu được cộng, bit OV được bỏ qua Các kết quả lớn hơn 127 hoặc nhỏ hơn -128 thi bit OV=1

> Bit parity: bit nay dudc tu déng SET hay CLR 6 mi chu ki may dé lap Parity chấn với thanh ghi A sự đếm các bít 1 trong thi A cộng với bit parity luén

> _ Thanh ghi B có thể được dùng như một thanh ghi đệm trung gian đa mục đích Nó là những bit định vị thông qua những địa chỉ từ FOH + F7H

2.4 Con trổ ngăn xếp SP (stack pointer) :

> 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 sẽ làm giảm SP Khi reset 89C51, SP sẽ mang giá trị mặt định là 07H.

Trang 19

2.6 Các thanh ghi port :

> 89C51 c6 4 port nằm ở địa chỉ 80H, 90H, A0H và B0H Tất cả các port này đều có thể truy xuất từng bit nên rất thuận tiện trong khả năng giao tiếp

2.7 Các thanh ghi Timer :

> IC 89C51 có chứa 2 bộ định thời đếm 16 bit, được dùng cho việc định

thời và đếm các su kién Timer 0 6 dia chi 8AH (TLO: byte thấp) và 8CH (THO:

byte cao) Timer 1 6 dia chi 8BH (TL1: byte thấp) va 8DH (THI: byte cao)

»> _ Việc khởi động timer được SET bởi thanh ghi TMOD ở địa chỉ 89H và thanh ghi điều khiển TCON ở địa chỉ 88H Chỉ có thanh ghi TCON được địa chỉ hóa

từng bịt

2.8 Thanh ghỉ port nối tiếp :

»> _ 89C51 chứa một port nối tiếp cho việc trao đổi thông tin với các thiết bị nối tiếp như máy tính, modem hoặc giao tiếp với IC khác Một thanh ghi đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả hai dữ liệu truyền và đữ liệu nhập Khi truyền, dữ liệu được ghi lên SBUE; khi nhận đữ liệu thì sẽ đọc từ SBUF Các mode

chuyển dữ liệu được lập trình qua thanh ghi điều khiển port nối tiếp (SCON) được

dia chỉ hóa từng bít ở địa chi 98H

2.9 Thanh ghi ngắt :

> 89C51 có 5 nguồn ngắt, 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 trở lại nếu thanh ghi ngắt IE (ở địa chỉ A8H) bị tác động Thanh ghi này được địa chỉ hóa từng bit

2.10 Thanh ghi điều khiển nguồn PCON:

> Thanh ghi PCON không có định vị bit, nằm 6 dia chi 87H

rang: 26

Trang 20

CHUONG II MACH QUANG BAO GIAO TIẾP VỚI MÁY TÍNH

7 | SMOD | Bit gấp đôi tốc độ baud, 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

PD Giảm công suất, được set để kích hoạt Mode giảm công

suất, chỉ thoá khi reset

0 IDL Mode chờ, set để kích hoạt mode chờ, chỉ thoát khi có ngắt

hoặc reset hệ thống

> _ Khi dùng bộ nhớ ngoài, port 0 không còn chức năng xuất_nhập nữa, nó

được kết hợp giữa bus c (A0+A7) và bus dữ liệu (D0+D7) với tín hiệu ALE để chốt byte của địa chỉ khi bắt đầu mỗi chu kì bộ nhớ Port 0 được cho là byte cao của bus địa chỉ

Truy xuất bộ nhớ mã ngoài:

> Bộ nhớ chương trình bên ngoài là bộ nhớ Rom được cho phép của tín hiệu PSEN Sự kết nối phần cứng của bộ nhớ Eprom như sau:

Trang 21

bộ nhớ chương trình Nếu lệnh đang hiện hành là lệnh 1 byte thi CPU chi doc

Opcode, còn byte thứ 2 bỏ đi

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

> _ Bộ nhớ dữ liệu ngoài là một bộ nhớ Ram được đọc hoặc ghi khi được cho phép của tín hiệu RD và WR Hai tín hiệu này nằm ở chân P3.7 (RD) và P3.6 (WR) Lệnh MOVX được dùng để truy xuất bộ nhớ dữ liệu ngoài và dùng một bộ

đệm dữ liệu 16 bịt (DPTR)

> Các Ram có thể giao tiếp với 89C51 tương tự cách thức như Eprom, ngoại trừ chân RD (của 89C51 nối với chân OE của Ram) và chân WR (của 89C51 nối với chân WR của Ram) Sự kết nối các bus địa chỉ và địa chỉ tương tự như cách

> Cụ thể, IC giải mã 74HC138 được dùng với những ngõ ra của nó được

nối với những ngõ vào là CS (chip select) trên những IC nhớ Eprom, Ram, Hình sau đây cho phép kết nối nhiều Eprom và Ram

Trang: 28

Trang 22

3.2 Sự đè lên nhau của các vùng nhớ dữ liệu 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 vi điều khiển Một nhược điểm chung của 89C51 là các vùng nhớ dữ liệu ngoài nằm đè lên nhau, vì tín hiệu PSEN được dùng để đọc bộ nhớ mã

ngoài và tín hiệu RD được dùng để đọc bộ nhớ đữ liệu,nên 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 đến ngõ ra 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:

Trang 23

hình II.3.3: Sơ đồ chức năng của Ram

>_ Vậy một chương trình có thể được tải vào Ram bằng cách xem nó như bộ

nhớ đữ liệu và thi hành chương trình bằng cách xem nó như bộ nhớ chương trình

4 Hoạt động reset:

> IC 89C51 có ngõ vào reset (RST) tích cực ở mức cao trong khoảng thời gian 2 chu kì máy, sau đó xuống mức thấp để 89C51 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ả các thanh ghi trong 89C51 sau khi reset hệ thống được tóm tắt như sau:

Trang 24

Bảng II.3.2: Mô tả các thanh ghi

> Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được reset tại địa chỉ 0000H Khi ngõ vào RST xuống mức thấp, chương trình luôn bắt đầu tại địa chỉ 0000H của bộ nhớ chương trình Nội dung của Ram trên IC 8§9C51

không bị thay đổi bởi tác động của ngõ vào reset

5 Hoạt động của timer bên trong 89C51:

5,1 Giới thiệu:

> Bộ định thời của Timer là một chuỗi các flip_flop được chia làm hai phần, nó nhận nguồn xung clock của bộ dao động bên trong 89C51 hoặc nhận tín hiệu xung từ chân TO hoặc TÌ

> Timer có n tầng thì tần số ngõ vào được chia cho 2n Ngõ ra của tầng cuối cùng là nơi báo trần của Timer và nó được kiểm tra bằng phần mềm hoặc sinh

ra ngắt

5.2 Các thanh ghi điều khiển Timer:

5.2.1 Thanh ghi điều khiển chế độ Timer (TMOD: timer mode register):

> Thanh ghi mode timer gdm 2 nhóm, mỗi nhóm có 4 bit: 4 bit thấp đặt mode hoạt động cho Timer 0 và 4 bit cao đặt mode hoạt động cho Timer 1; 8 bít

của thanh ghi TMOD được tóm tắt như sau:

rang: 31

Trang 25

7 |GATE | 1 Khi GATE = 1, Timer 1 chi lam viéc khi INT 1 = 1

C/T = 1: cho phép đếm sự kiện

C/T =0: cho phép ghi giờ đều đặn

3 | GATE | 0 Khi GATE = 1, Timer 0 chi lam viéc khi INT 0= 1

Bảng II.3.3: Mô tả thanh ghi chế độ Timer

Hai bit MO và MI của thanh ghi TMOD để chọn mode hoạt động cho Timer 0

hoặc Timer 1, được tóm tắt như sau:

1 0 2 Mode tự động nạp lại 8 bit

Timer 0: TLO 1a Timer 8 bit dudc diéu khién bdi cdc bit của Timer 0 Tương tự, THO điều khiển bởi các bit Timer 1

Timer 1: không sử dụng

Bang II.3.2: Thanh ghi Tmod

> _ Thanh ghi TMOD không có khả năng định vị bit, nó thường được LOAD một lần bởi phần mém 6 dau chương trình để khởi động mode Timer Sau đó sự định thời có thể dừng lại, được khởi động lại bởi sự truy xuất bởi các thanh ghi chức năng đặc biệt của Timer khác

lrang: 32

Trang 26

5.2.2 Thanh ghi điều khién Timer (TCON: timer control register):

> Bao gồm các bit trạng thái và bit điều khiển bởi Timer 0 va Timer 1 Thanh ghi TCON có bit định vị Hoạt động của từng bit được thể hiện trong bảng

sau:

TCON.7 TF1 8FH Cờ tran cua Timer 0, được SET bởi

phần cứng khi có tràn, và được xóa

bởi phần mêm hoặc bởi phần cứng khi các vectơ xử lí đến thủ tục phục

vụ ngắt ISR

hoặc ngưng chạy Timer 1; được SET hoặc CLR bởi phần mềm

TCON.4 TRO SCH Bit cho phép chạy hoặc ngưng Timer

0

ngắt khi có cạnh xuống trên chân INTI IE1 được xóa bởi phần mềm hoặc phần cứng khi CPU định hướng

đến thủ tục ngắt ngoài

TCON.2 IT1 8AH Cờ kiểu ngắt ngoài thứ 1 Được SET

hoặc xóa bởi phần mềm

Bảng II.3.4 :Mô tả thanh ghỉ điều khiển Timer

5.2.3 Các nguồn xung nhịp cho Timer:

> C6 hai nguén xung nhịp có thể cung cấp cho các Timer là nguồn dao động trên chip và nguồn dao động từ chân T0 hoặc T1 ở bên ngoài đưa vào.

Trang 27

Thach anh

hình H.3.4: Mô ta nguồn xung nhip cho Timer

5.2.4 Sự đỉnh giờ bên trong:

> Néu bit C/T = 0 thì xung nhịp cấp cho Timer được lấy từ dao động trên chip Một bộ chia 12 được thêm vào để giảm tần số của xung nhịp cấp cho Timer

Do đó các thanh ghi TLx và THx hoạt động ở tần số nhỏ hơn tần số trên chip 12 lan

> Sự tràn của Timer phụ thuộc vào giá trị khởi tạo được LOAD vào các

thanh ghi THx và TLx

5.2.5 Sự đếm các sự kiện:

> Nếu bit C/T = 1 thì bộ Timer được ghi giờ từ nguồn bên ngoài Con số của những sự kiện bên ngoài được xác định bằng cách đọc các thanh ghi Timer TLx

và THx, bởi vì giá trị 16 trong các thanh ghi này tăng lên sau mỗi sự kiện

> Nguồn xung clock bên ngoài được đưa đến chân P3.4 (T0)của Timer 0 hoặc chân P3.5 của Timer 1 (T1)

5.2.6 Sự khởi đông và truy xuất các thanh ghi Timer:

> Các Timer được khởi động 1 lần ở đầu chương trình để đặt mode hoạt động cho chúng Sau đó trong chương trình các Timer được khởi động và ngưng chạy bằng phần mềm, các thanh ghi Timer được đọc và cập nhật theo từng yêu cầu

cụ thể

Trang 28

> Mode Timer 16 bit (mode 1):

+ Mode 1 là mode Timer 16 bit, tương tự nhu mode 0 ngoại trừ Timer này hoạt động như một Timer đầy đủ 16 bit Khi xung clock được cấp cho bộ đếm, giá trị của bộ đếm sẽ tăng dẫn, và sự tràn xuất hiện khi giá trị của bộ đếm chuyển từ giá trị FEFEH sang giá trị 0000H,lúc này cờ tràn TFx được SET, sau đó Timer đếm tiếp

+ _ Cờ tràn TFx nằm trong thanh ghi TCON, nó được đọc bởi phần mềm

Trang 29

+ Timer 0 được chia ra làm 2 Timer 8 bít, TLO và THO hoạt động như những

Timer riéng biét, su tran sé SET cdc bit TLO va TF1 tuong ting

+ Timer 1 không được sử dụng ở mode 3, nhưng có thể được khởi động bởi

việc ngắt nó vào trong một mode khác Nhược điểm của mode này là cờ tràn TF1

không bị ảnh hưởng bởi các sự tràn của Timer 1, vì TF1 được nối với TH0

+ Mode 3 cung cấp 1 Timer ngoài 8 bit là Timer thứ 3 của 89C51 khi vào Timer 0 ở mode 3, Timer có hoạt động hoặc tắt sự ngắt nó ra ngoài và vào trong mode của chính nó hoặc có thể được dùng bởi porrt nối tiếp như là một máy phát

tốc độ Baud, hoặc nó có thể dùng trong hướng nào đó mà không sử dụng Interrup

Timer clock TL1 (8 bit) | THI (8 bit) Coo

Timer clock THO (8 bit) ) TFl

> _ Port nối tiếp cho hoạt động song công và có đệm thu cho phép một kí tự

sẽ được thu và được giữ trong khi kí tự thứ hai được nhận Nếu CPU đọc kí tự thứ nhất trước khi kí tự thứ hai được thu đầy đủ thì dữ liệu sẽ không bị mất

> Hai thanh ghi chức năng đặc bệt cho phép phần mềm truy xuất đến port nối tiếp là: SBUF và SCON.Bộ đệm port nối tiếp (SBUF) ở địa chỉ 99H nhận dữ liệu để thu hoặc phát Thanh ghi điều khiển port nối tiếp (SCON) ở địa chỉ 98H là thanh ghi có địa chỉ bit chứa các bit trạng thái và các bit điều khiển Các bit điều khiển đặt chế độ họat động cho port nối tiếp, và các bit trạng thái báo cáo kết thúc việc phát hoặc thu ký tự Các bit trạng thái có thể được kiểm tra bằng phan mềm, hoặc có thể lập trình để tạo ngắt

Trang 30

—_———————————————————— ốẦờ on n¬5a¬a5ắaắẳäẳäẳäaắậamẫẫama=——ï5ï5.=.== _.~

2 Các thanh ghi và các chế độ họat động của port nối tiếp:

2.1.Thanh ghi điều khiển port nối tiếp:

> Chế độ họat động của port nối tiếp được đặt bằng cách ghi vào thanh ghi chế độ port nối tiếp (SCON) ở địa chỉ 98H Sau đây các bảng tĩm tắt thanh ghi SCON và các chế độ của port nối tiếp:

Bit 2 của chế độ port nối tiếp Cho phép truyền thơng đa xử

Bit 8 phát, bit thứ 9 được phát

Trang 31

2.2 Tóm tắt thanh ghi chế độ port nối tiếp:

SMO |SMI |Chế độ |Mô tả Tốc độ baud

0 0 0 Thanh ghi dịch Cố định (Fose/12)

Hình II.3.5: tắt thanh ghi chế độ port nối tiếp

2.3 Các chế độ port nối tiếp:

> Trước khi sử dụng port nối tiếp, phải khởi động SCON cho đúng chế độ Khởi động port nối tiếp cho chế độ 1 (SM0/SMI = 0/1), cho phép bộ thu (REN=1)

và cờ ngắt phát(TP=1) để bộ phát sẵn sàng hoạt động

> Chế độ 0( Thanh ghi dịch đơn 8 bit):

Chế độ 0 được chọn bằng các thanh ghi các bit 0 vào SMI và SM2 của SCON, đưa port nối tiếp vào chế độ thanh ghi dịch 8 bit Dữ liệu nối tiếp vào và ra qua RXD và TXD xuất xung nhịp dịch, 8 bit được phát hoặc thu với bit đầu tiên là LSB Tốc độ baud cố định ở 1/12 tần số dao động trên chíp

> Việc phát đi được khởi động bằng bất cứ lệnh nào ghi dữ liệu vào SBUF

> _ Dữ liệu dịch ra ngoài trên đường RXD (P3.0) với các xung nhịp được gửi

ra đường TXD (P3.1) Mỗi bit phát đi hợp lệ (trên RXD) trong một chu kỳ máy, tín hiệu xung nhịp xuống thấp ở S3_P1 và trở về cao ở S6_P1

Cố định (Fose/12 hoặc

Bảng II.3.6: Chế độ PORT nối tiếp

Trang 32

Việc thu được khởi động khi cho phép bộ thu (REN) 1a 1 va bit ngắt thu (R]) là 0

>_ Quy tắt tổng quát là đặt REN khi bắt đầu chương trình để khởi động port nối tiếp, rồi xóa RI để bắt đầu nhận dữ liệu Khi RI bị xóa, các xung nhịp được đưa ra đường TXD, bắt đầu chu kỳ máy kế tiếp và dữ liệu theo xung nhịp ở đường RXD Lấy xung nhịp cho dữ liệu vào port nối tiếp xảy ra ở cạnh đường của TXD

JLTLILTLTLTLILILTLTLILTILTLI Cp0>—<pI>—<p4>—<D3>—<p4¿>—<pš>—< D6)

Giản đô thời gian phát nối tiếp ở chế độ 0

Chế độ 1 (UART 8 bit với tốc độ baud thay đổi được):

> _Ở chế độ I, port nối tiếp của 89C51 làm việc như một UART 8 bịt với tốc độ baud thay đổi được Một UART( bộ thu phát đồng bộ vạn năng) là một dụng

cụ thu phát đữ liệu nối tiếp với mỗi ký tự dữ liệu đi trước là bit start ở mức thấp và theo sau bit stop ở mức cao Đôi khi xen thêm bit kiểm tra chẵn lẻ giữa bịt dữ liệu

cuối cùng và bit stop Hoạt động chủ yếu của UART là chuyển đổi song song sang

nối tiếp với dữ liệu nhập

> Ở chế độ I, 10 bit được phát trên TXD hoặc thu trên RXD Những bit

đó là: 1 bit start (luôn luôn là 0), 8 bit dữ liệu (LSB đầu tiên) và 1 bit stop (luôn

luôn là 1) Với hoạt động thu, bit stop được đưa vào RB8 trong SCON Trong 89C51 chế độ baud được đặt bằng tốc độ báo tràn của Timerl

> Tao xung nhịp và đồng bộ hóa các thanh ghi dịch của port nối tiếp trong các chế độ 1, 2 và 3 được thiết lập bằng bộ đếm 4 bịt chia cho 16, ngõ ra là xung nhịp tốc độ baud Ngõ vào của bộ đếm này được chọn qua phần mềm

—Ỷ“Ỷ“ễỶr-zsẽơ‹.‹-cơ-‹iặẳễnc-‹-‹-‹ằẳằễẳễtợợ‹ơơợơợýẶẳằẳớéơơơơơờợớợgxszỶỸỶïỶnnzzzaanäẳờn 7 “mmmmaamnmmaaaaaraaaaammmmmmmam

Trang: 39

Trang 33

Xung nhịp tốc độ baud Thanh ghi dịch port nối tiếp

hình II.3.6:Chế độ 1

UART 9 bit với tốc độ baud cố định (chế độ 2):

> Khi SMI = I và SM0 = 0, cổng nối tiếp làm việc ở chế độ 2, như một URAT 9 bit có tốc độ baud cố định, 11 bit sẽ được phát hoặc thu: 1 bit start, 8 bit dif

liệu, 1 bit dữ liệu thứ 9 có thể được lập trình và 1 bit stop Khi phát bit thứ 9 thì bất

cứ gì đã được đưa vào TB8 trong SCON (có thể là bit parity) Khi thu bit thứ 9, bit này sẽ nằm trong RB8 Tốc độ baud ở chế độ 2 là 1/32 hoặc 1/16 tần số dao động

trên

UART 9 bít với tốc độ baud thay đổi được (chế độ 3):

> _ Chế độ này giống như chế độ 2 ngoại trừ tốc độ baud có thể lập trình được và được cung cấp bởi Timer Thật ra, các chế độ 1, 2, 3 rất giống nhau Khác biệt ở tốc độ baud (cố định trong chế độ 2; thay đổi trong chế độ 1 và 3) và ở số bit

dữ liệu (8 bit trong chế độ 1, 9 trong chế độ 2 và 3)

3 Khởi động và truy xuất các thanh ghi cổng nối tiếp:

> Bit cho phép thu (Ren: Receiver Enable): bit nay nim trong thanh ghi SCON, được SET bởi phần mềm để cho phép thu các kí tự thông thường thực hiện việc này ở đầu chương trình khi khởi động cổng nối tiếp, Timer, Có thể thực hiện việc này theo hai cách:

SETB REN;

Hoac:

MOV SCON,#XXX1XXXXB; (X c6 thé 14 0 hodc 1 để đặt chế độ làm việc)

> Bit di liệu thứ 9: trong chế độ 2 hoặc 3, bit này được nạp vào trong TB8 bằng phần mềm Bit dữ liệu thứ 9 thu được đặt ở trong RB8 Phần mềm có thể cần hoặc không cần bit đữ liệu thứ 9, nó phụ thuộc vào đặc tính kỹ thuật của thiết

eee

Trang: 40

Trang 34

> Thém 1 bit parity: thường sử dụng bit dữ liệu thứ 9 để thêm parity vào

ki tu Bit parity trong từ trạng thái chương trình (PSW) được đặt lên 1 hoặc bị xóa trong 1 chu kì máy, để thiết lập kiểm tra chẳn đối với 8 bit trong thanh ghi tích lũy

> Cac cd ngắt: hai cờ ngắt thu và phát (RI và TD trong SCON đóng vai trò quan trọng trong truyền thông nối tiếp dùng 89C51 Cả hai bit được đặt lên 1 bằng phần cứng, nhưng lại được xóa bằng phần mềm

4 Tốc độ baud của port nối tiếp:

> _ Trong chế độ 0 : nó luôn luôn là tần số dao động trên chip (tần số đã được chia cho 12) Thông thường thạch anh ấn định tần số dao động trên chip nhưng

Dao động >) + 64 Th Xung nhip

Pp +32 |_| smop=0: UP

Hình II.7:Nguồn tạo xung nhịp cho port nối

> _ Mặc nhiên sau khi reset hệ thống, tốc độ baud trong chế độ 2 là tần số dao động trên chip chia cho 64 Tốc độ baud cũng bị ảnh hưởng bởi 1 bit trong thanh ghi điểu khiển nguồn cung cấp (PCON), bit thứ 7 của thanh ghi PCON là bit SMOD Đặt bit SMOD lên 1 sẽ làm tốc độ baud trong chế độ 1, 2 và 3 tăng gấp đôi Trong

chế độ 2, tốc độ baud có thể tăng gấp đôi từ giá trị mặc nhiên là 1/64 (tần số dao

Trang 35

Vì PCON không được địa chỉ hóa từng bit, nên muốn đặt bit SMOD lên I thì phải

thực hiện qua một số thanh ghi trung gian, cụ thể như sau:

s* MOV A,PCON; lấy giá trị hiện thời của PCON

“* SETB ACC.7; dat bit SMOD lén 1

s* MOV PCON,A; ghi giá trị ngược về cho PCON

Các tốc độ baud trong chế độ 1 và 3 được xác định bằng tốc độ tràn của Timer I, vì Timer hoạt động ở tần số tương đối cao, tràn Timer được chia cho 32 (16 nếu SMOD = I) trước khi cung cấp tốc độ xung nhịp cho port nối tiếp

VI Tổ chức ngắt trong 89C51:

»> Vi điều khiển có 5 nguồn ngắt: 4 nguồn ngắt ngoài, 2 Timer ngắt và l ngắt port nối tiếp Tất cả các ngắt đều bị cấm sau khi reset hệ thống và cho phép bởi phần mềm

Cho phép và không cho phép ngắt:

> Mỗi nguồn ngắt được cho phép hoặc không cho phép thông qua thanh ghi chức năng đặc biệt là thanh ghi IE (interrupt enable) ở tại địa chỉ 08AH Thanh ghi này được tóm tắt như sau:

Bít | Kíhiệu Địa chỉ Mô tả (1: cho phép, 0: không cho phép)

Bảng IHI.4.1: Tổ chức ngắt trong 89c51

a

Trang: 42

Trang 36

1 Vectơ ngắt:

> _ Khi ngắt được chấp nhận giá trị được đưa vào PC (program counter) gọi

là vectơ ngắt (interrupt vectơ)

Bảng IL4.2:Mô tả các ngắt

2 Ngắt port nối tiếp:

> Chỉ xảy ra khi cả hai cờ truyền (TD hoặc cờ ngắt (RD được đặt lên 1 Ngắt truyền xảy ra khi bit cuối cùng trong SBUFE truyền xong, tức là lúc này thanh ghi SBUF rỗng Ngắt nhận xảy ra khi SBUF đã hoàn thành việc nhận và đang đợi

để đọc, tức là lúc này thanh ghi SBUF đây Cả hai cờ ngắt này được đặt bởi phần cứng và xóa bởi phần mềm

VII Tém tắt tập lệnh của 89C51 :

> Các chương trình được cấu tạo từ nhiều lệnh, chúng được xây dựng lôgic, sự nối tiếp của các lệnh được nghĩ một cách hiệu quả và nhanh, kết quả của chương trình khả quan

> _ Tập lệnh của họ MSC_51 được sự kiểm tra của các mode dinh vi va các lệnh của chúng có các opcode 8 bit Điều này cung cấp khả năng 256 lệnh được thi hành và một lệnh không được định nghĩa Vài lệnh có 1 hoặc 2 byte dữ liệu hoặc địa chỉ thêm vào opcode Toàn bộ tập lệnh có 255 lệnh gồm 139 lệnh 1 byte,

92 lệnh 2 byte và 24 lệnh 3 byte

Trang 37

»> _ Các chế độ dinh vi dia chi (addressing mode): cdc mode dinh vi 1a mét

bộ phận thống nhất của tập lệnh Chúng cho phép định rõ nguồn hoặc nơi gởi tới của dữ liệu ở các đường khác nhau tùy thuộc vào trạng thái của người lập trình

89C51 có 8 mode định vị được dùng như sau:

Thanh ghi Trực tiếp Gián tiếp Tức thời Tương đối Tuyệt đối Dai

1 Kiéu dinh vi thanh ghi (register addressing):

> Có 4 dãy thanh ghi 32 byte đầu tiên của Ram dữ liệu trên chíp có địa

chỉ 00H + IFH, nhưng tại một thời điểm chỉ có một dãy hoạt động các bit PSW.3,

PSW.4 của từ trạng thái chương trình sẽ quyết định dãy nào hoạt động

Các lệnh để định vị thanh ghi được ghi mật mã bằng cách dùng bit trọng số thấp nhất của opcode lệnh để chỉ một thanh ghi trong vùng địa chỉ theo lôgic này Như vậy một mã chức năng và địa chỉ có thể được kết hợp để tạo thành một lệnh ngắn

1 byte

> Mội vài lệnh dùng cụ ue cno I thanh ghi nào đó như thanh ghi A, DPTR, mã opcode tự nó cho biết thanh ghi và các bit địa chỉ không cần biết đến

2 Kiểu định địa chỉ trực tiếp (direct addressing):

> _ Kiểu định vị địa chỉ trực tiếp có thể truy xuất bất kì giá trị nào trên chip

hoặc thanh ghi phần cứng trên chip Một byte địa chỉ trực tiếp được đưa vào opcode

để định rõ vị trí được dùng.

Trang 38

FFH), và 128 vị trí nhớ thấp của Ra trên chip được chọn

> _ Tất cả các port LO, các thanh ghi chức năng đặc biệt, thanh ghi điều khiển hoặc thanh ghi trạng thái bao giờ cũng được quy định các địa chỉ trong khoảng 128 + 255 (80H + FEH) Khi byte địa chỉ trực tiếp nằm trong giới han nay (ứng với bit 7 = 1) thi thanh ghi chức năng đặc biệt được truy xuất Ví dụ: port 0 và

port 1 được quy định địa chỉ trực tiếp là 80H và 90H; P0, P1 là dạng thức rút gọn

thuật nhớ của port, sự biến thiên cho phép thay thế và hiểu dạng thức rút gọn thuật

nhớ của chúng Chẳng hạn lệnh : MOV PI,A ; sự biên dịch sẽ xác định địa chỉ trực tiếp của port 1 là 90H

3 Kiểu định địa chỉ gián tiếp:

> _ Kiểu định địa chỉ gián tiếp được tượng trưng bởi kí hiệu @ được đặt

trước RO, R1 hay DPTR RO và R1 hoạt động như một thanh ghi con trỏ mà nội dung cho biết một địa chỉ trong Ram nội ở nơi mà dữ liệu được ghi hoặc được đọc

»> _ Bit trọng số nhỏ nhất của opcode lệnh sẽ xác định RO hay R1 được dùng con trỏ pointer

4 Kiểu đỉnh địa chỉ tức thời (Immediate addressin

> Được tượng trưng bởi kí hiệu # đứng trước một hằng số, một biến kí hiệu hoặc một biểu thức số học được sử dụng bởi các hằng, các kí hiệu, các hoạt động

do người điều khiển

> Chương trình biên dịch tính toán giá trị và thay thế dữ liệu tức thời Byte

lệnh thêm vô chứa trị số dữ liệu tức thời như sau:

5 Kiểu định địa chỉ tương đối:

> _ Chỉ sử dụng đối với những lệnh nhảy nào đó Một địa chỉ tương đối (hoặc offset) là một giá trị 8 bit mà nó được cộng vào bộ đếm chương trình PC để

tạo thành địa chỉ một lệnh tiếp theo được thực thi Phạm vi của sự nhảy nằm trong khoảng -128 + 127 Offset tương đối được gắn vào lệnh như một byte thêm vào và được mô tả như sau:

> Những nơi nhảy đến thường được chỉ rõ bởi các nhãn và chương trình

biên dịch xác định offset relative cho phù hợp

Trang: 45

Trang 39

6 Kiểu định địa chỉ tuyệt đối:

> Được dùng đối với các lệnh ACALL và AJMP Các lệnh 2 byte cho

phép phân chia trong trang 2K đang lưu hành của mã bộ nhớ mã của việc cung cấp

11 bit thấp để xác định địa chỉ trong trang 2K (A0 + A10 : A10 + A8 trong opcode

và A7 + A0 trong byte) và 5 bit cao để chọn trang 2K (5 bit cao đang lưu hành trong

bộ đếm chương trình là 5 bit opcode)

> Sự định vị tuyệt đối đem lại thuận lợi cho các lệnh ngắn (2 byte) nhưng bất lợi trong việc giới hạn phạm vi nơi gởi đến và cung cấp mã có vị trí độc lập

7 Kiểu định địa chỉ dài:

> Được dùng đối với các lệnh LCALL và LIMP Cá lệnh 3 byte nay bao

gồm một địa chỉ nơi gởi tới 16 bit đầy đủ là 2 byte và 3 byte của lệnh

> Ưu điểm của việc định vị địa chỉ dài là vùng nhớ 64K có thé được dùng hết, nhưng mỗi lệnh tốn 3 byte và vị trí lệ thuộc Sự phụ thuộc vào vị trí sẽ bất lợi bởi chương trình không thể thực thi tại địa chỉ khác

8 Kiểu đỉnh địa chỉ phụ lục (định địa chỉ chỉ số):

>_ Kiểu định vị này sử đụng một thanh ghi nền (hoặc bộ đếm chương trình hoặc

con trỏ dữ liệu) và một offset ( thanh chứa A) tạo thành dạng địa chỉ hiệu dụng cho

hình II.7: Mô tả kiểu định vi

> Trong nhiều ứng dụng, các bảng nhảy hoặc các bảng tìm kiếm được tạo ra

dễ dàng bằng cách sử dụng kiểu định địa chỉ chỉ số

Trang 40

sử dụng khác nhau Khả năng có thể giao tiếp điều khiển các thiết bị ngoại vi được người sử dụng rất quan tâm Nhưng một máy tính khi được xuất xưởng thì bản thân

nó chưa phải là một hệ thống hoàn chỉnh Tùy theo yêu cầu của người sử dụng, mà

có thể nâng cấp, mở rộng cấu hình bằng cách ghép nối thêm các card mở rộng hoặc

các thiết bị ngoại vi như modum, máy ¡n, Các nhà sản xuất đã để sẵn các rãnh

cắm mở rộng trên bản mạch chính, các cổng ghép nối song song và các cổng nối

tiếp Đây chính là những nơi mà người sử dụng có thể tác động vào để có thể thực

hiện việc ghép Dựa vào các đường đã được thiết kế sẵn bởi các nhà sản xuất thì có

3 cách thực hiện ghép nối máy tính:

> Ghép nối qua cổng máy in hay còn gọi là cổng song song

> Ghép nối máy tính qua rãnh cắm mở rộng trên bản mạch chính

> Ghép nối qua cổng COM (RS 232) hay còn gọi là cổng nối tiếp

Mỗi một cách ghép nối đều có những ưu nhược điểm riêng Tùy theo từng mục đích cụ mà có thể lựa chọn phương án sao cho phù hợp nhất Sau đây là một

số vấn để cơ bản về việc ghép nối qua qua các rãnh cắm mở rộng và các cổng:

L GIAO TIẾP MÁY TÍNH QUA RÃNH CẮM MO RONG

>_ Sự ra đời của rãnh cắm mở rộng gắn liền với sự phát triển của kỹ thuật máy tính Cho dến nay đã có nhiều loại rãnh cắm đã ra đời như: bus PCI (32/64 bit), bus AGP (32/64 bit), mỗi một loại rãnh cắm có một mục đích cụ thể do chính nhà sản

xuất đưa ra, để cho người sử dụng có thể tác động vào nó

> Để có thể ghép nối máy tính qua rãnh cắm mở rộng, thì cần phải có một card mở rộng, sau đó là một phần mềm cài đặt để đăng ký card mở rộng vào trong

hệ thống máy tính Đối với các mục đích điều khiển chuyên dùng, thì người sử dụng cần phải tự thiết kế các card mở rộng cho chính mục đích của mình Muốn làm được

nt

Trang: 48

Ngày đăng: 26/04/2013, 11:23

TỪ KHÓA LIÊN QUAN

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

w