SlideShare a Scribd company logo
1 of 22
Download to read offline
Start
Bài 1:                                 code: org 00h

                                             nop
              Dptr         #100H
                                             sjmp start
              R2       120D
                                             org 03h ;int ex0

                                             nop

                                             reti

              A      @dptr                   org 0bh ;int timer0

              Cpl      A                     nop

              A+1                            reti

              @dptr          A               org 13h ;int ex1

              Dptr + 1                       nop

              R2 - 1                         reti

                                             org 1bh ;int timer1

                                             nop

         No                R2 = 0            reti

                                             org 23h; int serial

                                 Yes         nop

                                             reti
                           End

                                             org 50h

                                             start:

                                             mov dptr,#100h
mov R2,120d

lap

      movx A,@dptr

      cpl    A

      inc    A

      movx @dptr,A

      inc dptr

      Djnz R2,lap



      END
Bài 2:                Start


                               code:   org 00h
         R0       #30H
                                       nop
         dptr         #1000H
                                       sjmp start
         R3       20D
                                       org 03h ;int ex0

                                       nop

         A      @R0                    reti

         R1       A                    org 0bh ;int timer0

         A      @dptr                  nop

         R2       A                    reti

         @dptr         R1              org 13h ;int ex1

         @R0          R2               nop

         R0 + 1                        reti

         Dptr + 1                      org 1bh ;int timer1

         R3-1                          nop

                                       reti

                                       org 23h; int serial
                      R3 = 0
                                        nop

                                       reti

                                       org 50h
                      End
                                       start:
mov R0,#30H

      mov dptr,#1000H

      mov R3,20D

lap

      mov A,@Ro

      mov A,R1

      movx A,@dptr

      mov A,R2

      mov@Ro,R2

      movx @dptr,R1

      inc Ro

      inc dptr

      Djnz R3,lap

      End
Bài 3:               Start

                                       Code: org 00h

                                             nop
         R0         #30H
                                             sjmp start
         R1         #60H
                                             org 03h ;int ex0
         R2         4D
                                             nop
         C      0
                                             reti

                                             org 0bh ;int timer0
         A      @R0                          nop
         A+@R1+C                             reti
         @R0             A                   org 13h ;int ex1
         R0+ 1                               nop
         R1 + 1                              reti
         R2-1                                org 1bh ;int timer1
         R2-1                                nop

                                             reti

                    R2 = 0                   org 23h; int serial

                                             nop

                                             reti

                                       org 50h
                    End
                             Start:

                                      mov R0,#30H
mov R1,#60H

       mov R2,4D

       clr C

lap

      acall cong

      inc R0

      inc R1

      djnz R2,lap

jnc thoat

inc R3

thoat :

      RET

cong:

        mov A,@R0

        addc A,@R1

         da A

        mov @R0,A

        RET

        END
Start
Bài 4:

                               Code: org 00h
         Xóa cờ C
                                       nop
         R2       8D
                                       sjmp start
         R0       #30H
                                       org 03h ;int ex0
         dptr       #1234H
                                       nop

                                       reti
         A      @R0
                                       org 0bh ;int timer0
         R1       @dptr
                                       nop
         A – R1
                                       reti
         @dptr          A
                                       org 13h ;int ex1
         Dptr + 1
                                       nop
         R0 + 1
                                       reti
         R2 - 1
                                       org 1bh ;int timer1

                                       nop

                                       reti
                  R2 = 0
                                       org 23h; int serial

                                           nop

                                       reti

                  End          start

                                   clr C

                                   mov R0,#30H
mov dptr,#1234H

                                                  mov R2,#8D

                                          lap

                                                acall tru

                                                inc R0

                                                inc R1

                                                djnz R2,lap

                                                jnc thoat

                                                inc R3

                                                thoat :

                                                RET

                                                tru:

                                                mov A,@R0

                                                mov R1,@dptr

                                                sub A,R1

                                                mov @dptr,A

                                                RET

                                                END

Bài 5: Tính toán :

      Ta có: T =	    = 20ms

       Nửa chu kỳ cho phần cao:   0,5.T = 10ms
10
        Số nhịp đồng hồ :        n=	
                                        1μ
                                             = 1000

    (do xung nhịp thạch anh là 12Mhz nên ta sẽ tính được xung nhịp của vxl là
1Mhz)

   Tính giá trị cần nạp TH và TL là: 65536 – 10000=55536

   Chuyển sang mã hex là: D8F0

   Vậy ta có giá trị cần nạp là TH = D8H và TL = F0H

Lưu đồ thuật toán:
Start

                        code: org 00h

     Xóa P1.0                 nop

     TMOD        #10H         sjmp start

                              org 03h ;int ex0

                              nop
     TL1    #0F0H
                              reti
     TH1    #0D8H
                              org 0bh ;int timer0
     TR1    1
                              nop

                              reti

no                           org 13h ;int ex1
           TF1 = 0
                              nop

                  yes         reti

                              org 1bh ;int timer1
     Xóa TR1
                              nop
     Đảo P1.7
                              reti
     Xóa TF1
                              org 23h; int serial

sjmp                          nop

                              reti

                              org 50h

                              start :

                              mov tmod,#10H

                              again : mov TL1,#0F0H
mov TH1,#0D8H

       setb SR1

back : jnb TF1,back

       clr TR1

       cpl p1.7

       clr TF1

sjmp again
Bài 6: Tính toán:

               Chu kỳ song T =   = 1s

               Thời gian của phần cao 0,7.T = 0,7s
                                      ,
               Số xung nhịp là n =        = 700000 > 216 do đó không thể nạp được
                                     1μ

               Giá trị của TL và TH. Nên ta phải sử dụng bộ đếm giữ chậm để tăng

               được T. Giả sử ta giữ xung nhịp 20 lần khi đó số xung nhịp cần nạp

               là 70000 do đó ta tính được giá trị nạp vào TH là 77H và TL là 48H

                                                 Mã lệnh:

                                                      org 00h

                                                       nop

                                                       sjmp start

                                                       org 03h ;int ex0

                                                       nop

                                                       reti

                                                       org 0bh ;int timer0

                                                       nop

                                                       reti

                                                       org 13h ;int ex1

                                                       nop

                                                       reti

                                                       org 1bh ;int timer1
Lưu đồ thuật toán:

                  Start             nop

                                    reti

                                    org 23h; int serial
     tmod         #10H
                                     nop

                                    reti
     R3       #20h
                                    org 50H
     TL1      #48h
                                    start :
     TH1      #77h
                                              mov tmod,#10H
     TR1      1
                                     again : mov R3,#20h

                                              mov TL1,#48H
             TF1 = 0           no             mov TH1,#77H

                     yes                       setb TR1

                                      back : jnb TF1,back
 Xóa TR1
                                              clr TR1
 Đảo P1.1
                                              cpl p1.1
 Xóa TF1
                                              clr TF1
 R3 - 1
                                              djnz R3,again



no                R3 = 0
                       yes
Start
Bài 7:

                                   Giả sử baud = 9600 và XTAL=12Mhz
          dptr      #456H
                                   Code:
          R7       300D
                                       org 50H
          tmod         #20H
                                       start:
          TH1      -3D
                                           mov tmod,#20H
          SCON       #50H
                                           mov TH1,#-3D
          TR1      1
                                           mov scon,#50H

                                           mov dptr,#456H

                                           mov R7,#300D
          CLR RI
                                           setb TR1
          A      SBUF
                                   here : jnb RI,here
          @dptr          A
                                           mov A,sbuf
          Dptr + 1
                                           mov @dptr,A
          R7 - 1
                                           clr RI

                                           inc dptr

         no         R7 = 0                    djnz R7,here

                                   RET

                             yes


                       Ret
Start
Bài 8:

                                             code:
         tmod       #01h        ;P1.0 = 0
                                               nop
         TH0        #9Eh         ;P1.1 = 1
                                               sjmp start
         TL0        #58h         ;P1.2 = 1
                                               org 03h ;int ex0
         R1         #20h         ;P1.3 = 1
                                               nop
         R2         #33h         ;P1.4 = 1
                                               reti
         TR0        1            ;P1.5 = 0
                                               org 0bh ;int timer0

                                               nop
                        delay
                                               reti
                         R2-1
                                               org 13h ;int ex1

                                               nop

no                      R2 = 0                 reti

                                               org 1bh ;int timer1

                             yes                nop

                                               reti
         P1.0 = 1
                                               org 23h; int serial
         P1.1 = 0
                                                nop
         R2     #03h
                                                reti

                                                org 100h

  no                    R2 = 0                 start:

                                    yes
P1.1 = 1

      P1.2 = 0                        mov tmod,#01h
      P1.3 = 0                        mov TH0,#9Eh
      P1.5 = 1                        mov TL0,#58h
      R2     #25h                     mov R1,#20h

                                      mov R2,#33h

no                                    setb P1.0
                 R2 = 0
                                      setb P1.1

                      yes              setb P1.2

                                      setb P1.3
      P1.3 = 1
                                      setb P1.4
      P1.4 = 0
                                      clr P1.5
      R2     #03h
                                      setb TR0

                                back1: lcall delay
                 R2 = 0
 no                                     djnz R2,back1

                          yes           setb P1.0

                                        clr P1.1

                                        mov R2,#03h

                                 back2 : lcall     delay

                                         djnz R2,back2

                                         set P1.1

                                         clr P1.2

                                         clr P1.3
delay


                              setb P1.5

             TF0 = 0          mov R2,#25h

                       back3: lcall delay

                              djnz R2,back3
     TH0      #9Eh            set P1.3
     TL0     #58h             clr P1.4
     R1      #20h             mov R2,#03h
     R1 -1             back4: lcall delay

                              djnz R2,back4

no                             ljmp back1
             R1 = 0
                       delay: jnb TF0, delay

                 yes           mov TH0,#9Eh

              Ret             mov TL0,#58h

                              mov R1,#20h

                              djnz R1,delay

                            ret
Start
Bài 9:

                          code:
         tmod     #01h
                              org 00h
         TH0      #9Eh
                              nop
         TL0      #58h
                              sjmp start
         R1       #20h
                              org 03h ;int ex0
         P0       #10h
                              nop
         TR0      1
                              reti

                              org 0bh ;int timer0
         R1     #10h
                              nop

                  lap         reti

                              org 13h ;int ex1
         R1     #00h          nop

                              reti
                  lap         org 1bh ;int timer1

                              nop

                              reti

                              org 23h; int serial

                                  nop

                              reti

                              org       100h
start :
                 lap                              clr EA

                                                  mov tmod,#01h

no                                                mov TH0,#9Eh
               TF0 = 0
                                                  mov TL0,#58h

                     yes                          mov R0,#20h
     TH0       #9Eh
                                                  mov P0,#10h
     TL0       #58h
                                                  setb TR0
     R2        #0Ah
                                                  mov R1,# 10h
     A     R1
                                                  lcall lap
     R0 - 1
                                                  mov R1,#00h

                                                  lcall lap

               R0 = 0                      lap:

                     yes                          back : jnb TF0,back

 R2- 1                                            mov TH0,#9Eh

 A         A+@R2                                  mov TL0,#58h

 P0        A                                      mov R2,#0Ah

                                                  mov A,R1

               R2 = 0                             djnz R0,back

no                         yes             Back1: dec R2

                                                  add A,@R2
               ret                                mov P0,A
cjne R2,#00h,back1

                  ret

                  sjmp start




Sơ đồ phần cứng
Start
Bài 10:

                                code:
          tmod          #100h
                                        org 00h
          TH1           0
                                        nop
          P3.5          1
                                        sjmp start
          R7           #80h
                                        org 03h ;int ex0

                                        nop
                    TR1=1
                                        reti

          A        TL1                  org 0bh ;int timer0

          P2       A                    nop

                                        reti

                                        org 13h ;int ex1

                    TF1 = 0             nop

                                        reti

                                        org 1bh ;int timer1
          TR1       0
                                        nop
          TF1      0
                                        reti
          R7 - 1
                                        org 23h; int serial

                                        nop
                   R7 = 0
                                        reti

                                        org 50h
start:

      mov tmod,#60h

      mov TH1,#00h

      setb P3.5

again: setb TR1

back: mov A,TL1

      mov P2,A

      jnb TF1,back

      clr TR1

      clr TF1

      djnz R7,again

      ljmp start

More Related Content

Viewers also liked

Construction equipment
Construction equipmentConstruction equipment
Construction equipmentTareq Shreehah
 
(19 02-13)--ndt tests & their importance
(19 02-13)--ndt tests & their importance(19 02-13)--ndt tests & their importance
(19 02-13)--ndt tests & their importanceRajesh Sharma
 
(30 04-13)--cold weather conc.
(30 04-13)--cold weather conc.(30 04-13)--cold weather conc.
(30 04-13)--cold weather conc.Rajesh Sharma
 
(09 04-13)--reactive powder conc.
(09 04-13)--reactive  powder conc.(09 04-13)--reactive  powder conc.
(09 04-13)--reactive powder conc.Rajesh Sharma
 
(12 03-13)--wind effects
(12 03-13)--wind effects(12 03-13)--wind effects
(12 03-13)--wind effectsRajesh Sharma
 
(14 05-13)--hot weather concreting
(14 05-13)--hot weather concreting(14 05-13)--hot weather concreting
(14 05-13)--hot weather concretingRajesh Sharma
 

Viewers also liked (10)

Aero au brochure
Aero au brochureAero au brochure
Aero au brochure
 
Construction equipment
Construction equipmentConstruction equipment
Construction equipment
 
(19 02-13)--ndt tests & their importance
(19 02-13)--ndt tests & their importance(19 02-13)--ndt tests & their importance
(19 02-13)--ndt tests & their importance
 
(30 04-13)--cold weather conc.
(30 04-13)--cold weather conc.(30 04-13)--cold weather conc.
(30 04-13)--cold weather conc.
 
(09 04-13)--reactive powder conc.
(09 04-13)--reactive  powder conc.(09 04-13)--reactive  powder conc.
(09 04-13)--reactive powder conc.
 
(12 03-13)--wind effects
(12 03-13)--wind effects(12 03-13)--wind effects
(12 03-13)--wind effects
 
(14 05-13)--hot weather concreting
(14 05-13)--hot weather concreting(14 05-13)--hot weather concreting
(14 05-13)--hot weather concreting
 
Pres prueba
Pres pruebaPres prueba
Pres prueba
 
Struktur asam nukleat
Struktur asam nukleatStruktur asam nukleat
Struktur asam nukleat
 
Canon clic
Canon clicCanon clic
Canon clic
 

Btlvxl

  • 1. Start Bài 1: code: org 00h nop Dptr #100H sjmp start R2 120D org 03h ;int ex0 nop reti A @dptr org 0bh ;int timer0 Cpl A nop A+1 reti @dptr A org 13h ;int ex1 Dptr + 1 nop R2 - 1 reti org 1bh ;int timer1 nop No R2 = 0 reti org 23h; int serial Yes nop reti End org 50h start: mov dptr,#100h
  • 2. mov R2,120d lap movx A,@dptr cpl A inc A movx @dptr,A inc dptr Djnz R2,lap END
  • 3. Bài 2: Start code: org 00h R0 #30H nop dptr #1000H sjmp start R3 20D org 03h ;int ex0 nop A @R0 reti R1 A org 0bh ;int timer0 A @dptr nop R2 A reti @dptr R1 org 13h ;int ex1 @R0 R2 nop R0 + 1 reti Dptr + 1 org 1bh ;int timer1 R3-1 nop reti org 23h; int serial R3 = 0 nop reti org 50h End start:
  • 4. mov R0,#30H mov dptr,#1000H mov R3,20D lap mov A,@Ro mov A,R1 movx A,@dptr mov A,R2 mov@Ro,R2 movx @dptr,R1 inc Ro inc dptr Djnz R3,lap End
  • 5. Bài 3: Start Code: org 00h nop R0 #30H sjmp start R1 #60H org 03h ;int ex0 R2 4D nop C 0 reti org 0bh ;int timer0 A @R0 nop A+@R1+C reti @R0 A org 13h ;int ex1 R0+ 1 nop R1 + 1 reti R2-1 org 1bh ;int timer1 R2-1 nop reti R2 = 0 org 23h; int serial nop reti org 50h End Start: mov R0,#30H
  • 6. mov R1,#60H mov R2,4D clr C lap acall cong inc R0 inc R1 djnz R2,lap jnc thoat inc R3 thoat : RET cong: mov A,@R0 addc A,@R1 da A mov @R0,A RET END
  • 7. Start Bài 4: Code: org 00h Xóa cờ C nop R2 8D sjmp start R0 #30H org 03h ;int ex0 dptr #1234H nop reti A @R0 org 0bh ;int timer0 R1 @dptr nop A – R1 reti @dptr A org 13h ;int ex1 Dptr + 1 nop R0 + 1 reti R2 - 1 org 1bh ;int timer1 nop reti R2 = 0 org 23h; int serial nop reti End start clr C mov R0,#30H
  • 8. mov dptr,#1234H mov R2,#8D lap acall tru inc R0 inc R1 djnz R2,lap jnc thoat inc R3 thoat : RET tru: mov A,@R0 mov R1,@dptr sub A,R1 mov @dptr,A RET END Bài 5: Tính toán : Ta có: T = = 20ms Nửa chu kỳ cho phần cao: 0,5.T = 10ms
  • 9. 10 Số nhịp đồng hồ : n= 1μ = 1000 (do xung nhịp thạch anh là 12Mhz nên ta sẽ tính được xung nhịp của vxl là 1Mhz) Tính giá trị cần nạp TH và TL là: 65536 – 10000=55536 Chuyển sang mã hex là: D8F0 Vậy ta có giá trị cần nạp là TH = D8H và TL = F0H Lưu đồ thuật toán:
  • 10. Start code: org 00h Xóa P1.0 nop TMOD #10H sjmp start org 03h ;int ex0 nop TL1 #0F0H reti TH1 #0D8H org 0bh ;int timer0 TR1 1 nop reti no org 13h ;int ex1 TF1 = 0 nop yes reti org 1bh ;int timer1 Xóa TR1 nop Đảo P1.7 reti Xóa TF1 org 23h; int serial sjmp nop reti org 50h start : mov tmod,#10H again : mov TL1,#0F0H
  • 11. mov TH1,#0D8H setb SR1 back : jnb TF1,back clr TR1 cpl p1.7 clr TF1 sjmp again
  • 12. Bài 6: Tính toán: Chu kỳ song T = = 1s Thời gian của phần cao 0,7.T = 0,7s , Số xung nhịp là n = = 700000 > 216 do đó không thể nạp được 1μ Giá trị của TL và TH. Nên ta phải sử dụng bộ đếm giữ chậm để tăng được T. Giả sử ta giữ xung nhịp 20 lần khi đó số xung nhịp cần nạp là 70000 do đó ta tính được giá trị nạp vào TH là 77H và TL là 48H Mã lệnh: org 00h nop sjmp start org 03h ;int ex0 nop reti org 0bh ;int timer0 nop reti org 13h ;int ex1 nop reti org 1bh ;int timer1
  • 13. Lưu đồ thuật toán: Start nop reti org 23h; int serial tmod #10H nop reti R3 #20h org 50H TL1 #48h start : TH1 #77h mov tmod,#10H TR1 1 again : mov R3,#20h mov TL1,#48H TF1 = 0 no mov TH1,#77H yes setb TR1 back : jnb TF1,back Xóa TR1 clr TR1 Đảo P1.1 cpl p1.1 Xóa TF1 clr TF1 R3 - 1 djnz R3,again no R3 = 0 yes
  • 14. Start Bài 7: Giả sử baud = 9600 và XTAL=12Mhz dptr #456H Code: R7 300D org 50H tmod #20H start: TH1 -3D mov tmod,#20H SCON #50H mov TH1,#-3D TR1 1 mov scon,#50H mov dptr,#456H mov R7,#300D CLR RI setb TR1 A SBUF here : jnb RI,here @dptr A mov A,sbuf Dptr + 1 mov @dptr,A R7 - 1 clr RI inc dptr no R7 = 0 djnz R7,here RET yes Ret
  • 15. Start Bài 8: code: tmod #01h ;P1.0 = 0 nop TH0 #9Eh ;P1.1 = 1 sjmp start TL0 #58h ;P1.2 = 1 org 03h ;int ex0 R1 #20h ;P1.3 = 1 nop R2 #33h ;P1.4 = 1 reti TR0 1 ;P1.5 = 0 org 0bh ;int timer0 nop delay reti R2-1 org 13h ;int ex1 nop no R2 = 0 reti org 1bh ;int timer1 yes nop reti P1.0 = 1 org 23h; int serial P1.1 = 0 nop R2 #03h reti org 100h no R2 = 0 start: yes
  • 16. P1.1 = 1 P1.2 = 0 mov tmod,#01h P1.3 = 0 mov TH0,#9Eh P1.5 = 1 mov TL0,#58h R2 #25h mov R1,#20h mov R2,#33h no setb P1.0 R2 = 0 setb P1.1 yes setb P1.2 setb P1.3 P1.3 = 1 setb P1.4 P1.4 = 0 clr P1.5 R2 #03h setb TR0 back1: lcall delay R2 = 0 no djnz R2,back1 yes setb P1.0 clr P1.1 mov R2,#03h back2 : lcall delay djnz R2,back2 set P1.1 clr P1.2 clr P1.3
  • 17. delay setb P1.5 TF0 = 0 mov R2,#25h back3: lcall delay djnz R2,back3 TH0 #9Eh set P1.3 TL0 #58h clr P1.4 R1 #20h mov R2,#03h R1 -1 back4: lcall delay djnz R2,back4 no ljmp back1 R1 = 0 delay: jnb TF0, delay yes mov TH0,#9Eh Ret mov TL0,#58h mov R1,#20h djnz R1,delay ret
  • 18. Start Bài 9: code: tmod #01h org 00h TH0 #9Eh nop TL0 #58h sjmp start R1 #20h org 03h ;int ex0 P0 #10h nop TR0 1 reti org 0bh ;int timer0 R1 #10h nop lap reti org 13h ;int ex1 R1 #00h nop reti lap org 1bh ;int timer1 nop reti org 23h; int serial nop reti org 100h
  • 19. start : lap clr EA mov tmod,#01h no mov TH0,#9Eh TF0 = 0 mov TL0,#58h yes mov R0,#20h TH0 #9Eh mov P0,#10h TL0 #58h setb TR0 R2 #0Ah mov R1,# 10h A R1 lcall lap R0 - 1 mov R1,#00h lcall lap R0 = 0 lap: yes back : jnb TF0,back R2- 1 mov TH0,#9Eh A A+@R2 mov TL0,#58h P0 A mov R2,#0Ah mov A,R1 R2 = 0 djnz R0,back no yes Back1: dec R2 add A,@R2 ret mov P0,A
  • 20. cjne R2,#00h,back1 ret sjmp start Sơ đồ phần cứng
  • 21. Start Bài 10: code: tmod #100h org 00h TH1 0 nop P3.5 1 sjmp start R7 #80h org 03h ;int ex0 nop TR1=1 reti A TL1 org 0bh ;int timer0 P2 A nop reti org 13h ;int ex1 TF1 = 0 nop reti org 1bh ;int timer1 TR1 0 nop TF1 0 reti R7 - 1 org 23h; int serial nop R7 = 0 reti org 50h
  • 22. start: mov tmod,#60h mov TH1,#00h setb P3.5 again: setb TR1 back: mov A,TL1 mov P2,A jnb TF1,back clr TR1 clr TF1 djnz R7,again ljmp start