Thông báo

Collapse
No announcement yet.

Xin sửa giúp CODE PIC 16f877a

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

  • Xin sửa giúp CODE PIC 16f877a

    #include <16f877a.h>// Khai bao thu vien
    #fuses PUT, HS, NOWDT, NOPROTECT, NOLVP// Cau hinh
    #USE delay(clock=20000000)// Khai bao tan so thach anh
    #use fast_io(b)// Su dung cong b de lap trinh
    #define portb 0x06
    int8 mode,i;
    byte temp;
    void program1(){
    output_b(0);
    delay_ms(500);
    output_b(255);
    delay_ms(500);
    }
    void program2(){
    output_b(0);
    delay_ms(500);
    output_b(0x80);
    delay_ms(500);
    }
    void program3(){
    output_b(0);
    delay_ms(500);
    output_b(0xC0);
    delay_ms(500);
    }
    void program4(){
    output_b(0);
    delay_ms(500);
    output_b(0xE0);
    delay_ms(500);

    }
    void program5(){
    output_b(0);
    delay_ms(500);
    output_b(0xF0);
    delay_ms(500);

    }
    void program6(){
    output_b(0);
    delay_ms(500);
    output_b(0xF8);
    delay_ms(500);

    }
    void program7(){
    output_b(0);
    delay_ms(500);
    output_b(0xFC);
    delay_ms(500);

    }
    void program8(){
    output_b(0);
    delay_ms(500);
    output_b(0xFE);
    delay_ms(500);

    }
    void program9(){
    temp=0xFF;
    for(i=0;i<=8;i++){
    portb=temp;

    delay_ms(500);
    temp=temp>>1;
    }
    }

    void main(){
    set_tris_b(0);
    while(1){
    program1();
    program2();
    program3();
    program4();
    program5();
    program6();
    program7();
    program8();

    }

    }
    EM MỚI TẬP TÀNH TỰ HỌC PIC MONG AC GIÚP ĐỠ: báo lỗi ở câu lênh portb=temp, Chuơng trình con từ program1-program8 có thay = câu lênh nào ngắn hơn dc ko ạ., lệnh lặp 1 chương trình ví dụ như program1 lặp 5 lần rồi mới chuyển sang các program tiếp theo làm thế nào ạ ?
    EM CẢM ƠN RẤT NHIỀU !

  • #2
    tại sao bạn lại "define portb 0x06" ?? portb đã được định nghĩa trong file 16f877a.h rồi.bạn sẵn dùng ko phải định nghĩa lại nhé. Nếu bạn muốn xuất temp ra port thì có thể làm output_b ( temp ) ;

    Comment


    • #3
      Bạn cũng có thể thay thế bằng đoạn code này. Chỉ cần sử dụng lệnh dịch bit thôi là đủ rồi.
      signed char i ;
      for ( i = 7 ; i > 0 ; i -- )
      {
      output_b ( 0 ) ;
      delay_ms ( 500 ) ;
      output_b(0xff<<i) ;
      }

      Comment


      • #4
        Em cảm ơn anh phuphuongbk nhé !

        Comment


        • #5
          sorry mình thiếu 1 lệnh delay phía dưới
          signed char i ;
          for ( i = 7 ; i > 0 ; i -- )
          {
          output_b ( 0 ) ;
          delay_ms ( 500 ) ;
          output_b(0xff<<i) ;
          delay_ms ( 500 ) ;
          }

          Comment


          • #6
            các pro giup mình với mình mới học về con 16f877a nên chưa rõ lắm cho mình hỏi ;
            nếu minh bấm buton1 lệnh xuất đc nhớ đợi khi nào mình bấm button2 thì mới xuất lệnh nhớ của button1 đc ko !!
            mong các pro chỉ giúp mình :
            ví dụ : bấm nút button1 thì nhớ lệnh 1 lại đợi khi nào button2 đc bấm mới xuất lệnh nhớ 1 của button1

            Comment


            • #7
              bạn dùng ngắt ngoài xem sao

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              • Ng.Phuong.5
                Khi in lỗ khoan ra pdf ở Orcad 9.2
                bởi Ng.Phuong.5
                Khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau.
                Không biết có ai sửa được vấn đề này không ạ? Hay đây là mặc định của orcad 9.2 rồi ạ ?
                Các cách em xem trên diễn đàn thử rồi nhưng không được ạ...
                hôm nay, 19:47
              • Ng.Phuong.5
                Khi in lỗ khoan ra pdf ở Orcad 9.2
                bởi Ng.Phuong.5
                Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
                Không biết...
                hôm nay, 19:45
              • Ng.Phuong.5
                Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
                bởi Ng.Phuong.5
                Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
                Không biết...
                hôm nay, 19:45
              • Ng.Phuong.5
                Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
                bởi Ng.Phuong.5
                Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
                Mấy con...
                hôm nay, 19:44
              • viettinh
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi viettinh
                Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
                Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
                hôm nay, 18:12
              • nguyendinhvan
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi nguyendinhvan
                Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
                Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
                Cách đơn giản...
                hôm nay, 00:04
              • Ng.Phuong.5
                Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
                bởi Ng.Phuong.5
                Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
                Mấy con...
                Hôm qua, 22:44
              • mèomướp
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi mèomướp
                Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
                Hôm qua, 19:02
              • tuyennhan
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi tuyennhan
                Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
                Hôm qua, 15:43
              • tuyennhan
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi tuyennhan
                Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
                Hôm qua, 15:28
              Đang tải...
              X