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
  • gagafayfay
    Thành viên chính thức
    • May 2012
    • 58

    #1

    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 !

    đây là lần đầu em làm quen với KeilC
    có bài này nhờ các bác chỉ dùm em! đề bài là:
    " lập trình nháy 1 led đơn ở chan p1.0 đúng 8 lần thì tắt!"
    em làm mấy lần cũng không tắt led đc! dùng proteus mô phỏng thì thấy led cứ nháy liên tục không dừng lại ! bác nào giúp em với. thanks!
  • minh_cly
    Thành viên tích cực
    • Mar 2011
    • 595

    #2
    Nguyên văn bởi gagafayfay Xem bài viết
    đây là lần đầu em làm quen với KeilC
    có bài này nhờ các bác chỉ dùm em! đề bài là:
    " lập trình nháy 1 led đơn ở chan p1.0 đúng 8 lần thì tắt!"
    em làm mấy lần cũng không tắt led đc! dùng proteus mô phỏng thì thấy led cứ nháy liên tục không dừng lại ! bác nào giúp em với. thanks!
    Bạn dùng 1 vòng lặp for (i = 0; i < 8; i++), cho i chạy từ 0 cho tới 7 thì nháy đúng 8 lần thoy (đây là kiến thức lập trình cơ bản đó nhá).
    Computer Science major - Vietnamese-German University
    Sponsored by

    Comment

    • vinhtk1205
      Thành viên chính thức
      • Jul 2012
      • 59

      #3
      for (i=0;i<=7;++i)
      {
      P1=255;
      delay(100);
      P1=0xfe;
      }
      P1=255;
      yh: vinhtk1205
      ngu phải học

      Comment

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

        #4
        Nguyên văn bởi vinhtk1205 Xem bài viết
        for (i=0;i<=7;++i)
        {
        P1=255;
        delay(100);
        P1=0xfe;
        }
        P1=255;
        Thiếu delay sau dòng P1=0xfe;, ko thoy thì vừa mới tắt là bật lên lại đó.
        Computer Science major - Vietnamese-German University
        Sponsored by

        Comment

        • vinhtk1205
          Thành viên chính thức
          • Jul 2012
          • 59

          #5
          Thiếu delay sau dòng P1=0xfe;, ko thoy thì vừa mới tắt là bật lên lại đó.
          Uhm ! Bn nói chuẩn rồi . he
          yh: vinhtk1205
          ngu phải học

          Comment

          • mast090
            Thành viên tích cực
            • Oct 2010
            • 1018

            #6
            kết cho cái while(1) vào thì đảm bảo chết đứng
            trên lý thuyết thì chạy 8 lần là dừng đúng theo cấu trúc của C nhưng trên thực tế thì chạy hết chương trình trong main con vdk nó tự chạy lại từ đầu, bao gồm cả các hàm và biến khởi tạo
            Website chính thức đổi địa chỉ website thành
            Mời các bạn ghé thăm !!!

            Comment

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

              #7
              Nguyên văn bởi mast090 Xem bài viết
              kết cho cái while(1) vào thì đảm bảo chết đứng
              trên lý thuyết thì chạy 8 lần là dừng đúng theo cấu trúc của C nhưng trên thực tế thì chạy hết chương trình trong main con vdk nó tự chạy lại từ đầu, bao gồm cả các hàm và biến khởi tạo
              Chính xác là nó bị reset.
              Computer Science major - Vietnamese-German University
              Sponsored by

              Comment

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

                #8
                Nguyên văn bởi mast090 Xem bài viết
                kết cho cái while(1) vào thì đảm bảo chết đứng
                trên lý thuyết thì chạy 8 lần là dừng đúng theo cấu trúc của C nhưng trên thực tế thì chạy hết chương trình trong main con vdk nó tự chạy lại từ đầu, bao gồm cả các hàm và biến khởi tạo
                sửa lại như thế này được không?
                Code:
                while(1)
                {
                while(i!=8)
                {
                p1.0=1;
                delay(100);
                p1.0=0;
                delay(100);
                i++;
                }
                }

                Comment

                • kidteam
                  Thành viên tích cực
                  • Nov 2010
                  • 1633

                  #9
                  vấn đề của chủ thớt là đúng 8 lần rồi tắt
                  -> đơn giản là nháy 8 lần (có thể dùng for), xong ta cho while(1);
                  thế là xong

                  Comment

                  • toanddt
                    Thành viên tích cực
                    • Dec 2011
                    • 327

                    #10
                    mình cũng mới tập tành vdk, mình cũng làm thử bài này mình dung asm chứ không phải c, mình làm nó nháy đúng 8 lần nhưng rồi nó không tắt mà cứ sáng hoài luôn

                    Comment

                    • toanddt
                      Thành viên tích cực
                      • Dec 2011
                      • 327

                      #11
                      rồi rồi mình làm được rồi thay vì cho led chạy mức 1 mình cho nó chạy mức 0 nên khi kết thúc vòng lặp thì nó tắt luôn

                      Comment

                      • mast090
                        Thành viên tích cực
                        • Oct 2010
                        • 1018

                        #12
                        Nguyên văn bởi caovanhuong Xem bài viết
                        sửa lại như thế này được không?
                        Code:
                        while(1)
                        {
                        while(i!=8)
                        {
                        p1.0=1;
                        delay(100);
                        p1.0=0;
                        delay(100);
                        i++;
                        }
                        }
                        chuẩn men, nói chung là nhiều cách
                        Website chính thức đổi địa chỉ website thành
                        Mời các bạn ghé thăm !!!

                        Comment

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

                          #13
                          Nguyên văn bởi mast090 Xem bài viết
                          chuẩn men, nói chung là nhiều cách
                          Cũng đc thoy, nhưng dễ gây khó hỉu.
                          Computer Science major - Vietnamese-German University
                          Sponsored by

                          Comment

                          • kidteam
                            Thành viên tích cực
                            • Nov 2010
                            • 1633

                            #14
                            Code:
                            uchar i;
                            void main() {
                            	for(i=0;i<8;++i) {
                            		P1_0=0; //bat led
                            		delay_ms(200);
                            		P1_0=1; //tat led
                            		delay_ms(200);
                            	}
                            	//sau khi het 8 lan
                            	while(1);
                            }
                            chắc đơn giản hơn code của em Hương rồi

                            Comment

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

                              #15
                              Nguyên văn bởi kidteam Xem bài viết
                              Code:
                              uchar i;
                              void main() {
                              	for(i=0;i<8;++i) {
                              		P1_0=0; //bat led
                              		delay_ms(200);
                              		P1_0=1; //tat led
                              		delay_ms(200);
                              	}
                              	//sau khi het 8 lan
                              	while(1);
                              }
                              chắc đơn giản hơn code của em Hương rồi
                              Chính xác, đây là cái đơn giản nhất.
                              Computer Science major - Vietnamese-German University
                              Sponsored by

                              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...