Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (489.56 KB, 63 trang )
Đồ án tốt nghiệp
- Khi nhận dữ liệu: Mode 0 phải có điều kiện RI=0 và REN =0.
- Các chế độ khác Nếu bit REN = 1 thì bit start bắt đầu được nhận.
Chế độ truyền đa kênh:
Trong chế độ 2 và 3 còn được dùng cho việc truyền đa kênh, trong chế độ
này thì bit dữ liệu nhận được còn bit 9 được chuyển vào RB8 sau đó là bit Stop.
Cổng được lập trình sao cho khi bit Stop nhận được thì ngắt nối tiếp được tích
cực khi RB8 = 1. Nét đặc trưng là cho phép đặt bit SM2 trong SCON, bằng cách
này cho phép sử dụng chế độ truyền đa kênh.
Khi trạm chủ(MASTER) muốn gửi một gói dữ liệu tới một trong các trạm
tớ (SLAVE), đầu tiên trạm chủ gửi một byte địa chỉ để xác nhận trạm tớ nào
chuẩn bị nhận dữ liệu. Byte địa chỉ này khác với byte dữ liệu là trong byte địa
chỉ thì bit thứ 9 bằng 1 còn trong byte dữ liệu thì bit thứ 9 bằng 0. Khi SM2 = 1
thì khơng có trạm tớ nào bị ngắt khi đang truyền dữ liệu, tuy nhiên với byte địa
chỉ thì tất cả đều bị ngắt. Vì vậy trạm tớ lúc nào cũng phải kiểm tra xem byte
nhận được và xem nó có phải địa chỉ của mình nhận được hay khơng. Nếu
khơng phải địa chỉ của mình nó vẫn đặt SM2 đồng thời báo bận và bỏ qua các
byte dữ liệu đến. Bit SM2 khơng có tác dụng trong Mode 0, trong Mode 1 có thể
dùng để kiểm tra giá trị của bit Stop. Khi nhận nếu SM2=1 thì ngắt nhận sẽ
khơng có tác dụng trừ khi bit Stop đựoc nhận.
Tốc độ Baud trong truyền nối tiếp
Đối với Mode 0:
Tèc ®é trun : Baud rate =
1
12
lÇn tÇn sè xung th¹ch anh
Đối với Mode 2:
2 SMOD
Tèc ®é trun : Baud rate =
lÇn tÇn sè xung th¹ch anh.
64
1
SMOD = 0: Baud rate =
lÇn tÇn sè xung th¹ch anh.
64
1
SMOD = 0: Baud rate =
lÇn tÇn sè xung th¹ch anh.
32
Đối với Mode 1, Mode 3:
Trường Đại Học Bách Khoa Hà Nội
trang 43
Đồ án tốt nghiệp
Trong hai chế độ này thì phải sử dụng Timer 1 để định tốc độ truyền
Baud.
Khi Timer 1 báo tràn:
2 SMOD
Baud rate =
x(Timer 1 Over Flow Rate ).
32
Khi timer1 sư dơng chÕ ®é ho¹t ®éng tù ®éng n¹p l¹i sè ®Õm khi trµn:
Baud rate =
2
1
*
* tÇn sè xung th¹ch anh.
32 12 * [ 256 − (TH1)]
Việc khởi tạo và điều khiển chế độ hoạt động thơng qua 2 thanh ghi
SCON và PCON.
Thanh ghi SCON ( Serial Port Control Register )
7
SM0
6
SM1
5
SM2
4
REN
3
TB8
2
RB8
1
TI
0
RI
Trong đó:SM0, SM1: dùng để định chế độ truyền nhận nối tiếp.
SM0 SM1 MODE
0
0
0
0
1
1
1
0
2
1
1
3
SM2 : Cho phép truyền đa kênh trong Mode 2, Mode 3.
Mode 1 thì SM2 dùng để kiểm tra giá trị của bit Stop
Mode 0 thì SM2 khơng có tác dụng ( thường thì SM2 = 0).
REN : Cho phép nhận nối tiếp, được đặt và xố bằng phần mềm.
TB8 : Mode 2, Mode3 bit thứ 9 được nhận và chuyển vào
Mode 1: khi SM2 = 0, RB8 là bit stop được nhận.
Mode 0: Khơng sử dụng bit này.
Trường Đại Học Bách Khoa Hà Nội
trang 44
Đồ án tốt nghiệp
TI
: Cờ ngắt khi truyền, được đặt tại phần cứng tại cuối cùng của bit
thứ 8 trong Mode 0 hoặc là khi bắt đầu bit stop trong Mode khác,
bit này phải được xố bằng phần mềm.
RI
: Cờ ngắt khi nhận, được đặt tại phần cứng tại cuối cùng của bit thứ
8 trong Mode 0 hoặc là giữa bit Stop trong Mode khác, bit này phải
được xố bằng phần mềm.
Thanh ghi PCON ( Power Control Register )
7
SMOD
6
---
5
---
4
---
3
GF1
2
GF0
1
PD
0
IDL
Trong đó:
SMOD : Dùng để nhân đơi tốc độ baud
---
: Khơng sử dụng ( Đặt bằng 0 )
---
: Khơng sử dụng ( Đặt bằng 0 )
---
: Khơng sử dụng ( Đặt bằng 0 )
GF1
: Bit cờ cho mục đích chung ( Genral Purpose Flag Bit )
GF0
: Bit cờ cho mục đích chung ( Genral Purpose Flag Bit ).
PD
: Bit tắt nguồn ( Power Down bit ).
IDL
: Bit chế độ Idle ( Idle Mode bit ).
II.11.Các loại lệnh của 8051
Các lệnh của 8051 được chia làm 5 nhóm sau:
- Nhóm các lệnh số học.
- Nhóm các lệnh logic.
- Nhóm các lệnh dịch chuyển dữ liệu.
- Nhóm các lệnh xử lý bit
- Nhóm các lệnh rẽ nhánh chương trình
2.11.1.Các lệnh số học
Trường Đại Học Bách Khoa Hà Nội
trang 45
Đồ án tốt nghiệp
Các lệnh số học có 4 khả năng định địa chỉ bit.
Định địa chỉ trực tiếp
Định địa chỉ gián tiếp
Định địa chỉ thanh ghi
Định địa chỉ tức thời.
Tất cả các lệnh số học được thực thi trong mét chu kỳ máy ngoại trừ lệnh
INC, DPTR được thực thi trong hai chu kỳ máy, các lệnh MUL AB và DIV AB
thực thi trong 4 chu kỳ máy
2.11.2.Các lệnh logic.
Nhóm lệnh logic của 8051 thực hiện các phép tốn logic (AND, OR, XOR
và NOT) trên các byte dữ liệu và thực hiện trên từng bit có cùng giá trị vị trí
(trọng số). Các kiểu định địa chỉ cho các lệnh logic cũng giống nh kiểu định địa
chỉ cho các lệnh số học.
Tất cả các lệnh sử dụng thanh chứa A để lưu một tốn hạng sẽ được thực
thi trong mét chu kỳ máy, ngược lại nếu sử dụng thanh ghi khác hoặc byte nhí
thay cho thanh chứa A thì lệnh phải thực thi trong 2 chu kỳ máy.
Các phép tốn logic có thể được thực hiện trên một byte bất kỳ trong bộ
nhớ dữ liệu nội mà khơng cân qua trung gian thanh chứa A. Nó giúp ta nhanh
chóng và dễ dàng đảo mức logic các bit của cổng. Thí dụ lệnh:
XRL P1,#0FFH
Lệnh này thực hiện thao tác đọc - sửa - ghi. 8 bit của cổng 1 được đọc, sau
đó từng bit được XOR với các bit tương ứng (Cùng vị trí) của dữ liệu tức thời.
Sau đó kết quả được lại được ghi trở l¹i Port 1.
2.11.3.Các lệnh di chuyển dữ liệu.
Trong RAM nội:
Các lệnh di chuyển dữ liệu trong Ram nội được thực hiện trong 1 hoặc 2
chu kỳ máy. Dạng lệnh nh sau:
MOV
<đích>,
Trường Đại Học Bách Khoa Hà Nội
trang 46
Đồ án tốt nghiệp
Lệnh trên cho phép dữ liệu được di chuyển giữa các vị trí của Ram nội
hoặc các thanh ghi chức năng đặc biệt SFR mà khơng cần qua trung gian thanh
chứa A.
Các lệnh chuyển dữ liệu còn bao gồm lệnh MOV 16 bit dùng để khởi
động cong trỏ dữ liệu DPTR cho mục đích tìm các bảng trong bộ nhớ chương
trình hoặc cho mục đích truy xuất bộ nhớ dữ liệu ngồi 16 bit.
Lệnh hốn đổi nội dung XCH được sử dụng để hốn đổi nội dung thanh
chứa A với nội dung của byte được chỉ ra trong lệnh. Dạng lệnh nh sau:
XCH
A,