Thông báo

Collapse
No announcement yet.

Bàn phím tự động ... để đánh game , điều khiển ! ( Dành cho anh em thích Game )

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

  • #76
    Nguyên văn bởi queduong Xem bài viết
    Bạn mua linh kiện về : 1 con 18F2550 SMD ( ở HN bán hơn 100k ở Cần Thơ mình không biết giá ) .

    1 đầu jac USB, 1 nút bấm , 1 thạch anh , 1 led ... vài con tụ , trở ( đều loại SMD cả ) . File mạch in mình có UP ở trang thứ 2 ... mang đi đặt mạch in hoặc tự làm mạch thủ công ( vì mạch này đơn giản ).
    File mã nguồn thì ở trang 1 đã có rồi ... ( dùng phím nào thì sửa rồi dịch ra file Hex nạp vào con PIC18F2550 đó thôi ).

    Chắc bạn không đến nỗi mù tịt hoàn toàn đấy chứ ? Nếu mù hoàn toàn thì kiếm ông bạn nào biết làm mạch , biết Vi điều khiển ... làm hộ ... sẽ rẻ hơn được chút ít !
    Chào Bác QueDuong!

    Xin làm phiền bác thêm tý: Nhờ bác chị rõ danh sách giúp em vơi: " vài con tụ, trở": là mua con nào: em xin cai tên( or mã)
    Thành phẩm của bác em thấy chạy thiếc luôn không làm mạch đồng^^ phải không? em mua cái bảng có đục sẵn lỗ gắn lên được hem??
    Em muốn chỉnh code lại thành ấn 12345 40 lần rồi ấn phím P nhờ bác : Chỉnh hộ em hoặc cho em biết nên thêm vào đoạn nào??

    Mong bác đã giúp giúp cho trót ^^. Em cảm ơn bác nhiều!

    Comment


    • #77
      Nguyên văn bởi nhatnguyenht Xem bài viết
      Chào Bác QueDuong!

      Xin làm phiền bác thêm tý: Nhờ bác chị rõ danh sách giúp em vơi: " vài con tụ, trở": là mua con nào: em xin cai tên( or mã)
      Thành phẩm của bác em thấy chạy thiếc luôn không làm mạch đồng^^ phải không? em mua cái bảng có đục sẵn lỗ gắn lên được hem??
      Em muốn chỉnh code lại thành ấn 12345 40 lần rồi ấn phím P nhờ bác : Chỉnh hộ em hoặc cho em biết nên thêm vào đoạn nào??

      Mong bác đã giúp giúp cho trót ^^. Em cảm ơn bác nhiều!
      muốn 40 lần thì sửa P_loop = 40;

      muốn hiện 12345 thì trong while(1)
      stroke1();
      stroke2();
      stroke3();
      stroke4();
      stroke5();

      ( xóa mấy cái stroke0(); , stroke9(); .v..v những phím không cần dùng đi )

      --- Mạch điện đơn giản nên dùng mạch in thế nào cũng được !
      Tên trở thì xem sơ đồ ! có 2 con 27p , 104 , 10k.v..v
      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


      • #78
        Cảm ơn sự nhiệt tình của bác!

        Em đã thấy ánh sáng cuối đường hầm
        Cho em hoi thêm 1 cái nữa thôi: rồi sau khi làm xong em hỏi tiếp ^^
        Cái phần code khai báo để nhận USB đó mình nạp vào con PIC18F42550 luôn hay vào đâu bác???
        Xin sau câu hỏi này em hứa không làm phiền bác nghỉ trưa ^^

        Em cảm ơn bác!

        Comment


        • #79
          Nguyên văn bởi nhatnguyenht Xem bài viết
          Cảm ơn sự nhiệt tình của bác!

          Em đã thấy ánh sáng cuối đường hầm
          Cho em hoi thêm 1 cái nữa thôi: rồi sau khi làm xong em hỏi tiếp ^^
          Cái phần code khai báo để nhận USB đó mình nạp vào con PIC18F42550 luôn hay vào đâu bác???
          Xin sau câu hỏi này em hứa không làm phiền bác nghỉ trưa ^^

          Em cảm ơn bác!

          Đương nhiên trong trình dịch MikroC ... bạn đánh dấu vào dùng thư viện USB thì ... nó sẽ tự động Lôi cái file khai báo kia vào chung !
          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


          • #80
            Nguyên văn bởi nhatnguyenht Xem bài viết
            Chào bác QueDuong!

            Bác cho em hoi code của bác lúc đầu: bác demo 3 lần nhấn phím nhấn p, cho em hỏi là nạp cái đó vào VDK xong ,thì sau đó và có thể dùng Phần mềm USB loader bác upload chỉnh lại được delay, vòng lặp không? hi, Em cảm ơn bác.
            Bản này là bản Share cho cá nhân ... không phải bản Pro ! nên không thể dùng phần mềm để mà set được .

            Bạn muốn dùng phím gì, thời gian bao nhiêu ... rồi sửa code ... nạp nào thôi . ( nếu dùng boot loader ) thì việc nạp cũng đơn giản !

            thời gian thì sửa ở keyXtime ... vòng lặp thì sửa P_loop ... dùng phím nào thì strokeX(); .... đơn giản chỉ có mấy cái đó ! sau đó thì complier ... nạp vào 18F2550 ... xong !
            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


            • #81
              Nguyên văn bởi queduong Xem bài viết
              Bản này là bản Share cho cá nhân ... không phải bản Pro ! nên không thể dùng phần mềm để mà set được .

              Bạn muốn dùng phím gì, thời gian bao nhiêu ... rồi sửa code ... nạp nào thôi . ( nếu dùng boot loader ) thì việc nạp cũng đơn giản !

              thời gian thì sửa ở keyXtime ... vòng lặp thì sửa P_loop ... dùng phím nào thì strokeX(); .... đơn giản chỉ có mấy cái đó ! sau đó thì complier ... nạp vào 18F2550 ... xong !

              Chào Bác Dương!

              Em sửa code: Bỏ bớt mấy dòng như bác nói.


              Vào CcS: Thao tác như sau: Chọn vào Project--> Chọn create--> Chọn mainsource--> Chon tới file free_ver.c của bác.
              Sau đó hiện lên bảng code: Em chỉnh lại loop 30, xóa bớt các phím không cần thiết.
              keyPtime=1; // 1sec
              P_loop=30;
              ///////////////


              while(1)
              {

              butt_check(); // check start/pause every
              if(start) // start =1
              {
              do
              {
              stroke1();
              stroke2();
              stroke3();
              stroke4();
              //// check Skill loop for key P end !!!
              count_skill++;
              if(count_skill >= P_loop) // match value
              {
              count_skill=0; // reset count
              strokeP();
              }


              Xong rồi : chọn vào mục: Compile---> chon PCH 16bi-->Lookup pat:chọn chip Pic18F2550-> ok. Sau đó nhấn compli or Build, nhưng báo lỗi: Error: 128, A#Device require before this line: tại dòng 90:
              #define start_butt PORTD.F3
              (Dòng 90)bit start;

              unsigned char key0time, key1time,key2time,key3time,key4time,key5time,key6t ime,key7time,key8time, key9time, keyPtime, P_loop;

              unsigned char count_skill;
              unsigned char stt_cnt, value;
              unsigned long time_buff;
              unsigned char usbreadbuff[8] absolute 0x500; // Buffers should be in USB RAM
              unsigned char usbwritebuff[8] absolute 0x540;
              unsigned char usbwriteblank[8] absolute 0x580;
              Click image for larger version

Name:	554215_536759396338185_606345677_n.jpg
Views:	1
Size:	66.6 KB
ID:	1369013
              Nhờ bác xem giúp em tí nhé!

              Em cảm ơn bác nhiều!

              Comment


              • #82
                Nguyên văn bởi nhatnguyenht Xem bài viết
                Chào Bác Dương!

                Em sửa code: Bỏ bớt mấy dòng như bác nói.


                Vào CcS: Thao tác như sau: Chọn vào Project--> Chọn create--> Chọn mainsource--> Chon tới file free_ver.c của bác.
                Sau đó hiện lên bảng code: Em chỉnh lại loop 30, xóa bớt các phím không cần thiết.
                keyPtime=1; // 1sec
                P_loop=30;
                ///////////////


                while(1)
                {

                butt_check(); // check start/pause every
                if(start) // start =1
                {
                do
                {
                stroke1();
                stroke2();
                stroke3();
                stroke4();
                //// check Skill loop for key P end !!!
                count_skill++;
                if(count_skill >= P_loop) // match value
                {
                count_skill=0; // reset count
                strokeP();
                }


                Xong rồi : chọn vào mục: Compile---> chon PCH 16bi-->Lookup pat:chọn chip Pic18F2550-> ok. Sau đó nhấn compli or Build, nhưng báo lỗi: Error: 128, A#Device require before this line: tại dòng 90:
                #define start_butt PORTD.F3
                (Dòng 90)bit start;

                unsigned char key0time, key1time,key2time,key3time,key4time,key5time,key6t ime,key7time,key8time, key9time, keyPtime, P_loop;

                unsigned char count_skill;
                unsigned char stt_cnt, value;
                unsigned long time_buff;
                unsigned char usbreadbuff[8] absolute 0x500; // Buffers should be in USB RAM
                unsigned char usbwritebuff[8] absolute 0x540;
                unsigned char usbwriteblank[8] absolute 0x580;
                [ATTACH=CONFIG]54762[/ATTACH]
                Nhờ bác xem giúp em tí nhé!

                Em cảm ơn bác nhiều!
                Trình dịch là MiKROC PRO for PIC ... không phải CCS ... ngay đầu trang 1 mở màn mình có nói rồi đó 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


                • #83
                  Anh ơi!

                  Sao em sửa lại: xóa bớt, tăng vòng lặp lên, save lại rồi --> Ctr+f9, rui f11--> save Hex, nhưng khi nạp vào pic trên mô phỏng thì không chạy. chỉ có 4 chấn sáng đèn. còn nạp của anh vào thì nó chạy bình thường ( nhưng nhiều chiêuu quá, với 3 lần vân khí nhanh wa. Anh nói rõ hơn giúp em tý được không?: cách sửa code( ví dụ ấn 4 phím, 30 lần ấn P,rồi cách xuất ra Hex thế nào... hj.chứ không bữa sau muốn nạp lại để thay đổi là chiu chết...
                  Em cảm ơn anh

                  Comment


                  • #84
                    Nguyên văn bởi nhatnguyenht Xem bài viết
                    Anh ơi!

                    Sao em sửa lại: xóa bớt, tăng vòng lặp lên, save lại rồi --> Ctr+f9, rui f11--> save Hex, nhưng khi nạp vào pic trên mô phỏng thì không chạy. chỉ có 4 chấn sáng đèn. còn nạp của anh vào thì nó chạy bình thường ( nhưng nhiều chiêuu quá, với 3 lần vân khí nhanh wa. Anh nói rõ hơn giúp em tý được không?: cách sửa code( ví dụ ấn 4 phím, 30 lần ấn P,rồi cách xuất ra Hex thế nào... hj.chứ không bữa sau muốn nạp lại để thay đổi là chiu chết...
                    Em cảm ơn anh
                    Chán thật nhỉ !!! đây là chương trình chính ( Chỗ nào cần sửa thì màu đỏ ) !

                    Code:
                    // Modifier bytes
                    #define None             0b00000000
                    #define LeftCtrl         0b00000001
                    #define LeftShift        0b00000010
                    #define LeftAlt          0b00000100
                    #define LeftGUI          0b00001000
                    #define RightCtrl        0b00010000
                    #define RightShift       0b00100000
                    #define RightAlt         0b01000000
                    #define RightGUI         0b10000000
                    /////////////////////////////////
                    // Key code byte
                    #define        a                 4
                    #define        b                 5
                    #define        c                 6
                    #define        d                 7
                    #define        e                 8
                    #define        f                 9
                    #define        g                 10
                    #define        h                 11
                    #define        i                 12
                    #define        j                 13
                    #define        k                 14
                    #define        l                 15
                    #define        m                 16
                    #define        n                 17
                    #define        o                 18
                    #define        p                 19
                    #define        q                 20
                    #define        r                 21
                    #define        s                 22
                    #define        t                 23
                    #define        u                 24
                    #define        v                 25
                    #define        w                 26
                    #define        x                 27
                    #define        y                 28
                    #define        z                 29
                    #define        one               30
                    #define        two               31
                    #define        three             32
                    #define        four              33
                    #define        five              34
                    #define        six               35
                    #define        seven             36
                    #define        eight             37
                    #define        nine              38
                    #define        zero              39
                    #define        enter             40
                    #define        escape            41
                    #define        backspace         42
                    #define        tab               43
                    #define        spacebar         44
                    #define        underscore       45
                    #define        equals           46
                    #define        leftbrace        47
                    #define        rightbrace        48
                    #define        backslash        49
                    #define        hash              50
                    #define        semicolon        51
                    
                    #define        comma            54
                    #define        period           55
                    #define        slash            56
                    #define        capslock         57
                    #define        f1                58
                    #define        f2                59
                    #define        f3                60
                    #define        f4                61
                    #define         f5                62
                    #define         f6                63
                    #define          f7                64
                    #define          f8                 65
                    #define          f9                66
                    #define          f10                67
                    #define          f11                68
                    #define          f12                69
                    
                    #define home                74
                    #define pageup                75
                    #define delete          76
                    #define pagedown        78
                    #define rightarrow        79
                    #define leftarrow        80
                    #define downarrow        81
                    #define uparrow                82
                     ////////////////////
                    
                    #define start_butt PORTD.F3
                    bit start;
                    
                    unsigned char key0time, key1time,key2time,key3time,key4time,key5time,key6time,key7time,key8time, key9time, keyPtime, P_loop;
                    
                    unsigned char count_skill;
                    unsigned char stt_cnt, value;
                    unsigned long time_buff;
                    unsigned char usbreadbuff[8] absolute 0x500;   // Buffers should be in USB RAM
                    unsigned char usbwritebuff[8] absolute 0x540;
                    unsigned char usbwriteblank[8] absolute  0x580;
                    
                    
                    void butt_check();
                    void key_delay(unsigned long value);
                    void stroke0();
                    void stroke1();
                    void stroke2();
                    void stroke3();
                    void stroke4();
                    void stroke5();
                    void stroke6();
                    void stroke7();
                    void stroke8();
                    void stroke9();
                    void strokeP();
                    
                    
                    /* SUBROUTINE HEADER */
                    char hid_keyboard_send(char special,char key1,char key2,char key3,char key4,char key5, char key6);
                    char hid_keyboard_send_EXECUTE();
                    char hid_keyboard_send_DESKTOP();
                    char hid_keyboard_send_BLANK();
                    /* END SUBROUTINE HEADER */
                    
                    void interrupt(){
                       USB_Interrupt_Proc();                   // USB servicing is done inside the interrupt
                    }
                    
                    void main(void){
                      start=0;
                      count_skill=0;
                      ADCON1 |= 0x0A;                         // analog AN0 --> AN4 ( RA0, RA1, RA2, RA3 , RA5 )
                      CMCON  |= 7;                            // Disable comparators
                      PORTA =0x00;
                      TRISA=0b11101111;   // RA4 output
                      TRISB=0x03;
                      PORTB=0x00;
                      PORTC=0x00;
                      TRISC=0b10111001;  // RC7 in for UART RX , RC6 out for UART TX , RC0 in for Freq Cnt , RC1,RC2 out for attenuator
                      PORTD=0x00;
                      TRISD=0b00001111;
                      PORTE=0x00;
                      TRISE=0b000;
                      HID_Enable(&usbreadbuff,&usbwritebuff);       // Enable HID communication
                      Delay_ms(2000);  // delay 2 sec for usb already
                    
                      //////  Setup for Key Timer !!!
                      key0time=1;   // như thế này có nghĩa là thời gian của phím 0 là 1 giây   ( muốn 10 giây thì key0time =10; )
                      key1time=1;
                      key2time=1;
                      key3time=1;
                      key4time=1;
                      key5time=1;
                      key6time=1;
                      key7time=1;
                      key8time=1;
                      key9time=1;
                      keyPtime=1;  // 1sec
                      P_loop=3; // Thế này có nghĩa là lặp 3 lần ...  muốn lặp 40 lần thì = 40 
                      ///////////////
                    
                    
                      while(1)
                      {
                    
                        butt_check();   // check start/pause every
                        if(start)     // start =1
                         {
                          do
                          {
                            stroke1();   // Đây là bấm phím 1 .... ... không dùng thì xóa đi 
                            stroke2();  // Đây là bấm phím 2 .... ... không dùng thì xóa đi 
                            stroke3();
                            stroke4();
                            stroke5();
                            stroke6();
                            stroke7();
                            stroke8();
                            stroke9();
                            stroke0();
                            //// check Skill loop for key P end !!!
                             count_skill++;
                            if(count_skill >= P_loop)  // match value
                            {
                              count_skill=0;   // reset count
                              strokeP();
                            }
                            
                          }
                          while(start);
                         }
                    
                    
                      }
                    
                    }
                    
                    ////////////////// FUNCTIONS ///////////////////////
                    void butt_check()
                    {
                     if(start_butt)
                         {
                          start =!start;
                          if(start==0) {count_skill=0;}
                          while(start_butt);
                          Delay_ms(50);
                    
                         }
                    }
                    /////////////////
                    void key_delay(unsigned long value)
                    {
                     while(value--)
                      {
                       Delay_ms(1);
                       butt_check();
                       if(start==0){value=0;}  // exit while
                      }
                    }
                    /* SUBROUTINE */
                    char hid_keyboard_send(char special,char key1,char key2,char key3,char key4,char key5, char key6)
                    {
                      usbwritebuff[0]=special;
                      usbwritebuff[1]=0x00;
                      usbwritebuff[2]=key1;
                      usbwritebuff[3]=key2;
                      usbwritebuff[4]=key3;
                      usbwritebuff[5]=key4;
                      usbwritebuff[6]=key5;
                      usbwritebuff[7]=key6;
                      return HID_Write(&usbwritebuff,8);
                    
                    }
                    
                    char hid_keyboard_send_EXECUTE()  // left windows key + r
                    {
                     return hid_keyboard_send(0b00001000,0x15,0x00,0x00,0x00,0x00,0x00);
                    }
                    
                    char hid_keyboard_send_DESKTOP()  // left windows key + d
                    {
                     return hid_keyboard_send(0b00001000,0x07,0x00,0x00,0x00,0x00,0x00);
                    }
                    
                    char hid_keyboard_send_BLANK()
                    {
                    
                     usbwriteblank[0] = 0x00;
                     usbwriteblank[1] = 0x00;
                     usbwriteblank[2] = 0x00;
                     usbwriteblank[3] = 0x00;
                     usbwriteblank[4] = 0x00;
                     usbwriteblank[5] = 0x00;
                     usbwriteblank[6] = 0x00;
                     usbwriteblank[7] = 0x00;
                     return HID_Write(&usbwriteblank,8);
                    
                    }
                    ///////////////////////////////////////////////////////////
                    void stroke0()
                    {
                     hid_keyboard_send(0x00,zero,0x00,0x00,0x00,0x00,0x00);
                     hid_keyboard_send_BLANK();
                     // delay here   ( check butt allways in Delay )
                     time_buff = key0time*1000;
                     key_delay(time_buff);
                    }
                    ///////
                    void stroke1()
                    {
                     hid_keyboard_send(0x00,one,0x00,0x00,0x00,0x00,0x00);
                     hid_keyboard_send_BLANK();
                     // delay here   ( check butt allways in Delay )
                     time_buff = key1time*1000;
                     key_delay(time_buff);
                    }
                    ///////
                    void stroke2()
                    {
                     hid_keyboard_send(0x00,two,0x00,0x00,0x00,0x00,0x00);
                     hid_keyboard_send_BLANK();
                     // delay here   ( check butt allways in Delay )
                     time_buff = key2time*1000;
                     key_delay(time_buff);
                    }
                    ///////
                    void stroke3()
                    {
                     hid_keyboard_send(0x00,three,0x00,0x00,0x00,0x00,0x00);
                     hid_keyboard_send_BLANK();
                     // delay here   ( check butt allways in Delay )
                     time_buff = key3time*1000;
                     key_delay(time_buff);
                    }
                    ///////
                    void stroke4()
                    {
                     hid_keyboard_send(0x00,four,0x00,0x00,0x00,0x00,0x00);
                     hid_keyboard_send_BLANK();
                     // delay here   ( check butt allways in Delay )
                     time_buff = key4time*1000;
                     key_delay(time_buff);
                    }
                    ///////
                    void stroke5()
                    {
                     hid_keyboard_send(0x00,five,0x00,0x00,0x00,0x00,0x00);
                     hid_keyboard_send_BLANK();
                     // delay here   ( check butt allways in Delay )
                     time_buff = key5time*1000;
                     key_delay(time_buff);
                    }
                    ///////
                    void stroke6()
                    {
                     hid_keyboard_send(0x00,six,0x00,0x00,0x00,0x00,0x00);
                     hid_keyboard_send_BLANK();
                     // delay here   ( check butt allways in Delay )
                     time_buff = key6time*1000;
                     key_delay(time_buff);
                    }
                    ///////
                    void stroke7()
                    {
                     hid_keyboard_send(0x00,seven,0x00,0x00,0x00,0x00,0x00);
                     hid_keyboard_send_BLANK();
                     // delay here   ( check butt allways in Delay )
                     time_buff = key7time*1000;
                     key_delay(time_buff);
                    }
                    ///////
                    void stroke8()
                    {
                     hid_keyboard_send(0x00,eight,0x00,0x00,0x00,0x00,0x00);
                     hid_keyboard_send_BLANK();
                     // delay here   ( check butt allways in Delay )
                     time_buff = key8time*1000;
                     key_delay(time_buff);
                    }
                    ///////
                    void stroke9()
                    {
                     hid_keyboard_send(0x00,nine,0x00,0x00,0x00,0x00,0x00);
                     hid_keyboard_send_BLANK();
                     // delay here   ( check butt allways in Delay )
                     time_buff = key9time*1000;
                     key_delay(time_buff);
                    }
                    ///////
                    void strokeP()
                    {
                     hid_keyboard_send(LeftShift,p,0x00,0x00,0x00,0x00,0x00);
                     hid_keyboard_send_BLANK();
                     // delay here   ( check butt allways in Delay )
                     time_buff = keyPtime*1000;
                     key_delay(time_buff);
                    }
                    ///////
                    
                    
                    /* END SUBROUTINE */
                    Dịch ra file hex trong mikroC thì nó có biểu tượng Build and Program , hoặc ấn Ctrl +F11 hoặc CTrl + F9 ... hoặc vào menu Build
                    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


                    • #85
                      Chào Bác Dương!

                      Tình hình là hôm trước do phần mềm crk chưa xong nên không được, Em đã tự chỉnh được rồi. Cảm ơn bác,keke, Zui wa là zui!

                      Thêm 1 vấn đề khá là nan giải nữa Khi thay 18f4550 =18f2550: Em hiểu thế này mong bác chỉ giáo: Em thấy trên 2 con này có ký hiệu chân giống nhau. Thì em thay tương ứng:t ức là cái j nối vào 18f4550 thì em tìm tương ứng trên 18f2550 gắn vô. còn 1 cái chân này RD3/SPPP3 trên 4550 không thấy trên 2550 không biết gắn vào chân nàp?? Em cảm ơn bác nhiều!

                      Em gần làm được rồi... bữa giờ do cài đặt phần mềm chưa hoàn thiện nên bị lỗi lặt vặt, em cảm ơn bác!!!!

                      Comment


                      • #86
                        Nguyên văn bởi nhatnguyenht Xem bài viết
                        Chào Bác Dương!

                        Tình hình là hôm trước do phần mềm crk chưa xong nên không được, Em đã tự chỉnh được rồi. Cảm ơn bác,keke, Zui wa là zui!

                        Thêm 1 vấn đề khá là nan giải nữa Khi thay 18f4550 =18f2550: Em hiểu thế này mong bác chỉ giáo: Em thấy trên 2 con này có ký hiệu chân giống nhau. Thì em thay tương ứng:t ức là cái j nối vào 18f4550 thì em tìm tương ứng trên 18f2550 gắn vô. còn 1 cái chân này RD3/SPPP3 trên 4550 không thấy trên 2550 không biết gắn vào chân nàp?? Em cảm ơn bác nhiều!

                        Em gần làm được rồi... bữa giờ do cài đặt phần mềm chưa hoàn thiện nên bị lỗi lặt vặt, em cảm ơn bác!!!!
                        vì nó là i/o (input) nên bạn có thể thay bất kỳ chân nào ... ví dụ chân RB5 ... PORTB.F5 ... lúc đó phải khai báo TRISB=0b00100000; trong main
                        ( 1 là input , 0 là output)
                        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


                        • #87
                          Chào Bác Dương!

                          Em xin làm phiền bác thêm 3 câu hỏiChắc em là thằng hỏi nhiều nhất diễn đàn DTVN này, cũng may là bác nhiệt tình)

                          Em in được file mạch rồi, nhưng sao nó không được đậm và có đường chéo chéo,em là lên bảng đồng rồi, nhưng nhiều chỗ bị mờ em sợ rửa ra đứt mạch: em lấy bút viết CD tô lên bảng đồng rùi rửa được không bác??

                          Câu 2: Em có quyết tâm đầu tư bộ nạp: Picpro2: nhờ đứa em ở HCM mua, gửi lên mới tá hỏa khi thấy Pic chân rệp,nhỏ bộ nạp lớn. Đi hỏi cái socket thì được báo 400k. Hỏi chỗ bán thì bảo nạp qua cổng ICSP nhưng em thắc mắc là lấy j nối từ ICSP trên mạch nối với IC( pic pé tí, bộ nạp to đùng)? Em tính đánh liều hàn nối dài chân PIc gắn vô socekt có sẵn trên PicPRo2( nhưung mà nghĩ là teo lun con chíp nên thỉnh giáo ý kiến bác). Hiện đang nan giải vấn đề này??

                          Câu 3:Cách em chuyển code từ 18f4550 sang 18f2550 như sau: Em mở MicroC Pro Pic, mở cái project của 18f4550 lên, vô confìg, chọn Project setting -> chọn device là 18f2550. Ctrl +f9 xong thì Ctrl f11 chọn save hex để nạp vô pic mới( không biét đúng cách chưa bác)
                          Em sửa khai báo trong main TRISB=0b00100000 như bác bảo ( code free_ver), vo phần config chọn Project setting chon con pic: 18f2550, tuy nhiên khi nhấn Alt F9 thì bị lỗi ở dòng 133:
                          TRISA=0b11101111; // RA4 output
                          TRISB=0b00100000;
                          PORTB=0x00;
                          PORTC=0x00;
                          TRISC=0b10111001; // RC7 in for UART RX , RC6 out for UART TX , RC0 in for Freq Cnt , RC1,RC2 out for attenuator
                          PORTD=0x00; ( Dòng này lỗi
                          TRISD=0b00001111;

                          Không biết cách thực hiện của em như thế sai chỗ nào mà không trơn tru!

                          Hj. THật ngại khi làm phiền bác, bác ở xa wa không thì em đến tận nhà hỏi rồi.
                          Nhờ bác trả lời giúp em nhé!
                          Em cảm ơn bác nhiều!

                          Comment


                          • #88
                            Nguyên văn bởi nhatnguyenht Xem bài viết
                            Chào Bác Dương!

                            Em xin làm phiền bác thêm 3 câu hỏiChắc em là thằng hỏi nhiều nhất diễn đàn DTVN này, cũng may là bác nhiệt tình)

                            Em in được file mạch rồi, nhưng sao nó không được đậm và có đường chéo chéo,em là lên bảng đồng rồi, nhưng nhiều chỗ bị mờ em sợ rửa ra đứt mạch: em lấy bút viết CD tô lên bảng đồng rùi rửa được không bác??

                            Câu 2: Em có quyết tâm đầu tư bộ nạp: Picpro2: nhờ đứa em ở HCM mua, gửi lên mới tá hỏa khi thấy Pic chân rệp,nhỏ bộ nạp lớn. Đi hỏi cái socket thì được báo 400k. Hỏi chỗ bán thì bảo nạp qua cổng ICSP nhưng em thắc mắc là lấy j nối từ ICSP trên mạch nối với IC( pic pé tí, bộ nạp to đùng)? Em tính đánh liều hàn nối dài chân PIc gắn vô socekt có sẵn trên PicPRo2( nhưung mà nghĩ là teo lun con chíp nên thỉnh giáo ý kiến bác). Hiện đang nan giải vấn đề này??

                            Câu 3:Cách em chuyển code từ 18f4550 sang 18f2550 như sau: Em mở MicroC Pro Pic, mở cái project của 18f4550 lên, vô confìg, chọn Project setting -> chọn device là 18f2550. Ctrl +f9 xong thì Ctrl f11 chọn save hex để nạp vô pic mới( không biét đúng cách chưa bác)
                            Em sửa khai báo trong main TRISB=0b00100000 như bác bảo ( code free_ver), vo phần config chọn Project setting chon con pic: 18f2550, tuy nhiên khi nhấn Alt F9 thì bị lỗi ở dòng 133:
                            TRISA=0b11101111; // RA4 output
                            TRISB=0b00100000;
                            PORTB=0x00;
                            PORTC=0x00;
                            TRISC=0b10111001; // RC7 in for UART RX , RC6 out for UART TX , RC0 in for Freq Cnt , RC1,RC2 out for attenuator
                            PORTD=0x00; ( Dòng này lỗi
                            TRISD=0b00001111;

                            Không biết cách thực hiện của em như thế sai chỗ nào mà không trơn tru!

                            Hj. THật ngại khi làm phiền bác, bác ở xa wa không thì em đến tận nhà hỏi rồi.
                            Nhờ bác trả lời giúp em nhé!
                            Em cảm ơn bác nhiều!
                            bạn xem pic18f2550 nó không có port D nên xóa TRISD đi ( đọc datasheet, xem chân của nó chỉ có PORT abc )... việc nạp chip thì bạn hàn thoải mái ! chip SMD cũng có chân giống chip PDIP. nếu nạp icsp thì chỉ cần 5 chân ... vpp , vdd, gnd , data (rb7) clock (rb6) là ok. mạch nạp propic2 bạn chỉ cần lấy 5 chân tương ứng trên socket hoặc đường icsp ( nếu có ) là có thể nạp ngon lành
                            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


                            • #89
                              Nguyên văn bởi queduong Xem bài viết
                              bạn xem pic18f2550 nó không có port D nên xóa TRISD đi ( đọc datasheet, xem chân của nó chỉ có PORT abc )... việc nạp chip thì bạn hàn thoải mái ! chip SMD cũng có chân giống chip PDIP. nếu nạp icsp thì chỉ cần 5 chân ... vpp , vdd, gnd , data (rb7) clock (rb6) là ok. mạch nạp propic2 bạn chỉ cần lấy 5 chân tương ứng trên socket hoặc đường icsp ( nếu có ) là có thể nạp ngon lành
                              Chào bác Dương!

                              Hiện tại em còn vướng mắc2chỗ này thui:
                              1- Cái code chuyển của em vẫn báo lỗi(lần này lỗi tới PortE( cái này em xem trên data sheet thấy có. Nhưng mà khôngbiết chỉnh thế nào. Bữa giờ em nhờ bác cũng nhiều rôi. nhưng lần này mạn phép xin bác giúp em bỏ chút thời gian complie cái code của 4550 sang 2550giúp em với. Em đã có đầy đủ đồ nghề:mạchnạp, linh kiện, bảng mạch, chì còn chờ code là ngon lành. Khả năngcủa em chỉ có thể làm về phần cứng, còn phần code khó xơi quá.hix.bác giúp em cái code hoàn chỉnh cho 18f2550. Em làm xong sản phẩm này xin được khoe bác đầu tiên ( vì nó là công của bác)

                              2- Em tìm mỏi mắttrên cái data sheet không thấy cái chân: GND đâu hết??? chắc nối từ GND trên icsp của propic với với chân nào trên píc mà em không biết
                              nhờ bác chỉ giúp em nhé!

                              Em cảm ơn bác Dương nhiều!

                              Comment


                              • #90
                                Nguyên văn bởi nhatnguyenht Xem bài viết
                                Chào bác Dương!

                                Hiện tại em còn vướng mắc2chỗ này thui:
                                1- Cái code chuyển của em vẫn báo lỗi(lần này lỗi tới PortE( cái này em xem trên data sheet thấy có. Nhưng mà khôngbiết chỉnh thế nào. Bữa giờ em nhờ bác cũng nhiều rôi. nhưng lần này mạn phép xin bác giúp em bỏ chút thời gian complie cái code của 4550 sang 2550giúp em với. Em đã có đầy đủ đồ nghề:mạchnạp, linh kiện, bảng mạch, chì còn chờ code là ngon lành. Khả năngcủa em chỉ có thể làm về phần cứng, còn phần code khó xơi quá.hix.bác giúp em cái code hoàn chỉnh cho 18f2550. Em làm xong sản phẩm này xin được khoe bác đầu tiên ( vì nó là công của bác)

                                2- Em tìm mỏi mắttrên cái data sheet không thấy cái chân: GND đâu hết??? chắc nối từ GND trên icsp của propic với với chân nào trên píc mà em không biết
                                nhờ bác chỉ giúp em nhé!

                                Em cảm ơn bác Dương nhiều!
                                @@ PIC GND nó là chân Vss

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X