Thông báo

Collapse
No announcement yet.

Hướng dẫn giao tiếp máy tính từ A đến Z(Hình ảnh)

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

  • #46
    Nguyên văn bởi bengan Xem bài viết
    bạn có tài liệu về giao tiếp máy tính cổng COM bằng VS2k8 không? cho mình với, email là yunsang_1986@yahoo.com. Thanks bạn.



    Nguyên văn bởi bengan Xem bài viết
    thanks bạn minh tuấn nhiều, bạn có tài liệu về vs2k8 giao tiep may tính ko? cho mình với

    Nguyên văn bởi xuanluc_td07 Xem bài viết
    ban co giao dien dieu khien va giao tiep giua VXL voi may tinh qua cong COM ko cho minh voi.mail_____mail "ngoxuanluc_tudong07@yahoo.com.vn" .cam on ban nhìu!
    http://www.codeproject.com/KB/system...hreadSafe.aspx
    Link trên có thể giúp các bạn đó
    Diễn đàn Vi điều khiển:

    Comment


    • #47
      Đây là chương trình giao tiếp giữa píc6f877a va may tính bang C# phiên bản 2008 theo giao thức sau(điều khiển động co DC servo):co gì thắc mắc bạn liên lạc qua địa chỉ mail này với mình nha huuthien1307@yahoo.com.chương trình minh viết con rat nhiều thiếu xót.

      chuong trình C#:http://www.mediafire.com/?ynimrnihlzm

      Command: X, seg#, data <CR> . Distance to be travelled. Data provided in encoder counts. (0 <= seg# 0 <= 23, -32768 <= data <= 32767)
      Command: A, seg#, data <CR> . Acceleration. Data provided in encoder counts/Tservo^2/65536 . (0 <= seg# 0 <= 23, -32768 <= data <= 32767)
      Command: V, seg#, data <CR> . Veolocity Limit. Data provided in encoder counts/Tservo/256 . (0 <= seg# 0 <= 23, 1<= data <= 32767)
      Command: T, seg#, data <CR> . Wait Time. Data in Tservo multiples . (0 <= seg# 0 >= 23, 0 <= data <= 32767)
      Command: G, startseg, stopseg <CR> . Excecute a range of motion profiles segments. (0 <= startseg, stopseg 0 <= 23)
      Command: S <CR> . Stops excecution of a motion profile
      Command: P, data <CR> . Change Proportional gain for PID algorithm. (-32768 <= data <= 32767)
      Command: D, data <CR> . Change Differential gain for PID algorithm. (-32768 <= data <= 32767)
      Command: W <CR> . Enable or disable the PWM driver stage

      es. Type on the Virtual Terminal the following commands:
      X,0,32000 <CR> V,0,100 <CR> A,0,200 <CR>
      P, 3 <CR> D,-10 <CR>
      G,0,0 <CR>
      W <CR>

      phần chương trình cho pic dung chương trình dịch hitech:

      if(RCIF)
      {
      switch(udata = RCREG)
      {
      case ',': DoCommand(); // process the string
      memset(inpbuf,0,8); // clear the input buffer
      i = 0; // clear the buffer index
      comcount++; // increment comma count
      TXREG = udata; // echo the character
      break;
      case ' ': DoCommand(); // process the string
      memset(inpbuf,0,8); // clear the input buffer
      i = 0; // clear the buffer index
      comcount = 0; // clear comma count
      segnumadd = 0; // clear segment number
      parameter = 0; // clear paramater
      putrsUSART(ready); // put prompt to USART
      break;
      default:inpbuf[i] = udata; // get received char
      i++; // increment buffer index
      if(i > 7) // If more than 8 chars
      { // received before getting
      putrsUSART(ready); // a <CR>, clear input
      memset(inpbuf,0,8); // buffer
      i = 0; // the buffer index
      }
      else TXREG = udata; // echo character
      break;
      }
      } //end if(RCIF)
      } //end while(1)
      }
      //-------------------------------------------------------------------
      // DoCommand()
      // Processes incoming USART data.
      //-------------------------------------------------------------------
      void DoCommand(void)
      {
      if(comcount == 0) // If this is the first parameter of the input
      { // command...
      switch(inpbuf[0])
      {
      case 'X': parameter = DIST; // Segment distance change
      break;
      case 'V': parameter = VEL; // Segment velocity change
      break;
      case 'A': parameter = ACCEL;// Segment acceleration change
      break;
      case 'T': parameter = TIME; // Segment delay time change
      break;
      case 'P': parameter = 'P'; // Change proportional gain
      break;
      case 'I': parameter = 'I'; // Change integral gain
      break;
      case 'D': parameter = 'D'; // Change differential gain
      break;
      case 'L': parameter = 'L'; // Loop a range of segments
      break;
      case 'H': parameter = 'H';// Loop a range of segment2
      break;
      case 'S': stat.run = 0; // Stop execution of segment1
      stat1.run= 0; // Stop execution of segment2
      break;
      case 'G': parameter = 'G'; // Execute a range of segment1
      break;
      case 'C': parameter = 'C'; // Execute a range of segment2
      break;
      default: if(inpbuf[0] != '\0')
      {
      putrsUSART(error);
      }
      break;
      }
      }
      else if(comcount == 1) // If this is the second parameter of the
      { // input command.
      if(parameter < 4) //parameter is DIST,VEL,ACCEL,TIME
      segnumadd = (char)(atoi(inpbuf));//A signed integer. If no number is found in the string, zero will be returned
      else
      switch(parameter)
      {
      case 'P': kp = atoi(inpbuf); // proportional gain change
      break;
      case 'I': ki = atoi(inpbuf); // integral gain change
      break;
      case 'D': kd = atoi(inpbuf); // differential gain change
      break;
      case 'G': firstseg = (char)(atoi(inpbuf));// Get the first segment1 in
      break; // the range to be executed.
      case 'C': firstseg1 = (char)(atoi(inpbuf))-12;// Get the first segment2 in
      break; // the range to be executed.
      case 'L': firstseg = (char)(atoi(inpbuf));// Get the first segment in
      break; // the range to be executed.
      case 'H': firstseg1 = (char)(atoi(inpbuf))-12;// Get the first segment in
      break; // the range to be executed.
      default: break;
      }
      }
      else if(comcount == 2)//received '\r'
      {
      if((!stat.run) && (!stat1.run))
      {
      if(parameter < 4) // If this was a segment parameter DIST,VEL,ACCEL,TIME
      { // change.
      if(segnumadd < 12)
      {
      // Write the segment paramater into data memory
      segment1[segnumadd][parameter] = atoi(inpbuf);
      }
      else if (segnumadd <24)
      {
      segment2[segnumadd - 12][parameter] = atoi(inpbuf);
      }
      }
      else
      switch(parameter)
      {
      case 'G': lastseg = (char)(atoi(inpbuf)); // Get value for
      segnum = firstseg; // last segment.
      stat.loop = 0;
      stat.run = 1; // Start profile.
      break;
      case 'C': lastseg1 = (char)(atoi(inpbuf))-12; // Get value for
      segnum1 = firstseg1; // last segment.
      stat1.loop = 0;
      stat1.run = 1; // Start profile.
      break;
      case 'L': lastseg = (char)(atoi(inpbuf)); // Get value for
      segnum = firstseg; // last segment.
      stat.loop = 1;
      stat.run = 1; // Start profile.
      break;
      case 'H': lastseg1 = (char)(atoi(inpbuf))-12; // Get value for
      segnum1 = firstseg1; // last segment.
      stat1.loop = 1;
      stat1.run = 1; // Start profile.
      break;
      default: break;
      }
      }
      }
      else;
      }
      //

      Comment


      • #48
        Trong windows cũng có sẵn một chương trình để có thể giao tiếp với VDK mà
        Vào Start->All Programs->Accessories->Communications->HyperTerminal
        Mình cũng đã thử làm nhưng chẳng biết vì sao chưa chạy gì cả.
        Đã ai thử làm chưa giúp mình với
        .: Lê Tiến Mạnh :.
        Phone number : 0989 735 804
        YM,Skype,mail : [leemanhj916]@gmail.com

        Comment


        • #49
          Cả đêm qua mà chẳng giải quyết được vấn đề gì! Đây là đề cương môn học Vi điều khiển:
          Đo tốc độ động cơ hiển thị trên màn hình máy tính .Phần đo tốc độ thì có thể giải quyết được nhưng mà phần giao tiếp máy tính thì khó quá.
          Có ai biết thì trả lời nhanh nha . Mình viết bằng C
          .: Lê Tiến Mạnh :.
          Phone number : 0989 735 804
          YM,Skype,mail : [leemanhj916]@gmail.com

          Comment


          • #50
            org 00H
            jmp main

            org 30h
            main:
            cpl P0.0
            cpl P0.1
            call delay
            sjmp main

            delay:
            mov R6, #255
            mov R7, #255
            djnz R7,$
            djnz R6,$-4
            ret

            end


            => Lỗi?????

            Comment


            • #51
              Nguyên văn bởi linhdt1 Xem bài viết
              bạn vào đây mà down cho nhanh nhưng mà dùng được 2 tuần thôi :d
              HTML Code:
              http://www.mks.zp.ua/download/vspd.exe
              các bác dạy em cách cài chương trình này với em cài mãi không được .em download mấy tiếng mới được(1.6gb) nó toàn báo lỗi kiểu này em chưa hiểu phải làm như thế nào
              anh ơi em gửi sơ đồ mạch cho anh qua đây nhé, mong anh giúp em chứ em làm toàn ra 00.0 thôi
              mong tin bác!
              Attached Files

              Comment


              • #52
                Cảm ơn bạn rất nhiều, giờ mình đang bí nhất chỗ giao tiếp máy tinh với 8051, giờ có thể mô phỏng nó sẽ giúp ích mình rất nhiều.
                Mình đã tìm ctr tạo cổng com ảo nhưng vẫn không tìm để cài được. bạn gửi cho mình với. Thanks. email của mình la: 40502963@stu.hcmut.edu.vn

                Comment


                • #53
                  Nếu bạn ở TPHCM thì có thể liên hệ với mình

                  Comment


                  • #54
                    anh chi nao ranh xem giup linh moi to te moi hoc vi dieu khien moi!em cam on cac su phu nhieu!#include <reg52.h>

                    #include <stdio.h>
                    // Cai dat LCD
                    void W_ctr_8bit(char);
                    void Init_LCD(void);
                    void W_data_8bit(char);
                    void Delay_1kcyc(void);
                    void delay(unsigned long int d);
                    void ad_convert(void);

                    sbit LCD_RS = P1^0;
                    sbit LCD_E = P1^2;
                    sbit INTR = P3^5;
                    sbit RD_ADC = P3^7;
                    sbit WR_ADC = P3^6;

                    unsigned char LCD_TEMP,i,j;
                    unsigned long int n;
                    unsigned long int adc,value,tr,ch,dv;

                    char bien0[16] = "Mach do nhiet do";
                    char bien1[16] = " Hien thi LCD ";
                    char bien2[16] = " Nhiet do la: ";
                    char bien3[5] = "Do C";

                    void main()
                    {
                    LCD_RW = 0;
                    P0 = 0x0f;
                    Init_LCD();
                    W_ctr_8bit(0x81);
                    for (i=0; i<16; i++)
                    {
                    W_data_8bit(bien0[i]);
                    delay(10);
                    }

                    delay(10);

                    W_ctr_8bit(0xC1);
                    for (i=0; i<16; i++)
                    {
                    W_data_8bit(bien1[i]);
                    }
                    delay(20000);

                    W_ctr_8bit(0x01);
                    W_ctr_8bit(0x82);
                    for (i=0; i<13; i++)
                    {
                    W_data_8bit(bien2[i]);
                    }
                    delay(100);
                    while (1)
                    {
                    ad_convert();
                    delay(100);
                    W_ctr_8bit(0xC4);
                    W_data_8bit(tr+0x30);
                    W_data_8bit(ch+0x30);
                    W_data_8bit(0x2E);
                    W_data_8bit(dv+0x30);
                    W_ctr_8bit(0xC9);
                    for (i=0; i<4; i++)
                    {
                    W_data_8bit(bien3[i]);
                    delay(100);
                    }
                    delay(500);
                    }
                    }

                    // Cai dat LCD

                    void Init_LCD(){
                    W_ctr_8bit(0X03);
                    W_ctr_8bit(0X38);
                    W_ctr_8bit(0X06);
                    W_ctr_8bit(0X0e);
                    W_ctr_8bit(0x01);
                    }

                    // Dua tu dien khien toi LCD

                    void W_ctr_8bit(char bien){
                    LCD_RS = 0;
                    LCD_E = 1;
                    P0 = bien;
                    LCD_E = 0;
                    Delay_1kcyc();
                    }

                    // Hien thi ki tu len LCD

                    void W_data_8bit(char bien){
                    LCD_RS = 1;
                    LCD_E = 1;
                    P0 = bien;
                    LCD_E = 0;
                    Delay_1kcyc();
                    }

                    void Delay_1kcyc(){
                    unsigned int j;
                    for(j=0; j<1000; j++);
                    }

                    void delay(unsigned long int d)
                    {
                    for (n=0;n<d;n++);
                    }

                    void ad_convert(void)
                    {
                    WR_ADC = 0;
                    RD_ADC = 0;
                    delay(3);
                    WR_ADC = 1;
                    if(INTR == 1)
                    {
                    adc = P2;
                    value = (adc*700)/255;
                    }
                    RD_ADC = 0;

                    tr = value/100;
                    ch = (value%100)/10;
                    dv = (value%100)%10;
                    }

                    Comment


                    • #55
                      phan mem tren dung de do nhiet do va hien thi bang LCD!khong che bang phim nhan!

                      Comment


                      • #56
                        Bài viết thật sự hữu ích cho những ai mới học về giao tiếp với pc

                        Comment


                        • #57
                          Có cao thủ nào giúp phần mô phỏng bằng ORCAD không???
                          Tại hạ đang dùng OrCAD mong được giúp đỡ! thanks!

                          Comment


                          • #58
                            Rất cảm ơn bài viết của các bạn. Bạn nào có code đăng ký cho Virtual serial port 6.0 thì share cho mình với. Email của mình: hbphuc@yahoo.com. Cám ơn rất nhiều.

                            Comment


                            • #59
                              Cái button Cong có tác dụng gì đó bạn ơi

                              Bạn ơi chỉ giúp mình tác dụng của button "Cong" là gì với. Mình đã làm thử như của bạn minhtuan nhưng khi ấn vào nút Cong thì chẳng thấy số 2 đâu cả.

                              Ai có code viết C dùng cho Pic cũng truyền RS232 tương tự thế này ko, cho mình với.

                              Mình mới làm Pic, đã truyền được dữ liệu từ máy tính xuống Pic rồi nhưng khi truyền từ Pic lên máy tính thì chẳng được gì cả. Mình code cho Pic bằng CCS và trên máy tính bằng C#.

                              Xin chỉ giúp mình với nhé. Cảm ơn nhiều

                              Comment


                              • #60
                                Nguyên văn bởi chicken87 Xem bài viết
                                Có cao thủ nào giúp phần mô phỏng bằng ORCAD không???
                                Tại hạ đang dùng OrCAD mong được giúp đỡ! thanks!
                                mô phỏng bằng orcad dở lắm,bạn nên sử dụng protues hay hon nhiều.orcad chi nên dùng vẻ mạch in thôi

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X