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 (1.14 MB, 69 trang )
code (byte mã chương trình) khi lập trình Flash, và xuất ra các byte code khi
kiểm tra chương trình. Cần phải có các điện trở pullup bên ngoài khi thực hiện
việc kiểm tra chương trình, các điện trở này thường lấy giá trị định mức là 10000
Ôm.
+ Port 1:
Port 1 chỉ có một công dụng là xuất/nhập, các chân số 1 đến 8 trên 8051. Các
chân của port 1 được kí hiệu là P1.0, P1.1,…, P1.7 và được dùng để giao tiếp với
thiết bị bên ngoài khi có yêu cầu. Chỉ được sử dụng để giao tiếp với các thiết bị
ngoại vi mà không có chức năng nào khác nữa. Nó là một port xuất/nhập song
hướng 8 bit có các điện trở pullup bên trong. Các bộ đếm ngõ ra của port 1 có
thể kéo hoặc cung cấp 4 ngõ nhập TTL. Khi mức 1 được viết vào các chân của
port1, chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng
như là các ngõ nhập. Nếu đóng vai trò là ngõ nhập các chân của port 1 sẽ cấp
dòng IIL do các điện trở pullup bên trong.
+ Port 2:
Là các chân từ số 21 đến 28 trên 8051, kí hiệu các chân là P2.0, P2.1, …
P2.7. Có 2 công dụng, hoặc làm nhiệm vụ xuất/ nhập hoặc là byte địa chỉ cao
của bus địa chỉ 16 bit cho các thiết kế có bộ nhớ chương trình ngoài hoặc các
thiết kế có nhiều hơn 256 byte bộ nhớ dữ liệu ngoài. Port 2 cũng có điện trở
pullup ở bên trong. Các bộ đệm ngõ ra của port 2 có thể kéo hoặc cung cấp 4
ngõ vào TTL. Khi các mức 1 được viết vào các chân của port 2 thì chúng được
dùng như các ngõ vào. Khi được dùng như các ngõ vào các chân của port 2 cũng
cung cấp dòng IIL do các điện trở trong.
+ Port 3:
Các chân số 10 đến số 17 trên 8051, kí hiệu là P3.0, P3.1…P3.7 có 2 công
dụng. Dùng làm nhiệm vụ xuất / nhập các giá trị, dữ liệu vào ra của IC và khi
không làm nhiệm vụ này thì mỗi chân của port 3 còn đảm nhiệm thêm các chức
năng riêng như sau:
P3.0(RxD)- Chân nhận dữ liệu của port nối tiếp
P3.1(TxD)- Chân phát dữ liệu của port nối tiếp
P3.2(INT0)- Ngõ vào ngắt ngoài 0
25
P3.3(INT1)- Ngõ vào ngắt ngoài 1
P3.4(T0)- Ngõ vào của bộ định thời/đếm 0
P3.5(T1)- Ngõ vào của bộ định thời/đếm 1
P3.6(WR)- Điều khiển ghi bộ nhớ dữ liệu ngoài
P3.7(RD)- Điều khiển đọc bộ nhớ dữ liệu ngoài
+ Chân PSEN:
Là chân cho phép bộ nhớ chương trình.8051 cung cấp cho ta 4 tín hiệu điều
khiển bus, chân PSEN là chân số 29. Đây là tín hiệu điều khiển cho phép ta truy
xuất bộ nhớ chương trình ngoài, nó thường được nối với chân cho phép xuất OE
của ROM để cho phép đọc các byte lệnh. Các mã nhị phân của chương trình hay
opcode (mã thao tác) được đọc từ EP-ROM, qua bus dữ liệu và được chốt vào
thanh ghi lệnh IR của 8051 để được giải mã. Tín hiệu PSEN ở logic 0 trong xuốt
thời gian tìm -nạp lệnh. Khi thực thi một chương trình chứa ở ROM nội thi
PSEN ở mức logic 1.
+ Chân ALE:
Đây là chân cho phép chốt địa chỉ. Trên 8051 đây là chân số 30, nó là một
chân để giải đa hợp bus dữ liệu và bus địa chỉ. Chân ALE xuất tín hiệu để chốt
địa chỉ vào một thanh ghi ngoài trong suốt 1/ 2 chu kì của bộ nhớ. Sau khi điều
này đã được thực hiện, các chân của port 0 sẽ xuất/nhập dữ liệu. Được dùng làm
xung clock cho hệ thống. Chân ALE có tần số bằng 1/6 tần số của mạch dao
động bên trong chip điều khiển và có thể được dùng làm xung clock cho phần
còn lại của hệ thống. Nếu mạch giao động có tần số 12MHz, tín hiệu ALE có tần
số 2MHz. Ngoại lệ duy nhất là trong thời gian thực thi lệnh MOVX, thì một
xung ALE sẽ bị bỏ qua. Chân ALE còn được dùng để nhận xung ngõ vào lập
trình cho EPROM trên chip điều khiển họ 8051 này.
+ Chân EA:
Chân số 31, là chân truy xuất ngoài được nối vào 5V hoặc đất GND (logic 0).
Khi nối vào 5V thì thực thi chương trình trong ROM nội. Nếu chân này nối đất
thì chương trình cần thực thi chứa ở bộ nhớ ngoài. Các phiên bản của họ 8051
sau này còn sử dụng chân EA làm chân nhận điện áp cấp điện 21V cho việc lập
trình EPROM nội (nạp EPROM).
26
+ Chân RESET:
Là chân số 9, ngõ vào RST là ngõ vào xóa chính của 8051 dùng để thiết lập
lại trạng thái ban đầu cho hệ thống hay gọi tắt là reset hệ thống. Khi ngõ vào này
được treo ở logic 1 tối thiểu hai chu kì máy, các thanh ghi bên trong 8051 sẽ
được nạp các giá trị thích hợp cho việc khởi động lại hệ thống.
+ Các chân XTAL1 và XTAL2:
Mạch giao động bên trong chip 8051 được ghép với thạch anh bên ngoài qua
các chân này. Đó là các chân số 18 và 19.
Các tụ ổn định cũng được chọn theo yêu cầu, tần số thạch anh là 12MHz,
16MHz…tụ gốm có giá trị từ 27 đến 33pF, thường chọn là 33pF để ổn định làm
việc cho thạch anh.
Ngoài mạch tạo dao động bằng thạch anh chúng ta cũng có thể tao một mạch
dao động dùng cổng logic.
Hình 2.9: Mạch tạo dao động dùng cổng lô-gic
27
2.2.5 Các thanh ghi của họ 8051
+ Thanh ghi điều khiển chương trình(PSW):
CY
AC
F0
RS1
RS0
OV
-
P
Đây là một thanh ghi 8 bit. Được đánh địa chỉ từng bit, với tính năng của
từng bit như sau:
CY(PSW.7)- Đây là cờ nhớ CY, cò này được thiết lập mỗi khi có nhớ từ bit
D7 và là kết quả của lệnh cộng hoặc lệnh trừ 8 bit. Có thể thiết lập trực tiếp cờ
CY lên 1 hoặc xóa về 0 bằng lệnh “setb C” và “clr C”, hay nói cách khác là
“thiết lập cờ nhớ” và “xóa cờ nhớ”.
AC(PSW.6)- Cờ nhớ phụ(dùng trong các lệnh BCD), cờ này báo có nhớ từ bit
D3 sang D4 ở phép cộng ADD hoặc trừ SUBB. Cờ này được các lệnh số học mã
BCD sử dụng.
F0(PSW.5)- Cờ 0(dùng trong các mục đích do người lập trình)
RS1(PSW.4)- Chọn dãy thanh ghi bit1
RS0(PSW.3)- Chọn dãy thanh ghi bit0
OV(PSW.2)- Cờ tràn, cờ này được thiết lập mỗi khi kết quả của phép tính số
có dấu quá lớn làm cho bit cao bị tràn vào bit dấu. Nhìn chung cờ nhớ được
dùng để phát hiện lỗi trong các phép tính số học không dấu còn cờ tràn được
dùng để phát hiện ra lỗi trong các phép tính số học có dấu.
P(PSW.0)- Cờ parti hay cờ bậc( cờ chẵn lẻ) phản ánh số bit 1 trong thanh ghi
A là chẵn hay lẻ. Nếu thanh ghi a chứa một số chẵn các bit 1 thì P = 0 còn nếu
chứa một số lẻ bit 1 thì P = 1.
Cách chọn dãy thanh ghi: Ta tiến hành lập trình cho các bit RS1 và RS0 để
nhận được các giá trị tương ứng như sau:
RS1
0
0
1
1
RS0
0
1
0
1
Băng thanh ghi
Băng 0
Băng 1
Băng 2
Băng 3
Hình 2.10: Bảng lựa chọn thanh ghi
+ Thanh ghi chế độ định thời TMOD:
28
Địa chỉ
Từ 00h đến 07h
Từ 08h đến 0Fh
Từ 10h đến 17h
Từ 18h đến 1Fh