Thông báo

Collapse
No announcement yet.

Hi-Tech PIC và CCS C

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

  • #46
    Mấy anh cho em hỏi, em dùng 16f84a dùng làm led nhấp nháy, em muốn dùng 2 nút nhấn, một nút khi nhấn làm led chớp tắt nhanh hơn còn nut kia thi nguoc lại, nhưng mach khi reset vẩn giử trạng thái cuối mà mình chỉnh thì mới dạt yêu cầu.
    Ý tưởng của em là em dùng ngắt RB chương trình ngắt sẽ là ghi vào efrom cua 16f84a, khi chương trình chính chạy thì lấy biến delay là giá trị đả luu trong efrom
    nhưng em gặp phải vấn đề là: em không biết cách nào ghi vào EFROM của 84a cả, em dùng ccsc 3.249 nhờ mấy anh chỉ giáo và cho ý kiến

    Comment


    • #47
      [\code]
      thu nhap dinh danh thro code
      [code\]

      Comment


      • #48
        mấy anh cho em hỏi muốn load chương trinh lên dúng cach của diển đàn thì lam thế nào

        Comment


        • #49
          Nguyên văn bởi HCL Xem bài viết
          Lang thang mãi mới kiếm được mấy cái link,gửi tặng các Pic Member.Chúc cho box Pic thêm nhộn nhịp,thấy dạo này trầm quá.Chúc mọi người ăn tết vui vẻ
          1.Hi-Tech htPicc Ver 9.50
          O day nha
          2.Hi-Tech dsPicc Ver 9.50
          Cho DSpic
          3.Pic Basic Proffesional 2.46
          Pic Basic Proffesional 2.46
          4.MikroBasic 2.2.0.0.
          MikroBasic 2.2.0.0.
          5.Micro Code Studio Plus 2.3.0.0.
          Micro Code Studio Plus 2.3.0.0.
          6.PicSimulator 5.61
          PicSimulator 5.61
          7.CCS PCWH 3.242
          CCS PCWH 3.242
          Down nhanh kẻo hết
          các anh có thể upload lại không, sao em tải không được.
          Cám ơn nhiều!
          _______________________
          hanspkt@gmail.com

          Comment


          • #50
            Nguyên văn bởi tranvanthuon Xem bài viết
            mấy anh cho em hỏi muốn load chương trinh lên dúng cach của diển đàn thì lam thế nào
            Khi soạn thảo post trong khung lớn (có 2 hàng nút phía trên) thì bạn chọn phần code cần định dạng và nhấn vào nút có hình như dấu '#'. Bạn cũng có thể dùng tag [code] để bọc phía trước đoạn code cần định dạng, còn tag [ /code] thì đặt phía sau (chú ý là tag [ /code] đúng sẽ không có khoảng trắng giữa hai dấu [ và ]).

            Thân,
            Biển học mênh mông, sức người có hạn

            Comment


            • #51
              Có ai làm về Realtime dùng Pic 16F877A , DS 1307 , Trình dịch CCS xem hộ mình đoạn code này .Sao mình làm mãi mà không được :
              Mình chỉ tạo modul : Tạo xung 1Hz trên chân SOUT

              Code:
              #use i2c(master, sda=PIN_C4, scl=PIN_C3)  // Configure Device as Master
              
              unsigned char i,value;
              
              void main(void)
              {
                 i2c_start();
                 i2c_write(0xD0);// Dinh dia chi cho slave
                 value = i2c_isr_state();
                 for(i=0;i<=7;i++)
                 {  
                    value++;
                    if (value == 0x07)
                       i2c_write(0x90);// Tao tan so 1Hz
                 }
                 i2c_stop();
                 while(1)
                 {
                 }
              }

              Comment


              • #52
                Nguyên văn bởi tranvanthuon Xem bài viết
                Mấy anh cho em hỏi, em dùng 16f84a dùng làm led nhấp nháy, em muốn dùng 2 nút nhấn, một nút khi nhấn làm led chớp tắt nhanh hơn còn nut kia thi nguoc lại, nhưng mach khi reset vẩn giử trạng thái cuối mà mình chỉnh thì mới dạt yêu cầu.
                Ý tưởng của em là em dùng ngắt RB chương trình ngắt sẽ là ghi vào efrom cua 16f84a, khi chương trình chính chạy thì lấy biến delay là giá trị đả luu trong efrom
                nhưng em gặp phải vấn đề là: em không biết cách nào ghi vào EFROM của 84a cả, em dùng ccsc 3.249 nhờ mấy anh chỉ giáo và cho ý kiến
                tui ko bit rõ là 16F84A có FLASH ko ? hình như ko ấy ! bạn dùng 16F877A đi ..con này mới có FLASH nội
                muốn ghi dữ liệu vào FLASH nội , dùng lệnh
                Code:
                write_eeprom(địa chỉ , dữ liệu ) ; delay_ms(250);
                lấy data từ FLASH , dùng lệnh
                Code:
                read_eeprom(địa chỉ ) ; delay_ms(250);
                vd : muốn ghi giá trị 0x08 vào điạ chỉ 0x01 của FLASH thì
                Code:
                write_eeprom(1,0x08) ; delay_ms(250);
                sau đó muốn xuất ra portC giá trị này thì
                Code:
                PORTC = read_eeprom(1) ; delay_ms(250);
                đơn giản thế thui !

                Comment


                • #53
                  Bộ nhớ chương trình của PIC16F84A dùng công nghệ flash, còn bộ nhớ dữ liệu của nó dùng RAM và EEPROM. EEPROM có thể giữ lại nội dung khi chip bị ngắt nguồn cung cấp. Bạn có thể đọc trang tóm tắt tính năng của PIC16F84A (trang 3) để thấy nó có 1024 word chương trình (dùng công nghệ flash), 64 byte RAM, và 64 byte EEPROM.

                  Thân,
                  Biển học mênh mông, sức người có hạn

                  Comment


                  • #54
                    may huynh cho de hoi ti, de moi hoc ve pic va dung ccs , tim duoc mot vi du sau:
                    #include <16F877.h>
                    #use delay( clock=20000000)
                    Main()
                    { while(1)
                    { output_high(pin_B0) ;
                    Delay_ms(250) ; // delay 250ms
                    Output_low (pin_B0);
                    Delay_ms (250 );
                    }
                    }
                    o day de chua hieu (while(1) )ham while dang kiem tra dieu kien gi?

                    Comment


                    • #55
                      Code:
                      while(điều kiện) { thực hiện lệnh}
                      - nếu điều kiện sai , tức đk == 0 , thì vòng lặp WHILE ko thực hiện
                      - nếu đk đúng , tức đk == 1 , thì vòng lặp đc thực hiện ,thực hiện đến khi nào đk # 1 thì thôi , nếu cứ ==1 thì thực hiện mãi mãi

                      Comment


                      • #56
                        #include <16F877.h>
                        #use delay( clock=20000000)
                        Main()
                        { while(1)
                        { output_high(pin_B0) ;
                        Delay_ms(250) ; // delay 250ms
                        Output_low (pin_B0);
                        Delay_ms (250 );
                        }
                        }


                        Cảm ơn về bài viết của Huynh, nhưng dệ vẫn chưa hiểu ở đây while(1) thì con pic lam thế nào để hiểu được nó cầm kiểm tra điều kiện từ đâu.
                        Xin được chỉ bảo

                        Comment


                        • #57
                          Cảm ơn về bài viết của Huynh, nhưng dệ vẫn chưa hiểu ở đây while(1) thì con pic lam thế nào để hiểu được nó cầm kiểm tra điều kiện từ đâu.
                          Xin được chỉ bảo
                          chắc bạn ít học C , vì những ai đã wa học ngôn ngữ C thì ít khi thắc mắc như vậy ! đây là kiến thức background mà !

                          nếu viết
                          Code:
                          while(1) {nháy led}
                          , có nghĩa .. ng viết ct cố ý muốn PIC chỉ làm 1 công việc : nháy led . Ko thực hiện công việc nào khác .
                          ah ! tới đây mình đã hỉu thắc của bạn ... như thế này bạn ah !
                          - nếu đk đúng thì trả về giá trị 1 <--> while(1) --> thực hiện công việc trong while
                          - nếu đk sai thì trả về giá trị 0 <--> while(0) <--> thoát vòng lặp while

                          Comment


                          • #58
                            thêm cho bạn vd về vòng lặp để hỉu sâu hơn 1 chút
                            vd : nếu chưa nhấn phím enter thì vẫn quét tìm phím nhấn . Nếu phím enter đc nhấn thì sáng led
                            Code:
                            while (!enter) { gọi chương trình quét phím };
                            led = 1 ; delay_ms(1000);

                            Comment


                            • #59
                              vd : đoạn ct chống nảy phím khi nhấn phím enter
                              Code:
                              if(! enter){delay_ms(20); // nếu enter đc nhấn thì delay 20ms để wa trạng thái nảy khi nhấn
                                          while(! enter) continue ; // nếu enter vẫn còn đc giữ , chưa thả tay thì nhảy tại chỗ
                                          delay_ms(20); // lúc này enter đã đc nhả ra , delay chút nữa cho wa trạng thái nảy khi nhả 
                                          quet_phim();
                                            } ;
                              led = 1 ; delay_ms(1000);....

                              Comment


                              • #60
                                Đọc bài của Huynh mới thấy minh cùi bắp quá cảm ơn Huynh nhiều.

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X