Bài 05 CÁC CHUẨN TRUYỀN THÔNG THÔNG DỤNG... RS232:CCS Vi điều khiển PC Tốc độ truyền/nhận:... CCS - Giao tiếp giữa vi điều khiển và PC:.
Trang 1Bài 05
CÁC CHUẨN TRUYỀN
THÔNG THÔNG DỤNG
Trang 2Sơ đồ chân PIC16F877A
1
2
3
4
5
6
7
8 9 10 13
14
15
16
17
18
19 20 21
22 23
24
25
26
27 28 29 30
33 34 35 36 37 38 39
40
MCLR/Vpp
RA0/AN0
RA1/AN1
RA2/AN2/Vref
-RA3/AN3/Vref +
RA4/TOCKI
RA5/AN4/SS
RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7
OSC1/CLKIN
OSC2/CLKO
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCL
RD0/PSP0 RD1/PSP1 RD2/PSP2
RD3/PSP3 RC4/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT
RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7
RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD
RS232:
I2C
SPI
Trang 31 RS232:
CCS
Vi điều khiển
PC
Tốc độ truyền/nhận:
Trang 4- Thiết lập giao tiếp RS232
CCS
VĐK 01
MAX232/
VĐK 02
GND
VĐK
TxD
RxD
RxD (2)
(5)
TxD (3)
Rin Rout
Trang 5CCS
- Giao tiếp giữa 2 vi điều khiển:
VDD
C2 4.7uF - 10uF
C3
1uF
VDD
C3
1uF
1
2 3 4 5 6 7
8 9 10
11 12
13
14
15 16 17 18
19 20 21 22 23
24 25 26
27 28 29 30
33
34
35 36 37 38
39
40
MCLR/Vpp
RA0/AN0 RA1/AN1 RA2/AN2/Vref -RA3/AN3/Vref + RA4/TOCKI RA5/AN4/SS
RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7
OSC1/CLKIN OSC2/CLKO
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCL
RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RC4/SDA
RC5/SDO RC6/TX/CK RC7/RX/DT
RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7
RB0/INT
RB1
RB2 RB3/PGM RB4 RB5
RB6/PGC RB7/PGD
VDD
C11 33P
RST
VDD
RST
C6 33P
C2 4.7uF - 10uF
Y 1 4M
C6 33P
C11 33P
VDD
VDD
1
2 3 4 5 6 7
8 9 10
11 12
13
14
15 16 17 18
19 20 21 22 23
24 25 26
27 28 29 30
33
34
35 36 37 38
39
40
MCLR/Vpp
RA0/AN0 RA1/AN1 RA2/AN2/Vref -RA3/AN3/Vref + RA4/TOCKI RA5/AN4/SS
RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7
OSC1/CLKIN OSC2/CLKO
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCL
RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RC4/SDA
RC5/SDO RC6/TX/CK RC7/RX/DT
RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7
RB0/INT
RB1
RB2 RB3/PGM RB4 RB5
RB6/PGC RB7/PGD
Y 1 4M
R1 10K
R1 10K
Trang 6CCS
- Giao tiếp giữa vi điều khiển và PC:
Trang 7CCS
- Giao tiếp giữa vi điều khiển và PC:
C13 1u
VDD
Y 1 4M
C2 4.7uF - 10uF
VDD
R1 10K
VDD
C3
1uF
C15 1u
VDD
VDD
1
2 3 4 5 6 7
8 9 10
11 12
13
14
15 16 17 18
19 20 21 22 23
24 25 26
27 28 29 30
33
34
35 36 37 38
39
40
MCLR/Vpp
RA0/AN0 RA1/AN1 RA2/AN2/Vref -RA3/AN3/Vref + RA4/TOCKI RA5/AN4/SS
RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7
OSC1/CLKIN OSC2/CLKO
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCL
RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RC4/SDA
RC5/SDO RC6/TX/CK RC7/RX/DT
RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7
RB0/INT
RB1
RB2 RB3/PGM RB4 RB5
RB6/PGC RB7/PGD
C6 33P RST
C16 1u
U4 MAX232
1 3 4 5
2 6
12
9
11 10
13
8
14 7
C1+
C1-C2+
V+
V-R1OUT
R2OUT
T1IN T2IN
R1IN
R2IN
T1OUT T2OUT
C11 33P
J4
PC interface
1 2 3
C14 1u
Trang 8CCS
Các lệnh liên quan RS232:
- Khai báo tốc độ truyền
#include <16F887.h>
#FUSES NOWDT, HS, NOPUT, PROTECT, NODEBUG, NOBROWNOUT, NOLVP
#use delay(clock=4000000)
#use rs232(baud=1200, xmit=PIN_C6, rcv=PIN_C7)
- Các hàm truuyền/nhận:
1 Putc(byte): truyền 1 byte
2 Printf(“chuỗi kí tự”): truyền 1 chuỗi kí tự
3 Value = Getc(): đọc 1 byte
4 Kbhit(): kiểm tra xem có 1 byte đã nhận chưa
- Sử dụng ngắt nhận:
#INT_RDA
void Reiceive()
{
value = getc();
Trang 92 I2C:
CCS
3 SPI: