การส่งค่า output ออกทาง port RS-232
การสื่อสารแบบอนุกรม
นับว่ามีความสำคัญ ต่อการใช้งาน ไมโครคอนโทรลเลอร์มาก เพราะสามารถใช้แป้นพิมพ์
และจอภาพของ PC เป็น อินพุต และ
เอาต์พุต ในการติดต่อ หรือ ควบคุม ไมโครคอนโทรลเลอร์ ด้วยสัญญาณอย่างน้อย เพียง 3
เส้นเท่านั้น คือ
- สายส่งสัญญาณ TX
- สายรับสัญญาณ RX
- และสาย GND
โดยปกติพอร์ตอนุกรม RS-232C จะสามารถต่อสายได้ยาว
50 ฟุตโดยประมาณ ขึ้นอยู่กับ ชนิดของ สายสัญญาณ, ระยะทาง, และ ปริมาณ สัญญาณ รบกวน
พอร์ตอนุกรมของ PC
DB9 ตัวผู้ (Male)
พอร์ตอนุกรมของอุปกรณ์ภายนอก DB9
ตัวเมีย (Female)
- พอร์ตอนุกรมของ
PC จะเป็นคอนเน็คเตอร์แบบ DB9 ตัวผู้ (Male)
พอร์ตอนุกรม
ของอุปกรณ์ภายนอก จะเป็นคอนเน็คเตอร์แบบ DB9 ตัวเมีย(FeMale)
แสดงการจัดขา
ของคอนเน็กเตอร์ อนุกรมแบบ DB9 และหน้าที่การใช้งานต่างๆ
DB9 ตัวผู้ เมื่อมองจากด้านหลัง
Pin
|
Description
|
Type
|
|
1
|
Data
Carrier Detect (DCD)
|
Input
|
|
2
|
Received
Data (RXD)
|
Input
|
|
3
|
Transmitted
Data (TXD)
|
Output
|
|
4
|
Data
Terminal Ready (DTR)
|
Output
|
|
5
|
Signal
Ground (GND)
|
Input
|
|
6
|
Data
Set Ready (DSR)
|
Input
|
|
7
|
Request
To Send (RTS)
|
Output
|
|
8
|
Clear
to Send (CTS)
|
Input
|
|
9
|
Ring
Indicator (RI)
|
Input
|
การเชื่อมต่ออุปกรณ์อุกรณ์ภายนอกเข้ากับคอมพิวเตอร์ด้วยสาย
DB9
การเชื่อมต่ออุปกรณ์ภายนอกผ่าน
DB9 แบบ Null modem
การต่ออุปกรณ์ภายนอกผ่าน
DB9 แบบ 3 เส้น
-
การทำงานของขาสัญญาณ
DB9
|
TXD เป็นขาที่ใช้ส่งข้อมูล
RXD เป็นขาที่ใช้รับข้อมูล
DTR
แสดงสภาวะพอร์ตว่าเปิดใช้งาน
,DSR ตรวจสอบว่าพอร์ต
ที่ติดต่อด้วย เปิดอยู่หรือไม่
|
|
||||
|
- เมื่อเปิดพอร์ตอนุกรม ขา DTR จะ ON เพื่อให้อุปกรณ์ได้รับทราบว่าต้องการติดต่อด้วย
|
|
|||
|
- ในขณะเดียวกันก็จะตรวจสอบขา DSR ว่าอุปกรณ์พร้อมหรือไม่
|
||||
RTS แสดงสภาวะพอร์ตว่าต้องการส่งข้อมูล
,CTS ตรวจสอบว่าพอร์ตที่ติดต่ออยู่
ต้องการส่งข้อมูลหรือไม่
|
|
||||
|
- เมื่อต้องการส่งข้อมูลขา RTS จะ ON และจะส่งข้อมูลออกที่ขา TXD เมื่อส่งเสร็จก็จะ OFF
|
|
|||
|
- ในขณะเดียวกันก็จะตรวจสอบขา CTS ว่าอุปกรณ์ต้องการที่จะส่งข้อมูลหรือไม่
|
|
|||
GND
ขา ground
|
|||||
com
= get(handles.edit1,'string');
str
= strcat('COM',com);
SerPIC
= serial(str); %<--change
this appropriately
set(SerPIC,'BaudRate',
9600, 'DataBits', 8, 'Parity', 'none','StopBits', 1, 'FlowControl', 'none');
fopen(SerPIC); %--open
the serial port to the PIC
fprintf(SerPIC,
'%s', '004'); %--send
a _three_ digit string to the PIC with no terminator ('%s')
%-- 003 = 00000011 in binary,
so first two LEDs of PIC will light
fclose(SerPIC) %--close
the serial port when done
delete(SerPIC)
clear
SerPIC
Comments
Post a Comment