em mới làm quen với lập trình 89s52 bằng KEILC , bác nào giúp em bài này với! hic !

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • tan955
    Thành viên chính thức
    • Jul 2012
    • 70

    #16
    chưa chắc

    uchar i;
    void main() {
    for(i=0;i<16;++i) {
    P1_0=!P1_0; //dao led
    delay_ms(200);

    }
    //sau khi het 8 lan
    while(1);
    }
    lập trình vi điều khiển 8051 - avr - pic- thiết kế mạch điện tử

    Học Hiểu Nguyên Tắc - Tuân Theo Nguyên Tắc - Giải Trừ Nguyên Tắc

    Comment

    • gagafayfay
      Thành viên chính thức
      • May 2012
      • 58

      #17
      em đã làm đc rồi! thanks cả nhà nhiều! vui quá hihi

      Comment

      • gagafayfay
        Thành viên chính thức
        • May 2012
        • 58

        #18
        em đã làm xong! chạy cũng đạt yêu cầu nhưng hơi dài!hihi thanks cả nhà nhièu!mjjjjjjjjjjjjjj chk...
        #include <regx51.h>
        unsigned int x,y;
        //------------cac ham con------------
        //------------chuong trinh con giu cham---
        void giucham()
        {
        for(y=0;y<8;y++)
        {
        for(x=0;x<12000;x++){}
        }
        }
        //chuong trinh con nhay led----
        void nhayled()
        {
        P1_0=0;
        giucham();
        P1_0=1;
        giucham();
        P1_0=0;
        giucham();
        P1_0=1;
        giucham();
        P1_0=0;
        giucham();
        P1_0=1;
        giucham();
        P1_0=0;
        giucham();
        P1_0=1;
        giucham();
        P1_0=0;
        giucham();
        P1_0=1;
        giucham();
        P1_0=0;
        giucham();
        P1_0=1;
        giucham();
        P1_0=0;
        giucham();
        P1_0=1;
        giucham();
        P1_0=0;
        giucham();
        P1_0=1;
        giucham();
        }
        //------------chuong trinh chinh---------
        void main (void)
        {
        while(1)
        {
        nhayled();
        while(1);
        }
        }
        //---------------------------------------
        Last edited by gagafayfay; 14-07-2012, 09:08.

        Comment

        • bienhou
          Thành viên tích cực
          • Dec 2011
          • 971

          #19
          Nguyên văn bởi gagafayfay Xem bài viết
          em làm như thế này và chạy đc! đã đạt yêu cầu!
          #include <AT89x52.h>
          unsigned int x,y;
          void giucham()
          {
          for (y=0;y<8;y++)

          for (x=0;x<12000;x++) {}
          }

          void nhayled()

          {
          P1_0=0;
          giucham();
          P1_0=1;
          giucham();
          P1_0=0;
          giucham;
          P1_0=1;
          giucham();
          P1_0=0;
          giucham;
          P1_0=1;
          giucham();
          P1_0=0;
          giucham;
          P1_0=1;
          giucham();
          P1_0=0;
          giucham;
          P1_0=1;
          giucham();
          P1_0=0;
          giucham;
          P1_0=1;
          giucham();
          P1_0=0;
          giucham;
          P1_0=1;
          giucham();
          P1_0=0;
          giucham;
          P1_0=1;
          giucham();
          }
          void main (void)
          {
          while(1);
          {
          nhayled();
          while(1);
          }
          }
          2 cái vòng while(1); của bạn đều có ý là ko làm gì cả. vậy vì sao bạn phải dùng 2 lệnh while. Mình nghĩ bạn có thể bỏ cái while ở trên đi được
          Nguyễn Huy Biên - 01649 802 694
          gmail :

          Comment

          • minh_cly
            Thành viên tích cực
            • Mar 2011
            • 595

            #20
            Nguyên văn bởi tan955 Xem bài viết
            chưa chắc

            uchar i;
            void main() {
            for(i=0;i<16;++i) {
            P1_0=!P1_0; //dao led
            delay_ms(200);

            }
            //sau khi het 8 lan
            while(1);
            }
            Về cơ bản thì đảo bit thực thi lâu hơn set bit. Nên cách này ko tối ưu (và cũng ko đơn giản nữa).
            Computer Science major - Vietnamese-German University
            Sponsored by

            Comment

            • tan955
              Thành viên chính thức
              • Jul 2012
              • 70

              #21
              Nguyên văn bởi minh_cly Xem bài viết
              Về cơ bản thì đảo bit thực thi lâu hơn set bit. Nên cách này ko tối ưu (và cũng ko đơn giản nữa).
              cũng chưa hẵn vì Asm có sắn lệnh CPL , hi vọng trình biên dịch thông minh , và đằng nào cũng phải delay . ok!
              lập trình vi điều khiển 8051 - avr - pic- thiết kế mạch điện tử

              Học Hiểu Nguyên Tắc - Tuân Theo Nguyên Tắc - Giải Trừ Nguyên Tắc

              Comment

              • caovanhuong
                Thành viên tích cực
                • Oct 2008
                • 1800

                #22
                Nguyên văn bởi gagafayfay Xem bài viết
                em đã làm xong! chạy cũng đạt yêu cầu nhưng hơi dài!hihi thanks cả nhà nhièu!mjjjjjjjjjjjjjj chk...
                Code:
                #include <regx51.h>
                unsigned int x,y;
                //------------cac ham con------------
                //------------chuong trinh con giu cham---
                void giucham()
                {
                for(y=0;y<8;y++)
                {
                for(x=0;x<12000;x++){}
                }
                }
                //chuong trinh con nhay led----
                void nhayled()
                {
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                }
                //------------chuong trinh chinh---------
                void main (void)
                {
                while(1)
                {
                nhayled();
                while(1);
                }
                }
                //---------------------------------------
                viết như vầy này cho cực. nhưng sửa lại cho bạn để đỡ mất cái lệnh while

                Code:
                #include <regx51.h>
                unsigned int x,y;
                //------------cac ham con------------
                //------------chuong trinh con giu cham---
                void giucham()
                {
                for(y=0;y<8;y++)
                {
                for(x=0;x<12000;x++){}
                }
                }
                //------------chuong trinh chinh---------
                void main (void)
                {
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                P1_0=0;
                giucham();
                P1_0=1;
                giucham();
                
                while(1)
                {
                // khỏi cần code gì hết.
                }
                }
                //---------------------------------------

                Comment

                Về tác giả

                Collapse

                gagafayfay Tìm hiểu thêm về gagafayfay

                Bài viết mới nhất

                Collapse

                Đang tải...