CCS tiếng Việt update - I

Collapse
This is a sticky topic.
X
X
 
  • Giờ
  • Show
Clear All
new posts
  • txt
    Đệ tử 2 túi
    • Sep 2005
    • 32

    #1

    CCS tiếng Việt update - I

    _Bản CCS tiếng Việt mới , nhiều bổ sung , có cả PIC 18 .
    _Do thời gian qua bận rộn nên tài liệu vẫn chưa đầy đủ , còn thiếu nhiều , nhưng do nhiều bạn đang tiếp cận PIC gởi mail kêu ca thiếu tài liệu CCS quá , tui post lên xem đỡ .
    _Bản này chỉnh sửa nhiều phần đã đăng trong CCS tiếng Việt I . Bản cũ có nhiều sai sót , nay đã sửa lại , song bản mới này chắc chắn cũng có nhiều sai sót , bạn nào đã và đang làm PIC nếu thấy chỗ nào nói sai , thiếu sót , phiền bạn lên tiếng bổ sung . Thanks !
    Attached Files
  • Never_Die
    Nhập môn đệ tử
    • Nov 2005
    • 1

    #2
    Cảm ơn bác nhiều.
    Cái này hay quá.

    Comment

    • txt
      Đệ tử 2 túi
      • Sep 2005
      • 32

      #3
      Hờ , tôi đang bổ sung phần mô phỏng CCS trong MPLAB nhưng khổ nỗi có nhiều cái chưa biết , đang cần giúp dỡ :
      _Trong MPLAB làm sao mô phỏng xung vuông tần số f để cho vào 1 chân VDK và từ đó chương trình mô phỏng CCS bắt được để làm 1 điều gì đó . chả là tôi đang thử mô phỏng tính năng QEI trên 18F4431 cần 3 xung kích QEA , QEB ,INDX để kiểm tra chương trình .Lưu ý là mô phỏng chứ không dùng debug .

      Comment

      • txt
        Đệ tử 2 túi
        • Sep 2005
        • 32

        #4
        Sao kỳ vây ta? cái link mới biến mất tiêu rồi.
        Vào :

        Comment

        • meishun
          Đệ tử 6 túi
          • Jul 2006
          • 135

          #5
          Xin hỏi anh txt là đã có CCS C tiếng Việt phần 2 chưa ạ? Phần một đọc rất dễ hiểu, mong sớm có phần hai cho nó trọn bộ.Cám ơn.

          Comment

          • littlephoc
            Đệ tử 3 túi
            • Dec 2006
            • 60

            #6
            Mình có 1 thắc mắc nhỏ: tại sao CCS phải mất công tạo ra hàm output_high(bit), output_low(bit), output_x(byte)? Trong khi có 1 số function register mình lại không thấy có hàm để can thiệp trực tiếp được mà mình phải tự #locate đến và gán giá trị bình thường như sử dụng những compiler khác (MPLAB C30, HT-PICC18) ?

            Comment

            • txt
              Đệ tử 2 túi
              • Sep 2005
              • 32

              #7
              #locate cho phép chương trình CCS có tính tùy biến cao , dể hiểu hơn và dễ đọc hơn cho bản thân người viết ( kể cả dân nghiệp dư ), nhưng vì vậy mà nó có vẻ không thích hợp lắm khi viết chương trình mà có nhiều người cùng tham gia viết ( làm theo nhóm cho chương trình lớn ) .Dường như CCS là chương trình mang tính bất quy tắc . . . Còn bọn MPLAB và HT thì quy củ hơn , theo chuẩn C hơn nhưng vì thế lại làm cho ngôn ngữ trở nên hàn lâm hơn , khó hiểu hơn .
              output_low() / high : không có gì để nói
              output_bit() : dùng khi lập trình đảo tín hiệu ra mà không cần biết trước đó là cao hay thấp .
              output_x() : đặt ngõ ra cho nguyên 1 port
              CCS phần 2 đang viết dở , chung quy cũng vì trước đó viết bằng VNI 8 bit , nay phải đổi sang unicode (cho vui )

              Comment

              • damhaicnn
                Nhập môn đệ tử
                • Nov 2007
                • 3

                #8
                các anh cho em hoi một tẹo, em muốn dịch bít như sau mà sao nó lúc thì chạy mà lúc thì không. khó hiểu quá.
                Code:
                #include<16f877a.h>
                #use delay(oscillator=8M)
                int16 i,j,k;
                void main()
                {
                set_tris_B(0);
                while(1)
                   {k=0x00;
                   for(i=0xff;i>=0x01;i>>=1)
                      {k=k|i;output_B(k);delay_ms(300);}
                Last edited by namqn; 26-11-2007, 10:38 PM.

                Comment

                • nguyen.geo
                  Đệ tử 2 túi
                  • Jan 2007
                  • 27

                  #9
                  Chao bạn DAMHAICNN !
                  Theo mình thì đoạn code của bạn sau khi dịch xong nó sẽ chạy như sau : Bit RB7 luôn bằng 0; còn các bít còn lại của Port B không thay đổi luôn là 1. Thế bạn thấy nó chạy thế nào ?

                  Comment

                  • toanck86
                    Đệ tử 1 túi
                    • Apr 2007
                    • 20

                    #10
                    sao lâu thấy Phần II thế TXT ơi :P

                    Comment

                    • kid_1412ls
                      Nhập môn đệ tử
                      • Mar 2007
                      • 7

                      #11
                      Các tiền bối xem giúp em!

                      Code:
                      #include <16f877a.h>
                      #use delay(oscillator=8M)
                      int8 const LED7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}
                      int8 const time=15;
                      int8 i,j,L1,L2,L3,L4;
                         void main()
                      {  set_tris_B(0);set_tris_C(0);
                         while(1)
                         {  for(i=0;i<=59;i=i+1)
                              for(j=0;j<=59;j=j+1)
                               {  L1=(i/ 1)%10;
                                  L2=(i/10)%10;
                                  L3=(i/ 1)%10;
                                  L4=(i/10)%10;
                                  output_B(LED7[L1]);  output_C(0);   delay_ms(time);   output_C(7);
                                  output_B(LED7[L2]);  output_C(1);   delay_ms(time);   output_C(7);
                                  output_B(LED7[L3]);  output_C(2);   delay_ms(time);   output_C(7);
                                  output_B(LED7[L4]);  output_C(3);   delay_ms(time);   output_C(7);


                      // bài này em dịch sai vài lỗi, các tiền bối giúp em với, em không hiểu sai ở đâu.
                      Last edited by namqn; 28-11-2007, 05:58 PM.

                      Comment

                      • namqn
                        Trưởng lão PIC bang
                        • Feb 2006
                        • 3020

                        #12
                        Bạn nên cho biết bạn định làm gì, và post code đầy đủ, cũng như các thông báo lỗi mà bạn đã nhận được.

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

                        Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
                        http://www.picvietnam.com/forum/showthread.php?t=1263

                        Comment

                        • kid_1412ls
                          Nhập môn đệ tử
                          • Mar 2007
                          • 7

                          #13
                          em sửa lại đoạn code như sau:

                          Code:
                          #include <16f877a.h>
                          #use delay(oscillator=8M)
                          int8 const LED7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}
                          int8 const time=15;
                          int8 i,j,L1,L2,L3,L4;
                             void main()
                          {  set_tris_B(0);set_tris_C(0);
                             while(1)
                             {  for(i=0;i<=59;i=i+1)
                                  for(j=0;j<=59;j=j+1)
                                   {  L1=(i/ 1)%10;
                                      L2=(i/10)%10;
                                      L3=(i/ 1)%10;
                                      L4=(i/10)%10;
                                      output_B(LED7[L1]);  output_C(0);   delay_ms(time);   output_C(7);
                                      output_B(LED7[L2]);  output_C(1);   delay_ms(time);   output_C(7);
                                      output_B(LED7[L3]);  output_C(2);   delay_ms(time);   output_C(7);
                                      output_B(LED7[L4]);  output_C(3);   delay_ms(time);   output_C(7);
                                   }
                                
                             }
                          }
                          // Em định thực hiện chương trình điều khiển 4 Led 7 đoạn hiển thị phút và giây
                          // Led 7 đoạn nối với port_B, nối port_C với 74ls138

                          namqn: tôi xóa phần tôi đã viết vì bạn đã sửa code lại
                          Last edited by namqn; 28-11-2007, 09:16 PM. Lý do: them file

                          Comment

                          • kid_1412ls
                            Nhập môn đệ tử
                            • Mar 2007
                            • 7

                            #14
                            cảm ơn anh đã giúp đỡ

                            em bị lỗi cú pháp ạ, em xem lại rồi ! Đúng là ẩu quá

                            Comment

                            • Mr.Bi
                              Đệ tử 7 túi
                              • Jul 2007
                              • 188

                              #15
                              Nguyên văn bởi kid_1412ls View Post
                              Code:
                              #include <16f877a.h>
                              #use delay(oscillator=8M)
                              int8 const LED7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}
                              int8 const time=15;
                              int8 i,j,L1,L2,L3,L4;
                                 void main()
                              {  set_tris_B(0);set_tris_C(0);
                                 while(1)
                                 {  for(i=0;i<=59;i=i+1)
                                      for(j=0;j<=59;j=j+1)
                                       {  L1=(i/ 1)%10;
                                          L2=(i/10)%10;
                                          L3=(i/ 1)%10;
                                          L4=(i/10)%10;
                                          output_B(LED7[L1]);  output_C(0);   delay_ms(time);   output_C(7);
                                          output_B(LED7[L2]);  output_C(1);   delay_ms(time);   output_C(7);
                                          output_B(LED7[L3]);  output_C(2);   delay_ms(time);   output_C(7);
                                          output_B(LED7[L4]);  output_C(3);   delay_ms(time);   output_C(7);


                              // bài này em dịch sai vài lỗi, các tiền bối giúp em với, em không hiểu sai ở đâu.
                              Nếu bạn post code như thế này , tui nghĩ bạn đang đếm & quét led7D đúng ko ?
                              nếu đúng thì bạn làm như thế này : vd đếm lên 59
                              - khai báo 1 biến i thui
                              - sau đó cho i++ đến 59
                              - lấy phần nguyên = (i/10) , xuất phần nguyên ra cột hàng chục(nhớ chuyển BCD)
                              - lấy phần dư = (i%10) , xuất phần dư xuất ra cột đơn vị
                              như vậy là ta đếm & tăng thoải mái

                              Comment

                              Working...