You are on page 1of 10

BI TP V NH VI X L (ngun: Vit Hng)

BI 1: ORG 0000H MOV R0, #30h MOV R1, #10D MOV R6, #0H MOV R7, #0H MOV A, @R0 BACK: INC R0 ADD A, @R0 MOV R7, A JC OVER SJMP HERE OVER: INC R6 HERE: DJNZ R1, BACK END BI 2: org 0000h mov r0, #30h mov r1, #20d back:

cjne @r0, #41h, here ; So sanh ((r0)) voi 41h (ma ASCII cua A) clr c here: jc next ; ((r0))<41h thi C=1, tang con tro Ram xu ly ki tu tiep theo cjne @r0, #5ah, cont ; ((r0)>=41h thi C=0, tiep tuc so sanh voi 5Ah (ma ASCII cua Z) setb c cont: ; ((r0))>5Ah thi C=0, tang con tro Ram xu ly ki tu tiep theo jnc next convert: add a, #32d ; ((r0))<=5Ah thi C=1, doi no thanh ki tu thuong mov @r0, a next: inc r0 djnz r1, back end BI 3: org 0000h mov dptr, #2000h back: movx a, @dptr ; doc du lieu tu Ram ngoai cjne a, #30h, next sjmp quit ; neu a la ki tu '0' thi thoat luon

next: mov c, acc.7 C jc port2 sjmp port1 port2: trong A la am mov p2, a sjmp here port1: A duong mov p1, a here: inc dptr sjmp back quit: end BI 4:

; luu bit cao nhat cua a vao co nho

; neu C duoc set tuc la gia tri ; khi do se xuat ra port2 ; neu C=0 tuc la gia tri trong ; khi do se xuat ra port1

org 0h ljmp main ;*****vector ngat******** org 000bh ; vector ngat timer0 ljmp isr0 org 001bh ; vector ngat timer1 ljmp isr1 ;******chuong trinh chinh*******

;******Timer1 thay doi tan so xung******* ;******Timer0 thay doi thoi gian tre***** main: mov tmod, #012h ; timer1 che do 1, timer0 che do 2 mov ie, #08ah ; cho phep ngat timer0 va 1 mov ip, #01h ; uu tien ngat do timer0 mov th1, #0feh ; byte cao cua -500 mov tl1, #00ch ; byte thap cua -500 mov th0, #-100d ; nap thoi gian tre mov tl0, #-100d ; clr p1.6 clr p1.7 setb tr1 ; khoi dong timer1 sjmp $ isr0: clr tr0 ; dung timer0 mov c, p1.6 mov p1.7, c reti isr1: clr tr1 mov th1, #0feh ; byte cao cua -500 mov tl1, #00ch ; byte thap cua -500 setb tr0 ; khoi dong timer0 cpl p1.6 jb p1.6, here setb p1.7 sjmp quit here:

clr p1.7 quit: setb tr1 reti end BI 5: org 0000h ljmp main org 000bh ljmp isr0 org 001bh ljmp isr1 main: mov tmod, #11h ;Timer1 che do 1-16bit, Timer0 che do 1-16bit mov th1, #00feh ; byte cao cua -500 mov tl1, #000ch ; byte thap cua -500 mov th0, #0d8h ; byte cao cua -10000 mov tl0, #0f0h ; byte thap cua -10000 mov ie, #8ah ; cho phep ngat do 2 Timer setb tr0 setb tr1 setb tf0 ; buoc ngat do Timer0 sjmp $ isr0: clr tr0

mov th0, #0d8h mov tl0, #0f0h setb tr0 cpl p1.1 reti isr1: clr tr1 mov th1, #00feh mov tl1, #000ch setb tr1 cpl p1.0 reti end BI 6:

; byte cao cua -10000 ; byte thap cua -10000

; byte cao cua -500 ; byte thap cua -500

org 0000h main: ;******Thiet lap Timer0, dung Timer0 de tao tre chinh xac 1s******* mov tmod, #01h;che do 1 ;*******XU LY DEN************ back: mov p1, #11011110b; bat xanh1 va do2 (25s) mov r1, #0025d acall delay mov p1, #11011101b; bat vang1 va do2 (3s) mov r1, #0003d

acall delay mov p1, #11110011b; bat do1 va xanh2 (33s) mov r1, #0033d acall delay mov p1, #11101011b; bat do1 va vang2 (3s) mov r1, #0003d acall delay sjmp back delay: loop1: mov r0, #0020d loop2: clr tr0 clr tf0 mov th0, #003ch; byte cao cua -50000 mov tl0, #00b0h; byte thap cua -50000 setb tr0 wait: jnb tf0, wait djnz r0, loop2 djnz r1, loop1 ret end BI 7: org 00h ljmp main

org 0023h; vector ngat cua port noi tiep ljmp sisr main: mov tmod, #20h; Timer1 che do 2 mov a, pcon; nhan doi yoc do baud setb acc.7 mov pcon, a mov th1, #-3d; chon toc do baud 19200 mov scon, #50h; chon che do ca thu va phat 8 bit mov ie, #90h; cho phep ngat do port noi tiep clr ri clr ti setb tr1; khoi dong Timer1 sjmp $ sisr: jb ti, trans; thoat neu co ti o muc cao mov a, sbuf cjne a, #02h, cont1 setb P1.3; bat led sjmp cont2 cont1: cjne a, #03h, cont2 clr p1.3; tat led cont2: clr ri reti trans: clr ti

reti end BI 8: org 00h ljmp main org 0023h ljmp sisr main: mov tmod, #20h; Timer1 che do 2 mov scon, #50h; 8bit, cho phep thu mov th1, #-3d; toc do baud 9600 mov ie, #90h; cho phep ngat do port noi tiep mov r0, #70h; khoi tao con tro RAM noi setb tr1 sjmp $ sisr: jb ti, quit mov a, sbuf mov @r0, a cjne r0, #08fh, cont mov r0, #080h sjmp quit cont: inc r0 clr ri reti

quit: clr ti reti end

You might also like