1. Trang chủ
  2. » Thể loại khác

Vi xử lý phkkhanh bai3

10 174 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Vi xử lý phkkhanh bai3 tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực kinh...

Tài liệu thực hành Vi xử BÀI 3: TRUYỀN DỮ LIỆU QUA PORT  MỤC ĐÍCH Giúp sinh viên khảo sát vấn đề sau: - Sử dụng phần mềm Emu8086 để mô hoạt động vi xử 8086  THIẾT BỊ SỬ DỤNG - Máy vi tính Phần mềm Emu8086 Chương trình mơ hoạt động I/O port Cơ sở thuyết Khi giao tiếp với thiết bị ngoại vi, cách giao tiếp thơng qua 8255, ta giao tiếp trực tiếp với hệ thống thông qua mạch giải mã địa lập trình trực tiếp thơng qua địa này, thông thường ta gọi port giao tiếp Các port giao tiếp kết nối với mạch điện tử như: Led đơn, Led đoạn, … Tiến trình thực 2.1 Xuất / nhập liệu qua Port Cửa sổ chương trình IOPort.exe: Dữ liệu ghi port Dữ liệu đọc vào từ port Địa port ghi Địa port đọc  Bài 3.1: Copy file ioport.exe vào thư mục C:\Emu8086\Devices thực chương trình sau: #start=ioport.exe# model small GV: Phạm Hùng Kim Khánh Trang 30 Tài liệu thực hành Vi xử stack 100h data msg db 'Gia tri nhap:$' msg1 db 'Gia tri xuat:$' msg2 db 'Nhan ''N'' de nhap gia tri, ''X'' de xuat gia tri, ESC de thoat$' code main proc mov ax,@data mov ds,ax mov ax,02h int 10h mov mov int mov lea int ah,02h dx,0101h 10h ah,09h dx,msg 21h mov mov int mov lea int ah,02h dx,0201h 10h ah,09h dx,msg1 21h ; Chuyển toạ độ trỏ đến ; hàng 1, cột ; Xuất chuỗi msg hình ; Hàng 2, cột mov ah,02h mov dx,0D01h ; int 10h mov ah,09h lea dx,msg2 int 21h begin: mov ah,08h ; int 21h cmp al,'N' ; je Nhap cmp al,'n' je Nhap cmp al,'X' ; je Xuat cmp al,'x' je Xuat cmp al,27 ; Nhấn je exit jmp begin Hàng 13, cột Chờ phím nhấn Nhấn N nhập Nhấn X xuất ESC Nhap: GV: Phạm Hùng Kim Khánh Trang 31 Tài liệu thực hành Vi xử mov dx,300h ; Địa port nhập in al,dx mov dx,010Eh ; Hàng 1, cột 15 mov ah,02h mov bh,0 int 10h call Xuatthapphan ; Xuất giá trị vừa nhập jmp begin Xuat: mov dx,020Eh ; Hàng 2, cột 15 mov ah,02h mov bh,0 int 10h call Nhapthapphan ; Nhập giá trị từ bàn phím mov dx,301h out dx,al ; Xuất port có địa 301h jmp begin exit: mov ah,4Ch int 21h main endp Xuatthapphan proc mov ah,0 ; Xuất số hàng trăm mov bl,100 div bl push ax mov dl,al add dl,'0' mov ah,02h int 21h pop ax mov al,ah mov ah,0 mov bl,10 div bl push ax mov dl,al add dl,'0' mov ah,02h int 21h pop ax ; Xuất số hàng chục mov add mov int ret ; Xuất số hàng đơn vị dl,ah dl,'0' ah,02h 21h GV: Phạm Hùng Kim Khánh Trang 32 Tài liệu thực hành Vi xử Xuatthapphan endp ; -Nhapthapphan proc mov ah,01h ; Nhập số hàng trăm int 21h sub al,'0' mov ah,0 mov bl,100 mul bl mov bh,al mov int sub mov mov mul add ah,01h 21h al,'0' ah,0 bl,10 bl bh,al ; Nhập số hàng chục mov ah,01h ; Nhập số hàng đơn vị int 21h sub al,'0' add al,bh ret Nhapthapphan endp END main - Thực thi chương trình - Nhấn nút ‘N’, quan sát giá trị nhập.trên hình Dùng chương trình IOPort thay đổi giá trị địa 300h nhấn ‘N’ Quan sát nhận xét kết - Nhấn nút ‘X’, nhập số thập phân có chữ số quan sát giá trị thay đồi địa 301h chương trình IOPort  Bài 3.2: Thực lại 3.1 thay đổi port nhập 202h port xuất 302h chương trình IOPort  Bài 3.3: Thực 3.1 xuất hình giá trị thập lục phân  Bài 3.4: Thực 3.1 xuất hình giá trị nhị phân  Bài 3.5: Thực 3.1 khơng nhập giá trị từ bàn phím mà lấy giá trị nhập từ port nhập để đưa port xuất GV: Phạm Hùng Kim Khánh Trang 33 Tài liệu thực hành Vi xử 2.2 Điều khiển Led đoạn Cửa sổ chương trình Led đoạn: Địa Led Hiển thị theo mã Led Số lượng Led hiển thị (1 – Led) Hiển thị theo số nhị phân từ – 9, A - F Cho phép dấu chấm hay không GV: Phạm Hùng Kim Khánh Trang 34 Tài liệu thực hành Vi xử Đối với phần hiển thị Led seg, quy ước Led dạng cathode chung (nghĩa Led sáng tương ứng bit điều khiển = 1) va thứ tự từ MSB đến LSB là: dp -> g -> f -> e -> d -> c -> b -> a  Bài 3.6: Copy file Led7seg.exe vào thư mục C:\Emu8086\Devices thực chương trình sau (dùng chế độ hiển thị chương trình Led7seg Binary): #start=led7seg.exe# model small stack 100h data code main proc mov ax,@data mov ds,ax mov ax,02h int 10h mov al,1 ; Xuất mov dx,300h out dx,al mov al,2 ; Xuất mov dx,301h out dx,al mov al,3 ; Xuất mov dx,302h out dx,al mov al,4 ; Xuất mov dx,303h out dx,al mov ah,4Ch int 21h main endp END main  Bài 3.7: Thực chương trình sau (dùng chế độ hiển thị chương trình Led7seg Binary): #start=led7seg.exe# model small stack 100h data code main proc mov ax,@data mov ds,ax mov ax,02h int 10h mov ax,2345 call XuatLED mov ah,4Ch int 21h GV: Phạm Hùng Kim Khánh Trang 35 Tài liệu thực hành Vi xử main endp XuatLED proc ; Xuất nội dung ghi AX Led mov dx,0 mov bx,1000 ; Chia cho 1000 div bx ; AX = thương số (số hàng ngàn) ; DX = số dư push dx mov dx,300h ; Xuất Led out dx,al pop dx mov mov mov div ax,dx dx,0 bx,100 bx ; Chia cho 100 ; AX = số hàng trăm push dx mov dx,301h out dx,al pop dx mov mov mov div ax,dx dx,0 bx,10 bx ; Chia cho 10 ; AX = số hàng chục push dx mov dx,302h out dx,al pop dx mov ax,dx mov dx,303h out dx,al ret XuatLED endp END main ; Xuất số hàng đơn vị  Bài 3.8: Đếm giá trị tăng dần Led đoạn từ 0000 đến 2345 (chế độ hiển thị Binary)  Bài 3.9: Thực chương trình sau (dùng chế độ hiển thị chương trình Led7seg Led seg): #start=led7seg.exe# model small stack 100h data code main proc GV: Phạm Hùng Kim Khánh Trang 36 Tài liệu thực hành Vi xử mov mov mov int ax,@data ds,ax ax,02h 10h mov al,06h mov dx,300h out dx,al ; Mã số mov al,3Fh mov dx,301h out dx,al ; Mã số mov al,7Fh mov dx,302h out dx,al ; Mã số mov al,6Fh mov dx,303h out dx,al : Mã số mov ah,4Ch int 21h main endp END main  Bài 3.10: Thực chương trình sau (dùng chế độ hiển thị chương trình Led7seg Led seg): #start=led7seg.exe# model small stack 100h data MaLed7 db 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh code main proc mov ax,@data mov ds,ax mov ax,02h int 10h mov ax,1234 call XuatLED mov ah,4Ch int 21h main endp XuatLED proc ; Xuat noi dung ghi AX Led mov dx,0 GV: Phạm Hùng Kim Khánh Trang 37 Tài liệu thực hành Vi xử mov bx,1000 div bx push dx mov bx,ax mov al,MaLed7[bx]; Chuyển sang mã Led đoạn mov dx,300h ; trước xuất out dx,al pop dx mov mov mov div ax,dx dx,0 bx,100 bx push dx mov bx,ax mov al,MaLed7[bx] mov dx,301h out dx,al pop dx mov ax,dx mov dx,0 mov bx,10 div bx push dx mov bx,ax mov al,MaLed7[bx] mov dx,302h out dx,al pop dx mov ax,dx mov bx,ax mov al,MaLed7[bx] mov dx,303h out dx,al ret XuatLED endp END main  Bài 3.11: Đếm giá trị tăng dần Led đoạn từ 0000 đến 1234 (chế độ hiển thị Led seg) GV: Phạm Hùng Kim Khánh Trang 38 Tài liệu thực hành Vi xử GV: Phạm Hùng Kim Khánh Trang 39 ...Tài liệu thực hành Vi xử lý stack 100h data msg db 'Gia tri nhap:$' msg1 db 'Gia tri xuat:$' msg2 db 'Nhan ''N'' de nhap... phím nhấn Nhấn N nhập Nhấn X xuất ESC Nhap: GV: Phạm Hùng Kim Khánh Trang 31 Tài liệu thực hành Vi xử lý mov dx,300h ; Địa port nhập in al,dx mov dx,010Eh ; Hàng 1, cột 15 mov ah,02h mov bh,0 int... Xuất số hàng đơn vị dl,ah dl,'0' ah,02h 21h GV: Phạm Hùng Kim Khánh Trang 32 Tài liệu thực hành Vi xử lý Xuatthapphan endp ; -Nhapthapphan proc mov ah,01h ; Nhập số hàng trăm int 21h sub al,'0'

Ngày đăng: 21/01/2018, 11:37

Xem thêm:

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN