Tài liệu luận văn Điện năng kế điện tử giao tiếp máy tính, chương 2 docx

10 284 0
Tài liệu luận văn Điện năng kế điện tử giao tiếp máy tính, chương 2 docx

Đang tải... (xem toàn văn)

Thông tin tài liệu

Chương 2: Các thanh ghi port xuất nhập Các port của 8951 bao 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ả các port đều được đòa chỉ hóa từng bit. Điều đó cung cấp một khả năng giao tiếp thuận lợi. Ví dụ, nếu một motor được nối qua một cuộn dây có transistor lái đến bit 7 của Port 1, nó có thể được bật và tắt bằng một lệnh đơn: SETB P1.7 ; bật motor CLR P1.7 ; tắt motor Các lệnh trên dùng dấu chấm để xác đònh một bit trong một byte. Trình hợp dòch sẽ thi hành sự chuyển đổi cần thiết, vì vậy hai lệnh sau đây là như nhau: CLR P1.7 CLR 97H Trong một ví dụ khác, xem xét giao tiếp đến một thiết bò với một bit trạng thái gọi là BUSY, được set khi thiết bò đang bận và được xóa khi thiết bò đã sẵn sàng. Nếu BUSY được nối tới P1.5, vòng lặp sau sẽ được dùng để chờ thiết bò trở lại trạng thái sẵn sàng: WAIT : JB P1.5, WAIT Lệnh này có nghóa là “nếu bit P1.5 được set thì nhảy tới nhãn WAIT”. Nói cách khác “nhảy trở lại và kiểm tra lần nữa”. f/ Các thanh ghi timer: C 8951 chứa hai bộ đònh thời/đếm 16 bits được dùng cho việc đònh thời hoặc đếm sự kiện. Timer 0 ở đòa chỉ 8AH (TL0: byte thấp) và 8CH (TH0 : byte cao). Timer 1 ở đòa chỉ 8BH (TL1: byte thấp) và 8DH (TH1 : byte cao). Việc vận hành timer được set bởi thanh ghi Timer Mode (TMOD) ở đòa chỉ 89H và thanh ghi điều khiển timer (TCON) ở đòa chỉ 88H. Chỉ có TCON được đòa chỉ từng bit. g/ Các thanh ghi port nối tiếp: C8951 chứa một port nối tiếp trên chip dành 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 cho việc giao tiếp với các IC khác có giao tiếp nối tiếp (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 truyền và nhận. Khi truyền dữ liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF. 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. h/ Các thanh ghi ngắt: C 8951 có cấu trú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 bằng việc ghi thanh ghi cho phép ngắt (IE) ở đòa chỉ A8H. Cả hai thanh ghi được đòa chỉ hóa từng bit. i/ Thanh ghi điều khiển công suất: Thanh ghi điều khiển công suất (PCON) ở đòa chỉ 87H chứa nhiều bit điều khiển. Chúng được tóm tắt trong bảng sau: Bi t Kí hiệu Ý nghóa 7 SMO D Bit gấp đôi tốc độ baud, nếu được set thì tốc độ baud sẽ tăng gấp đôi trong các mode1, 2 và 3 của port nối tiếp. 6 _ Không đònh nghóa 5 _ Không đònh nghóa 4 _ Không đònh nghóa 3 GF1 Bit cờ đa dụng 1 2 GF0 Bit cờ đa dụng 0 1 PD Giảm công suất, được set để kích hoạt mode giảm công suất, chỉ thoát 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. 5/ Bộ nhớ ngoài: C 8951 có khả năng mở rộng bộ nhớ lên đến 64K bộ nhớ chương trình và 64K bộ nhớ dữ liệu ngoài. Do đó, có thể dùng thêm ROM và RAM bên ngoài nếu cần. Khi dùng bộ nhớ ngoài, Port 0 không còn là một port I/O thuần túy nữa. Nó được hợp kênh giữa bus đòa chỉ (A0 – A7) và bus dữ liệu (D0 – D7) với tín hiệu ALE để chốt byte thấp của đòa chỉ khi bắt đầu mỗi chu kì bộ nhớ. Port 2 thông thường được dùng cho byte cao của bus đòa chỉ. Trong nửa đầu của mỗi chu kì bộ nhớ, byte thấp của đòa chỉ được cấp trong Port 0 và được chốt bằng xung ALE. Một IC chốt 74HC373 (hoặc tương đương) sẽ giữ byte đòa chỉ thấp trong phần còn lại của chu kì bộ nhớ. Trong nửa sau của chu kì bộ nhớ Port 0 được dùng như bus dữ liệu và được đọc hoặc ghi tùy theo lệnh. a/ Truy xuất bộ nhớ chương trình ngoài: Bộ nhớ chương trình ngoài là một IC ROM được cho phép bởi tín hiệu PSEN\. Hình sau mô tả cách nối một EPROM vào 8951: Giao tiếp giữa 8951 và EPROM. Một chu kì máy của 8951 có 12 chu kì xung nhòp. Nếu bộ dao động trên chip được lái bởi một 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ó hai xung ALE và hai byte được đọc từ bộ nhớ chương trình (nếu lệnh hiện hành là lệnh 2 bytes thì byte thứ hai sẽ được loại bỏ). Giản đồ thời gian của một lần lấy lệnh được vẽ ở hình sau: Giản đồ thời gian đọc bộ nhớ chương trình ngoài. b/ Truy xuất bộ nhớ dữ liệu ngoài: Giao tiếp giữa 8951 và RAM. 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 WR\ và RD\ (các chân P3.6 và P3.7 thay đổi chức năng). Chỉ có một cách truy xuất bộ nhớ dữ liệu ngoài là với lệnh MOVX dùng con trỏ dữ liệu (DPTR) 16 bits hoặc R0 và R1 xem như thanh ghi đòa chỉ. Kết nối bus đòa chỉ và bus dữ liệu giữa RAM và 8951 cũng giống như EPROM và do đó cũng có thể lên đến 64 Kbytes bộ nhớ RAM. Ngoài ra, chân RD\ của 8951 được nối tới chân cho phép xuất ( OE\) của RAM và chân WR\ được nối tới chân ghi ( WR\) của RAM. Giản đồ thời gian cho lệnh đọc dữ liệu ngoài được vẽ trên hình sau đối với lệnh MOVX A, @DPTR: Giản đồ thời gian của lệnh MOVX. Giản đồ thời gian cho lệnh ghi (MOVX @DPTR, A) cũng tương tự chỉ khác đường WR\ sẽ thay vào đường RD\ và dữ liệu được xuất ra trên chân Port 0 ( RD\ vẫn giữ mức cao). c/ Giải mã đòa chỉ: Nếu có nhiều EPROM và/hoặc nhiều RAM được giao tiếp với 8951, thì cần phải giải mã đòa chỉ. Mạch giải mã cũng tương tự như các hệ vi xử lí khác. Ví dụ, nếu dùng nhiều EPROM và RAM 8Kbytes thì bus đòa chỉ cần phải được giải mã để xác đònh IC nhớ nào được chọïn. Người ta thường dùng IC giải mã 74HC138 với các ngõ ra được nối tới các ngõ vào chọn chip (CS) trên các IC nhớ. Hình sau vẽ một hệ thống với nhiều EPROM 8K 2764 và RAM 8K 6264: Giải mã đòa chỉ. d/ Xếp chồng bộ nhớ chương trì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 8051/8031. Đối với 8951 đã cải tiến bằng cách thay thế bằng EEPROM, hoặc dùng một cách để khắc phục nhược điểm trên là xếp chồng các vùng nhớ chương trình và dữ liệu. Một IC 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ào một mạch logic AND của PSEN\ và RD\. Mạch trên hình sau cho phép một IC RAM được dùng làm bộ nhớ chương trình và dữ liệu: Vậy một chương trình có thể được tải vào RAM (bằng cách ghi nó như bộ nhớ dữ liệu) và thi hành (bằng cách truy xuất nó như bộ nhớ chương trình). 6/ Lệnh Reset: C8951 được reset bằng cách giữ chân RST ở mức cao ít nhất trong hai chu kì máy và trả nó về mức thấp. Mạch reset hệ thống. RST có thể được kích bằng tay dùng một nút bấm hoặc có thể được kích khi cấp điện dùng một mạch R-C. Trạng thái của tất cả các thanh ghi trong 8951 sau khi Reset hệ thống được tóm tắt trong bảng sau: Thanh ghi Nội dung Đếm chương trình 0000 H Tích lũy 00 H B 00 H PSW 00 H SP 07 H DPTR 0000 H Port 0  3 FF H IP XXX00000 B IE 0XX00000 B Các thanh ghi đònh thời 00 H SCON 00 H SBUF 00 H PCON ( HMOS ) 0XXXXXXX B PCON ( CMOS ) 0XXX0000 B Quan trọng nhất trong các thanh ghi trên là thanh ghi đếm chương trình, nó được đặt lại 0000H. Khi RST 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. . nối tiếp: C8951 chứa một port nối tiếp trên chip dành 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 cho việc giao tiếp. giao tiếp nối tiếp (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

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

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan