Tài liệu Tài liệu hướng dẫn lập trình cho hệ vi xử lý pdf

6 684 1
Tài liệu Tài liệu hướng dẫn lập trình cho hệ vi xử lý pdf

Đang tải... (xem toàn văn)

Thông tin tài liệu

How to programming a microprocessor-based system Written by Kien NX, MicroStudy Group TÀI LIU HNG DN LP TRÌNH CHO H VI X <phn I> Khi mt bài toán thc t đc đa ra, ta cn phi tìm hiu cn k các yêu cu do bài toán đt ra và thc hin gii quyt theo các bc sau: − Bc 1: nh hng gii quyt. − Bc 2: La chn phng án thit k phn cng. − Bc 3: Lp lu đ thut toán cho thit k ph n mm. − Bc 4: Th hin lu đ thut toán bng các lnh c th. Các bc 1 và 2 đã đc trình bày trong các tài liu hng dn thit k các mch thí nghim,  đây ch chú trng vào gii quyt các bc 3 và 4. Trong giai đon thit k phn mm, bc 3 không ch là bc tiên phong mà còn là bc có ý ngha quyt đnh đi vi s thành công và cht lng c a sn phm. Bc 4 ch là bc hoàn thin cui cùng ca vic gii quyt mt bài toán. I. Cách xây dng mt lu đ thut toán: Trc ht nói v lu đ thut toán, nh đã đ cp đn trong phn các kin thc cn bn trong K thut Vi x lý, lu đ thut toán có vai trò đc bit quan trng trong thit k phn mm. V  c bn, mt lu đ thut toán có th đc xây dng bng các biu tng sau đây: 1. Biu tng 1: ây là biu tng dùng đ ch s bt đu hay kt thúc mt nhim v hay mt chng trình. Biu tng này ch có mt đu vào hoc mt đu ra. 2. Biu tng 2: ây là biu tng dùng đ din đt s thc hin mt thao tác nào đó. Biu tng này có mt đu vào và mt đu ra. 3. Biu tng 3: How to programming a microprocessor-based system Written by Kien NX, MicroStudy Group ây là biu tng dùng đ din đt s la chn mt trong hai phng án đúng hoc sai đi vi điu kin hay tình hung đc nêu ra trong đó. Biu tng này ch có mt đu vào nhng li có hai đu ra. Lu ý là phi đc bit tuân th s lng các đu vào ra đi vi mi loi biu tng.  làm rõ hn cách xây dng mt lu đ c th, MicroStudy s đa ra mt bài toán mu đn gin trên c s phn mch phn cng thí nghim và lu đ mu đ gii quyt bài toán đó. Bài toán đt ra: nhp nháy 8 LED đn ni vi cng P1 theo chu k 1 giây sáng và 1 giây tt. Nh vy sau khi phân tích yêu cu do bài toán đt ra, lu đ thut toán phi đc xây dng nh sau: Hoc n u không quan tâm đn trng thái bt đu ca s nhp nháy (tc là không cn bit sáng trc hay tt trc), ta có th có đc lu đ đn gin hn: Begin Sáng 8 LED Tr 1 giây Tt 8 LED Tr 1 giây Begin o trng thái ca 8 LED Tr 1 giây How to programming a microprocessor-based system Written by Kien NX, MicroStudy Group Vi lu đ thut toán th nht ta có th thc hin bc 4 nh sau: #include <sfr51.inc> org 00h ;đa ch reset ca vi điu khin h 8051 ljmp main org 40h ;đt chng trình chính bt đu t đa ch này đ tránh không đè lên vùng các véct ngt main: mov p1,#0 ;cho sáng 8 đèn LED ni vi P1 lcall delay1s ;tr 1 giây mov p1,#0ffh ;tt 8 đèn LED ni vi P1 lcall delay1s ;tr  1 giây sjmp main ;quay tr li tip tc nh th delay1s: ; đây là chng trình con to tr 1 giây mov r1,#10 loop1: mov r2,#100 loop2: mov r3,#100 loop3: nop nop nop nop nop nop nop nop djnz r3,loop3 djnz r2,loop2 djnz r1,loop1 ret end ;kt thúc chng trình Vi lu đ thut toán th hai, chng trình có th đc vit là: #include <sfr51.inc> org 00h ljmp main org 40h main: How to programming a microprocessor-based system Written by Kien NX, MicroStudy Group mov a,p1 ;ly giá tr hin thi ca cng P1 cpl a ;đo nó đi (lt trng thái, 0 thành 1, 1 thành 0) mov p1,a ;đa ra tr li P1 đ thc hin đo trng thái các đèn LED lcall delay1s sjmp main delay1s: mov r1,#10 loop1: mov r2,#100 loop2: mov r3,#100 loop3: nop nop nop nop nop nop nop nop djnz r3,loop3 djnz r2,loop2 djnz r1,loop1 ret end Trong hai chng trình trên có s dng chng trình con “delay1s”. Chng trình con này s dng các l nh NOP đ tiêu th thi gian cht khong 1µs vi thch anh 12MHz. Có 3 vòng lp đ to ra 10(ca vòng ngoài cùng)*100(ca vòng gia)*100(ca vòng trong cùng)*10µs(do 8 lnh NOP và mt lnh djnz gây ra) = 1,000,000µs = 1 giây. Lu đ thut toán cho chng trình con “delay1s” nh sau: How to programming a microprocessor-based system Written by Kien NX, MicroStudy Group End bin đm 1 = 10 bin đm 2 = 100 bin đm 3 = 100 Tr 10 µs bin đm 3 = 0? bin đm 3 - 1 bin đm 2 = 0? bin đm 2 - 1 bin đm 1 = 0? bin đm 1 - 1 Begin s s s How to programming a microprocessor-based system Written by Kien NX, MicroStudy Group II. Bài tp thc hành: Vit lu đ thut toán gii quyt các bài toán sau: − Sáng ln lt các LED ni vi cng P1 (theo th t P1.0 đu tiên, P1.7 sau cùng ri li quay v P1.0). Ti mt thi đim ch có mt LED sáng và thi gian sáng ca các LED đu là 1 giây. − Kim tra và đáp ng li s kin phím bm  cng P3.2. Nu phím bm thì bt sáng c 8 LED ni vi c ng P1. Nh phím ra thì tt tt c 8 LED. − Hin th s 123  các LED 7 thanh. − Hin th s đm tng dn bng các LED 7 thanh (đm t 000 đn 999 ri li v 000, mi giây tng s đm mt ln). − Xác đnh phím bm trong s 16 phím ca ma trn phím và hin th s th t ca phím đc bm lên các LED 7 thanh (t 1 đn 16, không có phím bm thì hi n s 0). . microprocessor-based system Written by Kien NX, MicroStudy Group TÀI LIU HNG DN LP TRÌNH CHO H VI X LÝ <phn I> Khi mt bài toán thc t đc đa ra,. đ thut toán cho thit k ph n mm. − Bc 4: Th hin lu đ thut toán bng các lnh c th. Các bc 1 và 2 đã đc trình bày trong các tài liu hng

Ngày đăng: 26/12/2013, 01:17

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan