Thông báo

Collapse
No announcement yet.

giúp sửa code 89

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • giúp sửa code 89

    Mình đang học KeilC, viết chương trình led 7 thanh đếm từ 0 đến 9;
    Phần cứng; 1 led 7 thanh anot chung nối lên +Vcc; các chân a,b,c,d,e,f,g nối với P0.0 đến p0.6
    chương trình định viết như sau:
    khai báo 1 mảng maled , phần tử là giá trị các bit số 0 đến 9 (có 10 phần tử), và 1 giá trị 0XFF để tắt hết các led,
    ở chương trình chính khai báo thêm biến i cho chạy từ 0 đến 11 (mình định dùng vòng for)
    dùng thêm vòng lặp while(1) để lặp vô hạn
    đọc giá trị từ mảng 11 phần tử và gán cho cổng P0;
    vấn đề ở đây là mình không biết cách dùng vòng for để nó đọc giá trị từ mảng 11 để gán vào cho P0;
    và mình phải bỏ vòng for , thay bằng lệnh i++;
    bây giờ chương trình cũng đếm được từ 0 đến 9 nhưng sau đó xuất hiện một số kí tự lạ và dừng ở số 8 không chạy tiếp được
    video: le7 - YouTube
    nhờ các bạn sửa hộ code (nếu dùng thêm vòng for thì tốt)
    Code:
    #include <AT89X52.H>	   
    unsigned char maled[11]={0XFF,0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
    
    /* Ham tao thoi gian tre*/
    
    void delay(long time)
    {
    	long n;
    	for(n=0;n<time;n++)
    	{;}
    }
    
    /* Chuong trinh chinh*/
    void main()
    
    {
    	unsigned char i;
    	{while(1)
    		{
    		P0=maled[i];
    		delay(10000);
    		i++;
    	}
    }
    
    }
    Click image for larger version

Name:	7sg.JPG
Views:	1
Size:	64.6 KB
ID:	1417344

    file mô phỏng: 1led7seg.zip
    Last edited by lowpass; 24-05-2013, 20:04.
    Email:
    Đau đầu vì điện tử

  • #2
    Lỗi

    Bạn tăng i lên đến 9 rồi mà ko reset i về 0 ak.

    Comment


    • #3
      reset bằng lệnh gì hả bạn?
      Email:
      Đau đầu vì điện tử

      Comment


      • #4
        Nguyên văn bởi lowpass Xem bài viết
        reset bằng lệnh gì hả bạn?
        thì if ( i==9) { i=0;} ... động não lên chứ !
        Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

        Comment


        • #5
          theo mình thì làm thế này :

          for(i=0;i<10;i++)
          {
          PORTx = maled[i];
          }

          thế là nó lôi từ maled[0] đến maled[9] ra thôi !
          Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

          Comment


          • #6
            cám ơn Bác Quế Dương, trong vòng while, em dùng for(i=0;i<11;i++) chương trình đã chạy tốt.
            Email:
            Đau đầu vì điện tử

            Comment


            • #7
              Cái này thuộc về cơ bản của C bạn đùa hay thật thế mà lên đây hỏi mấy câu kiểu này?

              Comment


              • #8
                Đôi lời vs myth coder

                Diễn đàn dành cho m.n trao đổi kiến thức.
                Những gì người ta không biết thì họ mới hỏi.
                Xưa có câu muốn biết phải hỏi mà.
                Ngày xưa cũng có thể bạn được đào tạo đầy đủ nhưng chắc gì chủ thớt kia đã được đào tạo.
                Bạn cũng có thể là 1 cao thủ,mình tôn trọng. Nhưng bạn đừng khinh thường người khác quá mức.
                Nếu bạn đặt mình vào người khác,mà khi bạn bị người khác khinh thường như thế thì bạn sẽ cảm thấy thế nào.

                Comment


                • #9
                  Nguyên văn bởi maingochoc Xem bài viết
                  Diễn đàn dành cho m.n trao đổi kiến thức.
                  Những gì người ta không biết thì họ mới hỏi.
                  Xưa có câu muốn biết phải hỏi mà.
                  Ngày xưa cũng có thể bạn được đào tạo đầy đủ nhưng chắc gì chủ thớt kia đã được đào tạo.
                  Bạn cũng có thể là 1 cao thủ,mình tôn trọng. Nhưng bạn đừng khinh thường người khác quá mức.
                  Nếu bạn đặt mình vào người khác,mà khi bạn bị người khác khinh thường như thế thì bạn sẽ cảm thấy thế nào.
                  Sai to:
                  + Thứ nhất chắc tui giờ vẫn ở beginer.
                  + Thứ 2 tui không được đào tạo gì cả chỉ được cái biết chút về lập trình điện tử thì mù tịt.
                  Tui nói ở đây là nói sự thật, nếu những cái cơ bản mà không có, lại không biết tự học thì rất khó để đi tiếp, vì đụng đến cái gì cũng hầu như không biết -> không làm được -> chóng nản, và lên đây hỏi thì có khi đặt câu hỏi từ sáng đến tối mới có người trả lời, mà có khi câu trả lời chưa chắc đã đúng trọng tâm. Nếu có sự kiên trì thì với những câu hỏi thuộc dòng cơ bản sẽ tìm được câu trả lời trong sách, Còn nếu không đủ kiên nhẫn thì chắc cũng sẽ không đợi được đến lúc có được câu trả lời thích đáng ở trên này.

                  Comment


                  • #10
                    Nguyên văn bởi myth-coder Xem bài viết
                    Sai to:
                    + Thứ nhất chắc tui giờ vẫn ở beginer.
                    + Thứ 2 tui không được đào tạo gì cả chỉ được cái biết chút về lập trình điện tử thì mù tịt.
                    Tui nói ở đây là nói sự thật, nếu những cái cơ bản mà không có, lại không biết tự học thì rất khó để đi tiếp, vì đụng đến cái gì cũng hầu như không biết -> không làm được -> chóng nản, và lên đây hỏi thì có khi đặt câu hỏi từ sáng đến tối mới có người trả lời, mà có khi câu trả lời chưa chắc đã đúng trọng tâm. Nếu có sự kiên trì thì với những câu hỏi thuộc dòng cơ bản sẽ tìm được câu trả lời trong sách, Còn nếu không đủ kiên nhẫn thì chắc cũng sẽ không đợi được đến lúc có được câu trả lời thích đáng ở trên này.
                    Nếu cậu chưa được đào tạo bài bản mà học kiểu thế này thì nên coppy các project hoặc các demo code đơn giản xem.. ( có thể hỏi và up lên diễn đàn để nhờ mọi người chú thích ý nghĩa và lệnh cạnh dòng code)
                    rồi sửa lại theo cách hiểu của cậu xem cậu hiểu cái vấn đề mà cái code đó làm có đúng không.....
                    rồi mới tăng quy mô code lên ( tăng thêm chức năng)
                    Chứ cậu hỏi như vậy thì rất ít người trả lời cho cậu lắm.. vì có thể là nó cơ bản nên ngại trả lời..

                    Comment


                    • #11
                      Nguyên văn bởi tan0710 Xem bài viết
                      Nếu cậu chưa được đào tạo bài bản mà học kiểu thế này thì nên coppy các project hoặc các demo code đơn giản xem.. ( có thể hỏi và up lên diễn đàn để nhờ mọi người chú thích ý nghĩa và lệnh cạnh dòng code)
                      rồi sửa lại theo cách hiểu của cậu xem cậu hiểu cái vấn đề mà cái code đó làm có đúng không.....
                      rồi mới tăng quy mô code lên ( tăng thêm chức năng)
                      Chứ cậu hỏi như vậy thì rất ít người trả lời cho cậu lắm.. vì có thể là nó cơ bản nên ngại trả lời..
                      Sao trích dẫn tui vào thế? tui có phải chủ thớt đâu?

                      Comment


                      • #12
                        Nguyên văn bởi myth-coder Xem bài viết
                        Sao trích dẫn tui vào thế? tui có phải chủ thớt đâu?
                        ah...sorry...

                        Comment


                        • #13
                          Nguyên văn bởi myth-coder Xem bài viết
                          Cái này thuộc về cơ bản của C bạn đùa hay thật thế mà lên đây hỏi mấy câu kiểu này?
                          Trước khi hỏi, mình cũng đã dùng vòng for và if rồi (sau này so sánh thấy mình viết rất chuẩn), nhưng đúng lúc đó KeilC và Proteus của mình bị lỗi:
                          http://www.dientuvietnam.net/forums/...-89c52-173898/
                          Mình đang tự học, vừa học C vừa học KeilC, nên có thể mình nắm chưa vững, không đủ tự tin nên mới hỏi, chứ không cố ý làm mất thời gian của các bạn. Cám ơn tất cả các bạn đã quan tâm.
                          Last edited by lowpass; 25-05-2013, 16:21.
                          Email:
                          Đau đầu vì điện tử

                          Comment

                          Về tác giả

                          Collapse

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

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

                          Collapse

                          Đang tải...
                          X