CHương trình cho PIC 16f887

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • nvm123
    Đệ tử 1 túi
    • Apr 2012
    • 13

    #1

    CHương trình cho PIC 16f887

    mọi người ơi cho em hỏi. chương trình cho pic 16f877a có khác nhau gì với pic 16f887 không ạh. em đang học vi điều khiển ông thầy bảo khi học là hoc 16f877a còn làm mạch thì dung fcon 16f887 cho rẻ. khi em mô phỏng thì em dùng con 16f877a thì chạy bình thường, còn khi em thay con 16f887 trong mô phỏng thì nó không chạy. mặc dù em đã thay #include<16f877a.h> thành #include<16f887.h> trong CCS nhưng vẫn không được. mong mọi người giúp em với ạ. em xin cám ơn!
  • nvm123
    Đệ tử 1 túi
    • Apr 2012
    • 13

    #2
    em tìm ra nguyên nhân là ngắt RB không xảy ra khi có phím bấm.còn xử ls thế nào thì em vẫn chịu vì chương trình em khai báo trong 16f877a.h là chạy bình thường. mọi người giúp em với ạ

    Comment

    • handsometran
      Đệ tử 2 túi
      • Feb 2009
      • 35

      #3
      Nguyên văn bởi nvm123 View Post
      em tìm ra nguyên nhân là ngắt RB không xảy ra khi có phím bấm.còn xử ls thế nào thì em vẫn chịu vì chương trình em khai báo trong 16f877a.h là chạy bình thường. mọi người giúp em với ạ
      Trường hợp này tôi đã gặp phải, giữa 16F877A và 887 khác nhau về một số quy định biến các từ khóa của các thanh ghi và cờ ngắt.... Nhưng về thứ tự chân đều giống nhau y chang. Mà 16F877A đang được hãng Microchip khuyến nghị chuyển sang 887, có lẽ sắp lỗi thời.

      Comment

      • shoknshok
        Nhập môn đệ tử
        • Sep 2012
        • 5

        #4
        Bạn có thể giải thích đoạn code dùng ngắt trong con này được ko? Mình cũng đang tìm hiểu nhưng không biết viết một đoạn chương trình ngắt như thế nào cả? Thanks!

        Comment

        • handsometran
          Đệ tử 2 túi
          • Feb 2009
          • 35

          #5
          Nguyên văn bởi shoknshok View Post
          Bạn có thể giải thích đoạn code dùng ngắt trong con này được ko? Mình cũng đang tìm hiểu nhưng không biết viết một đoạn chương trình ngắt như thế nào cả? Thanks!
          Tôi viết một đoạn ví dụ cho bạn xem, đầu tiên là khởi tạo ngắt. nếu bạn dùng nhiều ngắt thì dùng nguyên portB 8 pin (xem lại datasheet), còn dùng 1 ngắt thì có RB0 vì đó là chân ngắt đặt biệt. Tôi dùng RB0 để ngắt xung nhận từ encoder, mỗi khi xung cạnh xuống là báo ngắt và biến xung tăng lên 1.
          //===========INITIALIZE PWM MODUL===============================//
          void init_ngat()
          //XEM DATASHEET TRANG 128
          {
          PEIE = 1;//cho phep ngat ngoai vi
          GIE = 1;//cho phep ngat toan cuc
          INTEDG = 0;//ngat RB0 khi co xung xuong
          INTF = 0;//xoa co ngat RB0
          //INTE = 1;// chua cho phep ngat ngoai RB0 hoat dong
          //ADIE = 1;// cho phep ngat ADC
          //ADIF = 0;// xoa co bao ngat ADC
          }
          /=====CHUONG TRINH DEM XUNG ENCODER====================//
          void interrupt ISR()
          {
          if(INTF && INTE)
          {xung++;
          INTF =0;}
          }

          Bạn tham khảo chương trình trong bài tiểu luận này sẽ hiểu thêm hơn về ngắt http://www.picvietnam.com/forum/showthread.php?t=30520

          Comment

          • ksd.thainguyen
            Nhập môn đệ tử
            • Oct 2009
            • 6

            #6
            minh moi tim hieu ve pic nen chua bit phai bat dau tu dau?
            Vậy mình xin mạn phép hỏi bậc anh chị đi trước hướng dẫn giúp mình nhé?
            - cần tham khảo tài liệu nào?
            - sử dụng phần mềm gì?

            Comment

            • ksd.thainguyen
              Nhập môn đệ tử
              • Oct 2009
              • 6

              #7
              Nhap mon Pic

              dear các anh.
              minh đang lam de tai ve Pic, nhung chua biet tim hieu nhu thế nao? tham khao tai lieu gi? su dung phan mem gi?
              rất mong đựoc cấc anh hướng dẫn giúp đỡ.

              Comment

              Working...