Announcement

Collapse
No announcement yet.

Góc học tập vi xử lý- vi điều khiển

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Góc học tập vi xử lý- vi điều khiển

    tình hình là kithuatmaytinh.net tạm not found nên mình lập ra topic này để các bạn cùng chia sẻ học môn vi xử lý- vi điều khiển này


    đây là part2 trong lab1:

    ORG 0000H
    MOV A, #7FH
    MOV R0, #FFH
    LOOP1: DJNZ R0, LOOP2// NHẢY TỚI THỰC HIỆN LOPP2 ĐỒNG THỜI GIẢM RO ĐI 1 ĐƠN VỊ,LẶP LẠI CHO ĐẾN KHI R0=0.
    MOV 90H, #FFH ; 90H is byte address of Port3.// GÁN FF CHO P1
    RL A// DỊCH CHUYÊN A SANG TRÁI
    ANL 90H, A //AND P1 VỚI A
    MOV R0, #FFH
    SJMP LOOP1
    LOOP2:
    MOV 8AH, #LOW(-10000) ; 8AH is byte address of register
    TL0
    MOV 8CH, #HIGH(-10000); 8CH is byte address of register
    TH0
    //TẠO TÍN HIỆU DELAY 10MS
    MOV 89H,#01H ; 89H is byte address of register TMOD// BẬT THANH GHI TMOD
    SETB 8CH ; 8CH is bit address of bit TR0// SETB TR0( TIMER RUN 0 ) LÊN 1 ĐỂ CHƯƠNG TRÌNH BẮT ĐẦU ĐẾM
    LOOP3: JNB 8DH, LOOP3 ; 8DH is bit address of bit TF0// LÊNH KIỂM TRA BIT TRÀN TF0- ( TIMER FLAG) -
    CLR 8DH// NGƯNG TL0
    CLR 8CH// NGƯNG TH0
    SJMP LOOP1// LẶP LOOP1 VÔ ĐIỀU KIỆN
    END


    hoặc mình cũng có thể viết như sau:

    #include <sfr52.inc>
    ORG 0H
    MOV P1,#FFH
    ACALL DELAY10MS
    MOV A,#11111110B

    XOAYA:

    ACALL DELAY10MS
    RL A
    MOV P1,A
    JMP XOAYA

    ;CHUONG TRINH DELAY10MS

    DELAY10MS: MOV TH0,#HIGHT(-10000)
    MOV TL0,#LOW(-10000)
    SETB TR0
    JNB TF0,$
    CLR TR0
    CLR TF0
    RET
    END


    /// nếu không viết ct delay các bạn có thể dùng chương trình delay mặc định là 1s




    /////////////////////////////

    đây là mình tự làm,bạn nào nếu thấy mình làm sai thì cùng sửa nha.

    và ai biết làm bài part3,4 thì share lên cho mọi người tham khảo nha, bạn nào chỉ mình là: nếu dùng button thì như thế nào? tác động ngắt ngoài ( dùng counter hay sao?) còn nếu không dùng button thì mình có thể làm được!
    Last edited by 10520397; 16-10-2012, 19:26.
    Lê Bá Nhựt UIT-CE05
    Phone: 0968-868-300
    Email: nhutlbuit@gmail.com

    Enthuse + Creative + Try => Success

  • #2
    /// nếu không viết ct delay các bạn có thể dùng chương trình delay mặc định là 1s
    ủa chương trình delay mặc định là sao thế bạn ???
    Một khẩu súng giữ hai trời Nam Bắc,
    Một dấu chân in màu đất hai miền.

    ------------------------------------------------------

    Comment


    • #3
      em thấy trong protus khi không cần xây ct delay vẫn có thể sử dụng dc( dùng source - create file *.asm). chỉ cần acall delay là nó lấy ct delay trong đó ra, 1s thì phải. nhưng trong reads51 thì nó không hiểu,mình phải xây dựng ct delay
      Lê Bá Nhựt UIT-CE05
      Phone: 0968-868-300
      Email: nhutlbuit@gmail.com

      Enthuse + Creative + Try => Success

      Comment


      • #4
        Originally posted by 10520397 View Post
        em thấy trong protus khi không cần xây ct delay vẫn có thể sử dụng dc( dùng source - create file *.asm). chỉ cần acall delay là nó lấy ct delay trong đó ra, 1s thì phải. nhưng trong reads51 thì nó không hiểu,mình phải xây dựng ct delay
        giờ mới biết ... tìm hiểu tốt đấy :love:
        Một khẩu súng giữ hai trời Nam Bắc,
        Một dấu chân in màu đất hai miền.

        ------------------------------------------------------

        Comment


        • #5
          Đây là part3 và part4 của mình. Đây là code do mình viết nên ko giống như phần gợi ý trong file lab. Các bạn tham khảo rồi chỉnh sửa lại cho phù hợp với mô phổng của mình. Hiện giờ mạng chậm quá nên mình không up file proteus của mình lên được. Mong các bạn thông cảm nhe!
          Mình viết bang notepad nên các bạn nào viết bằng cái khác thì thêm thư viện gì gì đó vào nha!
          part3.
          ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> LAP1_PART3 >>>>>>>>>>>>>>>>>>>>>>>>>>
          ;DUNG INTERRUPT 0 DE DIEU KHIEN LED TREN BL202 SAO CHO MOI LAN
          ;TAC DONG LEN SW333 THI LED SE DUOC DICH TU LED 0 - DEN LED 1
          ;DEN SANG TAT PHU THUOC VAO CACH MAC CAC CHAN ANOT VA CATOT CUA LED
          ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>


          ORG 0000H
          LJMP MAIN
          ;---------------------------------------------------------------------
          ORG 0003H ; TRO DEN DIA CHI INTERRUP 0

          RL A ; XOAY TRAI BIT THANH GHI A
          RETI ; KET THUC NGAT
          ;---------------------------------------------------------------------
          ORG 0030H ; TRO DEN DIA CHI 30H DE THUC HIEN HAM MAIN
          MAIN:
          MOV IE,#81H ; CHO PHEP NGAT NGOAI 0 HOAT DONG
          SETB IT0 ; DAT CHE DO NGAT NGOAI KICH KHOI CANH
          MOV A, #0FEH ; GIA TRI A = (11111110b)
          LOOP:
          MOV P1, A ; DUA GIA TRI A VAO P1 DE XUAT RA CAC LED
          SJMP LOOP ; QUAY LAI LOOP
          ;---------------------------------------------------------------------
          END
          part 4
          ;>>>>>>>>>>>>>>>>>>>>>>>>>>> LAB1_PRAT4 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
          ;DUNG INTERRUPT 0 DE DIEU KHIEN LED TREN BL202 SAO CHO MOI LAN
          ;TAC DONG LEN SW333 THI LED SE DUOC DICH TU LED 0 - DEN LED 7 SAU DO
          ;SE NGUOC LAI TU 7 - 0
          ;DEN SANG TAT PHU THUOC VAO CACH MAC CAC CHAN ANOT VA CATOT CUA LED
          ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>


          ORG 0000H
          LJMP MAIN
          ;---------------------------------------------------------------------
          ORG 0003H ; TRO DEN DIA CHI INTERRUP 0

          JC DICHTRAI ; NEU C = 0 NHAY DEN DICHTRAI
          DICHPHAI:
          RR A ; DICH PHAI A
          DJNZ R0,KETTHUCNGAT ; R0 = R0 - 1; NEU R0 > 0 THI NHAY DEN KETTHUCNGAT
          SJMP CHUYEN ; NHAY DEN CHUYEN
          DICHTRAI:
          RL A ; DICH TRAI A
          DJNZ R0,KETTHUCNGAT ; R0 = R0 - 1; NEU R0 > 0 THI NHAY DEN KETTHUCNGAT
          CHUYEN:
          CPL C ; DAO TRANG THAI C
          MOV R0,#7 ; R0 = 7
          KETTHUCNGAT:
          RETI ; KET THUC HAM NGAT

          ;---------------------------------------------------------------------
          ORG 0030H ; TRO DEN DIA CHI 30H DE THUC HIEN HAM MAIN
          MAIN:
          MOV IE,#81H ; CHO PHEP NGAT NGOAI 0 HOAT DONG
          SETB IT0 ; DAT CHE DO NGAT NGOAI KICH KHOI CANH
          MOV A, #0FEH ; GIA TRI A = (11111110b)
          MOV R0,#7 ; R0 = 7
          SETB C ; CO C = 1
          LOOP:
          MOV P1, A ; DUA GIA TRI A VAO P1 DE XUAT RA CAC LED
          SJMP LOOP ; QUAY LAI LOOP
          ;---------------------------------------------------------------------

          END
          Last edited by 10520496; 17-10-2012, 18:21.
          TRẦN QUANG VINH
          ĐT: 01688200 sáu sáu sáu
          mail: vinhtq191@gmail(dot)com

          Comment


          • #6
            thật là tốt quá,có cái để nghiên cứu- còn vấn đề hiểu hay không thì con tùy..

            MONG CÁC BẠN CE05 CÙNG NHAU THẢO LUẬN HỌC TẬP SẼ HIỆU QUẢ HƠN!
            Lê Bá Nhựt UIT-CE05
            Phone: 0968-868-300
            Email: nhutlbuit@gmail.com

            Enthuse + Creative + Try => Success

            Comment


            • #7
              MOV A, #7FH; chỗ này tức là 0111.111b- thầy dùng bật bit7,còn không mình dùng bật bit 1: 1111.1110b cũng được,khi RL nó sẽ chạy từ bit0.
              ANL 90H, A ; lệnh and này thực chất chính là gán a vào cho p1,lúc này p1= 0111.1111b=7H

              tiện thể ai biết cho mình hỏi: thanh ghi TR0,TF0 nằm ở địa chỉ nào vậy? ( vì mình thấy: TR0,TF0 nằm trong TCON) mà TCON thì nằm ở địa chỉ 88H.
              Lê Bá Nhựt UIT-CE05
              Phone: 0968-868-300
              Email: nhutlbuit@gmail.com

              Enthuse + Creative + Try => Success

              Comment


              • #8
                Originally posted by 10520397 View Post

                tiện thể ai biết cho mình hỏi: thanh ghi TR0,TF0 nằm ở địa chỉ nào vậy? ( vì mình thấy: TR0,TF0 nằm trong TCON) mà TCON thì nằm ở địa chỉ 88H.
                Nó là các bit nằm trong thanh ghi TCON chứ nó không phải là thành ghi. TCON là thanh ghi 8 bit. Vì vậy nó sẽ có 2 bit là TR0 và TF0 nằm trong đó. Ngoài ra còn có 6 bit khác với các chức nằng khác.
                Thanh ghi TCON như sau: TF1(8FH) ,TR1(8EH),TF0(8DH), TR0(8CH), IE1(8BH) ,IT1(8AH) ,IE0(89H), IT0(80H)
                Bạn xem trang 69 chương 4 sách Tống Văn On nhe
                Thí dụ bạn muốn cho TR0 = 1 và TF0 = 1 thì ta có thể làm như sau:
                MOV TCON,#xx11xxxxb (với x là giá trị các bít khác bạn có thể cho nó bang 0 hay 1 tùy theo nhu cầu).
                hoặc đơn giản:
                SETB TR0
                SETB TF0
                hoặc
                thay địa chỉ nó vào cũng được.
                Mà là gì cần phải nhớ đến địa chỉ nó chi cho mệt vậy?
                Last edited by 10520496; 12-10-2012, 22:25.
                TRẦN QUANG VINH
                ĐT: 01688200 sáu sáu sáu
                mail: vinhtq191@gmail(dot)com

                Comment


                • #9
                  TR0 nằm trong bit thứ 4, TF0 nằm trong bit thứ 5 của TG TCON. nhưng ở đây:
                  " SETB 8CH ; 8CH is bit address of bit TR0// 8CH-> address TR0???
                  LOOP3: JNB 8DH, LOOP3 ; 8DH is bit address of bit TF0 // 8DH-> address TF0??? "

                  cái này mình thấy không hiểu! ai biết thì giải thích giùm nha.
                  Lê Bá Nhựt UIT-CE05
                  Phone: 0968-868-300
                  Email: nhutlbuit@gmail.com

                  Enthuse + Creative + Try => Success

                  Comment


                  • #10
                    Originally posted by 10520397 View Post
                    thật là tốt quá,có cái để nghiên cứu- còn vấn đề hiểu hay không thì con tùy..

                    MONG CÁC BẠN CE05 CÙNG NHAU THẢO LUẬN HỌC TẬP SẼ HIỆU QUẢ HƠN!
                    Nếu bạn nào có niềm đam mê vi điều khiển thì có thể cùng mình trao đổi qua mail, sđt bên đưới chữ ký (mình cũng mê món này lắm!). Hoặc thứ 7 học cùng chúng ta có thể gặp nhau thảo luận.
                    Hjhj trước lạ sau quen mà!
                    Thứ 7 tôi thường ngồi ở bàn I đó.
                    TRẦN QUANG VINH
                    ĐT: 01688200 sáu sáu sáu
                    mail: vinhtq191@gmail(dot)com

                    Comment


                    • #11
                      Tại sao mình ko thể tìm thấy tên mấy cái linh kiện trong lab 1 nhỉ??? CHỉ tìm được con IC AT89C52. Ai chỉ giùm mấy cái tên của nó giúp mình với??? TKS all!!!
                      Mail: ba.thanh9x@gmail.com
                      YH: ba.thanh9x08

                      Comment


                      • #12
                        Originally posted by 09520652 View Post
                        Tại sao mình ko thể tìm thấy tên mấy cái linh kiện trong lab 1 nhỉ??? CHỉ tìm được con IC AT89C52. Ai chỉ giùm mấy cái tên của nó giúp mình với??? TKS all!!!
                        Tìm các tên ở phía bên trái đó!
                        lab 1.png

                        các tên sau:
                        - led-bargraph-grn
                        - cap
                        - crystal
                        - dipsw_3
                        - button
                        TRẦN QUANG VINH
                        ĐT: 01688200 sáu sáu sáu
                        mail: vinhtq191@gmail(dot)com

                        Comment


                        • #13
                          Originally posted by 09520652 View Post
                          Tại sao mình ko thể tìm thấy tên mấy cái linh kiện trong lab 1 nhỉ??? CHỉ tìm được con IC AT89C52. Ai chỉ giùm mấy cái tên của nó giúp mình với??? TKS all!!!
                          interrupt ngoai.png nếu bạn chưa biết dùng bus,.... này kia thì thiết kế zj là được rồi bạn ah. bạn tìm sách hướng dẫn sử dụng protus ah,chứ mò thì không biết khi nào mới biết được đâu.
                          Lê Bá Nhựt UIT-CE05
                          Phone: 0968-868-300
                          Email: nhutlbuit@gmail.com

                          Enthuse + Creative + Try => Success

                          Comment


                          • #14
                            OK tks các bạn, đọc mấy cái hướng dẫn rồi mà ko thấy mới hỏi, mà trong lab1 nó ko có ghi tên bên dưới ngoại trừ con IC nên tìm hoài ko ra. Giờ biết tên rồi thì Ok
                            Mail: ba.thanh9x@gmail.com
                            YH: ba.thanh9x08

                            Comment


                            • #15
                              mấy bạn có các Lab khác không? hay Lab3 cũng được. Up cho mình với.
                              Cám ơn!

                              Comment

                              LHQC

                              Collapse
                              Working...
                              X