Mình có làm cái Quang Báo sử dụng 8951 và đã sử dụng toàn bộ các cổng của IC, bây giờ mình muốn nhận dữ liệu từ máy tính qua RS232 để điều khiển và hiển thị. Như vậy hai chân RxD và TxD có thể vừa làm Port I/O vừa làm nhiệm vụ trao đổi dữ liệu qua RS232 được không? Các bác có thể chỉ rõ cho mình chút được không? Thanks!
Thông báo
Collapse
No announcement yet.
Hỏi về giao tiếp RS232 ??????????????
Collapse
X
-
Nếu như mình còn dư 2 chân RxD và TxD thì sao? Và mình có cần sử dụng thêm 1 chân nào đó ( khác cổng P3 ) để làm công tắc chuyển từ trạng thái hiển thị dữ liệu sang trạng thái nhận dữ liệu từ CPU và ngược lại không? Hay là có thể làm trực tiếp công việc đó bằng phần mềm? Bạn có thể chỉ cho mình một cái hướng nào đó để giải quyết vấn đề này được không?Học cho lắm, tắm hổng có quần thay
Học cho hay, tắm thay hoài cái quần cũ.
Comment
-
khi dùng để giao tiếp RS-232 thì bạn cho phép ngắt nối tiếpNguyên văn bởi hamchoiMình có làm cái Quang Báo sử dụng 8951 và đã sử dụng toàn bộ các cổng của IC, bây giờ mình muốn nhận dữ liệu từ máy tính qua RS232 để điều khiển và hiển thị. Như vậy hai chân RxD và TxD có thể vừa làm Port I/O vừa làm nhiệm vụ trao đổi dữ liệu qua RS232 được không? Các bác có thể chỉ rõ cho mình chút được không? Thanks!
còn I/0 thì bạn vô hiệu hóa chức năng này đi
nhưng mạch nên có một số thay đổi
mạch tôi làm tôi thường sử dụng các jumper ,bằng các này thì có thể thay đổi chức năng của mạch dcSHARE KHO PHIM LỚN
Comment
-
Bạn cần quản lý tốt bit RI (có thể thêm TI), tuy nhiên, cách dùng này không tối ưu lắm!
Tiết kiệm pin IO thế? 
Nếu TxD và RxD rảnh để chỉ thực hiện việc giao tiếp UART thì hình như trong diễn đàn này đã có bài nói về nó rồi đó, bạn chịu khó tìm lại!
Last edited by Family; 12-05-2006, 23:05.------------------
------------------
Comment
-
Chào các bạn, mình là người mới sử dụng 8951 nên chưa biết nhiều.
Các bạn có tài liệu của thầy Tăng Văn Cường về vi điều khiển không, file pdf, nếu có các bạn có thể share cho minh với.
Mình đang làm 1 mạch giao tiếp 89C51 với máy tính mà truyền nhận dữ liệu nối tiếp không được. Có sử dụng serial watcher để giao tiếp thử thì chỉ nhận được ký tự 0. mình pó tay rồi.
Đã kiểm tra mạch OK rồi.
Địa chỉ mail của mình: herocdt@yahoo.com
Cám ơn các bạn trước nhé.
Comment
-
vào đây nhé: http://dientuvietnam.net/forums/show...?t=2197&page=2 có file đó.Chào các bạn, mình là người mới sử dụng 8951 nên chưa biết nhiều.
Các bạn có tài liệu của thầy Tăng Văn Cường về vi điều khiển không, file pdf, nếu có các bạn có thể share cho minh với.
Mình đang làm 1 mạch giao tiếp 89C51 với máy tính mà truyền nhận dữ liệu nối tiếp không được. Có sử dụng serial watcher để giao tiếp thử thì chỉ nhận được ký tự 0. mình pó tay rồi.
Đã kiểm tra mạch OK rồi.
Địa chỉ mail của mình: herocdt@yahoo.com
Cám ơn các bạn trước nhé.
@all: anh em thử nghĩ xem có dc ko nhé: đầu tiên truyền từ PC xuống, VDK nhận dc dữ liệu thì tức thì chỉnh thanh ghi cho thành cổng I/O ??? cái thằng 8051 này mình bỏ roài nên cũng ko biết chắc có dc ko?
Comment
-
mình đã thử truyền từ máy tính xuống con 89 mà không có ngắt nối tiếp gì hết. Không biết con Max232 có vấn đề gì không.
Minh lập trình bằng VB, khởi động CT ở máy tính trước rồi mới bật 89 lên, sử dụng button để tác động gửi ký tự => không hiện tượng ngắt ( xử lý ngắt nối tiếp để led sáng)
ở dưới là đoạn code mình chạy thử, các bạn xem có sai không nhé:
CT VB
Private Sub Command1_Click()
MSComm1.Output = Trim(Text1.Text)
End Sub
---------
CT C
unigneed chr flagngat;
void ngatnoitiep() interrupt 4
{
flagngat=1;
}
void khoidong()
{
TMOD=0x20;
SCON=0x52;
TH1=0xFD;baund 9600
TR1=1;
EA=1;
P0=0;
P1=0;
P2=0;
}
void main()
{
flagngat=0;
while(1)
{
if(flagngat)
{
led=1;
delay(100);
led=0;
delay(100);
}
}
}
Comment
-
ý quên phần khai báo trong VB:
Private Sub Form_Load()
With MSComm1
.CommPort = 1 'chose COM1
.Settings = "9600,N,8,1" 'baud 9600bps, none parity, 8 bit data, 1 bit stop
.InBufferSize = 1024
.InputLen = 0
.RThreshold = 1
.SThreshold = 0
.OutBufferSize = 512
.InputMode = comInputModeBinary
'.InputMode = comInputModeText
.PortOpen = True
End With
End Sub
Comment
-
đầu tiền là: chưa thấy khởi tạo cổng com cho VĐKNguyên văn bởi newbite Xem bài viếtmình đã thử truyền từ máy tính xuống con 89 mà không có ngắt nối tiếp gì hết. Không biết con Max232 có vấn đề gì không.
Minh lập trình bằng VB, khởi động CT ở máy tính trước rồi mới bật 89 lên, sử dụng button để tác động gửi ký tự => không hiện tượng ngắt ( xử lý ngắt nối tiếp để led sáng)
ở dưới là đoạn code mình chạy thử, các bạn xem có sai không nhé:
CT VB
Private Sub Command1_Click()
MSComm1.Output = Trim(Text1.Text)
End Sub
---------
CT C
unigneed chr flagngat;
void ngatnoitiep() interrupt 4
{
flagngat=1;
}
void khoidong()
{
TMOD=0x20;
SCON=0x52;
TH1=0xFD;baund 9600
TR1=1;
EA=1;
P0=0;
P1=0;
P2=0;
}
void main()
{
flagngat=0;
while(1)
{
if(flagngat)
{
led=1;
delay(100);
led=0;
delay(100);
}
}
}
cho hàm khoidong() vào mian() đi
email:mahaco@fpt.vn
Comment
-
Max232 thường có lỗi: TRUYỀN nhận không đúng data vì sai tốc độ và sai lung tung... tại vì con max232 này chết mà.Nguyên văn bởi newbite Xem bài viếtmình đã cho vô rồi hoctro89 ơi. tại mình quên ghi.
sorry.
Theo bạn thì max232 thường có lỗi gì không?
cần thận trường hợp max232 tèo đó. tôi gặp nhiều rồi
email:mahaco@fpt.vn
Comment
-
ngay như mình lồng thêm code vào While(1) để kiểm tra xem máy tính có hiện tượng oncom hay không khi P2.0 high ( P2.0 mình tác động ngoài khi mạch chạy) thì cũng không cóNguyên văn bởi newbite Xem bài viếtmình đã thử truyền từ máy tính xuống con 89 mà không có ngắt nối tiếp gì hết. Không biết con Max232 có vấn đề gì không.
Minh lập trình bằng VB, khởi động CT ở máy tính trước rồi mới bật 89 lên, sử dụng button để tác động gửi ký tự => không hiện tượng ngắt ( xử lý ngắt nối tiếp để led sáng)
ở dưới là đoạn code mình chạy thử, các bạn xem có sai không nhé:
CT VB
Private Sub Command1_Click()
MSComm1.Output = Trim(Text1.Text)
End Sub
---------
CT C
unigneed chr flagngat;
void ngatnoitiep() interrupt 4
{
flagngat=1;
}
void khoidong()
{
TMOD=0x20;
SCON=0x52;
TH1=0xFD;baund 9600
TR1=1;
EA=1;
P0=0;
P1=0;
P2=0;
}
void main()
{
flagngat=0;
khoidong();
while(1)
{
if(flagngat)
{
led=1;
delay(100);
led=0;
delay(100);
}
}
}
if(P2_0)
{
EA=0;
TI=0;
SBUF='A';
While(!TI);
TI=0;
EA=1
}
Comment
-
có cách nào test được không. Mình đã thay 4 con rùi đó mà có khác gì đâuNguyên văn bởi hoctro89xxx Xem bài viếtMax232 thường có lỗi: TRUYỀN nhận không đúng data vì sai tốc độ và sai lung tung... tại vì con max232 này chết mà.
cần thận trường hợp max232 tèo đó. tôi gặp nhiều rồi
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Cho tới thời điểm này, quả thật Đình Thường đây quá thất vọng, không hào hứng với Suno-AI lắm bởi ra lệnh Creat mấy chục lần với các thay đổi thì mới chọn được 2 bản hát đúng giai điệu tầm 80% để cắt ghép tạo thành bài hát...
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 17:01 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Kính chào cả nhà, nhân dịp Tết đang về, sắp 23 tháng chạp rồi, xin gởi lời chúc xuân qua bài hát sau ạ:
Bao nhiêu hân hoan
Chúc Mừng Năm Mới, xuân sang!
Nơi nơi hát vang
nâng chén vui chúc câu An Lành.
Vạn Sự đều Hanh Thông,
Rạng...-
Channel: Tâm tình dân kỹ thuật
hôm nay, 16:46 -
-
bởi ittcChán quá các bác, em nhạt nhẽo quá nên tán em nào cũng tạch, tuyệt vọng vô cùng, nay lại được mấy anh đồng nghiệp cty đối tác mách cho em gái kia sinh năm 2K đầu, em chả biết nhóm đối tượng này phải tán ra sao bây giờ ?
Tính ra em...-
Channel: Tâm tình dân kỹ thuật
hôm nay, 00:18 -
-
bởi bqvietCó thể, ví dụ phần phản hồi gồm vi mạch cách ly quang, zener thứ cấp, transistor và điện trở phản hồi dòng ... Bất kỳ linh kiện nào nhóm đó hỏng dẫn tới mất đường phản hồi. TNY chính hãng phát hiện được chuyện đó nhưng linh kiện...
-
Channel: Điện tử công suất
Hôm qua, 18:36 -
-
bởi Nexus 6Pcho e hỏi, khi mạch có linh kiện nào đó hư thì có làm hỏng led đắt tiền (osram) không?
-
Channel: Điện tử công suất
Hôm qua, 10:42 -
-
bởi chinhnguyen9· Thí nghiệm 1 (Mạch boost, Vcc=12V, kích bằng dao động PƯM, duty 10%):
* Không có snubber + không tải: Xuất hiện hiện tượng dao động tắt dần tại cực D Mosfet (ringing). Hình 1 cho thấy trong chu kỳ đầu, điện áp spike lên tới hàng trăm V, điện...-
Channel: Hướng dẫn sử dụng diễn đàn
04-02-2026, 09:16 -
-
bởi Nexus 6Pe dùng KiCad 9.0 và đã xuất được file PDF mạch in gòi bác...
-
Channel: Điện tử công suất
03-02-2026, 16:25 -
-
bởi bqvietBấm chuột vào các tệp sẽ bật ra chương trình tương ứng. Nên dùng bản KiCAD sau
https://kicad-downloads.s3.cern.ch/a...ll_version.exe-
Channel: Điện tử công suất
03-02-2026, 14:57 -
-
bởi Nexus 6Pe cài KiCAD 2012 khi mở ra nó chỉ hiện ntn...
-
Channel: Điện tử công suất
03-02-2026, 11:20 -
-
bởi bqvietThực tế bạn nào không tải được tệp nén thiết kế thì căn cứ theo ảnh sơ đồ mạch có thể vẽ lại sơ đồ bằng chương trình EDA nào đó rồi làm mạch được mà. Càng thêm quen thuộc với sơ đồ. Sau đó tùy ý chuyển sang TinySwitch-III hoặc TinySwitch-4.
-
Channel: Điện tử công suất
02-02-2026, 21:13 -

Comment