Mạch điện cơ bản chạy ic AT89C51 - Lập trình ASM==

Embed Size (px)

Citation preview

Mach in c ban chay ic AT89C51.

Mun dung ic lp trinh AT89C51 iu khin cac day en, Ban hay rap cac phn mach c ban nh hinh trn: * Dung ng ngun 5V co n inh tt cp cho ic. Chn 20 cho ni masse, chn 40 cho ni vi ngun 5V. * Trn chn s 9 gn tu 10F va in tr 8.2K tao chc nng reset mi khi bo c cp in. * Trn chn 18, 19 gn thach anh inh tn, y dung thach anh 12MHz, vy chu ky lnh la 1s, gn 2 tu nho 33pF bu nhit n tn. * Trn chn 31 cho ln mc ap 5V khai bao la chi dung b nh trong. * Trn cang p0 dung thanh 8 in tr 10Kx8 cho treo ap n inh mc bit 1 i vi cang nay.

Vi cac mach in nh trn, ic lp trinh AT89C51 se sn sang chay cac cu lnh ma Ban a cho nap vao b nh EEPROM cua no. Cac bit cho xut nhp trn 4 cang, loai cang 8 bit, o la cang p0, p1, p2, p3. By gi cng vic con lai cua chung ta la vit cac chng trinh ngun dung iu khin cac day en mau lam vic thng vi ng ngun nha en 220V. Vit cac ch ng trinh ngun . Chung ta bit lam sang mt day en thi dung bit 0 va tt mt day en thi dung bit 1. Do vy chung ta co th chon bit trn cac ng ra bng cu lnh set bit (setb) hay clear bit (clr). Cung co th dung lnh move (mov) mi cu lnh cung luc tac ng vao 8 bit. Phn 1 : hay vit chng trinh ngun cp n gian trc quan. org start: call call mov tiep_tuc: call djnz call call jmp ; kieu_1: mov call mov call mov call mov call mov call p1, p1, p1, p1, p1, #00000000b delay #00011000b delay #00111100b delay #01111110b delay #11111111b delay r7, kieu_3 tiep_tuc kieu_4 kieu_2 start r7, 0000h kieu_1 kieu_2 #10

ret ; kieu_2: mov call mov call mov call mov call mov call mov call mov call mov call mov call mov ; kieu_3: mov mov call mov call mov call mov call mov call mov call p1, p1, p1, p1, p1, p1, call p1, #11111111b delay #11111110b delay #11111101b delay #11111011b delay #11110111b delay #11101111b delay #11011111b delay p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, #11111111b delay #01111111b delay #10111111b delay #11011111b delay #11101111b delay #11110111b delay #11111011b delay #11111101b delay #11111110b delay #11111111b ret

mov call mov call mov call ; kieu_4: mov call mov call mov call mov call mov call mov call mov call mov call mov call mov call mov call mov call mov call mov call mov call

p1, p1, p1,

#10111111b delay #01111111b delay #11111111b delay ret #01111111b delay #00111111b delay #00011111b delay #00001111b delay #00000111b delay #00000011b delay #00000001b delay #00000000b delay #00000001b delay #00000011b delay #00000111b delay #00001111b delay #00011111b delay #00111111b delay #01111111b delay

p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1,

mov call mov call call mov call mov call call mov call mov call call mov call mov call call mov call mov call mov call mov call mov call mov call mov call mov call call ;

p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1, p1,

#11111111b delay #00000000b delay delay #11111111b delay #00000000b delay delay #11111111b delay #00000000b delay delay #11111111b delay #00000000b delay delay #11111111b delay #00100010b delay #01001000b delay #00001001b delay #00100101b delay #01001010b delay #10010100b delay #01101001b delay delay ret

delay: v_r6: v_r5: mov mov mov djnz djnz djnz r7, r6, r5, r5, r6, r7, #10 #200 #250 $ v_r5 v_r6 ret

end Ghi nhn : Trong chng trinh ngun nay, chung ta chu yu dung cu lnh mov t 8 bit cho xut ra trn cang p1. ng vi bit 0 la day en sang va bit 1 la day en se tt. Dung oan chng trinh lam tr co nhip nhp nhay ro net. Cac kiu nhp nhay vit thanh cac chng trinh con cho t tn nhan la kiu 1, kiu 2, kiu 3, kiu 4..., va khi mun dung kiu nhp nhay nao thi dung cu lnh call goi ra. Qua cac cu lnh trn Ban thy dung ic lp trinh inh kiu nhp nhay cua cac day en cc ky n gian. Phai khng? oan chng trinh nay Ban co th vit trong trang vn ban cua trinh MIDE-51, vit xong, Ban t cho no mt cai tn vi ho la .asm, ri go phim F9 cho dich cac cu lnh ra dang ma vit dang h thp luc phn, cac ma lnh nay t trong file co ho la .hex. By gi Ban dung hp nap ROM, cho nap cac cu ma lnh nay vao nm trong b nh EEPROM cua ic AT89C51, th la xong chuyn, by gi cho gn ic AT89C51 vao bo thc hanh, Ban se thy cac Led chi thi trn bo nhp nhay theo ung cac cu lnh ma Ban a soan. Va nu gn cac day en vao bo Ban se thy ca mt tri sao nhp nhay ung theo y mun cua Ban. Thich khng? Hinh nay cho thy chng trinh ngun a c vit trong trang vn ban cua M-IDE for MSC51 va sau o cho dich ra file .hex cho nap cac cu ma lnh vao b nh trong cua ic AT89C51.

File .hex co ni dung nh sau: :100000001200151200347F0A12006EDFFB1200ABE3 :1000100012003480EB759000120175759018120172 :100020007575903C12017575907E1201757590FF83 :10003000120175227590FF12017575907F1201757E :100040007590BF1201757590DF1201757590EF12F2 :1000500001757590F71201757590FB120175759019 :10006000FD1201757590FE1201757590FF22759055 :10007000FF1201757590FE1201757590FD120175E4 :100080007590FB1201757590F71201757590EF125E :1000900001757590DF1201757590BF12017575902D :1000A0007F1201757590FF1201752275907F120104 :1000B0007575903F12017575901F12017575900F3F :1000C000120175759007120175759003120175750F :1000D0009001120175759000120175759001120161 :1000E0007575900312017575900712017575900F63 :1000F00012017575901F12017575903F120175758B :10010000907F1201757590FF1201757590001201B4 :10011000751201757590FF120175759000120175C9 :100120001201757590FF120175759000120175121C :1001300001757590FF12017575900012017512011D :10014000757590FF120175759022120175759048B2 :10015000120175759009120175759025120175755A :10016000904A12017575909412017575906912018B :1001700075120175227F0A7EC87DFADDFEDEFADF88 :02018000F62265 :00000001FF

Phn 2 : Dung bang tao ra cac dang nhp nhay cho cac day en. Trong oan chng trinh ngun nay chung ta tao dang nhp nhay cua cac day en bng cach t cac bit 0 vao cac oan ma tao ra trong bang, va dung cu lnh movc a, @a+dptr ly cac oan ma nay xut ra trn cac cang tuy chon tt m en theo thit k cua Ban. org start: 0000h

clr a ; xoa tri trong thanh ghi a mov dptr, #kieu_1 ; t bang kiu 1 vao thanh ghi con tro dptr mov r6, #20 ; chon s ln nhp nhay la 20 llai1: mov r7, #10 ; trong kiu chp nay co 10 mu ttuc1: call outp1 ; cho xut ma ly trong bang ra cang p1 djnz r7, ttuc1 ; do tri r7, lam lai 10 ln clr a ; cho xoa tri trong thanh ghi a djnz r6, llai1 ; do tri trong r6, lp lai 20 ln jmp start ; quay lai t u outp1: ; chng trinh cho xut ma trn cang p1 movc a, @a+dptr ; ly ma trong bang theo tri cua a, ma cho ct vao a mov p1, a ; xut ma ly c ra cang p1 tt m en theo bit call delay ; goi trinh lam chm inc a ; tng tri trong a ln +1 ly ma tip theo ret ; quay lai sau cu lnh call outp1 kieu_1: ; t tn bang la kiu 1, kiu nay co 10 mu db 11111111b db 11111110b db 11111101b db 11111011b db 11110111b db 11101111b db 11011111b db 10111111b db 01111111b db 11111111b delay: ; chng trinh lam chm mov r5, #10 v_r4: mov r4, #50 v_r3: mov r3, #200 djnz r3, $ djnz r4, v_r3 djnz r5, v_r4 ret end ; dng bin dich tai dong nay

Phat trin thanh mt ch ng trinh ngun dai h n . org start: ; 0000h t tn nhan cho lnh nhy clr a ; xoa sach thanh ghi a mov dptr, #kieu_1 ; t bang nhay kiu 1 vao thanh ghi ia chi mov r6, #20 ; inh s ln lp lai la 20 llai1: mov r7, #10 ; s ma trong bang kiu 1 la 10 ttuc1: call outp1 ; cho xut ma tt m en trn cang p1 djnz r7, ttuc1 ; do tri trong r7, lp lai 10 ln clr a ; tra tri thanh ghi a v 0 djnz r6, llai1 ; do tri trong r6, cho nhay kiu 1 20 ln ; vit tng t nh trn, cho xut ma trn p2 clr a mov dptr, #kieu_2 mov r6, #20 llai2: mov r7, #9 ttuc2: call outp2 djnz r7, ttuc2 clr a djnz r6, llai2 ; vit tng t nh trn, cho xut ma trn p0, p1, p2, p3 clr a mov dptr, #kieu_4 mov r6, #10 llai3: mov r7, #11 ttuc3: call outp0p1p2p3 djnz r7, ttuc3 clr a djnz r6, llai3 ; vit tng t nh trn, cho xut ma trn p0 clr a mov dptr, #kieu_3 mov r6, #5 llai4: mov r7, #10 ttuc4: call outp0 djnz r7, ttuc4 clr a djnz r6, llai4

jmp ; trinh cho outp0: movc mov call inc ret ; trinh cho outp1: movc mov call inc ret ; trinh cho outp2: movc mov call inc ret ; trinh cho outp3: movc mov call inc ret ; trinh cho xut outp0p1p2p3: mov mov mov mov call inc ret

xut a, p0,

ma

trn

start p0 @a+dptr a delay a

xut a, p1,

ma

trn

p1 @a+dptr a delay a

xut a, p2,

ma

trn

p2 @a+dptr a delay a

xut a, p3,

ma

trn

p3 @a+dptr a delay a

ma movc

trn

4 p0, p1, p2, p3,

cang a,

p0,

p1,

p2,

p3

@a+dptr a a a a delay a

; tao cac bang kieu_1: db db db db db db db db db 01111111b db kieu_2: db 11111111b db 01111110b db db db db db db 01111110b db kieu_3: db db db db db db db db db 00000000b db kieu_4: db db 00000000b db 00011000b db 00111100b db 01111110b

ma,

;

inh

hinh

cac 10

kiu

nhp

nhay mau 11111111b 11111110b 11111101b 11111011b 11110111b 11101111b 11011111b 10111111b 11111111b mau

;9

10111101b 11011011b 11100111b 11011011b 10111101b ; 10 11111111b mau 11111111b 11111110b 11111100b 11111000b 11110000b 11100000b 11000000b 10000000b 11111111b mau 11111111b

;

11

db db 00000000b db db db db delay: mov v_r4: mov v_r3: mov djnz djnz djnz ret end

11111111b 10000001b 11000011b 11100111b 11111111b r5, r4, r3, r3, r4, r5, #10 #50 #200 $ v_r3 v_r4

Trong cach vit nay, Ban d dang inh hinh cho cac kiu nhp nhay cua cac day en, trc ht hay tao bang ma, mi ma 8 bit, sau o inh kiu nhp nhay, mun day en nao sang thi t bit 0, mun tt thi t bit 1. Sau cung m xem trong bang co bao nhiu mu ma khai bao s ln ly ma cho xut ra trn cac cang. Sau khi a co chng trinh ngun, cho dich ra cac dong ma h thp luc phn, nap cac dong ma nay vao nm trong b nh ROM cua cac ic lp trinh la xong chuyn. n gian qua phai khng?

Tam kt Qua bai vit trn, Ban thy chi vi mt kiu mach in khng qua phc tap, chung ta a bit cach dung cac ic lp trinh iu khin nhiu day en nhp nhay treo trong cac cng vin ln, hay trang tri cho cac nha hang ngoai tri. Ti nghi cng vic nay cung mang n nhiu thu nhp cho cac Ban tre thich nghin cu ng dung cua mn in t. Khi co dip chung ta se tip tuc m rng tai nay. Chao By gi chung ta se chuyn qua mt bai mi. Mong Ban lun thich vao trang web nha phuclanshop.com cung nhau trao i, hoc tp va cu tin b.