Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
553,5 KB
Nội dung
Lậptrìnhgiaotiếpmối tiếp
I. Cấu trúc cổng nối tiếp
Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi, có
các ưu điểm sau:
- Khoảng cách truyền xa hơn truyền song song.
- Số dây kết nối ít.
- Có thể truyền không dây dùng hồng ngoại.
- Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device).
- Cho phép nối mạng.
- Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc.
- Có thể cung cấp nguồn cho các mạch điện đơn giản
Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment) và DCE
(Data Communication Equipment). DCE là các thiết bị trung gian như MODEM còn
DTE là các thiết bị tiếp nhận hay truyền dữ liệu như máy tính, PLC, vi điều khiển, …
Việc trao đổi tín hiệu thông thường qua 2 chân RxD (nhận) và TxD (truyền). Các tín hiệu
còn lại có chức năng hỗ trợ để thiết lập và điều khiển quá trình truyền, được gọi là các tín
hiệu bắt tay (handshake). Ưu điểm của quá trình truyền dùng tín hiệu bắt tay là có thể
kiểm soát đường truyền.
1 . Chuẩn RS-232.
Tại sao phải quy định chuẩn?Để các thiêt bị máy in,máy tính vi điều khiển,rôbôt goi
chung là các thiết bị thu phát có thể làm việc hiệu quả và không gặp rắc rối khi làm việc
phối hợp từ lâu ngươì ta đặt ra các tiêu chuẩn (VD như tiêu chuẩn tốc độ truyền,cách
kiểm soát lỗi trong quá trình truyền,mức điện áp khi truyền )cho các cổng vào ra tín hiệu
của các thiết bị.RS-232 là một trong những chuẩn đó.Chuẩn này ra đời 1962(bởi EIA)
Tín hiệu truyền theo chuẩn RS-232 của EIA (Electronics Industry Associations).
Chuẩn RS-232 quy định mức logic 1 ứng với điện áp từ -3V đến -25V (mark), mức logic
0 ứng với điện áp từ 3V đến 25V (space) và có khả năng cung cấp dòng từ 10 mA đến 20
mA.
Ngoài ra, tất cả các ngõ ra đều có đặc tính chống chập mạch.
Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000 bps nhưng nếu cáp
truyền đủ ngắn có thể lên đến 115.200 bps
Chuẩn RS- 232 sử dụng phương thức truyền thông không đối xứng, tức là sử dụng tín
hiệu điện áp chênh lệch giữa một dây dẫn và đất. Các cổng của RS – 232 có ngưỡng điện
áp qui ước là -15V (volt) tới -3V , và 3V tới 15V (hoặc -5V, +5V, sự khác biệt giữa hai
giá trị 3, và 5V này được gọi là noise magin - biên độ dao động của nhiễu).
• Tín hiệu có áp lớn +3V được coi có logic 0 hoặc có giá trị cao (H)
• Tín hiệu có áp nhỏ hơn –3V được coi có logic 1 hoặc giá trị thấp (L).
• Điện áp từ -3V tới +3V không có ý nghĩa.
Chính vì từ – 3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi
giá trị logic từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá
độ trong một thơì gian ngắn hợp lý. Điều này dẫn đến việc phải hạn chế về điện dung của
các thiết bị tham gia và của cả đường truyền. Tốc độ truyền dẫn tối đa phụ thuộc vào
chiều dài của dây dẫn. Đa số các hệ thống hiện nay chỉ hỗ trợ với tốc độ 19,2 kBd (chiều
dài cho phép 30 – 50 m).
a.Các đặc tính kỹ thuật của chuẩn RS-232 như sau:
Chiều dài cable cực đại 15m
Tốc độ dữ liệu cực đại 20 Kbps
Điện áp ngõ ra cực đại ± 25V
Trở kháng tải 3K đến 7K
Điện áp ngõ vào ± 15V
Độ nhạy ngõ vào ± 3V
Trở kháng ngõ vào 3K đến 7K
ổng nối tiếp là: 1200 bps, 4800 bps,
9600 bps và 19200 bps.
b. Chế độ làm việc của hệ thống RS-232:
Là 2 chiều toàn phần ,tức là 2 thiết bị tham gia thu và phát cùng một chu kì .Như vậy
việc thực hiện truyền thông cần tối thiểu 3 dây dẫn trong đó 2 dây tín hiệu nối chéo với
cổng đầu thu phát của 2 chạm và một dây đât ới cấu hình tối thiểu này,việc đảm bảo độ
an toàn truyền dẫn thuộc về trách nhiệm phần mềm.RS-232 có một ưu điểm cụ thể sử
dụng công suất phát ra tương đối thấp,nhờ trở kháng đầu vào hạn chế trong phạm vi từ 3-
7Kom.Trong các rơle số thường dùng loai giắc cắm 9 chân và 25 chân.Chuẩn RS-232
quy định mức áp,tốc độ truyền và chức năng các chân của giắc.
c. Các đường dữ liệu của chuẩn RS-232
- TxD: Dữ liệu được truyền đi từ Modem trên mạng điện thoại.
- RxD: Dữ liệu được thu bởi Modem trên mạng điện thoại.
1.5 Các đường báo thiết bị sẵn sàng:
- DSR : Để báo rằng Modem đã sẵn sàng.
- DTR : Để báo rằng thiết bị đầu cuối đã sẵn sàng
- Các đường bắt tay bán song công.
- RTS : Để báo rằng thiết bị đầu cuối yêu cầu phát dữ liệu.
- CTS : Modem đáp ứng nhu cầu cần gửi dữ liệu của thiết bị đầu cuối cho thiết bị đầu
cuối có thể sử dụng kênh truyền dữ liệu. Các đường trạng thái sóng mang và tín hiệu điện
thoại:
- CD : Modem báo cho thiết bị đầu cuối biết rằng đã nhận được một sóng mang hợp lệ
từ mạng điện thoại.
- RI : Các Modem tự động trả lời báo rằng đã phát hiện chuông từ mạng điện thoại địa
chỉ đầu tiên có thể tới được của cổng nối tiếp được gọi là địa chỉ cơ bản (Basic Address).
Các địa chỉ ghi tiếp theo được đặt tới bằng việc cộng thêm số thanh ghi đã gặp của bộ
UART vào địa chỉ cơ bản.
- Mức tín hiệu trên chân ra RxD tùy thuộc vào đường dẫn TxD và thông thường nằm
trong khoảng –12 đến +12. Các bit dữ liệu được gửi đảo ngược lại. Mức điện áp đối với
mức High nằm giữa –3V và –12V và mức Low nằm giữa +3V và +12V. Trên hình 2-4
mô tả một dòng dữ liệu điển hình của một byte dữ liệu trên cổng nối tiếp RS-232C.
- Ở trạng thái tĩnh trên đường dẫn có điện áp –12V. Một bit khởi động (Starbit) sẽ mở
đầu việc truyền dữ liệu. Tiếp đó là các bit dữ liệu riêng lẻ sẽ đến, trong đó các bit giá trị
thấp sẽ được gửi trước tiên. Còn số của các bit thay đổi giữa 5 và 8. Ở cuối của dòng dữ
liệu còn có một bit dừng (Stopbit) để đặt trở lại trạng thái ngõ ra (-12V)
Cổng nối tiếp RS232 là một giao diện phổ biến rộng rãi nhất. Người ta còn gọi
cổng này là cổng COM1, còn cổng COM2 để tự do cho các ứng dụng khác. Giống như
cổng máy in cổng COM cũng được sử dụng một cách thuận tiện cho việc giaotiếp với
thiết bị ngoại vi.
Việc truyền dữ liệu qua cổng COM được tiến hành theo cách nối tiếp. Nghĩa là
các bit dữ liệu được truyền đi nối tiếp nhau trên một đường dẫn. Loại truyền này có khả
năng dùng cho những ứng dụng có yêu cầu truyền khoảng cách lớn hơn, bởi vì các khả
năng gây nhiễu là nhỏ đáng kể hơn khi dùng một cổng song song (cổng máy in).
Cổng COM không phải là một hệ thống bus nó cho phép dễ dàng tạo ra liên kết
dưới hình thức điểm với điểm giữa hai máy cần trao đổi thông tin với nhau, một thành
viên thứ ba không thể tham gia vào cuộc trao đổi thông tin này.
• Các chân và đường dẫn được mô tả như sau:
Phích cắm COM có tổng cộng 8 đường dẫn, chưa kể đến đường nối đất. Trên thực
tế có hai loại phích cắm, một loại 9 chân và một loại 25 chân. Cả hai loại này đều có
chung một đặc điểm.
Việc truyền dữ liệu xảy ra ở trên hai đường dẫn. Qua chân cắm ra TXD máy tính
gởi dữ liệu của nó đến KIT Vi điều khiển. Trong khi đó các dữ liệu mà máy tính nhận
được, lại được dẫn đến chân RXD các tín hiệu khác đóng vai trò như là tín hiệu hổ trợ khi
trao đổi thông tin, và vì thế không phải trong mọi trường hợp ứng dụng đều dùng hết.
Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps, 4800 bps,
9600 bps và 19200 bps
Sơ đồ chân cổng nối tiếp
2.Truyền thông 2 nút.
Các sơ đồ khi kết nối dùng cổng nối tiếp:
Sơ đồ kết nối đơn giản trong truyền thông nối tiếp
Khi thực hiện kết nối như trên, quá trình truyền phải bảo đảm tốc độ ở đầu phát và
thu giống nhau. Khi có dữ liệu đến DTE, dữ liệu này sẽ được đưa vào bộ đệm và tạo ngắt.
Ngoài ra, khi thực hiện kết nối giữa hai DTE, ta còn dùng sơ đồ sau:
DTE1 DTE2
Sơ đồ kết nối trong truyền thông nối tiếp dùng tín hiệu bắt tay
Khi DTE1 cần truyền dữ liệu thì cho DTR tích cực tác động lên DSR của DTE2
cho biết sẵn sàng nhận dữ liệu và cho biết đã nhận được sóng mang của MODEM (ảo).
Sau đó, DTE1 tích cực chân RTS để tác động đến chân CTS của DTE2 cho biết DTE1 có
thể nhận dữ liệu. Khi thực hiện kết nối giữa DTE và DCE, do tốc độ truyền khác nhau
nên phải thực hiện điều khiển lưu lượng. Quá trinh điều khiển này có thể thực hiện bằng
phần mềm hay phần cứng. Quá trình điều khiển bằng phần mềm thực hiện bằng hai ký tự
Xon và Xoff.
Ký tự Xon được DCE gởi đi khi rảnh (có thể nhận dữ liệu). Nếu DCE bận thì sẽ
gởi ký tự Xoff. Quá trình điều khiển bằng phần cứng dùng hai chân RTS và CTS. Nếu
DTE muốn truyền dữ liệu thì sẽ gởi RTS để yêu cầu truyền, DCE nếu có khả năng nhận
dữ liệu (đang rảnh) thì gởi lại CTS.
3:GIỚI THIỆU VI MẠCH GIAOTIẾP MAX 232.
Vì tín hiệu cổng COM thường ở mức +12V, -12V nên không tương thích với điện áp
TTL nên để giaotiếp KIT Vi điều khiển 8051 với máy tính qua cổng COM ta phải qua
một vi mạch biến đổi điện áp cho phù hợp với mức TTL, ta chọn vi mạch MAX232 để
thực hiện việc tương thích điện áp.
Vi mạch MAX 232 của hãng MAXIM là một vi mạch chuyên dùng trong giao diện nối
tiếp với máy tính. Chúng có nhiệm vụ chuyển đổi mức TTL ở lối vào thành mức +10V
hoặc –10V ở phía truyền và các mức +3…+15V hoặc -3…-15V thành mức TTL ở phía
nhận.
Vi mạch MAX 232 có hai bộ đệm và hai bộ nhận. Đường dẫn điều khiển lối vào CTS,
điều khiển việc xuất ra dữ liệu ở cổng nối tiếp khi cần thiết, được nối với chân 9 của vi
mạch MAX 232. Còn chân RST (chân 10 của vi mạch MAX ) nối với đường dẫn bắt tay
để điều khiển quá trình nhận. Thường thì các đường dẫn bắt tay được nối với cổng nối
tiếp qua các cầu nối, để khi không dùng đến nữa có thể hở mạch các cầu này. Cách truyền
dữ liệu đơn giản nhất là chỉ dùng ba đường dẫn TxD, RxD và GND
II.Một số ngôn ngữ trong lậptrìnhgiaotiếp nối tiếp:
1.LẬP TRÌNH TRONG DOS:
Ngôn ngữ
Lệnh khởi động cổng COM n:
OPEN “COM n, [Baud], [Parity], [Data], [Stop]” for RANDOM
as #m trong đó n = 1, 2, 3, 4; m = 1 ÷ 255
Ví dụ: OPEN “COM 2, 9600, E, 7, 2” FOR RANDOM AS #1
Lệnh xuất ra một chuỗi S $
PRINT #1 , S $
Lệnh đọc vào một chuỗi R $
INPUT # 1, R $
Ngoài ra còn các lệnh truy xuất thanh ghi của vi mạch UART
Ngôn ngữ Pascal và C
Dùng các lệnh truy xuất thanh ghi như ở chương 7
Trong MS DOS ở dòng lệnh đánh
MODE COM n : 96, E, 7, 1 sẽ mở COM n
2.LẬP TRÌNH NGÔN NGỮ VISUAL BASIC 6.0
Ngôn ngữ Visual Basic có module phần mềm MSCOMM.OCX phục vụ cho
truyền thông, với Visual Basic 4.0 là MSCOMM16.OCX còn với Visual Basic 6.0 là
MSCOMM32.OCX
Muốn cài trình đơn truyền thông vào thanh công cụ ta vào Project- Components –
Controls chọn Microsoft Comm Control 6.0/ OK (Hình 8.1), biểu tượng hình điện thoại
sẽ hiện trên thanhcông cụ. Có thể nhắp chuột kép để đưa vào form của chương trình. Các
bước trên có thể làm tắt bằng phím Ctrl T. Thành phần Comm khi mới đưa vào form
thường được gán tên MSComm1 cho cổng Com1 và ta có thể sửa tên hay thay đổi cổng
com tùy ý.
Các tính chất chính của trình đơn là Commport, DTREnable, EOFEnable, Handshaking,
InBuffersize, InputLen, InputMode,NullDiscard, OutBuffersize, ParityReplace, Rthreshold,
RTSEnable, Settmgs, Sthreshold… được đặt khi viết chương trình, có thể thay đổi khi chạy
chương trình bằng các lệnh điều khiển.
Tính chất CommPort
Đặt cổng com được sử dụng
Object.CommPort [= Value]
Value = 1 đến 16, mặc định là 1 khi khởi động Visual Basic.
Tính chất này phải đặt trước khi mở cổng, nếu biểu thức
trong ngoặc không có thì trả về số cổng com đang hoạt động.
Đặt cấu hình cổng
Object.Settings [= Value]
Value = “BBBB, P, D, S”
Gía trị mặc định là “9600, N, 8, 1”. Trong trường hợp đặt sai giá
trị sẽ báo sự cố.
Sau đây là các giá trị cho phép:
• Baud rate: 110, 300, 600, 1200, 2400, 9600 (Default), 14400,
19200, 28800, 38400, 56000, 128000, 256000
• Parity bit: E (even), M (Mark), N (Default), O (odd), S
(Space)
• Data bit: 4, 5, 6, 7, 8 (Default)
• Stop bit: 1, 1.5, 2
Ví dụ:
MSComm2. Settings = “9600, N, 8, 1”
Mở cổng
Object.PortOpen [= True/ False]
Value = True : mở cổng
Value = False : đóng cổng và xóa bộ đệm truyền thu,
Cổng tự động đóng khi kết thúc chương trình áp dụng.
Nhập dữ liệu
String$= Object.Input
Dữ liệu chuỗi ở bộ đệm thu được đọc vào biến String$ . Liên
quan đến đọc dữ liệu có các lệnh sau:
Object.InputLen [= numByte%]
InputLen: qui định số ký tự đọc bởi Input. Chọn InputLen =
0 sẽ cho đọc toàn bộ vùng bộ đệm.
Object.InbufferSize = [numbyte%]
InBufferSize đặt và trả về kích thước theo byte của đệm thu,
mặc định là 1024.
Object.InbufferCount [= Count%]
InbufferCount: cho biết số ký hiệu có trong bộ đệm nhận. Xóa
bộ đệm bằng cách cho InbufferCount = 0
Object.InputMode [= value]
InputMode: cho biết loại dữ liệu là văn bản hay nhị phân
Value = 0 : ComInputModeText
Value = 1 : ComInputModeBinary
Ví dụ:
Dim Buffer as Variant
Dim Arr() as Byte
MSComm1.CommPort = 1
MSComm1.PortOpen = True
‘Set InputMode to read binary data
MSComm1.InputMode = comInputModeBinary
Do Until MSComm1.InBufferCount > 10
DoEvents
Loop
Buffer = MSComm1.Input
' Assign to byte array for processing
Arr = Buffer
Xuất dữ liệu
Object.Output [= value]
Xuất chuỗi ký tự hay chuỗi nhị phân ra cổng COM.
Giống như nhập dữ liệu ta có các lệnh hỗ trợ.
OutBufferSize: đặt và trả lại kích thước bộ đệm truyền
OutBufferCount: trả lại số ký tự trong bộ đệm truyền.
Ví dụ: gởi ký tự nhấn phím
Private Sub Form_KeyPress (KeyAscii As Integer)
Dim Buffer as Variant
MSComm1.CommPort = 1
MSComm1.PortOpen = True
Buffer = Chr$(KeyAscii)
MSComm1.Output = Buffer
End Sub
Ví dụ:
‘ gởi chuỗi ký tự
MsComm1.Output = "This is a text string”
‘ gởi số nhị phân
Dim Out( ) As Byte
MsComm1.Output = Out
Gởi tín hiệu Break
object.Break [= True/False]
Đọc chân DCD
inCD= object. CDHolding
nếu inCD True thì DCD ở mức cao, nếu False DCD ở mức thấp.
Đặt thời gian chờ sóng mang
object. CDTimeout [= milliseconds]
Chờ khoảng thời gian cho DCD ở mức cao, nếu hết thời gian mà CDHolding =
false thì tạo sự kiện onComm CDTO (carrier detect Timeout Error).
Đọc CTS
object. CTS Holding
True: mức 1, False: mức 0
Đặt thời gian chờ CTS
Khi DTE gởi RTS thì modem phải gởi trả lại CTS, tính chất object. CTSTimeout
định thời gian chờ, nếu quá thời gian đó mà không có CTS thì tạo sự kiện CTSTO.
Đọc DSR
object. DSRHolding
Đặt thời gian chờ DSR
object. DSRTimeout
Điều khiển DTR
object. DTREnable [=True/False] nếu True thì DTR mức 1 khi mở cổng và mức 0
khi đóng cổng, nếu False thì DTR ở mức 0
Điều khiển RTS
object. RTSEnable [ =True/False]
Khi True RTS sẽ ở mức 1 khi mở cổng và mức 0 khi đóng
cổng
Sthreshold: đặt số byte có trong bộ đệm truyền để báo sự kiện.
Nếu Sthreshold = 1 thì sẽ gọi onComm khi bộ đệm truyền rỗng.
Nếu Sthreshold = 0 thì không gọi.
Đặt số byte của bộ đệm thu tối thiểu để báo sự kiện
[...]... chương trình con phục vụ ngắt và dữ liệu sẽ được đưa vào để xử lý b) Lậptrình 8051 để truyền dữ liệu nối tiếp Khi lậptrình 8051 để truyền các byte ký tự nối tiếp thì cần phải thực hiện các bước sau đây: 1 Nạp thanh ghi TMOD giá trị 204 báo rằng sử dụng Timer1 ở chế độ 2 để thiết lập chế độ baud 2 Nạp thanh ghi TH1 các giá trị cho trong bảng 2 để thiết lập cho chế độ baud truyền dữ liệu nối tiếp (... tiếp ACALL RECV ; Nhận dữ liệu nối tiếp MOV F1, A ; Hiển thị nó ra các đền LED SJMP B - 1 ; Ở lại vòng lặp vô hạn ; _ _ _ _ _ Truyền dữ liệu nối tiếp ACC có dũư liệu SEND: MOV SBUF, A ; Nạp dữ liệu H- 2: JNB TI, H - 2 ; Ở lại vòng lặp vô hạn CLR TI ; Truyền dữ liệu nối tiếp RET ; Nhận dữ liệu ; _ _ _ _ _ Truyền dữ liệu nối tiếp ACC có dữ liệu RECV: JNB RI, RECV ; Nạp dữ liệu MOV A, SBUF ; Ở lại đây cho... 4800 baud MOV SCON , #A” ; Truyền 8 bít dữ liệu, 1 bít stop cho phép thu SETB TR1 ; Khởi động timer1 AGAIN: MOV SBUF, #”A” ; cần truyền ký tự “A” HERE: JNB TI, HERE &n bsp; ; Chờ đến bít cuối cùng CLR TI ; Xoá bít TI cho ký tự kế tiếp SJMB AGAIN ; Tiếp tục gửi lại chữ A 4.5 Lập trình 8051 để nhận dữ liệu Trong lậptrình của 8051 để nhận các byte ký tự nối tiếp thì phải thực hiện các bước sau đây 1... dữ liệu 8 bít Stop, bít SETB TR1 ; khởi động bộ Timer1 HERE: JNB R1, HERE ; đợi nhận toàn bộ lý tự vào hết MOV A , SBUF ; lưu cất ký tự vào thanh A MOV P1, A ; gửi ra cổng P1 CLR RI ; sắn sàng nhận byte kế tiếp SJMP HERE ; tiếp tục nhận dữ liệu Ví dụ 3: Giả sử cổng nối tiếp của 8051 được nối vào cồng COM của máy tính IBM CP và mà đang sử dụng chương trình Termina Exe để gửi và nhận dữ liệu nối tiếp. .. khiển thành mức +12V, -12V để cho phù hợp hoạt động của máy tính Giaotiếp theo cách này, khoảng cách từ máy tính đến thiết bị ngoại vi có thể đạt tới trên 20 mét Ưu điểm của giao diện này là có khả năng thiết lập tốc độ Baud Khi dữ liệu từ máy tính được gởi đến KIT Vi điều khiển 8051 qua cổng COM thì dữ liệu này sẽ được đưa vào từng bit (nối tiếp) vào thanh ghi SBUF (thanh ghi đệm), đến khi thanh ghi đệm... “ JNB RI,xx” để xem toàn bộ ký tự đã được nhận chưa 7 Khi RI được thiết lập thì trong SBUF đã có 1 byte Các nội dung của nó được cất lưu vào một nơi an toàn 8 Để nhận một ký tự tiếp theo quay trở về bước 5 Ví dụ 2: Hãy lập trình 8051 để nhận các byte dữ liệu nối tiếp và đặt chúng vào cổng P1 Đặt tốc độ baud là 4800, 8 bít dữ liệu và 1 bít Stop1 Lời giải: MOV TMOD, #20H ; chọn bộ Timer1, chế độ 2 (... dữ liệu 8 bít, 1 bít Stop cho phép REN SETB TR1 ; Khởi động bộ Timer1 MOV DPTR, #MYDATA ; Nạp con trỏ đến thông báo H - 1: CLR A MOVC A, A + DPTR ; Lấy ký tự JZ DPTR ;Nếu kí tự cuối cùng muốn gửi ra ACALL SEND ;Nếu chưa thì gọi chương trình con SEND INC DPTR ; Chạy tiếp SJMP H - 1 ; Quay lại vòng lặp B - 1: MOV A, P2 ; Đọc dữ liệu trên cổng P2 ACALL RECV ; Truyền nó nối tiếp ACALL RECV ; Nhận dữ liệu. .. valLED7 = True Then Shape1(7).FillColor = &HFF& Else Shape1(7).FillColor = &HFFFFFF End If End If End Select Errlabel: Exit Sub End Sub Ứng dụng giao tiếp nối tiếp trong chuyển đổi AD: Chuyển đổi AD dung cổng nối tiếp 9600,8,E,1 /* chương trình chuyển đổi AD nối tiếp */ #include #include #include #define PORT1 0x3F8 #define INTVECT 0x0C int bufferin = 0; int bufferout = 0; unsigned... LED và các công tắc chuyển mạch tương ứng Hãy viết một chương trình cho 8051 a, Gửi thông báo “ We are ready’ (chúng tôi đã sẵn sàng) tới máy PC b, Nhận bất kỳ dữ liệu gì được Pc gửi đến và chuyển đến các đèn LED đang nối đến các chân của cổng P1 c, Nhận dữ liệu trên các chuyển mạch được nối tới P2 và gửi nó tới máy tính PC nối tiếp Chương trình phải thực hiện một lần a, nhưng b, và c chạy liên tục... báo chế độ nối tiếp 1 để đóng khung 8 bít dữ liệu, một bít Start và một bít Stop 4 Bật TR1 =1 để khởi động Timer1 5 Xoá bít TI bằng lệnh “ CLR TI” 6 Byte ký tự cần phải truyền được ghi vào SBUF 7 Bít cờ TI được hiển thị bằng lệnh “ JNB TI, xx” để báo ký tự đã được truyền hoàn tất chưa 8 Để truyền ký tự tiếp theo quay trở về bước 5 Ví dụ 1: Hãy viết chương trình cho 8051 để truyền nối tiếp một ký tự . Lập trình giao tiếp mối tiếp
I. Cấu trúc cổng nối tiếp
Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính. Cách truyền
dữ liệu đơn giản nhất là chỉ dùng ba đường dẫn TxD, RxD và GND
II.Một số ngôn ngữ trong lập trình giao tiếp nối tiếp:
1.LẬP TRÌNH TRONG DOS:
Ngôn