Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

BÀI 1:THÍ NGHIỆM VỚI NÚT NHẤN VÀ LED ĐƠN

THÍ NGHIỆM 1: Viétchươngtrìnhliêntụcđọctrạngtháicủanútnhấnđượcnốiđến P1.0 vàhiểnthịra Led đượcnốitạichân P1.1 ( bit


thứnhấtcủa Led thanh BL202)

ORG 2000H
MAIN: MOV C,P1.0
MOV P1.1,C
SJMP MAIN
END

THÍ NGHIỆM 2: Viếtchươngtrìnhtạoxungvuông 1Hz đượcnốiđếnchân P1.0

om
ORG 2000H

MAIN: CPL P1.0

.c
MOV R5,#10

LAP1: MOV R6,#20

ng
LAP:MOV R7,#250 co
DJNZ R7,$

DJNZ R6,LAP
an

DJNZ R5,LAP1
th

SJMP MAIN
ng

END
o

Thayđổitầnsốxungvuôngthành 0.5Hz vớichukỳnhiệmvụlà 30%


du

ORG 2000H
MAIN: SETB P1.0
MOV R5,#30
u

LAP1: MOV R6,#100


cu

LAP: MOV R7,#100


DJNZ R7,$
DJNZ R6,LAP
DJNZ R5,LAP1
CLR P1.0
MOV R5,#70
LOOP1: MOV R6,#100
LOOP: MOV R7,#100
DJNZ R7,$
DJNZ R6,LOOP
DJNZ R5,LOOP1
SJMP MAIN
END

THÍ NGHIỆM 3: Viếtchươngtrìnhtạoxungvuông 1Hz dùng Timer0 ( không dung ngắt)

CuuDuongThanCong.com https://fb.com/tailieudientucntt
ORG 2000H
MOV TMOD,#01H
LOOP: MOV R7,#20
LAP: CLR TR0
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
JNB TF0,$
CLR TF0
DJNZ R7,LAP
CPL P1.0
SJMP LOOP
END

Dùngngắt Timer 0 đểtạoxungvuông 1Hz

om
ORG 2000H
LJMP MAIN

.c
ORG 200BH
LJMP ISR_T0
MAIN: MOV TMOD,#01H

ng
MOV R7,#20
CLR TR0 co
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
an

MOV IE,#82H
SJMP $
th

ISR_T0:
CLR TR0
MOV TH0,#HIGH(-50000)
ng

MOV TL0,#LOW(-50000)
SETB TR0
o

DJNZ R7,EXIT
du

CPL P1.0
MOV R7,#20
EXIT: RETI
u

END
cu

THÍ NGHIỆM 4:Viếtchươngtrìnhlàmcho led nốiđếnchân P1.0 chớptắtvớitầnsốcóthểtăng ( hoặcgiảm)


bằngcáchnhấnnútnốiđếnchân P1.1 ( hoặc P1.2 ). Chu kỳchớptắttrungbìnhđượcchọnlà 1s

ORG 2000H
MOV 31H,#100;TAO XUNG 0.1Hz
MOV 32H,#20 ;TAO XUNG 0.5Hz
MOV 33H,#10 ;TAO XUNG 1Hz
MOV 34H,#5 ;TAO XUNG 2Hz
MOV 35H,#4 ;TAO XUNG 2.5Hz
MOV 36H,#2 ;TAO XUNG 5Hz
MOV TMOD,#01H
MOV R0,#33H
LOOP:

CuuDuongThanCong.com https://fb.com/tailieudientucntt
JNB P1.1,LOOP1 ;TANG TAN SO
JNB P1.2,LOOP2 ;GIAM TAN SO
CALL DELAY
CPL P1.0
SJMP LOOP
LOOP1:
JNB P1.1,$
INC R0
CJNE R0,#37H,TANG
MOV R0,#33H
TANG: SJMP LOOP
LOOP2:
JNB P1.2,$
DEC R0
CJNE R0,#30H,GIAM
MOV R0,#33H
GIAM: SJMP LOOP

om
DELAY:
MOV A,@R0
LAP: MOV TH0,#HIGH(-50000)

.c
MOV TL0,#LOW(-50000)
SETB TR0
JNB TF0,$
CLR TF0

ng
CLR TR0
DJNZ ACC,LAP
RET
co
END

BÀI TẬP THÊM BÀI 1


an
th
o ng

BÀI 2:THÍ NGHIỆM HIỂN THỊ DÙNG LED 7 ĐOẠN


du

THÍ NGHIỆM 1:Viếtchươngtrìnhthựchiệnbộđếmtừ 0 đến 9 vàhiểnthịlên led 7 đoạn, mỗilầncáchnhau 2s.


u

ORG 2000H
LOOP: MOV A,#0
cu

LAP: MOV R7,A


MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#0000H
MOVX @DPTR,A
MOV A,R7
INC A
ACALL DELAY_2S
CJNE A,#10,LAP
SJMP LOOP

TABLE: DB 0E0H,0E1H,0E2H,0E3H,0E4H,0E5H,0E6H,0E7H,0E8H,0E9H

DELAY_2S: MOV TMOD,#01H


MOV R7,#40
LAP1: MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0

CuuDuongThanCong.com https://fb.com/tailieudientucntt
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R7,LAP1
RET
END

THÍ NGHIỆM 2:Viếtchươngtrìnhhiểnthịgiátrị 1234 lên 4 led 7 đoạn

ORG 2000H
LOOP: MOV A,#0
LAP: MOV R7,A
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV DPTR,#0000H
MOVX @DPTR,A
MOV A,R7

om
INC A
ACALL DELAY_3MS
CJNE A,#4,LAP

.c
SJMP LOOP
TABLE: DB 071H,0B2H,0D3H,0E4H

ng
DELAY_3MS: MOV TMOD,#01H
MOV TH0,#HIGH(-3000)
MOV TL0,#LOW(-3000)
co
SETB TR0
JNB TF0,$
CLR TR0
an

CLR TF0
RET
th

END

THÍ NGHIỆM 3:Viếtchươngtrìnhhiểnthịgiátrịnhịphântrongthanhghi R7 lên led 7 đoạn


ng

ORG 2000H
MOV R7,#255
o

LOOP: MOV B,#10


du

MOV A,R7
DIV AB
MOV R4,B
u

MOV B,#10
DIV AB
cu

ORL A,#0B0H
MOV DPTR,#0H
MOVX @DPTR,A
ACALL DELAY_3MS
MOV A,B
ORL A,#0D0H
MOVX @DPTR,A
ACALL DELAY_3MS
MOV A,R4
ORL A,#0E0H
MOVX @DPTR,A
ACALL DELAY_3MS
SJMP LOOP

DELAY_3MS: MOV TMOD,#01H


MOV TH0,#HIGH(-3000)
MOV TL0,#LOW(-3000)
SETB TR0

CuuDuongThanCong.com https://fb.com/tailieudientucntt
JNB TF0,$
CLR TR0
CLR TF0
RET
END

Đếmsốlầnnhấnphìm P1.0

ORG 2000H
SETB P1.0

om
MOV R3,#30
MOV R4,#100
MOV R5,#100 ; khởiđộnggiátrịcủa R3,R4,R5tạo delay đểchống rung phím

.c
MOV A,#0
MOV DPTR,#0000H
SJMP LOOP

ng
LAP: INC A
MOV R7,A
co
LOOP: MOV B,#10
DIV AB
MOV R6,B
an

MOV B,#10
DIV AB
th

ORL A,#0B0H
MOVX @DPTR,A
ACALL DELAY_3MS
ng

MOV A,B
ORL A,#0D0H
MOVX @DPTR,A
o

ACALL DELAY_3MS
du

MOV A,R6
ORL A,#0E0H
MOVX @DPTR,A
u

ACALL DELAY_3MS
MOV A,R7
cu

JB P1.0, LOOP ; kiểmtracóấnnút hay chưa


DJNZ R3,LOOP
MOV R3,#30
DJNZ R4,LOOP
MOV R3,#30
MOV R4,#100
DJNZ R5,LOOP
MOV R3,#30
MOV R4,#100
MOV R5,#100
JNB P1.0, LOOP ; kiểmtrađãthảnútấn hay chưa
JB P1.0,LAP

DELAY_3MS: MOV TMOD,#01H


MOV TH0,#HIGH(-3000)
MOV TL0,#LOW(-3000)
SETB TR0
JNB TF0,$

CuuDuongThanCong.com https://fb.com/tailieudientucntt
CLR TR0
CLR TF0
RET
END

BÀI 3:THÍ NGHIỆM HIỂN THỊ DÙNG LCD

THÍ NGHIỆM 1:Viếtchươngtrìnhhiểnthịchuỗi “ Hello” lên LCD

ORG 2000H
EN BIT P3.4
RS BIT P3.5
MAIN: MOV DPTR, #8000H
ACALL LCD_INIT
MOV A,#'H'
ACALL WRITE_CHAR

om
MOV A,#'e'
ACALL WRITE_CHAR
MOV A,#'l'

.c
ACALL WRITE_CHAR
MOV A,#'l'
ACALL WRITE_CHAR
MOV A,#'o'

ng
ACALL WRITE_CHAR
SJMP $
co
LCD_INIT: MOV A,#38H
CALL WRITE_CMD
MOV A,#0EH
an

CALL WRITE_CMD
MOV A,#06H
th

CALL WRITE_CMD
RET
ng

WAIT_LCD: MOV R7, #100


DL: MOV R6, #250
DJNZ R6, $
o

DJNZ R7, DL
du

RET

WRITE_CHAR: ACALL WAIT_LCD


u

SETB RS
MOVX @DPTR, A
cu

SETB EN
CLR EN
RET

WRITE_CMD: ACALL WAIT_LCD


CLR RS
MOVX @DPTR, A
SETB EN
CLR EN
RET
END

BÀI TẬP THÊM: Cho chạychữ “ Hello” trênmànhình LCD

ORG 2000H
EN BIT P3.4
RS BIT P3.5
MAIN: MOV R5,#2

CuuDuongThanCong.com https://fb.com/tailieudientucntt
MOV DPTR, #8000H
ACALL LCD_INIT
MOV A,#'H'
ACALL WRITE_CHAR
MOV A,#'E'
ACALL WRITE_CHAR
MOV A,#'L'
ACALL WRITE_CHAR
MOV A,#'L'
ACALL WRITE_CHAR
MOV A,#'O'
ACALL WRITE_CHAR
TT: MOV R1,#11
MOV A,#18H : khớiđộngdịchtrái
LAP: ACALL WRITE_CMD
DL: ACALL WAIT_LCD
DJNZ R5,DL ; tạothớigian delay saumỗilầndịch

om
MOV R5,#2
DJNZ R1, LAP
MOV R1,#11

.c
MOV A,#1CH ; khớiđộngdịchphải
LAP2: ACALL WRITE_CMD
DL2: ACALL WAIT_LCD
DJNZ R5,DL2 ; tạothờigian delay saumỗilầndịch

ng
MOV R5,#2
DJNZ R1,LAP2
SJMP TT
co
LCD_INIT: MOV A, #38H
ACALL WRITE_CMD
an

MOV A, #0CH
ACALL WRITE_CMD
th

MOV A, #06H
ACALL WRITE_CMD
MOV A, #01H
ng

ACALL WRITE_CMD
MOV A, #8BH
ACALL WRITE_CMD
o

RET
du

WAIT_LCD: MOV R7,#100


LOOP: MOV R6, #250
u

DJNZ R6,$
DJNZ R7, LOOP
cu

RET

WRITE_CHAR: ACALL WAIT_LCD


SETB RS
MOVX @DPTR,A
SETB EN
CLR EN
RET

WRITE_CMD: ACALL WAIT_LCD


CLR RS
MOVX @DPTR,A
SETB EN
CLR EN
RET
END

CuuDuongThanCong.com https://fb.com/tailieudientucntt
BÀI 4:THÍ NGHIỆM GIAO TIẾP QUA CỔNG NỐI TIẾP

THÍ NGHIỆM 1:Viếtchươngtrìnhphátchuỗikýtự “Hello, world” lênmáytính thong qua HyperTerminal vớitốcđộ 9600pbs

ORG 2000H
MOV TMOD,#20H
MOV TL1,#-3
MOV TH1,#-3
MOV SCON,#42H
SETB TR1
MOV DPTR,#MSG
LAP: CLR A
MOVC A,@A+DPTR
JZ KT
ACALL SEND
INC DPTR
SJMP LAP

om
KT: SJMP KT
MSG: DB 'HellO, world',0
SEND: JNB TI,SEND

.c
MOV SBUF,A
CLR TI
RET
END

ng
co
THÍ NGHIỆM 2:Viếtchươngtrìnhnhâncáckýtựtừmáytínhgửiđến EME-MC8 thông qua HyperTerminal (
bằngcáchgõcáckýtựtrênbànphímkhiđang ở trongchươngtrình HyperTerminal ) vàhiểnthịlên LCD

ORG 2000H
an

EN BIT P3.4
RS BIT P3.5
th

MOV TMOD,#20H
MOV TL1,#-3
MOV TH1,#-3
ng

MOV SCON,#52H
SETB TR1
MOV DPTR,#8000H
o

ACALL LCD_INIT
du

LAP:
ACALL RECEIVE
ACALL WRITE_CHAR
u

SJMP LAP
cu

LCD_INIT:
MOV A, #38H
ACALL WRITE_CMD
MOV A, #0EH
ACALL WRITE_CMD
MOV A, #06H
ACALL WRITE_CMD
MOV A,#01H
ACALL WRITE_CMD
RET

WAIT_LCD: MOV R7,#100


LOOP: MOV R6, #250
DJNZ R6,$
DJNZ R7, LOOP
RET

CuuDuongThanCong.com https://fb.com/tailieudientucntt
WRITE_CHAR: ACALL WAIT_LCD
SETB RS
MOVX @DPTR,A
SETB EN
CLR EN
RET

WRITE_CMD: ACALL WAIT_LCD


CLR RS
MOVX @DPTR,A
SETB EN
CLR EN
RET

RECEIVE: JNB RI,RECEIVE


MOV A, SBUF
CLR RI

om
RET
END

.c
THÍ NGHIỆM 3:Viếtchươngtrìnhnhậnmộtkýtựtừcổngnốitiếphiểnthịlên LCD đồngthờiphátracổngnốitiếp. Tốcđộtùychọn

ORG 2000H
EN BIT P3.4

ng
RS BIT P3.5
MOV TMOD,#20H
MOV TL1,#-3
co
MOV TH1,#-3
MOV SCON,#52H
SETB TR1
an

MOV DPTR,#8000H
ACALL LCD_INIT
th

LAP:
ACALL RECEIVE
ACALL WRITE_CHAR
ng

ACALL SEND
SJMP LAP
o
du

LCD_INIT:
MOV A, #38H
ACALL WRITE_CMD
u

MOV A, #0EH
ACALL WRITE_CMD
cu

MOV A, #06H
ACALL WRITE_CMD
MOV A,#01H
ACALL WRITE_CMD
RET

WAIT_LCD: MOV R7,#100


LOOP: MOV R6, #250
DJNZ R6,$
DJNZ R7, LOOP
RET

WRITE_CHAR: ACALL WAIT_LCD


SETB RS
MOVX @DPTR,A
SETB EN
CLR EN
RET

CuuDuongThanCong.com https://fb.com/tailieudientucntt
WRITE_CMD: ACALL WAIT_LCD
CLR RS
MOVX @DPTR,A
SETB EN
CLR EN
RET

RECEIVE: JNB RI,RECEIVE


MOV A, SBUF
CLR RI
RET
SEND: JNB TI, SEND
MOV SBUF, A
CLR TI
RET
END

om
BÀI TẬP THÊM : Viếtchươngtrìnhnhậnkýtựtừcổngnốitiếp, đôngthớiphátracổngnốitiếp, vớiđiềukiện:
- Nếukýtựnhânđượclàsốthìxuấtra Led

.c
- Nếukýtựnhânđượclàchữ A-Z, a-z thìxuấtra LCD
- Nếukýtựnhậnđượclà Enter thìxuốnghàng , là ESC thìxóatrongmànhình LCD. Mã ASCII của Enter là 13, ESC là
27

ng
ORG 2000H
EN BIT P3.4
RS BIT P3.5
co
MOV TMOD,#20H
MOV TL1,#-3
MOV TH1,#-3
an

MOV SCON,#52H
SETB TR1
th

MOV R1,#0
MOV DPTR,#8000H
ACALL LCD_INIT
ng

LAP:
ACALL RECEIVE
CJNE A,#13,TT ; kiểmtraphímnhấn Enter
o

MOV A,#0C0H
du

ACALL WRITE_CMD
SJMP THOAT
TT: CJNE A,#27,TT1 ; kiểmtraphímnhấn ESC
u

MOV A,#01H
ACALL WRITE_CMD
cu

SJMP THOAT
TT1:
CJNE A,#30H,SO ; bắtđầukiểmtraphímnhấnlàsố
SO: JC THOAT
CJNE A,#3AH,CHU ; kếtthúckiểmtraphímnhấnlàsố
CHU: JC LED
CJNE A,#41H,KHAC ; bắtđầukiểmtraphímnhấnlàchữhoa
KHAC: JC THOAT
CJNE A,#5BH,HOA ; kếtthúckiểmtraphímnhấnlàchữhoa
HOA: JC NHO
CJNE A,#61H,KHAC1 ; bắtđầukiểmtraphímnhấnlàchữthường
KHAC1: JC THOAT
CJNE A,#7BH,THUONG ; kếtthúckiểmtraphímnhầnlàchữthường
THUONG: JC NHO
SJMP THOAT
NHO: MOV DPTR,#8000H
INC R1

CuuDuongThanCong.com https://fb.com/tailieudientucntt
CJNE R1,#17,XUONG ;
kiểmtranếuhiểnthịhếthàngđầutiênthìxuônghàngtrongmànhình LCD

XUONG: JC XUATLCD
PUSH ACC
MOV A,#0C0H
ACALL WRITE_CMD
POP ACC
MOV R1,#0

XUATLCD: ACALL WRITE_cHAR


SJMP THOAT
LED: MOV DPTR,#0000H
ANL A,#0FH
ORL A,#0E0H
MOVX @DPTR,A
THOAT: MOV DPTR,#8000H

om
ACALL SEND
SJMP LAP

.c
LCD_INIT:
MOV A, #38H
ACALL WRITE_CMD
MOV A, #0EH

ng
ACALL WRITE_CMD
MOV A, #06H
ACALL WRITE_CMD
co
MOV A, #01H
ACALL WRITE_CMD
RET
an

WAIT_LCD: MOV R7,#100


th

LOOP: MOV R6, #250


DJNZ R6,$
DJNZ R7, LOOP
ng

RET

WRITE_CHAR:
o

ACALL WAIT_LCD
du

SETB RS
MOVX @DPTR,A
SETB EN
u

CLR EN
RET
cu

WRITE_CMD:
ACALL WAIT_LCD
CLR RS
MOVX @DPTR,A
SETB EN
CLR EN
RET
RECEIVE: JNB RI,RECEIVE
MOV A, SBUF
CLR RI
RET
SEND: JNB TI,SEND
MOV SBUF,A
CLR TI
RET
END

CuuDuongThanCong.com https://fb.com/tailieudientucntt
BÀI 5: THÍ NGHIỆM ĐIỀU KHIỂN ADC

THÍ NGHIỆM 1:Viếtchươngtrìnhđọcđiệnápcủabiếntrởtrênkênh 0 vàhiểnthịra led 7 đoạn

ORG 2000H
LAP: MOV R1,#255
MOV DPTR,#4000H
MOV A,#0
MOVX @DPTR,A
ACALL DELAY_100US
MOVX A,@DPTR
LAP1: PUSH ACC
MOV DPTR,#0000H
MOV B,#10
DIV AB
MOV R7,B

om
MOV B,#10
DIV AB
ORL A,#0B0H

.c
MOVX @DPTR,A
ACALL DELAY_1MS
MOV A,B
ORL A,#0D0H

ng
MOVX @DPTR,A
ACALL DELAY_1MS
MOV A,R7
co
ORL A,#0E0H
MOVX @DPTR,A
ACALL DELAY_1MS
an

POP ACC
DJNZ R1,LAP1 ; tạothờigian delay
th

SJMP LAP

DELAY_100US: MOV R6,#200


ng

DJNZ R6,$
RET
o

DELAY_1MS: MOV R6,#5


du

LOOP: MOV R5,#100


DJNZ R5,$
DJNZ R6,LOOP
u

RET
END
cu

THÍ NGHIỆM 2:Viếtchươngtrìnhđọcđiệnápcủabiếntrởtrênkênh 0 vàhiểnthịra LCD

ORG 2000H
RS BIT P3.5
EN BIT P3.4
MOV DPTR,#8000H
ACALL LCD_INIT
LAP: MOV DPTR,#4000H
MOV A,#0
MOVX @DPTR,A
ACALL DELAY_100US
MOVX A,@DPTR
MOV DPTR,#8000H
PUSH ACC
MOV A, #80H
ACALL WRITE_CMD
POP ACC

CuuDuongThanCong.com https://fb.com/tailieudientucntt
MOV B,#10
DIV AB
MOV R0,B
MOV B,#10
DIV AB
ORL A,#30H
ACALL WRITE_CHAR
MOV A,B
ORL A,#30H
ACALL WRITE_CHAR
MOV A,R0
ORL A,#30H
ACALL WRITE_CHAR
SJMP LAP

LCD_INIT: MOV A, #38H


ACALL WRITE_CMD

om
MOV A, #0CH
ACALL WRITE_CMD
MOV A, #04H

.c
ACALL WRITE_CMD
MOV A, #01H
ACALL WRITE_CMD
RET

ng
WAIT_LCD: MOV R7,#100
LOOP:
co
MOV R6, #250
DJNZ R6,$
DJNZ R7, LOOP
RET
an

WRITE_CHAR: SETB RS
th

MOVX @DPTR,A
SETB EN
CLR EN
ng

ACALL WAIT_LCD
RET
o

WRITE_CMD: CLR RS
du

MOVX @DPTR,A
SETB EN
CLR EN
u

ACALL WAIT_LCD
RET
cu

DELAY_100US: MOV R6,#200


DJNZ R6,$
RET
END

BÀI TẬP THÊM :Viếtchươngtrìnhđọcđiệnápthựccủakênh 0 vàhiểnthịlên LCD

ORG 2000H
RS BIT P3.5
EN BIT P3.4
MOV DPTR,#8000H
ACALL LCD_INIT
LAP: MOV DPTR,#4000H
MOV A,#0
MOVX @DPTR,A
ACALL DELAY_100US
MOVX A,@DPTR

CuuDuongThanCong.com https://fb.com/tailieudientucntt
MOV DPTR,#8000H
ACALL CHIA
MOV A, #80H
ACALL WRITE_CMD
SJMP LAP

LCD_INIT: MOV A, #38H


ACALL WRITE_CMD
MOV A, #0CH
ACALL WRITE_CMD
MOV A, #04H
ACALL WRITE_CMD
MOV A, #01H

om
ACALL WRITE_CMD
RET

.c
WAIT_LCD: MOV R7,#100
LOOP: MOV R6, #250
DJNZ R6,$
DJNZ R7, LOOP

ng
RET

WRITE_CHAR: SETB RS
co
MOVX @DPTR,A
SETB EN
CLR EN
an

ACALL WAIT_LCD
RET
th

WRITE_CMD: CLR RS
MOVX @DPTR,A
ng

SETB EN
CLR EN
ACALL WAIT_LCD
o

RET
du

DELAY_100US: MOV R6,#200


DJNZ R6,$
u

RET
cu

CHIA: PUSH ACC


PUSH B
MOV B,#51
DIV AB
ORL A,#30H
ACALL WRITE_CHAR
MOV A,#0A5H
ACALL WRITE_CHAR
MOV A,B
MOV B,#5
DIV AB
ORL A,#30H
ACALL WRITE_CHAR
POP B
POP ACC

CuuDuongThanCong.com https://fb.com/tailieudientucntt
RET
END

BÀI 6: THÍ NGHIỆM HIỂN THỊ DÙNG LED MA TRẬN

THÍ NGHIỆM 1:Viếtchươngtrìnhhiểnthịkýtựchữ A lên led ma trận

ORG 2000H
LOOP: MOV R1,#8
MOV A,#00000001B
MOV DPTR,#CHARA
LAP: ACALL HT_COT
PUSH ACC
CLR A
MOVC A,@A+DPTR
ACALL HT_HANG

om
INC DPTR
POP ACC
RL A

.c
DJNZ R1, LAP
SJMP LOOP
CHARA: DB 03H, 0EDH, 0EEH, 0EEH, 0EDH, 03H, 0FFH, 0FFH

ng
HT_COT: PUSH DPH
PUSH DPL
co
MOV DPTR,# 0C000H
MOVX @DPTR,A
POP DPL
POP DPH
an

RET
th

HT_HANG: PUSH DPH


PUSH DPL
MOV DPTR,# 0A000H
ng

MOVX @DPTR,A
ACALL DELAY_1ms
POP DPL
o

POP DPH
du

RET
u

DELAY_1ms:
cu

MOV R7,#5
DL: MOV R6,#100
DJNZ R6,$
DJNZ R7,DL
RET
END

THÍ NGHIỆM 2:Viếtchươngtrình con hiểnthịnội dung 8 ô nhớtừ 30H đến 37H. Dùngchươngtrình con đểhiểnthịchữ A, B

HT_ONHO:
MOV R1,#8
MOV A,#00000001B
MOV R0,#30H
LAP: ACALL HT_COT
PUSH ACC
CLR A
MOV A,@R0
ACALL HT_HANG

CuuDuongThanCong.com https://fb.com/tailieudientucntt
INC R0
POP ACC
RL A
DJNZ R1, LAP
RET

HT_COT:
PUSH DPH
PUSH DPL
MOV DPTR,# 0C000H
MOVX @DPTR,A
POP DPL
POP DPH
RET
HT_HANG:
PUSH DPH
PUSH DPL

om
MOV DPTR,# 0A000H
MOVX @DPTR,A
ACALL DELAY_1ms

.c
POP DPL
POP DPH
RET
DELAY_1ms:

ng
MOV R7,#5
DL: MOV R6,#100
DJNZ R6,$
co
DJNZ R7,DL
RET
an

Dùngchươngtrình con trênhiểnthịchữ A


th

ORG 2000H
MOV 30H,#03H
MOV 31H,#0EDH
ng

MOV 32H,#0EEH
MOV 33H,#0EEH
MOV 34H,#0EDH
o

MOV 35H,#03H
du

MOV 36H,#0FFH
MOV 37H,#0FFH
LOOP: ACALL HT_ONHO
u

SJMP LOOP
HT_ONHO:
cu

MOV R1,#8
MOV A,#00000001B
MOV R0,#30H
LAP: ACALL HT_COT
PUSH ACC
CLR A
MOV A,@R0
ACALL HT_HANG
INC R0
POP ACC
RL A
DJNZ R1, LAP
RET

HT_COT:
PUSH DPH
PUSH DPL
MOV DPTR,# 0C000H

CuuDuongThanCong.com https://fb.com/tailieudientucntt
MOVX @DPTR,A
POP DPL
POP DPH
RET
HT_HANG:
PUSH DPH
PUSH DPL
MOV DPTR,# 0A000H
MOVX @DPTR,A
ACALL DELAY_1ms
POP DPL
POP DPH
RET
DELAY_1ms:
MOV R7,#5
DL: MOV R6,#100
DJNZ R6,$

om
DJNZ R7,DL
RET
END

.c
Dùngchươngtrình con trênhiểnthịchữ B

ORG 2000H

ng
MOV 30H,#00H
MOV 31H,#76H
MOV 32H,#76H
co
MOV 33H,#76H
MOV 34H,#89H
MOV 35H,#0FFH
an

MOV 36H,#0FFH
MOV 37H,#0FFH
th

LOOP: ACALL HT_ONHO


SJMP LOOP
HT_ONHO:
ng

MOV R1,#8
MOV A,#00000001B
MOV R0,#30H
o

LAP: ACALL HT_COT


du

PUSH ACC
CLR A
MOV A,@R0
u

ACALL HT_HANG
INC R0
cu

POP ACC
RL A
DJNZ R1, LAP
RET

HT_COT:
PUSH DPH
PUSH DPL
MOV DPTR,# 0C000H
MOVX @DPTR,A
POP DPL
POP DPH
RET
HT_HANG:
PUSH DPH
PUSH DPL
MOV DPTR,# 0A000H
MOVX @DPTR,A

CuuDuongThanCong.com https://fb.com/tailieudientucntt
ACALL DELAY_1ms
POP DPL
POP DPH
RET
DELAY_1ms:
MOV R7,#5
DL: MOV R6,#100
DJNZ R6,$
DJNZ R7,DL
RET
END

BÀI TẬP THÊM : Cho hiểnthịvàchạychữ A B C trên led ma trận

ORG 2000H
TT: MOV R4,#10
MOV R0,#0

om
MOV DPTR,#CHAR
MOV R5,#32
LOOP1: MOV R2,DPH

.c
MOV R3,DPL
LOOP: MOV DPH,R2
MOV DPL,R3
MOV R1,#8

ng
MOV A,#00000001B
LAP: ACALL HT_COT
PUSH ACC
co
CLR A
MOVC A,@A+DPTR
ACALL HT_HANG
an

INC DPTR
POP ACC
th

RL A
DJNZ R1, LAP
DJNZ R4,LOOP
ng

MOV R4,#10
INC R0
MOV A,R0
o

MOV DPTR,#CHAR
du

ADD A,DPL
MOV DPL,A
DJNZ R5,LOOP1
u

SJMP TT
CHAR: DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,03H, 0EDH, 0EEH, 0EEH, 0EDH,
cu

03H, 0FFH, 0FFH,00H, 76H, 76H, 76H, 89H, 0FFH,


0FFH,0FFH,81H,7EH,7EH,7EH,0BDH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH,0FFH

HT_COT:
PUSH DPH
PUSH DPL
MOV DPTR,#0C000H
MOVX @DPTR,A
POP DPL
POP DPH
RET
HT_HANG:
PUSH DPH
PUSH DPL
MOV DPTR,#0A000H
MOVX @DPTR,A
ACALL DELAY_1ms
POP DPL

CuuDuongThanCong.com https://fb.com/tailieudientucntt
POP DPH
RET
DELAY_1ms:
MOV R7,#5
DL: MOV R6,#100
DJNZ R6,$
DJNZ R7,DL
RET
END

BÀI 7: THÍ NGHIỆM VỚI ĐỘNG CƠ DC

THÍ NGHIỆM 1:Viếtchươngtrìnhchophépđộngcơchạytheochiềuthuậntrongvòng 2s , nghỉ 2s,chạy theochiềungược 2s, nghỉ 2s


vàlặplại

ORG 2000H

om
CLR A
MOV TMOD,#10H
MOV DPTR,#0E000H

.c
LAP: ACALL CHIEUTHUAN
ACALL DELAY_2S
ACALL NGHI
ACALL DELAY_2S

ng
ACALL CHIEUNGHICH
ACALL DELAY_2S
ACALL NGHI
co
ACALL DELAY_2S
SJMP LAP
CHIEUTHUAN:
an

SETB ACC.0
CLR ACC.1
th

MOVX @DPTR,A
RET
NGHI:
ng

CLR ACC.0
CLR ACC.1
MOVX @DPTR,A
o

RET
du

CHIEUNGHICH:
CLR ACC.0
SETB ACC.1
u

MOVX @DPTR,A
RET
cu

DELAY_2S:
MOV R7,#40
LOOP: MOV TL1,#LOW(-50000)
MOV TH1,#HIGH(-50000)
SETB TR1
JNB TF1,$
CLR TF1
CLR TR1
DJNZ R7, LOOP
RET
END

THÍ NGHIỆM 2:Viếtchươngtrìnhđiềukhiểnđộngcơvớiphươngpháp PWM, trongđóthờigianbậtcủaxunglà 50% chukỳ

ORG 2000H
LJMP MAIN
ORG 200BH
LJMP ISR_T0

CuuDuongThanCong.com https://fb.com/tailieudientucntt
ORG 201BH
LJMP ISR_T1
MAIN:
MOV TMOD,#11H
CLR A
SETB TF0
MOV IE,#82H
MOV DPTR,#0E000H
LAP: MOVX @DPTR,A
SJMP LAP
ISR_T0:
SETB ACC.0
CLR TR0
MOV TL0,#LOW(-1000)
MOV TH0,#HIGH(-1000)
SETB TR0
CLR TR1

om
MOV TL1,#LOW(-500)
MOV TH1,#HIGH(-500)
SETB TR1

.c
SETB ET1
RETI
ISR_T1:
CLR TR1

ng
CLR ACC.0
CLR ET1
RETI
co
END

THÍ NGHIỆM 3:Viếtchươngtrìnhđiềukhiểnđộngcơvớiphươngpháp PWM, trongđóthờigian “bật” củaxunglầnlượtlà 20%, 50%,


an

và 80% chukỳ. Mỗiđộrộngxungcáchnhau 5s. Quytrìnhđượclặplạiliêntục


th

ORG 2000H
LJMP MAIN
ORG 200BH
ng

LJMP ISR_T0
ORG 201BH
o

LJMP ISR_T1
du

MAIN:
MOV TMOD,#11H
MOV R7,#50
u

MOV R6,#100
cu

MOV R5,#0
CLR A
SETB TF0
MOV IE,#82H
MOV DPTR,#0E000H
LAP: MOVX @DPTR,A
SJMP LAP
ISR_T0:
SETB ACC.0
CLR TR0
MOV TL0,#LOW(-1000)
MOV TH0,#HIGH(-1000)
SETB TR0
DJNZ R6,TT
MOV R6,#100
DJNZ R7,TT

CuuDuongThanCong.com https://fb.com/tailieudientucntt
MOV R7,#50
MOV R6,#100
INC R5
TT: CJNE R5,#0,KHAC20
CLR TR1
MOV TL1,#LOW(-200)
MOV TH1,#HIGH(-200)
SETB TR1
SJMP EXIT
KHAC20: CJNE R5,#1,KHAC50
CLR TR1
MOV TL1,#LOW(-500)
MOV TH1,#HIGH(-500)
SETB TR1
SJMP EXIT

om
KHAC50: CJNE R5,#2,KHAC80
CLR TR1
MOV TL1,#LOW(-800)

.c
MOV TH1,#HIGH(-800)
SETB TR1
SJMP EXIT

ng
KHAC80: MOV R5,#0
SJMP TT
EXIT: SETB ET1
co
RETI
ISR_T1:
an

CLR TR1
CLR ACC.0
th

CLR ET1
RETI
ng

END

THÍ NGHIỆM 4: BÍ………………………………………………


o
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt

You might also like