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

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

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


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

      Comment


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


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


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


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


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


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


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


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


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


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


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


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