0% found this document useful (0 votes)
172 views

Bai Tap 8051

Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
172 views

Bai Tap 8051

Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

BÀI TẬP LỚN

Môn: VI XỬ LÝ
****◊****

SV:THÁI XUÂN HỒNG NHẬT


MSSV:40901845

PHẦN BÀI TẬP:

BÀI 2.1:

org 00h
sjmp main
org 30h
main: /* cau a; dinh dia chi truc tiep*/
mov 30h,#40h

/*cau b dinh dia chi gian tiep*/


mov r1,#30h
mov @r1,40h
end

BÀI 2.2:

org 00h
sjmp main
org 30h
main: /* cau a; dinh dia chi truc tiep*/
mov 31h,#00h

/*cau b dinh dia chi gian tiep*/


mov r1,#31h
mov @r1,00h
end
Bài 2.3:
org 00h
sjmp main
org 30h
main: /* cau a; dinh dia chi truc tiep*/
mov 32h,A

/*cau b dinh dia chi gian tiep*/


mov r1,#32h
mov @r1,A
end
BÀI 2.4:

org 00h
sjmp main
org 30h
main: /* cau a; dinh dia chi truc tiep*/
mov A,33h

/*cau b dinh dia chi gian tiep*/


mov r1,#33h
mov A,@r1
end
BÀI 2.5:
org 00h
sjmp main
org 30h
main: /* cau a; dinh dia chi truc tiep*/
mov 35H,34h

/*cau b dinh dia chi gian tiep*/


MOV R0,#35H
mov @R0,34H
end
BÀI 2.6:
org 00h
sjmp main
org 30h
main:
mov DPTR,#0030H
MOV A,#40H
movX @DPTR,A

end
BÀI 2.7:
org 00h
sjmp main
org 30h
main:
mov DPTR,#0031H
MOV A,#00H
movX @DPTR,A

end
BÀI 2.8:
org 00h
sjmp main
org 30h
main:
mov DPTR,#0032H
movX A,@DPTR

end
BÀI 2.9:
org 00h
sjmp main
org 30h
main:
mov DPTR,#0033H
movX @DPTR,A

end
BÀI 2.10:
org 00h
sjmp main
org 30h
main:
mov DPTR,#0034H
movX A,@DPTR
INC DPTR
MOVX @DPTR,A

End

BÀI 2.112.17:

org 00h
sjmp main
org 30h
main: /*BÀI 2.11->2.17*/
MOV P1,#0FH
MOV P2,#0FH
MOV P1,A
;----- Chuong trinh nhap tu P1 vao thanh ghi A
MOV P1,#0FFH
MOV A,P1
;-------Chuong trinh nhap vao tu P1 xuat ra P2
MOV P1,#0FFH
MOV P2,P1
;-------chuong trinh xuat 1 ra chan P1.0
SETB P1.0
;------- chuong trinh xuat 0 ra chan P1.1
CLR P1.1

END

BÀI 2.18:

org 00h
sjmp main
org 30h
main: ;------ Dinh dia chi truc tiep
MOV A,40H
MOV DPTR,#2000H
MOVX @DPTR,A
;------ Dinh dia chi gian tiep
MOV R0,#40H
MOV A,@R0
MOV DPTR,#2000H
MOVX @DPTR,A
END

BÀI 2.19:

org 00h
sjmp main
org 30h
main: ;------ Dinh dia chi truc tiep
MOV DPTR,#2001H
MOVX A,@DPTR
MOV 41H,A
;------ Dinh dia chi gian tiep
MOV R0,#41H
MOV DPTR,#2000H
MOVX A,@DPTR
MOV @R0,A
END

BÀI 2.20:

org 00h
sjmp main
org 30h
main: ;------ Dinh dia chi truc tiep
MOV P1,#0FFH
MOV 42H,P1

;------ Dinh dia chi gian tiep


MOV R0,#42H
MOV P1,#0FFH
MOV A,P1
MOVX @R0,A

END

BÀI 2.21:

org 00h
sjmp main
org 30h
main:
MOV P1,#0FFH /* cho phep doc du lieu tren port 1*/
MOV A,P1
MOV DPTR,#2002H
MOVX @DPTR,A
END

BÀI 2.22:

org 00h
sjmp main
org 30h
main:
;------ Dinh dia chi truc tiep
MOV P1,43H

;------ Dinh dia chi gian tiep


MOV R0,#43H
MOV P1,@R0

END

BÀI 2.23:

org 00h
sjmp main
org 30h
main:
MOV DPTR,#2003H
MOV A,@DPTR
MOV P1,A
END

BÀI 2.24:

org 00h
sjmp main
org 30h
main:
MOV R0,#2FH
LAP: INC R0
MOV @R0,#0
CJNE R0,#43H,LAP
END

BÀI 2.25:

org 00h
sjmp main
org 30h
main:
MOV R0,#1FH
LAP: INC R0
MOV @R0,#0
CJNE R0,#7FH,LAP
END

BÀI 2.26:

org 00h
sjmp main
org 30h
main:MOV A,#0
MOV DPTR,#3FFFH
LAP: INC DPTR
MOVX @DPTR,A
MOV R1,DPL
CJNE R1,#0F9H,LAP
END

BÀI 2.27: ðề giống câu 2.26

BÀI 2.28:
org 00h
sjmp main
org 30h
main: /*Chuong trinh xoa mot bo nho ngoai dung luong 8KB co dia chi dau
2000h*/
MOV A,#0
MOV DPTR,#1FFFH
LAP: INC DPTR
MOVX @DPTR,A
MOV R1,DPH
CJNE R1,#040H,LAP
END

BÀI 2.29:

org 00h
sjmp main
org 30h
main: MOV R0,#2FH
MOV R1,#3FH
LAP: INC R0
INC R1
MOV A,@R0
MOV @R1,A
CJNE R0,#3FH,LAP
END

BÀI 2.30:

ORG 0000H
mov r2,#100
mov r0,#20h
mov r1,#40h
MOV DPL,#00H
lap: mov DPH,r0
movx a,@dptr
mov dph,r1
movx @dptr,a
inc dpl
djnz r2,lap

END
BÀI 2.31:

ORG 0000H
mov r2,#10
mov r0,#30h
mov DPtr,#4000h
lap: mov a,@r0
movx @dptr,a
inc dptr
inc r0
djnz r2,lap

END
BÀI 2.32:

ORG 0000H
mov r2,#10
mov r0,#40h
mov DPtr,#5f00h
lap: movx a,@dptr
mov @r0 ,a
inc dptr
inc r0
djnz r2,lap

END
BÀI 2.33:

ORG 0000H
mov r2,#20
mov r0,#20h
lap: mov a,@r0
mov p1,a
inc r0
djnz r2,lap

END
BÀI 2.34:

ORG 0000H
mov r2,#10
mov r0,#50h
mov p1,#0ffh ; cho phep doc vao P1
lap: mov @r0,p1
inc r0
djnz r2,lap

END
BÀI 2.35:
ORG 0000H
// chuong trinh tao tre 100us dung xtal la 12Mhz
delay1: mov r0,#50 ; vi lenh djnz mat 2us
lap: djnz r0,lap
ret
// chuong trinh tao tre 100us dung xtal la 6Mhz ==> thoi gian mot chu ky la 2us
delay2: mov r0,#25
lap2: djnz r0,lap2 ; bay h thi lenh nay thuc hien trong
4us==>4us*25=100us
ret
END
BÀI 2.36:

;------- CHUONG TRINH: tao tre 100ms dung thach anh 12MHZ
DELAY1: MOV R0,#200 //200*250*2us=100ms
MOV R1,#250
LAP: DJNZ R0,LAP
MOV R0,#200
DJNZ R1,LAP
ret
;-------- CHUONG TRINH: tao tre dung TA 11,0592MHz
DELAY2: MOV R1,#125 // 125*123*3*2*1.085us=0.1s
MOV R0,#123
MOV R2,#3
LAP2: DJNZ R0,LAP2
MOV R0,#123
DJNZ R1,LAP2
MOV R0,#123
MOV R1,#125
DJNZ R2,LAP2
Ret

BÀI 2.37:

;------- CHUONG TRINH: tao tre 1s dung thach anh 12MHZ


DELAY1: MOV R1,#100 // 100*200*25*2us=1s
MOV R0,#200
MOV R2,#25
LAP2: DJNZ R0,LAP2
MOV R0,#200
DJNZ R1,LAP2
MOV R0,#200
MOV R1,#100
DJNZ R2,LAP2
ret
;-------- CHUONG TRINH: tao tre 1s dung TA 24MHz
DELAY1: MOV R1,#200 // 200*200*25*1us=1s
MOV R0,#200
MOV R2,#25
LAP2: DJNZ R0,LAP2
MOV R0,#200
DJNZ R1,LAP2
MOV R0,#200
MOV R1,#100
DJNZ R2,LAP2
Ret

BÀI 2.38:

org 00h
sjmp main
org 30h
main:
;-------CHUONG TRINH CHINH: tao xung co do rong 1ms tai chan P1.0
CPL P1.0
ACALL DELAY1
SJMP main
;------- CHUONG TRINH: tao tre 1ms dung thach anh 12MHZ
DELAY1: MOV R1,#5 // 100*5*2us=1ms
MOV R0,#100
LAP2: DJNZ R0,LAP2
MOV R0,#100
DJNZ R1,LAP2
ret
END
BÀI 2.39:
ORG 0000H
mov tmod,#10h ;che do 1 cua TM1
lap: mov th1,#high(-5) ; 1000 chu ky thi se xay ra tran 1 lan
==> ung voi 1ms
mov tl1,#low(-5)
setb tr1
jnb tf1,$
clr tf1
cpl P1.1
ljmp lap

END
BÀI 2.40:

ORG 00H
sjmp MAIN
org 30h
/* tao xung 100KHz tren chan P1.2 co chu ky lam viec 40%*/
MAIN: SETB P1.2 ;-- -do rong 40%
NOP
NOP
NOP
CLR P1.2
NOP
NOP
NOP
SJMP MAIN ;-- LENH 2BYTE -> chan P1.2 van o muc thap trong 2us khi
thuc hien lenh nay
;- da kiem chung bang Protues
END
BÀI 2.41:
org 00h
sjmp MAIN
org 30h
/* tao xung 10KHz tren chan P1.3 co chu ky lam viec */
MAIN: MOV TMOD,#02H
MOV TH0,#-100
SETB TR0
JNB TF0,$
CLR TF0
CPL P1.3
SJMP MAIN
END
BÀI 2.42:

org 00h
sjmp MAIN
org 30h
/* tao xung 10KHz tren chan P1.3 co chu ky lam viec */
MAIN: MOV R1,#30
MOV R0,#70
SETB P1.3
DJNZ R1,$
CLR P1.3
DJNZ R0,$
SJMP MAIN
END

BÀI 2.43:
org 00h
sjmp MAIN
org 30h
/* tao xung 10Hz tren chan P1.4 TA=12MHz */
MAIN: CPL P1.4
ACALL DLAY01
SJMP MAIN
/*Chuong trinh tao tre 0.05s*/
DLAY01: MOV R1,#250
MOV R0,#100
LAP: DJNZ R1,LAP
MOV R1,#250
DJNZ R0,LAP
RET
END
BÀI 2.44:

org 00h
sjmp MAIN
org 30h
/* tao xung 10Hz tren chan P1.5 TA=12MHz chu ky lam viec 25% */
MAIN: MOV R2,#25
MOV R3,#75
SETB P1.5
TT: ACALL DLAY01
DJNZ R2,TT
CLR P1.5
LAPA: ACALL DLAY01
DJNZ R3,LAPA
SJMP MAIN
/*Chuong trinh tao tre 0.001s*/
DLAY01: MOV R1,#250
MOV R0,#2
LAP: DJNZ R1,LAP
MOV R1,#250
DJNZ R0,LAP
RET
END

BÀI 2.45:
ORG 0000H
mov r1,#30h
mov a,#0
tt: add a,@r1
inc r1
cjne r1,#3ah,tt
mov 2fh,a

END
BÀI 2.46:

ORG 0000H
mov r1,#30h
mov a,#0
tt: add a,@r1
jnc tt2
inc 2eh
tt2: inc r1
cjne r1,#3ah,tt
mov 2fh,a

END
BÀI 2.47:

ORG 0000H
mov r0,#9
mov r1,#30h
mov 07h,@r1
inc r1
mov 06h,@r1
tt: inc r1
mov a,r7
add a,@r1
mov r7,a
inc r1
mov a,r6
addc a,@r1
mov r6,a
djnz r0,tt
mov 2fh,r7
mov 2eh,r6

END
BÀI 2.48:
ORG 0000H
laybu2: xrl 02h,#0ffh
xrl 03h,#0ffh
mov a,r3
add a,#1
mov r3,a
mov a,r2
addc a,#0
mov r2,a
ret
END
BÀI 2.49:
ORG 0000H

ss2so: mov r0,30h


mov a,@r0
cjne a,31h,$+3
jnc tt
clr f0
ljmp exit
tt: setb f0
exit: ret
END
BÀI 2.51:
ORG 0000H
mov r2,#20
mov r0,#50h
tt: cjne r0,#65h,$+3
jc th
cjne r0,#91h,$+3
jc tieptuc
sjmp th
tieptuc: mov p1,r0
th: inc r0
djnz r2,tt
END
;xuat ki tu hoa co trog chuoi 20byte ra port1
BÀI 2.52:
ORG 0000H
mov dph,#00h
mov dpl,#00h
ttnao: mov p1,#0ffh ;cho phep nhap vao p1
mov a,p1
cjne a,#0dh,tt
movx @dptr,a
sjmp exit
tt: movx @dptr,a
inc dptr
sjmp ttnao
exit:
END
// chuong trinh mo ta nhan vao ma ACII cua chuoi ki tu tu p1
va ghi vao ram ngoai co
// dia chi dau la 0000h va viec nhap ket thuc khi gap ki tu CR
co ma ACII 0dh
//va ghi ki tu nay vao ram ngoai luon
BÀI 2.53:

ORG 0000H
mov dph,#00h
mov dpl,#00h
ttnao: mov p1,#0ffh ;cho phep nhap vao p1
mov a,p1
cjne a,#0dh,tt
sjmp exit
tt: movx @dptr,a
inc dptr
sjmp ttnao
exit:
END
// truong hop nay khon ghi ki tu CR vao ram ngoai
BÀI 2.54:
ORG 0000H
mov dph,#00h
mov dpl,#00h
ttnao: mov p1,#0ffh ;cho phep nhap vao p1
mov a,p1
cjne a,#0dh,tt
mov a,#0h
mov @dtpr,a
sjmp exit
tt: movx @dptr,a
inc dptr
sjmp ttnao
exit:
END
// truong hop nay khon ghi ki tu CR vao ram ngoai va
thay bang ki tu NUM (0h)
BÀI 2.55:
ORG 0000H
mov r2,#20
mov r0,#50h
tt: cjne r0,#65h,$+3
jc th
cjne r0,#91h,$+3
jc tieptuc
sjmp th
tieptuc: mov a,r0
add a,#32h
mov @r0,a
th: inc r0
djnz r2,tt
END
;doi tu hoa co trog chuoi 20byte thanh ki tu thuong
BÀI 2.56:
ORG 0000H
mov r2,#20
mov r0,#50h
tt: cjne r0,#30h,$+3
jc th
cjne r0,#40h,$+3
jc tieptuc
sjmp th
tieptuc: clr c
mov a,@r0
subb a,#30h
mov @r0,a
th: inc r0
djnz r2,tt
END
;doi ki tu so co trog chuoi 20byte thanh ki tu dang BCD.

BÀI 2.57:
ORG 0000H
mov r2,#100
mov dph,#01h
mov dpl,#00h
tt:movx a,@dptr
rlc a
jc am
mov p1,a
sjmp ttt
am: mov p2,a
ttt: inc dptr
djnz r2,tt

END
;doi ki tu so co trog chuoi 20byte thanh ki tu dang BCD.

BÀI 2.58:
ORG 0000H

mov dph,#01h
mov dpl,#00h
tt:movx a,@dptr
jz dung
rlc a
jc am
mov p1,a
sjmp ttt
am: mov p2,a
ttt: inc dptr
sjmp tt

dung:
END
//so am xuat ra P2 va so duong xuat ra P1 khi gap so 0 thi dung lai

BÀI 2.59:
****************************//
ORG 0000H
mov r1,#0ffh
movx a,@r1
mov r2,a
mov dph,#01h
mov dpl,#00h
tt:movx a,@dptr
rrc a
jc sle
inc r3
sle: inc dptr
djnz r2,tt
mov 0feh,r3
END
//dem so o nho cua ram ngoai co dia chi dau 0100h va so o nho chua trong 00ffh

BÀI 2.60:
ORG 0000H
mov r0,#30h
mov r1,#0ffh
movx a,@r1
mov r2,a
mov dph,#01h
mov dpl,#00h
tt:movx a,@dptr
rrc a
jc sle
rlc a
mov @r0,a
sjmp ttnao
sle: sjmp dung
ttnao: inc dptr
inc r0
djnz r2,tt
mov 0feh,r3
dung:
END
//so am xuat ra P2 va so duong xuat ra P1 khi gap so 0 thi dung lai

BÀI 2.61:
ORG 0000H
mov r2,#20
mov dph,#20h
mov dpl,#00h
ctc_xuatbyte: movx a,@dptr
mov p1,a
dec r2
mov a,r2
jz tt
inc dptr
sjmp dung
tt: mov dph,#20h
mov dpl,#00h
mov r2,#20
dung: ret
END
//so am xuat ra P2 va so duong xuat ra P1 khi gap so 0 thi dung lai

BÀI 3.1:

DELAY500: mov TMOD,#02H


MOV TH0,#-250
SETB TR0
JNB TF0,$
CLR TF0
RET

BÀI 3.2:

DELAY10: mov TMOD,#01H


MOV TH0,#HIGH(-10000)
MOV TL0,#LOW(-10000)
SETB TR0
JNB TF0,$
CLR TF0
RET

BÀI 3.3:
// ******************************//
// chuong trinh: bai tap 3.3 //
//CHUONG TRINH TAO TRE 0.5s(6Mhz)//
//*******************************//
ORG 0000H
TT: CALL DELAY500
CPL P1.0
SJMP TT
DELAY500: mov tmod,#01h ;che do 1 cua timer0
mov th0,#high(-250)
mov tl0,#low(-250)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
RET
END
//so am xuat ra P2 va so duong xuat ra P1 khi gap so 0 thi dung lai

BÀI 3.4:

// ******************************//
// chuong trinh: BÀI tap 3.4 //
//CHUONG TRINH TAO TRE 10s(12Mhz)//
//*******************************//
ORG 0000H
TT: ACALL DELAY10
CPL P1.1
SJMP TT
DELAY10: mov tmod,#01h ;che do 1 cua timer0
mov th0,#high(-10000)
mov tl0,#low(-10000)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
RET
END
BÀI 3.5:
// ******************************//
// chuong trinh: BÀI tap 3.5 //
//CHUONG TRINH TAO TRE 0.5s(6Mhz)//
// TAO TIN HIEU XUNG 25% //
//*******************************//
ORG 0000H
CLR P1.2
TT: CPL P1.2
ACALL DELAY500
CPL P1.2
ACALL DELAY500
ACALL DELAY500
ACALL DELAY500
SJMP TT

DELAY500: mov tmod,#01h ;che do 1 cua timer0


mov th0,#high(-250)
mov tl0,#low(-250)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
RET
END

BÀI 3.6:

// ******************************//
// chuong trinh: BÀI tap 3.6 //
//CHUONG TRINH TAO TRE 10ms(12Mhz)//
// TAO TIN HIEU XUNG 20% //
//*******************************//
ORG 0000H
CLR P1.3
TT: CPL P1.3
ACALL DELAY10
CPL P1.3
ACALL DELAY10
ACALL DELAY10
ACALL DELAY10
ACALL DELAY10
SJMP TT

DELAY10: mov tmod,#01h ;che do 1 cua timer0


mov th0,#high(-10000)
mov tl0,#low(-10000)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
RET
END

BÀI 3.7:
//CHUONG TRINH XUNG F=500HZ(12Mhz)//
//*******************************//
ORG 0000H
// TINH TOAN GIA TRI CHO HAI THANH GHI THO VA TL0
// T=2ms, chu ky lam viec la 1ms =>ung voi 1000 chu ky
DELAY10: mov tmod,#01h ;che do 1 cua timer0
mov th0,#high(-1000)
mov tl0,#low(-1000)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
CPL P1.4
RET
END

BÀI 3.8:
ORG 0000H
// TINH CAC GIA TRI CHO THANH GHI TH0 TL0
// MOT CHU KY MAY LA 0.5us
// T=50us=> chu ky lam viec la 25us ung voi 50 chu ky may

DELAY10: mov tmod,#01h ;che do 1 cua timer0


mov th0,#high(-50)
mov tl0,#low(-50)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
cpl P1.5
RET
END

BÀI 3.9:

ORG 00H
mov r0,#100
DELAY500: mov tmod,#01h ;che do 1 cua timer0
mov th0,#high(-500)
mov tl0,#low(-500)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
cpl p1.7
djnz r0,$ ;tao tre pha hon 100us
cpl p1.6
RET
END

BÀI 3.10:

//dung thach anh 12Mhz


// led sang neu muc logic la 0

ORG 0000H
x1 bit P1.0
v1 bit p1.1
d1 bit p1.2
x2 bit p1.3
v2 bit p1.4
d2 bit p1.5
chukymoi: mov p1,#0ffh; xoa tat cac led
mov r1,#25
mov r2,#3
// x1 sang va d2 sang
clr x1
clr d2
//tao tre 25s
vong1: acall DELAY1s
djnz r1,vong1
setb x1 ; xanh 1 =25s vang 1 3s, do 2 la 28s
clr v1
vong2: acall DELAY1s
djnz r2,vong2
// chuyen huong duoc phep di qua giao lo ben kia
mov r2,#3
mov r3,#33
setb d2
setb v1
clr x2
clr d1
vong3: acall DELAY1s
djnz r3,vong3
setb x2
clr v2
vong4: acall DELAY1s ;xanh 2=33s vang2 3s va do 1 la 38s
djnz r2,vong4
sjmp chukymoi

// CHUONG TRINH TAO TRE 1s


DELAY1s: mov r0,#20
tt: mov tmod,#01h ;che do 1 cua timer0
mov th0,#high(-50000)
mov tl0,#low(-50000)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
djnz r0,tt
RET
END

BÀI 4.1:
org 00h
sjmp main
org 30h
main: mov tmod,#20H
MOV TH1,#-12
MOV SCON,#50H
SETB TR1
MOV R1,#2FH
LAP: INC R1
MOV A,@R1
MOV SBUF,A
JNB TI,$
CLR TI
CJNE R1,#50H,LAP
END
BÀI 4.2:
org 00h
sjmp main
org 30h
main: mov tmod,#20H
MOV TH1,#-12
MOV SCON,#50H
SETB TR1
MOV R1,#40H
LAP: INC R1
JNB RI,$
CLR RI
MOV A,SBUF
MOV @R1,A
CJNE R1,#60H,LAP
END
BÀI 4.3:

org 00h
sjmp main
org 30h
main: mov tmod,#20H
MOV TH1,#-24
MOV SCON,#10H
SETB TR1
MOV DPTR,#2000H
LAP: MOVX A,@DPTR
MOV SBUF,A
JNB TI,$
CLR TI
INC DPTR
CJNE A,#04H,LAP
END
BÀI 4.4:

org 00h
sjmp main
org 30h
main: mov tmod,#20H
MOV TH1,#-24
MOV SCON,#50H
SETB TR1
MOV DPTR,#2000H
LAP: MOVX A,@DPTR
CJNE A,#04H,tthoat
MOV SBUF,A
JNB TI,$
CLR TI
INC DPTR
sjmp LAP
tthoat:
END
BÀI 4.5

org 00h
sjmp main
org 30h
main: mov tmod,#20H
MOV TH1,#-3
MOV SCON,#50H
SETB TR1
MOV DPTR,#4000H
TT: JNB RI,$
CLR RI
MOV A,SBUF
MOV R0,A // Luu gia tri A vao thanh ghi R0
XRL A,#02H // so sanh voi byte start neu dung thi thu hien tiep; sai quay lai tu dau
JNZ TT
MOV A,R0
XRL A,#03H // tuong tu cho lenh nay
JZ THOAT
MOV A,R0
MOVX @DPTR,A
SJMP TT
THOAT: NOP // THOAT CHUONG TRINH
END

BÀI 4.6 :

XUAT: MOVX A,@DPTR


MOV C,P
MOV TB8,C
MOV SBUF,A
JNB TI,$
CLR TI
INC DPTR
CJNE A,#00H,XUAT
RET

BÀI 4.7:

NHAP: MOV R3,#30H


NHAP1:JNB RI,$
CLR RI
MOV A,SBUF
MOV R2,A
MOV C,P
;-------- doan chuong trinh kiem tra cac co P va RB8
MOV A,#0
RRC A
MOV R1,A
MOV A,#0
MOV C,RB8
RRC A
XRL A,R1
JNZ KOLOI
INC R0
DJNZ R3,NHAP1
RET
KOLOI:MOV @R0,02H
INC R0
DJNZ R3,NHAP1
RET

BÀI 5.1:

ORG 0000H
LJMP main
ORG 0BH
T0IRS: CPL P1.7
RETI
ORG 30H
main: mov tmod,#02h
MOV TL0,#-250;
SETB TR0
MOV IE,#82H
SJMP $
END
BÀI 5.2:

ORG 0000H
LJMP main
ORG 0BH
T0IRS: CLR TF0
MOV TH0,#HIGH(-2500)
MOV TL0,#LOW(-2500);
SETB TR0
CPL P1.6
RETI
ORG 30H
main: mov tmod,#01h
SETB TF0
MOV IE,#82H
SJMP $
END
BÀI 5.3:
// Tao ra hai xung vuong tren 2 chan p1.0 va p1.1 co tan so lan luot la 1Khz va 50Hz
ORG 0000H
LJMP main
ORG 0BH
T0IRS: CLR TR0
MOV TH0,#HIGH(-10000)
MOV TL0,#LOW(-10000);
SETB TR0
CPL P1.1
RETI
ORG 1BH
T1IRS: CLR TR1
MOV TH1,#HIGH(-500)
MOV TL1,#LOW(-500);
SETB TR1
CPL P1.0
RETI
ORG 30H
main: mov tmod,#11h
SETB TF0
SETB TF1
MOV IE,#8AH
SJMP $
END
BÀI 5.4;

ORG 0000H
LJMP main
ORG 0BH
LJMP T0IRS
ORG 30H
main: mov dptr,#61FFh ;;; NOTE : De xuat duoc tu dia chi 6200h den 62ffh ta thuc hien tang truoc
mov tmod,#01h ;;sau do moi so sanh de thuc hien lenh tiep theo!
SETB TF0
MOV IE,#82H
SJMP $
T0IRS : CLR TR0 // Delay 50ms
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000);
SETB TR0
INC DPTR ; tang truoc // neu khong tang truoc khi ss thi
se thieu gia tri tai dia chi 62ffh
MOVX A,@DPTR
MOV P1,A
MOV A,DPL
CJNE A,#0FFH,TT
SJMP $+4 ; THOAT
TT: RETI
END
BÀI 5.5:

// viet chuong trinh nhap data tu p1; moi lan nhap cach nhau 5s; data nhan ve duoc ghi
vao
// vao vung nho rom noi co dia chi tu 50h den 5fh, sau khi nhap vao den gia tri cua o nho
cuoi cung thi
// quay lai o nho dau tien

ORG 0000H
LJMP main
ORG 0BH
LJMP T0IRS
ORG 30H
main: MOV P1,#0FFH ; tao tin hieu doc du lieu tren p1
mov R1,#4fh
mov r0,#100 ; 100*0.05s=5s
mov tmod,#01h
SETB TF0
MOV IE,#82H
SJMP $
T0IRS : CLR TR0 // Delay 50ms
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000);
SETB TR0
DJNZ R0,TT ; lenh thuc hien tao tre 5s
INC R1
MOV @R1,P1
MOV R0,#100 ; nap lai lai tri cho r0
CJNE R1,#05FH,TT
MOV R1,#4FH ; nap lai gia tri de tao gt cho o nho dau tien
TT: RETI
END
BÀI 5.6:
org 00h
sjmp main
org 23h
ljmp SERIAL
org 30h

MAIN: mov TMOD,#20H


MOV TH1,#-12
SETB TR1
MOV SCON,#52H ; CO EP NGAT
MOV A,#30H
MOV IE,#90H
sjmp $

;--------- ISR CONG NOI TIEP


ORG 100H
SERIAL: CJNE A,#3AH,SKIP
MOV A,#30H
SKIP: MOV SBUF,A
INC A
CLR TI
RETI
END
BÀI 5.7:
org 00h
sjmp main
org 23h
ljmp SERIAL
org 30h
MAIN: CLR P1.3
mov TMOD,#20H
MOV A,PCON
SETB ACC.7
MOV PCON,A
MOV TH1,#-3 ; TOC DO BAUD 19200
SETB TR1
MOV SCON,#51H ; sd CO EP NGAT
MOV IE,#90H
sjmp $
;--------- ISR CONG NOI TIEP
ORG 100H
SERIAL: JB TI,LAP
CLR RI
MOV A,SBUF
MOV R1,A
XRL A,#02H
JNZ TT
SETB P1.3
RETI
TT: MOV A,R1
XRL A,#03H
JNZ TTT
CLR P1.3
TTT: RETI
LAP: CLR TI
RETI
END

BÀI 5.8:
org 00h
sjmp main
ORG 03H
SJMP EX0ISR

org 30h
MAIN: mov TMOD,#20H
SETB IT0
MOV TH1,#-4 ; TOC DO BAUD 4800
SETB TR1
SETB TR0
MOV P1,#0FFH ;--CHO PHEP BO THU
MOV SCON,#0D0H ; sd CO EP NGAT
MOV IE,#81H
Sjmp $
;--------- ISR NGAT NGOAI
ORG 100H
EX0ISR: CLR TR0
MOV A,P1
MOV C,P
CPL C
MOV TB8,C
JNB TI,$
CLR TI
MOV SBUF,A
RETI
END
BÀI 5.9:
org 00h
sjmp main
ORG 13H
LJMP EX1ISR

org 30h
MAIN: SETB IT1
SETB TR1
MOV A,#0
MOV R0,#40H
MOV IE,#84H
LAP: CJNE A,#100,$+3
JNC TAT
SETB P3.3
SJMP LAP
TAT: CLR P3.3
SJMP LAP
;--------- ISR NGAT NGOAI
ORG 100H
EX1ISR: CLR TR1
INC A
MOV @R0,A
RETI
END

You might also like