Đồ án Vi mạch hệ vi xử lý 8085A

Mục Lục

Trang

 

Lời mở đầu 1

 

Phần I: Giới thiệu về Hệ Vi xử lý

I. Sơ lược về Hệ thống Vi xử lý

1. Khối xử lý trung tâm 2

2. Bộ nhớ 2

3. Khối giao tiếp vào ra 3

4. Hệ thống Bus 3

II. Giới thiệu về Vi xử lý 3

III. Cấu trúc và họat động của Vi xử lý

1. Cấu trúc cơ bản của một Vi xử lý 4

2. Các đặc điểm bên trong Vi xử lý 4

3. Vi xử lý 8 bit 5

4. Tập lệnh của Vi xử lý 8

 

Phần II: Vi xử lý 8085A

I. Giới thiệu

1. Đặc tính 10

2. Sơ đồ chân và sơ đồ logic 10

II. Tập lệnh 8085A 16

 

Phần III: Thiết kế Hệ Vi xử lý 8085

I. Phương án thiết kế 22

II. Phần cứng 22

1. Khảo sát các IC dùng trong thiết kế 22

2. Kết nối 31

III. Phần mềm

1. Chương trình quét phím 36

2. Chương trình quét đèn 36

3. Chương trình minh họa 36

 

Phụ lục 43

Mục lục 49

 

doc41 trang | Chia sẻ: maiphuongdc | Lượt xem: 2877 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Đồ án Vi mạch hệ vi xử lý 8085A, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ân này yêu cầu Vi xử lý thực hiện công việc mà lệnh yêu cầu. Chiều dài của một lệnh bằng với chiều dài từ dữ liệu của Vi xử lý. Mỗi lệnh mà Vi xử lý thực hiện gồm hai yếu tố: - Mã công tác: cho biết thao tác mà Vi xử lý phải thực hiện. - Toán hạng: được viết theo sau mã công tác, cho biết vị trí dữ liệu cần phải xử lý. Có nhiều cách để chỉ vị trí của số liệu: - Định địa chỉ trực tiếp bằng thanh ghi: toán hạng là ký hiệu của các thanh ghi và dữ liệu cần xử lý chính là nội dung chứa trong thanh ghi đó. - Định địa chỉ gián tiếp bằng thanh ghi: toán hạng không phải là địa chỉ của số liệu mà chỉ là dấu hiệu cho biết nơi chứa dữ liệu. - Định địa chỉ trực tiếp: toán hạng là địa chỉ của dữ liệu cần được xử lý. - Định địa chỉ tức thời: toán hạng chính là dữ liệu cần được xử lý. - Định địa chỉ ngầm định: vị trí hoặc giá trị của dữ liệu cần được xử lý được hiểu ngầm nhờ mã công tác. PHẦN II: Vi xử lý 8085A I. Giới thiệu: Vi xử lý 8085A được hãng Intel chế tạo vào năm 1974. Đây là một Vi xử lý 8 bit, có chiều dài từ dữ liệu là 8 bit, chiều dài từ địa chỉ là 16 bit. 1. Đặc tính: - Nguồn cung cấp : 5V ± 10%. - Dòng điện cực đại: Imax = 170mA. - Tần số xung clock chuẩn 6MHz. - Mạch tạo xung clock được tích hợp, có thể dùng thạch anh, RC hay RC bên ngoài. - Có 5 yêu cầu ngắt: Trong đó có một yêu cầu ngắt không che được (NMI - Non Maskable Interrupt) và một tương thích với 8080A. - Có cổng Input/Output nối tiếp. - Phần mềm tương thích 100% với 8080A. 2. Sơ đồ chân và sơ đồ logic: 8085A X1 X2 Reset Out SOD SID Trap RST 7.5 RST 6.5 RST 5.5 INTR INTA\ AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 Vss Vcc HOLD HLDA CLK Out Reset In Ready IO/M\ S1 RD\ WR\ ALE S0 A15 A14 A13 A12 A11 A10 A9 A8 8085A Ready Hold Intr RST 7.5 RST 6.5 RST 5.5 Trap Reset In X1 X2 SID Vcc Vss A15 - A8 AD7 - AD0 ALE S0 S1 RD\ WR\ HLDA INTA Reset Out SOD CLK Out Sơ đồ chân A8..A15 - Address bus (output) Byte cao của địa chỉ ô nhớ 16 bit hoặc địa chỉ cổng 8 bit, có cấu tạo ngõ ra 3 trạng thái. Trạng thái Hi-Z ở chế độ HOLD, HALT và trong lúc RESET. AD0..AD7 - Address/Data bus (input/output) Bus địa chỉ/dữ liệu, làm việc theo phương pháp đa lộ thời gian: Ở chu kỳ đồng hồ đầu tiên là byte thấp của địa chỉ ô nhớ hoặc khối xuất nhập, ở hai chu kỳ tiếp theo là dữ liệu, cấu tạo ngõ ra 3 trạng thái. Trạng thái Hi-Z ở chế độ HOLD, HALT và trong lúc RESET. ALE - Address Latch Enable (output) Ở chu kỳ đầu tiên của xung đồng hồ, ALE = [1] cho biết AD0..AD7 là bus địa chỉ. T1 T2 T3 T1 T2 T3 xung clock A15-A8 AD7-AD0 ALE RD\ WR\ T T T T T T Address A15-A8 Address A15-A8 A7-A0 A7-A0 Data D7-D0 Data D7-D0 Chu kỳ viết Chu kỳ đọc Phương pháp đa lộ thời gian Bus địa chỉ Chốt S0 S1 HLDA HOLD 8085A RESET RDY CLK INTA ALE RD WR IO/M\ OUT AD7 - AD0 A15 - A8 RESET IN Bus điều khiển Bus dữ liệu Tín hiệu ngắt Vi xử lý và chốt địa chỉ RD\ - Read control (output) Tác động mức thấp cho biết dữ liệu đang được đọc từ bộ nhớ hoặc cổng. Cấu tạo ngõ ra 3 trạng thái. Trạng thái Hi-Z ở chế độ HOLD, HALT và trong lúc RESET. WR\ - Write control (output) Tác động mức thấp cho biết dữ liệu đang được viết vào bộ nhớ hoặc cổng. Cấu tạo ngõ ra 3 trạng thái. Trạng thái Hi-Z ở chế độ HOLD, HALT và trong lúc RESET. READY (input) Mức cao trong chu kỳ đọc hoặc viết cho biết bộ nhớ hoặc thiết bị ngoại vi đã sẵn sàng gởi hoặc nhận dữ liệu, Vi xử lý sẽ đợi nếu ngõ này ở mức thấp. S0, S1, IO/M\ - status (output) Ba ngõ ra cho biết trạng thái hoạt động của Vi xử lý. IO/M\ S1 S0 Trạng thái 0 0 1 Viết vào bộ nhớ 0 1 0 Đọc vào bộ nhớ 1 0 1 Viết ra cổng 1 1 0 Đọc từ cổng 0 1 1 Nhận lệnh 1 1 1 Nhận lệnh * trạng thái Hi-Z x không xác định 1 1 1 Nhận yêu cầu ngắt * 0 0 HALT * x x HOLD * x x RESET HLDA - Hold Acknowledge (output) Tín hiệu ra cho biết Vi xử lý chấp nhận quyền sử dụng bus địa chỉ và bus dữ liệu ở chu kỳ kế tiếp, ngõ này trở về mức thấp khi không còn yêu cầu HOLD. INTR - Interrupt Request (input) Được dùng cho các yêu cầu ngắt công dụng chung, Vi xử lý sẽ nhận ra sau khi thực hiện xong một chỉ thị, ngắt này có thể được che bằng phần mềm và không có hiệu lực trong lúc RESET hoặc trong khi Vi xử lý đang thi hành một chương trình phục vụ ngắt. INTA - Interrupt Acknowledge (output) Ngõ ra mức thấp cho biết Vi xử lý chấp thuận yêu cầu ngắt. RST 5.5, RST 6.5, RST 7.5 - Restart Interrupt (input) Ba yêu cầu ngắt có mức độ ưu tiên cao hơn INTR, được điều khiển bởi lệnh SIM. TRAP (input) Yêu cầu ngắt có mức độ ưu tiên cao nhất và không che được bằng phần mềm. Tên Mức ưu tiên Địa chỉ ngắt (1) Tín hiệu tác động TRAP 1 24h Cạnh lên và mức cao RST 7.5 2 3Ch Cạnh lên RST 6.5 3 34h Mức cao RST 5.5 4 2Ch Mức cao INTR 5 (2) Mức cao (1) Vi xử lý cất PC vào ngăn xếp trước khi nhảy đến địa chỉ ngắt. (2) Phụ thuộc vào địa chỉ gọi ngắt. INT0 INT1 INT2 INT3 INT4 INT5 INT6 INT7 Đệm ba trạng thái 1 1 1 INTR\ INTA Vi xử lý 1 1 D0 D1 D2 D3 D4 D5 D6 D7 A8 ... A15 AD0 ... AD7 74148 Các ngắt được gọi bằng lệnh RST INTERRUPT INT RESTART D7 D6 D5 D4 D3 D2 D1 D0 Địa chỉ bộ nhớ (Hex) 0 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 8 2 1 1 0 1 0 1 1 1 0 0 1 0 3 1 1 0 1 1 1 1 1 0 0 1 8 4 1 1 1 0 0 1 1 1 0 0 2 0 5 1 1 1 0 1 1 1 1 0 0 2 8 6 1 1 1 1 0 1 1 1 0 0 3 0 7 1 1 1 1 1 1 1 1 0 0 3 8 RESET IN\ (input) Mức thấp đặt lại bộ đếm chương trình về 0000H, xóa FF cho phép ngắt và HLDA. Bus địa chỉ, bus dữ liệu và bus điều khiển ở trạng thái Hi-Z trong lúc RESET. RESET OUT (output) Báo cho biết CPU đang ở trạng thái RESET, dùng để đặt lại toàn bộ hệ thống, ngõ ra tương thích TTL. X1, X2 (input) Ngõ đặt thạch anh, RC hoặc LC để tạo xung đồng hồ, X1 còn là ngõ vào của tín hiệu đồng hồ từ mạch bên ngoài. CLK - Clock (output) Ngõ ra xung đồng hồ có tần số bằng phân nửa tín hiệu tại X1. SID - Serial Input Data line (input) Ngõ vào dữ liệu nối tiếp nạp vào bit 7 của bộ tích lũy khi có lệnh RIM. SOD - Serial Output Data line (output) Ngõ ra dữ liệu nối tiếp được xác định bởi lệnh SIM. Vcc Nguồn nuôi +5V. Vss Mass. Cấu tạo 8085A: Cấu tạo bên trong của Vi xử lý 8085A có đầy đủ tất cả các khối của một Vi xử lý 8 bit đã được giới thiệu, nhưng có một số điểm khác biệt được thể hiện qua sơ đồ khối sau: HOLD INTERRUPT CONTROL SERIAL I/O CONTROL ACCUMULATOR (8) TEMP REG(8) FLAG (8) FLIP FLOP ALU INSTRUCTION DECODER AND MACHINE CYCLE ENCODING ADDRESS BUFFER DATA/ADDRESS BUFFER B REG (8) C REG (8) D REG (8) E REG (8) H REG (8) L REG (8) STACK POINTER PROGRAM COUNTER INCREMENTER/ DECREMENTER TIMING AND CONTROL CONTROL STATUS DMA RESET 8 BIT INTERNAL DATA BU S X1 X2 CLOCK OUT READY RD\ WR\ ALE S0 S1 IO/M\ A15..A8 ADDRESS BUS AD7..AD0 DATA/ADDRESS BUS INTR INTA\ RST 7.5 RST 6.5 RST 5.5 TRAP SID SOD HLDA RESET IN RESET OUT INSTRUCTION REGISTER (8) Cấu trúc Vi xử lý 8085A Cấu tạo Vi xử lý 8085A gồm 3 phần: Đơn vị số học-logic, các thanh ghi và đơn vị điều khiển. Các thanh ghi trong 8085A được chia ra như sau: Bộ đếm chương trình (PC) và con trỏ ngăn xếp (SP): là hai thanh ghi có độ dài 16 bit nên Vi xử lý có thể truy xuất được một lượng ô nhớ là 216 = 65536 byte hay 64Kbyte. Bộ tích lũy (Accummulator): Có ký hiệu là A, độ dài 8 bit. Đây là thanh ghi quan trọng nhất trong Vi xử lý, hầu hết các quá trình tính toán đều xảy ra trên thanh ghi này. Thanh ghi trạng thái (Status Register): Có tên khác là thanh ghi cờ (Flag), ký hiệu là F, thanh ghi này có độ dài 8 bit trong đó có 5 bit trạng thái dùng để phản ánh trạng thái của Vi xử lý khi thực hiện xong một lệnh. S Z x AC x P x Cy S - Sign (bit dấu) S = 1 Khi kết quả là số âm. S = 0 Khi kết quả là số dương. Z - Zero (bit zero) Z = 1 Khi kết quả bằng 0. Z = 0 Khi kết quả khác 0. AC - Auxiliary Carry (bit số nhớ phụ) AC = 1 Khi phép tính bị tràn trên bit 3. AC = 0 Khi phép tính không tràn trên bit 3. P - Parity (bit chẵn lẻ) P = 1 Khi kết quả là số chẵn. P = 0 Khi kết quả là số lẻ. Số chẵn là số có tổng số bit [1] là chẵn, và ngược lại số lẻ là số có tổng số bit [1] là lẻ. Cy - Carry (bit số nhớ) Cy = 1 Khi kết quả có số nhớ. Cy = 0 Khi kết quả không số nhớ. Các thanh ghi công dụng chung: Gồm 6 thanh ghi có độ dài 8 bit được ký hiệu lần lượt là B, C, D, E, H và L. Các thanh ghi này có thể kết hợp thành từng cặp 16 bit: BC, DE, HL và AF, trong đó A, B, D và H là các thanh ghi cao và F, C, E và L là các thanh ghi thấp. II. TẬP LỆNH 8085A: Tập lệnh của 8085A được chia thành các nhóm như sau: - Nhóm lệnh truyền dữ liệu - Nhóm lệnh số học - logic - Nhóm lệnh so sánh - Nhóm lệnh nhảy - Nhóm lệnh về ngăn xếp - Nhóm lệnh về xuất nhập - Nhóm lệnh điều khiển 1. Nhóm lệnh truyền dữ liệu: MOV ds, sr Truyền dữ liệu từ thanh ghi sr đến thanh ghi ds. MOV ds, M Truyền dữ liệu từ ô nhớ có địa chỉ chứa trong cặp thanh ghi HL vào thanh ghi ds. MOV M, sr Truyền dữ liệu từ thanh ghi sr vào ô nhớ có địa chỉ chứa trong cặp thanh ghi HL. MVI ds, data Truyền tức thời dữ liệu 8 bit vào thanh ghi ds. MVI M, data Truyền tức thời dữ liệu 8 bit vào ô nhớ có địa chỉ chứa trong cặp thanh ghi HL. LXI rp, dw Nạp tức thời dữ liệu 16 bit vào cặp thanh ghi rp. LDA addr Nạp trực tiếp nội dung ô nhớ có địa chỉ là addr vào thanh ghi A. LDAX rp Nạp gián tiếp nội dung ô nhớ có địa chỉ chứa trong cặp thanh ghi rp vào thanh ghi A. LHLD addr Nạp trực tiếp nội dung ô nhớ có địa chỉ là addr vào thanh ghi L, nội dung ô nhớ có địa chỉ addr+1 vào thanh ghi H. STA addr Lưu trữ trực tiếp nội dung thanh ghi A vào ô nhớ có địa chỉ addr. STAX rp Lưu trữ gián tiếp nội dung thanh ghi A vào ô nhớ có địa chỉ chứa trong cặp thanh ghi rp. SHLD addr Lưu trữ trực tiếp nội dung thanh ghi L vào ô nhớ có địa chỉ addr, nội dung thanh ghi H vào ô nhớ có địa chỉ addr+1. XCHG Hoán chuyển nội dung giữa cặp thanh ghi HL với cặp thanh ghi DE. 2. Nhóm lệnh số học - logic: ADD sr Cộng không lưu ý số nhớ nội dung thanh ghi A với nội dung thanh ghi sr. ADD M Cộng không lưu ý số nhớ nội dung thanh ghi A với nội dung ô nhớ có địa chỉ chứa trong cặp thanh ghi HL. ADI data Cộng không lưu ý số nhớ nội dung thanh ghi A với dữ liệu. ADC sr Cộng có lưu ý số nhớ nội dung thanh ghi A với nội dung thanh ghi sr. ADC M Cộng có lưu ý số nhớ nội dung thanh ghi A với nội dung ô nhớ có địa chỉ chứa trong cặp thanh ghi HL. ACI data Cộng có lưu ý số nhớ nội dung thanh ghi A với dữ liệu. SUB sr Trừ không lưu ý số thiếu nội dung thanh ghi A với nội dung thanh ghi sr. SUB M Trừ không lưu ý số thiếu nội dung thanh ghi A với nội dung ô nhớ có địa chỉ chứa trong cặp thanh ghi HL. SUI data Trừ không lưu ý số thiếu nội dung thanh ghi A với dữ liệu. SBB sr Trừ có lưu ý số thiếu nội dung thanh ghi A với nội dung thanh ghi sr. SBB M Trừ có lưu ý số thiếu nội dung thanh ghi A với nội dung ô nhớ có địa chỉ chứa trong cặp thanh ghi HL. SBI data Trừ có lưu ý số thiếu nội dung thanh ghi A với dữ liệu. ANA sr AND giữa nội dung thanh ghi A với nội dung thanh ghi sr. ANA M AND giữa nội dung thanh ghi A với nội dung ô nhớ có địa chỉ chứa trong cặp thanh ghi HL. ANI data AND giữa nội dung thanh ghi A với dữ liệu. ORA sr OR giữa nội dung thanh ghi A với nội dung thanh ghi sr. ORA M OR giữa nội dung thanh ghi A với nội dung ô nhớ có địa chỉ chứa trong cặp thanh ghi HL. ORI data OR giữa nội dung thanh ghi A với dữ liệu. XRA sr EXOR giữa nội dung thanh ghi A với nội dung thanh ghi sr. XRA M EXOR giữa nội dung thanh ghi A với nội dung ô nhớ có địa chỉ chứa trong cặp thanh ghi HL. XRI data EXOR giữa nội dung thanh ghi A với dữ liệu. INR reg Tăng nội dung thanh ghi reg. INR M Tăng nội dung ô nhớ có địa chỉ chứa trong cặp thanh ghi HL. DCR reg Giảm nội dung thanh ghi reg. DCR M Giảm nội dung ô nhớ có địa chỉ chứa trong cặp thanh ghi HL. INX rp Tăng nội dung cặp thanh ghi rp. DCX rp Giảm nội dung cặp thanh ghi rp. RRC Đẩy nội dung thanh ghi A về phía phải. RLC Đẩy nội dung thanh ghi A về phía trái. RAR Đẩy nội dung thanh ghi A về phía phải ngang qua cy. RAL Đẩy nội dung thanh ghi A về phía trái ngang qua cy. DAD rp Cộng nội dung cặp thanh ghi HL với nội dung cặp thanh ghi rp. DAA Điều chỉnh nội dung bộ tích lũy A. CMA Nghịch đảo nội dung bộ tích lũy A. STC Đặt bit cy là [1]. CMC Nghịch đảo bit cy. 3. Nhóm lệnh so sánh: CMP sr So sánh nội dung thanh ghi A với nội dung thanh ghi sr. CMP M So sánh nội dung thanh ghi A với nội dung ô nhớ có địa chỉ chứa trong cặp thanh ghi HL. CPI data So sánh nội dung thanh ghi A với dữ liệu. 4. Nhóm lệnh nhảy: JMP addr Nhảy đến địa chỉ addr không điều kiện. Jcondition addr Nhảy đến địa chỉ addr nếu thỏa điều kiện: - JNZ Z = 0 - JZ Z = 1 - JNC Cy = 0 - JC Cy = 1 - JPO P = 0 - JPE P = 1 - JP S = 0 - JM S = 1 CALL addr Gọi chương trình con tại địa chỉ addr. Ccondition addr Gọi chương trình con tại địa chỉ addr nếu thỏa điều kiện: - CNZ Z = 0 - CZ Z = 1 - CNC Cy = 0 - CC Cy = 1 - CPO P = 0 - CPE P = 1 - CP S = 0 - CM S = 1 RET Trở về từ chương trình con không điều kiện. Rcondition Trở về từ chương trình con nếu thỏa điều kiện: - RNZ Z = 0 - RZ Z = 1 - RNC Cy = 0 - RC Cy = 1 - RPO P = 0 - RPE P = 1 - RP S = 0 - RM S = 1 RST c Gọi chương trình phục vụ ngắt số hiệu c. PCHL Nạp bộ đếm chương trình PC từ cặp thanh ghi HL. 5. Nhóm lệnh về ngăn xếp: PUSH rp Chuyển dữ liệu của cặp thanh ghi rp vào ngăn xếp. POP rp Lấy dữ liệu từ ngăn xếp chuyển vào cặp thanh ghi rp. XTHL Hoán chuyển dữ liệu giữa ngăn xếp với cặp thanh ghi HL. SPHL Chuyển nội dung cặp thanh ghi HL vào thanh ghi SP. 6. Nhóm lệnh xuất nhập: IN port Nhập dữ liệu từ cổng port vào thanh ghi A. OUT port Xuất dữ liệu từ thanh ghi A ra cổng port. 7. Nhóm lệnh điều khiển: NOP Lệnh trống. HLT Lệnh dừng chương trình cho đến khi có lệnh ngắt hoặc RESET. EI Cho phép yêu cầu ngắt. DI Không cho phép yêu cầu ngắt. 8. Nhóm lệnh đặc biệt: SIM Lệnh này sử dụng các bit trong thanh ghi A để thực hiện các công việc sau: SOD SOE x R 7.5 MSE M 7.5 M 6.5 M 5.5 M 7.5 - M 6.5 - M5.5 = [0]: Cho phép yêu cầu ngắt. = [1]: Ngăn yêu cầu ngắt. MSE = [0]: Các bit từ 0 đến 2 của thanh ghi A có tác dụng. = [1]: Các bit từ 0 đến 2 của thanh ghi A không tác dụng. RST 7.5 = [0]: Không ảnh hưởng. = [1]: Reset Flip Flop RST 7.5 SOE = [0]: Bit thứ 7 của thanh ghi A không gửi ra ngõ SOD. = [1]: Bit thứ 7 của thanh ghi A được gửi ra ngõ SOD. SOD : Chứa dữ liệu cần gửi đến ngõ ra nối tiếp SOD. RIM Kết quả của lệnh RIM sau khi thực hiện được trả lại trong thanh ghi A cho biết các trạng thái sau: SID I 7.5 I 6.5 I 6.5 IE M 7.5 M 6.5 M 5.5 M 7.5 - M 6.5 - M 5.5 = [0]: Yêu cầu ngắt bị ngăn. = [1]: Yêu cầu ngắt được phép. IE = [0]: Vi xử lý không chấp nhận yêu cầu ngắt. = [1]: Vi xử lý chấp nhận yêu cầu ngắt. I 7.5 -I 6.5 - I 5.5 = [0]: Cho biết không có yêu cầu ngắt. = [1]: Cho biết yêu cầu ngắt đang chờ. SID : Chứa dữ liệu của ngõ vào nối tiếp SID. PHẦN III: Thiết kế Hệ Vi xử lý 8085. I. Phương án thiết kế: Yêu cầu đặt ra là thiết kế hệ Vi xử lý 8085 có 40 phím, hiển thị tám LED 7 đoạn. - Về bộ nhớ: chọn EPROM 2764 chứa chương trình hệ thống, SRAM 6264 chứa dữ liệu tạm thời và các biến hệ thống. Đồng thời cũng thiết kế thêm đế cắm dành cho EPROM 2764 mở rộng khi cần, khe cắm này có thể cắm được SRAM 6264 và có thể chuyển đổi chức năng RAM/ROM bằng một jumper. - Về giao tiếp nội bộ: sử dụng một vi mạch 8255A để quét đèn và quét phím. Vi mạch này làm việc theo kiểu bộ nhớ, mỗi port tương ứng với một vị trí ô nhớ. Dữ liệu quét đèn và phím là tác động mức thấp nên sử dụng các LED hiển thị là loại Cathode chung. - Về giao tiếp với các thiết bị ngoài: sử dụng hai vi mạch 8255A, lý do sử dụng tới hai vi mạch là để mở rộng số cổng giao tiếp khi cần thiết (lên tới 6 cổng). - Về giải đa hợp: để tách giữa dữ liệu và địa chỉ trên các chân AD0-AD7 của 8085A có thể dùng 74LS373 hoặc 74LS573 là vi mạch chốt, chức năng của hai loại là như nhau. Trong thiết kế sử dụng 74LS573, 74LS573 có các đường dữ liệu vào và ra nằm ở hai bên vi mạch, vì thế việc thiết kế mạch in dễ dàng hơn. - Về giải mã địa chỉ: sử dụng 74LS138 là vi mạch giải mã 3 đường ra 8 đường. Trong thiết kế sử dụng hai vi mạch 74LS138, một cho giao tiếp nội bộ, một cho giao tiếp với các thiết bị ngoài. Đồng thời cũng sử dụng thêm một vi mạch 74LS32 trong việc giải mã địa chỉ. - Về chương trình hệ thống: bàn phím có 40 phím, trong đó 10 phím dùng cho các phím số từ 0 đến 9, 26 phím dùng cho các phím chữ cái từ A đến Z, tổng cộng là 36 phím. Còn lại 4 phím dùng làm các phím chức năng: phím +, -, PC, ESCAPE. Chương trình Monitor có nhiệm vụ quét đèn và đọc phím nhấn, cho phép nhập chương trình vào và thi hành chương trình đó, nhận biết phím chức năng và thực hiện các công việc tương ứng. II. Phần cứng: 1. Khảo sát các vi mạch được sử dụng trong thiết kế: a. Bộ nhớ EPROM 2764: EPROM 2764 là bộ nhớ chỉ đọc được chế tạo theo công nghệ NMOS, dùng một nguồn đơn +5V, dung lượng bộ nhớ là 65536 bit, được tổ chức thành 8192x8 bit (8KByte). 2764 là loại EPROM có thể xóa bằng tia cực tím và có thể ghi lại được nhiều lần. Có hai kiểu họat động: bình thường và chờ. Ở trạng thái chờ, công suất tiêu thụ là 132mW so với 525mW khi ở trạng thái đọc dữ liệu, thời gian truy xuất là 200ns. 2764 CE\ OE\ VPP D0-D7 A0-A12 Vpp A12 A7 A6 A5 A4 A3 A2 A1 A0 O0 O1 O2 GND 2764 Vcc PGM\ N.C A8 A9 A11 OE\ A10 CE\ O7 O6 O5 O4 O3 Sơ đồ chân và sơ đồ logic Mode \ Pin CE\ OE\ PGM\ VPP Output Read L L H Vcc Dout Stand-by H x x Vcc Hi-Z Program L x L Vpp Din Program Verify L L H Vpp Dout Program Inhibit H x x Vpp Hi-Z Bảng trạng thái b. Bộ nhớ SRAM 6264: SRAM 6264 là bộ nhớ được chế tạo theo công nghệ CMOS, có dung lượng 65536 bit được tổ chức thành 8192x8 bit (8KByte), điện áp cung cấp là +5V, thời gian truy cập khoảng 150ns. Ngõ vào/ra dữ liệu được dùng chung, các ngõ vào/ra này tương thích TTL. Công suất tiêu tán ở trạng thái chờ rất thấp chỉ khoảng 0,1mW so với khi hoạt động bình thường là 200mW. 6264 DQ0-DQ7 A0-A12 CE1\ CE2 OE\ WE\ N.C A12 A7 A6 A5 A4 A3 A2 A1 A0 DQ0 DQ1 DQ2 Vss 6264 Vcc WE\ CE2 A8 A9 A11 OE\ A10 CE1\ DQ7 DQ6 DQ5 DQ4 DQ3 Sơ đồ chân và sơ đồ logic Mode \ Pin WR\ CE1\ CE2 OE\ Output Not Select x H x x Hi-Z x x L x Output Disable H L H H Hi-Z Read H L H L Dout Write L L H H Din Bảng trạng thái c. Vi mạch giao tiếp ngoại vi 8255A: Vi mạch 8255A là vi mạch giao tiếp ngoại vi lập trình được. Nó được dùng để kết nối giao tiếp song song giữa Vi xử lý và thiết bị điều khiển bên ngoài. PA3 PA2 PA1 PA0 RD\ CS\ GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 PA4 PA5 PA6 PA7 WR\ RESET D0 D1 D2 D3 D4 D5 D6 D7 Vcc PB7 PB6 PB5 PB4 PB3 8255A 8255A D0-D7 RD\ WR\ RESET A0 A1 CS\ PA0-PA7 PB0-PB7 PC0-PC3 PC4-PC7 Sơ đồ chân và sơ đồ logic A1 A0 RD\ WR\ CS\ Hoạt động L L L H L Port A à Bus dữ liệu L H L H L Port Bà Bus dữ liệu H L L H L Port Cà Bus dữ liệu L L H L L Bus dữ liệu à Port A L H H L L Bus dữ liệu à Port B H L H L L Bus dữ liệu à Port C H H H L L Bus dữ liệu à Từ điều khiển x x x x H Bus dữ liệu ở trạng thái Hi-Z H H L H L Cấm x x H H L Bus dữ liệu ở trạng thái Hi-Z Bảng trạng thái Cơ chế hoạt động của 8255A: Khi chân RESET ở mức 1, 8255A sẽ được khởi động, nó sẽ thả nổi tất cả 24 chân liên quan tới các cửa vào/ra. Trạng thái này kéo dài tới khi chương trình ứng dụng viết từ điều khiển vào thanh ghi điều khiển để xác định chế độ làm việc của 8255A. Ba chế độ hoạt động cơ bản của 8255A là: - Chế độ 0: vào/ra thông thường. - Chế độ 1: chốt vào/ra. - Chế độ 2: bus hai chiều. Từ điều khiển dùng để định nghĩa chế độ làm việc cho 8255A. Cấu trúc từ điều khiển của 8255A: D7 D6 D5 D4 D3 D2 D1 D0 Nhóm B Port C (thấp) 1 = nhập 0 = xuất Port B 1 = nhập 0 = xuất Chọn chế độ 0 = chế độ 0 1 = chế độ 1 Nhóm A Port C (cao) 1 = nhập 0 = xuất Port A 1 = nhập 0 = xuất Chọn chế độ 00 = chế độ 0 01 = chế độ 1 1x = chế độ 2 Cờ lập chế độ 1 = tích cực Chế độ 0: Từ điều khiển 1 0 0 D4 D3 0 D1 D0 Chế độ 0 xác lập hai port 8 bit (A và B) và hai port 4 bit (nửa cao và nửa thấp của port C). Bất kỳ port nào cũng có thể nhập hoặc xuất dữ liệu tùy theo các bit D4, D3, D1 và D0. Dữ liệu được chốt khi nhập (còn khi xuất thì không). Chế độ 1: Từ điều khiển 1 0 1 D4 D3 1 D1 D0 Chế độ này cả hai port A và B làm việc ở chế độ xuất/nhập có chốt. Port A và B hoạt động độc lập nhau, mỗi port có 4 bit điều khiển/dữ liệu được hình thành từ 4 bit cao và 4 bit thấp của port C. Nhóm A được cấu hình ở chế độ 1: * Port A là port nhập dữ liệu: Từ điều khiển PC4 PC5 PC3 INTE A RD\ PC6,7 PA0-PA7 I/O INTRA IBFA STBA\ 1 0 1 1 D3 x x x PC6,7 1 = nhập 0 = xuất - STBA\ (PC4): mức 0 tại ngõ vào này sẽ làm cho dữ liệu được chốt vào port A. Thiết bị ngoại vi dùng tín hiệu này để báo cho 8255A biết dữ liệu vào đã sẵn sàng. - IBFA (PC5): ngõ ra này lên mức 1 để báo rằng bộ đệm đã đầy. Khi chân này ở mức 0 thì thiết bị ngoại vi có thể gởi dữ liệu mới tới 8255A. - INTRA (PC3): tín hiệu ở ngõ ra này được dùng như một yêu cầu ngắt. Ngõ ra này lên mức 1 khi STBA ở mức 0, IBFA và cờ hiệu INTRA ở mức 1. Tín hiệu INTEA tự động được xóa khi CPU nhập từ 8255A. Cờ hiệu cho phép ngắt (INTE) được điều khiển bằng cách đặt hoặc xóa bit PC4. - Các bit PC6 và PC7 là các bit xuất nhập bình thường phụ thuộc vào bit D3 trong từ điều khiển. * Port A là port xuất dữ liệu: Từ điều khiển PC6 PC7 PC3 INTE A WR\ PC4, 5 PA0-PA7 I/O INTRA ACKA\ OBFA\ 1 0 1 0 D3 x x x PC4, 5 1 = nhập 0 = xuất - OBFA\ (PC7): ngõ ra này sẽ xuống mức 0 khi bộ đệm xuất đầy để báo cho thiết bị ngoại vi biết port A đang xuất ra dữ liệu mới. - ACKA\ (PC6): ngõ vào này được thiết bị ngoại vi đặt mức 0 để báo cho 8255A biết dữ liệu port A được chấp nhận. - INTRA (PC3): ngõ ra này có cùng mục đích như trong trường hợp nhập. Cờ cho phép ngắt được điều khiển bằng cách đặt hoặc xóa bit PC6. - Các bit PC4 và PC5 là các bit xuất nhập bình thường phụ thuộc vào bit D3 trong từ điều khiển. Nhóm B được cấu hình ở chế độ 1: * Port B là port nhập dữ liệu: Từ điều khiển PC2 PC1 PC0 INTE B RD\ PC4,5 PB0-PB7 I/O INTRB IBFB STBB\ 1 x x x x 1 1 x - STBB\ (PC2), IBFB (PC1) và INTRB (PC0) có chức năng tương tự như trong trường hợp port A nhập. Cờ hiệu cho phép ngắt (INTE) được điều khiển ba

Các file đính kèm theo tài liệu này:

  • docDAVM.DOC
  • docBIA.DOC
  • docBIADOAN.DOC
  • docMUCLUC.DOC
  • docSDKK8085.DOC
Tài liệu liên quan