logo

Các bài thực hành về vi điều khiển

Sau khi tìm hiểu kiến thức về vi điều khiển thì bạn se có thể bắt đầu thực hiện Các bài thực hành đối với vi điều khiển để giúp bạn hiểu rõ hơn về những gì bạn đã học. Để điều khiển motor khí nén chúng ta thường sử dụng van tiết lưu để điều chỉnh lưu lượng khí qua motor. Điều khiển motor theo một hướng nhất định, hướng dòng chảy sẽ làm thay đổi vận.
z  Các bài thực hành về vi điều khiển Chöông 9 CAÙC BAØI THÖÏC HAØNH 159 MOÄT SOÁ QUI ÑÒNH VAØ CAÙC LOÃI THÖÔØNG GAËP Moät soá qui ñònh veà keát noái: Treân heä thoáng I coù 4 port 0, 1, 2, 3 vaø caùc port coù ghi treân heä thoáng. Port 0, 1,3 vôùi caùc bit thöù 0 [LSB] ñeán bit thöù 7 [MSB] theo thöù töï töø treân xuoáng. Rieâng port 2 thì ngöôïc laïi töø döôùi leân. Treân boä thí nghieäm ñaõ coù teân cho töøng ngoõ ra. Khi keát noái chuù yù phaûi theo thöù töï bit 0 cuûa port vôùi bit 0 cuûa ñoái töôïng ñieàu khieån. Khi bit thöù 0 ñuùng thì caùc bit coøn laïi seõ ñuùng. Taát caû caùc chöông trình trong heä thoáng naøy ñeàu ñöôïc kieåm tra raát kyõ vaø vieát ñuùng theo thöù töï keát noái treân. Neáu 1 yeâu caàu naøo ñoù khoâng ñuùng thì haõy xem laïi phaàn keát noái vaø chöông trình. Chuù yù: khi vieát chöông trình thöôøng xaûy ra caùc loãi nhö sau: Soá khoâng “0” thöôøng ñöôïc ñaùnh nhaàm baèng chöõ o. - Sau leänh end thì khoâng coù haøng hay moät kyù töï naøo neáu khoâng thì khi bieân dòch chöông - trình seõ thoâng baùo coù loãi. Loãi naøy coù theå boû qua. Caùc nhaûn trong chöông trình phaûi ñaùnh ñuùng nhö trong saùch höôùng daãn. - Caùc chuù thích cho caùc leänh thì phaûi naèm sau daáu chaám phaåy “;”. Coù phaàn chuù thích hay - khoâng coù cuõng ñöôïc. Giöõa leänh vaø thanh ghi phaûi coù khoaûng traéng, giöõ “org “ vaø ñòa chæ phaûi coù khoaûng - traéng. Haõy duøng nuùt tab ñeå vieát chöông trình cho thaúng haøng ñeå deã xem vaø tìm loãi nhanh - choùng. Neáu ñaùnh 1 chöông trình naøo ñoù trong taøi lieäu höôùng daãn maø chöông trình chaïy khoâng - ñuùng thì haõy xem kyõ laïi coù ñaùnh ñaày ñuû taát caùc leänh cuûa chöông trình hay chöa? Taát caû caùc chöông trình trong taøi lieäu höôùng daãn ñaõ ñöôïc chaïy thöû vaø luoân luoân ñuùng. Khi baïn töï vieát moät chöông trình thì seõ coù 1 soá tröôøng hôïp chöông trình khoâng naïp ñöôïc - coù theå do IC vi ñieàu khieån hoûng thì baïn coù theå naïp moät chöông trình naøo ñoù ñaõ chaïy toát, neáu vaãn khoâng naïp ñöôïc thì IC chaéc chaén ñaõ hoûng. Coøn neáu naïp ñöôïc vaø chaïy toát thì loãi naèm ôû chöông trình môùi vieát vaø nguyeân nhaân coù theå laø chöông trình bò xeáp choàng boä nhôù. Moät trong nhöõng lyù do laøm cho chöông trình nhöng khoâng chaïy laø do baïn vieát chöông - trình khoâng baét ñaàu taïi ñòa chæ 0000H, Haõy ñoïc kyõ caùc yeâu caàu tröôùc khi thöïc haønh. - 160 PHAÀN 1: ÑIEÀU KHIEÅN LED ÑÔN (MÖÙC 1 LED SAÙNG, MÖÙC 0 LED TAÉT) 161 S NGAØY : THÖÏC HAØNH VI ÑIEÀU KHIEÅN SOÁ TIEÁT : BAØI SOÁ : 1-1 LÔÙP : CHÖÔNG TRÌNH ÑIEÀU KHIEÅN LED CHOÙP TAÉT. MSSV : I. Muïc ñích yeâu caàu: Naém vöõng leänh ñieàu khieån xuaát döõ lieäu ra caùc port, bieát caùch vieát chöông trình con delay. Laøm quen vôùi phaàn meàm soaïn thaûo chöông trình, caùch hieäu chænh loãi. II. Trình töï thöïc hieän: 1. Giaûi thuaät: BEGIN Taét 8 led Delay Saùng 8 led Delay END 2. Keát noái maïch theo trình töï : - Duøng bus daây (8 sôïi ) keát noái port 0 vôùi moät trong boán PINHD cuûa daõy 32 led. 3. Khôûi ñoäng phaàn meàm, taïo File môùi, bieân soaïn chöông trình sau: ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh dieu khien 8 led chop tat ket noi voi port 0 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx org 0000h ;khai bao dia chi bat dau cua chuong trinh lb: mov p0,#00h ;nap 00 vao port0 de tat 8 led lcall delay ;goi chuong trinh con delay mov p0,#0ffh ;nap FF vao port0 de sang 8 led lcall delay ;goi chuong trinh con delay sjmp lb ;nhay den de lam lai tu dau ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con delay ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay: mov r6,#0ffh ;nap hang so FFH vao thanh ghi r6 de: mov r7,#0ffh ;nap hang so FFH vao thanh ghi r7 djnz r7,$ ;giam r7 di 1 va nhay khi r7 khac 00 djnz r6,de ;giam r6 di 1 va nhay khi r6 khac 00 ret ;thoat khoi chuong trinh con end 162 4. Löu chöông trình vaø bieân dòch chöông trình. Kieåm tra loãi vaø hieäu chænh roài bieân dòch laïi. 5. Naïp chöông trình vaøo vi ñieàu khieån. 6. Quan saùt keát quaû hieån thò cuûa chöông trình, neáu keát quaû hieån thò khoâng ñuùng yeâu caàu ñeà baøi thì phaûi quay laïi chöông trình chænh söûa vaø laøm laïi. III. Chöông trình maãu: ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh dieu khien port 16 led chop tat dung port0, 1 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx org 0000h lb: mov p0,#00h ;tat port0 mov p1,#00h ;tat port1 lcall delay ;delay mov p0,#0ffh ;sang 8 led mov p1,#0ffh ;sang 8 led lcall delay ;delay sjmp lb ;lam lai tu dau ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con delay ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay: mov r6,#0ffh de: mov r7,#0ffh djnz r7,$ djnz r6,de ret end IV. Baøi taäp: 1. Haõy xem chöông trình maãu ñieàu khieån 16 led choùp taét duøng 2 port 0 vaø 1 vaø haõy vieát chöông trình saùng taét 3 port 0, 1 vaø 3. 2. Haõy vieát chöông trình saùng taét 4 port: port0, port1, port2, port3. 163 NGAØY : THÖÏC HAØNH VI ÑIEÀU KHIEÅN SOÁ TIEÁT : BAØI SOÁ : 1-2 LÔÙP : CHÖÔNG TRÌNH ÑIEÀU KHIEÅN LED SAÙNG VAØ TAÉT DAÀN. MSSV : s I. Muïc ñích yeâu caàu: Hieåu caùch söû duïng leänh xoay 8 bit, leänh nhaûy coù ñieàu kieän ñeå thöïc hieän chöông trình ñieàu khieån led saùng daàn, taét daàn. II. Trình töï thöïc hieän : 1. Giaûi thuaät: saùng daàn vaø taét heát saùng daàn vaø taét daàn Begin Begin Taét 8 led Taét 8 led Dòch chuyeån döõ lieäu Dòch chuyeån döõ lieäu 11111111 laàn löôït ra 8 led 11111111 laàn löôït ra 8 led Xoùa 8 led Dòch chuyeån döõ lieäu 00000000 laàn löôït ra 8 led End End 2. Keát noái maïch theo trình töï : - Duøng bus daây keát noái port 0 vôùi moät trong boán PINHD cuûa daõy 32 led. 3. Khôûi ñoäng phaàn meàm, taïo File môùi vaø bieân soaïn chöông trình sau: ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh dieu khien port 0 sang dan len va tat het - cach I ;ket noi port 0 den 8 led bang cap 8 soi ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx org 0000h lb: mov p0,#00000000b ;tat port 0 lcall delay ;goi chuong trinh con delay mov p0,#00000001b ;sang 1 led lcall delay ;goi chuong trinh con delay mov p0,#00000011b ;sang 2 led lcall delay ;goi chuong trinh con delay mov p0,#00000111b ;sang 3 led lcall delay ;goi chuong trinh con delay mov p0,#00001111b ;sang 4 led lcall delay ;goi chuong trinh con delay 164 mov p0,#00011111b ;sang 5 led lcall delay ;goi chuong trinh con delay mov p0,#00111111b ;sang 6 led lcall delay ;goi chuong trinh con delay mov p0,#01111111b ;sang 7 led lcall delay ;goi chuong trinh con delay mov p0,#11111111b ;sang 8 led lcall delay ;goi chuong trinh con delay sjmp lb ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con delay ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay: mov r6,#0ffh de: mov r7,#0ffh djnz r7,$ djnz r6,de ret end Trong laäp trình coù nhieàu caùch vieát chöông trình töø ñôn giaûn deã hieåu nhöng daøi doøng ñeán chöông trình phöùc taïp khoù hieåu nhöng ngaén goïn tuøy thuoäc vaøo ñoái töôïng nghieân cöùu vaø ñoái töôïng hoïc. ÔÛ ñaây trình baøy luoân caû 2 caùch vieát. Trong caùch vieát treân ta thaáy chöông trình deã hieåu nhöng khaù daøi. Haõy cho chaïy chöông trình treân vaø xem caùch vieát thöù 2. ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh dieu khien port 0 sang dan len va tat het – cach II ;ket noi port 0 den 8 led bang cap 8 soi ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx org 0000h lb: mov p0,#00h ;tat port 0 lb1: lcall delay ;goi chuong trinh con delay setb c ;lam cho bit C = 1 mov a,p0 ;chuyen noi dung port0 vao thanh ghi A rlc a ;xoay noi dung thanh ghi A sang trai mov p0,a ;tra lai cho port0 jnc lb1 ;nhay ve de thuc hien tiep sjmp lb ;quay lai tu dau ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con delay ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay: mov r6,#0ffh de : mov r7,#0ffh djnz r7,$ djnz r6,de ret end Giaûi thích : ñeå led saùng daàn leân ta phaûi dòch möùc 1 vaøo thanh ghi A, möùc 1 ñöôïc chöùa trong bit Cy, leänh xoay thanh ghi A sang traùi seõ dòch möùc 1 töø C vaøo bit A0 cuûa thanh ghi A. Bit A7 seõ dòch sang bit Cy. 165 Trong 8 laàn dòch ñaàu tieân thì sau khi dòch, bit Cy luoân baèng 0. Neân ta duøng leänh nhaûy coù ñieàu kieän khi C = 0 thì nhaûy ñeå quay laïi tieáp tuïc thöïc hieän. Cho ñeán laàn xoay thöù 9 thì C = 1 thì ñieàu kieän khoâng coøn thoõa maõn neân leänh nhaûy coù ñieàu kieän thì leänh nhaûy “sjmp ” môùi ñöôïc thöïc hieän ñeå laøm laïi töø ñaàu. 4. Thöïc hieän caùc böôùc gioáng nhö caùc baøi tröôùc. III. Caùc chöông trình maãu: 1. Chöông trình ñieàu khieån port 0 saùng daàn vaø taét daàn: ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh dieu khien port 0 sang dan len va tat dan ;ket noi port 0 den 8 led bang cap 8 soi ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx org 0000h lb: mov p0,#00h ;tat port 0 lb1: lcall delay ;goi chuong trinh con delay setb c ;lam cho bit C = 1 mov a,p0 ;chuyen noi dung port0 vao thanh ghi A rlc a ;xoay noi dung thanh ghi A sang trai mov p0,a ;tra lai cho port0 jnc lb1 ;nhay ve de thuc hien tiep khi c=0 lb2: lcall delay ;goi chuong trinh con delay clr c ;lam cho bit C = 0 mov a,p0 ;chuyen noi dung port0 vao thanh ghi A rlc a ;xoay noi dung thanh ghi A sang trai mov p0,a ;tra lai cho port0 jc b2 ;nhay ve de thuc hien tiep khi c=1 sjmp lb ;quay ve lam lai tu dau ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con delay ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay: mov r6,#0ffh de: mov r7,#0ffh djnz r7,$ djnz r6,de ret end 2. Chöông trình ñieàu khieån port 0 vaø port 1 saùng daàn vaø taét daàn: ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh dieu khien port 0, 1 sang dan len va tat dan ;ket noi port 0 den 8 led bang cap 8 soi tuong tu cho port1 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx org 0000h lb: mov p0,#00h ;tat port 0 mov p1,#00h ;tat port 1 lb1: lcall delay ;goi chuong trinh con delay setb c ;lam cho bit C = 1 mov a,p0 ;chuyen noi dung port0 vao thanh ghi A rlc a ;xoay noi dung thanh ghi A sang trai mov p0,a ;tra lai cho port0 mov a,p1 ;chuyen noi dung port1 vao thanh ghi A rlc a ;xoay noi dung thanh ghi A sang trai mov p1,a ;tra lai cho port1 166 jnc lb1 ;nhay ve de thuc hien tiep khi c=0 lb2: lcall delay ;goi chuong trinh con delay clr c ;lam cho bit C = 0 mov a,p0 ;chuyen noi dung port0 vao thanh ghi A rlc a ;xoay noi dung thanh ghi A sang trai mov p0,a ;tra lai cho port0 mov a,p1 ;chuyen noi dung port1 vao thanh ghi A rlc a ;xoay noi dung thanh ghi A sang trai mov p1,a ;tra lai cho port1 jc lb2 ;nhay ve de thuc hien tiep khi c=1 sjmp lb ;quay ve lam lai tu dau ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con delay ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay: mov r6,#0ffh de: mov r7,#0ffh djnz r7,$ djnz r6,de ret end IV. Baøi taäp öùng duïng: 1. Duøng port 0 keát noái vôùi 8 led, haõy vieát chöông trình ñieàu khieån 1 led saùng vaø di chuyeån töø traùi sang phaûi. 2. Haõy vieát chöông trình ñieàu khieån 4 port 0, 1, 2, 3 saùng daàn vaø taét daàn töø treân xuoáng vaø töø döôùi leân. 3. Haõy vieát chöông trình ñieàu khieån 4 port 0, 1, 2, 3 saùng daàn vaø taét daàn töø ngoaøi vaøo trong vaø töø trong ra ngoaøi. 167 NGAØY : THÖÏC HAØNH VI ÑIEÀU KHIEÅN SOÁ TIEÁT : BAØI SOÁ : 1-3 LÔÙP : CHÖÔNG TRÌNH ÑIEÀU KHIEÅN LED SAÙNG DOÀN MSSV : I. Muïc ñích yeâu caàu: Hieåu caùch söû duïng leänh xoay keát hôïp vôùi leänh logic ñeå thöïc hieän chöông trình ñieàu khieån led saùng doàn. II. Trình töï thöïc hieän: 1. Giaûi thuaät: Begin Taét 8 led Möùc 1 dòch chuyeån töø led 1ñeán led 8 Möùc 1 dòch chuyeån töø led 1ñeán led 7 Möùc 1 dòch chuyeån töø led 1ñeán led 2 Möùc 1 dòch chuyeån vaøo led 1 End 2. Keát noái maïch theo trình töï : - Duøng bus daây keát noái port 0 vôùi moät trong boán PINHD cuûa daõy 32 led. 3. Khôûi ñoäng phaàn meàm, taïo File môùi, vaø bieân soaïn chöông trình sau : ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh dieu khien port 0 sang don va tat het - cach I ;ket noi port 0 den 8 led bang cap 8 soi ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx org 0800h ;khai bao dia chi luu tru vung du lieu ma: db 00000000b db 00000001b 168 db 00000010b db 00000100b db 00001000b db 00010000b db 00100000b db 01000000b db 10000000b ;lan thu hai la 7 byte db 10000001b db 10000010b db 10000100b db 10001000b db 10010000b db 10100000b db 11000000b ;lan thu 3 la 6 byte db 11000001b db 11000010b db 11000100b db 11001000b db 11010000b db 11100000b ;lan thu 4 la 5 byte db 11100001b db 11100010b db 11100100b db 11101000b db 11110000b ;lan thu 5 la 4 byte db 11110001b db 11110010b db 11110100b db 11111000b ;lan thu 6 la 3 byte db 11111001b db 11111010b db 11111100b ;lan thu 7 la 2 byte db 11111101b db 11111110b ;lan thu 8 la 1 byte db 11111111b ;byte du lieu cuoi cung = FFH ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx org 0000h ;khai bao dia chi chtr chinh lb: mov dptr,#0800h ;nap dia chi luu du lieu vao thghi dptr lb1: clr a movc a,@A+dptr ;lay du lieu tu bo nho dua vao A mov p0,a ;goi ra port 0 lcall delay ;goi chtr con delay inc dptr ;tang dptr len o nho ke cjne a,#0ffh,lb1 ;ktra co phai la byte ket thuc hay chua sjmp lb ;quay tro lam lai khi da het du lieu ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con delay ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay: mov r6,#0ffh de2 : mov r7,#0ffh djnz r7,$ djnz r6,de ret end 169 Theo caùch vieát 1 ta haõy quan saùt döõ lieäu trong chöông trình ñaõ ñöôïc saép xeáp theo ñuùng trình töï vaø chöông trình chæ thöïc hieän nhieäm vuï laø di chuyeån laàn löôïc caùc byte döõ lieäu coù trong boä nhôù ñem gôûi vaøo A vaø sau ñoù gôûi ra port 0. Leänh “ma: db döõ lieäu “ coù chöùc naêng naïp caùc byte döõ lieäu vaøo vuøng nhôù coù ñòa chæ 0800H. Byte cuoái cuøng laø FFH laø byte baùo cho bieát heát d74 lieäu. Döõ lieäu vieát döôùi daïng soá nhò phaân cho deã nhìn thaáy vaø coù theå vieát döôùi daïng soá hex – khi ñoù chöông trình seõ ngaén hôn raát nhieàu. Phaàn khai baùo döõ lieäu döôùi daïng soá hex nhö sau: org 0800h ;khai bao dia chi luu tru vung du lieu ma: db 00H DB 01H,02H,04H,08H,10H,20H,40H,80H ; DB 81H,82H,84H,88H,90H,0A0H,0C0H DB 0C1H,0C2H,0C4H,0C8H,0D0H,0E0H DB 0E1H,0E2H,0E4H,0E8H,0F0H DB 0F1H,0F2H,0F4H,0F8H DB 0F9H,0FAH,0FCH DB 0FDH,0FEH DB 0FFH Chöông trình gioáng nhö treân nhöng vieát theo caùch II: ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh dieu khien 8 led sang don dung port 0 ;ket noi port 0 den 8 led bang 1 soi cap 8 soi ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;dinh nghia cac bien x0 equ 10h y0 equ 20h dem equ 30h tam equ 31h led0 equ p0 led1 equ p1 led2 equ p2 led3 equ p3 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;bat dau chuong trinh chinh ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx org 0000h mov led2,#0 ;tat cac led chua su dung mov led3,#0 mov led1,#0 lb: mov led0,#0 lcall delay ;tat 16 led va delay mov dem,#8 ;led 1 se di chuyen 8 vi tri mov x0,#0 lb2: mov tam,dem mov y0,#00000001b ;luu trng thai ban dau lb1: mov a,y0 orl a,x0 mov led0,a lcall delay 170 clr c ;xoa Cy de chi dich 1 led di mov a,y0 rlc a mov y0,a djnz tam,lb1 ;giam ndung o nho (11h) 0 thi quay lai mov x0,led0 djnz dem,lb2 ;giam bien dem de xu li lan ke ljmp lb ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con delay ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay: mov 7eh,#040h del: mov 7fh,#0ffh djnz 7fh,$ djnz 7eh,del ret end Chöông trình khoâng khoù !, baïn haõy töï nghieân cöùu giaûi thuaät? III. Caùc chöông trình maãu: Chöông trình ñieàu khieån 16 led saùng doàn: ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh dieu khien 16 led sang don dung port 0, 1 ;ket noi port 0 va port 1 den 16 led bang 2 soi cap 8 soi ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;dinh nghia cac bien x0 equ 10h x1 equ 11h y0 equ 20h y1 equ 21h dem equ 30h tam equ 31h led0 equ p0 led1 equ p1 led2 equ p2 led3 equ p3 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;bat dau chuong trinh chinh ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx org 0000h mov led2,#0 ;tat cac led chua su dung mov led3,#0 lb: mov led1,#0 mov led0,#0 lcall delay ;tat 16 led va delay mov dem,#16 ;led 1 se di chuyen 16 vi tri mov x0,#0 mov x1,#0 171 lb2: mov tam,dem mov y0,#00000001b ;luu trng thai ban dau mov y1,#00000000b lb1: mov a,y0 orl a,x0 mov led0,a mov a,y1 orl a,x1 mov led1,a lcall delay clr c ;xoa Cy de chi dich 1 led di mov a,y0 rlc a mov y0,a mov a,y1 rlc a mov y1,a djnz tam,lb1 ;giam ndung o nho (11h) 0 thi quay lai mov x0,led0 mov x1,led1 djnz dem,lb2 ;giam bien dem de xu li lan ke ljmp lb ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con delay ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay: mov 7eh,#040h del: mov 7fh,#0ffh djnz 7fh,$ djnz 7eh,del ret end IV. Baøi taäp öùng duïng: 1. Haõy vieát chöông trình ñieàu khieån 3 port: port0, port1, port2 saùng doàn. 2. Haõy vieát chöông trình ñieàu khieån 4 port: port0, port1, port2 vaø port3 saùng doàn. 3. Haõy vieát chöông trình saùng doàn 2 port 0 vaø 1 töø ngoaøi vaøo trong vaø töø trong ra ngoaøi. 4. Haõy vieát chöông trình saùng doàn 4 port 0, 1, 2 vaø 3 töø ngoaøi vaøo trong vaø töø trong ra ngoaøi. 172 NGAØY : THÖÏC HAØNH VI ÑIEÀU KHIEÅN SOÁ TIEÁT : BAØI SOÁ : 1-4 LÔÙP : CHÖÔNG TRÌNH ÑIEÀU KHIEÅN MSSV : ÑIEÅM SAÙNG DÒCH CHUYEÅN MAÁT DAÀN I. Muïc ñích yeâu caàu: Hieåu caùch söû duïng leänh xoay keát hôïp vôùi leänh logic ñeå thöïc hieän chöông trình ñieàu khieån led laøm quen vôùi laäp trình. II. Trình töï thöïc hieän: Begin 1. Giaûi thuaät ñieàu khieån 8 led dòch chuyeån maát daàn: 8 led saùng - delay X= 1111 1110 Y= 0000 0001 Ñeám = 8 Z=Y Led = X or Z Delay Xoay Z sang phaûi vôùi C = 0 Z = 0000 0000 S Ñ Xoay X sang traùi vôùi C = 0 Xoay Y sang traùi 8 bit Giaûm bieán ñeám Ñeám = 0 S Ñ End 173 2. Keát noái maïch theo trình töï : - Duøng bus daây keát noái port 0 vôùi moät trong boán PINHD cuûa daõy 32 led. 3. Khôûi ñoäng phaàn meàm, taïo File môùi vaø bieân soaïn chöông trình sau: ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh dieu khien 8 led sang het va diem sang dich chuyen tat dan ;su dung 1 port 0 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;dinh nghia cac nhan x0 equ 11h y0 equ 21h z0 equ r0 led0 equ p0 led1 equ p1 led2 equ p2 led3 equ p3 dem equ 40h org 0000h mov led2,#0 mov led3,#0 mov led1,#0h main: mov led0,#0ffh lcall delay mov dem,#8 mov x0,#11111110b mov y0,#00000001b m2: mov z0,y0 m1: lcall xoay_z lcall x_or_z lcall delay cjne z0,#00,m1 lcall xoay_x lcall xoay_y djnz dem,m2 ljmp main ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;bat dau cac chuong trinh con ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xoay_z: clr c mov a,z0 rrc a mov z0,a ret x_or_z: mov a,x0 orl a,z0 mov led0,a ret 174 xoay_x: clr c mov a,x0 rlc a mov x0,a ret xoay_y: clr c mov a,y0 rlc a mov y0,a ret delay: mov r6,#0ffh de: mov r7,#0ffh djnz r7,$ djnz r6,de ret end III. Caùc chöông trình maãu: Chöông trình maãu ñieàu khieån 16 led dòch chuyeån taét daàn ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh dieu khien 16 led sang het va diem sang dich chuyen tat dan ;su dung 2 port 0 va port 1 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;dinh nghia cac nhan x1 equ 10h x0 equ 11h y1 equ 20h y0 equ 21h z1 equ r1 z0 equ r0 led0 equ p0 led1 equ p1 led2 equ p2 led3 equ p3 dem equ 40h org 0000h mov led2,#0 mov led3,#0 main: mov led1,#0ffh mov led0,#0ffh lcall delay mov dem,#16 mov x1,#11111111b ;byte cao mov x0,#11111110b ;byte thap mov y1,#00000000b ;byte cao 175 mov y0,#00000001b ;byte thap m2: mov z1,y1 mov z0,y0 m1: lcall xoay_z lcall x_or_z lcall delay cjne z0,#00,m1 cjne z1,#00,m1 lcall xoay_x lcall xoay_y djnz dem,m2 ljmp main xoay_z: clr c mov a,z1 rrc a mov z1,a mov a,z0 rrc a mov z0,a ret x_or_z: mov a,x0 orl a,z0 mov led0,a mov a,x1 orl a,z1 mov led1,a ret xoay_x: clr c mov a,x0 rlc a mov x0,a mov a,x1 rlc a mov x1,a ret xoay_y: clr c mov a,y0 rlc a mov y0,a mov a,y1 rlc a mov y1,a ret delay: mov r6,#0ffh de: mov r7,#0ffh djnz r7,$ djnz r6,de ret 176 end IV. Baøi taäp: 1. Haõy vieát chöông trình ñieàu khieån 3 port: 0, 1, 2 gioáng nhö treân. 2. Haõy vieát chöông trình ñieàu khieån 4 port: 0, 1, 2, 3 gioáng nhö treân. 3. Haõy vieát chöông trình ñieàu khieån 4 port 0, 1, 2, 3 vôùi ñieåm saùng dòch chuyeån maát daàn töø theo chieàu töø trong ra vaø töø ngoaøi vaøo. 177
DMCA.com Protection Status Copyright by webtailieu.net