Tải bản đầy đủ (.pdf) (51 trang)

BÁO cáo THỰC HÀNH bộ môn vi xử ly bài THÍ NGHIỆM 1 lập TRÌNH GIAO TIẾP nút NHẤN đơn và LED

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (407.23 KB, 51 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH


BÁO CÁO THỰC HÀNH
Bợ mơn: Vi Xử Lý
Giảng viên hướng dẫn: Trịnh Vũ Đăng Nguyên

LỚP DT01 - HK 213
NGÀY NỘP:.............................
Thành viên:
Họ và Tên
Huỳnh Minh Trí
Trần Ngọc Phương Linh
Ngưu Tuấn Giang
Nguyễn Văn Cao Minh

MSSV
2012279
1913962
1913192
1914172

TIEU LUAN MOI download : moi nhat


MỤC LỤC

BÀI THÍ NGHIỆM 1.......................................................................................................1
Thí nghiệm 1................................................................................................................... 1
Thí nghiệm 2................................................................................................................... 2


Thí nghiệm 3................................................................................................................... 4
Thí nghiệm 4................................................................................................................... 6
Thí nghiệm 5................................................................................................................... 7
Thí nghiệm 6................................................................................................................... 8
Thí nghiệm 7................................................................................................................... 9
Thí nghiệm 8................................................................................................................. 11
BÀI THÍ NGHIỆM 2.....................................................................................................14
Thí nghiệm 1......................................................................................................................................14
Thí nghiệm 2......................................................................................................................................17
Thí nghiệm 3......................................................................................................................................20
Thí nghiệm 4......................................................................................................................................24
Thí nghiệm 5......................................................................................................................................29
Thí nghiệm 6......................................................................................................................................31
BÀI THÍ NGHIỆM 3.....................................................................................................32
Thí nghiệm 1................................................................................................................. 32
Thí nghiệm 2................................................................................................................. 33
Thí nghiệm 3................................................................................................................. 36
Thí nghiệm 4................................................................................................................. 40
Thí nghiệm 5................................................................................................................. 41
Thí nghiệm 6................................................................................................................. 45
Thí nghiệm 7................................................................................................................. 48

Department of Electronics

Page | 0

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat



BÀI THÍ NGHIỆM 1
LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED
Thí nghiệm 1
Mục tiêu: Nắm được cách thức điều khiển trực tiếp ngoại vi thông qua các port I/O của
8051.
Yêu cầu: Viết chương trình thực hiện việc đọc liên tục trạng thái của nút nhấn được nối
đến P1.0 và hiển thị ra led được nối tại chân P3.0 (bit thứ 0 của led thanh BL202).
Code:
ORG 2000H
LOOP:
        MOV C, P1.0
        MOV P3.0, C
        SJMP LOOP
END
Kiểm tra:
 Biên dịch và thực thi chương trình để kiểm tra kết quả thực hiện.
-

Kết quả thực hiện: Khi nhấn Switch nối với P1.0, đèn của Port 1.0 và 3.0 đều sáng.

Câu hỏi:
 Thử giải thích tại sao có đến 2 led cùng bị tác động khi nhấn hoặc thả nút?
-

Giải thích: Khi nhấn Switch nối với Port 1.0 thì Cathode của LED nối với P1.0
được nối Ground, trong khi đó Anode được nối với VCC nên LED sáng. LED nối
với P3.0 sáng là do chương trình trên đã được nạp vào vi xử lý.

 Tổng kết xem các bit nào của 2 port có thể được dùng trong thí nghiệm trên và giải

thích tại sao?
Các bit từ 0 đến 7 của 2 port có thể được dùng vì đây là các cổng nhập xuất nhập 8 bit
tính từ bit 0 đến 7.
Department of Electronics

Page | 1

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat


BÀI THÍ NGHIỆM 1
LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED
Thí nghiệm 2
Mục tiêu: Nắm được cách viết chương trình con để tạo trễ
Yêu cầu:
 Viết chương trình con Delay1s.
Code:
Delay1s:
        MOV R5, #8
        Loop1: MOV R6, #250
        Loop2: MOV R7, #250
                DJNZ R7, $
                DJNZ R6, Loop2
                DJNZ R5, Loop1
RET
 Dùng chương trình con đã viết để chớp/tắt LED đơn gắn vào P1.0 sau mỗi khoảng
thời gian 1s.
Code:

ORG 2000H
LAP:
        CPL P1.0
        LCALL Delay1sIns
SJMP LAP
Delay1sIns:
        MOV R5, #8
        L1: MOV R6, #250
        L2: MOV R7, #250
                DJNZ R7, $
                DJNZ R6, L2
Department of Electronics

Page | 4

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 1
LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED
                DJNZ R5, L1
RET
END
 Thay đổi chương trình con để tần số chớp tắt bây giờ là 1KHz.
Code:
Delay: MOV R5, #2

LOOP:
MOV R6, 250
    DJNZ R6, $
     DJNZ R5, LOOP
RET
Kiểm tra:
 Biên dịch, thực thi và kiểm tra chương trình bằng cách quan sát LED đơn.
Câu hỏi:
 Thời gian 1s được tạo ra như thế nào? Tính tốn chính xác dựa trên chương trình
đã viết.
 Sai số nhỏ nhất có thể đạt được so với yêu cầu là bao nhiêu?
 Khi tần số chớp tắt là 1Khz, cho biết hiện tượng trên LED?
-

LED chớp nháy rất nhanh và hầu như không thể nhận biết hiện tượng chớp nháy.

 Sinh viên thay đổi chương trình con như thế nào để được tần số chớp tắt là 1KHz?
-

Tần số chớp tắt fled = 1 KHz => Tled = 1/1000 = 10-3 s
 Tạo chương trình tạo trễ 10-3/2=0.0005s

Department of Electronics

Page | 3

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED



BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 1
LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED
Thí nghiệm 3
Mục tiêu: Nắm được cách viết chương trình con để tạo trễ
Yêu cầu: Viết chương trình tạo 2 xung vuông 0.5Hz (chu kỳ nhiệm vụ 50%) và 1Hz (chu
kỳ nhiệm vụ là 30%) lần lượt trên chân P1.0 và P1.1.
Code:
ORG 2000H
LOOP1:
        CPL P1.0
        ACALL DelayP1-0
SJMP LOOP1
LOOP2:
        SETB P1.1
        ACALL DelayP1-1muccao
        CLR P1.1
        ACALL DelayP1-1mucthap
SJMP LOOP2
END
DelayP1-0:
        MOV R5, #11
        L1: MOV R6, #200
        L2: MOV R7, #209
        DJNZ R7, $
        DJNZ R6, L2
        DJNZ R5, L1

RET
DelayP1-1mucthap:  
        MOV R5, #5
        L1: MOV R6, #255
        L2: MOV R7, #254
DJNZ R7, $
Department of Electronics

Page | 4

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 1
LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED
        DJNZ R6, L2
        DJNZ R5, L1
RET
DelayP1-1muccao:
        MOV R5, #3
        L1: MOV R6, #220
        L2: MOV R7, #210
        DJNZ R7, $
        DJNZ R6, L2
        DJNZ R5, L1

RET
Kiểm tra:
 Biên dịch, thực thi và kiểm tra chương trình bằng cách sử dụng oscilloscope để
kiểm tra.
Câu hỏi:

 Vẽ giản đồ của 2 xung? Các chương trình con viết với thời gian trễ là bao nhiêu?
 Tại mỗi thời gian tạo trễ, các chân P1.0 và P1.1 xuất tín hiệu như thế nào?
 Để tạo các xung thỏa u cầu bài tốn, các vịng trễ được viết như thế nào?
-

Xung 0.5 Hz có chu kỳ là 2 s; nhiệm vụ 50% nên thời gian xung ở mức 1 = thời
gian ở mức 0 = 1 s. Sử dụng 1 lệnh DJNZ mất 2MCs = 2 * 12/11.0592=2.17 µs =>
Lặp lại 106/2.17=460830 lần = 209*200*11.

-

Xung 1 Hz có chu kỳ là 1 s; nhiệm vụ 30% nên thời gian xung ở mức 1 = 0.3s =>
Lặp 138250 lần = thời gian xung ở mức 0 = 0.7s => Lặp 322580 lần = 254*255*5.

Department of Electronics

Page | 5

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED



BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 1
LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED
Thí nghiệm 4
Mục tiêu: Nắm được cách hiển thị bar LED và tạo hiệu ứng
Yêu cầu: Viết chương trình tạo hiệu ứng quay LED: các LED đơn trên BARLED1 sáng
lần lượt từ trái sang phải sau thời gian 1s và lặp lại. Sử dụng chương trình con Delay1s đã
viết ở trên.
Code:
ORG 2000H
        MOV A, #01111111b
        LAP:
                MOV P1, A
                LCALL Delay1sIns
                RR A
        SJMP LAP
Delay1sIns:
        MOV R5, #8
        L1: MOV R6, #250
        L2: MOV R7, #250
                DJNZ R7, $
                DJNZ R6, L2
                DJNZ R5, L1
RET
END
Kiểm tra:
 Biên dịch, thực thi và kiểm tra chương trình bằng cách quan sát hiệu ứng trên bar
led.


Department of Electronics

Page | 6

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 1
LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED
Câu hỏi:
 Led ngoài cùng bên trái kết nối đến MSB (most significant bit) hay LSB (less
significant bit) của port 1?
-

LED ngoài cùng bên trái kết nối với MSB của port 1

Thí nghiệm 5
Mục tiêu: Nắm được cách thức giao tiếp với ngoại vi LED 7 đoạn
Yêu cầu:
 Viết chương trình con DisplayLed hiển thị lên LED 7 đoạn số 0 giá trị chứa trong
thanh ghi R0
DislayLed:
        MOV A, #0E0H
        ADD A, R0
        MOV DPTR, #0000H

        MOVX @DPTR, A
RET
 Viết chương trình chính hiển thị số 9 lên LED 7 đoạn số 0 bằng cách cho R0 bằng
9 và gọi chương trình con DisplayLed.
ORG 2000H
Main:
        MOV R0, #9
        LCALL DislayLed
DislayLed:
        MOV A, #0E0H
        ADD A, R0
MOV DPTR, #0000H
Department of Electronics

Page | 7

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 1
LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED
        MOVX @DPTR, A
RET
END


Thí nghiệm 6
Mục tiêu: Kết hợp được các chương trình con: chương trình con tạo trễ và chương trình
con hiển thị LED 7 đoạn.
Yêu cầu: Viết chương trình hiển thị lên LED 7 đoạn số 0 các con số từ 0 đến 9 sau các
khoảng thời gian 1s sử dụng 2 chương trình con ở Thí nghiệm 2 và Thí nghiệm 5.
ORG 2000H
MAIN:   MOV R0, #0
LOOP:   LCALL DislayLed
        Delay1s
        INC R0
        CJNE R0, #10, LOOP
        SJMP MAIN
DislayLed:
        MOV A, #0E0H
        ADD A, R0
        MOV DPTR, #000H
        MOVX @DPTR, A
RET
Delay1s: MOV R7, #8
Department of Electronics

Page | 8

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BÀI THÍ NGHIỆM 1
LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED
LOOP1: MOV R6, #250
LOOP2: MOV R5, #250
        DJNZ R5, $
        DJNZ R6, LOOP2
        DJNZ R7, LOOP1
END
Kiểm tra:
 Biên dịch, thực thi và kiểm tra chương trình.
Câu hỏi:
 Vẽ lưu đồ giải thuật của chương trình.

Thí nghiệm 7
Mục tiêu: Nắm được cách thức dùng chương trình con và giao tiếp LED 7 đoạn.
Yêu cầu:
Viết chương trình con DisplayLED xuất giá trị chứa trong thanh ghi R0 lên LED 7 đoạn
có số thứ tự chứa trong thanh ghi R1. Trong đó:
R0 nằm trong tầm từ 0-9 và R1 trong tầm từ 0-3.
Sau đó dùng chương trình con này viết chương trình chính xuất giá trị 1 lên LED 7 đoạn
số 3.
Department of Electronics

Page | 9

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED



BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 1
LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED
DisplayLED:
        MOV B, R1 ;Đưa nội dung trong R1 vào B
        INC B ;Tăng giá trị B lên 1
        MOV A,  #11110111B ;bit số 3 bằng 0, bốn bit cao bằng 1
SHIFTLOOP:
        RL A ;Xoay trái A
        DJNZ B, SHIFTLOOP ;Giảm B đi 1, nếu khác 0 thì quay lại
nhãn SHIFTLOOP
        ANL A,  #0F0H ;Nếu B giảm đến 0 thì giữ lại 4 bit cao của
A
        PUSH ACC ;Cất Acc vào StackPointer
        MOV A,  R0 ;Đưa nội dung R0 vào A
        ANL A, #0FH ;Giữ lại 4 bit thấp của A
        MOV R0, A ;Đua nội dung của A vào R0
        POP ACC ;Lấy lại A từ StackPointer
        ORL A,  R0 ;Cộng A với R0, rồi lưu vào A
RET
Kiểm tra:
 Biên dịch, thực thi và kiểm tra chương trình
Câu hỏi:
Viết lại chương trình trên bằng phương pháp sử dụng bảng tra (Lookup table).
DisplayLED:    
        MOV DPTR,#TABLE
        MOV A,R1

        MOVC A,@A+DPTR
        ADD A,R0
        MOV DPTR, #0000H
        MOVX @DPTR, A
RET
TABLE: DB 0E0H, 0D0H, 0B0H,70H
Department of Electronics

Page | 10

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 1
LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED
Thí nghiệm 8
Mục tiêu:
 Nắm được phương pháp quét LED 7 đoạn.
Yêu cầu:
Viết chương trình hiển thị số 1 lên LED7 đoạn 0, sau đó 1s hiển thị số 2 lên LED 7 đoạn
1, sau đó 1s hiển thị số 3 lên LED 7 đoạn 2, sau đó 1s hiển thị số 4 lên LED 7 đoạn 3. Quá
trình này lặp đi lặp lại. Việc hiển thị này sử dụng chương trình con DisplayLED đã viết ở
trên.
Giảm thời gian trễ xuống cịn 100 ms. Quan sát hiện tượng.
Tính tốn thời gian trễ sao cho khơng cịn thấy LED nhấp nháy và áp dụng vào chương

trình
Giảm thời gian trễ xuống bằng 0 (không sử dụng hàm delay). Quan sát hiện tượng.
ORG 0000H
MAIN:
        MOV R1,#0
        MOV R0,#1
        LOOP:
        LCALL DisplayLED
        LCALL Delay1s
        INC R1
        INC R0
        CJNE R1,#4,LOOP
        SJMP MAIN
DisplayLED:    
        MOV DPTR,#TABLE
MOV A,R1
Department of Electronics

Page | 11

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 1
LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED

        MOVC A,@A+DPTR
        ADD A,R0
        MOVX @DPTR, A
RET
Delay1s:
        MOV R7,#8
        LAP2: MOV R6,#240
        LAP1: MOV R5,#240
        DJNZ R5, $
        DJNZ R6, LAP1
        DJNZ R7, LAP2
        RET
TABLE: DB 0E0H, 0D0H, 0B0H,70H
END
Kiểm tra:
 Biên dịch, thực thi và kiểm tra chương trình
Câu hỏi:
 Thời gian trễ để khơng cịn thấy LED nhấp nháy là bao nhiêu theo lý thuyết? Giải
thích cách tính.
-

Cách tính: Với tần số thạch anh sử dụng là 11.0592 MHz , ta có:
1 MC= 12/ 11.0592 MHz= 1.085 µs
Xét sơ đồ sau:
T
LED 0

T
LED 1


T
LED 2

LED 3

T

Department of Electronics

Page | 12

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 1
LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED
Ta thấy, khoảng cách giữa 2 lần LED X sáng/tắt là 4T. Mà theo lý thuyết, nếu số lần LED
sáng tắt lớn hơn 24 lần trong 1 giây thì mắt người coi như LED sáng liên tục. Suy ra, thời
gian trễ lớn nhất cần tìm là: 1s=24*4T  T= 10 416 µs= 9600 MCs
 Khi giảm rất nhỏ thời gian trễ, hiện tượng xảy ra là gì? Giải thích
-

Hiện tượng: Khơng thấy LED 7 đoạn sáng.

-


Giải thích: Tần số chớp tắt q nhanh, mắt người khơng nhìn được

Department of Electronics

Page | 13

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 2
LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Thí nghiệm 1
Mục tiêu: Nắm được cách thức xuất giá trị lên LCD.
Yêu cầu:
 Download chương trình mẫu LCD.A51 trên trang web bộ mơn điện tử hoặc trong
folder thí nghiệm của sinh viên.
 Biên dịch và chạy thử chương trình.
 Sửa chương trình để hiển thị tên sinh viên lên hàng đầu.
LCD_E   BIT  
LCD_RS  BIT  
LCDADDR EQU  
ORG     0000H
MAIN:
        MOV  

        MOV  
        ACALL
        ACALL
        ACALL
SJMP    $
INIT_LCD:
        MOV  
        ACALL
        MOV  
        ACALL
        MOV  
        ACALL
RET
CLEAR:
        MOV  
        ACALL

  P3.4
  P3.5
  6000H
 
 
 
 
 

@R0, 30H
DPTR, #LCDADDR
CLEAR
INIT_LCD

DISPLAYSTRING

 
 
 
 
 
 

A, #38H
WRITECOM
A, #0EH
WRITECOM
A, #06H
WRITECOM

  A, #01H
  WRITECOM  

           
Department of Electronics

Page | 14

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED



BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 2
LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
RET
WRITECOM:
        MOV     DPTR, #LCDADDR
        SETB    LCD_E
        CLR             LCD_RS
        MOVX    @DPTR, A
        CLR             LCD_E
        ACALL   WAIT_LCD
RET
WRITETEXT:
        MOV     DPTR, #LCDADDR
        SETB    LCD_E
        SETB    LCD_RS
        MOVX    @DPTR, A
        CLR             LCD_E
        ACALL   WAIT_LCD
RET
DISPLAYSTRING:
        MOV     A,#0            
        LOOP:
        MOV     DPTR, #MESSAGE
        MOV     R0,A
        MOVC    A,@A+DPTR
JZ              EXIT
ACALL   WRITETEXT
MOV             A,R0

INC             A
DJNZ            B, LOOP
EXIT:                  
RET
WAIT_LCD:      
MOV     R6,#10
DL1:                    
MOV     R7, #250
Department of Electronics

Page | 15

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 2
LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
DJNZ    R7, $
DJNZ    R6,DL1
RET
MESSAGE:
DB      "TRAN_LE_KHUONG",0              
END
Kiểm tra:
 Kiểm tra kết quả thực hiện của chương trình.

Câu hỏi:
 Giải thích ý nghĩa của các chương trình con trên project mẫu.
-

Giải thích:
+ Chương trình con INITLCD: có nhiệm vụ khởi động module LCD
+ Chương trình con WRITECOM : có nhiệm vụ ghi 1 byte lệnh đến LCD
+ Chương trình con WAIT_LCD: sử dụng chương trình con tạo trễ để chờ module
hồn thành lệnh hiện thời
+ Chương trình con DISPLAYSTRING: Chọn ký tự cần hiển thị
+ Chương trình con WRITETEXT: Xuất ra LCD

 Trình bày lưu đồ giải thuật giao tiếp LCD.

Department of Electronics

Page | 16

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 2
LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Thí nghiệm 2
Mục tiêu: Nắm được giao tiếp cơ bản của LCD.

Yêu cầu:
 Viết thêm chương trình con CLRSCREEN để xóa màn hình LCD.
CLEAR:
        MOV     A, #01H
        ACALL WRITECOM          
RET
 Viết thêm chương trình con GOTOXY để di chuyển con trỏ của LCD đến hàng x,
cột y, với X chứa trong R0 và Y chứa trong R1.
GOTOXY:
        CJNE R0, #1, HANG2
        MOV A, #80H
        BACK:  
                ADD A, R1
                ACALL WRITECOM
        RET
        HANG2:
                MOV A, #0C0H
SJMP BACK
 Sửa chương trình ở thí nghiệm 1 để hiển thị thêm số nhóm ở hàng thứ 2.
LCD_E   BIT     P3.4
LCD_RS  BIT     P3.5
LCDADDR  EQU    6000H
ORG     2000H
MAIN:
MOV     @R0, 30H
MOV     DPTR, #LCDADDR
ACALL   CLEAR
Department of Electronics

Page | 17


Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 2
LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
ACALL   INIT_LCD
ACALL   DISPLAYSTRING
MOV R0,#2
ACALL GOTOXY
MOV A,#16
ACALL   LOOP
SJMP    $
INIT_LCD:
MOV     A, #38H
ACALL   WRITECOM
MOV     A, #0EH
ACALL   WRITECOM
MOV     A, #06H
ACALL   WRITECOM
RET
CLEAR:
MOV     A, #01H
ACALL   WRITECOM                
RET

WRITECOM:
MOV     DPTR, #LCDADDR
SETB    LCD_E
CLR             LCD_RS
MOVX    @DPTR, A
CLR             LCD_E
ACALL   WAIT_LCD
RET
WRITETEXT:
MOV     DPTR, #LCDADDR
SETB    LCD_E
SETB    LCD_RS
MOVX    @DPTR, A
CLR             LCD_E
ACALL   WAIT_LCD
Department of Electronics

Page | 18

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 2
LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
RET

DISPLAYSTRING:
MOV             A,#0            
LOOP:
MOV             DPTR, #MESSAGE
MOV             R0,A
MOVC    A,@A+DPTR
JZ              EXIT
ACALL   WRITETEXT
MOV             A,R0
INC             A
DJNZ    B,      LOOP
EXIT:                  
RET
WAIT_LCD:      
MOV     R6,#10
DL1:                    
MOV     R7, #250
DJNZ    R7, $
DJNZ    R6,DL1
RET
GOTOXY:
        CJNE R0,#1,HANG2
        MOV A,#80H
        BACK:  
        ADD A,R1
        ACALL WRITECOM
        RET
        HANG2:
        MOV A,#0C0H
SJMP BACK

MESSAGE:
DB      "TRAN_LE_KHUONG",0,"NHOM5",0            
END
Department of Electronics

Page | 19

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 2
LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
Kiểm tra:
 Kiểm tra kết quả chương trình.
Câu hỏi:
 Cho biết mã lệnh dùng để xóa màn hình, dịch con trỏ đến vị trí thứ 1 của hàng 1 và
vị trí thứ 1 của hàng 2 của LCD?
 Thực hiện canh giữa hàng 2 của LCD. Cho biết cách làm?

Thí nghiệm 3
Mục tiêu: Nắm được cách thức giao tiếp ADC.
Yêu cầu:
 Viết chương trình con READADC thực hiện đọc giá trị của kênh 0 và trả về giá trị
trong R0.
READADC:

        MOV DPTR, #4000H
        MOVX @DPTR, A
        ACALL DELAY_ADC
        MOVX A, @DPTR
        MOV R0, A
RET
 Viết chương trình hiển thị giá trị của kênh 0 của ADC lên LCD dùng chương trình
con READADC đã viết.
LCD_E BIT P3.4
LCD_RS BIT P3.5
LCDADDR EQU 6000H
ORG 2000H
Department of Electronics

Page | 20

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 2
LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
MAIN:
MOV @R0, 30H
MOV DPTR, #LCDADDR
MAIN1:

        ACALL CLEAR
        ACALL INIT_LCD
        ACALL READADC
        ACALL DISPLAYADC
        MOV A, R2
        ADD A, #30H
        ACALL WRITETEXT
        MOV A, R1
        ADD A, #30H
        ACALL WRITETEXT
        MOV A, R0
        ADD A, #30H
        ACALL WRITETEXT
SJMP MAIN1
INIT_LCD:
        MOV A, #38H; 8bit 2dong 5x7
        ACALL WRITECOM
        MOV A, #0CH; onLCD Cursor_mod
        ACALL WRITECOM
        MOV A, #06H ; cho hien thi them cac ky tu sau;
        ACALL WRITECOM
        MOV A, #0C0H
        ACALL WRITECOM
RET
CLEAR:
        MOV A, #01H; CLR
        ACALL WRITECOM  
RET
WRITECOM:     
Department of Electronics


Page | 231

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 2
LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
        MOV DPTR, #LCDADDR
        SETB LCD_E
        CLR LCD_RS
        MOVX @DPTR, A
        CLR LCD_E
        ACALL WAIT_LCD
RET
WRITETEXT:
        MOV DPTR, #LCDADDR
        SETB LCD_E
        SETB LCD_RS
        MOVX @DPTR, A
        CLR LCD_E
        ACALL WAIT_LCD
RET
WAIT_LCD:      
        MOV R6, #10

        DL1:                    
        MOV R7, #250
        DJNZ R7, $
        DJNZ R6, DL1
RET
READADC:
        MOV DPTR, #4000H
        MOVX @DPTR, A
        ACALL DELAY_ADC
        MOVX A, @DPTR
        MOV R0, A
RET
DELAY_ADC:
        MOV R4, #100
        DJNZ R4, $
RET
DISPLAYADC:
Department of Electronics

Page | 242

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED

BÀI THÍ NGHIỆM 2

LẬP TRÌNH GIAO TIẾP LCD, ADC VÀ TIMER
   
   
   
   
   
   
   
   
   
   
RET
END

 
 
 
 
 
 
 
 
 
 

 
 
 
 
 

 
 
 
 
 

MOV
MOV
DIV
MOV
MOV
DIV
MOV
MOV
DIV
MOV

A, R0
B, #10
AB
R0, B
B, #10
AB
R1, B
B, #10
AB
R2, B

Kiểm tra:
 Biên dịch và kiểm tra hoạt động của chương trình.

Câu hỏi:
 Giá trị này có phải giá trị thực của điện áp đặt vào kênh 0 hay không?
-

Giá trị này không phải trị thực điện áp đặt vào kênh 0. Vì ADC0809 sử dụng 8 bit,
từ 0  255 để hiển thị giá trị áp từ 0  5V.

 Để hiển thị giá trị thực tế của mức điện áp đặt vào kênh 0 ta phải làm như thế nào?
-

Ta phải thực hiện phép toán: (Giá trị hiển thị*5)/255 = Giá trị hiển thị / 51

Department of Electronics

Page | 253

Microprocessor Laboratory

TIEU LUAN MOI download : moi nhat
BAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LEDBAO.cao.THUC.HANH.bo.mon.vi.xu.ly.bai.THI.NGHIEM.1.lap.TRINH.GIAO.TIEP.nut.NHAN.don.va.LED


×