Thông báo

Collapse
No announcement yet.

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
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #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


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

      Comment


      • #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, 10:08.

        Comment


        • #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


          • #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


            • #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


              • #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...
                X