LUÂÄN VĂN TỐT NGHIỆP 2 I. ĐẶT VẤN ĐỀ: Khi nhu cầu học tập ngày càng cao thì thiết bò, phương tiện dạy học càng đóng vai trò quan trọng, nó giúp người thầy dỡ vất vả trong việc truyền thụ kiến thức, giúp người học nhanh chóng tiếp thu, ngoài ra còn để minh họa, chứng thực môt cách cụ thể những bài học mơ hồ trừu tượng. Trong bài này, người thực hiện muốn đề cập đến môn học vi xử lý, lập trình vi xử lý, một môn học mang ý nghóa thiết thực trong xã hội mà quá trình công nghiệp hóa, hiện đại hóa diễn ra từng ngày. Khi học môn này, người học không chỉ được học về cấu trúc vi xử lý cả phần cứng lẫn phần mềm, cách kết nối với các IC ngoại vi 8255, 8279, … mà còn phải sử dụng thành thạo Kit vi xử lý 8085,… Khi viết một chương trình trên Kit vxl 8085 và để kiểm nghiệm chương trình đó thì ngưòi học phải qua các bước : Bước 1: Xác đònh mục đích yêu cầu của chương trình. Mục đích, yêu cầu được xác đònh từ đề bài, hoặc một nhu cầu thực tế, đây là mục đích chung của chương trình. Để thực hiện mục đích chung này, có thể sẽ phải qua nhiều bước, mà mỗi bước là một mục đích cụ thể mới, được giải quyết bằng một chương trình nhỏ hơn, phát sinh trong giai đoạn viết lưu đồ. Bước 2: Vẽ lưu đồ Lưu đồ dùng để trình bày cách giải quyết vấn đề, thường thì ngôn ngữ dùng trong lưu đồ không phải là một ngôn ngữ máy xác đònh nào, lưu đồ thực chất để giúp người thảo chương chia nhỏ một chương trình lớn. Từ lưu đồ tổng quát, có thể vẽ ra lưu đồ chi tiết. Bước 3: Viết chương trình bằng ngôn ngữ gợi nhớ(ngôn ngữ Assembler). Bước 4: Chuyển sang mã máy. Bước 5: Nhập mã máy vào Kit bằng phím. Bước 6: Chạy thử chương trình và kiểm tra kết quả. Một chương trình được viết phải được chạy thử và kiểm tra kết quả, kết quả phải đúng trong mọi trường hợp cho phép (điều kiện đặt ra trước) của chương trình, và từ kết quả kiểm tra mà phán đoán, nhận đònh lỗi để sửa chương trình từ đâu, có khi phải sửa lại cả lưu đồ. Trong cách làm trên, ta nhận thấy có những khó khăn riêng sau: Quá trình dòch từ ngôn ngữ gợi nhớ sang mã máy (bước 4), đòi hỏi sự quen thuộc bảng tra mã, nếu không việc này chiềm nhiếu thời gian, và việc kiểm tra lại cũng chiếm không ít thời gian. Tại những lệnh jump, những lệnh call, cần phải xác đònh đòa chỉ cụ thể, chính xác của ô nhớ rồi mới xác đònh được lệnh jump. Việc này chỉ hoàn tất khi chương trình được dòch sang mã máy gần như đầy đủ. Ở giai đoạn nhập mã máy (bước 5), để nhập nhanh thì phải nhớ vò trí phím, phải nhập chính xác để tránh thời gian dò để sửa một chương trình nhập sai. Để nhập một byte cần gõ 3 phím và phải đối chiếuqua lại giữa bản dòch chương trình, nội dung hiển thò trên các led 7 đoạn cùng với đòa chỉ ô nhớ và bàn phím. Đối với những ai trong giai đoạn khởi đầu học lập trình vi xử lý, thì 2 việc trên luôn xẩy ra nhầm lẫn gây mất nhiều thời gian vô ích. Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m . LUÂÄN VĂN TỐT NGHIỆP 6 Từ vấn đề đặt ra như ở chương 1 đã trình bày, người thực hiện đề tài đã tiến hành giải quyết theo hướng sau: Xác đònh thiết bò giao tiếp: Kit vi xử lý 8085 đã có sẵn các IC ngoại vi 8255 làm nhiệm vụ giao tiếp, chỉ cần chọn IC, xác đònh đòa chỉ của IC đó, đòa chỉ của các port vào ra, mode hoạt động của các port, xác đònh các điểm nối kết phần cứng với máy tính và viết chương trình nhận, phát dữ liệu. Xác đònh cổng giao tiếp: đối với máy tính: chọn cổng LPT1 (mà sau này có thể phát triển để có thể sử dụng cả LPT2, COM1, COM2) với phướng pháp giao tiếp song song bất đồng bộ. Xây dựng giao diện trên màn hình máy tính:Yêu cầu cần có …… và phù hợp với người sử dụng. Sau đó tiến hành viết giải thuật, và bắt tay vào viết chương trình. Ở đây, người thực hiện đã viết chương trình truyền dữ liệu trong môi trường Borland C 3.1. Trong quá trình viết, phải giải quyết những khó khăn phát sinh một cách cụ thể. Viết chương trình truyền, nhận dữ liệu với Kit. Ghép nối các phần lại. Thử nghiệm. Sửa lỗi. Phương pháp chủ yếu là tham khảo tài liệu và thực nghiệm Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m . LUÂÄN VĂN TỐT NGHIỆP 8 I. KIT THỰC TẬP VI XỬ LÝ 8085: Kit thực tập vi xử lý 8085 là một loại máy tính chủ yếu phục vụ cho mục đích học tập và nghiên cứu thiết kế về lónh vực vi xử lý. Kit này, xuất phát tại trường ĐH Sư phạm kỹ thuật – Trung tâm Việt-Đức, và do nhu cầu học tập và nhu cầu thực tế, các giáo viên trong bộ môn Điện-Điện tử của trường đã cải tiến cho phù hợp. Mặt khác, sinh viên thuộc khoa, trong các đề tài tốt nghiệp, đồ án môn học, cùng với sự hứng thú, đã tham khảo, tìm hiểu về cấu tạo và nguyên lý hoạt động, và mở rộng thêm một số chức năng cho kit. Một Kit thực tập vi xử lý thường có các phần chính được trình bày trong sơ đồ khối ở (Hình 1). Với mục đích của đề tài này là giao tiếp song song nên trong Kit 8085, chỉ cần quan tâm đến 8085 và bộ lệnh 8085, 8255, 8279. I.1. SƠ LƯC VI XỬ LÝ 8085: Vi xử lý (microprocessor) là một thiết bò bán dẫn chứa các mạch logic điện tử có khả năng xử lý các dữ liệu, chương trình từ ngoài đưa vào để điều khiển các IC, thiết bò kết nối theo mục đích đònh trước. I.1.1. Cấu trúc phần cứng: I.1.1.1. Cấu trúc bên ngoài: 8085 là một bộ vi xử lý 8 bit do Intel sản xuất, đầu tiên vào năm 1977. Nó có khả năng đònh đòa chỉ cho bộ nhớ tới 64 Kbyte, IC này có 40 chân, dạng DIP, sử dụng nguồn đơn + 5V. Chức năng, dạng tín hiệu, trạng thái các chân của 8085 được cho ở bảng sau: Bảng 1: Chân Ký hiệu In/out 3 state Ý nghóa 1,2 X1, X2 I X1, X2 là 2 ngõvào của mạch dao động. Tần số ngõ vào được chia cho 2 bởi mạch chia bên trong. Tần số làm việc cực đạicủa: 8085A: 6MHz 8085A-2: 10MHz 8085A-1:12MHz 3 Reset Out O Cho biết CPU đang reset. Tín hiệu này có thể dùng để reset các thành phần khác trong mạch. 4 SOD O Serial Output: ngõ ra dữ liệu nối tiếp được xác đònh bởi lệnh SIM. Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m . LUÂÄN VĂN TỐT NGHIỆP 9 5 SID I Serial Input: ngõ vào dữ liệu nối tiếp, dữ liệu này được nạpàobit thứ 7 của thanh ghi Accumulator khi thực hiện lệnh RIM. 6 TRAP I Trap: tín hiệu không ngăn được. Ngõ vào trap được kích bởi cạnh lên. 7,8,9 RST 7.5, 6.5, 5.5 I Restart Intrerupt Repuest: là các tín hiệu ngắt có thể ngăn được. RST 7.5 có thể được kích bằng cạnh, RST 6.5 và 5.5 có thể được kích bằng mức. 10 INTR I Interrupt: là tín hiệu ngắt thôngdụng có thể che được lệnh kích bằng mức. 11 INTA\ O Interrupt Acknowledge: tín hiwệu dùng để báo cho thiết bò yêu cầu ngắt INTR biết rằng microprocessor đã chấp nhận yêu cầu ngắt và thiết bò yêu cầu ngắt hãy đặt lệnh lên bus dữ liệu. 19-12 AD7-AD0 I/O-3 Address/Data bus: các đường dữ liệu và các đường đòa chỉ được tích hợp chung với nhau. trạng thái T1 của chu kỳ máy, cá ngõ này đóng vai trò là các ngõ ra đòa chỉ. Các trạng thái còn lại của chu kỳ máy, nó đóng vai trò là các đường dữ liệu. 20 Vss Ground. 28-22 A15-A8 O-3 Address bus:các ngõ này được dùng để xuất 8 bit đòa chỉ cao. 30 ALE O Address Latch Ennable: ngõ này tạ ra một xungở trạng thái T1 của chu kỳ máy để xác đònh A15-A8 và AD7-AD0 là các đường đòa chỉ. 31 WR\ O-3 Write: dùng để xác đònh icroprocessor đang thực hiện lệnh ghi dữ liệu lên bộ nhớ hay IO. 32 RD\ O-3 Read: dùng để xác đònh Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m . LUÂÄN VĂN TỐT NGHIỆP 10 microprocessor đang thực hiện lệnh đọc dữ liệu từ bộ nhớ hay IO. 29,33,34 S0,S1, IO/M\ O,O-3 Machine Cycle Status: 3 bit này cho biết trạng thái chu kỳ máy. IO/M\ S1 S0 Trạng thái 0 0 1 Memory Write 0 1 0 Memory Read 0 1 1 Op-code fetch. 1 0 1 IO write. 1 1 0 IO read. 1 1 1 Interrupt Ackowledge. trạng thái dừng (halt), S1=S2=0 và IO/M\ ở trạng thái tổng trở cao. Trong khoảng thời gian Hold và reset thì trạng thái của S0 và S1 không xác đònh,IO/M\ ở trạng thái tổng trở cao. Thường thì các bit WR\, RD\ và IO/M\ dùng để xác đònh trạng thái làm việc của bus như: memory read, memory write, IO read, IO write. 35 READY I Ready là tín hiệu trả lời từ bộ nhớ hoặc thiết bò ngoại vi IO cho microprocesser biết để microprocessor có thể hoàn thành chu kỳ máy đang thực hiện. 36 RESET IN I Reset: ngõ vào reset 8085 để trở về trạng thái ban đầu của nó. Tín hiệu này phải ở mức 0 khoảng 3 chu kỳ xung clock. 37 CLK O Clock out: ngõ ra tín hiệu clock để cung cấp cho các thiết bò khác. Tần số của nó bằngtần số ngõ vào chia 2. Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m . LUÂÄN VĂN TỐT NGHIỆP 11 38 HLDA O Hold Ackowledge: tín hiệu ngõ ra cho biết tín hiệu hold đã được chấp nhận và CPU sẽ ở trạng thái Hold ở chu kỳ xung clock tiếp theo. 39 HOLD I Hold request: nhận tín hiệu yêu cầu ngưng từ bộ điều khiển DMA. 40 Vcc Power: nguồn cung cấp +5V. Các chân của IC đượïc bố trí như hình vẽ sau (hình 2): 8085 CLK(OUT) RESET(OUT) A11 S0 AD6 22 INTA Vss AD2 3 HLDA 32 35 38 15 5 S1 AD5 21 24 18 7 RST5.5 IO/M X2 RST7.5 AD1 13 10 9 8 SOD INTR WR 17 2 HOLD 28 30 39 11 4 AD4 29 31 37 40 6 1 READY X1 AD0 19 A10 A12 A15 RD SID 16 Vcc 36 14 RST6.5 20 23 26 A9 A14 ALE AD7 25 A8 A13 TRAP 27 33 12 AD3 34 RESET IN 8085 Pinout Hình 2: Sơ đồ chân và các tín hiệu của 8085 Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m . LUÂÄN VĂN TỐT NGHIỆP 12 Toàn bộ các tín hiệu của 8085 có thể đïc phân thành 6 nhóm: (1) Tuyến đòa chỉ (2) Tuyến dữ liệu (3) Các tín hiệu trạng thái và điều khiển (4) Nguồn cung cấp và các tín hiệu tần số (5) Các ngắt và các tín hiệu tần số (6) Các cổng I/O nối tiếp Hình 3: các nhóm hoạt động của 8085 I.1.1.2. Cấu trúc bên trong 8085: 8085ù bao gồm đơn vò logic và số học ALU (Arithmetic and Logic Unit), đơn vò đònh thời và điều khiển (Timing and Control Unit) , bộ giải mã và thanh ghi lệnh (Instruction Register and Decoder), dãy thanh ghi ( Register Array), điều khiển ngắt (Interrupt Control) và điều khiển I/O nối tiếp (Serial I/O Control) (xem hình 4). Control and Status Signals +5V AD7 AD0 A15 A8 SID SOD TRAP X1 X2 Vcc Vss INTR READY HOLD 8085 GND RST 7.5 RST 6.5 RST 5.5 RESET IN RESET OUT CLK OUT 28 21 19 12 30 29 33 34 32 31 11 18 35 39 36 21 21 1 2 5 4 6 7 8 9 10 40 20 ALE S0 S1 IO/M RD WR INTA HLDA High Outer Address Bus Multiplexed Address/Data Bus Serial I/O Ports Interrupts and Externally Initiated Signals . LUÂÄN VĂN TỐT NGHIỆP 13 Hình 4: Sơ đồ khối chức năng của 8085 I.1.2. Cấu trúc phần mềm: Tập lệnh của 8085 Một lệnh (Instruction) là một mẫu nhò phân (binary pattern) được thiết kế bên trong vi xử lý để thực hiện một chức năng cụ thể (Instruction set), xác đònh các chức năng mà vi xử lý có thể thực hiện. Tập lệnh của 8085 có 74 lệnh (hơn 8080 hai lệnh), các lệnh này có thể được phân thành 5 nhóm chức năng : Các hoạt động (sao chép) truyền dữ liệu Các hoạt động toán học Các hoạt động logic Các hoạt động rẽ nhánh Và, các hoạt động điều khiển Tập lệnh vi xử lý 8085 được phân thành 3 nhóm tuỳ theo kích cỡ từ : 1. Các lệnh một từ hoặc 1 byte 2. Các lệnh hai từ hoặc 2 byte 3. Các lệnh ba từ hoặc 3 byte Accumulater Address Buffer (8) AD15 - AD8 Address Bus Array Register Data Address Buffer (8) AD7 - AD0 Address Data Bus X1 X2 Power Supply +5V GND Timing and Control Interrupt Control 8 Bit Internal Data Bus (8) (8) (8) Temp. Reg. Instruction Register Instruction Decoder and Machine Cycle Encoding Flag Flip Flops Arithmatic Logic Unit (8) (ALU) CLK GEN CLK OUT READY RD WR Control Status DMA Reset ALE S0 S1 IO/M HOLD HLDA RESET IN RESET OUT INTR RST 5.5 RST 7.5 RST 6.5 TRAP INTA Stack Pointer Program Counter Incrementer / Decrementer Address Lactch Multiplexer (8) (8) (8) (8) (8) (8) (8) (8) (16) (16) (16) Reg. Reg. Reg. Reg. Reg. Reg. Re g. Sel ect W Z B C D E H L Temp. Reg. Temp. Reg. Serial I/O Control SID SOD . LUÂÄN VĂN TỐT NGHIỆP 14 Lệnh một byte chứa mã hoạt động (Opcode) và toán tử (Operand) trong cùng một byte. Trong lệnh hai byte, byte thứ nhất nêu lên mã hoạt động và theo sau là toán tử. Đối với lệnh ba byte, byte đầu tiên cho biết mã hoạt động, 2 byte theo sau là dữ liệu (nội dung hoặc đòa chỉ) 16 bit. I.2. IC NGOẠI VI 8255: I.2.1. Cấu trúc: I.2.1.1. Phần cứng: 8255 là một thiết bò I/O giao tiếp song song, nó có thể được lập trình để truyền dữ liệu dưới các điều kiện khác nhau, từ I/O đơn giản đến I/O có ngắt. Nó khá linh hoạt, đa năng và tinh tế (khi có nhiều cổng I/O được đòi hỏi), nhưng cũng phức tạp. Nó là một thiết bò I/O phổ dụng có thể được sử dụng với hầu hết bất kỳ bộ vi xử lý nào. 8255 có 40 chân dạng DIP như hình 5. Hình 5 : sơ đồ chân và Sơ đồ khối của 8255 Bảng 2: Bảng liệt kê chức năng các chân IC 8255 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 A1 A0 PB7 PB6 PB5 PB4 PB3 D0 D1 D2 D3 D4 D5 D6 D7 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 PA4 PA5 PA6 PA7 PA3 PA2 PA1 PA0 WR CS RESET GND Vcc 8255 Group A Port C Upper (4) Group A Port C Lower (4) Group B Port B (8) Group A Port A (8) Group A Control Group A Control Data Bus Buffer Read Write Control Logic I/O PA7-PA0 I/O PA7-PA0 I/O PA7-PA0 I/O PA7-PA0 Bidirectional Data Bus D7-D0 RD WR A1 A0 RESET CS RD . LUÂÄN VĂN TỐT NGHIỆP 15 Tên các chân Chức năng D7 – D0 Data bus (Bi – Direction) RESET Rest Input CS\ Chip Select RD\ Read Input WR\ Write Input A0, A1 Port Address PA7 – PA0 Port A PB7 – PB0 Port B PC7 – BC0 Port C Sơ đồ khối trên hình 5. trình bày hai cổng 8 bit (A và B) và hai cổng 4 bit (C U và C L ) bộ điện tuyến dữ liệu, và logic điều khiển. Hình 5.9 (b) trình bày một sơ đồ đơn giản hóa nhưng mở rộng của cấu trúc bên trong, chứa một thanh ghi điểu khiển. Sơ đồ khối này chứa tất cả các phần tử của một thiết bò lập trình; cổng C thực hiện chức năng tương tự chức năng của thanh ghi trạng thái, ngoài ra còn cung cấp các tín hiệu bắt tay. I.2.1.2. Phần mềm: Từ điều khiển Hình 6 trình bày một thanh ghi được gọi là thanh ghi điều khiển (control register). Nội dung của thanh ghi này, gọi là từ điều khiển (control word), nêu rõ một chức năng I/O cho mỗi cổng. Thanh ghi có thể được xâm nhập để ghi từ điều khiển. Khi A 0 và A 1 ở mức logic 1, như đã đề cập ở trên. Thanh ghi này không thể bò xâm nhập đối với hoạt động Đọc. Bit D 7 của thanh ghi điều khiển nêu rõ hoặc chức năng I/O hoặc chức năng Đặt/Đặt lại bit như phân loại trong Hình 5.8 (b). Nếu D 7 = 1các bit D 6 D 5 quyết đònh các chức năng I/O ở các mốt khác nhau. Nếu bit D 7 = 0, cổng C hoạt động ở mốt Đặt/Đặt lại bit (BSR). Từ điều khiển BSR không ảnh hưởng đến các chức năng của các cổng A và B. . . học về cấu trúc vi xử lý cả phần cứng lẫn phần mềm, cách kết nối với các IC ngoại vi 8255, 82 79, … mà còn phải sử dụng thành thạo Kit vi xử lý 8085,… Khi vi t một chương trình trên Kit vxl. chương 1 đã trình bày, người thực hiện đề tài đã tiến hành giải quyết theo hướng sau: Xác đònh thiết bò giao tiếp: Kit vi xử lý 8085 đã có sẵn các IC ngoại vi 8255 làm nhiệm vụ giao tiếp, chỉ. của các port vào ra, mode hoạt động của các port, xác đònh các điểm nối kết phần cứng với máy tính và vi t chương trình nhận, phát dữ liệu. Xác đònh cổng giao tiếp: đối với máy tính: chọn cổng