Thông báo

Collapse
No announcement yet.

Giao tiếp vi xử lý với Máy tính ?

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

  • #16
    Nguyên văn bởi bienhou Xem bài viết
    thấy bạn cmt bệnh cái là mình đoán được con thạch anh rồi. =)), đến đây thì ko còn nghi ngờ gì nữa. bạn thay con 12MHz bằng con 11.0592Mhz nhé, xem kết quả ra sao
    Đây là sơ đồ mạch của mình. Khi nhấn SW1 thì sẽ gửi một ký tự "A" lên PC và đèn báo hiệu gắn ở Port P1.0 sẽ sáng.Còn việc thay thạch anh tối mình sẽ tìm con 11.0592Mhz để thay thử. Nhưng mình có thắc mắc là mình vẫn tìm thấy một số mạch sử giao tiếp với PC vẫn dùng con thạch anh 12M mà.

    Click image for larger version

Name:	So do mach gtmt.jpg
Views:	1
Size:	114.9 KB
ID:	1384203

    Comment


    • #17
      chân P1.1 nên kéo trở (pull up để chống nhiễu )
      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


      • #18
        Thạch anh nào cũng được song thạch anh 12Mhz thỳ khi chia để lấy giá trị nạp cho timer nó sẽ lẻ như vậy thỳ baud của bạn sẽ ko chính xác.
        -Chân nối với SW treo pull up lên con trở 10k( như bác queduong nói đó).
        Nguyễn Huy Biên - 01649 802 694
        gmail :

        Comment


        • #19
          Nguyên văn bởi MrPLC Xem bài viết
          Đây là sơ đồ mạch của mình. Khi nhấn SW1 thì sẽ gửi một ký tự "A" lên PC và đèn báo hiệu gắn ở Port P1.0 sẽ sáng.Còn việc thay thạch anh tối mình sẽ tìm con 11.0592Mhz để thay thử. Nhưng mình có thắc mắc là mình vẫn tìm thấy một số mạch sử giao tiếp với PC vẫn dùng con thạch anh 12M mà.

          [ATTACH=CONFIG]72996[/ATTACH]
          Dùng tần số thạch anh 12Mhz thì dùng Baud= 10 417;
          XTAL/12/16= 12Mhz/12/16= 62500;
          Baud= 62500/2/3 ~10416,666...( /3 vì mov TH1,#0Fdh )
          Nếu dùng baud 9600 thì phải dùng thạch anh 11.0592Mhz nha
          baud= XTAL/12/16/2/3= 11 059 200/12/16/2/3= 9600
          ĐT : 01676455880

          Comment


          • #20
            Mình đã thay lại con thạch anh 11.0592 mạch đã hoạt động bình thường. Một lần nữa cám ơn các bạn đã giải quyết vấn đề hộ mình.Chúc cả nhà vui vẻ!

            Comment


            • #21
              Hiện tại mình đang tìm hiểu thêm về lập trình ngắt ngoài. Cũng mạch trên mình thiết kế thêm nút nhấn gắn ở chân P3.3 để tạo tín hiệu ngắt ngoài I, và mình để chế độ ngắt theo sườn xuống , Khi ấn nút nhấn thì một ký tự "B " sẽ được gửi lên máy tính, nhưng chương trình chỉ thực hiện được có 1 lần, những lần bấm sau thì không có tác dụng. Mong các bác giúp mình với. Đây là đoạn chương trình mình viết.( Chương trình ngắt mình đánh dấu màu đỏ)
              #include <sfr51.inc>

              ORG 0000H
              SJMP START
              ORG 013H
              SJMP INTERUPP_EXTERNAL
              ORG 30H

              START:
              MOV SCON, #50h ;Port noi tiep mode 1
              MOV TMOD, #20h ;Timer 1 mode 2
              MOV TH1,#0Fdh ;9600 baud
              SETB TR1
              ;****** KHAI BAO NGAT NGOAI I ( CHAN P3.3)VA NGAT THEO SUON XUONG
              SETB EA
              SETB EX1
              SETB IT1

              CheckPush : JNB P1.0, RUN ;Kiem tra nut nhan
              SETB P0.0 ;Tat den Led
              SJMP CheckPush

              RUN: CLR P0.0
              AGAIN : MOV SBUF,#'A'
              HERE: JNB TI, HERE
              CLR TI
              LCALL DELAY
              SETB P0.0 ;TAT LED BAO HIEU
              JNB P1.0,$ ;NEU PHIM VAN CON DUOC NHAN THI DOI O DAY
              SJMP CheckPush
              DELAY:
              MOV R6, #100
              CHUAHET:
              MOV R7, #255
              CHUAHET1:
              DJNZ R7, CHUAHET1
              DJNZ R6, CHUAHET
              RET
              INTERUPP_EXTERNAL:
              CLR P0.1
              MOV SBUF,#'B'
              JNB TI, HERE
              CLR TI
              LCALL DELAY
              LCALL SENRS232
              SETB P0.1
              RETI

              ;***********************************
              ; CHUONG TRINH DEYLAY 500MS
              DEYLAY500MS:
              PUSH 00H
              MOV R0,#100
              MOV TMOD,#01H
              LOOP2:
              MOV TH0,#0ECH
              MOV TL0,#78H
              SETB TR0
              JNB TF0,$
              CLR TF0
              CLR TR0
              DJNZ R0,LOOP2
              POP 00H
              RET
              SENRS232:
              MOV SBUF,#'B'
              JNB TI, HERE
              CLR TI
              RET

              END
              Last edited by MrPLC; 07-09-2013, 13:59.

              Comment


              • #22
                Chưa có bác nào gặp vấn đề này sao? Mong các bác giúp em với.

                Comment


                • #23
                  Nguyên văn bởi MrPLC Xem bài viết
                  Chưa có bác nào gặp vấn đề này sao? Mong các bác giúp em với.
                  nhãn đặt nhảy lung tung hết làm sao mà chạy đúng được.
                  Code:
                  #include <sfr51.inc>
                  ORG 0000H 
                  SJMP START
                  ORG 013H
                  SJMP INTERUPP_EXTERNAL
                  ORG	30H
                  
                  
                  START:
                  MOV	 SCON, #50h	 ;Port noi tiep mode 1
                  MOV	 TMOD, #20h	 ;Timer 1 mode 2
                  MOV	 TH1,#0Fdh	 ;9600 baud
                  SETB	TR1
                  ;****** KHAI BAO NGAT NGOAI I ( CHAN P3.3)VA NGAT THEO SUON XUONG
                  SETB EA
                  SETB EX1
                  SETB IT1
                  
                  
                  CheckPush : JNB P1.0, RUN ;Kiem tra nut nhan 
                  SETB P0.0 ;Tat den Led
                  SJMP CheckPush 
                  
                  
                  RUN: CLR P0.0 
                  AGAIN : MOV SBUF,#'A'
                  HERE: JNB TI, HERE
                  CLR TI
                  LCALL DELAY
                  SETB P0.0 ;TAT LED BAO HIEU
                  JNB P1.0,$ ;NEU PHIM VAN CON DUOC NHAN THI DOI O DAY
                  SJMP CheckPush 
                  DELAY:
                  MOV R6, #100
                  CHUAHET:
                  MOV R7, #255
                  CHUAHET1:
                  DJNZ R7, CHUAHET1
                  DJNZ R6, CHUAHET
                  RET
                  INTERUPP_EXTERNAL:
                  CLR P0.1
                  MOV SBUF,#'B'
                  JNB TI, $
                  CLR TI
                  LCALL DELAY
                  LCALL SENRS232
                  SETB P0.1
                  RETI
                  ;***********************************
                  ; CHUONG TRINH DEYLAY 500MS
                  DEYLAY500MS:
                  PUSH 00H
                  MOV R0,#100
                  MOV TMOD,#01H
                  LOOP2:
                  MOV TH0,#0ECH
                  MOV TL0,#78H
                  SETB TR0
                  JNB TF0,$
                  CLR TF0
                  CLR TR0
                  DJNZ R0,LOOP2
                  POP 00H
                  RET
                  SENRS232:
                  MOV SBUF,#'B'
                  JNB TI, $
                  CLR TI
                  RET
                  
                  
                  END
                  |

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X