Chọn bộ vi xử lý: Từ yêu cầu dùng VXL 8 bit ta dự kiến dùng các chip vi điều khiển thuộc họ MCS-51 của Intel, mà cụ thể ở đây là dùng chip 89C51 vì những lý do sau:+ AT89C51 thuộc họ MCS
Trang 1Đề tàI THIếT Kế Hệ VI Xử Lý 8 BIT
YÊU CầU
Phần cứng :
1 Bộ vi xử lý 8 bit (8085, 89C51 ….)
2 Bộ nhớ chơng trình ROM : 8KB từ địa chỉ 0000H
3 Bộ nhớ dữ liệu RAM 8kB có địa chỉ tuỳ chọn
4 Cổng vào tơng tự 8 kênh nhận tín hiệu nhiệt độ từ 0 – 10Vtơng ứng vói nhiệt độ từ 0 – 200 độ C
2 Đọc tín hiệu từ 8 kênh đo l trữ trong vùng nhớ RAM
3 Sau mỗi lần đọc tính giá trị trung bình của nhiệt độ và gửi kết quả ra cổng hiển thị bằng LCD
4 Chơng trinh dừng lại báo động bằng còi nếu xảy ra một số
điều kiện sau:
- Giá trị trung bình < hoặc > giá trị min hoặc max tơng ứng cho trớc.Các giá trị max & min này đợc đặt ở trong 2 ô nhớ RAM
- Có 4 kênh đo vợt quá hoặc nhỏ hơn giá trị giới hạn cho phép so với giá trị trung bình
Trang 2hỗ trợ cho yêu cầu thiết kế thì phần mềm càng đợc giảm bớt và dễ dàng thực hiện nhng lại đẩy cao giá thành chi phí cho phần cứng, cũng nh chi phí bảo trì Ngợc lại với một phần cứng tối thiểu lại yêu cầu một chơng trình phần mềm phức tạp hơn, hoàn thiện hơn; nhng lại cho phép bảo trì hệ thống dễ dàng hơn cũng nh việc phát triển tính năng của hệ thống từ đó có thể đa ra giá cạnh tranh đợc.
Từ yêu cầu và nhận định trên ta có những định hớng sơ bộ cho thiết kế
nh sau:
1 Chọn bộ vi xử lý:
Từ yêu cầu dùng VXL 8 bit ta dự kiến dùng các chip vi điều khiển thuộc
họ MCS-51 của Intel, mà cụ thể ở đây là dùng chip 89C51 vì những lý do sau:+ AT89C51 thuộc họ MCS-51, là chip vi điều khiển 8 bít đơn chíp CMOS có hiệu suất cao, công suất nguồn tiêu thụ thấp và có 4 Kb bộ nhớ ROM Flash xoá đợc lập trình đợc Chíp này đợc sản xuất dựa theo công nghệ
bộ nhớ không mất nội dung có độ tích hợp cao của Atmael
+ AT89C51 có các đặc trng chuẩn sau: 4Kb Flash, 128 byte RAM, 32 ờng xuất nhập, bộ định thời / đếm 16 bit, một cấu trúc ngắn hai mức u tiên và
đ-5 nguyên nhân ngắt, một port nối tiếp song song công, mạch dao động và mạch dao động và mạch tạo xung trên chíp
Vì những lý do trên mà việc lựa chọn vi điều khiển 89C51 là một giải pháp hoàn toàn phù hợp cho thiết kế
2 Tổ chức ngoại vi:
+ Xử lý tín hiệu vào ta dùng thiết bị chuyển đổi tơng tự/ số (ADC) có 8 kênh vào tơng tự kết nối với 8 tín hiệu đo nhiệt độ từ 0 ữ 10V tơng ứng với nhiệt độ từ 0oữ 200oC
+ Xử lý việc hiển thị kết quả nhiệt độ trung bình ta dùng 3 LED 7 thanh
để hiển thị tơng ứng với các nhiệt độ trong dải 0 ữ 2000C
+ Tín hiệu cho phép chạy đợc xử lý bằng cách dùng một nút ấn Reset hệ thống
Trang 3+ Tín hiệu báo động đợc xử lý bằng một còi báo động kết nối với một cổng bất kỳ phục vụ cho vào/ra.
+ Nếu có yêu cầu dùng các phím để định các mode hoạt động, cũng nh
đặt lại giá trị MAX và MIN thì bàn phím cũng phải đợc kết nối với các cổng giao tiếp vào/ra (ở đây yêu cầu dùng 8255)
Tất cả các thiết bị phải đợc kết nối với nhau thông qua các bus cần thiết gồm bus dữ liệu, bus địa chỉ và bus điều khiển
Sơ đồ khối cho thiết kế phần cứng của hệ thống nh sau:
VXL
89C51
Khối vào tương tự
8 kênh Khối hiển thị
Control Bus
Address Bus
Mạch giao tiếp8255
Data Bus
Trang 4Port 0 là port xuất nhập 8 bit hai chiều cực D hở.
Port 0 còn đợc cấu hình làm bus địa chỉ ( byte thấp ) và bus dữ liệu đa hợp trong khi truy xuất bộ nhớ dữ liệu ngoài vcà bộ nhỡ ch[ng trình ngoài
Port 0 cũng nhận các byte mã trong khi lập trình cho Flash và các byte mã trong khi kiểm tra chơng trình
Port 1
Port 1 là port xuất nhập 8 bít
Port 1 cũng là byte địa chỉ thấp trong thừi gian lập trình cho Flash và kiểm tra chơng trình
Port 2
Port 2 là port xuất nhập 8 bit hai chiều
Port 2 tạo ra byte cao của địa chỉ trong thời gian tìm nạp lệnh từ bộ nhớ chơng trình ngoài và trong thời gian truy xuất bộ nhớ dữ liệu ngoài sử dụng
Trang 5Port 3 cũng còn đợc dùng làm chức năng khác của AT89C51 các chức năng đợc liệt kê nh sau:
Chân của port Chức năng
P3.0 RxD ( ngõ vào của port nối tiếp )
P3.1 TxD ( ngõ ra của port nối tiếp )
P3.2 INT 0 ( ngõ và ngắt ngoài 0 )
P3.3 INT 1 ( ngõ vào ngắn ngoài 1 )
P3.4 TO ( ngõ vào bên ngoài của bộ định thời 0 )
P3.5 T1 ( ngõ vào bên ngoài của bộ định thời 1 )
P3.6 RW( điều khiển bộ nhớ dữ liệu ngoài )
P3.7 RD ( điều khiển đọc bộ nhớ dữ liệu ngoài )
Port 3 cũng nhận một vài tín hiệu điều khiển cho việc lập trình Flash và
điều khiển chơng trình
RST
Ngõ vào reset
ALE/PROG xung của ngõ ra cho phép chốt địa chỉ ALE cho phép chốt byte thấp của địa chỉ trong thời gian truy xuất bộ nhớ ngoài Chân này cũng đ-
ợc dùng làm ngõ vào xung lập trình ( PROG ) trong thời gian lập trình Flash
Chân EA nối với VCC để thực hiện chơng trình bên trong chíp
Trang 61.2.1 Cấu trúc chung của bộ nhớ:
Tất cả các vi điều khiển thuộc họ MCS-51 đều phân chia bộ nhớ thành
hai vùng địa chỉ cho bộ nhớ dữ liệu và bộ nhớ chơng trình Sự phân chia logic
giữa bộ nhớ dữ liệu và bộ nhớ chơng trình cho phép truy nhập bộ nhớ dữ liệu
bằng 8 bit địa chỉ giúp cho việc lu trữ và thao tác dữ liệu nhanh hơn.Tuy nhiên,
chúng ta có thể sử dụng địa chỉ bộ nhớ dữ liệu 16 bit thông qua thanh ghi
DPTR
Bộ nhớ chơng trình là loại bộ nhớ chỉ cho phép đọc, không cho phép
ghi Một số vi điều khiển đợc tích hợp sẵn bộ nhớ chơng trình bên trong với
dung lợng khoảng 4kbyte hay 8 kbyte, số còn lại phải sử dụng bộ chơng trình
mở rộng mà quá trình truy nhập đợc thực hiện thông qua sự điều khiển bằng
tín hiệu PSEN (Progam Strobe Enable)
Tuy nhiên, vi điều khiển 8051 cho phép ta sử dụng đến 64kbyte bộ nhớ
chơng trình bằng cách sử dụng cả bộ nhớ chơng trình bên trong và bên ngoài
Bộ nhớ số liệu chiếm giữ vùng địa chỉ phân chia của bộ nhớ chơng
trình Dung lợng của bộ nhớ dữ liệu có thể mở rộng lên tới 64 kbyte Trong
quá trình truy nhập bộ nhớ số liệu, CPU phát ra các tín hiệu đọc và tín hiệu
viết số liệu thông qua các chân RD và WR
Chúng ta có thể kết hợp bộ nhớ chơng trình mở rộng với bộ nhớ số liệu
mở rộng bằng cách cho hai tín hiệu RD và PSEN qua một cổng logic AND, lối
ra của cổng AND này sẽ tạo tín hiệu đọc cho bộ nhớ mở rộng
1.2.2 Bộ nhớ chơng trình:
Sau khi Reset, CPU bắt đầu thực hiện chơng trình từ địa chỉ 0000H
Vùng đầu của bộ nhớ chơng trình là vùng chứa các vector ngắt, mỗi ngắt đợc
phân chia một vùng địa chỉ cố định trong trong bộ nhớ chơng trình Khi xuất
00H 0000H
ộ nhớ
Số liệu
Bộ nhớ mở
rộng
Bộ nhớ
m ở
|EA=0
Bộ nhớ ngoài
FFFFH
Hình 2.3: Cấu trúc bộ nhớ của họ MCS-51.
Trang 7hiện ngắt, CPU sẽ nhảy tới địa chỉ này, đây cũng là địa chỉ đầu của chơng trình con phục vụ ngắt Các vector ngắt cách nhau 8 byte, vì vậy nếu chơng trình con phục vụ ngắt quá dài (>8 byte) thì tại vector ngắt ta phải đặt một lệnh nhảy không điều kiện tới vùng địa chỉ khác chứa chơng trình con phục vụ ngắt.
1.2.3 Bộ nhớ số liệu:
Phía bên phải của Hình 2.3 biểu diễn không gian bộ nhớ dữ liệu của
MCS-51 Chúng ta có thể sử dụng tới 64 Kbyte bộ nhớ số liệu ngoại vi Độ rộng bus địa chỉ của bộ nhớ số liệu ngoài có thể là 8 bit hoặc 16 bit Bus địa chỉ rộng 8 bit thờng đợc sử dụng để liên kết với một hoặc nhiều đờng vào ra khác để định địa chỉ cho RAM theo trang Trong trờng hợp bus địa chỉ rộng 16 bit, cổng P2 sẽ phát ra 8 bit địa chỉ cao còn cổng P1 sẽ phát ra 8 bit địa chỉ thấp Bằng cách này, ta có thể truy nhập trực tiếp lên bộ nhớ dữ liệu ngoài với
độ lớn tối đa là 64 Kbyte
Bộ nhớ số liệu trong đợc chia ra làm 3 vùng:
+128 byte cao
+128 byte thấp
+Vùng dành cho các thanh ghi chức năng đặc biệt (SFR)
Địa chỉ của bộ nhớ số liệu trong luôn là 8 bit, và có thể quản lý đợc
256 byte bộ nhớ
2 Tổ chức bộ nhớ (Memory Map):
Từ cấu trúc của vi điều khiển 89C51 giới thiệu ở chơng I và yêu cầu thiết
kế ta tiến hành phân bổ các vùng nhớ nh sau:
Bộ nhớ chơng trình 8K ROM chia làm hai vùng:
ROM trong (On-chip) có địa chỉ vật lý: 0000H ữ 0FFFH
Bộ nhớ dữ liệu đợc mở rộng thêm 8K RAM ngoài, với địa chỉ vật lý: 2000H ữ 3FFFH
Mạch ghép nối vào/ ra sử dụng IC8255 với địa chỉ của từng cấu hình
nh sau:
Địa chỉ cổng PA: 4000H
Địa chỉ cổng PB: 4001H
Địa chỉ cổng PC: 4002H
Địa chỉ của từ điều khiển PSW: 4003H
Địa chỉ của ADC08098 kênh vào tơng tự: 6000H ữ 6007H
3 Khối hiển thị :
Khối hiển thị gồm 8 LED 7 đoạn đợc tổ chức theo kiểu sáng luân phiên 2.5 ms một lần LED sáng đợc chọn bởi 89C51 qua đờng điều khiển từ cổng P0.0 -> P0.3 Dữ liệu đợc hiển thị dới dạng mã 7 thanh cũng đợc 89C51 gửi tới
Trang 8LED qua đờng data Để phù hợp giữa số liệu đa ra cổng của 8255 (ở dạng BCD) với số liệu hiển thị ra LED 7 đoạn, ta sử dụng mạch phần cứng Vì vậy trong khối hiển thị ta sử dụng vi mạch SN7447 để giải mã số BCD ra mã 7 thanh và để điều khiển bộ đèn hiển thị.
4 Khối các thiết bị giao tiếp/ghép nối.
Cổng vào ra tơng tự/số dùng ADC0809 Số liệu vào tơng tự từ 8 cảm biến nhiệt độ sẽ đợc kết nối vào 8 cổng vào của ADC, ADC đợc điều khiển bởi VXL89C51 thực hiện việc chuyển đổi số liệu sang dạng số và lu trữ vào một vùng nào đó trong RAM trong
Cổng vào/ ra số dùng vi mạch PPI 8255 có khả năng lập trình thực hiện quá trình phối hợp trao đổi dữ liệu; cụ thể ở đây là số liệu vào giữa ADC với VXL và số liệu từ VXL ra LED
Giới thiệu linh kiện và tổ chức phối ghép.
1 Thiết kế bộ nhớ:
Xem xét cấu trúc của 89C51 và yêu cầu cần 8K cho nhớ chơng trình ta thiết kế thêm vùng nhớ chơng trình dùng thêm 8Kb ROM đặt ở ngoài Đối với yêu cầu cho nhớ dữ liệu, vì 89C51 đã có 128 bytes RAM trong và yêu cầu cần thiết kế bộ nhớ dữ liệu là 4Kb nên để dễ dàng cho thiết kế ta sử dụng thêm 8Kb RAM ngoài để mở rộng bộ nhớ dữ liệu cho hệ thống
Bộ nhớ ROM ngoài
Thực ra thì ta có thể dùng bộ nhớ ROM ngoài là các chíp nhớ EPROM
có dung lợng 4K hoặc 8K có bán trên thị trờng để mở rộng bộ nhớ.Tuy nhiên,
để cho đơn giản ta lựa chọn giải pháp là dùng bộ nhớ ROM 8k trên chíp vi
điều khiển 89S51.Nh vậy sẽ đơn giản hơn rất nhiều cho thiết kế mà vẫn phù hợp với nội dung phạm vi cho phép của chơng trình
Bộ nhớ RAM ngoài
Đối với RAM ngoài ta sử dụng loại SRAM vi mạch dùng trong thiết kế
là 6264 Cũng có 13 đờng địa chỉ 8 đờng dữ liệu Nó có địa chỉ 2000ữ3FFF,
địa chỉ này đợc chọn ra trong vùng địa chỉ của vi điều khiển bởi chân /CS2 của giải mã địa chỉ Ngoài ra còn có đờng chọn vỏ khác là /CS2 đợc nối tích cực và
có hai đờngtín hiệu yêu cầu đọc viết là /OE, /WE
• Sơ đồ chân của RAM 6264:
Trang 92 Vi mạch ADC0809:
Bộ ADC 0809 là một thiết bị CMOS tích hợp với một bộ chuyển
đổi tơng sang số 8 bit, bộ chọn kênh và mật bộ logic điều khiển tơng thích Bộ chuyển đổi tơng tự số này sử dụng phơng pháp chuyển đổi xấp xỉ Bộ chọn kênh có thể chọn ra kênh cần chuyển đổi bằng 3 chân chọn địa chỉ Thiết bị này loại trừ khả năng cần thiết điều chỉnh điểm zero bên ngoài và khả năng
điều chỉnh tỉ số làm cho ADC đễ dàng giao tiếp với các bộ vi xử lý
Các đặc điểm cơ bản của ADC 0809
- Nguồn nuôi đơn 5 V, hiệu suất cao.±
- Dải tín hiệu lối vào tơng tự 5V khi nguồn nuôi là +5V Có thể mở rộng thang đo bằng các giải pháp kỹ thuật cho từng mạch cụ thể
- Dễ dàng giao tiếp với vi xử lý vì đầu ra có bộ đệm 3 trạng thái nên
có thể ghép trực tiếp vào kênh dữ liệu của hệ VXL
- ALE cho phép chốt số liệu đầu vào
- Start: xung cho phép bắt đầu chuyển đổi
- Clk:đầu vào xung clock
- Ref(+): điện áp vào chuẩn +5v
- Ref(-): điện áp vào chuẩn 0
- Vcc: nguồn cung cấp
b Cấu trúc bên trong của ADC 0809
Trang 10Cấu trúc bên trong của ADC0809 đợc thể hiện ở hình vẽ dới:
Hoạt động chuyển đổi:
Các bit địa chỉ ở lối vào A,B,C từ bộ giải mã địa chỉ sẽ chốt và xác định kênh đầu vào nào đợc chọn Khi một kênh đợc chọn đồng thời yêu cầu START, ALE đợc tích cực, yêu cầu độ rộng xung START không nhỏ hơn 200ns Giá trị điện áp cần đợc chuyển đổi sẽ đợc chốt lại ở cổng vào tơng ứng xung Start bắt đầu chuyển đổi Sau xung START khoảng 10μs đầu ra EOC (end of convert) lúc này xuống thấp thực sự bắt đầu quá trình chuyển đổi Trong suốt quá trình chuyển đổi EOC luôn ở mức tích cực thấp, đồng thời đầu
ra 3 trạng thái của ADC0809 bị thả nổi Sau khoảng 100 às, ADC0809 thực hiện việc chuyển đổi xong, dữ liệu đầu vào đợc đa đến bộ đệm đầu ra ba trạng thái đồng thời chân tín hiệu EOC chuyển lên mức cao báo cho VXL biết để
đọc kết quả vào
c Ghép ADC0809 với VXL8051.
+ Các kênh vào Analog đợc nối vào các đầu vào tơng ứng của ADC Mỗi kênh đó có địa chỉ riêng do tổ hợp 3 bit địa chỉ A,B,C quy định Các đầu vào
địa chỉ này kết nối với đờng địa chỉ A0A1A2 của Bus địa chỉ của hệ thống Các
đờng địa chỉ cao của hệ thống đợc dùng để tạo tín hiệu chọn chip (/CS) cho ADC0809
+ Tín hiệu /CS đợc đa tới đầu vào của mạch OR để khởi động ADC (Start) khi có tín hiệu /WR đồng thời chốt địa chỉ (ALE) của kênh hiện hành
có giá trị là giá trị 3 bit A,B,C Tín hiệu /CS cũng đợc đa tới đầu vào của mạch
OR thứ hai để tạo tín hiệu OE cùng với /RD nhằm chốt dữ liệu đã biến đổi xong ở đầu ra
Trang 11+ Vì khi biến đổi xong, ACD0809 dùng tín hiệu ra chân EOC để báo cho VXL biết mã nhị phân tơng ứng với mức cao của tín hiệu đầu vào đã đợc tạo
ra Vì vậy ta kết nối EOC với đầu vào ngắt ngoài /INT1 của 8051
- + 8 bit dữ liệu thờng đợc ghép trực tiếp với Bus dữ liệu hệ thống vì bản thân bộ đệm ra là 3 trạng thái, cũng có thể ghép qua 8255
3.Vi mạch giao tiếp song song PPI 8255:
Vi mạch 8255 là một vi mạch đợc sử dụng phổ biến để giao tiếp trong các hệ VXL 8 – 16 bit Sử dụng 8255A làm cho việc thiết kế để ghép nối bộ VXL với các thiết bị ngoại vi đơn giản đi nhiều, độ mềm dẻo của thiết kế sẽ tăng lên và linh kiện phụ trợ đi kèm cũng giảm đi nhiều Do có khả năng lập trình đợc nên nó có thể vừa dùng nh cổng nhận số liệu cũng nh xuất số liệu tuỳ nội dung của từ điều khiển mà ngời lập trình đa vào
Trang 12dẫn tín hiệu điều khiển từ vi xử lý ra các thiết bị bên ngoài đồng thời nhận các dữ liệu từ các thiết bị điều khiển bên ngoài vào vi xử lý.
Chân 35 (Reset input): ngõ vào xóa, chân reset phải đợc nối với tín hiệu
reset out của vi xử lý để không làm ảnh hớng đến mạch điều khiển Khi reset, các cổng của 8255A là các ngõ vào, đồng thời tất cả các dữ liệu trên thanh ghi bên trong 8255A đều bị xóa, 8255A trở về trạng thái ban đầu săn sàng làm việc
Trang 13Chân 6 (CS\): tín hiệu ngõ vào chip select (CS\) đợc điều khiển bởi vi xử
lý, dùng để lựa chọn 8255A làm việc khi vi xử lý giao tiếp với nhiều thiết bị
Chân 5 (RD\): ngõ vào đọc dữ liệu (Read Input).
Chân 36 (WR\) : ngõ vào ghi dữ liệu (Write Input).
Chân 8,9 (A 1 , A 0 ): ngõ vào địa chỉ (Address Input), dùng nhận địa chỉ
vào để lựa chọn thanh ghi và các cổng
Trang 14•Bảng địa chỉ lựa chọn thanh ghi và các cổng:
b Cấu trúc bên trong và hoạt động của 8255A.
Sơ đồ khối cấu trúc bên trong của vi mạch 8255A.
Hoạt động của vi mạch 8255A:
Từ sơ đồ khối cấu trúc bên trong của vi mạch 8255A ta thấy các cổng
của 8255A đợc chia thành 2 nhóm:
Nhóm A gồm cổng A và 4 bit cao của cổng C
Nhóm B gồm cổng B và 4 bit thấp của cổng C
Cấu hình làm việc của 2 nhóm sẽ do nội dung của thanh ghi điều khiển
Điều khiển nhóm A
Điều khiển nhóm B
Trang 15- Đờng dữ liệu: gồm 8 đờng dữ liệu (D0 - D7) Mã lệnh, các dữ liệu đều
đợc truyền đi trên đờng này
- Đờng địa chỉ: gồm 2 đờng (A0 – A1) dùng để lựa chọn cổng hoặc
thanh ghi điều khiển nh đã trình bày ở trên
- Đờng điều khiển: gồm các đờng RD\, WR\, CS\, Reset dùng để điều
khiển việc hoạt động của 8255A
Để sử dụng các cổng làm công cụ giao tiếp, ngời sử dụng phải gửi từ
điều khiển ra thanh ghi điều khiển để 8255A định cấu hình làm việc cho các
cổng đúng nh yêu cầu của ngời lập trình
c Từ điều khiển:
Từ điều khiển là dữ liệu đợc gửi tới thanh ghi điều khiển (CWR) của
8255 Giá trị của từ điều khiển sẽ xác định cấu hình làm việc cho các cổng của
8255A, đó là việc lựa chọn chức năng nhập hay xuất của các cổng
Trong từ điều khiển có một bit để phân biệt hai chức năng điều khiển
khác nhau là:
+ Định nghĩa chế độ các cửa (bit D7 của từ điều kiển là 1)
+ Lập/xoá các bit của Port C (bit D7của từ điều khiển là 0)
• Định nghĩa chế độ các cổng
Khi D7 =1, 8255A sẽ sử dụng thông tin trong CWR để định nghĩa chế độ
các cửa Nội dung của CWR xác định chức năng của 24 đờng ghép nối với
thiết bị ngoại vi Phần mềm của hệ thống sẽ định nghĩa chế độ của PA, PB một
cách độc lập; còn PC có thể đợc định nghĩa độc lập hay chia làm hai phụ thuộc
Trang 16nội dung của hai bit D6D5, cụ thể là:
+ Chế độ 0(Vào ra cơ sở): D6D5 = 00,ở chế độ này 8255A cho khả năng xuất/nhập dữ liệu đơn giản qua cả 3 cổng A, B, C một cách độc lập
+ Chế độ 1 : D6D5 =01, đây là chế độ vào ra có chốt (Strobe), nghĩa là có
sự đối thoại giữa ngoại vi và hệ VXL thông qua các bit của cổng C Trong chế
độ này, với nhóm A thì PA dùng để trao đổi số liệu và nửa cao của PC (PC4 ữ
PC7) để đối thoại giữa ngoại vi và VXL Còn ở nhóm B thì PB dùng để trao đổi
số liệu và PCL để đối thoại
+ Chế độ 2: D6D5 =1x Cổng A dùng vào/ra hai chiều, các bit PC3 ữ PC7
dùng làm tín hiệu đối thoại Cổng PB có thể làm việc nh ở chế độ 1
• Lập/xoá bit:
Nếu D7=0 thì CWR là lệnh để lập/xoá bit của Port C Lệnh này cho phép lập/xoá bất kỳ bit nào của C một cách độc lập
d Ghép nối 8255A với VXL8051.
+ Với hệ thống đơn giản có thể phối ghép trực tiếp 8255A với VXL Đầu vào /CS đợc nối vào một trong các /CSi của giải mã địa chỉ 74LS138 (sẽ đề cập sau)
+ Các tín hiệu /RD, /WR của 8255 cũng đợc kết nối tơng ứng với các tín hiệu điều khiển việc xuất/nhập dữ liệu của 8051
+ Đầu vào Reset (chân 35) có thể kết nối với chân Reset của 8051 nếu muốn 8255A cùng Reset với hệ thống khi ấn nút reset hoặc có thể để ở mức
Cửa CD
3 D
2 D
1 bit 0 bit 1
bit 2 bit 3 bit 4 bit 5 bit 6 bit 70 0 0
Trang 17+ Hai tín hiệu vào địa chỉ A1A0 đợc nối trực tiếp vào Bus địa chỉ hệ
thống A1A0 đợc giải mã bên trong mạch 8255A để chọn các cửa vào/ra A, B,
C và CWR nh đã đề cập ở trên
+ Các chân số liệu của 8255 có thể kết nối trực tiếp vào Bus số liệu của
hệ thống mà không cần đệm 3 trạng thái, vì bản thân các cổng P0 của 8051 đều
có đệm 3 trạng thái rồi
e Ghép nối 8255A với thiết bị ngoại vi:
Phần ghép nối với thiết bị ngoại vi của 8255A thông qua 24 đờng số liệu
và điều khiển ở các cổng A, B, C Các đờng ghép nối này đợc định nghĩa bằng
chơng trình nh giới thiệu ở trên Bằng cách chọn chế độ làm việc thích hợp và
chính xác vi mạch 8255A có thể đáp ứng đợc những nhu cầu ghép nối tinh vi
4 Thiết kế khối hiển thị:
ở đây ta dùng khối hiển thị là dùng khối hiển thị tinh thể lỏng LCD:
Khối hiển thị này có u điểm là:
- Màn hình đang dần có giá thành hạ
- Khả năng hiển thị số, ký tự và đồ họa tốt hơn nhiều so với đèn LED
- Sử dụng thêm bộ điều khiển làm tơi LCD và nh vậy giải phóng CPU
khỏi công việc này Còn đối với LED luôn cần CPU hoặc bằng cách nào đó để
duy trì việc hiển thị dữ liệu
RD WR
CS 8255A
S/L 74245
Chốt
Đ/C Thấp 74373
Giải mã
đ/c (3/8)
RD WR
P2
(P3.7) (P3.6
Trang 18Chức năng các chân của LCD
VCC : chân nối nguồn 5V
VSS : chân đất
VEE : chân điều khiển độ tơng phản của LCD
RS : chân này dùng để chọn thanh ghi.Nếu RS=0 thì thanh ghi mã lệnh đợc chọn còn nếu RS=1 thì thanh ghi dữ liệu đợc chọn và cho phép ngời dùng gửi dữ liệu hiển thị lên LCD
R/W : chân vào đọc ghi cho phép ngời dùng đọc/ghi thông tin từ /lên LCD R/W=0 thì đọc, còn R/W=0 thì là ghi lên LCD
E : chân cho phép đợc LCD sử dụng để chốt thông tin hiện có trên chân dữ liệu Khi dữ liệu đợc cấp đến thì một xung cao xuống thấp đợc áp đến chân E để LCD chốt dữ liệu trên chân dữ liệu.Xung này phải rộng tối thiểu là 450ns
D0-D7 : Đây là 8 chân dữ liệu trên 8 bít ,đợc dùng để gửi thông tin lên LCD hoặc đọc nội dung của các thanh ghi trong LCD
Ta có thể gửi các mã lệnh đến để điều khiển hiển thị trên LCD ,các mã lệnh này đợc cho trong tài liệu kỹ thuật của LCD
Trong hệ thống ,khi ghép nối thì các chân của LCD có thể ghép qua
8051 hoặc có thể ghép qua các chân của cổng giao tiếp 8255 tùy theo sở thích của ngời sử dụng
Trang 191 2 3
6 5
4
= 7
5.Khối vào dữ liệu:
Khối vào dữ liệu mà ta sử dụng đó là bàn phím số 16 phím đợc dùng rộng
rãi.Nguyên tắc hoạt động của bàn phím thực chất là nguyên tắc hoạt động của
ma trận phím Chơng trình để chạy bàn phím là chơng trình dùng thuật toán
"bẫy phím " nghĩa là liên tục quét hàng của bàn phím ,đồng thời khi phát hiện
có phím nhấn ,cột tơng ứng =0 thì bộ Vi xử lý của ta hoàn toàn có thể xác định
đợc hàng và cột của phím đợc ấn và từ đó cho mã của phím
A,B,C là 3 đờng địa chỉ vào, tích cực cao
E1, E2 là các đầu vào cho phép làm viêc,
Trang 20C B A /E1 /E2 E1 /Y0 /Y1 /Y2 /Y3 /Y4 /Y5 /Y6 /Y7
Đây là mạch có tác dụng chốt lại số liệu ở đầu
vào khi có tín hiệu tích cực, đầu ra sẽ không bị biến
đổi khi tín hiệu đầu vào đã mất Nó chỉ thay đổi khi
tín hiệu chốt tích cực trở lại Bên ngoài vỏ cũng có tín
hiệu /OE cho phép hoạt động Khi có yêu cầu chốt
chân LE sẽ đợc tích cực
Trong ghép nối với 89C51:
+ Chân /OE (số 1) của 74LS373 đợc nối đất
+ Chân LE(số 11) của 74LS373 đợc nối với
chân ALE (số 30) của 89C51