Thông báo

Collapse
No announcement yet.

Không gửi được chuỗi ký tự lên máy tính

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

  • Không gửi được chuỗi ký tự lên máy tính

    Em chào các bác ạ. Số là em đang làm một bài nho nhỏ là truyền ký tự từ 8051 lên máy tính qua cổng giao tiếp RS232. Giờ em gặp phải 2 vấn đề như sau :
    1-Em có thể truyền từng ký tự lên một với tốc độ 4800baud, nhưng nếu đổi lên 9600baud thì toàn ra ký tự lỗi cả.
    2-Em không thể truyền một chuỗi ký tự lên được, lập trình toàn bị báo lỗi sau : error C100: unprintable character 0xA0 skipped
    Code của em là :
    Code:
    #include <REGX51.H>
    #include "string.h"
    
    
    
    void send(unsigned char s)  // Funtion to transmit serial data
    {
    
    	
    //P2=P1-32;
    SBUF=s;
    while(TI==0);
    TI=0;
    /*SBUF=P1;
    while(TI==0);
    TI=0;*/
    }
    void sendchuoi(unsigned char *s)                 //Ð?nh nghia hàm g?i 1 chu?i ký t?
    {
    unsigned char lens, count;
    
      lens=strlen(s);
    	for(count=0;count<lens;count++)
    	{
    		send(*(s+count));
    	}
    	}
    void main()
    {
    TMOD=0x20;  //Timer1, mode 2, baud rate 9600 bps
    TH1=0XFA; 
    SCON=0x50;
    TR1=1;
    while(1)
    {
      
     
     
    		sendchuoi("Hanoi-Vietnam");
    		send(10);
    	
    	
    }
    }
    Các bác có thể giúp em được không ạ? Em xin chân thành cảm ơn.

  • #2
    Bạn dùng hàm printf thì chương trình sẽ gọn hơn rất nhiều

    Comment


    • #3
      Nguyên văn bởi dongyenhtk Xem bài viết
      Bạn dùng hàm printf thì chương trình sẽ gọn hơn rất nhiều
      Bạn có thể giải thích rõ ràng được không?

      Comment


      • #4
        BR9600 mà dùng thạch anh 12Mhz sẽ lỗi 7% thời gian

        Comment


        • #5
          Nguyên văn bởi chung1608 Xem bài viết
          BR9600 mà dùng thạch anh 12Mhz sẽ lỗi 7% thời gian
          Thế thì phải thay bằng thạch anh 11.xxxx Mhz ạ?
          Thế còn cái gửi chuỗi thì lỗi ở đâu hả anh?

          Comment


          • #6
            Nguyên văn bởi qwerty68 Xem bài viết
            Thế thì phải thay bằng thạch anh 11.xxxx Mhz ạ?
            Thế còn cái gửi chuỗi thì lỗi ở đâu hả anh?
            lỗi là đo baudrate bị sai số 7% .

            Comment


            • #7
              Nguyên văn bởi chung1608 Xem bài viết
              lỗi là đo baudrate bị sai số 7% .
              Thế thì lại phải đổi thạch anh rồi anh nhỉ? Em cảm ơn anh nhiều nhé.

              Comment


              • #8
                đúng rồi...mấy cái giao tiếp vs máy tính thì phải bắt buộc dùng thạch anh loại 11.059 MHz

                Comment


                • #9
                  #include"regx52.h"
                  #include"stdio.h"
                  void main()
                  {
                  SCON=0x52;
                  TMOD=0x20;
                  TH1=TL1=-3;
                  TR1=1;
                  while(1);
                  {
                  printf("Chuỗi - ký tự cần xuất\r");
                  }
                  }
                  Truyền dữ liệu qua = rs232 thì thạch anh tần số 11.0592
                  Chương trình dùng hàm printf thì nó chỉ đơn giản thế thôi

                  Comment


                  • #10
                    Nguyên văn bởi tan0710 Xem bài viết
                    đúng rồi...mấy cái giao tiếp vs máy tính thì phải bắt buộc dùng thạch anh loại 11.059 MHz
                    Nhưng còn cái code của em thì tại sao lại sai ạ? Lúc code trên máy tính thì liên quan gì tới thạch anh?

                    Comment


                    • #11
                      anh, em có thể giúp mình cách kết nối mềm tiện ích Hyper Terminal có đc ko ạ, đề cụ thể của mình là sử dụng cảm biến PIR phát hiện vật thể chuyển
                      động Khi phát hiện có vật thể chuyển động hệ thống gửi cảnh báo lên máy tính , hiển thị bằng phần
                      mềm tiện ích Hyper Terminal
                      do không hiểu về cách kết nối nên cũng không thế hiểu và để viết đuọc chương trình, nếu anh em nào biết thì chịu khó bỏ chút thời gian giúp mình nhe, mình cám ơn anh em nhiều nhe, chúc mọi người có ngày ngỉ cuối năm vui vẻ nhé!

                      Comment

                      Về tác giả

                      Collapse

                      qwerty68 Trịnh Ngọc Duy Tìm hiểu thêm về qwerty68

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

                      Collapse

                      Đang tải...
                      X