1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Điều khiển đường dẫn cổng RS-232 và LPT ?

Chủ đề trong 'Điện - Điện tử - Viễn thông' bởi scorpion_dmt, 18/05/2003.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. vietson

    vietson Thành viên mới

    Tham gia ngày:
    29/12/2002
    Bài viết:
    102
    Đã được thích:
    0
    Bác enti oi, có một chút nhầm lẫm đấy bác ạ.
    Đây là toàn bộ lớp vật lý của chuẩn RS232, kính các bác xem qua cho vui nhé.

    Có gì sai các bác bỏ quá nhe.

    Your wish is my command until I run out of love.
  2. MrLINH

    MrLINH Thành viên mới

    Tham gia ngày:
    30/05/2003
    Bài viết:
    10
    Đã được thích:
    0
    Em nen thiet ke modul ngoai cắm cổng LPT or COM Dùng các IC chuyển đổi DAC chu khong dung truc tiep Các cổng noi trên được đâu. Có gì lên hệ với anh. Anh đang làm đề tài tốt nghiệp về vấn đề này. Hy vọng giúp được em.
  3. scorpion_dmt

    scorpion_dmt Thành viên mới

    Tham gia ngày:
    17/05/2003
    Bài viết:
    30
    Đã được thích:
    0
    Hay đấy, nhưng mà anh ở Thái Nguyên hả anh MrLINH ?
    Vậy sao gặp được ???
    *... Song la de huong thu ...*
  4. suculamdieu

    suculamdieu Thành viên mới

    Tham gia ngày:
    01/03/2003
    Bài viết:
    336
    Đã được thích:
    0
    CHú làm một cái mạch test, nối các chân Data của LPT ra. Mỗi chân nối vào cực B của 1 transistor điều khiển 1 cái led ( nhớ đệm cho chú tran đấy điện trở 10k. rồi viết chương trình gửi lần lưọt dữ liệu ra LPT, đèn nháy là đưọc. con RS232 thì anh chưa thử vi xét cho cùng thì RS232 ít khi dùng và có lẽ khó duy trì mức logic trên một chân cụ thể vì nó là giao tiếp nối tiếp. ANh mới chỉ dùng RS232 để giao tiêp với Oscilloscope để điều khiển từ máy tính và đọc dữ liệu đo thôi. Ct viết bằng Labview. chứ ko dùng VB.

    A di da phat !!!!
  5. vophuongdung

    vophuongdung Thành viên mới

    Tham gia ngày:
    16/07/2003
    Bài viết:
    4
    Đã được thích:
    0
    Bạn Thân mến, trrong 1 bài trưóc đây cũng dã có người hỏi về việc gán giá tri diện thế lên các chân cuả printer port để điều khiển "robot" và toi đã cho trả lời chắc không thấy ai đọc tới.
    Có hai cách - viêt Pascal hay C cng đề1 được.
    1. dùng Interrupt 21h các function 05h. Hay Interrrupt 17h các function 00,01 hay 02. Bạn nên xem kĩ Reference cua Pascal và 1 cuốn sách chuyên về Interrupt mà gọi cho đúng.
    2. Xuat trực tiếp data ra cổng dùng "port" command như trong Pascal hay dùng inp, outp như trong C. Có thể Chuyển data đến Paralell port điạ chỉ từ 0x378-0x37a -- ví dụ (bạn hãy tìm cac''h viết lại function C code sau đây sang syntax cuả Pascal như là 1 bài tập)
    int par_out(char c)
    {
    int i, code;
    while (true) // wait until ready
    {
    code= inp(0x379);
    if ((code & 0x80) ==0x80)break;
    }
    outp(0x378, (int) c); //load data to register
    code=inp(0x37a);
    code=code | 0x01; //set STB bit
    outp(0x37a, code);
    for (i=0; i< STROB_WAIT) ; // waiting
    code=inp(0x37a);
    code=code & 0xfe; //clear STB bit
    outp(0x37a, code);
    while (true) //wait for ACK singal
    {
    code=inp(0x379);
    if ((code & 0x40)==0x00) break;
    }
    } //end
    Bạn ha~y co^'' ti`m hiểu xem đoạn code trên dã làm thao tac gì tới printer port? Hãy dùng sơ đồ cấu hình diện cuả printer port để xem chức năng cuả các chân và xuất diện thế như thế nào? các xung Data sẽ tồn tại bao lâu? nếu muốn lưu data (các diệnt thế ngỏ ra) trong thời gian lâu hơn thì làm sao (using loop))
    Trong vd có đề cập tới STB (strobe), BSY (busy), ACK (acknowledge), nếu như bạn hiểu rõ đoạn mã nguồn này thì việc dùng Pascal hay bất kì ngôn ngữ nào cũng sẽ dể dàng hơn.
    Tôi có thêm 1 lời khuyên nưã là bạn cần phải co 1 Oscilloscope thông thường hay tối thiểu là 1 Volmeter thật nhạy để đo các điện thế cuả các chân ra trên Printer port và từ đó hiể cách dể diều khiển điện thế cuả các chân suất cng như nhập.
    Chúc May mắn
    Võ Phương Dung
  6. leRomeo

    leRomeo Thành viên rất tích cực

    Tham gia ngày:
    06/09/2001
    Bài viết:
    6.009
    Đã được thích:
    0
    phần control register trên cổng LPT có tận 2 bit reversed (bit 6 và bit 7).
    Bác nào có kinh nghiệm về mấy cái này mô tả dùm em cách reverse của nó cái.
    Em vừa thử truyền 4 giá trị:
    + 4 : 00000100
    + 100 : 01100100
    + 164 : 10100100
    + 228 : 11100100
    bit 7 là msb.
    Đấy! Không hiểu tại sao khi truyền cả 4 giá trị trên thì các chân control (pin 1, 14, 16, 17) đều có điện áp 5V nhỉ? Em cắm mấy cái led vào, chả thấy thay đổi gì cả! Sáng choang!
    Thế thì nó reverse ở chỗ nào?
    Mà khi đọc lại dữ liệu thì truyền vào 00000100 nó lại ra 11000100, 0100100 ra 1100100 , 10100100 vẫn ra 10100100 còn 11100100 thì ra 10100100.
    Hì hì, cũng có quy luật đấy nhỉ? Nhưng em không biết nó còn gì bí hiểm ko Ai giúp em mới!!
    Juliette, when we made love you used to cry You said "I love you like the stars above, gonna love you till I die"
  7. enti

    enti Thành viên quen thuộc

    Tham gia ngày:
    18/01/2002
    Bài viết:
    334
    Đã được thích:
    0
    Các chân đó đã luôn ra đảo, tức là luôn ra 1. Nếu bạn muốn sử dụng chúng một cách nhanh nhất thì bạn nối chúng qua cổng NOT, lúc đó nó sẽ giống như các chân khác.
    Ai them nho anh ...
  8. hieuledinh

    hieuledinh Thành viên mới

    Tham gia ngày:
    27/10/2003
    Bài viết:
    4
    Đã được thích:
    0
  9. hieuledinh

    hieuledinh Thành viên mới

    Tham gia ngày:
    27/10/2003
    Bài viết:
    4
    Đã được thích:
    0
    Trong VB co thanh phan MSCOMM32.OCX ban co the dung de dung de truy xuat doi voi cong COM.
    Con cong may in ban co the ban viet bang C,Pascal,VB, DElphi bang 1 s cau lech cua AMs.Neu ban can minh se gui cho
  10. leRomeo

    leRomeo Thành viên rất tích cực

    Tham gia ngày:
    06/09/2001
    Bài viết:
    6.009
    Đã được thích:
    0
    nhưng mà mấy bit đấy đâu có chân ra hả bác?
    phần control chỉ có 4 bit 0, 1, 2, 3 ra trên chân 1, 14, 16, 17 thôi cơ mà...
    Em thử truyền các tổ hợp bit vào rồi đếm trạng thái trả về thấy nó chỉ nhận các tổ hợp từ 11000000 đến 11011111, còn lại đều bị nó convert thành 1 trong các tổ hợp thuộc nhóm đấy hết.
    Em muốn hỏi là tại sao truyền 11000000 vào mà bit 0, 1, 3 (tương ứng với chân 1, chân 14, chân 17) lại có tín hiệu là sao ạ?
    Juliette, when we made love you used to cry You said "I love you like the stars above, gonna love you till I die"

Chia sẻ trang này