Lúc này, bit trạng thái “Run” được thiết lập, 8051 sẽ đọc byte dữ liệu có chứa thời gian vận hành để biết thời gian hoạt động của xe, sau đó điều khiển hai motor kéo hai bánh xe 2 và 3 ở
Trang 1Chương I : TỔNG QUAN.
I GIỚI THIỆU:
Ngày nay với sự phát triển của khoa học kỹ thuật, đặc biệt trong ngành điện tử với những bước tiến vượt bậc về lĩnh vực vi xử lý và các vi mạch số đã thực sự mang lại những hiệu qủa chính xác và gọn nhẹ trong quá trình điều khiển, sản xuất Do đó việc chế tạo robot để phục vụ cho con người trong lĩnh vực sản xuất đối với chúng ta không còn là vấn đề quá xa vời Tập đồ án này trình bày những nghiên cứu và thiết kế một chiếc xe được điều khiển bởi chip vi điều khiển 8051 để có thể di chuyển trong các nhà xưởng, xí nghiệp và thực hiện một công việc nào đó thay cho con người.
II GIỚI HẠN ĐỀ TÀI :
Với thời gian thực hiện đề tài, cũng như trình độ chuyên môn có hạn, em đã cố gắng hết sức để hoàn thành tập luận văn này, nhưng chỉ giải quyết được những vấn đề sau :
- Xe di chuyển theo những lộ trình định trước bằng cách kẽ sẵn những đường vạch sáng dưới sàn có màu tối.
- Xe hoạt động trong khoảng thời gian từ 0 đến 99 phút.
- Tại mỗi điểm dừng xe chỉ bật đèn báo hiệu thay vì phải làm một công việc tương ứng.
III MỤC ĐÍCH NGHIÊN CỨU :
Mục đích trước hết khi thực hiện đề tài này là để hoàn tất chương trình môn học để đủ điều kiện ra trường
Cụ thể khi nghiên cứu thực hiện đề tài là chúng em muốn phát huy những thành quả ứng dụng của vi điều khiển nhằm tạo ra những sản phẩm, thiết bị tiên tiến và đạt hiệu quả cao trong sản xuất.
Ngoài ra quá trình nghiên cứu thực hiện đề tài là một cơ hội để chúng em tự kiểm tra lại những kiến thức đã được học ở trường, đồng thời phát huy tính sáng tạo, khả năng giải quyết một vấn đề theo yêu cầu đặt ra Và đây cũng là dịp để chúng em tự khẳng định mình trước khi ra trường để tham gia vào các hoạt động sản xuất của xã hội.
IV KHÁI QUÁT VỀ ĐỀ TÀI:
Trang 21 Bàn phím và bộ phận hiển thị:
Hình 1.1: Mô tả bàn phím và bộ phận hiển thị.
Bộ phận hiển thị gồm hai led 7 đoạn, hiển thị tín hiệu stop/sẵn sàng nhận dữ liệu và thời gian mà xe phải vận hành trong suốt quá trình vận hành của nó.
Bàn phím gồm có ba phím: phím 1 và 2 dùng để nhập thời gian vận hành của xe, thời gian được nhập bằng cách ấn phím 1 để nhập chữ số hàng chục, phím 2 để nhập chữ số hàng đơn vị, tương ứng với mỗi lần ấn phím 1 (hoặc 2) chữ số hàng chục (hoặc hàng đơn vị) sẽ tăng lên 1; phím Go/Stop được dùng để kích khởi xe hoạt động hoặc ngừng hoạt động của xe khi nó đang chuyển động.
2 Quá trình vận hành của xe:
Xe sẽ di chuyển theo lộ trình định sẵn trong khoảng thời gian nhất định bằng cách dò những đường vạch trắng được kẻ sẵn trên sàn có màu tối nhờ bộ phận cảm biến đặt dưới xe, thời gian vận hành của
xe được nhập vào từ bàn phím và được lưu vào một byte dữ liệu Quá trình hoạt độâng của xe được mô tả như hình sau:
Trang 32 : Bánh xe được kéo bởi motor 2.
3 : Bánh xe được kéo bởi motor 3.
4, 5 : Bộ phận cảm biến đặt dưới xe.
6 : Vạch màu trắng được kẻ sẵn dưới sàn có màu tối.
7 : Tín hiệu dừng xe trên đường di chuyển
Hình 1.2: Mô tả quá trình chuyển động của xe.
Nguyên lý hoạt động của xe:
Sau khi thời gian vận hành (tính bằng phút) được nhập vào từ bàn phím, để kích khởi cho xe hoạt động ta ấn phím Go/Stop Lúc này, bit trạng thái “Run” được thiết lập, 8051 sẽ đọc byte dữ liệu có chứa thời gian vận hành để biết thời gian hoạt động của xe, sau đó điều khiển hai motor kéo hai bánh xe (2) và (3) ở hai bên thành xe quay, xe sẽ di chuyển về phía trước Đồng thời bộ phận cảm biến (4) và (5) ở dưới xe cũng hoạt động Giả sử xe chạy lệch khỏi vạch trắng và bộ phận cảm biến (4) đang ở phía trên vạch trắng thì bộ phận cảm biến này sẽ gởi tín hiệu thông báo về cho chip 8051, để từ đó điều khiển cho motor kéo bánh xe (3) quay vói tốc độ nhanh hơn đồng thời giảm tốc độ quay của bánh xe (2) nhằm làm cho xe tiếp tục chuyển động đúng hướng dọc theo vạch trắng đã kẻ dưới sàn Nhờ đặc tính này mà ta có thể cho xe chuyển động thẳng, quay phải hay trái tuỳ ý bằng cách kẻ lên sàn những đường vạch trắng theo lộ trình định trước.
Đồng thời trong quá trình chuyển động của xe, bộ hiển thị led 7 đoạn sẽ hiển thị thời gian còn lại mà xe phải hoạt động theo từng phút cho đến khi hết thời gian thì hiển thị tín hiệu stop và sẵn sàng để nhận dữ liệu cho quá trình vân hành tiếp theo.
Trong quá trình vận hành của xe, nếu gặp phải tín hiệu dừng trên đường đi, tín hiệu này là một vạch trắng được kẽ dưới sàn, thì xe sẽ dừng lại trong một khoảng thời gian đồng thời bật đèn báo hiệu, ứng với công việc mà xe phải làm tại mỗi điểm dừng, sau đó vượt qua tín hiệu dừng này và tiếp tục di chuyển như trên.
Ngoài ra, nếu xe đang hoạt động mà ta ấn nút Go/Stop thì xe sẽ dừng lại và bộ hiển thị tín hiệu stop.
Trang 4Trong quá trình thiết kế và thi công mạch có sử dụng một số vi mạch như: chip vi điều khiển 8051, 8255A, EPROM 2764, RAM 6264, 74LS138, MAX232 Các vi mạch này sẽ được khảo sát rõ trong các chương kế tiếp
Trang 5Chương II TỔNG QUAN VỀ HỌ VI ĐIỀU KHIỂN MCS-51
I CẤU TẠO VI ĐIỀU KHIỂN 8051:
1 Giới thiệu họ MSC-51:
MCS-51 là họ vi điều khiển của hãng Intel Các IC tiêu biểu cho họ MSC-51 là chip 8051, là mạch tích hợp trên một chip có thể lập trình được, dùng để điều khiển hoạt động của hệ thống Theo các lệnh của người lập trình, bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo thời gian và tiến hành đóng mở một cơ cấu nào đó Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn
toàn tương tự như nhau Ở đây giới thiệu chip 8051 có các đặc trưng
được tóm tắt như sau:
- 4 kbyte ROM
- 128 byte RAM.
- 4 port xuất nhập (I/0 port) 8-bit.
- Hai bộ định thời 16 bit.
- Mạch giao tiếp nối tiếp.
- 64KB không gian bộ nhớ chương trình mở rộng
- 64 KB không gian bộ nhớ dữ liệu mở rộng
- Một bộ xử lí bit (thao tác trên các bit đơn)
- 210 vị trí nhớ được định địa chỉ, mỗi vị trí 1 bit.
- Nhân / chia trong 4µs.
Cùng họ với 8051 có một số vi điều khiển khác Về cơ bản chúng đều giống nhau, chúng chỉ khác nhau ở vùng nhớ nội bao gồm vùng nhớ mã lệnh, vùng nhớ dữ liệu và số bộ định thời Sự khác nhau đó được mô tả bằng bảng sau đây:
Trang 6Vi điều khiển Vùng mã lệnh nội Vùng dữ liệu nội Số bộ định thời 8051
Bảng 2.1: So sánh các IC của họ Msc-51.
2 Cấu trúc bên trong và sơ đồ chân của 8051:
a Cấu trúc bên trong:
Hình 2.1 : Sơ đồ khối của chip 8051.
T1* T0*
P0 P1 P2 P3
EA ALE RST PSEN
Các thanh
128 byte RAM
ROM 0K-8031/8032 4K-8051
CPU
Port nối tiếp Các port I/O
Địa chỉ/dữ liệu
*Alternate pin assignmentsfor P1 and P3
Trang 7
b Sơ đồ chân 8051:
Hình 2.2 : Sơ đồ chân của 8051.
c Chức năng các chân của 8051:
8051 có tất cả 40 chân có chức năng như các đường xuất nhập Trong đó có 24 chân có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có thể hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc là thành phần của các bus dữ liệu và bus địa chỉ.
18
19 12MHz
40
29 30 31 9
17 16 15 14 13 12 11 10
RD\
WR\
T1 T0 INT1 INT0 TXD RXD
A15 A14 A13 A12 A11 A10 A9 A8
28 27 26 25 24 23 22 21
8 7 6 5 4 3 2 1
32 33 34 35 36 37 38 39
Po.7 Po.6 Po.5 Po.4 Po.3 Po.2 Po.1 Po.0
AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0
P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
PSEN ALE EA RST
8051
Trang 8• Port 0:
Port 0 là port có 2 chức năng ở các chân từ 32 đến 39 trên 8051 Trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường I/O Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó trở thành bus địa chỉ và bus dữ liệu đa hợp (byte thấp của bus địa chỉ nếu là địa chỉ).
Port 1 là port I/O trên các chân từ 1 đến 8 trên 8051 Các chân được ký hiệu P1.0, P1.1, P1.2, P1.7 có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần Port 1 không có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với các thiết bị bên ngoài.
Port 2 là 1 port có tác dụng kép trên các chân từ 21 đến 28 trên
8051, được dùng như các đường xuất/nhập hoặc là byte cao của bus địa chỉ 16-bit đối với các thiết kế dùng bộ nhớ chương trình ngoài hoặc các thiết kế có nhiều hơn 256 bytes bộ nhớ dữ liệu ngoài.
Port 3 là port có tác dụng kép trên các chân từ 10 đến 17 trên
8051 Khi không hoạt động xuất/nhập, các chân của port này có nhiều chức năng riêng, mỗi chân có chức năng riêng liên quan đến các đặc trưng cụ thể của 8051 như ở bảng sau:
P3.0 RxD Ngõ vào dữ liệu nối tiếp.
P3.1 TxD Ngõ xuất dữ liệu nối tiếp.
P3.2 INT0\ Ngõ vào ngắt cứng thứ 0
P3.3 INT1\ Ngõ vào ngắt cứng thứ 1
Trang 9P3.7 RD\ Tín hiệu đọc bộ nhớ dữ liệu ngoài.
Bảng 1.2: Chức năng của các chân của port 3.
Tín hiệu PSEN\ là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép truy xuất 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
Tín hiệu PSEN\ ở mức thấp trong thời gian Microcontroller 8051 tìm nạp 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 IR bên trong 8051 để giải mã lệnh Khi 8051 thi hành chương trình trong EPROM nội PSEN\ sẽ ở mức logic 1.
Khi 8051 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 đa hợp do đó phải tách các đường dữ liệu và địa chỉ Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải
đa hợp các đường địa chỉ và dữ liệu Khi port 0 được sử dụng làm bus địa chỉ/dữ liệu đa hợp, chân ALE xuất tín hiệu để chốt địa chỉ vào một thanh ghi ngoài trong suốt ½ đầu của chu kỳ 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 hợp lệ trong suốt ½ thứ 2 của chu kỳ bộ nhớ
Tín hiệu ALE có tần số bằng 1/6 lần tần số dao động trên chip và
có thể được dùng làm tín hiệu clock cho các phần khác của hệ thống
Ngoại lệ duy nhất là trong thời gian thực thi lệnh MOVX, một xung ALE sẽ bị bỏ qua Chân ALE được dùng làm ngõ vào xung lập trình cho EPROM trên chip đối với các phiên bản của 8051 có EPROM này
Tín hiệu vào EA\ ở chân 31 có thể ở mức logic1 (5v) hoặc mức logic 0 (GND) Nếu ở mức 1, 8051 thi hành chương trình trong ROM nội (chương trình nhỏ hơn 4 K) Nếu ở mức 0 (và chân PSEN\ cũng ở
Trang 10logic 0), 8051 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 21V khi lập trình cho EPROM trong 8051.
Ngõ vào RST ở chân 9 là ngõ vào Reset của 8051 Khi ngõ vào tín hiệu này đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống Khi cấp điện mạch tự động Reset.
Mạch dao động bên trong chip 8051 được kết nối với thạch anh bên ngoài ở hai chân XTAL1 và XTAL2 (chân 18 và 19) Các tụ ổn định cũng được yêu cầu như trên hình vẽ trong sơ đồ Tần số thạch anh thường sử dụng cho 8051 là 12Mhz.
Chip 8051 vận hành với nguồn đơn +5V Chân 40 của chip 8051 được nối lên nguồn 5V (V CC ) và chân 20 được nối với mass (V SS ).
3 Cấu trúc cổng xuất nhập:
Mạch bên trong của một chân port mô tả ngắn gọn trong hình
1.3 Việc ghi đến một chân của cổng sẽ nạp dữ liệu vào bộ chốt của
port Ngõ ra Q của bộ chốt điều khiển một transitor trường và
transistor này nối với chân của cổng Khả năng fanout của các port 1, 2 và 3 là 4 tải vi mạchTTL loại Schottky công suất thấp (LS), còn của port 0 là 8 tải loại LS Lưu ý là điện trở kéo lên sẽ không có ở port 0 (trừ khi port này làm nhiệm vụ của bus địa chỉ/dữ liệu đa hợp), do vậy một điện trở kéo lên bên ngoài phải được cần đến.
Chân Port Ghi
chốt
Đọc chốt
Đọc chân Bus nội của 8051
D Q
Chốt Port
Vcc
Trang 11Hình 2.3 Sơ đồ mạch bên trong của các port xuất nhập.
Việc đọc chốt được phân biệt làm hai, đó là đọc bộ chốt và đọc chân port Sự phân biệt này nhằm chống trường hợp chập mạch do quá tải gây nên Lệnh đọc một bit cổng sẽ đọc chân của cổng Trong trường hợp này, chốt phải được giữ ở mức cao, nếu không FET sẽ được kích bảo hoà và ngõ ra xuống mức thấp Tất cả các chốt của port đều được set khi reset hệ thống Như vậy các chân chốt đều được dùng như ngõ vào mà không cần phải set chốt Tuy nhiên, nếu đã xóa chốt không thể đọc dữ liệu đúng từ chân port trừ khi set chốt trở lại.
4 Tổ chức bộ nhớ:
8051 có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu Cả hai bộ nhớ chương trình và dữ liệu có thể chứa bên trong 8051,tuy nhiên ta có thể mở rộng bộ nhớ chương trình và bộ nhớ dữ liệu bằng cách sử dụng các chip nhớ bên ngoài với dung lượng tối đa là 64K cho bộ nhớ chương trình và 64K cho bộ nhớ dữ liệu.
Bộ nhớ nội trong chip 8051 bao gồm EPROM và RAM RAM trong 8051 bao gồm vùng RAM đa chức năng, vùng RAM với từng bit được định địa chỉ, các dãy thanh ghi và các thanh ghi chức năng đặc biệt SFR Hai đặc tính cần lưu ý là:
- Các thanh ghi và các port xuất/nhập đã được định địa chỉ theo kiểu ánh xạ bộ nhớ và được truy xuất như một vị trí nhớ trong bộ nhớ.
- Ngăn xếp thường trú trong Ram trên chip thay vì ở trong Ram ngoài như đối với các bộ vi xử lý khác.
FF
00
Bộ nhớ trên chip
FFFF
0000
Bộ nhớ chương trình
Được cho phép bởi PSEN
FFFF
0000
Bộ nhớ dữ liệu
Được cho phép bởi
RD & WR
Bộ nhớ ngoài
Trang 12Hình 2.4: Tóm tắt các vùng nhớ của chip 8031(không có ROM nội).
Như ta đã thấy ở hình vẽ trên RAM bên trong 8051 được phân chia như sau:
- Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
- RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH.
- RAM đa dụng từ 30H đến 7FH.
- Các thanh ghi chức năng đặc biệt từ 80H đến FFH.
Trang 13a Vùng RAM đa mục đích:
byte địa chỉ bit byte địa chỉ bit
F0 F7 F6 F5 F4 F3 F2 F1 F0 B RAM đa dụng
E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC
D0 D7 D6 D5 D4 D
3 D2 D1 D0 PSW
2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3 2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE 2B 5F 5E 5D 5C 5B 5A 59 58
23 1F 1E 1D 1C 1B 1A 19 18 8D không được địa chỉ hoá bit TH1
22 17 16 15 14 13 12 11 10 8C không được địa chỉ hoá bit TH0
21 0F 0E 0D 0C 0B 0A 09 08 8B không được địa chỉ hoá bit TL1
20 07 06 05 04 03 02 01 00 8A không được địa chỉ hoá bit TL0
10
07 Bank thanh ghi 0 81 không được địa chỉ hoá bit SP
00 (mặc định cho R0 -R7) 88 87 86 85 84 83 82 81 80 P0
Hình 2.5: Bộ nhớ dữ liệu trên chip 8051.
Trang 14Mặc dù trên hình vẽ cho thấy 80 byte đa dụng chiếm các địa chỉ từ 30H đến 7FH, 32 byte dưới từ 00H đến 2FH cũng có thể dùng với mục đích tương tự (mặc dù các địa chỉ này đã có mục đích khác).
Mọi địa chỉ trong vùng RAM đa dụng đều có thể truy xuất tự do dùng kiểu địa chỉ trực tiếp hoặc gián tiếp
RAM nội cũng có thể được truy xuất bằng địa chỉ gián tiếp thông qua R0 và R1 (chỉ hai thanh ghi này mà thôi)
b Vùng RAM định địa chỉ bit :
8051 chứa 210 bit được định địa chỉ, trong đó 128 bit chứa trong các byte ở địa chỉ từ 20H đến 2FH và các bit còn lại chứa trong nhóm thanh ghi chức năng đặc biệt.
Ý tưởng truy xuất từng bit bằng phần mềm là các đăëc tính mạnh của hầu hết các bộ vi điều khiển Các bit có thể được đặt, xóa, AND,
OR, … bằng một lệnh đơn Đa số các microcontroller xử lý đòi hỏi một chuỗi lệnh đọc-sửa- ghi để nhận được cùng một kết quả Ngoài ra các port cũng có thể truy xuất được từng bit.
8051 có 128 bit được định địa chỉ và có nhiều mục đích ở các byte có địa chỉ từ 20H -2FH Các địa chỉ này được truy xuất như là các byte hay các bit tuỳ thuộc vào lệnh được dùng
c Các dãy thanh ghi :
32 byte thấp nhất của bộ nhớ nội chứa các dãy thanh ghi Các lệnh của 8051 hổ trợ 8 thanh ghi từ R0 đến R7 thuộc dãy 0 Đây là dãy
mặc định sau khi reset hệ thống các thanh ghi này ở các địa chỉ từ 00H
đến 07H
Các lệnh dùng các thanh ghi từ R0 đến R7 thì sẽ ngắn hơn và nhanh hơn các lệnh tương ứng nhưng dùng địa chỉ trực tiếp Các giá trị dữ liệu được dùng thường xuyên nên dùng một trong các thanh ghi này Dãy thanh ghi tích cực có thể chuyển đổi bằng cách thay đổi các bit chọn dãy thanh ghi trong từ trạng thái chương trình PSW
Ý tưởng dùng “các dãy thanh ghi” cho phép “chuyển đổi ngữ cảnh” chương trình nhanh và hiệu qủa ở những nơi mà các phần riêng
Trang 15rẽõ của phần mềm sử dụng một tập thanh ghi riêng, độc lập với các phần khác của phần mềm.
5 Các thanh ghi có chức năng đặc biệt (SFR: Special Function
Register):
Các thanh ghi nội của 8051 được truy xuất rõ ràng bởi một tập lệnh Các thanh ghi trong 8051 được cấu hình như một phần của RAM trên chip vì vậy mỗi thanh ghi sẽ có một địa chỉ Cũng như R0 đến R7,
8051 có 21 thanh ghi có chức năng đặc biệt SFR ở vùng trên của RAM nội từ địa chỉ 80H đến FFH Dưới đây là một vài trong số các thanh ghi đặc biệt nói trên:
- Từ trạng thái chương trình (PSW: Program Status Word)
- Thanh ghi B.
- Con trỏ stack (Stack Pointer).
- Con trỏ dữ liệu DPTR (Data Pointer).
- Các thanh ghi Port (Port Register).
- Các thanh ghi định thời (Timer Register).
- Các thanh ghi của cổng nối tiếp (Serial Port Register).
- Các thanh ghi ngắt (Interrupt Register).
- Thanh ghi điều khiển nguồn PCON (Power Control Register).
II TẬP LỆNH CỦA HỌ 8051 :
- Các chương trình được cấu tạo từ nhiều lệnh, chúng được xây dựng logic, sự nối tiếp của các lệnh được nghĩ ra một cách hiệu quả và nhanh, kết quả của chương trình khả quan.
- Tập lệnh họ MSC-51 được sự kiểm tra của các kiểu định địa chỉ và các lệnh của chúng có các Opcode 8 bit Điều này cung cấp khả năng 2 8 = 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 bởi dữ liệu hoặc địa chỉ thêm vào Opcode Trong toàn bộ các lệnh có 139 lệnh 1 byte, 92 lệnh 2 byte và 24 lệnh 3 byte.
1 Các kiểu định địa chỉ (addressing mode):
Trang 16Các kiểu định địa chỉ là 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 8051 có 8 kiểu định địa chỉ được dùng như sau:
2 Các loại lệnh của 8051:
Các lệnh của 8051 được chia làm 5 nhóm:
- Nhóm lệnh số học.
- Nhóm lệnh logic.
- Nhóm lệnh di chuyển dữ liệu.
- Nhóm lệnh xử lý bit.
- Nhóm lệnh rẽ nhánh.
III HOẠT ĐỘNG ĐỊNH THỜI CỦA 8051:
1 Giới Thiệu:
Một bộ định thời là một chuỗi các flip flop với mỗi flip flop là một mạch chia 2, nó nhận tín hiệu vào là một nguồn xung clock, xung clock được đưa vào flip flop thứ nhất, flip flop này chia đôi tần số xung clock Ngõ ra của flip flop thứ nhất trở thành nguồn xung clock cho flip flop thứ hai, và nó cũng chia tần số xung clock này cho 2, cứ tiếp tục như vậy Vì mỗi tầng kế tiếp nhau đều chia cho 2, nên bộ định thời có n tầng phải chia tần số clock ngõ vào cho 2 n
Trang 17Ngõ ra của tầng cuối cùng là xung clock của flip flop báo tràn bộ
định thời, cờ này được kiểm tra bởi phần mềm hoặc tạo ra một ngắt Giá trị nhị phân trong các flip flop của bộ định thời là số đếm của các xung clock từ khi bộ định thời bắt đầu đếm
Các bộ định thời được sử dụng trong hầu hết các ứng dụng hướng điều khiển 8051 có 2 bộ định thời 16 bit, mỗi bộ có 4 chế độ hoạt động Các bộ định thời dùng để định thời trong một khoảng thời gian, đếm sự kiện và tạo tốc độ Baud cho Port nối tiếp của chip 8051.
Trong các ứng dụng định thời, bộ định thời được lập trình để tràn
ở một khoảng thời gian đều đặn và được set cờ tràn của bộ định thời Cờ được dùng để đồng bộ chương trình để thực hiện một công việc như là kiểm tra trạng thái của các ngõ vào hoặc gởi dữ liệu đến các ngõ ra Các ứng dụng khác có sử dụng việc ghi giờ đều đều của bộ định thời để
đo thời gian đã trôi qua hai trạng thái (ví dụ đo độ rộng xung).Việc đếm một sự kiện được dùng để xác định số lần xuất hiện của một sự kiện hơn là đo thời gian giữa các sự kiện.
Các bộ định thời của 8051 được truy xuất bởi việc dùng 6 thanh ghi chức năng đặc biệt : TCON, TMOD, TL0, TL1, TH0, TH1.
2 Thanh ghi chế độ định thời TMOD:
Thanh ghi TMOD gồm hai nhóm 4 bit là: 4 bit thấp đặt chế độ hoạt động cho bộ định thời 0 và 4 bit cao đặt chế độ hoạt động cho bộ định thời 1
TMOD không được định địa chỉ từng bit, nó được nạp một lần bởi phần mềm ở đầu chương trình để khởi động chế độ hoạt động của bộ định thời Sau đó bộ định thời có thể được dừng, khởi động lại bởi sự truy xuất các thanh ghi chức năng đặc biệt khác của bộ định thời.
3 Thanh ghi điều khiển định thời TCON:
Thanh ghi điều khiển bao gồm các bit trạng thái và các bit điều khiển bởi Timer 0 và Timer 1 Thanh ghi TCON có được định địa chỉ bit
4 Các chế độ định thời và cờ tràn:
Trang 188051 có 2ø bộ định thời là bộ định thời 0 và bộ định thời 1 Ta dùng ký hiệu TLx và Thx để chỉ 2 thanh ghi byte thấp và byte cao của bộ định thời 0 hoặc bộ định thời 1.
a Chế độ định thời 13-bit (chế độ 0) :
Chế độ 0 là chế độ định thời 13-bit, trong đó byte cao của bộ
định thời (Thx) được ghép cascade với 5 bit thấp của byte thấp của bộ
định thời (TLx) để tạo thành một bộ định thời 13 bit 3 bit cao của TLx không dùng.
b Chế độ định thời 16-bit (chế độ 1) :
Chế độ 1 là chế độ định thời 16 bit, tương tự như chế độ 0 ngoại trừ bộ định thời này hoạt động như một bộ định thời đầy đủ 16 bit, xung clock được dùng với sự kết hợp các thanh ghi cao và thấp (TLx, THx) Khi xung clock được nhận vào, bộ bộ định thời đếm lên: 0000H, 0001H, 0002H, , và một sự tràn sẽ xuất hiện khi có sự chuyển số đếm từ FFFH sang 0000H và sẽ set cờ tràn bằng 1, sau đó bộ định thời đếm tiếp Cờ tràn là bit TFx trong thanh ghi TCON mà nó sẽ được đọc hoặc ghi bởi phần mềm.
c Chế độ tự nạp lại 8-bit (chế độ 2):
Chế độ 2 là chế độ tự nạp lại 8 bit, byte thấp TLx của bộ định thời hoạt động định thời 8 bit trong khi byte cao THx của bộ định thời giữ giá trị nạp lại Khi bộ đếm tràn từ FFH sang 00H, không chỉ cờ tràn được set mà giá trị trong THx cũng được nạp vào TLx: bộ đếm được tiếp tục từ giá trị này lên đến sự chuyển trạng thái từ FFH sang 00H kế tiếp và cứ thế tiếp tục
d Chế độ định thời chia xẻ (chế độ 3):
Chế độ 3 là chế độ định thời chia xẻ và có hoạt động khác nhau cho từng bộ định thời Chế độ 3 cung cấp 1 bộ định thời 8-bit nữa là bộ định thời thứ ba của 8051 Khi bộ định thời 0 ở chế độ 3, bộ định thời 1 có thể hoạt động hoặc tắt bằng cách chuyển bộ định thời này ra khỏi chế độ 3 hoặc vào chế độ 3.Bộ định thời 1 có thể được dùng bởi Port
Trang 19nố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 ngắt.
5 Các nguồn xung clock định thời:
Có hai nguồn xung clock có thể đếm giờ là sự định giờ bên trong và sự đếm sự kiện bên ngoài Bit C/T trong TMOD cho phép chọn 1 trong 2 khi Timer được khởi động.
a Định thời một khoảng thời gian:
Nếu bit C/T = 0 thì hoạt động định thời được chọn và nguồn xung clock của bộ định thời do mạch dao động bên trong chip tạo ra Các thanh ghi TLx và THx đếm lên với tần số xung clock bằng 1/12 lần tần số dao động trên Chip
Các sự tràn bộ định thời xảy ra sau một con số cố định của những xung clock, nó phụ thuộc vào giá trị khởi tạo được nạp vào các thanh ghi THx và TLx.
b Sự đếm các sự kiện (Event Counting):
Nếu bit C/T = 1 thì bộ định thời được cung cấp xung clock từ nguồn bên ngoài Trong nhiều ứng dụng, nguồn bên ngoài này cung cấp cho bộ định thời 1 xung dựa trên sự xảy ra của sự kiện Bộ định thời bây giờ là sự đếm sự kiện Con số sự kiện được xác định trong phần mềm bởi việc đọc các thanh ghi định thời TLx/THx, bởi vì giá trị
16 bit trong các thanh này tăng lên cho mỗi sự kiện.
6 Khởi động dừng và điều khiển các bộ định thời:
Bit TRx trong thanh ghi có bit định vị TCON được điều khiển bởi phần mềm để bắt đầu hoặc kết thúc các bộ định thời Để bắêt đầu các bộ định thời ta set bit TRx và để kết thúc bộ định thời ta xoá TRx
Thêm phương pháp nữa để điều khiển các bộ định thời là dùng bit GATE trong thanh ghi TMOD và ngõ nhập bên ngoài INTx Điều này được dùng để đo các độ rộng xung
7 Khởi động và truy xuất các thanh ghi định thời:
Trang 20Các bộ định thời được khởi động 1 lần ở đầu chương trình để đặt chế độ hoạt động cho chúng Sau đó trong chương trình các bộ định thời được bắt đầu, được xóa, các thanh ghi định thời được đọc và cập nhật theo yêu cầu của từng ứng dụng cụ thể.
TMOD là thanh ghi đầu tiên được khởi gán, bởi vì đặt chế độ hoạt động cho các bộ định thời.
Cờ tràn TFx tự động được set bởi phần cứng sau mỗi sự tràn và sẽ được xóa bởi phần mềm Chính vì vậy ta có thể lập trình chờ sau mỗi lần tràn ta sẽ xóa cờ TFx và quay vòng lặp khởi gán cho TLx/THx để bộ định thời luôn luôn bắt đầu đếm từ giá trị khởi gán lên theo ý ta mong muốn.
IV HOẠT ĐỘNG CỦA PORT NỐI TIẾP:
1 Giới thiệu:
8051 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế độ trên một dãy tần số rộng Chức năng chủ yếu là thực hiện chuyển đổi song song sang nối tiếp với dữ liệu xuất và chuyển đổi nối tiếp sang song song với dữ liệu nhập.
Port nối tiếp cho hoạt động song công (full duplex: thu và phát đồng thời) và đệm thu (receiver buffering) 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 biệ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) ở điạ chỉ 99H nhận dữ liệu để thu hoặc phát Thanh ghi điều khiển port nối tiếp (SCON) ở điạ chỉ 98H là thanh ghi có điạ 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ế độ hoạt độ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 phần mềm hoặc có thể lập trình để tạo ngắt.
2 Thanh ghi điều khiển port nối tiếp:
Trang 21Thanh ghi điều khiển cổng nối tiếp dùng để thiết lập chế độ hoạt động
của port nối tiếp Việc thiết lập chế độ hoạt động cho port nối tiếp được thực hiện bằng cách ghi vào thanh ghi chế độ port nối tiếp SCON
ở địa chỉ 98H
3 Các chế độ hoạt động:
Port nối tiếp của 8051 có 4 chế độ hoạt động, các chế độ được chọn bằng cách ghi 1 hoặc 0 cho các bit SM0 và SM1 trong thanh ghi SCON Ba trong số các chế độ hoạt động cho phép truyền không đồng bộ, trong đố mỗi ký tự được thu hoặc phát sẽ cùng với một bit start và một bit stop tạo thành một khung Mỗi chế độ hoạt động sẽ được đề cập tóm tắt sau đây:
a Chế độ 0 (thanh ghi dịch 8 bit):
Ở chế độ 0 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 chip.
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.
Việc thu được khởi động khi cho phép bộ thu (REN) là 1 và bit ngắt thu (RI) là 0 Quy tắc 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 xoá RI để bắt đầu nhận dữ liệu Khi RI bị xoá, 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.
b Chế độ 1 (UART 8 bit với tốc độ baud thay đổi):
Ở chế độ 1, port nối tiếp của 8051 làm việc như một UART 8 bit 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 dữ 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 bit dữ liệu cuối cùng và bit stop
Trang 22Hoạ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ế độ 1, 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 8051 chế độ baud được đặt bằng tốc độ báo tràn của bộ định thời1.
c Chế độ 2 (UART 9 bit với tốc độ baud cố định):
Khi SM1 = 1 và SM0 = 0, cổng nối tiếp làm việc ở chế độ 2, như một UART 9bit có tốc độ baud cố định, 11 bit sẽ được phát hoặc thu:1bit start, 8 bit data, 1 bit data thứ 9 có thể được lập trình và 1 bit stop Khi phát bit thứ 9 là bất cứ gì đã được đưa vào TB8 trong SCON (có thể là bit Parity) Khi thu bit thứ 9 thu được sẽ ở trong RB8 Tốc độ baud ở chế độ 2 là 1/32 hoặc 1/16 tần số dao động trên chip.
d Chế độ 3 (UART 9 bit với tốc độ baud thay đổi):
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 Cái khác biệt là ở tốc độ baud (cố định trong chế độ 2, thay đổi trong chế độ 1 và 3) và ở số bit data (8 bit trong chế độ 1,9 trong chế độ 2 và 3).
4 Khởi động và truy xuất các thanh ghi cổng nối tiếp:
Cho Phép Thu:
Bit cho phép bộ thu (REN = Receiver Enable) trong thanh ghi SCON phải được đặt lên 1 bằng 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, bộ định thời…
Bit dữ liệu thứ 9:
Bit dữ liệu thứ 9 cần phát trong các chế độ 2 và 3 phải được nạp vào trong TB8 bằng phần mềm Bit dữ liệu thứ 9 thu được đặt ở RB8 Phần mềm có thể cần hoặc không cần bit dữ liệu thứ 9, phụ thuộc vào
Trang 23đặc tính kỹ thuật của thiết bị nối tiếp sử dụng (bit dữ liệu thứ 9 cũng đóng vai trò quan trọng trong truyền thông đa xử lý )
Thêm vào bit chẵn lẻ:
Thường sử dụng bit dữ liệu thứ 9 để làm bit chẵn lẻ cho một ký tự Như đã nhận xét ở chương trước, bit P trong từ trạng thái chương trình (PSW) được đặt lên 1 hoặc bị xoá bởi chu kỳ máy để thiết lập kiểm tra chẵn với 8 bit trong thanh tích lũy.
Các cờ ngắt:
Hai cờ ngắt thu và phát (RI và TI) trong SCON đóng một vai trò quan trọng trong truyền thông nối tiếp dùng 8051 Cả hai bit được đặt lên 1 bằng phần cứng, nhưng phải được xoá bằng phần mềm.
5 Tốc độ baud của port nối tiếp:
Như đã nói, tốc độ baud cố định ở các chế độ 0 và 2 Trong chế độ 0 nó luôn luôn là tần số dao động trên chip được chia cho 12 Thông thường thạch anh ấn định tần số dao động trên chip nhưng cũng có thể sử dụng nguồn xung nhịp khác.
Mặc nhiên sau khi reset hệ thống, tốc độ baud chế độ 2 là tần số bộ dao động 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 7 của PCON là bit SMOD Đặt bit SMOD lên 1 làm gấp đôi tốc độ baud trong các chế độ
1, 2 và 3 Trong chế độ 2, tốc độ baud có thể bị gấp đôi từ giá trị mặc nhiên của 1/64 tần số dao động (SMOD=0) đến 1/32 tần số dao động (SMOD=1)
Các tốc độ baud trong các chế độ 1 và 3 được xác định bằng tốc độ tràn của bộ định thời 1 Vì bộ định thời hoạt động ở tần số tương đối cao, tràn bộ định thời được chia thêm cho 32 (hoặc 16 nếu SMOD =1 ) trước khi cung cấp tốc độ xung nhịp cho port nối tiếp.
V HOẠT ĐỘNG NGẮT:
1 Giới thiệu:
Trang 24Ngắt là hoạt động ngừng tạm thời một chương trình này để thi hành một chương trình khác Các ngắt có một vai trò quan trọng trong thiết kế và khả năng thực thi của vi điều khiển Chúng cho phép hệ thống đáp ứng không cùng lúc tới một công việc và giải quyết một công việc đó trong khi một chương trình khác đang thực thi Một hệ thống được điều khiển bằng ngắt cho ảo giác là làm nhiều việc đồng thời.
Dĩ nhiên CPU không thể thực thi nhiều hơn một lệnh ở một thời điểm nhưng CPU có thể ngưng tạm thời việc thực thi một chương trình để thực thi một chương trình khác, rồi quay về chương trình đầu khi có yêu cầu ngắt Chương trình xủ lý một ngắt được gọi là chương trình phục vụ ngắt (ISR : Interrupt Sevice Reutine).
2 Tổ chức ngắt:
Có 5 nguyên nhân tạo ra ngắt đối với 8051: hai ngắt do bên
ngoài, hai ngắt do bộ định thời và một ngắt do port nối tiếp, tất cả các
nguồn ngắt bị cấm sau khi reset hệ thống và cho phép bởi phần mềm.
a 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 từng ngắt một qua thanh ghi chức năng đặt biệt định địa chỉ bit, thanh ghi cho phép ngắt IE (Interrupt Enable) ở địa chỉ 0A8H Cũng như các bit cho phép mỗi nguồn ngắt, có một bit cho phép hoặc cấm toàn bộ được xóa để cấm tất cả các ngắt hoặc được đặt lên 1 để cho phép tất cả các ngắt.
b Ưu tiên ngắt:
Mỗi nguồn ngắt đuợc lập trình riêng vào một trong hai mức ưu tiên qua thanh ghi chức năng đặc biệt được địa chỉ bit, thanh ghi ưu tiên ngắt IP (Interrupt priority) ở địa chỉ 0B8H.
Các ngắt ưu tiên được xóa sau khi reset hệ thống, thanh ghi IP sẽ mặc định tất cả các ngắt ở mức ưu tiên thấp.
c Chuỗi vòng:
Trang 25Nếu có hai ngắt có cùng mức ưu tiên xuất hiện đồng thời, chuỗi vòng cố định sẽ xác định ngắt nào được phục vụ trước Chuỗi vòng này sẽ là: ngắt ngoài 0, ngắt do bộ định thời 0, ngắt ngoài 1, ngắt do bộ định
thời 1, ngắt do port nối tiếp.
3 Xử lý ngắt:
Khi có một ngắt xuất hiện và được CPU chấp nhận, chương trình chính bị ngắt Những hoạt động sau xảy ra:
- Hoàn tất việc thực thi lệnh hiện hành.
- Bộ đếm chương trình PC được cất vào ngăn xếp.
- Trạng thái của ngắt hiện hành được lưu giữ lại.
- Các ngắt được chặn lại ở mức ngắt.
- Bộ đếm chương trình PC được nạp địa chỉ vector của trình phục vụ ngắt ISR.
- ISR được thực thi.
ISR thực thi và đáp ứng ngắt ISR hoàn tất bằng lệnh RET1 Điều này làm lấy lại giá trị cũ của PC từ ngăn xếp và lấy lại trạng thái ngắt cũ Chương trình lại tiếp tục thi hành tại nơi mà nó dừng.
a Các Vector ngắt:
Khi chấp nhận ngắt, giá trị được nạp vào PC được gọi là Vector ngắt Nó là địa chỉ bắt đầu của ISR cho nguồn tạo ngắt Các Vector ngắt được cho ở bảng sau:
Reset hệ thống
TI hoặc RI
0000H 0003H 000BH 0013H 001BH
0023H
Bảng 2.1: Các vector ngắt.
Trang 26Vector reset hệ thống (RST ở địa chỉ 0000H) nó giống như một ngắt Nó ngắt chương trình chính và tải vào PC một giá trị mới.
Khi chỉ đến một ngắt “cờ gây ngắt tự động bị xóa bởi phần cứng, trừ ra R1, T1 cho các ngắt cổng nối tiếp Vì có hai nguồn có thể có cho ngắt này, không thực tế để CPU xóa cờ ngắt này Các bit phải được kiểm tra trong ISR để xác định nguồn ngắt và cờ tạo ngắt sẽ được xóa bằng phần mềm.
b Các ngắt của 8051:
Các ngắt do bộ định thời:
Các ngắt do bộ định thời xảy ra khi các thanh ghi định thời (TLx / THx) tràn và set cờ tràn TFx lên 1 Các cờ tràn TFx không bị xóa bằng phần mềm do khi các ngắt được cho phép, TFx tự động được xóa bằng phần cứng khi CPU trỏ tới trình phục vụ ngắt.
Các ngắt cổng nối tiếp:
Ngắt cổng nối tiếp xảy ra khi hoặc cờ ngắt phát TI hoặc cờ ngắt thu RI được đặt lên 1 Ngắt phát xảy ra khi một ký tự đã được nhận xong và đang đợi trong SBUF để được đọc.
Cờ gây ra ngắt cổng nối tiếp không bị xóa bằng phần cứng khi CPU trỏ tới trình phục vụ ngắt do có hai nguồn ngắt cổng nối tiếp TI và RI Nguồn ngắt phải được xác định trong ISR và cờ tạo ngắt sẽ được xóa bằng phần mềm.
Các ngắt ngoài:
Các ngắt ngoài xảy ra khi có một mức thấp hoặc cạnh xuống trên chân INT0 hoặc INT1 của vi điều khiển
Các cờ tạo ngắt này là các bit IE0 và IE1 trong thanh ghi TCON Khi quyền điều khiển đã trỏ tới trình phục vụ ngắt, cờ tạo ra ngắt chỉ được xóa nếu ngắt được tích cực bằng cạnh xuống Nếu ngắt được tích
Trang 27cực theo mức, thì nguồn yêu cầu ngắt bên ngoài sẽ điều khiển mức của cờ thay cho phần cứng.
I VI MẠCH GIAO TIẾP NGOẠI VI 8255A:
1 Cấu trúc của 8255A:
8255A là IC ngoại vi được chế tạo theo công nghệ LSI dùng để giao tiếp song song giữa vi xử lý và thiết bị bên ngoài.
Trang 28Mạch 8255A thường được gọi là mạch phối ghép vào/ra lập trình được (Programmable Peripheral Interface – PPI) Do khả năng mềm dẻo trong trong các ứng dụng thực tế nó là mạch phối ghép được dùng rất phổ biến cho các hệ vi xử lý 8 bit – 16 bit.
a) Sơ đồ khối của 8255A:
Bộ đệm truyền dữ liệu:
Bộ đệm 8 bits, 2 chiều, 3 trạng thái dùng để giao tiếp 8255 với CPU Số liệu được phát hay nhận bởi bộ đệm khi thực hiện lệnh IN, OUT bởi CPU Các từ điều khiển cũng truyền qua dữ kiện.
Phần kiểm soát đọc ghi:
DATA BUS BUFFER
READ WRITE CONTROL LOGIC
GROUP
A CONTROL
GROUP B CONTROL
GROUP A PORT C UPPER
GROUP B PORT C LOWER
GROUP A PORT A
GROUP B PORT B
+5V GND
I/O PA7 – PA0
I/O PC7 – PC4
I/O PC3 – PC0
I/O PB7 – PB0
Trang 29Chức năng của khối này là kiểm soát tất cả các sự truyền đạt bên trong và bên ngoài của từ điều khiển và dữ kiện Nó nhận ngõ vào từ tuyến địa chỉ và sự điều khiển của CPU, phát ra các lệnh cần thiết cho cả hai nhóm A và B.
CS\ tác động mức thấp cho phép truyền tin giữa 8255 và CPU RD\ tác động mức thấp cho phép 8255 gởi dữ kiện đến CPU trên tuyến dữ kiện chủ yếu là cho phép CPU đọc dữ kiện từ 8255.
WR\ tác động mức thấp cho phép CPU gởi từ điều khiển hay dữ kiện ra 8255.
RESET tác động mức cao cho phép xóa các thanh ghi bên trong gồm thanh ghi điều khiển và các cổng A, B, C ở mode nhận.
A 0 , A 1 : (Address bus) hai đường địa chỉ xác định P A , P B , P C và từ điều khiển CW.
0 0 1 1
0 1 0 1
PA PB PC CW
Điều khiển nhóm A và B:
Cấu hình hoạt động của mỗi nhóm được lập trình bởi phần mềm, chủ yếu là CPU xuất phát từ điều khiển đến 8255 Từ điều khiển gồm các thông tin như chế độ (mode), bit set, bit reset, v.v … sẽ khởi động cấu hình hoạt động của 8255 Thanh ghi từ điều khiển chỉ có thể viết vào mà không đọc ra.
Các cổng A, B, C:
8255 gồm 3 cổng A, B và C Mỗi cổng gồm 8 bits Các cổng này có thể được lập trình bởi phần mềm để có thể hoạt động ở chế độ thích hợp.
Trang 30Cổng A: gồm bộ đệm, chốt ngõ ra 8 bits và chốt ngõ vào 8 bits Cổng B: gồm bộ đệm, chốt ngõ ra 8 bits và chốt ngõ vào 8 bits Cổng C: đệm và chốt ngõ ra 8 bits và đệm 8 bits ngõ vào (không chốt).
Cổng C có thể chia làm 2 phần, mỗi phần 4 bits cho điều khiển mode Mỗi phần được dùng kết hợp với cửa A hay B tạo nên các tín hiệu điều khiển.
b) Sơ đồ chân và sơ đồ Logic:
c) Tên các chân:
PC3-PC0 PB7-PB0 D7-D0
Hình 3.3 : Sơ đồ Logic 8255A
RESET
A 0
A 1
Trang 31RESET Ngõ vào reset
WR\ Ghi số liệu từ 8255.
RD\ Đọc số liệu từ 8255.
V CC Chân nối lên nguồn 5V.
2 Các mode hoạt động:
8255 có 4 mode hoạt động:
a Mode Bit Set/Reset:
Mode bit set/reset có thể thiết lập hay xoá bit cho cổng PC, thường dùng tạo xung chốt số liệu Mỗi lần xuất ra một từ điều khiển đến IC 8255A với D7 = 0, chỉ tác động đến 1 bit của cổng C.
e
Cấu trúc từ điều khiển CW trong trường hợp 8255 làm việc ở mode 0, 1 hoặc 2 được biểu diễn như sau:
D7 D6 D5 D4 D3 D2 D1 D0
0XXX
CW
Bit selectPC7PC6PC5PC4PC3PC2PC1PC01010101011
00110011110000 0: xoá.
1: thiết lập.
Trang 32b Mode 0 (Vào/ra số liệu cơ bản):
Không có “bắt tay”, dữ kiện được ghi và đọc một cách đơn giản đến phức tạp hay từ 1 cổng đã chỉ ra Các đặc tính cơ bản ở mode 0:
- Hai cổng 8 bits và 2 cổng 4 bits
- Bất kỳ cửa nào cũng có thể là ra hay vào
- Ngõ ra được chốt
- Ngõ vào không chốt
- Cho phép 16 dạng vào/ra ở mode
c Mode 1 (Vào/ra số liệu 1 chiều có bắt tay):
Ở mode 1, cổng A và B dùng những đường ở cổng C để phát hay nhận các tín hiệu bắt tay, số liệu vào hay ra đều được chốt.
d Mode 2 : (Vào/ra số liệu 2 chiều có tín hiệu bắt tay):
Các đặc tính cơ bản của mode 2:
0 : output
1 : input
00 : mode 0
01 : mode 1 1X : mode 2 Bit set/reset flag
1 - active
Trang 33- Chỉ dùng cho cổng A.
- 1 cổng 2 chiều 8 bits (cổng A) và một cổng điều khiển 5 bits (cổng C) cho cổng A.
- Cả vào/ra đều có chốt.
Khi reset, tất cả các cổng được thiết lập ở chế độ nhập (input), tức là sau khi reset IC 8255A có thể duy trì ở chế độ nhập mà không
cần khởi động gì thêm Trong khi thực hiện chương trình hệ thống, có thể chọn bất kỳ mode nào bằng cách xuất đến IC 8255A từ điều khiển Điều này cho phép chỉ cần một IC 8255A mà có thể phục vụ nhiều kiểu thiết bị ngoại vi.
Các chế độ cổng A và B có thể định nghĩa riêng biệt Còn cổng C được chia làm hai phần cho hai nhóm tùy yêu cầu định nghĩa chế độ cổng A và B Trong thanh ghi từ điều khiển bit cao nhất D 7 = 0 xác định mode bit set/reset, D 7 = 1 xác định mode 0, 1, 2 cho 8255.
Không có lệnh đặc biệt để đọc thông tin trạng thái từ điều khiển
CW Do đó, phép đọc bình thường cổng C được dùng để kiểm tra trạng thái của IC 8255A.
II KHẢO SÁT BỘ NHỚ EPROM 2764:
Các bộ nhớ EPROM thông dụng tồn tại dưới nhiều kiểu mạch khác nhau Họ 27XX có các loại vi mạch sau:2708 (1Kx8), 2716 (2Kx8),
2732 (4Kx8), 2764 (8Kx8) … với T ac = 250_ 450 ns tuỳ theo loại EPROM cụ thể Số đường địa chỉ thay đổi tùy thuộc vào dung lượng của mỗi loại EPROM, số đường dữ liệu là 8 Hoạt động của họ 27XX là tương tự nhau, ở đây do thời lượng có hạn nên chỉ khảo sát một EPROM được sử dụng trong mạch là EPROM 2764.
Trang 341 Sơ đồ chân:
Trong đó: A0 – A12 : 13 đường địa chỉ vào.
O0 _ O7 : 8 đường dữ liệu.
OE\ : Output Enable.
CE\ : Chip Enable
PGM\ : Nạp chương trình.
EPROM 2764 có 13 đường địa chỉ nên có dung lượng là 8 KB và 8 đường dữ liệu ngõ vào cung cấp Vpp và Vcc Ngõ vào Vcc luôn được nối lên 5v khi EPROM đang đọc dữ liệu và nối với 21v khi nạp trình cho EPROM.
Thời gian truy xuất là T ac = 150 ns
Hai ngõ vào điều khiển CE\ và OE\:
+ OE\ : Được dùng để điều khiển bộ đệm (Output Buffer) để cho phép dữ liệu của EPROM có được xuất ra ngoài hay không.
+ CE\ : Là ngõ vào cho phép hai chức năng:
Khi hoạt động bình thường CE\ là tín hiệu cho phép, để đọc dữ liệu từ EPROM CE\ phải ở mức logic 0 ,để mạch điện bên ngoài lựa chọn dữ liệu và chuyển nó đến Output Buffer kết hợp với tín hiệu cho phép OE\ ở mức logic 0 thì dữ liệu xuất hiện ở các ngõ ra D 7 – D 0
Hình 3.4: Sơ đồ chân EPROM 2764.
Trang 35Khi CE\ =1 thì EPROM ở trạng thái chờ (Standby)
Công suất tiêu thụ ở trạng thái đọc dữ liệu là 525 mW, ở trạng thái chờ là 132 mW.
2 Bảng trạng thái làm việc của EPROM 2764:
III KHẢO SÁT BỘ NHỚ SRAM 6264:
Ram là bộ nhớ truy xuất ngẫu nhiên, có nghĩa là bất kì ô nhớ nào cũng dễ dàng truy xuất như những ô nhớ khác Bộ nhớ Ram có nhược điểm là dữ liệu lưu trữ trong Ram sẽ mất khi mất điện Nhưng lại có ưu điểm là có thể đọc, ghi nhanh chóng.
SRAM 6264 là loại RAM hoạt động dựa trên nguyên tắc hoạt động của flip flop loại D, dữ liệu vào tồn tại ở một trong hai trạng thái logic của mạch số SRAM 6264 có dung lượng 8 KB dùng để lưu trữ chương trình và dữ liệu.
1 Sơ đồ chân:
Hình 3.5: Sơ đồ chân SRAM 6264.
Trang 36Trong đó: A 0 – A 12 :13 đường địa chỉ vào
WR\ : cho phép ghi ở mức logic 0 OE\ : cho phép xuất ở mức logic 0
CS \ : cho phép chọn vi mạch hoạt động ( mức 0 )
NC : No Conection Bộ nhớ SRAM có khả năng lưu trữ thông tin trong nó chừng nào còn được cấp điện.
Thời gian truy xuất T ac = 250 ns.
2 Bảng trạng thái làm việc của SRAM 6264:
IV KHẢO SÁT IC GIẢI MÃ 74LS138 :
Khi ta muốn có nhiều đầu ra chọn vỏ từ bộ giải mã mà vẫn dùng các mạch logic đơn giản thì thiết kế sẽ trở nên rất cồng kềnh do số lượng các mạch cửa tăng lên Trong trường hợp như vậy ta thường dùng các mạch giải mã có sẵn Một trong các mạch giải mã hay được sử dụng là 74LS138 ,mạch giải mã 3 ra 8 đường.
1 Sơ đồ chân:
Hình 3.6: Sơ đồ chân IC LS74138.
Trang 37Trong đó: Y 0- Y 7 : 8 đầu ra chọn mạch giải mã.
A, B, C :Ba đầu vào chọn.
E 1 \, E 2 \, E 3 : Đầu vào cho phép.
2 Bảng trạng thái làm việc của 74138:
Các đầu vào
Cho phép Điều khiển
Trong đó X là giá trị không quan tâm.
V KHẢO SÁT VI MẠCH GIAO TIẾP MAX232:
Sơ đồ chân :
C1+
V+
C2+
C1- V- T2OUT R2IN
C2-Vcc GND T1OUT R1IN R1OUT T1IN T2IN R2OUT
1 2 3 4 5 6 7 8
16 15 14 13 12 11 10 9
MAX232
Trang 38Hình 3.7 : Sơ đồ chân MAX232.
Vi mạch MAX232 của hãng MAXIM là vi mạch chuyên dùng trong giao tiếp máy tính Chúng có nhiệm vụ chuyển đổi mức TTL ở lối vào thành tín hiệu có mức điện áp +12V/-12V ở phía truyền và các mức +3 +15V hoặc –3 -15V ở phía nhận.
Vi mạch MAX232 có hai bộ đệm và hai bộ nhận Đường dẫn điều khiển lối vào CTS, điều khiển việc xuất ra dữ liệu ở cổng nối tiếp Khi cần thiết, được nối với chân 9 của vi mạch MAX232 Còn chân RST (chân 10 của vi mạch MAX232) nối với đường dẫn bắt tay để điều khiển quá trình nhận Thường thì các đường dẫn bắt tay được nối với cổng nối tiếp qua các cầu nối, để khi không dùng đến nữa thì có thể hở mạch các cầu này Cách truyền dữ liệu đơn giản nhất là chỉ dùng ba đường dẫn TxD, RxD và GND.
Trang 39Chương IV THIẾT KẾ VÀ THI CÔNG.
I CẤU TRÚC PHẦN CỨNG KIT VI ĐIỀU KHIỂN:
1 Sơ đồ khối :
Hình 4.1: Sơ đồ khối kit vi điều khiển.
Y3 74LS138
D0 D7 EPROM
2764
CE
D0 D7
A0A18255A
LATCH
74LS373
Trang 402 Sơ đồ chi tiết :