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.

pdf22 trang | Chuyên mục: Vi Xử Lý – Vi Điều Khiển | Chia sẻ: yen2110 | Lượt xem: 268 | Lượt tải: 0download
Tóm tắt nội dung Tài liệu thí nghiệm Vi xử lý - Bài 1: Thiết bị chính μPTS-31 (Microprocessor Trainning System - 31), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdftai_lieu_thi_nghiem_vi_xu_ly_bai_1_thiet_bi_chinh_pts_31_mic.pdf