| Tác giả | Thông báo |
|---|
winit_a
Tham gia: 16 tháng mười một 2003 Bài viết: 17
| 15 tháng hai 2004 5:42 Tạo UART như thế nào với phần mềm (không được sử dụng SBUF) trên 8051 | | | tags: uart 8051 c phần mềm uart 8051 8051 MCU với 3 uart uart 8051 p3.1 uart 8051 c |
|
| Làm thế nào để Tạo UART Với phần mềm? Dự án của tôi được sử dụng 3 UART (b́nh thường có 1 UART với các phần cứng P3.0 và P3.1)
8051 MCU@11.0592MHz Làm thế nào để Tạo UART sử dụng P2 hoặc P1 vào Giao diện RS-232 |
|
| Trở về đầu trang | |
 |
pisoiu
Tham gia: 31 tháng mười hai 2002 Bài viết: 900 Giúp đỡ: 24 Địa điểm: Ru-ma-ni
| 15 tháng hai 2004 11:58 Re: Làm thế nào để Tạo UART với các phần mềm (không được sử dụng SBUF) trên 8051 | | | tags: uart cho việc triển khai thực hiện trong 8051 c xon xoff 8051 uart 8051 c phần mềm uart 8051 triển khai thực hiện uart phần mềm trong 8051 8051 xon xoff việc triển khai thực hiện với 8051 uart tính chẵn lẻ trong c |
|
| Chào, Ư kiến của tôi: nó là chê khó tính. Bạn sẽ phải làm điều đó bằng cách sử dụng interrupts, nhưng 8051 là một điều khiển tương đối chậm, hiệu quả của nó ở dưới 1mips tại 11,0592 MHz đồng hồ cổ điển cho các phiên bản 8051 (1instruction chu kỳ = 12 chu kỳ đồng hồ). Nhiều hơn một cổng nối tiếp thực hiện trong phần mềm sẽ ăn hầu như tất cả các bộ xử lư thời gian, đặc biệt là nếu bạn muốn đi đến 115200bps với các cảng, hoặc nếu bạn muốn có thể thực hiện tất cả các tham số (6/7/8 bit dữ liệu selecteble, 1 / 2 ngừng bit, chẵn lẻ / thậm chí / đánh dấu / không gian / không có, kiểm soát lưu lượng xon-xoff/hard/none lựa chọn). Sugestion của tôi là sử dụng một kiến trúc được sửa đổi từ 8051 Cypress, hoặc sử dụng một scenix microcontroller (www.ubicom.com). Đối với scenix khiển tôi có thể cung cấp mă số cho 8 uarts cùng một lúc. Điều này, nếu bạn muốn có một phần mềm triển khai thực hiện. Nếu muốn Yau phần cứng, bạn có thể sử dụng max3100 (châm ngôn).
Tốt nhất, |
|
| Trở về đầu trang | |
 |
Ajay
Tham gia: 29 tháng hai 2004 Bài viết: 31
| 01 tháng ba 2004 0:10 Re: Làm thế nào để Tạo UART với các phần mềm (không được sử dụng SBUF) trên 8051 | | |
|
| Bạn có thể tạo ra một trong những UART (ngoài bằng cách sử dụng SBUF) bằng cách sử dụng một giờ lại rất nhanh và viết mă để xoay bit. Trên các bên (RXD), bạn phải sử dụng một gián pin. Khi đến gián đoạn, bắt đầu của bạn đọc giờ và pin vào t́nh trạng thực hiện, và luân phiên của bạn tạo ra các byte. Các công tŕnh cũng tối đa 9600 baud (Tôi đă sử dụng nó).
Tuy nhiên, tạo ra hai CÁC cùng một lúc không? Quên nó. Thậm chí nếu bạn sử dụng dành riêng hai giờ, những gián đoạn lớn để trở thành thói quen mà bạn sẽ bỏ lỡ bit.
Nếu bạn đang t́m kiếm chậm UARTs (1200 baud hoặc chậm), sau đó kỹ thuật này cho các hoạt động tối đa của 2 UART. Hăy ghi nhớ rằng bạn sẽ cung cấp cho tất cả ba giờ (một trong những tỷ lệ được sử dụng cho baud gen cho SBUF, một cho cổng 1 và cổng cho một trong những thời gian 2) cũng như cả interrupts.
V́ vậy, tốt hơn là thiết kế để sử dụng một chip ARM với hai UART của (Tôi đă tạo ra 2 bổ sung UARTs tại 19200 baud với một ARM), hoặc sử dụng Thỏ khiển hay một số điều như vậy.
Ajay |
|
| Trở về đầu trang | |
 |
beuch
Tham gia: 06 tháng sáu 2001 Bài viết: 65 Địa điểm: Pháp
| 03 tháng ba 2004 14:45 Re: Làm thế nào để Tạo UART với các phần mềm (không được sử dụng SBUF) trên 8051 | | |
|
| Chào,
có một cái nh́n vào đính kèm tập tin từ trang web Philips An.
AN446
tiện đây
|
|
| Trở về đầu trang | |
 |
crazytnt
Tham gia: 02 tháng hai 2004 Bài viết: 8
| 03 tháng ba 2004 17:43 Re: Làm thế nào để Tạo UART với các phần mềm (không được sử dụng SBUF) trên 8051 | | |
|
| Nó rất khó khăn. Đề nghị sử dụng phần cứng. |
|
| Trở về đầu trang | |
 |
J_expoler2
Tham gia: 10 tháng năm 2003 Bài viết: 179 Giúp đỡ: 19
| 03 tháng ba 2004 18:00 Re: Làm thế nào để Tạo UART với các phần mềm (không được sử dụng SBUF) trên 8051 | | |
|
| Chào tôi có một số ư tưởng UART nhưng chỉ gửi dữ liệu bằng cách sử dụng timer 0 bit, T232 như TxD MOV TMOD, # 22H MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; chức năng gửi dữ liệu: CLR T232; START BIT SETB TR0 MOV R7, # 8
TX_LOOP: RRC Đáp JNB TF0, $ MOV T232, C CLR TF0 DJNZ R7, TX_LOOP JNB TF0, $ SETB T232; STOP BIT CLR TF0 JNB TF0, $ Ret nó có thể giúp u BR. |
|
| Trở về đầu trang | |
 |
fireplus
Tham gia: 31 tháng mười 2003 Bài viết: 195 Giúp: 5
| 04 tháng ba 2004 3:29 Re: Làm thế nào để Tạo UART với các phần mềm (không được sử dụng SBUF) trên 8051 | | |
|
| thử mà
[hr: 5c6e3c7296] Chữa cháy trong các dây: sm2:
|
|
| Trở về đầu trang | |
 |
Ajay
Tham gia: 29 tháng hai 2004 Bài viết: 31
| 08 tháng ba 2004 12:28 Re: Làm thế nào để Tạo UART với các phần mềm (không được sử dụng SBUF) trên 8051 | | |
|
| | J_expoler2 đă viết: | Chào tôi có một số ư tưởng UART nhưng chỉ gửi dữ liệu bằng cách sử dụng timer 0 bit, T232 như TxD MOV TMOD, # 22H MOV TH0, # 70H MOV TL0, # 70H SETB EA SETB ET0 SETB TR1 ; ; ; ; chức năng gửi dữ liệu: CLR T232; START BIT SETB TR0 MOV R7, # 8
TX_LOOP: RRC Đáp JNB TF0, $ MOV T232, C CLR TF0 DJNZ R7, TX_LOOP JNB TF0, $ SETB T232; STOP BIT CLR TF0 JNB TF0, $ Ret nó có thể giúp u BR. |
Đây là chỉ tốt cho chuyển. Vấn đề đến khi bạn cố gắng để nhận được là tốt. Trước hết, phương pháp này sẽ KHÔNG BAO GIỜ làm việc cho hai hoạt động đầy đủ, trừ khi bạn sử dụng hai giờ khác nhau.
Hơn nữa, để tiếp nhận, bạn sẽ cần phải sử dụng một phần cứng gián đoạn này sẽ bắt đầu tính giờ chính xác vào đúng thời điểm và sau đó sẽ giúp chuyển đổi dữ liệu. Một lần nữa, h́nh thức này rất tốt chỉ là một nửa giao tiếp song.
Phức tạp khác xuất phát từ thực tế là những gián đoạn trở thành thói quen lâu dài và sẽ gây ra các vấn đề của thiếu bit. Hăy ghi nhớ rằng các lỗi sẽ tích lũy trong một khoảng thời gian!
Cách tốt nhất là sử dụng một chip có nhiều cổng nối tiếp (ARM, uPSD từ ST vv)
Ajay |
|
| Trở về đầu trang | |
 |