Tài liệu thí nghiệm Vi xử lý - Bài 1: Thiết bị chính μPTS-31 (Microprocessor Trainning System - 31)
MỤC ĐÍCH THÍ NGHIỆM
Giúp sinh viên bằng thực nghiệm khảo sát các vấn đề chính sau đây :
- Giao tiếp với máy tính thông qua khe cắm mở rộng (open slot).
- Dùng 8255A điều khiển nhập / xuất dữ liệu.
THIẾT BỊ SỬ DỤNG
1. Bộ thí nghiệm μPTS-31.
2. Máy vi tính.
PHẦN I : CƠ SỞ LÝ THUYẾT
I. GIỚI THIỆU
Máy vi tính chính là một hệ thống vi xử lý lớn và hoàn hảo, trong máy tính đã
cung cấp các khe cắm mở rộng trên đó có đầy đủ các bus địa chỉ (address bus), bus dữ
liệu (data bus) và bus điều khiển (control bus) như một hệ thống vi xử lý thông
thường. Ngoài ra các hệ thống giao tiếp của máy tính như màn hình, bàn phím, chuột
và các phần mềm giúp ta dễ dàng ghi và thử giải thuật cho một đoạn chương trình
mong muốn. Sau đó từ giải thuật này ta chuyển sang ngôn ngữ cho từng loại vi xử lý
riêng. Ngoài ra nó còn dễ dàng giúp cho người nghiên cứu về Vi xử lý thấy được bằng
thực tế các vấn đề khi xây dựng và thiết kế các hệ thống vi xử lý.
Đặc điểm của thiết bị chính μPTS-31 nó tương thích với các máy tính IBM PC.
Ngôn ngữ lập trình có thể dùng các ngôn ngữ thông dụng, dễ học như Pascal,
Assembly, QBasic, C++. Ngoài ra các bộ đệm, bộ phối hợp cho phép điều khiển trực
tiếp Relay, Led, ma trận LED, bàn phím, loa, động cơ, .
Các thiết bị có trong bộ thí nghiệm vi xử lý:
– Các mạch giao tiếp I/O độc lập cho phép nối với các hệ thống khác.
– Trên thiết bị chính có 1 TEST BOARD để dễ dàng trong khi thí nghiệm và
thiết kế.
– Sử dụng các khối Module đi kèm để thực hành và thí nghiệm.
– Các phần chương trình đi kèm viết bằng hợp ngữ (Assembly) cho một số
ứng dụng minh họa như truyền dữ liệu, quang báo.
hính μPTS-31 được thiết kế sẵn để sử dụng trong các bài thí nghiệm cũng như trong các ứng dụng phát triển mở rộng sau này. VI. THIẾT BỊ TƯƠNG TỰ Để điều khiển thiết bị tương tự từ máy tính ở đây sử dụng một bộ khuếch đại loa. Trong mạch dùng OP-AMP LM 386 để tạo thành mạch khuếch đại. Ngõ vào đảo (V-) nối xuống GND, ngõ vào không đảo (V+) nối trực tiếp vào PC4 / U5 thông qua R18 và C2. Do chỉ có 2 mức áp ra ở chân PC4 là 0V hay 5V, ta dùng xung vuông để tạo tín hiệu âm thanh ra loa. Mạch tương tự có địa chỉ là Port PC4 / U9. CON6 RS-232C 5 9 4 8 3 7 2 6 1 CON7 1 2 3 4 5 Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù Trang 13 +5V SÔ ÑOÀ PART D VAØ KHOÁI TÖÔNG TÖÏ C2 10uF R18 10K R19 10K LM386 + - 3 2 5 6 1 4 8 7 R20 22 C5 220uF C3 0.1 uF SPEAKER PC4/U5 VII. BỘ ĐỆM DỮ LIỆU VÀ ĐỆM GIẢI MÃ Dùng để đưa dữ liệu và các tín hiệu điều khiển ra cho các bài thí nghiệm. Lối vào của Part C được nối tới ngõ ra của bộ đệm dữ liệu Part A trên thiết bị chính. Các kết nối như sau: - Đường chọn hướng truyền dữ liệu DIR nối vào IOR . - Đường chọn linh kiện nối vào CS . Do đó khi đọc thì IOR = 0 và CS = 0 cho phép linh kiện và hướng truyền dữ liệu từ B → A (hướng từ ngoài vào thiết bị chính) . Ngược lại khi ghi thì CS = 0 và IOR = 1 nên hướng dữ liệu là từ A → B (hướng từ thiết bị chính ra ngoài). Vì 74LS155 có 2 bộ đệm ta sử dụng nó để đưa ra 2 đầu nối CON4 và CON5 để làm 2 ngõ ra các tín hiệu điều khiển với: ♦ CON 4 là ngõ ra tín hiệu điều khiển Đọc. ♦ CON 5 là tín hiệu điều khiển Ghi. Cả hai ngõ ra này có cùng một địa chỉ so với máy tính (từ 310h tới 31Fh). Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù Trang 14 +5V +5V A3 A2 /IOW D7 /CS /IOR D6 D5 D4 D3 D2 D1 D0 U13 74155 A 13 B 3 1G 2 1C 1 2G 14 2C 15 1Y0 7 1Y1 6 1Y2 5 1Y3 4 2Y0 9 2Y1 10 2Y2 11 2Y3 12 U11 74LS245 A1 2 A2 3 A3 4 A4 5 A5 6 A6 7 A7 8 A8 9 G 19 DIR 1 B1 18B2 17B3 16B4 15B5 14B6 13B7 12B8 11 U12D 7404 9 8 CON4 1 2 3 4 CON5 1 2 3 4 CON3 1 2 3 4 5 6 7 8 C2 .01 C1 .01 BỘ ĐỆM DỮ LIỆU VÀ GIẢI MÃ (PART C) 3 Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù Trang 15 Bảng 1.9: Địa chỉ các ngõ ra giải mã và dữ liệu trên bộ giải mã và đệm dữ liệu NGÕ RA A15-A13 A12-A4 A3 A2 A1 A0 ĐỊA CHỈ 0 0 0 0 310h 1Y0,2Y0 000 000110001 0 0 0 1 311h 0 0 1 0 312h 0 0 1 1 313h 0 1 0 0 314h 1Y1,2Y1 000 000110001 0 1 0 1 315h 0 1 1 0 316h 0 1 1 1 317h 1 0 0 0 318h 1Y2,2Y2 000 000110001 1 0 0 1 319h 1 0 1 0 31Ah 1 0 1 1 31Bh 1 1 0 0 31Ch 1Y3,2Y3 000 000110001 1 1 0 1 31Dh 1 1 1 0 31Eh 1 1 1 1 31Fh – Chốt ra 1Y0, 2Y0 có địa chỉ từ 310h tới 313Hh. – Chốt ra 1Y1, 2Y1 có địa chỉ từ 314h tới 317h. – Chốt ra 1Y2, 2Y2 có địa chỉ từ 318h tới 31Bh. – Chốt ra 1Y3, 2Y3 có địa chỉ từ 31Ch tới 31Fh. PHẦN II : TIẾN TRÌNH THÍ NGHIỆM I. KHẢO SÁT LED 8 Led dữ liệu được kết nối với Port A của U5 (có địa chỉ là 300h), như vậy nếu muốn xuất dữ liệu ra Led, ta dùng lệnh OUT DX,AL trong đó DX chứa địa chỉ của Led (300h) và AL chứa dữ liệu muốn xuất ra Led. - Vào thư mục: C:\TNVXL\TASM - Dùng NCEdit tạo đoạn chương trình sau, lưu lại với tên Led_uPTS.asm: .model small .stack 100h .data .code main proc mov ax,@data mov ds,ax mov ax,02h int 10h ;Xóa màn hình mov al,82h ;PA: XUẤT, PB: NHẬP, PC: XUẤT mov dx,303h ;Địa chỉ CR của U5 out dx,al ;Định cấu hình cho U5 Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù Trang 16 mov dx,300h ;Địa chỉ Port A (nối với Led) mov al,0Fh out dx,al exit: mov ah,4Ch ;Kết thúc chương trình int 21h main endp END main - Tại dấu nhắc DOS gõ lệnh: tasm Led_uPTS.asm - Nếu chương trình không có lỗi sẽ tạo thành file Led_uPTS.obj, tiếp tục gõ lệnh: tlink Led_uPTS.obj - Ta có thể tạo một file .bat để thực hiện 2 quá trình trên (ví dụ như compiler.bat): Nội dung file .bat như sau (giả sử dùng file compiler.bat): tasm %1.asm tlink /v %1.obj Gõ lệnh compiler.bat Led_uPTS để thực hiện dịch chương trình - Chương trình sẽ tạo thành file Led_uPTS.exe - Tại dấu nhắc DOS, gõ lệnh Led_uPTS để thực thi chương trình vừa tạo. Sửa lại chương trình để thực hiện sáng Led tuần tự từ trái sang phải: .model small .stack 100h .data pa db 01h,02h,04h,08h,10h,20h,40h,80h .code main proc mov ax,@data mov ds,ax mov ax,02h int 10h ;Xóa màn hình mov al,82h ;PA: XUẤT, PB: NHẬP, PC: XUẤT mov dx,303h ;Địa chỉ CR của U5 out dx,al ;Định cấu hình cho U5 mov bx,0 mov dx,300h ; Địa chỉ Led next1: mov al,pa[bx] out dx,al Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù Trang 17 mov cx,0FFh next2: call delay; Tạo thời gian trễ loop next2 inc bx cmp bx,8 ; Led có 8 trạng thái jne next1 exit: mov ah,4Ch ; Kết thúc chương trình int 21h main ENDP ;--------------------------------------------- delay proc push cx mov cx,0FFFFh loop $ pop cx ret delay endp END main Ngoài ra, ta có thể dùng hàm 0Bh của ngắt 21h để tạo vòng lặp vô tận, chờ cho đến khi nhấn phím bất kỳ sẽ kết thúc chương trình. start: mov ah,0Bh int 21h cmp al,0FFh je exit exit: mov ah,4Ch int 21h Sinh viên thực hiện thay đổi dữ liệu để Led chạy theo một kiểu tùy ý: nhấp nháy 2 Led giữa 10 lần, sáng dần các Led từ trái sang phải, II. KHẢO SÁT LOA Loa nối với Port C của U5, để phát âm thanh ra Loa, ta phải gởi một chuỗi xung ra loa có dạng như sau: 0 1 Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù Trang 18 Loa nối với PC4 của U5 nên muốn tạo 2 mức logic 0 và 1 ở loa, ta phải tạo 2 mức logic 0 và 1 ở PC4. Hai mức logic này có thể tạo nhờ chế độ BSR (Bit Set/Reset) của U5. Set bit PC4 = 1 : từ điều khiển = 0000 1001b (09h) Reset bit PC4 = 0 : từ điều khiển = 0000 1000b (08h) Lưu ý rằng: chế độ BSR tác động lên Port C nhưng phải gởi dữ liệu ra thanh ghi điều khiển. Ta có chương trình phát âm thanh ra loa như sau: .model small .stack 100h .data .code main proc mov ax,@data mov ds,ax mov al,82h mov dx,303h out dx,al call speaker exit: mov ah,4Ch int 21h main endp ;--------------------------------------------- speaker proc push ax ; Lưu lại giá trị các thanh ghi push cx push dx mov cx,30 ; Tạo 30 xung speak: mov dx,303h ; Địa chỉ CR mov al,09h ; Set bit PC4 = 1 out dx,al call delay mov dx,303h mov al,08h ; Reset bit PC4 = 0 out dx,al call delay loop speak Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù Trang 19 pop dx ; Lấy lại nội dung các thanh ghi pop cx pop ax ret speaker endp ;--------------------------------------------- delay proc push cx mov cx,0FFFFh loop $ pop cx ret delay endp END main - Thay đổi chương trình để loa kêu liên tục cho đến khi nhấn một phím bất kỳ thì kết thúc. - Thay đổi chương trình để loa kêu 10 lần thì kết thúc (gợi ý: tạo vòng lặp gọi chương trình speaker 10 lần, giữa mỗi lần tạo chương trình tạo trễ giống như đoạn chương trình in nghiêng trong phần I). - Viết chương trình điều khiển Led sao cho mỗi lần Led sáng thì phát âm thanh ra loa. III. KHẢO SÁT RELAY Các Relay được nối với Port C của U5. Do đó, nếu muốn đóng Relay nào, ta sẽ cho bit tương ứng của Port C = 1 còn nếu muốn ngắt Relay thì sẽ cho bit tương ứng = 0. VD: Đóng RL1 (PC5 = 1): từ điều khiển 0000 1011b = 0Bh Ngắt RL1 (PC5 = 0): từ điều khiển 0000 1010b = 0Ah Chương trình đóng lần lượt các Relay 1, 2, 3 và sau đó ngắt các Relay này theo thứ tự 3, 2, 1: .model small .stack 100h .data .code main proc mov ax,@data mov ds,ax mov al,82h mov dx,303h out dx,al Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù Trang 20 mov al,0Bh mov dx,303h out dx,al call delay1 mov al,0Fh mov dx,303h out dx,al call delay1 mov al,0Dh mov dx,303h out dx,al call delay1 mov al,0Ch mov dx,303h out dx,al call delay1 mov al,0Eh mov dx,303h out dx,al call delay1 mov al,0Ah mov dx,303h out dx,al call delay1 exit: mov ah,4Ch int 21h main endp ;--------------------------------------------- delay proc push cx mov cx,0FFFFh loop $ pop cx ret delay endp ;--------------------------------------------- delay1 proc push cx Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù Trang 21 mov cx,0FFh dlay1: call delay loop dlay1 pop cx ret delay1 endp END main - Viết chương trình đóng và ngắt lần lượt các Relay 2,3, mỗi lần đóng hay ngắt thì phát âm thanh ra loa. IV. KHẢO SÁT CÔNG TẮC NHẤN SW Công tắc nhấn được nối với Port B của U5, khi nhấn SW thi bit tương ứng của Port B sẽ = 0 còn nếu không nhấn thì bằng 1. Như vậy, muốn kiểm tra công tắc nào được nhấn, ta phải kiểm tra bit tương ứng của Port B. Đoạn chương trình kiểm tra công tắc nhấn như sau: start: mov dx,301h ; Địa chỉ Port B in al,dx and al,11110000b ; Che 4 bit thấp cmp al,10110000b ; Kiểm tra công tắc 1 je SW1 ; Nếu nhấn SW1 cmp al,11010000b ; Kiểm tra công tắc 2 je SW2 cmp al,11100000b ; Kiểm tra công tắc 3 je SW3 cmp al,01110000b ; Kiểm tra công tắc 4 je SW4 jmp start ;--------------------------------------------- SW1: ; tùy yêu cầu jmp start SW2: ; tùy yêu cầu jmp start SW3: ; tùy yêu cầu jmp start SW4: ; tùy yêu cầu jmp start ;--------------------------------------------- END main Phoøng thí nghieäm Vi xöû lyù Baøi thí nghieäm Vi xöû lyù Trang 22 - Viết chương trình kiểm tra các công tắc: Nhấn SW1: đóng RL1, phát âm thanh ra loa Nhấn SW2: đóng RL2, phát âm thanh ra loa Nhấn SW3: nhấp nháy đồng thời 2 Led 0 và 7 5 lần Nhấn SW4: tắt các Led, ngắt RL1, RL2 và kết thúc chương trình.
File đính kèm:
- tai_lieu_thi_nghiem_vi_xu_ly_bai_1_thiet_bi_chinh_pts_31_mic.pdf