Thông báo

Collapse
No announcement yet.

Giao tiếp VĐK với PC

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

  • Giao tiếp VĐK với PC

    Anh em xem hộ chương trình này với, mình muốn xuất 0123456789 ra màn hình HyperTerminal mà nó xuất ra toàn các kí tự lạ... ko bik sai chỗ nào.

    Code:
    #include<stdio.h>
    #include<reg52.h>
    char x;
    void main(void)
    {
    	SCON = 0x52; //Port noi tiep che do 1, REN=TI=1
    	TMOD = 0x20; // Timer 1 mode 2
    	TH1 = TL1 = -3; // Toc do baud la 9600
    	TR1 =1;
    	for (x= 0x30 ; x<0x39 ; x++)
    	{
    	while(!TI); // wait den khi TI=1
    	TI=0;
    	SBUF = x; // truyen ki tu co ma ASCII trong bien x
    	}
    }
    Attached Files

  • #2
    Không ai giúp em với ạ !!!

    Comment


    • #3
      qua ta bày cho =.=!

      Comment


      • #4
        Chú mi giúp được thì giúp anh, đừng có TNT. Chả hiểu nó bị gì. code ko sai,mạch thì ko lỗi... VĐK thì đổi 2 con rồi, chương trình khác thì nó vẫn bình thường mà. Sao đẩy qua Hyper Terinal nó xuất toàn cái kí tự gì gì ko

        Comment


        • #5
          lỗi này là sai tốc độ baud , kiểm tra lại thạch anh nha ! chọn loại 11,0592 MHZ

          Comment


          • #6
            Mình đã chỉnh đúng tốc độ baund . còn thạch anh thì đang dùng 12 Mhz. Nhưng sao phải dùng thạch anh 11,0592 MHZ vậy?

            Comment


            • #7
              Thế bạn tính kiểu gì mà ra 9600 với thạch anh 12M ??

              Comment


              • #8
                thứ 1 : thạch anh 11.0592 Mhz mới cho đúng tốc độ baud 9600
                thứ 2 : ko bik kon 89 này bị gì mà mấy đứa bạn mình làm truyền từ pc xuống thì dc nhưng truyền lên toàn nhận sai khi dùng max232, thay nó bằng con PL2303 thì truyền dc

                Comment


                • #9
                  Mình đã sửa lại mạch và thay thạch anh 11,095 Mhz thì được rồi.
                  Mọi người xem hộ giúp chuơng trình này.

                  Code:
                  #include<stdio.h>
                  #include<reg52.h>
                  int x;
                  void main(void)
                  {
                  	SCON = 0x50; //Port noi tiep che do 1, REN=TI=1
                  	TMOD = 0x20; // Timer 1 mode 2
                  	TH1 = -3; // Toc do baud la 9600 (che do 2 kho thiet lap TL1)
                  	TR1 =1;
                  	for (x = 0x30 ; x <= 0x39 ; x++)
                  	{
                  	SBUF = x; // truyen ki tu co ma ASCII trong bien x
                  	while(TI==0); // wait den khi TI=1
                  	TI=0;
                  	}
                  }
                  Khi mình kết nối với PC dùng HyperTerminal thì nó thế này

                  Code:
                  01234567890123456789012345678901234567890123456789012345678901234567890123456789
                  01234567890123456789012345678901234567890123456789012345678901234567890123456789
                  01234567890123456789012345678901234567890123456789012345678901234567890123456789
                  01234567890123456789012345678901234567890123456789012345678901234567890123456789
                  01234567890123456789012345678901234567890123456789012345678901234567890123456789
                  01234567890123456789012345678901234567890123456789012345678901234567890123456789
                  01234567890123456789012345678901234567890123456789012345678901234567890123456789
                  01234567890123456789012345678901234567890123456789012345678901234567890123456789
                  01234567890123456789012345678901234567890123456789012345678901234567890123456789
                  01234567890123456789012345678901234567890123456789012345678901234567890123456789
                  01234567890123456789012345678901234567890123456789012345678901234567890123456789
                  0123456789012345678901234567890123456789012345678901234567890123456789012345678
                  Mình muốn chỉ nhận 1 dãy số 0123456789 thôi, không biết lỗi chỗ nào.

                  Mình đang lập trình trên VB 2005 để nhận dữ liệu từ VDK, bạn nào có chuơng trình viết bằng VB 2005, có thể cho mình tham khảo được ko, vì mới mò nên còn nhiều cái chưa biết.
                  Cám ơn mọi người nhiều!

                  Comment


                  • #10
                    thêm cái while(1); vào cuối của hàm main()
                    Website chính thức đổi địa chỉ website thành
                    Mời các bạn ghé thăm !!!

                    Comment


                    • #11
                      Nguyên văn bởi Vinhanboy Xem bài viết
                      Mình đã sửa lại mạch và thay thạch anh 11,095 Mhz thì được rồi.
                      Mọi người xem hộ giúp chuơng trình này.

                      Code:
                      #include<stdio.h>
                      #include<reg52.h>
                      int x;
                      void main(void)
                      {
                      	SCON = 0x50; //Port noi tiep che do 1, REN=TI=1
                      	TMOD = 0x20; // Timer 1 mode 2
                      	TH1 = -3; // Toc do baud la 9600 (che do 2 kho thiet lap TL1)
                      	TR1 =1;
                      	for (x = 0x30 ; x <= 0x39 ; x++)
                      	{
                      	SBUF = x; // truyen ki tu co ma ASCII trong bien x
                      	while(TI==0); // wait den khi TI=1
                      	TI=0;
                      	}
                      }
                      Khi mình kết nối với PC dùng HyperTerminal thì nó thế này

                      Code:
                      01234567890123456789012345678901234567890123456789012345678901234567890123456789
                      01234567890123456789012345678901234567890123456789012345678901234567890123456789
                      01234567890123456789012345678901234567890123456789012345678901234567890123456789
                      01234567890123456789012345678901234567890123456789012345678901234567890123456789
                      01234567890123456789012345678901234567890123456789012345678901234567890123456789
                      01234567890123456789012345678901234567890123456789012345678901234567890123456789
                      01234567890123456789012345678901234567890123456789012345678901234567890123456789
                      01234567890123456789012345678901234567890123456789012345678901234567890123456789
                      01234567890123456789012345678901234567890123456789012345678901234567890123456789
                      01234567890123456789012345678901234567890123456789012345678901234567890123456789
                      01234567890123456789012345678901234567890123456789012345678901234567890123456789
                      0123456789012345678901234567890123456789012345678901234567890123456789012345678
                      Mình muốn chỉ nhận 1 dãy số 0123456789 thôi, không biết lỗi chỗ nào.

                      Mình đang lập trình trên VB 2005 để nhận dữ liệu từ VDK, bạn nào có chuơng trình viết bằng VB 2005, có thể cho mình tham khảo được ko, vì mới mò nên còn nhiều cái chưa biết.
                      Cám ơn mọi người nhiều!
                      Hyper Terminal nó sẽ hiển thị tất cả data truyền đến nó.
                      Nếu muốn nhận một dãy số cố định thì can thiệp vào thông số cổng COM trong VB.
                      Không nhớ lắm hình như là mục Rthreshold. Đặt giá trị này bằng số kí tự chuỗi muốn nhận.

                      Comment


                      • #12
                        Nguyên văn bởi mast090 Xem bài viết
                        thêm cái while(1); vào cuối của hàm main()
                        Nếu như vậy có vẻ không ổn bạn àh. Nếu khi viết chuơng trình nhận dữ liệu từ VDK thì ko lẽ nó cứ đẩy dữ liệu lên PC hoài sao bạn. Không phải lúc nào mình muốn đẩy dữ liệu lên thì đẩy chứ.

                        Comment


                        • #13
                          thì bạn bảo là chỉ hiện 1 lần thôi và ko hiện nữa, thế lên mình mới bảo thế, ko chạy lệnh j nữa mà
                          Website chính thức đổi địa chỉ website thành
                          Mời các bạn ghé thăm !!!

                          Comment


                          • #14
                            Bạn cũng có thể dùng cách gửi ký tự xác nhận xuông vđk. Nếu vđk nhận đc ký tự này mới gửi dữ liệu lên.

                            Comment


                            • #15
                              Nguyên văn bởi OoMrBayoO Xem bài viết
                              Bạn cũng có thể dùng cách gửi ký tự xác nhận xuông vđk. Nếu vđk nhận đc ký tự này mới gửi dữ liệu lên.
                              Làm thế nào bạn nhỉ ? Mình chưa rõ lắm

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              • bqviet
                                Trả lời cho Đấu tắt điện cho máy tính bảng
                                bởi bqviet
                                Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                                06-12-2025, 17:17
                              • nguyendinhvan
                                Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                                bởi nguyendinhvan
                                Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                                05-12-2025, 19:59
                              • afrendly
                                Trả lời cho Đấu tắt điện cho máy tính bảng
                                bởi afrendly
                                Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                                04-12-2025, 01:27
                              • nick22
                                Trả lời cho Máy điện châm ?
                                bởi nick22
                                Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                                01-12-2025, 13:23
                              Đang tải...
                              X