em đang gặp một vấn đề là khi em dùng mạch giao tiếp từ 8051 sang cổng COM của máy tính dùng chương trình Hyper Terminal của WinXP để hiển thị ký tự ASCII từ vi xử lý phát ra thì trên Hyper Terminal ko thể nhận đc..em kết nối P3.0 và P3.1 của 8051 với chân 10,11 của max232 và từ max232 có 3 chân cổng COM 9 female như mạch nạp của 8051, em dùng thạch anh 11,0592MHz và chỉnh timer 1 (-3) để nhập baud rate là 9600, hyper terminal cũng chỉnh 9600 baud rate...vậy em cần kết nối như thế nào để hyper ternimal có thể nhận đc ngay ký tự từ 8051 phát ra...các chân của max232 phải kết nối như thế nào và cáp truyền dữ liệu phải kết nối như thế nào cho đúng...mấy anh giúp dùm e với....cám ơn các anh rất nhiều...
Thông báo
Collapse
No announcement yet.
giúp em lập trình giao tiếp max232 với máy tính nha!!:(
Collapse
X
-
/************************************************** *****************
Project : CHUONG TRINH DIEU KHIEN LED MA TRAN SU DUNG CONG COM
DO AN MON DO LUONG VA DIEU KHIEN TU MAY TINH
Date : 24/02/2010
Author : leemanhj916@gmail.com
Phone : 0169 3829 235
Company : FEE - Hanoi University of Industry
IC type : AT8051 (89S52)
Clock : 11.0592 MHz
Command :
************************************************** ******************/
#include <REGX52.H>
#include <stdio.h>
unsigned char Mem[80];
unsigned char k,tg,sokt;
char j;
char n=0;
unsigned int x,d;
unsigned char code MaLed[] ={ /// Quet cot
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, //Dau cach
0xFF,0x07,0x03,0xB9,0x03,0x07,0xFF,0xFF, //A
0xFF,0x01,0x01,0x6D,0x01,0x93,0xFF,0xFF, //B
0xFF,0x83,0x01,0x7D,0x19,0x9B,0xFF,0xFF, //C
0xFF,0x01,0x01,0x7D,0x01,0x83,0xFF,0xFF, //D
0xFF,0x01,0x01,0x6D,0x6D,0xFF,0xFF,0xFF, //E
0xFF,0x01,0x01,0xed,0xED,0xFF,0xFF,0xFF, //F
0xFF,0x83,0x01,0x7D,0xAD,0x09,0x0B,0xFF, //G
0xFF,0x01,0x01,0xEF,0x01,0x01,0xFF,0xFF, //H
0xFF,0xFF,0x7D,0x01,0x01,0x7D,0xFF,0xFF, //I
0xFF,0xBF,0x3F,0x7D,0x01,0x81,0xFD,0xFF, //J
0xFF,0x01,0x01,0x83,0x19,0x7D,0xFF,0xFF, //K
0xFF,0xFF,0x01,0x01,0x3F,0x3F,0xFF,0xFF, //L
0x01,0x01,0xC7,0x0F,0xC7,0x01,0x01,0xFF, //M
0xFF,0x01,0x01,0xE3,0x8F,0x01,0x01,0xFF, //N `-
0xFF,0x83,0x01,0x7D,0x01,0x83,0xFF,0xFF, //O
0xFF,0x01,0x01,0xDD,0xC1,0xE3,0xFF,0xFF, //P
0xFF,0x83,0x01,0x7D,0x5D,0x01,0x83,0x7F, //Q
0xFF,0x01,0x01,0xCD,0x01,0x23,0xFF,0xFF, //R
0xFF,0xB3,0x21,0x6D,0x09,0x9B,0xFF,0xFF, //S
0xFF,0xF9,0xF9,0x01,0x01,0xF9,0xF9,0xFF, //T
0xFF,0x81,0x01,0x7F,0x01,0x81,0xFF,0xFF, //U
0xFF,0xE1,0x81,0x3F,0x81,0xE1,0xFF,0xFF, //V
0xE1,0x81,0x3F,0x87,0x87,0x3F,0x81,0xE1, //W
0xFF,0x39,0x11,0xC7,0xC7,0x11,0x39,0xFF, //X
0xFF,0xF9,0xE1,0x07,0x07,0xE1,0xF9,0xFF, //Y
0xFF,0x3D,0x1D,0x4D,0x65,0x71,0x79,0xFF //Z
};
//--------[ b a b y i l o v e y o u .........™ ]---------->
void convert(unsigned char kytu) // Ham chuyen ky tu sang ma Matrix LED
{ // Va dua vao mot mang
unsigned int temp,i;
if (kytu>64)
temp = (kytu-64)*8;
else
temp = 0;
for(i=temp; i<temp+8; i++)
Mem[k++] = MaLed[i];
}
//-------------------------------
void convert_str(unsigned char *str)
{
k=0;
//for(i=0;i<sokt*8;i++)
sokt=0;
while(*str)
{
convert(*str);
str++;
sokt++;
}
}
//---------------------------------
void dichtrai(void)
{
unsigned char temp,i;
temp = Mem[0];
for(i=0;i<(sokt*8-1);i++)
Mem[i] = Mem[i+1];
Mem[sokt*8-1] = temp;
}
//-------------------------------
void main(void)
{
unsigned char kt=0,temp,ch,chuoi[8];
SCON = 0x52;
TMOD = 0x22; // Timer 1 va Timer0 Mode 2
TH1 = TL1 = -3; // Toc do Baud la 9600
IE = 0x82;
TH0 = TL0 = -100;
convert_str("CON GA");
TR0 = 1;
TR1 = 1;
TI=0;
RI=0;
while(1)
{
//temp = _getkey();
//P1 = ~temp;
do
{
temp = _getkey();
}
while(temp != '@');
kt=0;
TR0 = 0;
do
{
temp = _getkey();
ch = temp;
if (ch!='@')
chuoi[kt++]=ch;
}
while(ch != '@');
convert_str(chuoi);
TR0 = 1;
}
}
//-------------------------------
void NgatTimer0(void) interrupt 1
{
TR0 = TF0 = 0; // Dung Timer 0 va Xoa co tran
d++;
if(tg++>10)
{
if(x==0x0000)
x=0x0001;
P1 = 0xFF; // xoa du lieu tren cot
P0 = x%256;
P2 = x/256;
P1 = Mem[n];
x<<=1;
if(n++>=15)
n=0;
tg=0;
}
if(d==2500)
{
dichtrai();
d =0;
}
TR0 = 1;
}
Bài viết mới nhất
Collapse
-
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 nay, 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 nay, 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
Hôm qua, 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 -
-
bởi Nexus 6PCó ai có bản in của mạch in không, cho em xin file để đi in với ạ
-
Channel: Điện tử công suất
02-02-2026, 14:37 -
-
bởi Nexus 6PLink hư rồi ạ, xin lại link của bản thiết kế cũ ạ...
-
Channel: Điện tử công suất
02-02-2026, 10:48 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ, cảm ơn bác đã nghe qua và có lời khích lệ cháu ạ.
Thật lòng cháu không dám nhận hai danh hiệu Kỹ sư và Nhạc sĩ đâu ạ, vì phải thật hiểu sâu nắm vững cơ, chứ thực lực cháu đây chỉ là biết chút ít thôi à. Về phần...-
Channel: Tâm tình dân kỹ thuật
29-01-2026, 11:58 -

Comment