Mạch AT89C51 dùng 8 phím nhấn đơn lập - ASM

Embed Size (px)

Citation preview

* Mach AT89C51 dung 8 phim nhn n lp

Khi dung s mach in nay, trang thai bit 1 trn cac chn cua cang p1 c xem nh khng co nhn phim, khi co nhn phim thi chn co phim c nhn se xut hin bit 0. Khi mt trong 8 chn cua cang p1 co chn bit 0, chung ta bit la co nhn phim, nh vy chung ta se vit cu lnh tim xem trn cang p1 co xut hin bit 0 hay khng? Nu khng co bit 0 trn p1 thi tip tuc do tim, khi co chn co bit 0 thi hiu la a co phim bi nhn xung, luc o chuyn qua tim xem phim nao a c nhn va ri tip theo la cho chay chng trinh tng ng vi phim a c nhn. Sau y la mt oan chng trinh dung do xem co phim nhn khng? loop: ; t tn nhan cho lnh nhy call do_key ; cho goi chng trinh do phim, tn nhan do_key

jnb f0, ttuc ; nhy theo bit cua f0, f0=0, tip tuc do phim call tim_phim ; cho goi trinh xac inh phim nao c nhn ttuc: ; tn nhan cho lnh nhy jmp loop ; nhy v tn nhan loop, bt u lai cng vic do phim .... do_key: ; tn nhan dung cho lnh nhy clr f0 ; cho xoa bit f0, bit kim tra co phim nhn hay khng? mov a, p1 ; chuyn trang thai bit trn p1 vao thanh ghi a orl a, #00000000b ; ly logic OR tri trong a vi 00000000b, tim bit 0 trn p1 cpl a ; ao tri trong thanh ghi a jz key_ret ; nu tri trong a la 0, nhy n key_ret, khng co phim nhn call del ; goi chng trinh tr mov a, p1 ; lai chuyn trang thai cua p1 vao a, kim tra ln na orl a, #00000000b ; lai cho ly logic OR tri trong a vi 00000000b cpl a ; ao tri trong a do xem co phim nhn khng jz key_ret ; nhy n tn nhan key_ret nu khng co phim nao c nhn setb f0 ; nu co phim nhn, cho set bit kim tra f0 mov b,a ; cho chuyn tri trong a cho ct vao b dung xac inh phim nao c nhn key_ret: ; tn nhan dung cho lnh nhy mov a, p1 ; cho chuyn trang thai cang p1 vao a orl a, #00000000b ; ly logic OR tri trong a vi 00000000b cpl a ; ao tri trong thanh ghi a jz key_ret1 ; nhy n tn nhan key_ret1, nu thanh a bng 0 jmp key_ret ; nhy n tn nhan key_ret, tip tuc kim tra p1 key_ret1: ret ; quay lai sau lnh: call do_key tim_phim: ; chng trinh xac inh phim nao a c nhn .....

Hinh ng trn y cho thy cach vit cac cu lnh dung do xem co phim nhn hay khng?

* Mach AT89C51 dung 16 phim gn trn ma trn 4x4

Hinh ve cho thy, 16 phim nhn gn trn ma trn 4x4. y 4 hang cho ni vao p2.0, p2.1, p2.2, p2.3, chung ta goi 4 hang nay la nga ra OUTPUT va 4 ct cho ni vao p2.4, p2.5, p2.6, p2.7 va goi 4 ct la nga vao INPUT. Co th thy: Trn cac cang p1 cho gn 8 Led va trn cang p3 chung ta cung cho gn 8 Led. T s mach in nay, chung ta se lp trinh dung cac phim trn bang ma trn iu khin cac Led.

Cach vit chng trinh vn hanh cac phim rap theo kiu ma trn 4x4: Trc ht ngi ta t cac hang lam nga ra OUTPUT va t cac ct lam nga vao INPUT. Khi u cho cac nga vao bit 1 va cho cac nga ra bit 0, va chay trinh do phim, xem co phim nao a c nhn xung khng? * Khi a xac nhn la a co nhn phim ri thi cho chay chng trinh tim phim nhn. Luc nay mi ln chi cho mt chn INPUT bit 0, khi u cho ct 1 bit 0 ri tim xem trong 4 hang, xem trn nga ra OUTPUT nao ang bit 0, lam vy se xac inh c mt trong 4 phim cua ct 1. * Khi chi cho ct 2 bit 0, ri tim xem hang nao ang bit 0, lam vy se xac inh c mt trong 4 phim cua ct 2. * Khi chi cho ct 3 bit 0, ri tim xem hang nao ang bit 0, lam vy se xac inh c mt trong 4 phim cua ct 3. * Khi chi cho ct 4 bit 0, ri tim xem hang nao ang bit 0, lam vy se xac inh c mt trong 4 phim cua ct 4.

Sau y la mt chng trinh mu: org 0000b start: ; t tn nhan dung cho lnh nhy clr p2.0 ; cho Led chi thi trn chn p2.0 sang ; vao chng trinh do phim do_phim: ; oan chng trinh dung do phim mov p1, #00001111b ; t 4 chn Input ln 1 va 4 chn Output xung 0 mov a, p1 ; cho chuyn hin trang cua cang p1 vao a orl a, #11110000b ; ly logic OR a vi tri 11110000b cpl a ; ao cac tri trong thanh ghi a jz do_phim ; nu a bng 0 thi tip tuc do phim, nu a khac

0 thi tim phim nhn jmp tim_phim ; nhy n chng trinh tim phim nhn ; vao chng trinh tim phin nhn tim_phim: ; oan chng trinh tim phin nhn mov a, p1 ; chuyn hin trang cua cang p1 vao thanh ghi a cjne a, #11101110b, tt1 ; chi cho chn p1.0 la 0, tim phim trn p1.4 jmp chtrinh1 ; nu ung phim cho chay chng trinh 1 tt1: ; t tn nhan dung cho lnh nhy cjne a, #11011110b, tt2 ; chi cho chn p1.0 la 0, tim phim trn p1.5 jmp chtrinh2 tt2: ; t tn nhan dung cho lnh nhy cjne a, #10111110b, tt3 ; chi cho chn p1.0 la 0, tim phim trn p1.6 jmp chtrinh3 tt3: ; t tn nhan dung cho lnh nhy cjne a, #01111110b, tt4 ; chi cho chn p1.0 la 0, tim phim trn p1.7 jmp chtrinh4 ; tt4: ; t tn nhan dung cho lnh nhy cjne a, #11101101b, tt5 ; chi cho chn p1.1 la 0, tim phim trn p1.4 jmp chtrinh5 tt5: ; t tn nhan dung cho lnh nhy cjne a, #11011101b, tt6 ; chi cho chn p1.1 la 0, tim phim trn p1.5 jmp chtrinh6 tt6: ; t tn nhan dung cho lnh nhy cjne a, #10111101b, tt7 ; chi cho chn p1.1 la 0, tim phim trn p1.6 jmp chtrinh7 tt7: ; t tn nhan dung cho lnh nhy cjne a, #01111101b, tt8 ; chi cho chn p1.1 la 0, tim phim trn p1.7 jmp chtrinh8 ; tt8: ; t tn nhan dung cho lnh nhy cjne a, #11101011b, tt9 ; chi cho chn p1.2 la 0, tim phim trn p1.4

jmp chtrinh9 tt9: ; t tn nhan dung cho lnh nhy cjne a, #11011011b, tt10 ; chi cho chn p1.2 la 0, tim phim trn p1.5 jmp chtrinh10 tt10: ; t tn nhan dung cho lnh nhy cjne a, #10111011b, tt11 ; chi cho chn p1.2 la 0, tim phim trn p1.6 jmp chtrinh11 tt11: ; t tn nhan dung cho lnh nhy cjne a, #01111011b, tt12 ; chi cho chn p1.2 la 0, tim phim trn p1.7 jmp chtrinh12 ; tt12: ; t tn nhan dung cho lnh nhy cjne a, #11100111b, tt13 ; chi cho chn p1.3 la 0, tim phim trn p1.4 jmp chtrinh13 tt13: ; t tn nhan dung cho lnh nhy cjne a, #11010111b, tt14 ; chi cho chn p1.3 la 0, tim phim trn p1.5 jmp chtrinh14 tt14: ; t tn nhan dung cho lnh nhy cjne a, #10110111b, tt15 ; chi cho chn p1.3 la 0, tim phim trn p1.6 jmp chtrinh15 tt15: ; t tn nhan dung cho lnh nhy cjne a, #01110111b, start ; chi cho chn p1.3 la 0, tim phim trn p1.7 jmp chtrinh16 ; Cac chng trinh ng vi cac phim nhn chtrinh1: chtrinh2: chtrinh3: chtrinh4: chtrinh5: chtrinh6: chtrinh7: chtrinh8: chtrinh9: chtrinh10:

chtrinh11: chtrinh12: chtrinh13: chtrinh14: chtrinh15: chtrinh16: end

Cac thi du cho thy cach phim trong iu khin 1. Cach dung phim kiu n lpMt thi du v cach dung cac phim nhn n lp

dung

ban

Phn tich mach: S cho thy, chung ta cp in cho ic lp trinh AT89C51 vi chn 20 cho ni masse va chn 40 cho ni vao ng ngun 5V. Trn chn 9 gn tu C1 (10uF) va in tr R1 (10K) dung tao tinh nng reset mi khi mach c cp ngun. Trn chn 18, 19 gn thach anh inh tn, chung ta dung thach anh 12MHz. mach chi lam vic vi b nh trong chung ta cho chn 31 ni vao ng ngun 5V. lam thc hanh vi cac phim nhn n lp, chung ta dung 4 phim nhn, gn trn cac chn p1.2, p1.3, p1.4, p1.5 cua cang p1 va gn 8 Led trn cang p3 hin thi tac dung cua cac phim nhn.

y chung ta se tao tinh nng cho 4 phim nhn nh sau: phim S1 cho m phim, phim S4 cho tt phim, phim S2 cho 8 Led trn p3 tun t di qua phai va phim S3 cho 8 Led trn p3 di qua trai. Tom lai cng dung cua cac phim nh sau: * Nhn nut S1 vao mode khi ng, cho m phim. * Nhn nut S2, 8 Led trn cang p3 di bit qua phai * Nht nut S3, 8 Led trn cang p3 di bit qua trai * Nhn nut S4 vao mode tt phim Chng trinh ngun:

UpDown EQU 00H ; t tn bit 00h la updown StartEnd EQU 01H ; t tn bit 01h la startend LAMPCODE EQU 21H ; t tn thanh ghi 21h la lampcode ORG 0000H ; ia chi thanh ghi khi u JMP MAIN ; nhy n tn nhan ORG 30H ; vung ia chi bn ngoai chc nng ngt MAIN: ; t tn nhan dung cho lnh nhy MOV SP,#5FH ; chon ia chi lam ngn xp MOV P3,#0FFH ; t tri 11111111b vao cang p3 tt 8 led ; iu kin khi u CLR UpDown ; t bit 0 vao bit updown CLR StartEnd ; t bit 0 vao bit startend MOV LAMPCODE,#0FEH ; chuyn tri 11111110b vao lampcode LOOP: ; t tn nhan dung cho lnh nhy CALL KEY ; goi chng trinh do phim, tn nhan key JNB F0,LNEXT ; cho nhy theo bit f0 CALL KEYPROC ; goi chng trinh x ly phim LNEXT: ; t tn nhan dung cho lnh nhy CALL LAMP ; goi chng trinh iu khin 8 Led trn cang p3 JMP LOOP ; quay lai tn nhan loop DELAY: ; chng trinh tao tr

MOV R7,#100 ; t tri 100 vao thanh ghi r7 D1: ; t tn nhan dung cho lnh nhy MOV R6,#100 ; t tri 100 vao thanh ghi r6 DJNZ R6,$ ; nhy tai ch, ch tri trong r6 bng 0 DJNZ R7,D1 ; giam tri trong r7 theo bc -1, r7=0?, inh hng nhy RET ; qua lai sau lnh call delay ;---------------------------------------KEYPROC: ; chng trinh x ly phim MOV A,B ; chuyn tri trong b vao thanh ghi a JB ACC.2,KeyStart ; xet bit acc.2 inh hng nhy JB ACC.3,KeyOver ; xet bit acc.3 inh hng nhy JB ACC.4,KeyUp ; xet bit acc.4 inh hng nhy JB ACC.5,KeyDown ; xet bit acc.5 inh hng nhy JMP KEY_RET ; nhy v tn nhan key_ret KeyStart: ; trinh vao mode khi ng SETB StartEnd ; t bit startend ln 1, cho khi ng JMP KEY_RET ; nhy n tn nhan key_ret KeyOver: ; trinh cho tt, kt thuc CLR StartEnd ; t bit startend xung 0, kt thuc JMP KEY_RET ; nhy n tn nhan key_ret KeyUp: ; trinh cho 8 Led di qua phai SETB UpDown ; t bit updown ln 1, di qua phai JMP KEY_RET ; nhy n tn nhan key_ret KeyDown: ; trinh cho 8 Led di qua trai CLR UpDown ; t bit updown xung 0, di qua trai KEY_RET: ; t tn nhan dung cho lnh nhy RET ; quay lai sau lnh call keyproc KEY: ; t tn nhan dung cho lnh nhy, trinh dung do phim CLR F0 ; xoa bit f0 ORL P1,#00111100B ; ly logic OR tri 00111100b va cang p1 MOV A,P1 ; chuyn tri hin co cua p1 vao thanh ghi a ORL A,#11000011B ; ly logic OR a va 11000011b, xet trang thai 4 phim CPL A ; ly bu a, ao 8 bit trong thanh ghi a JZ K_RET ; xet tri trong thanh a, co bng 0 khng? nhy

CALL DELAY ; cho goi chng trinh tr OR P1,#00111100B ; lai ly logia OR tri 00111100b cho cang p1 MOV A,P1 ; lai chuyn tri hin co cua cang p1 vao thanh ghi a ORL A,#11000011B ; cho ly logic OR tri trong a va tri 11000011b CPL A ; lai cho bu a, ao 8 bit trong thanh ghi a JZ K_RET ; lai xet tri trong thanh a, co bng 0? nhy MOV B,A ; chuyn tri trong a vao thanh b SETB F0 ; t bit kim tra f0 ln 1, bao a co phim nhn K_RET: ; t tn nhan dung cho lnh nhy ORL P1,#00111100B ; Ly logic OR tri hin co trong p1 va 00111100b MOV A,P1 ; chuyn tri hin co trn cang p1 vao thanh ghi a ORL A,#11000011B ; ly logic OR tri trong a va 11000011b CPL A ; ly bu a, ao 8 bit trong thanh ghi a JZ K_RET1 ; xet tri trong a co bng 0 khng? nhy JMP K_RET ; nhy n tn nhan k_ret K_RET1: ; t tn nhan dung cho lnh nhy RET ; quay lai sau lnh call key D500MS: ; chng trinh lam tr PUSH PSW ; tam cho ct tri trong thanh ghi psw vao ngn xp SETB RS0 ; t tri rs0 trong thanh ghi trang thai psw ln 1 MOV R7,#200 ; chuyn tri 200 vao thanh ghi r7 D51: ; t tn nhan dung cho lnh nhy MOV R6,#250 ; t tri 250 vao thanh ghi r6 D52: ; t tn nhan dung cho lnh nhy NOP ; dong khng tac vu NOP ; dong khng tac vu NOP ; dong khng tac vu NOP ; dong khng tac vu DJNZ R6,D52 ; giam tri trong r6 theo bc -1, r6=0?, chon hng nhy DJNZ R7,D51 ; giam tri trong r7 theo bc -1, r7=0?, chon hng nhy POP PSW ; ly lai tri trc o cho thanh ghi psw RET ; quay lai sau lnh goi call d500ms

LAMP: ; chng trinh iu khin 8 Led trn cang p3 JB StartEnd,LampStart ; chon hng nhy theo bit startend MOV P3,#0FFH ; t tri 11111111b vao cang p3, tt ht 8 Led JMP LAMPRET ; nhy v tn nhan lampret LampStart: ; t tn nhan cho lnh nhy, trinh di 8 bit trong a qua trai JB UpDown,LAMPUP ; nhy theo bit updown MOV A,LAMPCODE ; chuyn tri trong lampcode cho thanh ghi RL A ; cho quay vong 8 bit trong thanh ghi aqua hng trai MOV LAMPCODE,A ; chuyn tri trong a vao lampcode MOV P3,A ; cho xut tri trong a ra cang p3 CALL D500MS ; goi chng trinh lam chm d500ms JMP LAMPRET ; nhy v tn nhan lampret LAMPUP: ; t tn nhan cho lnh nhy, trinh cho di 8 bit qua phai MOV A,LAMPCODE ; chuyn tri trong lampcode vao thanh ghi a RR A ; cho quay vong 8 bit trong a qua hng phai MOV LAMPCODE,A ; chuyn tri trong a vao lampcode MOV P3,A ; xut tri trong a ra cang p3 CALL D500MS ; cho goi chng trinh tr d500ms LAMPRET: ; t tn nhan cho lnh nhy RET ; quay lai sau lnh call END ; dng bin dich tai dong nay Phn tich cach vit cac cu lnh chng trinh ngun trn:

Tim hiu thm mt cach vit khac. Ban xem thi du sau: Trong thi du nay, chung ta gn 4 phim trn cang p3 va dung cac phim nay iu khin trang thai nhp nhay cua 8 Led t trn cang p1.

Chng trinh ngun vit nh sau: ORG 0000H ; Khi u t thanh ghi 0000h LJMP START ; nhy n tn nhan start ; cac thanh ghi chuyn dung cho chc nng ngt ORG 0003H ; vi tri chay ngt INT0 RETI ORG 000BH ; vi tri chay ngt TF0 RETI ORG 0013H ; vi tri chay ngt INT1 RETI ORG 001BH ; vi tri chay ngt TF1 RETI ORG 0023H ; vi tri chay ngt RI var TI RETI

; CLEAR: ;

t

tn

nhan

cho

lnh

; START: ; n tn nhan cho khi u CALL CLEAR ; goi chng trinh clear ; trinh do phim STAR1: ; t tn nhan dung cho lnh nhy MOV P3,#0FFH ; t tri 11111111b vao p3, inh trang thai u JNB P3.4,FUN0 ; do bit 0 trn chn p3.4, nhy JNB P3.5,FUN1 ; do bit 0 trn chn p3.5 nhy JNB P3.2,FUN2 ; do bit 0 trn chn p3.2 nhy JNB P3.3,FUN3 ; do bit 0 trn chn p3.3 nhy JNB F0,STAR1 ; nhy theo bit f0, f0=1, co nhn phim RET ; quay lai sau lnh call start ; FUN0: ; tn nhan dung cho phim p3.4 CALL DL10MS ; goi chng trinh tr 10ms, tranh rung phim JB P3.4,STAR1 ; kim tra lai phim nhn trn p3.4 WAITL0: ; trinh ch bo phim JNB P3.4,WAITL0 ; ch bo phim SETB F0 ; t bit kim tra f0 ln 1 FUN01: ; t tn nhan dung cho lnh nhy CALL FUN00 ; cho goi chng trinh fun00 CALL STAR1 ; quay lai tn nhan star1 JMP FUN01 ; nhy v tn nhan fun01 ; Vit tng dang nh trn FUN1: CALL DL10MS ; JB P3.5,STAR1 WAITL1: JNB P3.5,WAITL1 ; SETB F0 FUN10: CALL FUN11 CALL STAR1 JMP FUN10 ; Vit tng dang nh trn FUN2: CALL DL10MS ;

nhy RET

JB WAITL2: SETB FUN20: CALL

P3.2,STAR1 JNB P3.2,WAITL2 ; F0 FUN22 STAR1 FUN20 trn

; vit tng dang nh FUN3: CALL DL10MS ; goi tr 10ms tranh anh hng cua rung phim JB P3.3,STAR1 ; kim tra ln na phim trn p3.3 WAITL3: ; tn nhan JNB P3.3,WAITL3 ; ch bo phim ra CLR F0 ; xoa bit f0, v trang thai ch nhn phim MOV P1,#0FFH ; t tri 11111111b tt 8 Led trn p1 JMP STAR1 ; quay lai tn nhan star1 ; trinh FUN00: FUN000: cho Led MOV MOV CALL JNB RL JMP cho cac MOV MOV CALL JZ RL ANL cac 4 Led nhp nhay xen Led sang sang lan ln A,#0FEH P1,A DL05S ACC.7,OUT A FUN000 nhy A,#0FEH P1,A DL05S OUT A A,P1 ke

CALL JMP

OUT: RET ; trinh FUN11: FUN111:

JMP FUN111 ; trinh cho

FUN22:

RET ; chng trinh lam tr DL512: LOOP1: DL10MS: LOOP2:

MOV MOV CALL CPL MOV CALL

A,#0AAH P1,A DL30S A P1,A DL30S

MOV DJNZ MOV CALL DJNZ MOV CALL DJNZ MOV CALL DJNZ

R2,#0FFH R2,LOOP1 RET R3,#14H DL512 R3,LOOP2 RET R4,#0AH DL10MS R4,LOOP3 RET R5,#03H DL05S R5,LOOP4

DL05S: LOOP3:

DL30S: LOOP4: RET end

Mt thi du khac na: Dung 8 phim trn cang 1 iu khin cac ng thai cua mt motor DC

Trc ht tim hiu nguyn ly vn hanh cua cac thanh phn dung trong mach in: 1. Tim hiu ic iu khin motor:

IC BA6209 co 10 chn, cng dung cua cac chn nh sau: Chn 1 cho ni masse, chn 7 cho ni ngun VCC1, chn 8 ly ngun VCC2 qua mt in tr 10 ohm. Mc ap chun inh tc quay chon theo diode Zener trn chn s 4. Chn s 3 va s 9 mc tu loc va chn s 2 va chn s 10 cp in cho motor. Ngang motor gn mt tu loc nhiu n phat ra t motor. Tin hiu iu khin a vao trn chn 5 va chn 6. Ban logic cho thy: * Khi chn 5 Fin va chn 6 Rin u mc ap thp, thi mc ap nga ra trn chn 2, 10 u mc ap thp: Motor khng quay. * Khi chn Fin mc ap cao, chn Rin mc ap thp, thi chn 2 mc cao va chn 10 mc ap thp: Motor quay thun.

* Khi chn Fin mc ap thp, chn Rin mc ap cao, thi chn 2 mc thp va chn 10 mc ap cao: Motor quay ngc. * Khi chn 5 Fin va chn 6 Rin u mc ap cao, thi mc ap nga ra trn chn 2, 10 u mc ap thp: Motor khng quay. Phn tich trn cho thy, chung ta co th dung 3 chn 4, 5, 6 cua ic lp trinh iu khin cac trang thai quay cua motor 2. Tim hiu nguyn ly lam vic cua motor DC. Motor DC gm co: * Phn tinh la mt nam chm vinh cu, t c inh, mt bn la cc nam thi bn kia la cc bc. * Phn quay gm co cac cun dy ng qun trn cac t cc. Trn truc quay ngi ta t mt c ly in bng cac vong ng, dung chi than e ln c ly in cp in cho cac cun dy ng t trn phn quay, cun dy co in se tr thanh cac nam chm in. Do tng tac, cac nam chm ( y la nam chm vinh cu cua phn tinh va nam chm in trn phn quay) t gn nhau, khi co tn cc ging nhau se y nhau va khac tn thi se hut nhau, iu nay se lam quay phn ng, khi phn ng quay no ng thi lam quay c ly in, iu nay se lam ao chiu dong chay qua cac cun dy ng, nh vy cac nam chm se lai i cc tinh, do vy cun dy se lun phai trang thai quay.

Chung ta bit, khi c cp in thi motor DC se quay, mc ap cp cho motor cang cao thi motor quay cang nhanh. Va nu Ban dung lc lam quay mt motor DC thi trn 2 cc cua motor DC se phat ra in ap ng, nu motor bi keo quay cang nhanh thi mc in ap ng phat ra cang cao. iu nay cho thy motor DC khi c cp in no se quay, va khi bi keo quay no se phat ra in. Dung lut ohm, chung ta co th vit h thc sau: dong in I = (in ap cung cp) - (in ap ng) / in tr R cua cun ng Trong o:

(in ap ng) la mt ham cua tc quay. Khi motor quay cang chm, in ap ng phat ra cang yu va ngc lai. (lc quay) la mt ham cua dong in I. Khi dong in cang ln thi lc keo cang manh. iu nay cho thy: Khi bi tai nng, tc quay cua motor se co khuynh hng bi chm lai, tc quay giam se lam cho in ap ng giam, h thc trn cho thy dong in I se tng ln, dong in I tng se gia tng kha nng mang tai cua motor DC, nh phan ng nay, ma motor DC co kha nng mang tai rt tt. Khi dung motor DC chung ta chu y cac im sau: * in ap DC cp cho motor DC cang cao, motor quay cang nhanh. * ao chiu in ap cp in, chiu quay cua motor se i chiu quay. * in tr phn ng cang nho, dong chay qua motor DC cang ln, lc quay se cang manh. * Khi motor DC quay, t hai chi quet in se lun phat ra nhiu n rt ln, phai dung tu va cun dy loc nhiu. * Khng motor bi ket truc khng quay, iu nay se khin cho dong chay qua motor se rt ln, motor co th bi chay. 3. Phn tich s iu khin cac ng thai cua motor dung ic AT89C51 Mach in cho thy:

8 nut nhn dung iu khin 2 motor DC gn trn xe u cho kt ni trn cang p1. Motor DC gn bn phai qua ic BA6209, chn p3.0 iu khin chiu quay thun, chn p3.1 iu khin chiu quay nghich va chn p3.2 iu khin tc quay. Motor DC gn bn trai qua ic BA6209, vi chn p3.3 iu khin chiu quay thun, chn p3.4 iu khin chiu quay ngc va chn p3.5 iu khin tc quay.

4. Vit chng trinh ngun theo yu cu trn: org 0000h qua0: jb p1.0, qua1 call del ; goi trinh lam tr, tranh anh hng rung phim jnb p1.0, $ jmp chay_toi ; Cho chay ti, 2 motor quay cung chiu qua1: jb p1.1, qua2

jnb p1.1, jmp chay_lui ; chay lui, 2 motor cho quay ngc chiu qua2: jb p1.2, qua3

call

del $

del jnb p1.2, $ jmp queo_trai ; queo trai, motor trai dng, motor phai quay ti qua3: jb p1.3, qua4

call

del jnb p1.3, $ jmp queo_phai ; queo phai, motor phai dng va motor trai quay ti qua4: jb p1.4, qua5

call

jnb p1.4, jmp dung ; dng, ca 2 motor u dng, khng quay qua5: jb p1.5, qua6

call

del $

jnb p1.5, jmp cham_lai ; chm lai, 2 motor quay vi tc chm

call

del $

qua6: jb p1.6, qua7

del jnb p1.6, $ jmp quay_trai ; quay vong qua trai, motor trai quay ngc, motor phai quay thun qua7: jb p1.7, qua0

call

del jnb p1.7, $ jmp quay_phai ; quay vong qua phai, motor trai quay thun, motor phai quay ngc chay_toi: ; trinh cho chay setb clr setb setb clr setb jmp qua0 ; tr lai chng trinh que phim cho clr setb setb clr setb setb jmp qua0 ; tr lai trinh quet phim setb clr setb setb clr clr jmp qua0 ; tr lai trinh quet phim queo chay ti p3.0 p3.1 p3.2 p3.3 p3.4 p3.5 lui p3.0 p3.1 p3.2 p3.3 p3.4 p3.5 trai p3.0 p3.1 p3.2 p3.3 p3.4 p3.5

call

chay_lui: ; trinh

queo_trai: ; cho

queo_phai: ; cho

setb clr clr setb clr setb jmp qua0 ; tr lai trinh quet phim setb clr clr setb clr clr jmp qua0 ; tr lai trinh quet phim setb clr setb clr setb setb call clr clr call

queo

phai p3.0 p3.1 p3.2 p3.3 p3.4 p3.5 dng p3.0 p3.1 p3.2 p3.3 p3.4 p3.5 lai p3.0 p3.1 p3.3 p3.4 #100 p3.2 p3.5 delay p3.2 p3.5 delay llai qua trai p3.0 p3.1 p3.2 p3.3 p3.4

dung: ; cho

cham_lai: ; cho

chm

llai:

mov

r4,

djnz jmp qua0 ; tr lai trinh quet phim quay_trai: ; cho quay setb clr setb clr setb vong

r4,

setb jmp qua0 ; tr lai trinh quet phim quay_phai: ; cho clr setb setb setb clr setb jmp qua0 ; tr lai trinh quet phim quay vong qua

p3.5 phai p3.0 p3.1 p3.2 p3.3 p3.4 p3.5

del: ; t tn nhan dung cho lnh nhy mov r3, # 10 ; nap tri 10 vao thanh ghi r3 mov r4, #200 ; nap tri 200 vao thanh ghi r4 v_r4: ; t tn nhan dung cho lnh nhy djnz r4, $ ; giam -1 n khi tri trong r4 bng 0 djnz r3, v_r4 ; giam tri trong r3 theo bc -1, r3 0?, inh hng nhy ret ; quay lai sau lnh call del delay: ; t tn nhan cho trinh lam tr mov r5, #100 ; nap tri 100 vao thanh ghi r5 v_r6: ; t tn nhan dung cho lnh nhy mov r6, #250 ; nap tri 250 vao thanh ghi r5 djnz r6, $ ; giam theo bc -1 cho n khi bng 0 djnz r5, v_r6 ; giam r5 theo bc -1, r5=0? chon hng nhy ret ; quay lai sau lnh call delay end ; dng bin dich tai dong nay

Phn tich cac cu lnh vit trong chng trinh trn:

2. Cach dung phim kiu ma trnChung ta se vit chng trinh ngun cho kiu ban phim ma trn 4x4 nh hinh ve.

Trong bai thc hanh nay, chung ta se cho ly ma co trong bang xut ra trn cang p3 khi nhn mt trong cac phim trn ma trn 4x4. org 0000h ; Khi u t thanh nh 0000h mov p2, #11111111b ; t cac chn Input ln 1 k1: ; tn nhan mov p1, #00000000b ; t cac chn Ouput xung 0 mov a, p2 ; chuyn hin trang cua p2 vao a anl a, #00001111b ; ly logic AND che 4 bit cao cjne a, #00001111b, k1 ; kim tra xem co phim nhn cha? k2: ; t tn nhan

call delay ; goi chng trinh tr tranh rung phim mov a, p2 ; chuyn trang thai p2 vao a anl a, #00001111b ; ly logic AND che 4 bit cao cjne a, #00001111b, tim_hang ; so sanh nhy jmp k2 ; nhy v k2 tim_hang: ; t tn nhan mov p1, #11111110b ; t hang 0, xung bit 0 mov a, p2 ; chuyn p2 vao a anl a, #00001111b ; ly logic AND, che 4 bit cao cjne a, #00001111b, hang_0 ; so sanh nhy ; mov p1, #11111101b ; t hang 1, xung bit 0 mov a, p2 ; chuyn p2 vao a anl a, #00001111b ; ly logic AND, che 4 bit cao cjne a, #00001111b, hang_1 ; so sanh nhy ; mov p1, #11111011b ; t hang 2, xung bit 0 mov a, p2 ; chuyn p2 vao a anl a, #00001111b ; ly logic AND, che 4 bit cao cjne a, #00001111b, hang_2 ; so sanh nhy ; mov p1, #11110111b ; t hang 3, xung bit 0 mov a, p2 ; chuyn p2 vao a anl a, #00001111b ; ly logic AND, che 4 bit cao cjne a, #00001111b, hang_3 ; so sanh nhy ; hang_0: ; tim ra mt trong 4 phim hang 0 mov dptr, #m_hang_0 jmp tim_phim ; qua trinh tim phim hang_1: ; tim ra mt trong 4 phim hang 1 mov dptr, #m_hang_1 jmp tim_phim ; qua trinh tim phim hang_2: ; tim ra mt trong 4 phim hang 2 mov dptr, #m_hang_2 jmp tim_phim ; qua trinh tim phim hang_3: ; tim ra mt trong 4 phim hang 3 mov dptr, #m_hang_3 jmp tim_phim ; qua trinh tim phim ; tim_phim: ; t tn nhan cho trinh tim phim rrc a ; cho 8 bit trong a quay vong co qua bit c C

jnc out ; kim tra bit 0 vao bit c C nhy inc dptr ; cho tng tri trong bang ln mt nhip jmp tim_phim ; quay lai tn nhan tim_phim out: ; t tn nhan clr a ; xoa sach tri trong thanh a movc a, @a+dptr ; ly ma trong bang theo a va ct vao a mov p3, a ; chuyn kt qua ra cang p3 jmp k1 ; nhy v k1 m_hang_0: ; t tn bang db 01h, 02h, 03h, 04h ; ma trong bang hang 0 m_hang_1: ; t tn bang db 05h, 06h, 07h, 08h ; ma trong bang hang 1 m_hang_2: ; t tn bang db 09h, 0ah, 0bh, 0ch ; ma trong bang hang 2 m_hang_3: ; t tn bang db 0dh, 0eh, 0fh, 00h ; ma trong bang hang 3 ; delay: ; trinh lam tr mov r5, #100 ; t tri 100 vao thanh ghi r5 v_r6: ; t tn nhan cho lnh nhy mov r6, #100 ; t tri 100 vao thanh ghi r6 djnz r6, $ ; giam theo bc -1 tri trong r6 cho n khi bng 0 djnz r5, v_r6 ; giam tri trong r5 theo bc -1, r5=0?, chon hng nhy ret ; quay lai sau lnh call delay end ; dng bin dich tai dong nay

Giai thich cach dung cac cu lnh trn: Bc 1: vit trinh do xem co phim nao c nhn xung khng.

Bc 2: Do co phim nhn khng, tranh anh hng cua rung phim

Bc 3: Tim xem phim trn hang nao a c nhn xung

Bc 4 va Bc 5: Tim xem phim nao a c nhn xung va xut kt qua

Nhn Ban: Ma xut theo phim nhn t trong cac bang: m_hang_0, m_hang_1, m_hang_2 va m_hang_3. Vy nu Ban mun dung cac ma iu khin cac thit bi theo bang 16 phim nhn nay, thi cac ma iu khin do Ban tao ra hay cho ct trong cac bang theo ung vi tri. Vy, khi Ban nhn phim 0 se co ma 0 xut ra trn cang p3, nhn phim 1 se co ma 1 xut ra trn cang p3, nhn phim 2 se co ma 2 xut ra trn cang p3....Ban se co 16 ma iu khin ng vi 16 phim nhn.

Nu Ban dung ma trn 8 chn trn cang p1 lam 8 hang va dung 8 chn trn cang p2 lam 8 ct. Ban se co ma trn 8x8, trn ma trn nay Ban co th gn n 64 phim nhn va nh vy Ban co th co n 64 ma lnh dung iu khin cac thit bi. Phai khng?

M rng: Nhp tin hiu vao ic lp trinh ly t cac b cam binChung ta bit trong thin nhin co rt nhiu "thc th" khng thuc in, vy nu mun a cac "thc th" nay vao cac ic lp trinh, chung ta phai dung n cac sensor, quen goi la cac cam bin. Phn tip theo chung ta se tim hiu mt vai cam bin thng dung, d tim, trong vic bin i cac ai lng khng thuc in ra in va tim cach chuyn cac ai lng nay vao ic lp trinh c x ly. Trc ht, hay noi n cam bin quang. Chung ta bit, anh sang la mt thc th rt ph bin, chung ta nhn bit anh sang bng cac t bao thi giac t mt. Trong ky thut in t, ngi ta cung ch tao c nhiu b cam bin co th chuyn i anh sang ra dang tin hiu in, nh: quang tr, quang diode, pin quang in... y chung ta th dung quang cam bin tao ra cac tin hiu cho nhp vai ic lp trinh va vit cac chng trinh ngun dung iu khin cac thit bi theo quang nng

Quang tr la mt in tr, nghia la no co th cho dong in chay qua theo ca hai chiu nh nhau, Ban cung co th dung quang tr kt hp vi cac in tr khac lam thanh cac cu chia ap. Quang tr khi bi chiu sang se giam ohm, do vy no se lam thay i cng dong in chay qua no. Trong cac may anh ngi ta thng dung quang tr va may o dong lam thit bi o cng anh sang. Trong cac TV i mi, ngi ta dung quang tr lam thit bi t ng iu chinh mc sang cua man hinh tuy theo mc sang cua phong. Trong cac u do PIR, ngi ta dung quang tr cho m mach tt m sang mi khi tri v ti, ngi ta dung quang tr vi cac kinh loc mau lam cac b cam bin do tim mau...Ban co th dung mt Ohm k thng thng kim tra cac quang tr. Khi o ohm, nu cho chiu sang, quang tr se giam ohm va khi bi che sang quang tr se tng ohm.

Photo diode, hay diode hng ngoai vn la mt mi ni ban dn PN, no co c tinh lam thay i cng dong in mi khi mi ni PN bi kich sang. Trong mach, photo diode thng cho ghep vi mt in tr ln ohm, no t trang thai phn cc nghich. Khi bi che sang, photo diode dn in yu va khi bi chiu sang, no se dn in manh hn. trang thai phn cc thun, no cung co tinh ghim ap nh cac diode thng thng khac. Photo diode co hoan tinh nho, cho thay i nhanh, nn ngi ta thich dung photo diode trong cac thit bi iu khin hng ngoai, dung trong cac thit bi iu khin tc quay cua cac motor, dung trong mach o tc. Ban cung co th dung ohm k thng thng kim tra cac photo diode, dung thang o Rx10K, luc nay in ap co trn 2 dy o la 12V, t photo diode vao dy o theo kiu phn cc nghich, dung mt hp iu khin Remote thng dung, cho phat lnh iu khin, chiu remote vao photo diode, Ban se thy kim may o rung theo xung lnh, du hiu nay cho bit photo diode con tt. Photo diode co rt nhiu trong cac u may hat bng hinh.

Diode Laser, vn la mt mi ni ban dn PN, khi bi kich thich, cp dong, no se phat ra th anh sang Laser. Anh sang Laser khac vi anh sang thng la cac tia sang phat ra co tinh ng pha, nghia la no tac kich vao cac vt can vi pha ging nhau, nh vy khi Ban cho hi tu cac chum tia sang Laser tai mt im nho, tai im nay cng sang vn se rt manh va rt nong (iu nay se khng lam c vi loai anh sang thng), nn im hi tu goi la tiu im (tiu co nghia la im nong). Ngay nay ngi ta dung im sang Laser oc lai cac im tin hiu li lom rt nho a t trn cac vong quay nm trn cac mt ia CD hay DVD. Tia sang Laser con dung lam tia chiu inh vi cho cac may ngm, va vi cac chum tia laser co cng manh, no con dung lam vu khi tn cng t chay cac vt bay. Ban co th dung mt Ohm k thng thng o cac diode Laser. Ly thang o Rx1 co dong chay ra trn 2 dy o ln, trn 100mA, khi o, diode Laser c cho phn cc thun, bn trong se anh ln mt im sang mau o rt nho. Khi x dung cac diode Laser, Ban tranh nhin thng vao tia sang Laser vi mc sang qua manh co th lam h mt.

Opto la cac b ghep quang in. Ngi ta cho t hp mt bn la diode phat quang, phat ra tia sang hng ngoai va mt bn la quang transistor dung thu nhn tia sang hng ngoai. Hai thanh phn nay co th t trn hai mach in ring bit cach ly nhau, va trao i thng tin vi nhau qua cac tia sang cua bn phat va cua bn nhn. Opto co 2 dang: dang ong kin va dang h. Dang ong kin thng dung trao i thng tin gia cac bo mach, va dang h thng dung phat hin cac vt th, nh: do tim vt quay, do tim cac chuyn ng, do tim cac ng ke, dung o tc...Ban co th tim thy cac loai opto co trong cac mach iu khin va di nhin, Ban cung co th dung Ohm k o kim tra cac opto. Dung tinh thun (kim ln) nghich (kim khng ln) kim tra quang diode trong opto, ri tim cach cho cp dong qua quang diode, dung ohm k o thun nghich trn quang transistor kim tra bn nhn.

Solar Cell hay pin mt tri, la mt b chuyn i nng lng, no chuyn i quang nng ra dang in nng. Khi trn mt pin solar cell c chiu sang, trn cac dy cc m va dng se xut hin in ap, mc ap thng bin i theo cng sang va tuy theo ni tr cua tai. Trong ng dung ngi ta thng dung pin mt tri phat ra in nng nap tich tr vao cac ngun pin charge, va dung ngun pin nay thp sang hay lam quay cac motor. Chung ta thng thy trn cac may tinh s (calculator) co trang bi la pin mt tri co th vn hanh trong cac ngun sang trong phong. Ngay nay, ngi ta co nhiu nghin cu v cach khai thac dung nng lng sach, nh nng nh gio, vi nng pin mt tri la khng th thiu c. Ngay mai, vi cac tm pin hiu sut cao, ngi ta se co th dung in ly t ngun sang t nhin, o la anh nng v tn cua thai dng. Ban hay dung mt Volt k thng thng o kim tra cac Solar Cell, va dung cac Led kim tra kha nng cp tai cua cac pin mt tri.

Khao sat: Cach dung cam bin quang in tao xung nhip a vao ic lp trinh.

Trong s nay chung ta dung b m cua timer 0 chay mode 2 m xung nhip a vao trn chn p3.4, tc chn T0, n gian qua bai thc hanh chung ta chi dung s m trong thanh tl0, nghia la m ti a 255 nhip va quay lai. Kt qua m se cho hin thi trn bang en s dung ma 7 oan.

Mach dung cam bin quang in, chung ta dung Led hng ngoai cho chiu sang vao mt quang transistor, binh thng quang transistor dn in, no kich dn Q1 va tao mc ap cao trn chn T0, khi co ngi i qua, tia sang bi che va lam cho quang transistor ngng dn, Q1 tt va mc ap trn chn p3.4 giam xung mc ap 0V va luc nay xung nhip vao thanh ghi tl0, thanh ghi tl0 se tip tuc tich ct s liu nay va lun cho hin thi kt qua con s co trong tl0 trn bang en s. Chng trinh ngun nay n gian, dung cho thc hanh, tim hiu cach vit cac cu lnh c ban: ; Chu thich ; a,b,c,d,e,f,g -> en s 7 oan trn Port 2 ; P3.0 -> en LED1 hang n vi ; P3.1 -> en LED2 hang chuc ; P3.2 -> en LED3 hang trm ; P3.4(T0) -> cam bin quang in ; 30h ; thanh ghi gi s hang n vi ; 31h : thanh ghi gi s hang chuc ; 32h : thanh ghi gi s hang trm ; Chi m vi thanh tl0, trong o hang n vi m n 10, hang chuc n 5 hang trm n 2. ORG SJMP MAIN 0000h 0030H DPTR,#LED7SEG ; vao bang ly ma hin s trn 7 oan TMOD,#06h ; counter 0, mode 2, m xung trn chn T0 TH0,#0C4H P3.0 P3.1 P3.2 ; nap tri vao thanh th0 ; tt en s hang n vi ; tt en s hang chuc ; tt en s hang trm

ORG MAIN: MOV en MOV vao MOV SETB SETB SETB

SETB P3.4 ; xung m vao chn nay, T0 SETB TR0 ; m mach cho xung m vao thanh ghi tl0 BEGIN: MOV A,TL0 ; cho chuyn tri trong tl0 vao thanh ghi a CALL BIN2BCD ; goi chng trinh i s ra dang thp phn MOV A,30h ; chuyn tri co trong thanh 30h vao thanh ghi a CJNE A, #10,qua1 ; so sanh tri trong a vi s 10, inh hng nhy MOV A,#00H ; tra tri trong a v 0 qua1: ; t tn nhan cho lnh nhy MOVC A,@A+DPTR ; ly tri trong bang cho vao thanh ghi a MOV 30h,A ; ct tri trong a vao thanh 30h MOV A,31h ; chuyn tri co trong thanh 31h vao thanh ghi a CJNE A,#6,qua2 ; so sanh tri trong a vi s 6, chon hng nhy MOV A,#00 ; tra tri trong a v 0 qua2: ; t tn nhan cho lnh nhy MOVC A,@A+DPTR ; ly tri trong bang cho vao thanh ghi a MOV 31h,A ; ct tri trong a vao thanh 31h MOV A,32h ; chuyn tri co trong thanh 32h vao thanh ghi a CJNE A,#1, qua3 ; so sanh tri trong a vi s 1, chon hng nhy MOV A,#00H ; tra tri trong a v 0 qua3: ; t tn nhan cho lnh nhy MOVC A,@A+DPTR ; ly tri trong bang cho vao thanh ghi a MOV 32h,A ; ct tri trong a vao thanh 32h KET_THUC: ; t tn nhan CALL DISPLAY ; cho goi chng trinh hin thi s JMP BEGIN ; tr lai tn nhan begin DISPLAY: ; trinh hin thi s trn bang en MOV P1,30H ; xut tri trong thanh 30h ra cang p1 CLR P3.0 ; m en hang n vi

CALL DELAY ; goi delay SETB P3.0 ; tt en tranh lem MOV P1,31H ; xut tri trong thanh 31h ra cang p1 CLR P3.1 ; m en Led hang chuc CALL DELAY ; goi delay SETB P3.1 ; tt en tranh lem MOV P1,32H ; xut tri trong thanh 32h ra cang p1 CLR P3.2 ; m en Led hang trm CALL DELAY ; goi delay SETB P3.2 ; tt en tranh lem RET BIN2BCD: ; trinh lam phep toan i tri nhi phn ra dang s thp phn MOV B,#10 ; t tri 10 vao thanh b, lam phep toan chia 10 DIV AB ; chia tri trong a cho 10 MOV 30h,B ; ct kt qua trong b vao thanh 30h MOV B,#10 ; t tri 10 vao thanh b, lam phep toan chia 10 DIV AB ; chia tri trong a cho 10 MOV 31H,B ; ct kt qua trong b vao thanh 31h MOV 32h,A ; ct kt qua trong a vao 32h RET ; quay lai sau lnh goi call bin2bcd DELAY: ; t tn nhan cho lnh nhy MOV R6,#10 ; nap tri 10 vao thanh ghi r6 v_r7: MOV R7,#0FFh ; nap tri 0ffh vao thanh ghi r7 DJNZ R7, $ ; cho tri trong r7 giam theo bc -1 n luc bng 0 DJNZ R6, v_r7 ; cho tri trong r6 giam theo bc -1, r6=0?, inh hng nhy RET ; quay lai sau lnh call delay ; Bang tao ma hin s trn en Led 7 oan LED7SEG: ; ma 7 oan cho hin cac s 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END ; dng bin dich tai dong nay Phn tich y nghia cac cu lnh trong chng trinh ngun trn:

Tam ktKhi vit n y, ti mi mt ng nghip vao xem th, anh noi bai vit qua dai oc thy mt, ti cung cam thy nh vy, nn cho dng y. Phn vit m rng noi v cach dung cac dang cam bin se c vit lai trong mt bai khac. Chung ta chuyn qua mt tai khac cung c ban va cn thit cho

dn in t, o la: "Th dung trinh PSpice m phong nguyn ly lam vic cua mt mach nng ap dang xung". Phuc th gian: Mi Ban cung ti dao chi trn t Quang Chu, Trung Quc. Nghe noi mun mua cac dung in t gia re phai qua Quang Chu, Trung Quc. Ti a cung gia inh ban bay mt chuyn qua TQ, lang thang trn cac vung t min nam TQ, Quang Chu, Thm Quyn.... Chuyn i vi va tuy khng mua c gi, ngoai my chuc ky sach ky thut in t cn dung cho cng vic day ngh, nhng ti cung kip thy c nhiu th, cung hiu c cac khu ch in t tht ln trong o y p cac ca hang, nu co nhiu thi gi hn, lang thang y tim y tng mi cung thich...

Click vao y xem clip "Lang thang trn t Quang Chu"