Download doc - Thuc Hanh 89C51

Transcript
Page 1: Thuc Hanh 89C51

Ưng dung ic lâp trinh AT89C51: lam mach đen quang bao dung led ma trân 8x8

 

Tư lam bang đen Led chay chư trên ma trân 8x24 chi dung môt ic AT89C51

  Dân nhâp

 Dung ic lâp trinh AT89C51, Ban co thê kiêm soat đươc trang thai tăt sang cua cac day Led trên cac bang đen, tư đo co thê tao ra đươc cac hinh anh hay cac dong con chư cho chay trên cac bang đen nay, công viêc nay hiên rât đươc nhiêu Ban ưa thich, trong bai viêt nay, tôi trinh bay môt bai lam thưc hanh kha đơn gian nhưng rât căn cơ đê Ban hiêu đươc nguyên ly lam viêc cua cac bang đen quang bao. Tư cac hiêu biêt nay, Ban mơi co thê se mơ rông ra nhiêu kiêu bang đen phưc tap hơn. Mong Ban đê tâm tim hiêu.  

 

 

 

 

Bai thưc hanh nay se cho hiên hinh va cac dong chư chay, nhâp nhay, trên môt bang đen ma trân 8x8. Vơi ic môt lâp trinh co 4 cang p0, p1, p2, p3, chung ta se dung 3 bô ma trân 8x8 va như vây se không cân thêm môt ic logic nao nưa. Mach rât đơn gian, nhưng co cơ sơ ly thuyêt rât cơ ban, se giup Ban hiêu rât ro vê cac loai đen quang bao lơn khac.

 

Phân tich sơ đô mach điên:

Page 2: Thuc Hanh 89C51

 

 

Page 3: Thuc Hanh 89C51

 

 

Trươt hêt Ban tao bang đen dung 3 bô 8x8. Cac hang, trên đo la cac chân Anode cua cac Led cho nôi chung va dung môt transistor pnp đê dung bit 0 xuât trên cac chân cua cang p1 câp cho chân B cua transistor đê cho nôi dây chung nây lên đương nguôn 5V. Do mach dung ky thuât quet nên môi lân chi co môt hang cho nôi vao đương nguôn 5V.

 

Do cac chân cua Cathode cua Led cho nôi chung trên môt côt, chung ta dung cac transistor npn đê cho côt thông masse đê lây dong câp cho cac Led, vây đê chân Cathode thông masse, chung ta se dung bit 1, cho xuât trên cac chân cua công p2, p0 va p3 câp cho chân B cua cac transistor. Vơi môt công co 8 bit, vây môi bô ma 8 bit cho xuât ra trên cac công p2, p0, p3, chung ta co thê điêu khiên môi nhip đươc 8 Led.

 

 

 

Tim hiêu bang ma trân Led 8x8:

 

 

Hinh ve cho thây cach găn cac Led trên ma trân tao bơi 8 hang va 8 côt.

 

Page 4: Thuc Hanh 89C51

 

 

Sơ đô dung giai thich nguyên ly tăt mơ cac Led trên bang ma trân 8x8.

 

Page 5: Thuc Hanh 89C51

 

  Cach 1: Ma quet xuât trên p2, p3, p0, ma hinh hay chư xuât trên cang p1.

 Sơ đô mach điên trên, môt lân nưa, cho thây, chung ta cho nôi 8 chân cua cac chân B cua 8 transistor 2SA1015 va cang p1. Vây khi co môt chân cua cang p1 xuât ra bit 0, no se lam transistor bao hoa, va luc nay dây anode chung se đươc cho nôi vao đương nguôn 5V. Ơ đây, Ban se viêt đoan chương trinh sao cho môi nhip chi co môt chân cua công p1 xuât ra bit 0.

 Ban thây khi xuât 8 bit ra trên cang p2, 8 bit ơ mưc 1 ưng vơi mưc volt cao dung câp cho chân B cua 8 transistor 2SC1815, luc nay cac transistor se bi lam cho bao hoa, no cho 8 côt trên đo co cac chân Cathode nôi masse, vây 8 Led nay se phat sang, trong mach chung ta han dong vơi cac điên trơ 100 ohm. 

 Tom lai, muôn in hinh hay cac con chư trên bang Led ma trân nay, Ban phai lam đươc 2 viêc sau:

Page 6: Thuc Hanh 89C51

 Viêc 1: Viêt đoan chương trinh câp ma quet.Tôc đô quet đu nhanh đê dung hiên tương lưu anh cua măt ma gây ra "nhâm lân" la trên bang đen đang co rât nhiêu Led đang đươc câp dong phat sang.

 

Viêt đoan chương trinh đê xuât ma quet bit 0 trên cac chân B cua cac transistor pnp trên cac cang p1, đê cho chư trôi xuông.

  

 Viêt đoan chương trinh đê xuât ma quet bit 0 trên cac chân B cua cac transistor pnp trên cac cang p1, đê cho chư trôi lên.

 

Page 7: Thuc Hanh 89C51

 

 

Viêt chương trinh ma quet, câp bit 1 cho cac chân B cua cac transistor npn trên cac cang p2, p3, p0, đê tao hinh dơi ngang.

 

 Viêc 2: Viêt cac day ma 8 bit cho xuât ma hinh trên cac cang p2, p3, p0 hay trên p1 đê lam sang cac Led trên cac côt, cac ma 8 bit nay viêt theo kiêu hinh hay dang con chư ma Ban muôn no hiên ra trên bang đen. Cac day ma 8 bit nay chung ta se cho cât trong cac bang, sau nay se dung câu lênh movc a, @a + dptr đê lây cac day ma ra cho xuât trên cac cang cua ic AT89C51.  

 Sau đây la đoan chương trinh viêt cho xuât ma quet trên p2, p3, p0 va ma hinh xuât trên cang p1.

 

h1b:  ;đăt tên nhan dung cho lênh nhây        mov r0, #11111110b ; đăt tri khơi đâu dung cho lênh quay vong        mov r1, #00h  ; đăt tri khơi đâu dung cho lênh lây ma hinh hay chưll1b:   mov a, r0  ; chuyên tri trong r0 vao thanh a        rr a   ; cho 8 bit trong a quay vong qua hương phai        mov r0, a  ; chuyên tri trong thanh a ra r0        mov p1, r0  ; cho xuât tri trong thanh a ra cang p1

        mov a, r1  ; chuyên tri trong thanh r1 vao thanh a        movc a, @a + dptr  ; truy lây ma hinh trong bang cho cât vao thanh a        mov p2, a  ; cho xuât ma hinh trên cang p2

Page 8: Thuc Hanh 89C51

        inc r1  ; tăng tri trong thanh r1 lên +1 đê lây ma hinh tiêp theo        mov a, r1  ; chuyên tri r1 vao thanh a        movc a, @a + dptr  ; truy lây ma hinh trong bang cho cât vao thanh a        mov p3, a  ; cho xuât ma hinh trên cang p3

        inc r1  ; tăng tri trong thanh r1 lên +1 đê lây ma hinh tiêp theo        mov a, r1   ; chuyên tri r1 va thanh a        movc a, @a + dptr  ; truy lây ma hinh trong bang cho cât vao thanh a        mov p0, a  ; cho xuât ma hinh trên cang p0

        inc r1  ; lai tăng tri trong r1 lên +1        call del1   ; goi chương trinh lam châm        mov p1, #11111111b  ; tăt 8 bit trên cang p1        mov p0, #00h  ; tăt 8 bit trên cang p0        mov p2, #00h  ; tăt 8 bit trên cang p2        mov p3, #00h  ; tăt 8 bit trên cang p3        call del1   ; goi chương trinh lam châm        cjne r0, #11111110b, ll1b   ; so sanh ma quet đê chon hương nhây        ret  ; quay lai sau lênh call

 Đoan chương trinh nay viêt giông như đoan trên, điêm khac biêt la dung câu lênh rl a quay vong theo hương trai đê đôi hương chay hinh trên bang ma trân 8x24. Ma quet đăt trên cang p1, ma hinh lân lươt cho lây ra xuât trên cang p2, rôi p3, rôi p0.

 

 

 h1c:   ; đăt tên nhan dung cho lênh nhây        mov r0, #01111111b  ; đăt tri khơi đâu dung cho lênh quay vong        mov r1, #00h  ll1c:    mov a, r0  ; chuyên tri trong r0 vao thanh a        rl a   ; cho 8 bit trong thanh a quay vong theo hương trai        mov r0, a  ; chuyên tri trong thanh a vao thanh r0        mov p1, r0  ; cho xuât tri trong thanh r0 ra cang p1

; lây ma hinh xuât trên cang p2 

       mov a, r1        movc a, @a + dptr        mov p2, a

; lây ma hinh xuât trên cang p3        inc r1        mov a, r1

Page 9: Thuc Hanh 89C51

        movc a, @a + dptr        mov p3, a

; lây ma hinh xuât trên cang p0        inc r1        mov a, r1        movc a, @a + dptr        mov p0, a

; tranh hinh bi lem        inc r1        call del1        mov p1, #11111111b        mov p0, #00h        mov p2, #00h        mov p3, #00h        call del1        cjne r0, #01111111b, ll1c        ret  ; quay lai sau lênh call

 

 

Môt minh hoa: Ma quet cho xuât trên cac cang p2 rôi p3 rôi p0. Ma hinh xuât trên cang p1.

 

Page 10: Thuc Hanh 89C51

 

Cho xuât ma quet nhip nhanh trên cac cang p2, p3, p0 va cung luc cho xuât ma hinh hay chư trên cang p1. Sau đây la đoan chương trinh viêt cho trương hơp 2 dung đê hiên cac hinh va con chư trên bang ma trân 8x24.

 

Phân tich câu lênh:

 

; Cac câu lênh cho xuât ma quet trên cang p2, ma hinh trên p1

h1:    ; đăt tên nhan dung cho lênh nhây        mov r0, #00000001b  ; đăt tri khơi đâu cho thanh r0        mov r1, #00h   ; tra thanh r1 vê tri 0ll1:    mov a, r0  ; cho chuyên tri trong r0 va thanh a        rr a   ; cho cac 8 bit trong thanh a, quay vong qua theo hương bên phai        mov r0, a  ; chuyên tri co trong thanh a vao thanh r0        mov p2, r0 ; cho xuât tri trong r0 ra ơ cang p2        mov a, r1  ; bây giơ chuyên tri trong r1 vao thanh a        movc a, @a + dptr  ; lây ma 8 bit trong bang theo tri trong a, rôi cho cât vao thanh a        mov p1, a  ; cho xuât tri nay trên cang p1        inc r1  ; cho tăng tri trong r1 lên +1 đê chuân bi lây dong ma tiêp theo         call del1 ; goi chương trinh lam châm đê tao mưc sang cho cac led        mov p2, #00h  ; cho 8 chân cua cang p2 xuông mưc 0 đê tăt cac Led.  

Page 11: Thuc Hanh 89C51

        mov p1, #0ffh  ; Cho 8 chân cua cang p1 lên mưc 1 cung đê tăt Led        call del1  ; cho goi tring lam châm đê xoa cac Led tranh lem         cjne r0, #00000001b, ll1  ; so sanh tri trong r0, nêu thây chưa quay đu 8 nhip thi tiêp tuc.

 

; Cac câu lênh cho xuât ma quet trên cang p3, ma hinh trên cang p1

ll2:    ; đăt tên nhan dung cho lênh nhây

        mov a, r0  ; lai chuyên tri trong r0 vao a         rr a   ; cho quay vong 8 bit trong a theo hương bên phai        mov r0, a  ; chuyên tri trong thanh a vao r0        mov p3, r0 ; cho xuât tri trong r0 ra trên cang p3        mov a, r1  ; chuyên tri co trong r1 vao thanh a        movc a, @a + dptr   ; cho lây ma trong bang cât vao a         mov p1, a  ; cho tri trong a xuât ra trên cang p1        inc r1  ; tăng tri trong r1 lên +1 đê lây dong ma hinh tiêp theo        call del1  ; goi chương trinh lam châm        mov p3, #00h ; đăt 8 chân cua cang p3 xuông mưc 0        mov p1, #0ffh  ; đăt 8 chân cua cang p1 lên mưc 1        call del1  ; cho goi chương trinh lam châm        cjne r0, #00000001b, ll2  ; so sanh tri trong r0 đê đinh hương nhây

 

; Cac câu lênh cho xuât ma quet trên cang p0, ma hinh trên cang p1

ll3:     ; đăt tên nhan dung cho lênh nhây

        mov a, r0  ; chuyên tri trong thanh a vao thanh r0        rr a   ; cho 8 bit trong thanh a quay vong qua hương phai        mov r0, a  ; chuyên tri trong thanh a trơ lai r0        mov p0, r0 ; cho tri trong r0 xuât ra trên cang p0        mov a, r1  ; chuyên tri trong r1 vao thanh a        movc a, @a + dptr  ; lây ma 8 bit trong bang cât vao thanh a        mov p1, a  ; cho tri trong a xuât ra trên cang p1        inc r1  ; tăng tri trong r1 lên +1 đê lây dong ma kê tiêp        call del1  ; goi chương trinh lam châm        mov p0, #00h  ; đăt 8 chân cua cang p0 xuông mưc 0        mov p1, #0ffh  ; đăt 8 bit cua cang p1 lên mưc 1        call del1  ; goi chương trinh lam châm        cjne r0, #00000001b, ll3  ; so sanh tri trong r0 đê đinh hương nhây        ret  ; quay lai sau lênh call 

 

 

Page 12: Thuc Hanh 89C51

Cach 2:  Ma quet cho xuât trên p1va ma hinh hay chư cho xuât trên cang p2, p3, p0

 Môt minh hoa: Cho xuât ma quet nhanh trên cang p1, cac ma hinh lân lươt cho xuât trên cang p2, cang p3, cang p0

 

 Phân tich câu lênh:

 

h1b:      ; đăt tên nhan cho lênh nhây        mov r0, #11111110b   ; đăt tri khơi đâu cho nhip quet        mov r1, #00h   ; tra tri khơi đâu cho r1 vê 0ll1b:   mov a, r0  ; chuyên tri r0 vao thanh a        rr a   ; cho 8 bit trong a quay vong qua phai        mov r0, a   ; chuyên tri trong a ra r0        mov p1, r0  ; cho xuât tri trong r0 ra cang p1

        mov a, r1  ; chuyên tri r1 vao a        movc a, @a + dptr   ; lây ma đia chi trong bang cho cât vao thanh a        mov p2, a  ; cho xuât 8 bit ma hinh ra trên cang p2        inc r1 ; tăng tri trong r1 lên +1         mov a, r1 ; lai chuyên tri trong r1 vao thanh a        movc a, @a + dptr  ; lai lây tiêp 8 bit ma hinh cât vao thanh a        mov p3, a  ; cho xuât 8 bit ma hinh ra trên cang p3        inc r1  ; môt lân nưa lai tăng tri trong r1 lên +1

Page 13: Thuc Hanh 89C51

        mov a, r1   ; lai chuyên tri cua r1 vao thanh a        movc a, @a + dptr  ; lai lây tiêp 8 bit ma hinh cho cât vao thanh a        mov p0, a  ; bây giơ cho xuât 8 bit ma hinh ra trên cang p0        inc r1  ; lai tăng tri r1 lên +1, chuân bi lây tiêp cac ma hinh tiêp theo        call del1  ; goi chương trinh lam châm        mov p1, #11111111b  ; xoa xung quet tranh lem hinh        mov p0, #00h  ; xoa ma hinh trên p0        mov p2, #00h  ; xoa ma hinh trên p2        mov p3, #00h  ; xoa ma hinh trên p3        call del1  ; goi chương trinh lam châm        cjne r0, #11111110b, ll1b  ; so sanh tri trong a vơi ma quet khơi đâu đê nhây.        ret  ; quay lai sau lênh call 

 

 

 

 

Phân tich cach viêt chương trinh nguôn tông hơp:

 

 

 org 0000h    ; khơi đâu chương tring nguôn        slan equ 20h   ; đăt tên slan "sô lân" cho thanh 20hbd:     call xoa   ; goi chương trinh xoa       mov r3, #0  ; đăt tri 3 vao thanh r1        call h2                 ; cho goi trinh mơ man        mov p1, #11111111b ; xoa         mov dptr, #b_1          ; cho hiên chư Phucst:     mov r4, #10  ; nap tri 10 vao thanh r4tta:    call h1   ; cho goi chương trinh co tên nhan h1        djnz r4, tta  ; cho lâp lai call h1 10 lân ;        inc dptr  ; tam dưng dơi chư Phuc        inc r3  ; tăng tri r3 theo bươc +1        cjne r3, #26, st  ; so sanh tri trong r3 đê đinh hương nhây        mov r3, #0   ; tra tri trong r3 vê 0

        mov p1, #11111111b ; cho tăt 8 bit trên cang p1        mov dptr, #b_2          ; cho hiên chư Lanst2:    mov r4, #10ttb:    call h1        djnz r4, ttb;        inc dptr        inc r3

Page 14: Thuc Hanh 89C51

        cjne r3, #26, st2        mov 3, #0

        call h4a        ; bo man xuông        call h4          ;  keo man lên

        call xoa        mov dptr, #b_2b         ; cho hiên chư Nst21:   mov r4, #2ttb1:   call h1        djnz r4, ttb1;        inc dptr        inc r3        cjne r3, #26, st21        mov 3, #0

        call xoa        mov dptr, #b_2ba        ; cho hiên chư NHst21a:  mov r4, #2ttb1a:  call h1        djnz r4, ttb1a;        inc dptr        inc r3        cjne r3, #26, st21a        mov 3, #0

        call xoa        mov dptr, #b_2bb        ; cho hiên chư NHÂst21b:  mov r4, #2ttb1b:  call h1        djnz r4, ttb1b;        inc dptr        inc r3        cjne r3, #26, st21b        mov 3, #0

        call xoa        mov dptr, #b_2bc        ; cho hiên chư NHÂTst21c:  mov r4, #10ttb1c:  call h1        djnz r4, ttb1c;        inc dptr        inc r3        cjne r3, #26, st21c        mov 3, #0

        call xoa        mov dptr, #b_2c          ; cho hiên chư Tst22:   mov r4, #2

Page 15: Thuc Hanh 89C51

ttb2:   call h1        djnz r4, ttb2;        inc dptr        inc r3        cjne r3, #26, st22        mov 3, #0

        call xoa        mov dptr, #b_2ca          ; cho hiên chư TÂst22a:  mov r4, #2ttb2a:  call h1        djnz r4, ttb2a;        inc dptr        inc r3        cjne r3, #26, st22a        mov 3, #0

        call xoa        mov dptr, #b_2cb          ; cho hiên chư TÂNst22b:  mov r4, #10ttb2b:  call h1        djnz r4, ttb2b;        inc dptr        inc r3        cjne r3, #26, st22b        mov 3, #0

        call h4a        ; ha man xuông        call h4         ; keo man lên

        call xoa        mov dptr, #b_2a  ; cho hiên chư Phuc Lan, chư chayst5a:   mov r4, #20tte1:   call h1        djnz r4, tte1        inc dptr        inc r3        cjne r3, #54, st5a        mov r3, #0

        call xoa        mov slan, #3ttuc:   mov dptr, #b_4          ; cho hiên chư Chaost4:    mov r4, #10ttd:    call h1        djnz r4, ttd        ;inc dptr        inc r3        cjne r3, #10, st4

Page 16: Thuc Hanh 89C51

        mov r3, #0        mov p0, #00h        mov p2, #00h        mov p3, #00h        call delay

        call xoa        mov dptr, #b_4b         ; cho hiên chư Banst4a:   mov r4, #10ttd1:   call h1        djnz r4, ttd1        ;inc dptr        inc r3        cjne r3, #10, st4a        mov r3, #0        mov p0, #00h        mov p2, #00h        mov p3, #00h        call delay        djnz slan, ttuc

        call xoa        mov dptr, #b_3  ; cho hiên chư Tap chi điên tư Viêt Nam, chư chayst3:    mov r4, #15ttc:    call h1        djnz r4, ttc        inc dptr        inc r3        cjne r3, #122, st3        mov r3, #0

        call xoa        mov dptr, #b_5  ; PHONE : 39235347, hiên sô điên thoai, chư chayst5:    mov r4, #20tte:    call h1        djnz r4, tte        inc dptr        inc r3        cjne r3, #79, st5        mov r3, #0

        call h4a        ; ha man xuông        call h4         ; keo man lên

        call xoa        mov dptr, #b_9  ; cho hiên hinh hang câyst9:    mov r4, #20tti:    call h1        djnz r4, tti

Page 17: Thuc Hanh 89C51

;        inc dptr        inc r3        cjne r3, #26, st9        mov 3, #0

        call xoa        mov slan, #14lamt:   mov dptr, #b_10 ; hiên hinh Logo 1        mov r3, #0qlai:   mov r2, #12llai:   call h1b        djnz r2, llai        inc dptr        inc dptr        inc dptr        inc r3        cjne r3, #16, qlai        djnz slan, lamt

        call xoa        mov dptr, #b_6  ; hiên hang chư CHUYEN BAN CAC LINH KIEN DIEN TU ABCDEFGHIJKLMNOPQst6:    mov r4, #8ttf:    call h1        djnz r4, ttf        inc dptr        inc r3        cjne r3, #255, st6        mov r3, #0

        call xoa        mov dptr, #b_7  ; hiên hang chư RSTXYZUVWst7:    mov r4, #8ttg:    call h1        djnz r4, ttg        inc dptr        inc r3        cjne r3, #52, st7        mov r3, #0

        call xoa        mov slan, #6lamt1:  mov dptr, #b_11 ; cho hiên hinh Logo 2        mov r3, #0qlai1:  mov r2, #12llai1:  call h1b        djnz r2, llai1        inc dptr        inc dptr

Page 18: Thuc Hanh 89C51

        inc dptr        inc r3        cjne r3, #16, qlai1        djnz slan, lamt1

        call xoa        mov slan, #2lamt2:  mov dptr, #b_12 ; cho hiên hinh Logo 3 điên trơ        mov r3, #0qlai2:  mov r2, #50llai2:  call h1b        djnz r2, llai2        inc dptr        inc dptr        inc dptr        inc r3        cjne r3, #16, qlai2        djnz slan, lamt2

        call xoa        mov slan, #10lamt3:  mov dptr, #b_13   ; cho hiên hinh Logo 4 giot nươc

        mov r3, #0qlai3:  mov r2, #40llai3:  call h1c        djnz r2, llai3        inc dptr        inc dptr        inc dptr        inc r3        cjne r3, #16, qlai3        djnz slan, lamt3

        call xoa        mov slan, #4lamt4:  mov dptr, #b_14 ; cho hiên hinh Logo 5        mov r3, #0qlai4:  mov r2, #12llai4:  call h1b        djnz r2, llai4        inc dptr        inc dptr        inc dptr        inc r3        cjne r3, #16, qlai4        djnz slan, lamt4

Page 19: Thuc Hanh 89C51

        call xoa        mov dptr, #b_8  ; hiên hinh căn nhast8:    mov r4, #30tth:    call h1        djnz r4, tth;        inc dptr        inc r3        cjne r3, #26, st8        mov 3, #0

        call h3         ; keo man lên        call delay        call delay

        jmp bd

h2:                     ; trinh mơ man        mov p1, #00h        mov p0, #0ffh        mov p2, #0ffh        mov p3, #0ffh        call delay        mov p3, #11100111b        call delay        mov p3, #11000011b        call delay        mov p3, #10000001b        call delay        mov p3, #00000000b        call delay        mov p2, #11111110b        mov p0, #01111111b        call delay        mov p2, #11111100b        mov p0, #00111111b        call delay        mov p2, #11111000b        mov p0, #00011111b        call delay        mov p2, #11110000b        mov p0, #00001111b        call delay        mov p2, #11100000b        mov p0, #00000111b        call delay        mov p2, #11000000b        mov p0, #00000011b

Page 20: Thuc Hanh 89C51

        call delay        mov p2, #10000000b        mov p0, #00000001b        call delay        mov p2, #00000000b        mov p0, #00000000b        call delay        call delay        ret

 

h3:                     ; trinh keo man, sang tư 2 bên vao        mov p1, #00h        mov p0, #00h        mov p2, #00h        mov p3, #00h        call delay        mov p2, #10000000b        mov p0, #00000001b        call delay        mov p2, #11000000b        mov p0, #00000011b        call delay        mov p2, #11100000b        mov p0, #00000111b        call delay        mov p2, #11110000b        mov p0, #00001111b        call delay        mov p2, #11111000b        mov p0, #00011111b        call delay        mov p2, #11111100b        mov p0, #00111111b        call delay        mov p2, #11111110b        mov p0, #01111111b        call delay        mov p2, #11111111b        mov p0, #11111111b        call delay        mov p3, #10000001b        call delay        mov p3, #11000011b        call delay        mov p3, #11100111b        call delay

Page 21: Thuc Hanh 89C51

        mov p3, #11111111b        call delay        call delay        ret

 

h4:                     ; keo man lên.         mov p1, #00h        mov p0, #0ffh        mov p2, #0ffh        mov p3, #0ffh        call delay        call delay        setb p1.7        call delay        setb p1.6        call delay        setb p1.5        call delay        setb p1.4        call delay        setb p1.3        call delay        setb p1.2        call delay        setb p1.1        call delay        setb p1.0        call delay        call delay        ret

 

h4a:            ; ha man xuông        mov p1, #0ffh        call delay        call delay        mov p0, #0ffh        mov p2, #0ffh        mov p3, #0ffh        clr p1.0        call delay        mov p0, #0ffh        mov p2, #0ffh        mov p3, #0ffh        clr p1.1

Page 22: Thuc Hanh 89C51

        call delay        mov p0, #0ffh        mov p2, #0ffh        mov p3, #0ffh        clr p1.2        call delay        mov p0, #0ffh        mov p2, #0ffh        mov p3, #0ffh        clr p1.3        call delay        mov p0, #0ffh        mov p2, #0ffh        mov p3, #0ffh        clr p1.4        call  delay        mov p0, #0ffh        mov p2, #0ffh        mov p3, #0ffh        clr p1.5        call delay        mov p0, #0ffh        mov p2, #0ffh        mov p3, #0ffh        clr p1.6        call delay        mov p0, #0ffh        mov p2, #0ffh        mov p3, #0ffh        clr p1.7        call delay        call delay        ret

 

; đoan chương trinh dung đê in hinh trên ma trân 8x24, ma hinh xuât trên cang p1

h1:  ; đăt tên nhan dung cho lênh nhây        mov r0, #00000001b  ; đăt tri khơi đâu cho lênh quay vong        mov r1, #00h ; đăt tri khơi đâu dung đê lây ma hinh trong bang

ll1:    mov a, r0  ; chuyên tri trong r0 vao thanh a đê dung lênh rr a        rr a  ;  cho 8 bit trong thanh a quay vong theo hương phai        mov r0, a  ; chuyên tri trong a trơ lai thanh r0        mov p2, r0 ; cho xuât tri trong r0 ra cang p2

Page 23: Thuc Hanh 89C51

         mov a, r1  ; chuyên tri trong r1 vao thanh a        movc a, @a + dptr  ; truy lây ma hinh trong bang cât vao thanh a        mov p1, a  ; cho xuât ma hinh trong a ra cang p1

        inc r1 ; tăng tri trong r1 lên +1 đê lây ma hinh tiêp theo        call del1  ; goi trê        mov p2, #00h  ; tăt 8 bit trên cang p2        mov p1, #0ffh  ; tăt � bit trên cang p1        call del1  ; goi trê        cjne r0, #00000001b, ll1  ; so sanh thanh r0 vơi ma quet đê chon hương nhây

 

ll2:    mov a, r0  ; chuyên tri trong r0 vao thanh a        rr a   ; cho 8 bit trong thanh a quay vong theo hương phai        mov r0, a  ; chuyên tri trong a vao thanh r0        mov p3, r0  ; cho tri ma quet trong r0 xuât ra  ơ cang p3

        mov a, r1  ; chuyên tri trong thanh r1 vao thanh a        movc a, @a + dptr  ; truy lây ma hinh trong bang cât vao thanh a         mov p1, a  ; cho xuât ma hinh trong a ra cang p1

        inc r1   ; tăng tri trong r1 lên +1 đê lây ma hinh tiêp theo        call del1  ; goi trê        mov p3, #00h  ; tăt 8 bit trên cang p3        mov p1, #0ffh  ; tăt 8 bit trên cang p1        call del1   ; goi trê        cjne r0, #00000001b, ll2  ; so sanh r0 va ma quet đê chon hương nhây

 

ll3:    mov a, r0   ; chuyên tri trong r0 vao thanh a        rr a  ; cho 8 bit trong thanh a quay vong theo hương phai        mov r0, a  ; chuyên tri trong thanh a trơ lai thanh r0        mov p0, r0  ; cho xuât tri ma quet trong r0 ra cang p0

        mov a, r1   ; chuyên tri trong thanh r1 vao thanh a        movc a, @a + dptr  ; truy lây ma hinh trong bang cât vao thanh a        mov p1, a   ; cho xuât tri ma hinh trong thanh a ra cang p1

        inc r1  ; tăng tri trong r1 lên +1 đê lây ma hinh tiêp theo         call del1  ; goi trê        mov p0, #00h   ; cho tăt 8 bit trên cang p0

Page 24: Thuc Hanh 89C51

        mov p1, #0ffh   ; cho tăt 8 bit trên cang p1        call del1  ; goi trê        cjne r0, #00000001b, ll3  ; so sanh tri trong r0 vơi ma quet đê đinh hương nhây        ret  ; quay lai sau lênh call

 

del1:        mov r7, #3v6:     mov r6, #50        djnz r6, $        djnz r7, v6        ret

delay:        mov r7, #5v6a:    mov r6, #50v5:     mov r5, #250        djnz r5, $        djnz r6, v5        djnz r7, v6a        retxoa:    mov p0, #00000000b        mov p2, #00000000b        mov p3, #00000000b        mov p1, #11111111b        ret

 

; đoan chương trinh cho xuât ma hinh trên cang p2, p3, p0h1b:        mov r0, #11111110b        mov r1, #00hll1b:   mov a, r0        rr a        mov r0, a        mov p1, r0

        mov a, r1        movc a, @a + dptr        mov p2, a        inc r1        mov a, r1        movc a, @a + dptr        mov p3, a        inc r1

Page 25: Thuc Hanh 89C51

        mov a, r1        movc a, @a + dptr        mov p0, a        inc r1        call del1        mov p1, #11111111b        mov p0, #00h        mov p2, #00h        mov p3, #00h        call del1        cjne r0, #11111110b, ll1b        ret

 

; đoan chương trinh cho xuât ma hinh trên cang p2, p3, p0h1c:        mov r0, #01111111b        mov r1, #00hll1c:    mov a, r0        rl a        mov r0, a        mov p1, r0

        mov a, r1        movc a, @a + dptr        mov p2, a        inc r1        mov a, r1        movc a, @a + dptr        mov p3, a        inc r1        mov a, r1        movc a, @a + dptr        mov p0, a        inc r1        call del1        mov p1, #11111111b        mov p0, #00h        mov p2, #00h        mov p3, #00h        call del1        cjne r0, #01111111b, ll1c        ret

 

; cac bang dung đăt ma hinh va chư do Ban tư soanb_1:    ; tao chư Phuc

Page 26: Thuc Hanh 89C51

db 11111111bdb 00000001bdb 00000001bdb 11101101bdb 11101101bdb 11110011bdb 11111111bdb 00000001bdb 00000001bdb 11101111bdb 11101111bdb 00000001bdb 11111111bdb 10000001bdb 00000001bdb 01111101bdb 01111110bdb 10000001bdb 11111111bdb 10000011bdb 00000001bdb 01111101bdb 01111101bdb 10011011b

b_2:  ; tao chư Landb 11111111bdb 11111111bdb 11111111bdb 00000001bdb 00000001bdb 01111111bdb 01111111bdb 01111111bdb 11111111bdb 00000111bdb 00000011bdb 11011101bdb 11011011bdb 00000111bdb 11111111bdb 00000001bdb 00000011bdb 11110111bdb 11101111bdb 00000001bdb 11111111b

Page 27: Thuc Hanh 89C51

db 11111111bdb 11111111bdb 11111111b

b_2a:      ; tao chư Phuc * Landb 11111111bdb 11111111bdb 00000001bdb 00000001bdb 11101101bdb 11101101bdb 11110011bdb 11111111bdb 00000001bdb 00000001bdb 11101111bdb 11101111bdb 00000001bdb 11111111bdb 10000001bdb 00000001bdb 01111101bdb 01111110bdb 10000001bdb 11111111bdb 10000011bdb 00000001bdb 01111101bdb 01111101bdb 10011011bdb 11111111bdb 11111111bdb 10111011bdb 11010111bdb 00000001bdb 11010111bdb 10111011bdb 11111111bdb 11111111bdb 00000001bdb 00000001bdb 01111111bdb 01111111bdb 01111111bdb 11111111bdb 00000111bdb 00000011b

Page 28: Thuc Hanh 89C51

db 11011101bdb 11011011bdb 00000111bdb 11111111bdb 00000001bdb 00000011bdb 11110111bdb 11101111bdb 00000001bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

b_2b:            ; tao chư Ndb 11111111bdb 00000011bdb 11110111bdb 11101111bdb 11011111bdb 00000011bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

Page 29: Thuc Hanh 89C51

db 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

b_2ba:            ; tao chư NHdb 11111111bdb 00000011bdb 11110111bdb 11101111bdb 11011111bdb 00000011bdb 11111111bdb 00000011bdb 11011111bdb 11011111bdb 11011111bdb 00000011bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

b_2bb:            ; tao chư NHÂdb 11111111bdb 00000011bdb 11110111bdb 11101111bdb 11011111bdb 00000011bdb 11111111b

Page 30: Thuc Hanh 89C51

db 00000011bdb 11011111bdb 11011111bdb 11011111bdb 00000011bdb 11111111bdb 00001111bdb 11010101bdb 01011010bdb 11010101bdb 00001111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

b_2bc:            ; tao chư NHÂTdb 11111111bdb 00000011bdb 11110111bdb 11101111bdb 11011111bdb 00000011bdb 11111111bdb 00000011bdb 11011111bdb 11011111bdb 11011111bdb 00000011bdb 11111111bdb 00001111bdb 11010101bdb 01011010bdb 11010101bdb 00001111bdb 11111111bdb 11111011bdb 11111011bdb 00000011bdb 11111011bdb 11111011bdb 11111111b

b_2c:            ; tao chư Tdb 11111111b

Page 31: Thuc Hanh 89C51

db 11111111bdb 11111111bdb 11111011bdb 11111011bdb 00000011bdb 11111011bdb 11111011bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

b_2ca:            ; tao chư TÂdb 11111111bdb 11111111bdb 11111111bdb 11111011bdb 11111011bdb 00000011bdb 11111011bdb 11111011bdb 11111111bdb 11111111bdb 00001111bdb 11010101bdb 11011010bdb 11010101bdb 00001111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

Page 32: Thuc Hanh 89C51

db 11111111bdb 11111111bdb 11111111b

b_2cb:            ; tao chư TÂNdb 11111111bdb 11111111bdb 11111111bdb 11111011bdb 11111011bdb 00000011bdb 11111011bdb 11111011bdb 11111111bdb 11111111bdb 00001111bdb 11010101bdb 11011010bdb 11010101bdb 00001111bdb 11111111bdb 11111111bdb 00000011bdb 11110111bdb 11101111bdb 11011111bdb 00000011bdb 11111111bdb 11111111bdb 11111111b

b_3:     ; tao chư Tap Chi Điên Tư Viêt Namdb 11111111bdb 11111101bdb 11111101bdb 00000001bdb 11111101bdb 11111101bdb 11111111bdb 00001111bdb 11010111bdb 01011011bdb 11010111bdb 00001111bdb 11111111bdb 00000011bdb 11011011bdb 11011011b

Page 33: Thuc Hanh 89C51

db 11011011bdb 11100111bdb 11111111bdb 11011111bdb 11011111bdb 11011111bdb 11111111bdb 10000111bdb 01111011bdb 01111011bdb 01111011bdb 10110111bdb 11111111bdb 00000011bdb 11101111bdb 11101111bdb 11101111bdb 00000011bdb 11111111bdb 00000011bdb 11111111bdb 11011101bdb 11011110bdb 11011111bdb 11111111bdb 00000001bdb 01101101bdb 01101101bdb 01111101bdb 10000011bdb 11111111bdb 00000010bdb 11111111bdb 00000111bdb 01010101bdb 01010110bdb 01010101bdb 01110111bdb 11111111bdb 00000011bdb 11110111bdb 11101111bdb 11011111bdb 00000011bdb 11111111bdb 11011111bdb 11011111bdb 11011111b

Page 34: Thuc Hanh 89C51

db 11111111bdb 11111101bdb 11111101bdb 00000001bdb 11111101bdb 11111101bdb 11111111bdb 10000111bdb 01111111bdb 01110010bdb 01111101bdb 10000111bdb 11111001bdb 11011111bdb 11011111bdb 11011111bdb 11111111bdb 11000001bdb 10111111bdb 01111111bdb 10111111bdb 11000001bdb 11111111bdb 00000010bdb 11111111bdb 00000111bdb 01010101bdb 01010110bdb 01010101bdb 01110111bdb 11111111bdb 11111011bdb 11111011bdb 00000011bdb 11111011bdb 11111011bdb 11111111bdb 11101111bdb 11101111bdb 11101111bdb 11111111bdb 00000001bdb 11111011bdb 11110111bdb 11101111bdb 00000001bdb 11111111bdb 00001111b

Page 35: Thuc Hanh 89C51

db 10110111bdb 10111011bdb 10110111bdb 00001111bdb 11111111bdb 00000011bdb 11110111bdb 11101111bdb 11110111bdb 00000011bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

b_4:          ; tao chư Chaodb 10000111bdb 01111011bdb 01111011bdb 01111011bdb 10110111bdb 11111111bdb 00000011bdb 11011111bdb 11011111bdb 11011111b

Page 36: Thuc Hanh 89C51

db 00000011bdb 11111111bdb 00001111bdb 11010111bdb 11011011bdb 11010110bdb 00001101bdb 11111111bdb 10000111bdb 01111011bdb 01111011bdb 01111011bdb 10000111bdb 11111111b

b_4b:     ; tao chư Bandb 11111111bdb 11111111bdb 00000011bdb 01101011bdb 01101011bdb 01101011bdb 10010111bdb 11111111bdb 11111111bdb 00001111bdb 11010111bdb 01011011bdb 11010111bdb 00001111bdb 11111111bdb 11111111bdb 00000011bdb 11110111bdb 11101111bdb 11011111bdb 00000011bdb 11111111bdb 11111111bdb 11111111b

b_5:    ; tao chư Phone: 39235347db 11111111bdb 11111111bdb 00000011bdb 11011011bdb 11011011b

Page 37: Thuc Hanh 89C51

db 11100111bdb 11111111bdb 00000011bdb 11101111bdb 11101111bdb 00000011bdb 11111111bdb 10000111bdb 01111011bdb 01111011bdb 10000111bdb 11111111bdb 00000011bdb 11110111bdb 11101111bdb 00000011bdb 11111111bdb 00000011bdb 01101011bdb 01101011bdb 11111111bdb 11111111bdb 11101111bdb 11010111bdb 10111011bdb 11010111bdb 11010111bdb 10111011bdb 11010111bdb 11101111bdb 11111111bdb 11111111bdb 10111011bdb 01111101bdb 01101101bdb 01101101bdb 10010011bdb 11111111bdb 01110011bdb 01101101bdb 01101101bdb 01101101bdb 10000011bdb 11111111bdb 00111011bdb 01011101bdb 01011101bdb 01011101b

Page 38: Thuc Hanh 89C51

db 01100011bdb 11111111bdb 10111011bdb 01111101bdb 01101101bdb 01101101bdb 10010011bdb 11111111bdb 10110001bdb 01110101bdb 01110101bdb 01110101bdb 10001101bdb 11111111bdb 10111011bdb 01111101bdb 01101101bdb 01101101bdb 10010011bdb 11111111bdb 11001111bdb 11010111bdb 11011011bdb 00000001bdb 11011111bdb 11111111bdb 11111001bdb 11111101bdb 00001101bdb 11110101bdb 11111001bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

Page 39: Thuc Hanh 89C51

db 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

 

b_6:    ; tao chư Chuyên Mua Ban Cac Linh Kiên Điên Tưdb 10000111bdb 01111011bdb 01111011bdb 01111011bdb 10110111bdb 11111111bdb 00000011bdb 11101111bdb 11101111bdb 11101111bdb 00000011bdb 11111111bdb 10000011bdb 01111111bdb 01111111bdb 01111111bdb 10000011bdb 11111111bdb 11110011bdb 11101111bdb 00011111bdb 11101111bdb 11110011bdb 11111111bdb 00000111bdb 01010101bdb 01010110bdb 01010101bdb 01110111bdb 11111111bdb 00000011bdb 11110111bdb 11101111bdb 11011111bdb 00000011bdb 11111111bdb 11111111b

Page 40: Thuc Hanh 89C51

db 11111111bdb 00000011bdb 11110111bdb 11101111bdb 11110111bdb 00000011bdb 11111111bdb 10000011bdb 01111111bdb 01111111bdb 01111111bdb 10000011bdb 11111111bdb 00001111bdb 10110111bdb 10111011bdb 10110111bdb 00001111bdb 11111111bdb 11111111bdb 11111111bdb 00000011bdb 01101011bdb 01101011bdb 01101011bdb 10010111bdb 11111111bdb 00001111bdb 10110111bdb 10111011bdb 10110111bdb 00001101bdb 11111110bdb 00000011bdb 11110111bdb 11101111bdb 11011111bdb 00000011bdb 11111111bdb 11111111bdb 11111111bdb 10000111bdb 01111011bdb 01111011bdb 01111011bdb 10110111bdb 11111111bdb 00001111b

Page 41: Thuc Hanh 89C51

db 10110111bdb 10111011bdb 10110111bdb 00001101bdb 11111110bdb 10000111bdb 01111011bdb 01111011bdb 01111011bdb 10110111bdb 11111111bdb 11111111bdb 11111111bdb 00000011bdb 01111111bdb 01111111bdb 01111111bdb 01111111bdb 11111111bdb 00000101bdb 11111111bdb 00000011bdb 11110111bdb 11101111bdb 11011111bdb 00000011bdb 11111111bdb 00000011bdb 11011111bdb 11011111bdb 11011111bdb 00000011bdb 11111111bdb 11111111bdb 11111111bdb 00000011bdb 11011111bdb 11001111bdb 10110111bdb 01111111bdb 11111111bdb 00000101bdb 11111111bdb 00000111bdb 01010011bdb 01010101bdb 01010011bdb 01110111b

Page 42: Thuc Hanh 89C51

db 11111111bdb 00000011bdb 11110111bdb 11101111bdb 11011111bdb 00000011bdb 11111111bdb 11111111bdb 11111111bdb 00000011bdb 01011011bdb 01011011bdb 01111011bdb 10000111bdb 11111111bdb 00000101bdb 11111111bdb 00000111bdb 01010011bdb 01010101bdb 01010011bdb 01110111bdb 11111111bdb 00000011bdb 11110111bdb 11101111bdb 11011111bdb 00000011bdb 11111111bdb 11111111bdb 11111111bdb 11111011bdb 11111011bdb 00000011bdb 11111011bdb 11111011bdb 11111111bdb 10000011bdb 01111111bdb 01110010bdb 01111101bdb 10000111bdb 11111001bdb 11111111bdb 11111111bdb 00000111bdb 11011011bdb 11011101b

Page 43: Thuc Hanh 89C51

db 11011011bdb 00000111bdb 11111111bdb 00000001bdb 01101101bdb 01101101bdb 01101101bdb 10010011bdb 11111111bdb 10000011bdb 01111101bdb 01111101bdb 01111101bdb 10111011bdb 11111111bdb 00000001bdb 01111101bdb 01111101bdb 01111101bdb 10000011bdb 11111111bdb 00000001bdb 01101101bdb 01101101bdb 01101101bdb 01111101bdb 11111111bdb 00000001bdb 11101101bdb 11101101bdb 11101101bdb 11111101bdb 11111111bdb 10000011bdb 01111101bdb 01101101bdb 01101101bdb 10001011bdb 11111111bdb 00000001bdb 11101111bdb 11101111bdb 11101111bdb 00000001bdb 11111111bdb 00000001bdb 11111111bdb 10111101b

Page 44: Thuc Hanh 89C51

db 01111101bdb 10000001bdb 11111101bdb 11111101bdb 11111111bdb 00000001bdb 11101111bdb 11010111bdb 10111011bdb 01111101bdb 11111111bdb 00000001bdb 01111111bdb 01111111bdb 01111111bdb 01111111bdb 11111111bdb 00000001bdb 11111011bdb 11110111bdb 11111011bdb 00000001bdb 11111111bdb 00000001bdb 11111011bdb 11110111bdb 11101111bdb 00000001bdb 11111111bdb 10000011bdb 01111101bdb 01111101bdb 01111101bdb 10000011bdb 11111111bdb 00000001bdb 11101101bdb 11101101bdb 11101101bdb 11110011bdb 11111111bdb 10000011bdb 01111101bdb 01111101bdb 01011101bdb 10000011bdb 01111111bdb 11111111b

Page 45: Thuc Hanh 89C51

b_7:   ; tao mâu cac con chưdb 11111111bdb 00000001bdb 11101101bdb 11001101bdb 10101101bdb 01110011bdb 11111111bdb 10011011bdb 01110101bdb 01101101bdb 10011011bdb 11111111bdb 11111101bdb 11111101bdb 00000001bdb 11111101bdb 11111101bdb 11111111bdb 10000001bdb 01111111bdb 01111111bdb 01111111bdb 10000001bdb 11111111bdb 11000001bdb 10111111bdb 01111111bdb 10111111bdb 11000001bdb 11111111bdb 10000001bdb 01111111bdb 10011111bdb 01111111bdb 10000001bdb 11111111bdb 01111101bdb 11011011bdb 11110111bdb 11011011bdb 01111101bdb 11111111bdb 11111001bdb 11110111bdb 00001111bdb 11110111b

Page 46: Thuc Hanh 89C51

db 11111001bdb 11111111bdb 00111101bdb 01011101bdb 01101101bdb 01110101bdb 01111001bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

b_8:   ; tao hinh căn nha va câydb 01110011bdb 00001101bdb 01110011bdb 00000111bdb 01111011bdb 01000101bdb 01010110bdb 01000100bdb 01111000bdb 00000000bdb 01110000bdb 01110000bdb 01110000b

Page 47: Thuc Hanh 89C51

db 01110000bdb 01110000bdb 01110001bdb 00000011bdb 00110111bdb 00011111bdb 00001111bdb 00111001bdb 00000110bdb 00111001bdb 01111111b

b_9:   ; tao hinh rưng câydb 00111111bdb 01111001bdb 00000110bdb 01111001bdb 00111111bdb 00000111bdb 00001111bdb 00111111bdb 00111111bdb 00000011bdb 00011111bdb 00000011bdb 00000000bdb 00000111bdb 00011111bdb 00111111bdb 01110001bdb 00000000bdb 01110001bdb 01111111bdb 00111111bdb 00011111bdb 00000111bdb 00011111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

Page 48: Thuc Hanh 89C51

db 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

b_10:   ; tao hinh hoa văndb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 01000100b,01000100b,01000100bdb 00101000b,00101000b,00101000bdb 01000100b,01000100b,01000100bdb 10010010b,10010010b,10010010bdb 01000100b,01000100b,01000100bdb 00101000b,00101000b,00101000bdb 01000100b,01000100b,01000100bdb 00101000b,00101000b,00101000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000b

b_11:   ; tao hinh cac mui têndb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000b

Page 49: Thuc Hanh 89C51

db 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00010000b,00001000b,00000100bdb 00111000b,00011100b,00001110bdb 11111110b,01111111b,00111111bdb 01111100b,00111110b,00011111bdb 01000100b,00100010b,00010001bdb 11000110b,01100011b,00110001bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000b

b_12:   ; tao hinh cac ky hiêu điên tưdb 11111111b,11111111b,11111111bdb 10000000b,00001100b,11000001bdb 10000000b,00001110b,11000001bdb 10000001b,11111111b,11111001bdb 10000000b,00001110b,11000001bdb 10000000b,00001100b,11000001bdb 10000000b,00001000b,00000001bdb 11111111b,11111111b,11111111bdb 00000000b,00000000b,00000000bdb 11111111b,11111111b,11111111bdb 10000000b,00000000b,00000001bdb 10000010b,00100010b,00000001bdb 10011101b,01010101b,01110001bdb 10000000b,10001000b,10000001bdb 10000000b,00000000b,00000001bdb 11111111b,11111111b,11111111bdb 00000000b,00000000b,00000000bdb 00000000b,01001000b,00000000bdb 00000000b,01001000b,00000000bdb 00011111b,11001111b,11100000bdb 00000000b,01001000b,00000000bdb 00000000b,01001000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000b

b_13:     ; tao hinh cac bông hoadb 00000000b,00000000b,00000000b

Page 50: Thuc Hanh 89C51

db 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00011100b,00011100b,00011100bdb 00111110b,00111110b,00111110bdb 00011100b,00011100b,00011100bdb 10001001b,10001001b,10001001bdb 01001010b,01001010b,01001010bdb 00101100b,00101100b,00101100bdb 00011000b,00011000b,00011000bdb 11111111b,11111111b,11111111bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000b

b_14:   ; tao hinh cac giot nươcdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00100000b,10000010b,00001000bdb 01110001b,11000111b,00011100bdb 11111011b,11101111b,10111110bdb 01110001b,11000111b,00011100bdb 00000100b,00010000b,01000000bdb 00001110b,00111000b,11100000bdb 00011111b,01111101b,11110000bdb 00001110b,00111000b,11100000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000b

Page 51: Thuc Hanh 89C51

db 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bend

 

 

 

 

Noi ro hơn: Cach tao hinh trên bang đen ma trân 8x24 

 

 

 

Hinh ve dươi đây cho thây cach Ban tao ra khung ma hinh dung ❶ bit 0 đê tao hinh.

 

 

Page 52: Thuc Hanh 89C51

 

 

Muôn in hinh ra trên bang ma trân 8x24, trươc hêt Ban hay đăt tên bang, rôi tao khung hinh tương ưng vơi bang đen. Môt thi du:

 

b_8:  ; đăt tên nhan cua bang ma hinhdb 01110011bdb 00001101bdb 01110011bdb 00000111bdb 01111011bdb 01000101bdb 01010110bdb 01000100bdb 01111000bdb 00000000bdb 01110000bdb 01110000bdb 01110000b

Page 53: Thuc Hanh 89C51

db 01110000bdb 01110000bdb 01110001bdb 00000011bdb 00110111bdb 00011111bdb 00001111bdb 00111001bdb 00000110bdb 00111001bdb 01111111b

 

Trên đây la 24 dong ma 8 bit viêt ơ dang hê cơ 2. Trong đo ưng vơi vi tri bit 0 se lam cho Led sang. Hinh trên cho thây chung ta đa dung bit 0 đê tao ra hinh môt ngôi nha trên bang đen. Tom lai, muôn Led nao sang, chung ta đăt vao sô 0, va sô 1 se lam tăt Led. Kêt qua chung ta se co hinh hiên ra như sau:

 

 

Ban co thê viêt gon lai bang ma hinh trên nêu dung ma 8 bit viêt ơ dang hê 16, kêt qua chung ta co bang ma hinh trên như sau:

 

 

Page 54: Thuc Hanh 89C51

 

b_8:  ; đăt tên nhan cua bang ma hinhdb 0111 0011b   ; 73hdb 0000 1101b   ; 0dhdb 0111 0011b   ; 73hdb 0000 0111b   ; 07hdb 0111 1011b   ; 7bhdb 0100 0101b   ; 45hdb 0101 0110b   ; 56hdb 0100 0100b   ; 44hdb 0111 1000b   ; 78hdb 0000 0000b   ; 00hdb 0111 0000b   ; 70hdb 0111 0000b   ; 70hdb 0111 0000b   ; 70hdb 0111 0000b   ; 70h db 0111 0000b   ; 70hdb 0111 0001b   ; 71hdb 0000 0011b   ; 03hdb 0011 0111b   ; 37hdb 0001 1111b   ; 1fhdb 0000 1111b   ; 0fhdb 0011 1001b   ; 39hdb 0000 0110b   ; 06hdb 0011 1001b   ; 39hdb 0111 1111b   ; 7fh

 

 

Ghi nhân: Viêt ma hinh ơ dang hê 16, tuy ngăn gon hơn, nhưng Ban se không nhin thây trong cac dong ma nay no la hinh gi va khi hinh hay chư bi sai rât kho sưa lai cho đung. 

 

b_8:  ; đăt tên nhan cua bang ma hinhdb 73h, 0dh, 73h, 07h, 7bh, 45h, 56h, 44hdb 78h, 00h, 70h, 70h, 70h, 70h, 70h, 71hdb 03h, 37h, 1fh, 0fh, 39h, 06h, 39h, 7fh

 

 

 

Dươi đây la môt khung hinh trăng, vi toan bit 1 (tăt Led), muôn tao hinh trên cac điêm Led cua ma trân 8x24, Ban dung bit 0.

Page 55: Thuc Hanh 89C51

 

b_vkh:        ; đăt tên nhan cho bang    db 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b  ;db 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b  ;db 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111bdb 11111111b

 

  

 

Hinh ve dươi đây cho thây cach Ban dung❷ bit 1 đê tao hinh

 

 

 

Page 56: Thuc Hanh 89C51

 

 

 

Ban co thê đăt ma quet trên cang p1, va cho xuât ma hinh trên cac cang p2, p3, p0. Luc nay ưng vơi bit 1 se lam cho Led sang. Ban xem môt thi du, minh hoa băng hinh sau:

 

 

Page 57: Thuc Hanh 89C51

 

 

Như vây khung đê tao hinh cho kiêu quet nay se như sau:

 

 b_14:  

; đăt tên nhan đê dung lênh mov dptr, #b_14

; câu lênh nay cho đăt bang vao thanh đia chi dptr.db 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000bdb 00000000b,00000000b,00000000b

 

Trên đây la môt khung mâu trăng vi toan la bit 0, nêu Ban muôn co hinh gi hiên trên ma trân 8x24, thi hay dung bit 1 lam sang cac Led ơ cac vi tri tương ưng. Ban cung co thê

Page 58: Thuc Hanh 89C51

viêt cac ma hinh 8 bit nay ơ dang hê cơ 16, luc đo bang se ngăn gon hơn, nhưng Ban se không thây đươc hinh gi trên cac dong ma nay, va khi cân sưa đôi se rât kho khăn.

  

Y kiên chung tôi:

 

 

 

 

 

 

Page 59: Thuc Hanh 89C51

 

Nêu Ban muôn lam thưc hanh bai viêt trên, đâu tiên Ban phai co bang đen ma trân 8x24 như hinh trên, Ban co thê mua ban mach in ơ cưa hang Phuc Lan Shop, sau đo găn Led lên ban mach in va kêt nôi vơi ic lâp trinh AT89C52 (dung ic AT89C52 co bô nhơ 8K lơn hơn ic AT89C51 chi co 4K). Tiêp theo Ban căt đoan chương trinh nguôn trên va dan vao vung biên soan cua MIDE-51 (xem hinh bên dươi), đăt cho no môt cai tên vơi ho la .asm, rôi go phim F9 đê biên dich file .asm ra file .hex, bây giơ Ban cho nap đoan chương trinh ma hê 16 nay vao bô nhơ EEPROM cua ic lâp trinh AT89C52, găn vao board test, Ban se thây hinh va dong chư ma Ban soan trong cac khung hinh xuât hiên trên bang đen. Thich không? 

 

 

 

 

Page 60: Thuc Hanh 89C51

 

 

Sau khi biên dich xong, chung ta co file .hex như sau:

 

:1000000012043B7B001202347590FF9004A07C0A1E:100010001203D5DCFB0BBB1AF57B007590FF900437:10002000B87C0A1203D5DCFB0BBB1AF57503001272

Page 61: Thuc Hanh 89C51

:10003000035812031A12043B90051B7C021203D5CD:10004000DCFB0BBB1AF575030012043B9005347CF6:10005000021203D5DCFB0BBB1AF575030012043B3F:1000600090054D7C021203D5DCFB0BBB1AF5750322:100070000012043B9005667C0A1203D5DCFB0BBB27:100080001AF575030012043B90057F7C021203D51C:10009000DCFB0BBB1AF575030012043B9005987C42:1000A000021203D5DCFB0BBB1AF575030012043BEF:1000B0009005B17C0A1203D5DCFB0BBB1AF5750366:1000C0000012035812031A12043B9004D07C14123D:1000D00003D5DCFBA30BBB36F47B0012043B75207D:1000E0000390065D7C0A1203D5DCFB0BBB0AF57B93:1000F0000075800075A00075B00012042E12043B3C:100100009006757C0A1203D5DCFB0BBB0AF57B005D:1001100075800075A00075B00012042ED520C212A3:10012000043B9005CA7C0F1203D5DCFBA30BBB7A02:10013000F47B0012043B90068D7C141203D5DCFB8B:10014000A30BBB4FF47B0012035812031A12043B9B:100150009008747C141203D5DCFB0BBB1AF57503F5:100160000012043B75200E9008A17B007A0C12044B:1001700048DAFBA3A3A30BBB10F2D520EA12043B81:100180009006F97C081203D5DCFBA30BBBFFF47BC4:100190000012043B90080E7C081203D5DCFBA30B75:1001A000BB34F47B0012043B7520069008E97B0009:1001B0007A0C120448DAFBA3A3A30BBB10F2D520E0:1001C000EA12043B7520029009317B007A32120456:1001D00048DAFBA3A3A30BBB10F2D520EA12043B21:1001E00075200A9009797B007A28120474DAFBA33F:1001F000A3A30BBB10F2D520EA12043B7520049098:1002000009C17B007A0C120448DAFBA3A3A30BBB41:1002100010F2D520EA12043B90085C7C1E1203D534:10022000DCFB0BBB1AF57503001202A712042E1299:10023000042E01007590007580FF75A0FF75B0FF5A:1002400012042E75B0E712042E75B0C312042E7579:10025000B08112042E75B00012042E75A0FE7580B8:100260007F12042E75A0FC75803F12042E75A0F835:1002700075801F12042E75A0F075800F12042E7564:10028000A0E075800712042E75A0C07580031204CB:100290002E75A08075800112042E75A00075800057:1002A00012042E12042E2275900075800075A00095:1002B00075B00012042E75A08075800112042E7591:1002C000A0C075800312042E75A0E075800712048B:1002D0002E75A0F075800F12042E75A0F875801F82:1002E00012042E75A0FC75803F12042E75A0FE75B9:1002F000807F12042E75A0FF7580FF12042E75B04A:100300008112042E75B0C312042E75B0E712042EAC:1003100075B0FF12042E12042E227590007580FF16:1003200075A0FF75B0FF12042E12042ED29712048E

Page 62: Thuc Hanh 89C51

:100330002ED29612042ED29512042ED29412042E8E:10034000D29312042ED29212042ED29112042ED2E3:100350009012042E12042E227590FF12042E120405:100360002E7580FF75A0FF75B0FFC29012042E7528:1003700080FF75A0FF75B0FFC29112042E7580FF3B:1003800075A0FF75B0FFC29212042E7580FF75A094:10039000FF75B0FFC29312042E7580FF75A0FF7524:1003A000B0FFC29412042E7580FF75A0FF75B0FFD8:1003B000C29512042E7580FF75A0FF75B0FFC2961E:1003C00012042E7580FF75A0FF75B0FFC29712044E:1003D0002E12042E2278017900E803F888A0E99310:1003E000F5900912042575A0007590FF120425B838:1003F00001E7E803F888B0E993F590091204257540:10040000B0007590FF120425B801E7E803F8888072:10041000E993F590091204257580007590FF120488:1004200025B801E7227F037E32DEFEDFFA227F0558:100430007E327DFADDFEDEFADFF62275800075A0E1:100440000075B0007590FF2278FE7900E803F88807:1004500090E993F5A009E993F5B009E993F58009CE:1004600091257590FF75800075A00075B0009125ED:10047000B8FED922787F7900E823F88890E993F5CF:10048000A009E993F5B009E993F5800991257590E4:10049000FF75800075A00075B0009125B87FD92246:1004A000FF0101EDEDF3FF0101EFEF01FF81017DA0:1004B0007E81FF83017D7D9BFFFFFF01017F7F7FA9:1004C000FF0703DDDB07FF0103F7EF01FFFFFFFF7E:1004D000FFFF0101EDEDF3FF0101EFEF01FF8101EE:1004E0007D7E81FF83017D7D9BFFFFBBD701D7BB55:1004F000FFFF01017F7F7FFF0703DDDB07FF0103B4:10050000F7EF01FFFFFFFFFFFFFFFFFFFFFFFFFF11:10051000FFFFFFFFFFFFFFFFFFFFFFFF03F7EFDF1F:1005200003FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7:10053000FFFFFFFFFF03F7EFDF03FF03DFDFDF0353:10054000FFFFFFFFFFFFFFFFFFFFFFFFFFFF03F7BF:10055000EFDF03FF03DFDFDF03FF0FD55AD50FFF08:10056000FFFFFFFFFFFFFF03F7EFDF03FF03DFDF07:10057000DF03FF0FD55AD50FFFFBFB03FBFBFFFF8C:10058000FFFFFBFB03FBFBFFFFFFFFFFFFFFFFFF87:10059000FFFFFFFFFFFFFFFFFFFFFFFBFB03FBFB77:1005A000FFFF0FD5DAD50FFFFFFFFFFFFFFFFFFFB4:1005B000FFFFFFFFFBFB03FBFBFFFF0FD5DAD50FB0:1005C000FFFF03F7EFDF03FFFFFFFFFDFD01FDFD71:1005D000FF0FD75BD70FFF03DBDBDBE7FFDFDFDFDF:1005E000FF877B7B7BB7FF03EFEFEF03FF03FFDDAD:1005F000DEDFFF016D6D7D83FF02FF0755565577E6:10060000FF03F7EFDF03FFDFDFDFFFFDFD01FDFD90:10061000FF877F727D87F9DFDFDFFFC1BF7FBFC14B:10062000FF02FF0755565577FFFBFB03FBFBFFEF70

Page 63: Thuc Hanh 89C51

:10063000EFEFFF01FBF7EF01FF0FB7BBB70FFF03B2:10064000F7EFF703FFFFFFFFFFFFFFFFFFFFFFFFD6:10065000FFFFFFFFFFFFFFFFFFFFFFFFFF877B7B2A:100660007BB7FF03DFDFDF03FF0FD7DBD60DFF878D:100670007B7B7B87FFFFFF036B6B6B97FFFF0FD7C6:100680005BD70FFFFF03F7EFDF03FFFFFFFFFF0362:10069000DBDBE7FF03EFEF03FF877B7B87FF03F7DE:1006A000EF03FF036B6BFFFFEFD7BBD7D7BBD7EFD2:1006B000FFFFBB7D6D6D93FF736D6D6D83FF3B5DC4:1006C0005D5D63FFBB7D6D6D93FFB17575758DFFCE:1006D000BB7D6D6D93FFCFD7DB01DFFFF9FD0DF51E:1006E000F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20:1006F000FFFFFFFFFFFFFFFFFF877B7B7BB7FF0352:10070000EFEFEF03FF837F7F7F83FFF3EF1FEFF3B5:10071000FF0755565577FF03F7EFDF03FFFFFF0392:10072000F7EFF703FF837F7F7F83FF0FB7BBB70F21:10073000FFFFFF036B6B6B97FF0FB7BBB70DFE039C:10074000F7EFDF03FFFFFF877B7B7BB7FF0FB7BBB5:10075000B70DFE877B7B7BB7FFFFFF037F7F7F7F2C:10076000FF05FF03F7EFDF03FF03DFDFDF03FFFF1B:10077000FF03DFCFB77FFF05FF0753555377FF0315:10078000F7EFDF03FFFFFF035B5B7B87FF05FF07DF:1007900053555377FF03F7EFDF03FFFFFFFBFB0327:1007A000FBFBFF837F727D87F9FFFF07DBDDDB0744:1007B000FF016D6D6D93FF837D7D7DBBFF017D7DB1:1007C0007D83FF016D6D6D7DFF01EDEDEDFDFF831F:1007D0007D6D6D8BFF01EFEFEF01FF01FFBD7D81AF:1007E000FDFDFF01EFD7BB7DFF017F7F7F7FFF0115:1007F000FBF7FB01FF01FBF7EF01FF837D7D7D83AD:10080000FF01EDEDEDF3FF837D7D5D837FFFFF0154:10081000EDCDAD73FF9B756D9BFFFDFD01FDFDFFF4:10082000817F7F7F81FFC1BF7FBFC1FF817F9F7FAE:1008300081FF7DDBF7DB7DFFF9F70FF7F9FF3D5D0A:100840006D7579FFFFFFFFFFFFFFFFFFFFFFFFFF5A:10085000FFFFFFFFFFFFFFFFFFFFFFFF730D7307AA:100860007B455644780070707070707103371F0FAD:100870003906397F3F7906793F070F3F3F031F0352:1008800000071F3F7100717F3F1F071FFFFFFFFF22:10089000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68:1008A000FF00000000000000000000000000000049:1008B00000000000000000000044444428282844B0:1008C000444492929244444428282844444428288A:1008D00028000000000000000000000000000000F0:1008E0000000000000000000000000000000000008:1008F00000000000000000000000000000000000F8:1009000000000000000000100804381C0EFE7F3FAD:100910007C3E1F442211C66331000000000000002D:1009200000000000000000000000000000000000C7

Page 64: Thuc Hanh 89C51

:1009300000FFFFFF800CC1800EC181FFF9800EC156:10094000800CC1800801FFFFFF000000FFFFFF8057:1009500000018222019D5571808881800001FFFF86:10096000FF0000000048000048001FCFE0004800E2:10097000004800000000000000000000000000002F:100980000000000000000000000000000000000067:10099000001C1C1C3E3E3E1C1C1C8989894A4A4A7C:1009A0002C2C2C181818FFFFFF000000000000007E:1009B0000000000000000000000000000000000037:1009C0000000000000000000000000000000000027:1009D00000000000000000000020820871C71CFB1E:1009E000EFBE71C71C0410400E38E01F7DF00E38BA:1009F000E000000000000000000000000000000017:090A0000000000000000000000ED:00000001FF

 

 

 

 

 

Tam kêt: Qua phân trinh bay trên, Ban thây dung ic lâp trinh AT89C51, chung ta đa co thê điêu khiên đươc sư tăt sang cua bât ky con Led nao trên bang đen, điêu nay cho chung ta môt sư thich thu kho ta, cung qua bai viêt nay tôi nghi Ban đa lam quen vơi cach dung bang Led ma trân đê lam hiên hinh va cho chay chư, đây la môt đê tai rât rât hâp dân, khi co dip chung tôi se trơ lai đê tai nay vơi môt mưc đô rông hơn, cao hơn. Mong Ban thich bai viêt nay.

 

Page 65: Thuc Hanh 89C51

Viêt cho cac Ban mơi lam quen vơi ic vi điêu khiên, ho AT89C51, ic lam viêc theo câu lênh.

 

Chao Ban,

Tôi chơi điên tư tư năm 12 tuôi, luc trong nha mơi co cai radio đen 5 bong vơi dây Anten căn ngoai trơi dai hai ba chuc met, rôi khi lơn lên lam thơ điên tư thi luc đo la thơi ky sưa chưa TV đen, Radio 6 transistor, rôi TV transistor đen trăng, rôi mau, rôi TV IC, rôi đâu may, rôi ông ghi hinh, rôi điên thoai di đông, rôi computer Desktop, rôi Laptop.... Cư theo sư tiên triên phi ma cua môn điên tư ma bay cho đên tân bây giơ.

Bây giơ nhin lai nganh điên tư đa khac rât xa qua xa so vơi bôn năm chuc năm trươc. Thơ điên tư bây giơ phai lam quen vơi nhiêu thiêt bi cao siêu hơn, phưc tap hơn, nhu câu dung may moc điên tư bây giơ nhiêu hơn thuơ trươc rât nhiêu. Môt sô thơ điên tư "tư phat " găp tôi cho biêt ho hiêu rât mu mơ vê loai ic lâp trinh, môt ưng dung đôi vơi ho la rât hay, rât hâp dân ma sao kho hiêu qua, ho noi vơi tôi thây ngươi ta lam ma phat ham. Nhiêu băng hưu hoi tôi co cach nao "căt nghia" đê tai nay cho dê hiêu hơn không? Đa nhiêu lân tôi hưa vơi long la se tim ra phương cach trinh bay loai ic vi điêu khiên lam viêc vơi câu lênh sao cho thât binh dân dê hiêu va mong no se phô câp đên nhiêu Ban thơ điên tư vôn thanh nghê it qua trương lơp. Hôm nay tôi se lai thư noi nưa vê đê tai nay xem co dê hiêu hơn không? Mong bai viêt se lam Ban hai long.

 

 

IC vi điêu khiên la gi? 

Page 66: Thuc Hanh 89C51

Trươc hêt hay lam quen vơi khai niêm điêu khiên trong nganh điên tư. Điêu khiên la dung mưc ap cao  hay thâp đê đong mơ môt thiêt bi. Ban xem thi du sau:

 

Trong hinh nay, Ban thây khi chân B cua transistor Q1 cho đăt ơ mưc volt thâp, thi transistor ơ trang thai ngưng dân va không co dong câp cho Led. Led se tăt.

 

 

Page 67: Thuc Hanh 89C51

 

Trong hinh nay, Ban thây khi chân B cua transistor Q1 cho đăt ơ mưc volt cao thi transistor ơ trang thai bao hoa va co dong câp cho Led. Led se sang.

 

 

Vơi hinh đông chung ta thây ro hơn tac nhân điêu khiên, tưc bit 0 hay bit 1 trên chân B, lam Led luc tăt luc sang. Ban xem hinh.

 

Page 68: Thuc Hanh 89C51

 

 

Qua hai hinh nay co thê thây, chung ta co thê dung mưc volt cao thâp đê tăt mơ môt thiêt bi, ơ đây la tăt mơ Led. Chung ta tam châp nhân đinh nghia sau:

 

* Mưc volt thâp la bit 0.

* Mưc volt cao la bit 1.

 

 

Vây co thê noi đê cho Led sang, chung ta dung bit 1 va lam cho Led tăt chung ta dung bit 0. Trong tac đông điêu khiên đong mơ, chung ta co thê đong mơ môt Relay, đong mơ điên cho môt motor DC. Ban xem hinh:

 

Page 69: Thuc Hanh 89C51

 

 

Trong hinh nay, trên chân C cua transistor Q1, chung ta thây co:

 

* Led chiêu sang.

* Relay 12V vơi tiêp điêm la kim K1.

* Motor DC 12V

 

Vây nêu đăt bit 1 trên chân B cac thiêt bi trên chân C cua Q1 se đươc câp dong va nêu dung bit 0 trên chân B thi cac thiêt bi trên chân C se bi căt dong. Qua cac thi du trên, chung ta thây nêu co môt linh kiên điên tư co thê xuât ra mưc volt cao hay mưc volt thâp theo câu lênh do chung ta soan ra thi luc đo chung ta đa co thê điêu khiên cac thiêt bi băng câu lênh. IC vi điêu khiên co cac cang (port), ơ cac chân cua cang co thê xuât nhâp mưc ap cao hay thâp tuy theo cac câu lênh do chung ta soan ra, do đo nêu dung ic vi điêu khiên chung ta se co thê điêu khiên nhiêu thiêt bi theo câu lênh.

 

Page 70: Thuc Hanh 89C51

Hinh ve sau đây cho thây 4 cang cua ic vi điêu khiên AT89C51.

 

 

Ban biêt mưc volt trên cac chân cua môi cang Ban đêu co thê chon đinh ơ mưc volt cao hay mưc volt thâp băng câu lênh. 

 

Lênh đăt chân lên mưc volt cao la setb (set bit). Lênh đăt chân xuông mưc volt thâp la clr (Clear bit).

 

Thi du: Ban muôn chân p1.0 (chân sô 1) lên mưc volt cao, Ban go câu lênh như sau:

 

Page 71: Thuc Hanh 89C51

setb p1.0

 

Ban muôn chân p1.1 (chân sô 2) xuông mưc volt thâp. Ban go câu lênh như sau:

 

clr p1.1

 

Qua phân trinh bay trên, tôi nghi Ban đa hiêu điêu khiên cac thiêt bi băng câu lênh la gi? va no lam viêc ra sao?

 

Hay xem hinh sau:

 

Trong mach, R1 (4.7K) la điên trơ han dong chân B va diode D2 dung dâp điên ap nghich, xuât hiên môi khi relay bi căt dong. Hinh ve cho Ban thây chung ta đa dung câu lênh đê tăt mơ Q1 va dung relay 12V vơi tiêp điêm la kim K1 đê đong mơ cac thiêt bi volt cao khac (như motor công nghiêp, may bơm...) theo câu lênh.

 

Page 72: Thuc Hanh 89C51

Môt lênh khac, lênh mov (move) co thê cung môt luc xac đinh trang thai bit cho 8 chân cua môt cang. Thi du: Cach dung lênh move qua cac hinh ve như sau:

Muôn co dong câp cho Led Ban phai cho chân nôi vơi Led xuông mưc volt thâp vơi bit 0. Va muôn tăt Led Ban dung bit 1. Vây vơi câu lênh:

 

mov p3, #01010011b

 

Ban nhin vao hinh se thây cac Led ưng vơi chân co mưc volt thâp phat sang.

 

Page 73: Thuc Hanh 89C51

Đê tăt hêt 8 Led trên p3. Ban dung câu lênh:

 

mov p3, #11111111b

Page 74: Thuc Hanh 89C51

 

Đê 8 Led trên p3 sang hêt. Ban dung câu lênh:

 

mov p3, #00000000b

  

 

Co thê dung nhiêu cang đê điêu khiên cac Led trên bang Led ma trân. Ban xem hinh:

 

Page 75: Thuc Hanh 89C51

 

Hinh cho thây muôn Led D1 sang, Ban phai dung câu lênh:

 

clr p3.1 ;

 

Lênh nay đăt chân p3.1 xuông mưc volt thâp va lam transistor Q1 bao hoa, cung luc Ban dung câu lênh:

 

setb p1.1 ;

 

Page 76: Thuc Hanh 89C51

Lênh nay đăt chân p1.1 lên mưc volt cao va lam transistor Q3 bao hoa, như vây se co dong câp cho Led D1. Led D1 se phat sang, trong khi đo cac Led con lai không đu điêu kiên đê sang. Băng cach dung cac câu lênh thich hơp, Ban co thê tao ra cac con chư va ca hinh anh hiên trên bang đen ma trân Led 8x8, như hinh sau:

 

 

Hinh trên cho thây bang đen Led ma trân 8x8 dung lam bang quang bao, vơi ic vi điêu khiên AT89C51 do co 4 cang nên Ban co thê dung no đê điêu khiên trưc tiêp 3 ma trân 8x8 va lam đươc bang đen quang bao đơn gian. Chung ta se co môt bai khac chuyên noi vê vân đê nay.

 

 

Ngoai ra Ban co thê dung lênh nhây (co điêu kiên hay không điêu kiên) đê theo doi cac trang thai bit trên cac chân cua cac cang. Như thi du sau:

 

Page 77: Thuc Hanh 89C51

 

Trong hinh, dung nut nhân BP, chung ta se dung câu lênh nhay đê nhây theo điêu kiên bit 1 hay bit 0 trên chân p0.0. Ban thây binh thương vơi điên trơ treo ap R1 (10K) va nut nhân ơ trang thai hơ (chưa nhân xuông), chân p0.0 se ơ mưc ap cao, vây vơi câu lênh (jump no bit):

 

jnb p0.0, $  ;

 

Câu lênh nay co nghia la nêu chân p0.0 ơ mưc ap thâp thi dưng lai ơ đây va chơ đên khi no chuyên qua bit 1. Nêu chân p0.0 ơ mưc ap cao tưc bit 1 thi câu lênh nay không co tac dung. Nhưng nêu Ban nhân nut BP xuông thi sao? Luc đo chân p0.0 se ơ mưc ap thâp (tưc bit 0), luc đo vơi câu lênh nhây: (jnb p0.0, $) chương trinh se dưng lai chơ cho đên luc Ban bo phim, khi Ban bo phim no se xuông châp hanh câu lênh tiêp theo, đo la:

 

jmp chtrinh_1  ;

 

Page 78: Thuc Hanh 89C51

Đây la lênh nhây không điêu kiên, no se nhây ngay đên chương trinh con co tên nhan la chtr_1 (viêt tăt cua chương trinh_1) va châp hanh chương trinh con nay.

 

Ban cung co thê dung ic vi điêu khiên kêt hơp vơi đu loai cam biên (sensor,  như cam biêt quang, cam biên nhiêt, cam biên mưc âm...) đê tao ra cac thiêt bi điêu khiên tư đông theo cac tac nhân không thuôc điên. Môt thi du, Ban xem hinh trên:

 

Chung ta dung môt quang trơ (SCd) đê do sang. Ban biêt, khi trơi tôi, nôi trơ cua quang trơ rât lơn, vây transistor Q1 se ơ trang thai bao hoa, no đăt chân p0.7 ơ mưc volt thâp (tưc ơ bit 0), vơi câu lênh nhây theo điêu kiên bit viêt như sau:

 

jnb p0.7, $  ;

 

thi chương trinh se dưng lai ơ câu lênh nay. Vi sao? Vi luc nay chân p0.7 đang ơ trang thai bit 0. Nêu trơi sang, nôi trơ cua quang trơ se nho va no se lam ngưng dân transistor Q1, vây luc nay chân p0.7 se lên mưc volt cao (bit 1), chương trinh se thoat ra câu lênh jnb p0.7, $ va xuông thưc hiên câu lênh kê bên dươi. Do câu lênh tiêp theo cua Ban viêt la:

 

jmp b_sang  ;

 

Nên chương trinh se nhây không điêu kiên đên chương trinh con co tên nhan la b_sang (viêt tăt cua chư bao sang).

 

Ban cung co thê dung lênh nhây theo phep so sanh trang thai cua 8 bit  trên cang đê tao ra cac chương trinh điêu khiên hâp dân hơn. Ban xem hinh minh hoa sau:

 

Page 79: Thuc Hanh 89C51

 

Trong hinh nay, chung ta dung lênh nhây co điêu kiên va dung phep so sanh đê xac đinh nơi đên. Ban thây vơi câu lênh:

 

cjne p2, #01011011b, chtr_1

jmp t_tuc

 

Trang thai 8 bit nay không giông vơi trang thai 8 bit hiên đang co trên cang 2 (8 bit hiên co trên cang 2 la 11011010b), vây no se nhây đên châp hanh chương trinh con co tên nhan la chtr_1 (viêt tăt cua chư chương trinh_1). Nêu 8 bit dung trong phep so sanh giông nhau thi sao? Chương trinh se xuông dong lênh bên dươi va se nhây đên châp hanh chương trinh con co tên nhan la  t_tuc (viêt tăt cua chư tiêp_tuc)

 

 

Page 80: Thuc Hanh 89C51

 

Qua phân trinh bay trên, Ban thây ic AT89C51 co 4 cang 4x8 (32 chân), trang thai mưc volt cao hay thâp trên cac chân nay co thê điêu khiên theo cac câu lênh. Vây vân đê cua chung ta la phai hiêu ro cac câu lênh dung đê xac đinh trang thai trên cac chân cua 4 cang sao cho phu hơp vơi y muôn cua minh. Va ic AT89C51 la môt trong cac ic vi điêu khiên rât đơn gian, hiên nay rât phô dung.

 

 

 

Thê nao la ic lam viêc theo cac câu lênh? 

  

Qua phân trinh bay trên, Ban thây vơi ic AT89C51, trang thai mưc volt cao hay thâp trên cac chân cua 4 cang hoan toan châp hanh theo cac câu lênh do Ban đa viêt ra. Hiên nay co rât nhiêu ic thuôc loai nay, ngươi ta noi đo la cac ic lâp trinh, hay la loai ic vi điêu khiên hay cao hơn la cac ic vi xư ly. Vơi cac ic logic  TTL ho 74xxx hay ho CMOS 40xx thi cac công năng đa cô đinh, cac ic nay không lam viêc theo cac câu lênh nên tinh linh đông không cao va thương co câu truc phân cưng rât phưc tap, hiên nay no thương chi dung  lam cac linh kiên phu trơ cho cac ic vi điêu khiên.

 

Co thê noi, khi co môt ic vi điêu khiên, Ban cân xac đinh cac chân cô hưu cua no, cac chân nay dung vân hanh ic va cac chân cua cac cang dung châp hanh cac câu lênh. Tât ca cac mach điên chiu điêu khiên đêu thông qua cac chân cua cac cang. Theo truc phat triên, trươc hêt chung ta co nhom ic vi điêu khiên ho MSC-51 như nhom AT89C51, phat triên hơn la nhom PIC, rôi AVR va rôi ARM..., nhưng vơi cac Ban mơi lam quen vơi loai ic lâp trinh, Ban nên khơi đâu tư cac ic vi điêu khiên thuôc nhom MSC-51, như AT89C51...Vi cac ic nay rât trưc quan, dê hoc dê dung, di nhiên dê kiêm đươc tiên hơn. 

 

Đê dung ic AT89C51 (40 chân) cho công viêc điêu khiên cua Ban, Ban chi cân rap môt mach điên cơ ban như hinh ve sau:

 

Page 81: Thuc Hanh 89C51

 

Giai thich mach điên: Hinh ve cho thây, vơi ic vi điêu khiên lâp trinh, lam viêc theo câu lênh, no dung sô linh kiên ngoai vi rât it. Ơ đây trên chân 18, 19 găn thach anh đinh tân, nêu dung thach anh co tân sô 12MHz thi chu ky thưc hiên 1 lênh se la 1us. Chân sô 9 cho nôi vơi mach reset, no xac lâp trang thai khơi đâu khi chân 9 ơ mưc ap cao. Câp nguôn vơi chân 20 cho nôi masse va chân 40 cho nôi vơi mưc nguôn +5V.

 

Ơ đây co 2 chu y:

 

* Trên cang p0 Ban nhơ dung 8 điên trơ treo ap.

* Trên chân 31 cho nôi vao mưc ap 5V đê xac nhân la chi chay chương trinh cua bô nhơ tron.

 

 

 

Page 82: Thuc Hanh 89C51

Đê dung ic AT89C2051 (20 chân) cho công viêc điêu khiên cua Ban, Ban chi cân rap môt mach điên cơ ban như hinh ve sau:

 

 

Giai thich mach điên: Hinh ve cho thây, vơi ic vi điêu khiên lâp trinh, lam viêc theo câu lênh, no dung sô linh kiên ngoai vi rât it. Ơ đây trên chân 4, 5 găn thach anh đinh tân, nêu dung thach anh co tân sô 12MHz thi chu ky thưc hiên 1 lênh se la 1us. Chân sô 1 cho nôi vơi mach reset, no xac lâp trang thai khơi đâu khi chân 1 ơ mưc ap cao. Câp nguôn vơi chân 10 cho nôi masse va chân 20 cho nôi vơi mưc nguôn +5V.

 

Ơ đây co 1 chu y:

 

* Trên cang p3 thiêu chân p3.6.

 

Điều Bạn cần nhớ là mọi thiết bị điều khiển đều sẽ được cho kết nối với các chân của các cảng của ic vi điều khiển và Bạn điều khiển các thiết bị này bằng các câu lệnh do Bạn viết ra. Moi viêc chi co thê.

 

Chu ý: Nêu như mach điên AT89C51 ma Ban rap không hoat đông như y, Ban hay đo thư tin hiêu xung nhip. Cach đo: lây may đo volt AC, nhơ căm lô OUT, trên lô căm nay co tu cach ly DC, rôi đo volt AC trên chân 18, nêu kim không lên la ic co vân đê (thay thach anh hay thay thư ic khac). Kim lên la co xung nhip ( Ban xem hinh).

 

Page 83: Thuc Hanh 89C51

 

 

 

Câu lênh đươc viêt như thê nao? 

Câu lênh la cac câu chư dê hiêu dê nhơ, nhưng phai viêt đung cu phap. Môt file .asm thương co dang thưc như sau:

 

org 0000h

     (go cac câu lênh, môi dong chi go môt câu lênh...)

end

 

 

Trên môi dong Ban chi go co môt câu lênh duy nhât ma thôi. Khi chương trinh chay xong môt câu lênh se xuông dong thưc hiên câu lênh kê tiêp va cư như vây cho đên hêt... Nêu no găp lênh nhây thi se nhây đên tên nhan đê chay cac chương trinh con.

 

Page 84: Thuc Hanh 89C51

Môt thi dụ: Ban go cac câu lênh đê 8 Led trên cang p2 sang lan lên rôi tăt dân xuông va qui trinh trên đươc cho lâp lai.

 

 

Chương trinh nguôn se go như sau:

 

org 0000h

start:

     mov p2, #11111111b

     call delay

     mov p2, #11111110b

     call delay

     mov p2, #11111100b

     call delay

Page 85: Thuc Hanh 89C51

     mov p2, #11111000b

     call delay

     mov p2, #11110000b

     call delay

     mov p2, #11100000b

     call delay

     mov p2, #11000000b

     call delay

     mov p2, #10000000b

     call delay

     mov p2, #00000000b

     call delay

     mov p2, #10000000b

     call delay

      mov p2, #11000000b

     call delay

      mov p2, #11100000b

     call delay

      mov p2, #11110000b

     call delay

      mov p2, #11111000b

     call delay

      mov p2, #11111100b

     call delay

      mov p2, #11111110b

     call delay

Page 86: Thuc Hanh 89C51

       jmp start

delay:    

      mov r7, #20

v6: mov r6, #50

v5: mov r5, #200

      djnz r5, $

      djnz r6, v5

      djnz r7, v6

      ret

end

 

Sau khi dich ra ma 16, chung ta co file .hex vơi nôi dung như sau:

 

:1000000075A0FF12006275A0FE12006275A0FC12BE:10001000006275A0F812006275A0F012006275A06F:10002000E012006275A0C012006275A0801200622A:1000300075A00012006275A08012006275A0C01247:10004000006275A0E012006275A0F012006275A057:10005000F812006275A0FC12006275A0FE12006228:0F006000809E7F147E327DC8DDFEDEFADFF62241:00000001FF

 

 

Ban cho nap cac ma lênh dang 16 nay vao bô nhơ EEP-ROM cua ic vi điêu khiên AT89C51, va câp điên cho mach, Ban thây gi? 8 Led trên cang p2 se co biên đôi như hinh sau:

 

 

Page 87: Thuc Hanh 89C51

 

Giai thich tưng câu lênh trong file nguôn trên:

 

org 0000h    ; Khơi đâu tư thanh ghi reset.

start:             ; tên nhan đươc dung cho lênh nhay.

     mov p2, #11111111b    ; đăt 8 bit cua p2 đêu ơ mưc volt cao, nên 8 Led đêu tăt.

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

     mov p2, #11111110b    ; cho Led trên chân p2.0 sang, (no sang vơi bit 0, tưc mưc volt thâp)

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

     mov p2, #11111100b    ; cho Led trên chân p2.0, p2.1 sang

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

     mov p2, #11111000b    ; cho Led trên chân p2.0, p2.1, p2.2 sang

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

     mov p2, #11110000b   ; cho Led trên chân p2.0, p2.1, p2.2, p2.3 sang

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

     mov p2, #11100000b    ; cho Led trên chân p2.0, p2.1, p2.2 , p2.3, p2.4 sang

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

     mov p2, #11000000b    ; cho Led trên chân p2.0, p2.1, p2.2 , p2.3, p2.4, p2.5 sang

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

     mov p2, #10000000b    ; cho Led trên chân p2.0, p2.1, p2.2 , p2.3, p2.4, p2.5, p2.6 sang

Page 88: Thuc Hanh 89C51

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

     mov p2, #00000000b    ; cho 8 Led sang hêt.

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

     mov p2, #10000000b    ; cho Led p2.7 tăt (tăt vơi bit 1, tưc mưc volt cao)

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

      mov p2, #11000000b    ; cho Led p2.7, p2,6  tăt

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

      mov p2, #11100000b    ; cho Led p2.7, p2,6, p2.5  tăt

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

      mov p2, #11110000b     ; cho Led p2.7, p2,6, p2.5, p2.4  tăt

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

      mov p2, #11111000b     ; cho Led p2.7, p2,6, p2.5, p2.4, p2.3  tăt

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

      mov p2, #11111100b     ; cho Led p2.7, p2,6, p2.5, p2.4, p2.3, p2.2  tăt

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

      mov p2, #11111110b     cho Led p2.7, p2,6, p2.5, p2.4, p2.3, p2.2, p2.1  tăt

     call delay                         ; cho goi chương trinh con dung lam trê, co tên nhan la delay.

       jmp start                          ; nhây không điêu kiên vê tên nhan start, tưc cho băt đâu lai.

delay:       ; tên nhan dung cho lênh nhây, ơ đây chung ta dung lênh call.

      mov r7, #20       ; nap tri thâp phân 20 cho thanh ghi r7.

Page 89: Thuc Hanh 89C51

v6: mov r6, #50       ; nap tri thâp phân 50 cho thanh ghi r6.

v5: mov r5, #200     ; nap tri thâp phân 200 cho thanh ghi r5.

      djnz r5, $            ; cho tri co trong r5, giam theo bươc -1, chơ cho đên khi băng 0.

      djnz r6, v5          ; cho tri trong r6 giam theo bươc -1, nêu chưa băng 0, nhây đên v5.

      djnz r7, v6          ; cho tri trong r7 giam theo bươc -1, nêu chưa băng 0, nhây đên v6.

      ret                       ; quay lai thưc hiên dong lênh sau lênh goi call.

end                           ; dưng chương trinh biên dich tai đây.

 

 

Tôi nghi nêu chiu kho đoc đên đây chăc Ban cung hiêu đươc phân nao cach dung ic vi điêu khiên AT89C51 va Ban se hoi vơi AT89C51, chung ta co cac câu lênh nao? Ý nghi cua cac câu lênh ra sao? va cach dung cua tưng câu lênh?

 

 

Sau đây chung ta se lân lươt tim hiêu cac câu lênh thương dung trong nhom 254 câu lênh cua AT89C51. Cac câu lênh chia ra lam 5 nhom.

 

 

Nhom 1: Cac câu lênh liên quan đên sô hoc:

 

Page 90: Thuc Hanh 89C51
Page 91: Thuc Hanh 89C51

 

 

NHom 2: Cac câu lênh liên quan đên logic:

 

Page 92: Thuc Hanh 89C51

 

Page 93: Thuc Hanh 89C51

 

 

Nhom 3: Cac câu lênh liên quan đên chuyên dư liêu:

 

Page 94: Thuc Hanh 89C51

 

Page 95: Thuc Hanh 89C51

 

 

Page 96: Thuc Hanh 89C51

Nhom 4: Cac câu lênh liên quan đên biên Bun (Boolean):

 

 

 

Nhom 5: Cac câu lênh liên quan đên nhây:

 

Page 97: Thuc Hanh 89C51

 

  

Page 98: Thuc Hanh 89C51

Trên đây la cac câu lênh đươc dung đê viêt cac chương trinh nguôn cho ic vi điêu khiên AT89C51. Môi câu lênh tương ưng vơi ma Code 16  ghi ơ đâu dong (khi nap vao ic luôn se dung ma nhi phân). Ban hay dung cac câu lênh nay đê viêt chương trinh theo y tương riêng cua Ban, cho đôi ra ma nhi phân va dung hôp nap, nap cac dong ma nay vao năm trong bô nhơ EEP-ROM cua ic vi điêu khiên AT89C51 la xong.

 

Giai thich bằng môt thi dụ:

 

org 0000h

     mov p1, #11110000b

     mov r7, #100

     mov a, #0ffh

     mov a, r7

end

 

Sau khi cho dich đoan chương trinh trên ra ma Code 16, Ban co kêt qua như sau:

 

:080000007590F07F6474FFEFBE:00000001FF

 

Nhin vao cac đoan ma (viêt theo hê 16) nay Ban se thây:

 

:08000000---7590F0---7F64---74FF---EFBE:00000001FF

:08000000 (ma đia chi)

 

7590F0  đươc hiêu như sau:

(mov data addr, #data, cân 3 byte),

Page 99: Thuc Hanh 89C51

Con sô 75 la lênh mov (tri đia chi), sô 90h la tri đia chi cua cang p1 va sô F0 la tri cua 11110000b 

 

7F64 đươc hiêu như sau:

(mov r7, #data, cân 2 byte)

Con sô 7F la lênh mov r7, #data, con sô 64h la tri hê 16 cua con sô 100 (tri thâp phân).

 

74FF đươc hiêu như sau:

(mov a, #data, cân 2 byte)

Con sô 74 la lênh mov a, #data, con sô FFh la tri hăng.

 

EFBE đươc hiêu như sau:

(mov a, r7, chi cân 1 byte)

Con sô EFBE la ma cua lênh: mov a, r7.

:00000001FF Đoan kêt thuc.

 

 

Qua thi du trên Ban thây môi câu lênh no co ma Code riêng cua no, trinh biên dich se dich cac câu lênh nay ra dang ma tương ưng. Noi chung Ban cung không cân đê y đên cac ma Code cua câu lênh lam gi, Ban hay hoc cach dung cac câu lênh trên đê viêt ra cac chương trinh nguôn cho đung vơi y tương cua Ban la đươc. Cach viêt cac câu lênh rât đơn gian, cư theo đung cu phap ma go, môi lênh trên môt dong, cac chu thich nêu co phai đăt sau dâu ";". Vơi tri co thê dung sô hê thâp luc phân (hê đêm 16), hay hê thâp phân, hay hê nhi phân đêu đươc.

 

Ghi nhân cua chung tôi: Ban không cân biêt hêt 254 lênh, nhưng vơi cac lênh thương dung thi phai hiêu cho thât ro, cô găng viêt cac chương trinh nguôn it tôn hao bô nhơ, trinh tư chương trinh nên phân minh, dê đoc, dê thêm bơt, dê sưa. Viêt trươc cac đoan chương trinh con thương dung đê khi cân thi chi viêc chon va căt dan vao chương trinh đang soan, lam vây se it tôn thơi gian va tranh đươc lôi. Viêt cac chương trinh nguôn, công viêc nhin giông như chơi cơ tương, ai cung chi co bây nhiêu lênh ma thôi, nhưng

Page 100: Thuc Hanh 89C51

co ngươi cao cơ giai quyêt vân đê theo cach khac, ngươi thâp cơ thi giai quyêt theo cach khac. Thơi gian chơi nhiêu, lam nhiêu Ban cung se trơ thanh cao thu lâp trinh thôi.

 

  

Muôn lam thưc hanh vơi cac ic vi điêu khiên, cân gi? 

 

Đo la câu hoi nhiêu Ban thương hoi tôi. Theo tôi, Ban cân co cac thư sau đây:

 

(1) Môt hôp nap file ma lênh (file co ho .hex) vao bô nhơ cua cac ic vi điêu khiên.

 

(2) Cân biêt dung môt may tinh va nên tim môt phân mêm soan thao đê go chương trinh nguôn va no lam đươc công viêc biên dich ra file ma (file co ho .hex).

 

(3) Môt bo thưc hanh cơ ban vơi ic vi điêu khiên AT89C51 va nhiêu mach điên ưng dung ngoai vi.

 

 

 

Chung ta se thư noi đên cac vân đê nay  

  

 Làm thực hành với bộ Kit lập trình đa năng 

Page 101: Thuc Hanh 89C51

Giới thiệu bộ Kit thực hành với IC AT89C51. Hình chụp toàn phần cho thấy: Muốn tự học lập trình cho IC vi điều khiển AT89C51, tốt nhất Bạn vừa tìm hiểu câu lệnh vừa làm thực hành. Như vậy, Bạn hãy có trong tay bo thực hành đa năng này và một hộp nạp chương trình, dùng nạp file .hex vào bộ nhớ EEP-ROM trong ic vi điều khiển AT89C51. Trình tự làm thực hành thường như sau:

 

(1) Bạn tạo các kết nối giữa ic AT89C51 và các mạch điện chung quanh.

(2) Phát triển các ý tường và cụ thể hóa bằng cách viết ra file chương trình nguồn, với họ .asm.

(3) Dịch file nguồn có họ .asm ra file mã Code có họ là .hex

(4) Gắn ic AT89C51 vào bo thực hành, mở nguồn cấp điện để kiểm tra.

 

Ban xem hinh môt bo thưc hanh ic AT89C51 hiên co ban ơ cưa hang Phuc Lan Shop.

 

 

Page 102: Thuc Hanh 89C51

 

Hình chụp và sơ đồ mạch điện cho thấy:

 

IC vi điều khiển AT89C51 cho gắn trên một chân cấm 40 pin. Chung quanh IC trên 4 cảng là các port 0, port 1, port 2, port 3, mỗi port đều có dùng thêm một IC logic 74245 dùng làm tầng khuếch đại tín hiệu trên các đường xuất nhập của các cảng.

 

Một khóa điện tắt mở nguồn dùng để cấp điện cho mạch, mạch chạy với đường nguồn 5V.

 

Một khóa SW (DIP 4: 1, 2, 3, 4) dùng định hướng cho tín hiệu đi vào hoặc đi ra qua các IC 74245. Bo có 3 nút nhấn, một nút Reset (Key 3), 2 nút nhấn đặt trên chân 15 (Key 1, P3.2/T1) và chân 14 (Key 2, P3.3/T0). Trên mạch còn dùng một

Page 103: Thuc Hanh 89C51

tụ điện 0.047F và điện trở 100K và nút nhấn Reset dùng để xác lập lại trạng thái khởi đầu cho IC vi điều khiển AT89C51.

 

Sơ đồ mạch điện bộ phận vi điều khiển trung ương với IC AT89C51 như hình sau:

Mạch dùng một thạch anh 12MHz (gắn trên chân 18, chân 19) để định tần cho mạch dao động tạo xung nhịp, do trong ic AT89C51 có mạch chia tần 1/12, vậy trong ic AT89C51 có xung nhịp chính có tần số 1MHz (hay có chu kỳ lệnh là 1us). Trong mạch dùng 2 tụ điện nhỏ 33pF để bù nhiệt ổn tần.

Trong mạch còn dùng 3 thanh điện trở RN6, RN5, RN4 để treo (Pull up) cho các cảng p3, p2, p0 lên mức áp cao. Trị số các điện trở trong thanh đều lấy 10K.

 

Ngoài ra trên mạch còn cho gắn nhiều chân cấm dạng 8 bit dùng để tạo kết nối giữa bộ phận điều khiển trung ương với các mạch điện ngoại vi khác.

 

Nguyên lý vận hành của mạch điện như sau: Ngay khi Bạn nhấn nút mở điện, Led chỉ thị trong mạch sẽ phát sáng, lúc này mạch đã được cấp điện và bắt đầu cho chạy các chương trình đã có trong bộ nhớ EEP-ROM. Bạn có thể kiểm tra tác động của các chương trình thông qua các kết nối với các dạng mạch Test (cùng có trên bo thực hành) thông qua các cảng, p0, p1, p2, p3 của IC vi điều khiển AT89C51. 

 

Ở bộ phận này, Bạn làm các phép đo kiểm tra như sau:

 

* Dùng Volt kế DC đo kiểm tra mức áp +5V trên các chân 40 của U8 (AT89C51), trên chân 20 của các IC00 (74245), IC11 (74245), IC33 (74245), IC22 (74245).

 

* Dùng Volt kế AC (đủ nhậy) đỂ KIỂM TRA TÍN HIỆU DẠNG SIN TRÊN CHÂN 18, 19 CỦA U8 (AT89C51), NẾU THẤY KIM LÊN LÀ MẠCH DAO ĐỘNG CÓ CHẠY.

 

Page 104: Thuc Hanh 89C51

* Set các khóa điện S4 để chọn hướng đi của các tín hiệu qua các IC logic chọn đường 74245. Nếu cho chân 1 của các IC 74245 nối masse thì tín hiệu sẽ đi ra (từ IC AT89C51 đến các mạch bên ngoài) và nếu cho chân 1 lên mức áp cao thì hướng đi của tín hiệu sẽ đi từ ngoài vào IC AT8951.

 

 

 

Cac mach điên thưc hanh: 

(1) Thưc hanh vơi 32 Led:

 

 

 

Page 105: Thuc Hanh 89C51

Hình chụp cho thấy: Trên Kit thực hành IC vi điều khiển AT89C51 có một dãy 32 Led, chia ra làm 4 nhóm, mỗi nhóm 8 Led. Tất cả các Led đều có chân cathode cho nối masse và ở mỗi Led đều có dùng điện trở hạn dòng 100 ohm.  Vậy các Led này sáng với mức áp cao.

Sơ đồ mạch điện cho thấy, Bạn có thể dùng bó dây 8 đường để kết nối các dãy Led với các cảng xuất nhập trên IC vi điều khiển AT89C51. Việc dùng Led để theo dõi trạng thái mức áp cao  (úng với bit 1)  và mức volt thấp (ứng với bit 0) trên các port của IC AT89C51 sẽ giúp cho chúng ta nhanh chóng biết được hoạt động của các chương trình đã nạp vào EEP-ROM  của AT89C51. Tên đặt cho các nhóm 8 Led là JP4, JP7, JP2 và JP3. Bạn hãy dùng bó dây cho nối các nhóm Led này vào các port của  AT89C51 và cho chạy thử các chương trình đã viết và đã nạp vào IC AT89C51. Hãy kiểm tra hoạt động của chương trình thông qua sự sáng tắt của các Led.

 

(2) Thưc hanh vơi cac đen sô dung Led 7 đoan.

 

 

Page 106: Thuc Hanh 89C51

 

Bạn xem hình và sơ đồ mạch điện:

  

Hình chụp cho thấy trên bo Kit thực hành có gắn 8 bộ Led dùng làm các đèn hiện số theo dạng mã 7 đoạn (các đoạn đánh dấu a, b, c, d, e, f, g và dot). 

 

Ở đây đèn số 7 đoạn dùng loại Led có cực anode chung. Để làm hiện các con số trong dãy 8 đèn số này,  mạch dùng tính tắt mở của các transistor pnp (2SA564). Các chân a, b, c, d, e, f, dot, là các chân cathode của các Led trong đèn số 7 đoạn, các chân này cho nối vào một trạm nối 8 bit với các điện trở hạn dòng. Ở đây có 2 bộ kết nối JP5 (dùng lấy tín hiệu giải mã con số) và bộ kết nối JP16 (dùng cấp mã quét cấp cho chân B của 8 transistor 2SA1015).

 

Trong mạch, chân chung anode ( chân Common) của các đèn số 7 đoạn được cho nối vào chân C của các transistor pnp 2SA564, trên chân B của các transistor này có điện trở hạn dòng 10K cho nối vào bộ chân cấm JP16. Từ bộ chân cấm 8 dây này Bạn sẽ cho kết nối với một cảng của IC vi điều khiển AT89C51 để nhận xung quét (để mỗi lần chỉ cho hiện một con số).

Page 107: Thuc Hanh 89C51

 

Các chân cấp dòng cho các cathode (a, b, c, d, e, f, dot) cho nối với bộ chân cấm JP5 qua các điện trở hạn dòng 220 ohm. Bộ chân cấm này cũng sẽ cho nối với một cảng (tùy chọn) trên IC vi điều khiển AT89C51 để cấp dòng cho các Led trong các đèn số để phát sáng.

 

 

(3) Thưc hanh vơi Led ma trân 8x8.

 

 

Page 108: Thuc Hanh 89C51

 

Bạn xem hình và sơ đồ mạch điện:

 

Ở đây dùng bảng ma trận Led 8x8 (trên bảng Led có 64 Led đỏ và 64 Led xanh) dùng để cho hiện ra các hình ảnh và con chữ và số. Vậy trên bảng ma trận này Bạn có thể tạo ra các hình ảnh tùy ý bằng các điểm sáng tắt của các Led (Led đỏ cho hình màu đỏ, Led xanh cho hình màu xanh và phối hợp Led đỏ, Led xanh sẽ có hình màu vàng).

 

Để tăng độ ổn định và độ sáng, trên mạch dùng thêm các ic khuếch đại ULN2803A. Trong ic ULN2803 là 8 mạch khuếch đại với các cặp transistor ráp theo kiểu darlington, nên ngả vào có trở kháng rất lớn và không gây nặng tải lên các đường ra trên các chân của các cảng, mạch khuếch đại còn dùng các diode hạn biên và diode ghim áp để tăng độ an toàn.

 

Nguyên lý làm việc của bảng đèn ma trận 8x8 như sau:

Page 109: Thuc Hanh 89C51

 

Khi chân số 24 cho xuống mức áp thấp thì lúc này cathode của 8 Led đỏ ở cột 1 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led đỏ ở cột 1.

 

Khi chân số 23 cho xuống mức áp thấp thì lúc này cathode của 8 Led xanh ở cột 1 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led xanh ở cột 1. 

 

Khi chân số 22 cho xuống mức áp thấp thì lúc này cathode của 8 Led đỏ ở cột 2 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led đỏ ở cột 2.

 

Khi chân số 20 cho xuống mức áp thấp thì lúc này cathode của 8 Led xanh ở cột 2 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led xanh ở cột 2. 

 

Khi chân số 18 cho xuống mức áp thấp thì lúc này cathode của 8 Led đỏ ở cột 3 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led đỏ ở cột 3.

Khi chân số 17 cho xuống mức áp thấp thì lúc này cathode của 8 Led xanh ở cột 3 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led xanh ở cột 3. 

 

Khi chân số 16 cho xuống mức áp thấp thì lúc này cathode của 8 Led đỏ ở cột 4 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác đinh trạng thái sáng tắt của 8 Led đỏ ở cột 4.

 

Khi chân số 15 cho xuống mức áp thấp thì lúc này cathode của 8 Led xanh ở cột 4 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led xanh ở cột 4. 

 

Page 110: Thuc Hanh 89C51

Khi chân số 1 cho xuống mức áp thấp thì lúc này cathode của 8 Led đỏ ở cột 5 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led đỏ ở cột 5.

 

Khi chân số 2 cho xuống mức áp thấp thì lúc này cathode của 8 Led xanh ở cột 5 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led xanh ở cột 5.

 

Khi chân số 4 cho xuống mức áp thấp thì lúc này cathode của 8 Led đỏ ở cột 6 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led đỏ ở cột 6.  

Khi chân số 5 cho xuống mức áp thấp thì lúc này cathode của 8 Led xanh ở cột 6 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led xanh ở cột 6.

Khi chân số 7 cho xuống mức áp thấp thì lúc này cathode của 8 Led đỏ ở cột 7 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led đỏ ở cột 7.

 Khi chân số 8 cho xuống mức áp thấp thì lúc này cathode của 8 Led xanh ở cột 7 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led xanh ở cột 7.

Khi chân số 9 cho xuống mức áp thấp thì lúc này cathode của 8 Led đỏ ở cột 8 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led đỏ ở cột 8.

 

Khi chân số 10 cho xuống mức áp thấp thì lúc này cathode của 8 Led xanh ở cột 8 sẽ cho nối masse, lúc này 8 bit cho ra trên 8 chân 22, 19, 16, 13, 3, 6, 9, 12 sẽ xác định trạng thái sáng tắt của 8 Led xanh ở cột 8.

 

 

  (4) Thưc hanh vơi ban phim ma trân 4x4.

 

Page 111: Thuc Hanh 89C51

 

 

Trên bo test đặt 16 phím nhấn dùng ma trận 4x4, như vậy mạch dùng 8 dây. trong đó có 4 dây cho treo lên mức áp cao với một thanh điện trở. Sơ đồ mạch điện như hình vẽ:

 

mạch điện cho thấy, trên ma trận 4x4 có 16 phím nhấn. Ở đây Bạn có thể cho bộ kết nối J27 nối vào port 1. Bạn sẽ viết một chương trình để vận hành 16

Page 112: Thuc Hanh 89C51

phím này, Bạn có thể qui định một phím sẽ cho chạy một chương trình đã chọn định trước.

 

Bạn xem sơ đồ mạch điện:

 

Bạn dùng các đường trên các chân p1.0, p1.1, p1.2, p1.3 làm các hàng (row). Trong lập trình bàn phím, các hàng cho là ngả vào, vậy bình thường cho ở mức “0”. Dùng các chân p1.4, p1.5, p1.6 và p1.7 làm các cột (column). Trong lập trình bàn phím, các cột cho là ngả ra, vậy bình thường cho ở mức “1”.

 

Mã quét bàn phím sẽ cho tìm bit “0” trên các cột, chúng ta biết, khi có một phím nhấn xuống thì lúc này sẽ xuất hiện bit “0” trên các cột. Chương trình sẽ chuyển qua cho quét tìm phím nhấn, sau đó nhẩy đến chương trình con của phím và cho chạy chương trình này.

 

 

(5) Thưc hanh vơi khôi biên đôi A/D.

 

Page 113: Thuc Hanh 89C51

 

Chúng ta biết, tín hiệu trong thế giới tự nhiên thường ở dạng analog (tín hiệu analog lấy mức volt để chỉ trạng thái khác nhau của tín hiệu), như nhiệt độ, sức gió, âm thanh…Trong khi đó, các ic vi điều khiển (cũng như các ic vi xử lý) chỉ làm việc với tín hiệu dạng số (digital, tín hiệu digital còn gọi là tín hiệu bit, nó lấy mức áp cao thấp để chỉ trạng thái khác nhau của tín hiệu). Bài thực hành này dùng chuyển đổi tín hiệu dạng analog (có trong thế giới tự nhiên) ra dạng digital (được dùng trong các mạch điện máy tính). Mạch  ADC dùng ic ADC0809.

 

Bạn xem sơ đồ mạch điện:

IC ADC0809 có 8 ngả vào trên các chân in0, in1, in2, in3, in4, in5, in6, in7. Việc xác định chân vào sẽ tùy theo cách đặt bit trên các chân a0, a1, a2.  Thí dụ: với

Page 114: Thuc Hanh 89C51

a0=0, a1=0 và a2=0, Bạn đã chọn ngả vào là chân in0 (chân 26). Việc lấy mẫu chuyển mức áp dạng analog ở ngả vào ra dạng bit cho ra trên các chân d0, d1, d2, d3, d4, d5, d6, d7 (8 bit). Xung lấy mẫu đưa vào trên chân 10, nó được tạo ra với mạch dao động 7414 (IC05F), tần số xung lấy theo trị số R70 (1K) và tụ C4 (102), IC05E làm chức năng khuếch đại trigger. mức áp chuẩn dùng xác định độ phân giải sẽ tùy theo điện áp DC đưa vào trên chân 12 (+Reference) và trên chân 16 (-Reference).

 

Chân 22 (ALE, address latch enable) dùng chốt dữ liệu trong thanh ghi.

Chân 6 (Start) cho bắt đầu lấy mẫu.

Chân 7 (EOC, end of conversion), tín hiệu báo kết thúc qui trình chuyển đổi.

Chân 9 (OE, output enable), cho xuất dữ liệu 8 bit ra.

 

(6) Thưc hanh vơi khôi biên đôi D/A.

 

Page 115: Thuc Hanh 89C51

 

Chúng ta biết các tín hiệu làm việc trong các ic vi điều khiển, vi xử lý đều để ở dạng bit, nghĩa là tín hiệu chỉ xác lập theo mức áp cao hay thấp, tín hiệu này được gọi là tín hiệu dạng digital. Trong khi đó, trong thế giới thật, chúng ta thường làm việc với các tín hiệu dạng analog. Do vậy, muốn sử dụng được các tín hiệu có trong các máy tính, chúng ta phải dùng mạch biến đổi tín hiệu, đổi dạng digital ra dạng analog. Ở đây, mạch thực hành gọi là mạch Analog output. Bạn xem sơ đồ mạch điện:

Mạch dùng ic DAC0808. Tín hiệu vào dạng digital trên các chân a1, a2, a3, a4, a5, a6, a7, a8. Tín hiệu này sau khi chuyển xong sẽ cho ra trên hai đường. Đường 4 (IOUT) và đường 2 (IOUT đảo). Tín hiệu ra trên chân 4 cho qua một tầng khuếch đại op-amp với ic LM741, sau cùng tín hiệu dạng analog sẽ cho ra trên chân 6 của LM741.

 

Mức áp chuẩn (Voltage reference) đưa vào trên chân 14 (Vr+) và chân 15 (Vr-). Chân số 16 mắc tụ bù 0.1f. Loại mạch này cần nguồn nuôi hai dấu. V+ trên

Page 116: Thuc Hanh 89C51

chân 13 và V- trên chân 3, Bạn cho cấp điện "5V trên chân cắm J32 và J31. Với ic LM741, Bạn cấp nguồn "5V trên chân JP29.

 

(7) Thưc hanh vơi khôi khuêch đai đêm vơi ULN2803A.

 

 

Page 117: Thuc Hanh 89C51

 

Trên bo thực hành có trang bị mạch khuếch đại đệm dùng tăng công suất tín hiệu kết nối. Sơ đồ mạch điện như hình vẽ (Bạn xem hình chụp mạch khuếch đại đệm trên bo thực hành). 

 

 

IC ULN2803A dùng khuếch đại tín hiệu ra cho các port của ic vi điều khiển AT89c51. 

 

Sơ đồ đẳng hiệu của một tầng khuếch đại trong ic ULN2803Acho thấy: mạch dùng 2 transistor npn, ghép dạng phức hợp (còn gọi là ghép darlington). Tín hiệu lấy ra trên chân C của Q2, và chân C để hở nên ngả ra của tầng khuếch đại này có thể cho kết hợp với các loại tải Volt cao, như  relay 12V, motor  DC12V…người ta dùng các diode zener để ghim mức áp ngả vào, ngả ra. Các điện trở trên chân B-E có công dụng làm tăng độ ổn định nhiệt. Điện trở 2.7K dùng hạn dòng cho chân B, diode nối vào đường nguồn Vcc có tác dụng hạn biên, giữ cho mức áp trên chân C không lên cao hơn mức áp của nguồn.

 

 

Giơi thiêu môt phân mêm soan thao đê go chương trinh nguôn

va biên dich file .asm ra file ma (file co ho .hex).

 

Sau khi đa co bo thưc hanh (Xem phân trinh bay trên), bây giơ Ban phai lam quen vơi môt phân mêm dung soan cac chương trinh nguôn, cac file nay lây ho la .asm. Ơ đây, chung tôi giơi thiêu Ban dung phân mêm miêm phi MIDE-51. Tiêu hinh cua MIDE-51 như hinh sau.

 

 

 

Khi kich chuôt trên tiêu hinh nay, no mơ ra môt giao diên như hinh sau:

Page 118: Thuc Hanh 89C51

 

 

 

Bây giơ Ban se go hay dan cac câu lênh vao vung soan thao cua no. Tôi lam môt thi du: Tôi se căt môt chương trinh đa co va cho dan vao MIDE-51 rôi cho chep lai vơi môt tên file lây ho la .asm va sau đo cho dich file nguôn ra file ma 16 vơi ho la .hex.

 

Chung ta thư soan môt chương trinh nguôn đơn gian, lam công viêc tăt mơ 8 Led trên cang p1. Chương trinh nguôn se đươc viêt như sau:

 

org 0000h

start:

      mov p1, #00000000b

Page 119: Thuc Hanh 89C51

      call delay

      mov p1, #11111111b

      call delay

      jmp start

delay:    

      mov r7, #20

v6: mov r6, #50

v5: mov r5, #200

      djnz r5, $

      djnz r6, v5

      djnz r7, v6

      ret

end

 

 

 

Đoan chương trinh nguôn trên đa đươc go trong vung soan thao cua MIDE-51 va no đươc chep lai vơi tên file la thi-du-1.asm

 

Page 120: Thuc Hanh 89C51

 

 

 

Khi go xong, Ban mơ cưa sô Build va chon muc Build (hay luc nao cân biên dich thi go phim nong F9) chương trinh nguôn thi-du-1.asm se đươc biên dich ra file ma Code.

 

Page 121: Thuc Hanh 89C51

 

 

 

MIDE-51 dich xong va bao không thây lôi. Ban xem câu bao ơ phân dươi "no errors". Luc nay trên thư muc cua file thi-du-1.asm đa co file thi-du-1.hex. Đo chinh la file ma Code cua chương trinh nguôn trên.

 

Page 122: Thuc Hanh 89C51

 

 

File thi-du-1.hex co nôi dung như sau:

 

:1000000075900012000E7590FF12000E80F27F14A2:0B0010007E327DC8DDFEDEFADFF62246:00000001FF 

 

Phân tich file ma Code thi-du-1.hex, Ban se thây:

Page 123: Thuc Hanh 89C51

 

:10000000---759000---12000E---7590FF---12000E---80F2 ---7F14---A2:0B001000---7E32---7DC8---DDFE---DEFA---DFF6---22---46:00000001FF

 

 

org 0000h

start:

      mov p1, #00000000b         Co ma Colde la: 759000

      call delay                              Co ma Colde la: 12000E

      mov p1, #11111111b         Co ma Colde la:  7590FF

      call delay                               Co ma Colde la: 12000E

      jmp start                                Co ma Colde la:  80F2

delay:     

      mov r7, #20                          Co ma Colde la:  7F14

v6: mov r6, #50                          Co ma Colde la:  7E32

v5: mov r5, #200                        Co ma Colde la:  7DC8

      djnz r5, $                               Co ma Colde la:  DDFE

      djnz r6, v5                             Co ma Colde la:  DEFA

      djnz r7, v6                             Co ma Colde la:  DFF6

      ret                                          Co ma Colde la:  22

end

 

Nêu Ban xem cac câu lênh ơ phân phu luc, Ban se thây phân sô ghi đâm trên chinh la ma Code cua cac câu lênh ma Ban đa go trong chương trinh nguôn. Cac ma Code (dang ma 16) nay se đươc cho đôi ra dang nhi phân va rôi se cho nap vao bô nhơ EEP-ROM cua ic vi điêu khiên AT89C51. Lam đên đây xem như công viêc đa hoan tât, Ban găn ic AT89C51 vao bo thưc hanh đê thư, Ban se thây 8 Led trên cang p1 se nhâp nhay (như hinh).

Page 124: Thuc Hanh 89C51

 

 

 

 

Dung lênh mov p1, #data, Ban co thê điêu khiên 8 Led trên port 1 sang theo y cua Ban. Ban xem tac dung cua lênh move trên cang p1 như hinh sau:

 

 

 

Dung lênh quay trai: rl a (Rotate Left a), kêt qua cho chuyên ra cang p1.

 

Page 125: Thuc Hanh 89C51

 

 

 Đên đây, chung ta đa co thê viêt cac chương trinh nguôn phưc tap hơn...Phai không?

 

 

Vân đê hôp nap cac ma Code vao bô nhơ EEP-ROM cua cac ic vi điêu khiên Ban vao đoc bai:

 

Giới thiêu cach dung hôp nap ic vi điều khiên TOP853

 

Page 126: Thuc Hanh 89C51

 

 

Ban muôn dung cac câu lênh đê điêu khiên cac thiêt bi tư đông, cac bang đen quang cao, hay cac robot...Trươc hêt Ban hay viêt ra cac câu lênh rôi cho chuyên đôi ra dang ma va bây giơ dung hôp nap TOP853 đê nap cac câu lênh nay vao bô nhơ EEPROM. Sau khi đa lam xong cac công viêc trên, xem như Ban đa co môt ic luôn trung thanh vơi cac sai

bao cua Ban. Thich không? Hay vao đoc bai nay đê biêt cach lam nhe....(Click vao đây đê xem)

 

 

 

(Ban đon đoc trong cac bai tiêp theo, chung tôi se trinh bay cac ưng dung thưc tê hơn vơi ic vi điêu kiên AT89C51)

 

 

 

Page 127: Thuc Hanh 89C51

Chuyên con dai Ban nhơ vao xem... 

 

 

   

Phu luc: 

 

Cu phap đê viêt 254 câu lênh đươc liêt kê ra trong cac bang sau

(theo trinh tư ma Code): 

Page 128: Thuc Hanh 89C51

 

Page 129: Thuc Hanh 89C51
Page 130: Thuc Hanh 89C51
Page 131: Thuc Hanh 89C51
Page 132: Thuc Hanh 89C51
Page 133: Thuc Hanh 89C51
Page 134: Thuc Hanh 89C51
Page 135: Thuc Hanh 89C51
Page 136: Thuc Hanh 89C51
Page 137: Thuc Hanh 89C51
Page 138: Thuc Hanh 89C51
Page 139: Thuc Hanh 89C51
Page 140: Thuc Hanh 89C51
Page 141: Thuc Hanh 89C51

Trang chu Giơi thiêu San phâm Download Trao đôi hoc tâp Liên hê

Giỏ hang : 0 San phâmCHI TIẾT CHỦ ĐỀ

Hương dân Ban viêt 10 chương trinh ưng dung cơ ban cho ic vi điêu khiên AT89C51

 

Lời noi đầu

Ban biêt, kiên thức la luôn luôn cai biên va phat triên, do đo cac bai viêt của tôi ở

Page 142: Thuc Hanh 89C51

đây cũng luôn theo tôn chi của RIXIN, nghĩa la Nhât Tân 日新 (Ngay mới, ngay

mới, ngay ngay mới。日新,日新,日日新). Cac bai viêt luôn đươc người soan  đoc đi đoc lai va sửa lỗi, viêt thêm vao cac ý tưởng mới va cac bai viêt luôn đươc lam tươi. No giống như môt vườn cây  đươc người trông  vườn chăm coi cẩn thân va khu vườn thi đang ngay ngay sinh trưởng, cac bai viêt sẽ luôn mới, luôn khac va mỗi ngay đều đươc bô xung tu chinh, va thêm mới. Mong Ban thường xuyên quay lai đê xem va gop ý. Người soan: Vương Khanh Hưng.

 

 

Trươc hêt chung ta hay tim hiêu nguyên ly lam viêc cua ic vi điêu khiên AT89C51 (Ban xem hinh).

 

 

IC AT89C51 co 40 chân. Công dung cua cac chân như sau:

 

* Chân 40 nôi vao đương nguôn 5V, chân 20 cho nôi masse.

 

Page 143: Thuc Hanh 89C51

* Chân 9 nôi vao mach reset vơi điên trơ 10K va tu 10uF. Khi mach vưa đươc câp điên, tu nap va keo chân 9 lên mưc ap cao tao tac đông reset. Sau môt luc chân 9 trơ lai mưc ap thâp. IC AT89C51 băt đâu hoat đông tư trang thai khơi đâu.

 

* Chân 18, 19 măc thach anh đinh tân. Như vây tân sô xung nhip se la 1Mhz (hay 1us). Ngang thach anh măc 2 tu nho dung đê bu nhiêt ôn tân (Ban xem hinh).

 

 

 

* Chân 31 Ban phai cho treo lên mưc ap cao, đê xac đinh la mach chi lam viêc vơi bô nhơ nôi (Vi mach không dung thêm bô nhơ ngoai).

 

* Ban chu y, ic co 4 cang, đo la port 0 (p0), port 1 (p1),  port 2  (p2) va port 3 (p3). Môi cang co 8 chân. Moi hoat đông cua ic vi điêu khiên đêu đươc thưc hiên trên cac cang nay.

 

Ghi nhân: Ban thây ic AT89C51 chi cân môt it linh kiên bên ngoai la đa co thê châp hanh cac câu lênh đa co trong bô nhơ EEP-ROM, Ban dung cac câu lênh nay đê xac đinh trang thai điên ap cao thâp trên cac cang va dung cac mưc ap cao thâp nay cho viêc điêu khiên cac dang mach điên, hay cac thiêt bi.

 

 

Bai 1: Viêt chương trinh đê Led trên chân sô 1 (p1.0) luôn nhâp nhay.

Page 144: Thuc Hanh 89C51

 

ORG  0000h                                                ; Khơi đâu tư thanh ghi co đia chi la 0000h

START:               CLR P1.0                         ; Đăt chân p1.0 xuông mưc ap thâp, Led se sang.

                            LCALL DELAY                 ; Cho goi trinh lam trê (co tên nhan la delay).

                            SETB P1.0                       ; Đăt chân p1.0 lên mưc ap cao, Led se tăt

                            LCALL DELAY                  ; Lai cho goi trinh lam trê (co tên nhan la delay).   

                            LJMP START                    ; Cho nhây vê dong lênh vơi tên nhan la start, công viêc se lâp lai.

DELAY:              MOV R5,#20                      ; Nap tri 50 vao thanh nhơ r5.                D1:                      MOV R6,#20                     ; Nap tri 20 vao thanh nhơ r6.

D2:                      MOV R7,#248                   ; Nap tri 248 vao thanh nhơ r7.

                            DJNZ R7,$                        ; Cho giam r7 theo bươc -1 cho đên 0.

Page 145: Thuc Hanh 89C51

                            DJNZ R6,D2                      ; Cho giam r6 theo bươc -1, chưa băng 0 thi nhây vê D2.

                            DJNZ R5,D1                      ; Cho giam r5  theo bươc -1, chưa băng 0 thi nhây vê D1.

                            RET                                   ; Quay lai dong lênh sau lênh lcall.

                            END                                   ; dưng biên dich.

 

Phân tích cách viết các câu lệnh:

 

Ban thây khơi đâu luôn dung câu khai bao gia lênh:  org 0000h

 

Nghia la moi viêc se băt đâu tư thanh nhơ co đia chi la 0000h. Đây cung la thanh ma chương trinh se nhây đên môi khi Ban nhân nut Reset.

 

va kêt thuc vơi khai bao gia lênh: end

 

Cac câu lênh sau khai bao bơi gia lênh "end" se không đươc biên dich.

 

Noi ro hơn vê cach tinh thơi gian trê cua đoan chương trinh con delay:

 

Trong hinh trên do dung thach anh 12MHz nên môt chu ky may se la 1us. 

Vây câu lênh:  mov r6,#20    se thưc hiên 2 lân. Ban phai cho nhân 2. Tư đo cach tinh như sau:

             MOV R6,#20                       2lân          2

D1:       MOV R7,#248                     2 lân         2       2+2×248=498 20×

              DJNZ R7,$                          2 lân         2×248            

Page 146: Thuc Hanh 89C51

(498              DJNZ R6,D1                       2 lân   2×20=40           10002

 

Qua cac nhân thơi gian trê cua đoan chương trinh delay nay la 10.002ms.

Nêu Ban mov vao r6=10 thi thơi gian trê se la 5ms.

Nêu Ban mov vao r6=20 thi thơi gian trê se la 10ms.

 

Va đê co thơi gian trê la 200ms. Ban dung thêm thanh nhơ r5. Mov vao r5=20. Va như vây đoan chương trinh trê delay 200ms như sau:

DELAY:     MOV R5,#20     ; chuyên vao thanh ghi r5 sô thâp phân 20.

D1:             MOV R6,#20     ; chuyên vao thanh ghi r6 sô thâp phân 20.

D2:             MOV R7,#248   ; chuyên vao thanh ghi r7 sô thâp phân 248.

                   DJNZ R7,$         ; cho sô trong r7 giam theo bươc -1, ơ tai chô va chơ đên khi băng 0.

                   DJNZ R6,D2      ; cho sô trong r6 giam theo bươc -1, va nhây vê D2 nêu chưa băng 0.

                   DJNZ R5,D1     ; cho sô trong r5 giam theo bươc -1, va nhây vê D1 nêu chưa băng 0.

                   RET                   ; quay trơ lai thưc hiên dong lênh sau lênh call.

 

 

Bai 2: Viêt chương trinh dung Led trên chân 1 (p1.0) theo doi khoa điên K1 trên chân 10 (p3.0).

 

* K1 đong lai Led sang.

* K1 bo ra Led tăt.

Page 147: Thuc Hanh 89C51

ORG 0000H                                      ; Khơi đâu tư thanh ghi 0000h

START:               JB P3.0, LIG         ; Lênh nhây. Nêu chân p3.0 ơ bit 1 thi nhây đên tên nhan LIG, Led tăt

                            CLR P1.0             ; Đăt p1.0 vê bit 0, chân p1.0 ơ mưc ap thâp. Led se sang

                           SJMP START        ; Nhay vê tên nhan START.

LIG:                    SETB P1.0             ; Đăt p1.0 vê bit 1, chân p1.0 ơ mưc ap cao, Led tăt.

                            SJMP START       ; Nhay vê tên nhan START.

                           END                       ; Dưng biên dich ơ đây.

 

Phân tích cách viết các câu lệnh:

 

Ơ đây, Ban dung lênh nhây theo điêu kiên bit, tưc lênh jb (jump bit) hay jnb (jump no bit).

 

JB P3.0, LIG

 

Page 148: Thuc Hanh 89C51

Lênh nay co nghia la se nhây theo trang thai bit trên chân p3.0.

 

Nêu xet chân p3.0 ơ mưc ap cao (nut nhân K1 hơ) thi nhây đên tên nhan LIG, va

Nêu xet chân p3.0 ơ mưc ap thâp (nut nhân K1 kin) thi thưc hiên câu lênh kê tiêp bên dươi.

 

Ban nhơ, khi chân p3.0 ơ mưc ap cao thi Led tăt va khi chân p3.0 ơ mưc ap thâp thi Led se sang.

 

 

 

Bai 3: Viêt chương trinh dung 4 led trên cac chân 1 (p0.0), 2 (p0.1), 3 (p0.2), 4 (p0.3) đê cho biêt trang thai cua 4 khoa điên trên cac chân 5 (p0.4), 6 (p0.5), 7(p0.6), 8 (p0.7).

 

* Khi khoa điên đong lai Led tương ưng sang.

* Khi khoa điên nha ra, Led tương tưng tăt.

Page 149: Thuc Hanh 89C51

ORG 0000H                                               ; Băt đâu tư thanh ghi 0000h

START:                        MOV A,P1             ; Lây trang thai trên cang port 1 nap vao thanh ghi tich luy a.

                                      ANL A,#0F0H       ; dung logic AND đê che 4 bit thâp, giư nguyên trang thai 4 bit cao.

                                      RR A                    ; cho nôi dung trong thanh ghi a quay qua phai 1 bit.

                                      RR A                    ; cho nôi dung trong thanh ghi a quay qua phai 2 bit.

                                      RR A                    ; cho nôi dung trong thanh ghi a quay qua phai 3 bit.

                                      RR A                    ; cho nôi dung trong thanh ghi a quay qua phai 4 bit.

Page 150: Thuc Hanh 89C51

                                      XOR A,#0F0H      ; dung logic Ex-OR đê phat hiên sư khac bit trên 4 bit thâp.

                                                                   ; như vây Led ưng vơi vi tri co bit 0 se phat sang.

                                      MOV P1,A            ; Chuyên trang thai cua thanh ghi a ra trên port 1 đê lam sang Led.

                                      SJMP START      ; nhây vê tên nhan start đê tiêp tuc lam như trên.

                                      END                     ; ngưng biên dich ơ dong lênh nay.

 

Phân tích cách viết các câu lệnh:

 

a- Dung 4 phim đê tăt mơ 4 Led trên port 1

Ban cho chuyên trang thai cua port 1 vao thanh ghi tich luy a, chu y trang thai cua 4 bit cao. No phan anh nut nhân K1, K2, K3, K4.

 

 

Page 151: Thuc Hanh 89C51

 b- Dung logic And vơi hăng 11110000b đê cho che 4 bit thâp.

Ban lây logic AND giưa thanh a va hăng 0f0h (hay la 11110000b), cach lam nay la đê bao toan trang thai cua 4 bit cao, con 4 bit thâp đêu hoa ra bit 0. Ngươi ta quen goi la cho che 4 bit thâp.

 

 

 

c- Dung lênh quay phai 4 lân đê dơi 4 bit cao xuông 4 bit thâp.

Dung lênh rr a cho quay bit qua phai, nêu cho quay 4 lân thi 4 bit thâp se lên năm ơ vung 4 bit cao va 4 bit cao se xuông năm ơ vung 4 bit thâp. Chung ta noi cho chuyên trang thai cua 4 bit cao xuông vung 4 bit thâp. Cung co thê dung lênh swap.

 

 

 

d- Dung logic Ex-Or đê phat hiên cac bit khac nhau.

Page 152: Thuc Hanh 89C51

Lây logic Di-OR đê phat hiên cac bit giông nhau hay khac nhau:

 

Nêu cac bit giông nhau, kêt qua se la bit 0.

Nêu cac bit khac nhau, kêt qua se la bit 1.

 

Tư nga ra, Ban se thây Led năm trên bit 0 se phat sang. Cac Led năm trên bit 1 se tăt.

 

 

 

Bai 4: Viêt chương trinh cho 8 Led trên port 1 lân lươt nhâp nhay,  nhây qua trai rôi nhây qua phai.

Page 153: Thuc Hanh 89C51

 

ORG  0000hSTART:      MOV R2,#8            ; Đăt tri 8 (sô lân đêm) vao thanh ghi r2                   MOV A,#0FEH        ; Đăt tri 0feh tưc 11111110b va thanh ghi a.                   SETB C                  ; Đăt bit Cary lên mưc 1.LOOP:       MOV P1,A               ; Chuyên nôi dung trong thanh ghi a vao cang port 1.                   LCALL DELAY        ; Cho goi chương trinh lam trê                   RLC A                     ; Cho nôi dung trong thanh ghi a quay qua trai co cho quay qua bit cơ C.                   DJNZ R2,LOOP      ; Đêm lui tri trong thanh ghi r2. Nêu chưa băng 0 thi lam tiêp lênh ơ LOOP.                    MOV R2,#8             ; Nap lai tri 8 vao thanh ghi r2.LOOP1:      MOV P1,A                ; Chuyên nôi dung trong thanh ghi a vao cang port 1.                    LCALL DELAY         ; Cho goi chương trinh lam trê                      RRC A                     ; Cho nôi dung trong thanh ghi a quay qua phai co cho quay qua bit cơ C.                   DJNZ R2,LOOP1     ; Đêm lui tri trong thanh ghi r2. Nêu chưa băng 0 thi lam tiêp lênh ơ LOOP1.                    LJMP START           ; Nhây không điêu kiên vê tên nhan start đê lai tiêp tuc.

Page 154: Thuc Hanh 89C51

DELAY:      MOV R5,#20             ; Chương trinh dung lam trê (xem lai phân thi du 1) D1:             MOV R6,#20 D2:             MOV R7,#248                    DJNZ R7,$                    DJNZ R6,D2                    DJNZ R5,D1                    RET                    END                         ; Dưng biên dich.

 

Phân tích cách viết các câu lệnh:

 

Bai nay dung lênh quay bit qua phai va rôi cho quay bit qua trai đê dơi bit 0 lân lươt đi qua 8 chân cua port 1, chung ta biêt bit 0 se lam sang Led. Như vây Ban se thây cac Led trên port 1 se lân lươt sang va nhây qua phai rôi đôi chiêu nhây qua trai. Đê bit 0 co thê đi đu trên 8 chân cua port 1, chung ta dung lênh quay co  quay qua bit cơ C (rrl va rlc), di nhiên trươc đo phai nhơ set bit cơ C lên mưc 1.

 

Trinh bay lênh quay rrc va rlc băng hinh minh hoa (Ban xem hinh):

 

a- Ban dung lênh quay co qua cơ C, vây qua 8 nhip bit 0 se vao năm trong cơ C, luc nay 8 bit ơ port 1 đêu ơ mưc 1 va như vây 8 Led trên port 1 đêu se tăt. Vơi lênh rlc a (rotate left Carry). Ban se thây tưng Led sang lên va nhây qua bên trai.

 

 

 

b- Ban dung lênh quay co qua cơ C, vây qua 8 nhip bit 0 se vao năm trong cơ C, luc nay 8 bit ơ port 1 đêu ơ mưc 1 va như vây 8 Led trên port 1 đêu se tăt. Vơi lênh rrc a (rotate right Carry). Ban se thây tưng Led sang lên va nhây qua bên phai.

Page 155: Thuc Hanh 89C51

 

 

c- Lênh quay (rotate) chi co tac dung vơi thanh ghi a, do đo Ban muôn thê hiên kêt qua ra 8 Led trên port 1, Ban phai chuyên nôi dung co trong a ra port 1. Ban dung lênh mov p1, a.

 

Tom lai, trong bai nay Ban đa lam quen vơi cach dung lênh quay co cho qua cơ C. Vơi cach viêt nay, Ban  thây chung ta dung rât it câu lênh ma vân khiên cho cac Led sang nhây (nhây qua nhây lai) trên port 1.

 

 

Bai 5: Viêt chương trinh đê mach phat ra tiêng canh bao.

Page 156: Thuc Hanh 89C51

Tin hiêu 1KHz va 500Hz phat ra trên chân 1 (p1.0), thơi gian phat tin hiêu 1KHz la 100ms va thơi gian phat tin hiêu 500Hz la 200ms.

 

Khoa điên trên chân 8 (p1.7) dung tăt mơ tin hiêu canh bao.

 

FLAG                           BIT 00h                       ; Đinh nghi Flag dung lam bit cơ, hiên co tri la 0.ORG 0000H START:                        JB P1.7,START         ; Chơ đăt nut K1 đăt xuông mưc 0.                                      JNB FLAG,NEXT      ; Nêu bit cơ Flag la 0 thi nhây đên tên nhan NEXT.                                       MOV R2,#200           ; Nap sô thâp phân 200 vao thanh ghi r2.DV:                               CPL P1.0                   ; Lây bu chân p1.0, lênh bu bit co chưc năng tư đao.                                       LCALL DELY500      ; Cho goi chương trinh lam trê 500us.                                      LCALL DELY500      ; goi lân nưa chương trinh dely500.                                      DJNZ R2,DV             ; Cho đêm lui va thưc hiên lênh bu cpl p1.0 đên 200 lân.

Page 157: Thuc Hanh 89C51

                                      CPL FLAG                ; Đao bit trong cơ Flag.NEXT:                         MOV R2,#200              ; Nap lai sô thâp phân 200 vao thanh ghi r2. DV1:                            CPL P1.0                    ; Lây bu chân p1.0, co chưc năng tư đao.                                       LCALL DELY500      ; Cho goi chương trinh lam trê 500us.                                      DJNZ R2,DV1           ; Cho đêm lui va thưc hiên bu cpl p1.0 đên 200 lân.                                      CPL FLAG                ; Lai cho đao bit trong cơ Flag.                                      SJMP START           ; Lâp lai lênh tư tên nhan START. DELY500:                   MOV R7,#250             ; Viêt chương trinh con lam trê 500us. Nap sô 250 va thanh ghi r7.LOOP:                         NOP                            ; Lênh trông, dung no lam tăng thơi gian trê lên gâp đôi.                                      DJNZ R7,LOOP        ; Đêm lui r7 đê lam trê.                                      RET                           ; Cho quay lai thưc hiên dong lênh sau lênh call.

END                                                                 ; Dưng biên dich

 

Phân tích cách viết các câu lệnh:

 

Trong bai nây, Ban thây dung khai bao bit đê đinh nghia tên tư đăt cua Ban, như:

 

flag  BIT 0    ; Chư flag do Ban tư đăt la môt BIT, hiên co gia tri la bit 0.

 

Ban dung lênh nhây theo bit đê kiêm tra khoa điên K1.

 

start: jb p1.7, start     ; Lênh nay se chơ chân p1.7 xuông bit 0, nêu không no se luôn dưng lai ơ đây.

 

cpl p1.0     ; Lênh lây bu trên chân p1.0, nghia la no đang ơ mưc 0 thi cho chuyên lên 1 va ngươc lai.

 

Phân tich cac câu lênh trên Ban thây:

 

Page 158: Thuc Hanh 89C51

Loa se hu vơi tin hiêu 1000us  (do 2 lân goi dely500) va keo dai 200 lân rôi chuyên qua hu vơi tin hiêu 500us  (do chi goi dely500 co 1 lân) cung thưc hiên 200 lân. Vơi cach tao ra tin hiêu hu 2 nhip nay, Ban se nghe  tiêng hu tư Loa phat ra, tin hiêu nghe như tiêng coi hu canh bao..

 

 

 

Bai 6: Viêt chương trinh dung cach lây dư liêu khai bao trong bang, đê tăt mơ 8 Led trên port 1.

 

* Nhay nhây qua trai 2 lân.

* Nhay nhây qua phai 2 lân.

* Toan phân nhâp nhay 2 lân.

(Thơi gian trê 0.2 giây).

Page 159: Thuc Hanh 89C51

 

ORG    0000h START:               MOV DPTR,#TABLE     ; Lênh cho đăt đia chi bang vao thanh ghi con tro.                         LOOP:                CLR A                            ; cho xoa nôi dung trong thanh ghi a, luc nay a = 00000000b                            MOVC A,@A+DPTR     ; Cho lây nôi dung trong bang theo tri trong a, va cho cât kêt qua vao a.                            CJNE A,#01H,LOOP1   ; Nêu a chưa băng 01h thi nhây qua tên nhan LOOP1.                            JMP START                   ; Nêu trong a đa băng 01h thi nhây vê tên nhan START.LOOP1:              MOV P1,A                       ; Chuyên nôi dung trong a ra trên cang port 1.                           MOV R3,#20                   ; Nap sô thâp phân 20 vao thanh ghi r3.                            LCALL DELAY               ; Goi chương trinh lam trê, tên nhan la delay.                            INC DPTR                      ; cho tăng đia chi bang lên +1.                            JMP LOOP                      ; Nhây vê tên nhan LOOP.DELAY:              MOV R4,#20                    ; Viêt chương trinh con dung lam trê, tên

Page 160: Thuc Hanh 89C51

nhan la delayD1:                     MOV R5,#248                  ; Nap tri thâp phân 248 vao r5.                            DJNZ R5,$                      ; Cho giam theo bươc -1, chơ r5 băng 0.                            DJNZ R4,D1                   ; Cho r4 giam theo bươc -1, chưa băng 0, nhây vê D1.                           DJNZ R3,DELAY              ; Cho r3 giam theo bươc -1, chưa băng 0, nhây vê DELAY.                             RET                                ; Quay lai chay câu lênh năm sau lênh call.

TABLE:              DB 0FEH,0FDH,0FBH,0F7H   ; Khai bao cac dư liêu đăt trong bang, tên bang la TABLE.                            DB 0EFH,0DFH,0BFH,07FH  ; cac dư liêu lân lươt săp trong bang.                           DB 0FEH,0FDH,0FBH,0F7H   ; cac dư liêu lân lươt săp trong bang.                            DB 0EFH,0DFH,0BFH,07FH   ; cac dư liêu lân lươt săp trong bang.                                         DB 07FH,0BFH,0DFH,0EFH    ; cac dư liêu lân lươt săp trong bang.                            DB 0F7H,0FBH,0FDH,0FEH   ; cac dư liêu lân lươt săp trong bang.                            DB 07FH,0BFH,0DFH,0EFH   ; cac dư liêu lân lươt săp trong bang.                            DB 0F7H,0FBH,0FDH,0FEH   ; cac dư liêu lân lươt săp trong bang.                            DB 00H, 0FFH,00H, 0FFH       ; cac dư liêu lân lươt săp trong bang.                            DB 01H                                    ; Dư liêu dung soa sanh đê nhây (Xem câu lênh trên).  END                                                                   ; Dưng biên dich tai đây.

 

 

Phân tích cách viết các câu lệnh:

 

Trong bai nay, chung ta cho lây dư liêu liêt kê trong bang đê lam sang cac Led trên port 1. Trinh tư lam như sau:

 

Trươc hêt Ban chon cach lam sang tăt cho 8 Led trên port 1 vơi ma 0/1. Chung ta nhơ bit 0 lam Led sang va bit 1 se lam Led tăt. Thi du: Muôn Led sang nhây qua trai, chung ta se chon ma điêu khiên như sau:

 

11111110b   đôi ra dang ma hê 16 se la 0FEH.

 

11111101b   đôi ra dang ma hê 16 se la 0FDH.

Page 161: Thuc Hanh 89C51

11111011b   đôi ra dang ma hê 16 se la 0FBH.

11110111b   đôi ra dang ma hê 16 se la 0F7H.

11101111b   đôi ra dang ma hê 16 se la 0EFH.

 

11011111b   đôi ra dang ma hê 16 se la 0DFH.

10111111b   đôi ra dang ma hê 16 se la 0BFH.

01111111b   đôi ra dang ma hê 16 se la 07FH.

 

Ban cư liêt kê ra trong bang. Sau nay se dung lênh: movc a, @a + dptr. Đê lây cac ma nay cât vao a. Ý nghia cua câu lênh nay như sau:

 

Nêu khơi đâu a=0 thi no se lây ma dư liêu đâu trong bang va rôi cât vao thanh ghia.

Ban dung lênh inc dptr dê cho tri trong a tăng lên +1.

Vây khi dung câu lênh: movc a, @a +dptr, Ban se cho lây ma dư liêu tiêp theo...

 

Sau môi lân lây dư liêu tư bang ra, Ban dung câu lênh nhây theo phep so sanh: cjne a, #01h, loop1 đê xem đa lây đên ma dư liêu cuôi cung chưa, vi Ban đăt ma 01H ơ cuôi bang.

 

Ghi nhân: Dung cach viêt nay, Ban rât dê chon cac kiêu nhâp nhay cho cac Led trên port 1. Ban chi cân khai bao cac ma điêu khiên trong bang la đươc. ban co thê khai bao theo dang ma nhi phân cho dê nhin thây sư sang tăt cua cac Led.

 

 

Bai 7: Viêt chương trinh đê trên đen sô dung Led 7 đoan lân lươt xuât hiên cac con sô 0, 1, 2, 3...Thơi gian thay đôi sô la 0.2s.

 

Chu y: Dung loai đen sô Led 7 đoan co Cathode chung, vây Led sang vơi mưc 1.

Page 162: Thuc Hanh 89C51

 

Phân tích cách viết các câu lệnh:

 

Đê hiên cac sô thâp luc phân trên đen sô 7 đoan vơi chân cathode (K) ma cac sô se như sau:

“0”    hay   3 FH

“1”    hay   06H“2”    hay   5BH   

“3”    hay   4FH“4”    hay   66H         

“5”     hay   6DH

“6”    hay   7DH

Page 163: Thuc Hanh 89C51

“7”    hay   07H

“8”    hay   7FH

“9”    hay    6FH           “A”    hay    77H            “b”    hay    7CH             “C”    hay    39H         “d”    hay    5EH            “E”    hay   79H              “F”    hay   71H   

Do vây đê tao ra bang hiên thi cac sô thâp phân, chung ta se viêt như sau:

TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

 

ORG 0000h START:               MOV R1,#00H             ; Đăt tri khơi đâu 0 cho thanh ghi r1NEXT:                 MOV A,R1                    ; Cho chuyên nôi dung trong r1 vao a.                            MOV DPTR,#TABLE   ; Đăt đia chi cua bang vao thanh ghi con tro dptr.                            MOVC A,@A+DPTR   ; Lây cac ma dư liêu trong bang theo tri cua a va dư liêu cât vao a.                            MOV P2,A                    ; Xuât dư liêu trong a ra port 2 đê cho hiên sô.                            LCALL DELAY             ; Cho goi chương trinh lam trê, tên nhan la delay.                            INC R1                         ; Cho tăng tri trong r1 theo kiêu +1.                            CJNE R1,#10,NEXT    ; So sanh tri trong r1, xem băng 10 chưa? chưa, nhây vê NEXT.                            LJMP START               ; Lênh nhay không điêu kiên vê câu lênh co tên nhan la START.DELAY:              MOV R5,#20                  ; Viêt chương trinh lam trê. Ban xem lai cac phân thi du trên.D2:                      MOV R6,#20 D1:                      MOV R7,#248                             DJNZ R7,$                             DJNZ R6,D1                             DJNZ R5,D2                             RET TABLE:              DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH  ; Bang ma cho hiên cac sô thâp phân.

END                                                            ; Dưng biên dich.

 

 

Page 164: Thuc Hanh 89C51

Noi ro hơn vê loai đen hiên sô dung Led 7 đoan (Ban xem hinh):

 

Khi chân trên port 2 ơ mưc ap cao, thi Led tương ưng se phat sang. Vây chung ta co thê đăt ma đê trên đen Led 7 đoan lân lươt hiên ra cac con sô thâp phân.

 

 

Hinh cho thây cac ma tương ưng vơi cac con sô thâp phân hiên trên bang đen sô dung Led 7 đoan.

Page 165: Thuc Hanh 89C51

 

 

Bai 8: Viêt mach đêm sô hiên thi theo hê cơ 2 vơi 4 Led trên cac chân 1 (p1.0), 2 (p1.1), 3 (p1.2), 4 (p1.3). Môi lân nhân khoa điên SP1 trên chân 17 (p3.7) thi se tăng lên +1.

 

Page 166: Thuc Hanh 89C51

ORG   0000h START:                        MOV R1,#00H             ; Cho khơi đâu vơi tri 0 trong thanh ghi r1.                                                       MOV A,R1                   ; chuyên nôi dung trong r1 vao a.

                                     CPL A                         ; Lây bu 8 bit trong thanh ghi a.

                                     MOV P1,A                   ; Xuât nôi dung trong a ra cang port 1.

REL:                            JNB P3.7,REL             ; Chơ buôn phim nhân ơ chân p3.7.

                                     LCALL DELAY10MS   ; Goi chương trinh con lam trê 10ms.

                                     JNB P3.7,REL             ; Tranh anh hương cua rung phim.

                                     INC R1                        ; Cho tăng tri trong thanh ghi r1                 

                                     MOV A,R1                   ; Cho chuyên nôi dung trong r1 vao a.                                                      CPL A                          ; Lây bu 8 bit trong thanh ghi a                                                      MOV P1,A                    ; Xuât nôi dung trong a ra cang port 1.

                                     JNB P3.7,$                   ; Chơ buông phim SP1                                                      SJMP REL                    ; Nhây không điêu kiên vê dong lênh ơ

Page 167: Thuc Hanh 89C51

tên nhan la REL                DELAY10MS:             MOV R6,#20                   ; Viêt chương trinh lam trê 10ms

L1:                                MOV R7,#248                                      DJNZ R7,$                                      DJNZ R6,L1                                      RET

END                                                                   ; Dưng biên dich tai dong nay.

 

Phân tích cách viết các câu lệnh:

 

Nôi dung bai viêt la cư nhân môt lân phim SP1, mach đêm sô hê cơ 2 se nhây lên 1 sô (Ban xem hinh).

Ơ đây co 2 câu hoi, tôi hoi Ban:

(1) Vân đê rung phim la gi?

Page 168: Thuc Hanh 89C51

(2) Tai sao phai lây bu a rôi mơi cho xuât trên cang port1?

Vân đê rung phim la do phân tiêp xuc xâu, khi Ban nhân xuông, phim se bi rung, no ngăt mơ nhiêu lân va tao ra kêt qua sai. Do vây Ban phai viêt đoan chương trinh chơ 10ms rôi mơi xac lâp trang hai cua phim, điêu nay se tăng đô ôn đinh khi dung loai phim cơ khi. Cach viêt như sau:

REL:  JNB P3.7,REL            

; Khi ban nhân xuông, nêu phim tôt, no se ơ bit 0 va se ơ trang thai chơ buông phim. Nêu co rung phim, no se nhây xuông câu lênh dươi la cho goi chương trinh trê 10ms.

LCALL DELAY10MS   ; Goi chương trinh con lam trê 10ms.      

; Sau chương trinh trê no se quay lai đê lai kiêm tra phim vơi câu lênh: JNB P3.7,REL 

Nêu no ơ bit 0 thi quay lai REL va lai chơ buông phim. Chi khi no đa ơ Bit 1 thi mơi cho tăng tri trong r1.

                 .....  .             

JNB P3.7,$  

; Câu lênh nay la nhây tai chô khi Ban chưa bo phim nhân SP1 ra.            

 

Tra lơi câu hoi thư 2: Tai sao phai lây bu a (cpl a) rôi mơi cho xuât ra trên cang port1.

 

Ơ đây chung ta kich Led băng mưc ap thâp, do đo khi tăng 1, no se la:

 

00000000b    --> 00000001b  Vây phai lây bu cua no se la 11111110b Điêu nay se chi co Led ơ p1.0 sang ma thôi no ưng vơi 1 lân nhân phim.

 

Nêu 2 lân nhân phim kêt qua la:

 

Page 169: Thuc Hanh 89C51

00000010b   --> lây bu la 11111101b. Vây Led ơ p1.1 se sang. Ban cư ly luân tiêp tuc se thây mach  nay dung đêm hê cơ 2, kêt qua cho hiên thi trên cac Led cua port 1.

 

va nêu Ban thây thich, Ban co thê găn đu 8 Led trên port 1 va se thây hiên tương trang sô. Thanh ghi 8 bit chi đêm đươc 256 nhip se trang sô, quay vê 0 va băt đâu đêm tiêp...

 

 

 

 

Bai 9: Viêt chương trinh đê, mỗi lần nhấn khoa điên SP1 trên chân 17 (p3.7) thi Led D1  trên chân 1 (p1.0), nhấp nhay. Khi nhấn SP1 lần nưa đên Led D2 trên chân 2 nhấp nhay, nhấn SP1 lần nưa đên Led D3 trên chân 3 nhấp nhay va nhấn SP1 lần nưa thi đên Led D4 trên chân 4 nhấp nhay, va qui trinh tiêp tục lâp lai như trên.

 

Page 170: Thuc Hanh 89C51

 

 

ID                                 EQU 30H                   ; Lây thanh nhơ co đia chi 30h đinh nghia la thanh ID.K1                              BIT P3.7                    ; Chân p3.7 đinh nghia vơi tên la K1L1                                 BIT P1.0                    ; Chân p1.0 đinh nghia vơi tên la L1.L2                                 BIT P1.1                    ; Chân p1.1 đinh nghia vơi tên la L2.L3                                 BIT P1.2                    ; Chân p1.2 đinh nghia vơi tên la L3.L4                                 BIT P1.3                    ; Chân p1.3 đinh nghia vơi tên la L4.

ORG 0000h                                      MOV ID,#00H            ; Tri khơi đâu cua ID la 0.START:                        JB K1,REL                ; Chưa nhân phim thi nhây đên tên nhan REL.                                     LCALL DELAY10MS ; Goi chương trinh lam trê 10ms (tranh rung phim).                                     JB K1,REL                ; Chưa nhân phim thi nhây đên tên nhan REL.                                     INC ID                        ; Tăng tri trong ID.                                     MOV A,ID                   ; Cho chuyên nôi dung trong ID va thanh ghi a.                                     CJNE A,#04,REL       ; Cho so sanh a vơi #04 đê phat hiên sô lân nhân K1                                     MOV ID,#00H             ; Tra tri trong ID vê tri o. 

Page 171: Thuc Hanh 89C51

REL:                           JNB K1,$                      ; Chơ buông phim K1                                     MOV A,ID                     ; Cho chuyên nôi dung trong ID va thanh ghi a.                                      CJNE A,#00H,IS0        ; Cho so sanh a vơi #00 đê phat hiên sô lân nhân K1                                     CPL L1                        ; Lây bu L1 đê tăt/mơ Led D1                                     LCALL DELAY             ; Goi chương trinh lam trê vơi tên nhan la delay.                                     SJMP START              ; Nhây không điêu kiên vê tên nhan STARTIS0:                               CJNE A,#01H,IS1       ; Cho so sanh a vơi #01 đê phat hiên sô lân nhân K1                                     CPL L2                        ; Lây bu L2 đê tăt/mơ Led D2                                     LCALL DELAY             ; Goi chương trinh lam trê vơi tên nhan la delay.                                     SJMP START              ; Nhây không điêu kiên vê tên nhan STARTIS1:                               CJNE A,#02H,IS2        ; Cho so sanh a vơi #02 đê phat hiên sô lân nhân K1                                     CPL L3                         ; Lây bu L3 đê tăt/mơ Led D3                                     LCALL DELAY             ; Goi chương trinh lam trê vơi tên nhan la delay.                                     SJMP START              ; Nhây không điêu kiên vê tên nhan START                                        IS2:                               CJNE A,#03H,IS3        ; Cho so sanh a vơi #03 đê phat hiên sô lân nhân K1                                     CPL L4                         ; Lây bu L4 đê tăt/mơ Led D4                                     LCALL DELAY             ; Goi chương trinh lam trê vơi tên nhan la delay.                                     SJMP START               ; Nhây không điêu kiên vê tên nhan START IS3:                               LJMP START                ; Nhây không điêu kiên vê tên nhan START

DELAY10MS:              MOV R6,#20                  ; Chương trinh lam trêLOOP1:                        MOV R7,#248                                      DJNZ R7,$                                      DJNZ R6,LOOP1                                      RET DELAY:                        MOV R5,#20 LOOP2:                        LCALL DELAY10MS                                      DJNZ R5,LOOP2                                      RET  END                                                                      ; Dưng biên dich tai đây.

 

Phân tích cách viết các câu lệnh:

Page 172: Thuc Hanh 89C51

 

Ban hay chu y đên lênh so sanh co điêu kiên, dung đê phat hiên cac ma trung nhau hay khac nhau va tư đo đưa ra hương sư ly vân đê. Thi du:

 

CJNE A,#00H,IS0       

 

; Cho so sanh a vơi sô #00, nêu khac thi nhây đên tên nhan IS0, nêu đung thi xuông thi hanh dong lênh bên dươi.

 

CPL L1                        ; Lây bu L1 đê tăt/mơ Led D1.

LCALL DELAY             ; Goi chương trinh lam trê vơi tên nhan la delay.

SJMP START              ; Nhây không điêu kiên vê tên nhan START.

 

 

 

 

Bai 10: Viêt chương trinh đê mach đêm sô lân nhân phim SP1 trên chân 17 (p3.7), kêt qua hiên thi trên đen sô dung Led 7 đoan. Sô đêm băt đâu tư 00, 01, 02,...99.

 

Page 173: Thuc Hanh 89C51

 

Count                  EQU 30H                           ; Đăt tên thanh ghi 8 bit 30h la Count.SP1                     BIT P3.7                            ; Đăt tên bit p3.7 la SP1.ORG  0000h                                                  ; Băt đâu tư thanh ghi Reset 0000h START:               MOV Count,#00H               ; Đăt Count vê mưc khơi đâu la sô 0.NEXT:                MOV A,Count                       ; Cho chuyên nôi dung trong Count vao thanh ghi a.                            MOV B,#10                          ; Đăt sô 10 vao thanh ghi b.                           DIV AB                                  ; Cho sô trong a chia cho 10 (sô trong b).                            MOV DPTR,#TABLE          ; Đăt đia chi cua bang co tên la Table vao thanh ghi con tro.                           MOVC A,@A+DPTR            ; Lây sô tư bang theo tri co trong a va kêt qua giư trong a.                            MOV P1,A                            ; Cho xuât nôi dung trong a ra ơ port 1.                             MOV A,B                              ; Bây giơ cho chuyên nôi dung trong thanh ghi b vao a.                           MOVC A,@A+DPTR            ; Lai lây sô tư bang theo tri co trong a va kêt qua giư trong a.                                MOV P2,A                            ; Cho xuât nôi dung trong a ra ơ port 2. WT:                     JNB SP1,WT                        ; Chơ buông phim SP1. WAIT:                 JB SP1,WAIT                        ; Chơ nhân phim SP1.

Page 174: Thuc Hanh 89C51

                            LCALL DELY10MS               ; Goi chương trinh trê 10ms, tranh hiên tương rung phim.                           JB SP1,WAIT                         ; Kiêm tra buông phim                            INC Count                             ; Tăng nôi dung trong Count lên theo bươc +1.                            MOV A,Count                        ; Cho chuyên nôi dung trong Count vao thanh ghi a.                           CJNE A,#100,NEXT               ; So sanh tri trong a băng 100 chưa? Nêu chưa thi tiêp tuc.                             LJMP START                        ; Quay lai tu đâu.DELY10MS:       MOV R6,#20                           ; Lam trê 10ms đê tranh anh hương cua rung phim.D1:                      MOV R7,#248                             DJNZ R7,$                            DJNZ R6,D1                             RET TABLE:              DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH  ; Bang ma sô dung cho Led 7 đoan.END                                                                    ; Dưng biên dich tai dong nay.

 

 

Phân tích cách viết các câu lệnh:

 

Trong đoan chương trinh trên, chung ta co dung đên lênh lam phep toan chia: div ab

 

Ban lây sô co trong a chia cho b. Kêt qua sô chia co trong a va sô dư co trong b. Đê chia a cho 10, Ban phai nap vao thanh ghi b tri 10 vơi câu lênh: mov b, #10.

 

Ban chu y đên trinh lam trê 10ms, ơ đây dung đê tranh anh hương  đoc sai do rung phim, vi môi khi Ban nhân phim, trong khoang thơi gian ngăn phim bi rung va tao ra sư ghi nhân sai.

 

Dung câu lênh so sanh (cjne: Compare Jump điêu kiên Non-Zero) đê kiêm tra tri trong thanh ghi a. Đây la môt câu lênh rât thương dung.

 

 

Page 175: Thuc Hanh 89C51

Tam kêt:

 

Qua 10 bai thưc hanh cơ ban trên, Ban thây chung ta co thê dung cac câu lênh  (thuôc pham vi phân mêm) đê khai thac cac phân cưng môt cach dê dang, hiêu qua, đo la điêm đăc săc cua loai ic vi điêu khiên. Ngay nay loai ic nay co ưng dung rât rông rai va rât đa dang. Lân lươt trong chuyên muc "Trao đôi hoc tâp" cua cưa hang Phuc_Lan-Shop, tôi se giơi thiêu đên Ban nhiêu ưng dung cu thê khac nưa, nhât la cac ưng dung co thê tao ra san phâm va lam kinh tê đươc.Mong loat bai viêt nay đươc Ban hương ưng va giơi thiêu cho nhiêu Ban cung vao đoc. Đa ta!

 

 

Nhăn ban:

Cac linh kiên dung cho cac bai thưc hanh trên Ban đêu co thê tim thây ơ cưa hang Phuc Lan Shop. Ngoai ra  ơ đây Ban con đươc tham vân đê tim hiêu cac chu đê thưc tê hơn, co hiêu qua kinh tê vơi Ban hơn.

 

Qua phân trinh bay trên, chung tôi mong Ban đa hiêu cach dung loai ic vi điêu khiên đê dung no châp hanh cac mênh lênh do Ban soan ra, no se luôn trung thanh vơi cac câu lênh ma Ban đa "cây" vao bô nhơ cua no, nêu khi lam thưc hanh, Ban găp trơ ngai gi hay liên lac vơi chung tôi đê đươc gop y.

Page 176: Thuc Hanh 89C51

 

(1) Ban co thê liên lac trưc thoai vơi chung tôi, dung phân mêm miên phi Skype:

Skype name cua chung tôi la: wangqiyun1946,

 

(2) hay e-mail trưc tiêp vê Vương Khanh Hưng:

[email protected]

 

(3) hay, qua muc "Liên hê" cua trang Web Phuc-Lan-Shop:  

phuclanshop.com

  

Ngươi soan, giao viên day nghê: Vương Khanh Hưng.

Chu đê liên quan Linh kiên hoc, bai 2 Linh kiên hoc, bai 1 Tan man chuyên nghê chuyên đơi... Ưng dung song điên tư trong mach chuông cưa không dây Tư rap đen Led chiêu sang sân vươn dung nguôn pin măt trơi

   1 2 3 4 5 6 7 8 9 10  ...      Danh muc san phâm

Cam biên o Cam biên (sensor)

Module ưng dung Mach nap &Copy IC KIT phat triên Thu/Phat song RF San phâm tiên ich Linh kiên điên tư Phu Kiên Điên Tư

Hô trơ trưc tuyên Mr Vuong (Hô Trơ Ky Thuât) - 00000000

Page 177: Thuc Hanh 89C51

Đang online: 1474 Lươt truy câp : 157369 Trang chu|Download|Liên hê Copyright © 2010 phuclanshop.com . All rights reserved Designed by Matviet.net