LỜI MỞ ĐẦU
Với việc phát triển của kĩ thuật vi xữ lý hiện nay thì việc áp dụng vào thực tiễn
đời sống là một nhu cầu cần thiết của con người. Với xu hướng hiện đại hóa như hiện
nay thì việc điều khiển thiết bị bởi một hệ thống sẽ giúp việc điều khiển thiết bị đơn
giản và dễ sử dụng cho người dùng.
Nắm bắt được tình hình nhóm sinh viên chúng em lựa chọn đề tài “Điều Khiển
Thiết Bị Qua PC” nhằm nghiên cứu để cung cấp cho người dùng một hệ thống điều
khiển đơn giản mà hiệu quả, đó là hệ thống điều khiển nhiều thiết bị tại chỗ qua việc
kết nối với cổng COM máy tính, chúng ta có thể điều khiển được các thiết bị dân dụng
như đèn dây tóc, đèn huỳnh quang, và các thiết bị được được điều khiển bằng chức
năng ON/OFF.
Thông qua việc nghiên cứu vi điều khiển AT89S8252, các cổng giao tiếp máy
tính và các linh kiện điện tử, đề tài sẽ mang lại một hệ thống ổn định, chính xác và an
toàn với người sử dụng.
Với sự hướng dẫn của cô Nguyễn Lan Anh đã giúp chúng em hoàn thành tốt đề
tài này.
Trong quá trình tìm hiểu không thể không có những điều thiếu sót, mong quý
Thầy Cô và người đọc góp ý, chình sửa để đề tài của chúng em được hoàn thiện tốt
hơn.
Nhóm Sinh Viên
Trang 1
 
 
 
 
Điều khiển thiết bị qua PC Mục lục
MỤC LỤC
LỜI MỞ ĐẦU . .1
MỤC LỤC . 2
 CHƯƠNG 1: DẪN NHẬP . .6
1.1 LÝ DO CHỌN ĐỀ TÀI . 6
1.3 ĐỐI TƯỢNG NGHIÊN CỨU VÀ PHẠM VI NGHIÊN CỨU . 6
1.3.1 Đối tượng nghiên cứu. .6
1.3.2 Phạm vi nghiên cứu . 6
 CHƯƠNG 2: TÌM HIỂU VI ĐIỀU KHIỂN AT89S8252 . .7
2.1 MÔ TẢ . .7
2.2 CẤU TRÚC VDK AT89S8252, CHỨC NĂNG TỪNG CHÂN . .7
2.3 TỔ CHỨC BỘ NHỚ . . 11
2.3.1 RAM mục đích chung . . 12
2.3.2 RAM định vị. . 12
2.3.3 Các băng thanh ghi (Register Banks). 12
2.3.4 Các thanh ghi chức năng đặc biệt (Special Function Register). 13
 2.3.4.1 Từ trạng thái chương trình (PSW: Program Status Word): . 14
 2.3.4.2 Thanh ghi B: . . 16
 2.3.4.3 Con trỏ Stack SP (Stack Pointer): . . 16
 2.3.4.4 Hai con trỏ dữ liệu DPTR (Data Pointer) . . 16
 2.3.4.5 Các thanh ghi Port (Port Register): . 16
 2.3.4.6 Các thanh ghi Timer (Timer Register): . 16
 2.3.4.7 Các thanh ghi Port nối tiếp (Serial Port Register): . . 17
 2.3.4.8 Các thanh ghi ngắt (Interrupt Register): . . 17
 2.3.4.9 Thanh ghi điều khiển nguồn PCON (Power Control Register): . . 18
 2.3.4.10 Thanh ghi điều khiển bộ nhớ và kiểm soát giờ (WMCON) . . 19
 2.3.4.11 Thanh ghi giao tiếp nối tiếp bên ngoài SPI (Serial Peripheral
Interface) 20
2.4 TÓM TẮT TẬP LỆNH CỦA AT89S8252 . . 21
2.4.1 Các chế độ định vị ( addressing mode ) . . 21
 2.4.1.1 Sự định vị thanh ghi ( Register Addressing) . 21
 2.4.1.2 Sự định địa chỉ trực tiếp ( Direct Addressing ) . . 22
 2.4.1.3 Sự định vị địa chỉ gián tiếp ( Indirect Addressing) . . 22
 2.4.1.4 Sự định vị địa chỉ tức thời (Immediate Addressing) . . 23
 2.4.1.5 Sự định vị địa chỉ tương đối . 23
 2.4.1.6 Sự định địa chỉ tuyệt đối ( Absolute Addressing) . 24
 2.4.1.7 Sự định vị địa chỉ dài ( Long Addressing ) . . 24
 2.4.1.8 Sự định địa chỉ phụ lục (Index Addressing ) . 24
2.4.2 Các kiểu lệnh (instruction types) . . 25
 2.4.2.1 Các lệnh số học (Arithmetic Instrustion): . . 25
 2.4.2.2 Các hoạt động logic (Logic Operation): . . 26
 2.4.2.3 Các lệnh rẽ nhánh . . 27
 2.4.2.4 Các lệnh dịch chuyển dữ liệu. . 29
 2.4.2.5 Các lệnh luận lý (Boolean Instruction) . 30
2.5 HOẠT ĐỘNG CỦA PORT NỐI TIẾP AT89S8252. 31
2.5.1 Giới thiệu . . 31
2.5.2 Thanh ghi điều khiển port nối tiếp SCON (Serial Port Control Register) 32
2.5.3 Các mode hoạt động (Mode Of Operation) . . 33
2.5.4 Sự khởi động, truy xuất các thanh ghi port nối tiếp . . 34
 2.5.4.1 Sự cho phép bộ thu (Recive Enable) . . 34
 2.5.4.2 Bit data thứ 9 ( the 9th data bit) . . 34
 2.5.4.3 Sự thêm vào bit kiểm tra chẳn lẻ Parity . . 34
2.5.4.4 Cờ ngắt . . 35
2.5.5 Sự truyền của bộ xử lý đa kênh . 35
2.5.6 Tốc độ baud của port nối tiếp . . 36
2.6 HOẠT ĐỘNG TIMER CỦA AT89S8252 . . 39
2.6.1 Giới thiệu . . 39
2.6.2 Timer 0 và Timer 1 . 39
 2.6.2.1 Thanh ghi điều khiển Timer TCON (Timer Control Register) . 41
 2.6.2.2 Các Mode và cờ tràn (Timer Modes And Overflow) . . 41
 2.6.2.2.1 Mode Timer 13 bit (MODE 0) . . 41
 2.6.2.2.2 Mode Timer 16 bit (MODE 1) . . 42
 2.6.2.2.3 Mode tự động nạp 8 bit (MODE 2) . 42
 2.6.2.2.4 Mode Timer tách ra (MODE 3) . . 43
 2.6.2.3 Các nguồn xung clock (Clock Sources) . . 43
 2.6.2.3.1 Sự bấm giờ bên trong (Interval Timing) . . 43
 2.6.2.3.2 Sự đếm các sự kiện (Event Counting) . . 44
 2.6.2.4 Sự bắt đầu, kết thúc và sự điều khiển các Timer (Starting, Stoping And
 Controlling The Timer) . 44
 2.6.2.5 Sự khởi động và truy suất các thanh ghi Timer. 44
 2.6.2.6 Sự đọc thanh ghi timer trên tuyến. 45
2.6.3 Timer 2 . 45
 2.6.3.1 Thanh ghi T2CON (Timer/Counter 2 Control Register) . 46
 2.6.3.2 Thanh ghi T2MOD - Timer 2 Mode Control Register . 47
 2.6.3.3 Chế độ Capture . 47
 2.6.3.4 Chế độ Auto-Reload . 48
 2.6.3.5 Chế độ Baud Rate Generator . 49
 CHƯƠNG 3: TÌM HIỂU CÁC CỔNG GIAO TIẾP . 51
3.1 GIAO TIẾP CỔNG SONG SONG (CỔNG MÁY IN) . 51
3.1.1 Tên gọi . 51
3.1.2 Mức điện áp cổng . 51
3.1.3 Khoảng cách ghép nối . 51
3.1.4 Tốc độ truyền dữ liệu . 51
3.1.5 Cấu trúc cổng song song . 51
3.1.6 Các thanh ghi ở cổng song song. 53
3.2 GIAO TIẾP CỔNG NỐI TIẾP (RS232) . 53
3.2.1 Cấu trúc cổng nối tiếp. 53
3.2.2 Truyền thông nối tiếp giữa 2 nút. 56
3.3 TÌM HIỂU VỀ USB . 57
3.3.1 Khái niệm . 57
3.3.2 Kết nối qua USB . 58
3.3.3 Mở rộng cổng USB . 58
3.3.4 Các đặt tính của USB . 59
3.3.5 USB 2.0 . 60
3.3.6 USB 3.0 . 60
 CHƯƠNG 4: CHUẨN TRUYỀN THÔNG NỐI TIẾP RS232 . 62
4.1 ĐẶT VẤN ĐỀ. 62
4.2 ƯU ĐIỂM CỦA GIAO DIỆN NỐI TIẾP RS232. 62
4.3 NHỮNG ĐẶC ĐIỂM CẦN LƯU Ý TRONG CHUẨN RS232. 62
4.4 CÁC MỨC ĐIỆN ÁP ĐƯỜNG TRUYỀN . 62
4.5 CỔNG RS232 TRÊN PC . 63
4.6 QUÁ TRÌNH DỮ LIỆU. 64
4.6.1 Tốc độ Baud. 65
4.6.2 Bit chẵn lẻ hay Parity bit. 65
4.7 SƠ ĐỒ KẾT NỐI . 66
 CHƯƠNG 5. THIẾT KẾ MẠCH PHẦN CỨNG ĐIỀU KHIỂN . 67
5.1 KHỐI NGUỒN NUÔI VI ĐIỀU KHIỂN, MẠCH. 67
5.2 KHỐI CHUYỂN ĐỔI TÍN HIỆU RS232 THÀNH TTL DÙNG MAX232 . 68
5.2.1 Giới thiệu về MAX232 . 68
5.2.2 Sơ đồ kết nối. 68
5.3 MẠCH ĐIỀU KHIỂN ĐÓNG NGẮT TẢI AC. 69
 CHƯƠNG 6: THIẾT KẾ CODE VÀ GIAO DIỆN ĐIỀU KHIỂN . 71
6.1 THIẾT KẾ CODE ĐIỀU KHIỂN VI XỬ LÝ . 71
6.1.1 Ý tưởng thiết kế . 71
6.1.2 Lưu đồ giải thuật . 72
6.1.3 Code điều khiển . 72
6.2 THIẾT KẾ GIAO DIỆN ĐIỀU KHIỂN . 75
6.3 MẠCH NGUYÊN LÝ . 83
6.4 MẠCH MÔ PHỎNG . 84
 CHƯƠNG 7: HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI . 85
TÀI LIỆU THAM KHẢO . 86
PHỤ LỤC 1 . 87
PHỤ LỤC 2 . 88
Trang 5
 
 
 
 
Điều khiển thiết bị qua PC Chương 1: Dẫn Nhập
CHƯƠNG 1: DẪN NHẬP
1.1 LÝ DO CHỌN ĐỀ TÀI
Với sự phát triển không ngừng của các ngành khoa học kỹ thuật nhằn đáp ứng
ngày càng đa dạng và phong phú cho đời sống con người, việc nghiên cứu và phát
triển các sản phẩm điều khiển tự động thay thế sức lao động cùa con người là một
nhiệm vụ rất cần thiết.
Viêc giám sát và điều khiển các thiết bị từ xa qua hệ thống gồm các phần tử nối
với nhau bằng dây dẫn thông qua chuẩn RS232 đã đem lại một lợi ích hết sức to lớn
cho nhu cầu phát triển của xã hội, tiết kiệm được rất nhiều thời gian, sức lực và mang
lại hiệu quả kinh tế lớn.
Nắm bắt được tình hình quan trọng, với quyết định lựa chon đề tài “Điều khiển
thiết bị qua PC” nhằm góp phần mang lại sự tiện nghi, tiện ích cho cuộc sống ngày
nay.
1.2 MỤC ĐÍCH NGHIÊN CỨU ĐỀ TÀI
Đề tài sử dụng điều khiển các thiết bị dân dụng trong gia đình như đèn, quạt, 
thông qua ngôn ngữ lập trình phổ biến hiện nay. Từ viêc tìm hiểu về các thiết bị giao
tiếp cho đến việc thiết kế mạch nhằm giúp người đọc dễ dàng tiếp nhận và muốn cung
cấp hệ thống điều khiển cho người sử dụng.
1.3 ĐỐI TƯỢNG NGHIÊN CỨU VÀ PHẠM VI NGHIÊN CỨU
1.3.1 Đối tượng nghiên cứu.
Tìm hiểu về các cổng giao tiếp: cổng nối tiếp, cổng song song, cổng USB,
chuẫn kết nối RS232, khảo sát vi điều khiển AT89S8252.
1.3.2 Phạm vi nghiên cứu.
Thực hiện viêc kết nối thiết bị điều khiển với PC thông qua RS232, điều khiển
các thiết bị dân dụng.
                
              
                                            
                                
            
 
            
                 88 trang
88 trang | 
Chia sẻ: lvcdongnoi | Lượt xem: 3703 | Lượt tải: 3 
              
            Bạn đang xem trước 20 trang tài liệu Điều khiển thiết bị qua PC, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g thời hay còn gọi byte nối tiếp bit song song. 
Cổng máy in: Lí do là hầu hết các máy in đều đƣợc nối với máy tính qua cổng 
này. 
Cổng Centronic: Đây là tên của một công ty đã thiết kế ra cổng này. Centronic 
là tên một công ty chuyên sản xuất máy in kiểu ma trận đứng hàng đầu thế giới. Chính 
công ty này đã nghĩ ra kiểu thiết kế cổng ghép nối máy in với máy tính. 
3.1.2 Mức điện áp cổng 
Đều sử dụng mức điện áp tƣơng thích TTL(Transiztor - Transiztor - Logic) 
0V÷5V trong đó: 
 0V là mức logic LOW 
 2V÷5V là mức logic HIGH 
Vì vậy khi ghép nối với cổng này ta chỉ ghép nối những thiết bị ngoại vi có mức 
điện áp tƣơng thích TTL. Nếu thiết bị ngoại vi không có mức điện áp tƣơng thích TTL 
thì ta phải áp dụng biện pháp ghép mức hoặc ghép cách ly qua bộ ghép nối quang. 
3.1.3 Khoảng cách ghép nối 
Khoảng cách cực đại giữa thiết bị ngoại vi và máy tính ghép qua cổng song 
song thƣờng bị hạn chế. Lý do là hiện tƣợng cảm ứng giữa các đƣờng dẫn và điện 
dung kí sinh hình thành giữa các đƣờng dẫn có thể làm biến dạng tín hiệu. Khoảng 
cách giới hạn cực đại là 8m. Thông thƣờng chỉ 1,5 đến 2m vì lí do an toàn dữ liệu. Nếu 
sử dụng khoảng cách ghép nối trên 3m thì các đƣờng dây tín hiệu và đƣờng dây nối 
đất phải đƣợc soắn với nhau thành từng cặp để giảm thiểu ảnh hƣởng của nhiễu. Biện 
pháp khác sử dụng cáp dẹt, trên đó mỗi đƣờng dữ liệu đƣợc đặt giữa hai đƣờng dây nối 
đất. 
3.1.4 Tốc độ truyền dữ liệu 
Tốc độ truyền dữ liệu qua cổng song song phụ thuộc vào phần cứng đƣợc sử 
dụng. Trên lý thuyết tốc độ có thể đạt đến 1Mb/s nhƣng với khoảng cách truyền hạn 
chế trong phạm vi 1m. Với nhiều mục đích sử dụng thì khoảng cách này hoàn toàn 
thỏa đáng, tuy vậy cũng có những ứng dụng đòi hỏi phải truyền trên khoảng cách xa 
hơn. Trong trƣờng hợp đó ta phải nghĩ ngay đến khả năng ghép nối khác (nhƣ ghép 
nối qua cổng RS232). 
3.1.5 Cấu trúc cổng song song 
Cổng song song có hai loại: ổ cắm 36 chân và ổ cắm 25 chân. Ngày nay, loại ổ 
cắm 36 chân không còn đƣợc sử dụng, hầu hết các máy tính PC đều trang bị ổ cắm 25 
chân nên ta chỉ cần quan tâm đến loại 25 chân. 
 Điều khiển thiết bị qua PC Chƣơng 3: Tìm hiểu các cổng giao tiếp 
Trang 52 
Cổng song song gồm có 4 đƣờng điều khiển, 5 đƣờng trạng thái và 8 đƣờng dữ 
liệu bao gồm 5 chế độ hoạt động: 
 Chế độ tƣơng thích (compatibility). 
 Chế độ nibble. 
 Chế độ byte. 
 Chế độ EPP (Enhanced Parallel Port). 
 Chế độ ECP (Extended Capabilities Port). 
Ba chế độ đầu tiên sử dụng port song song chuẩn (SPP – Standard Parallel Port) 
trong khi đó chế độ 4, 5 cần thêm phần cứng để cho phép hoạt động ở tốc độ cao hơn. 
Bảng 3.1 Sơ đồ chân của máy in 
CHÂN KÝ HIỆU 
NGÕ 
VÀO/RA 
MÔ TẢ 
1 STROBE RA 
2 đến 9 D0 đến D9 RA Các bit dữ liệu từ D0 đến D7 
10 ACK VÀO Báo nhận 
11 BUSY VÀO Báo bận 
12 PE VÀO Hết giấy 
13 SEL VÀo Lựa chọn 
14 AF RA Tự động tiếp đƣờng 
15 ER VÀO Lỗi 
16 INIT RA Thiết lập thiết bị 
17 SELIN RA Lựa chọn đầu vào 
18 đến 25 GND VÀO Nối đất 
Cổng song song có ba thanh ghi có thể truyền dữ liệu và điều khiển máy in. Địa 
chỉ cơ sở của các thanh ghi cho tất cả cổng LPT (line printer) từ LPT1 đến LPT4 đƣợc 
lƣu trữ trong vùng dữ liệu của BIOS. Thanh ghi dữ liệu đƣợc định vị ở offset 00h, 
thanh ghi trạng thái ở 01h, và thanh ghi điều khiển ở 02h. Thông thƣờng, địa chỉ cơ sở 
 Điều khiển thiết bị qua PC Chƣơng 3: Tìm hiểu các cổng giao tiếp 
Trang 53 
của LPT1 là 378h, LPT2 là 278h, do đó địa chỉ của thanh ghi trạng thái là 379h hoặc 
279h và địa chỉ thanh ghi điều khiển là 37Ah hoặc 27Ah. Tuy nhiên trong một số 
trƣờng hợp, địa chỉ của cổng song song có thể khác do quá trình khởi động của BIOS. 
BIOS sẽ lƣu trữ các địa chỉ này nhƣ sau: 
Bảng 3.2: Địa chỉ cơ sở các tthanh ghi cổng song song 
Địa chỉ Chức năng 
0000H÷0408H Địa chỉ cơ sở của LPT1 
0000H÷040AH Địa chỉ cơ sở của LPT2 
0000H÷040CH Địa chỉ cơ sở của LPT3 
3.1.6 Các thanh ghi ở cổng song song. 
Thanh ghi dữ liệu (hai chiều): 
Tín hiệu D7 D6 D5 D4 D3 D2 D1 D0 
Chân số 9 8 7 6 5 4 3 2 
Thanh ghi trạng thái máy in (chỉ đọc): 
Tín hiệu máy BUSY 
ACK 
PAPER 
EMPTY 
SELECT ERROR IPR X X 
Số chân cấm 11 10 12 13 15 - - - 
Thanh ghi điều khiển máy in: 
Tín hiệu 
máy in 
X X DIR IRQ SELECTIN INIT AUTOFEED STROBE 
Số chân - - - - 17 16 14 1 
x: không sử dụng 
IRQ Enable: yêu cầu ngắt cứng; 1 = cho phép; 0 = không cho phép 
Chú ý rằng chân BUSY đƣợc nối với cổng đảo trƣớc khi đƣa vào thanh ghi 
trạng thái, các bit SELECTIN , AUTOFEED và STROBE đƣợc đƣa qua cổng đảo 
trƣớc khi đƣa ra các chân của cổng máy in. Thông thƣờng tốc độ xử lý dữ liệu của các 
thiết bị ngoại vi nhƣ máy in chậm hơn PC nhiều nên các đƣờng ACK , BUSY và STR 
đƣợc sử dụng cho kỹ thuật bắt tay. Khởi đầu, PC đặt dữ liệu lên bus sau đó kích hoạt 
đƣờng STR xuống mức thấp để thông tin cho máy in biết rằng dữ liệu đã ổn định trên 
bus. Khi máy in xử lý xong dữ liệu, nó sẽ trả lại tín hiệu ACK xuống mức thấp để ghi 
nhận. PC đợi cho đến khi đƣờng BUSY từ máy in xuống thấp (máy in không bận) thì 
sẽ đƣa tiếp dữ liệu lên bus. 
3.2 GIAO TIẾP CỔNG NỐI TIẾP (RS232) 
3.2.1 Cấu trúc cổng nối tiếp. 
 Điều khiển thiết bị qua PC Chƣơng 3: Tìm hiểu các cổng giao tiếp 
Trang 54 
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. 
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. 
Các phƣơng thức nối giữa DTE và DCE: 
Đơn công (simplex connection): dữ liệu chỉ đƣợc truyền theo 1 hƣớng. 
Bán song công ( half-duplex): dữ liệu truyền theo 2 hƣớng, nhƣng mỗi thời 
điểm chỉ đƣợc truyền theo 1 hƣớng. 
Song công (full-duplex): số liệu đƣợc truyền đồng thời theo 2 hƣớng. 
Định dạng của khung truyền dữ liệu theo chuẩn RS-232 nhƣ sau: 
 Start 
 0 STOP 
Khi không truyền dữ liệu, đƣờng truyền sẽ ở trạng thái mark (điện áp -10V). 
Khi bắt đầu truyền, DTE sẽ đƣa ra xung Start (space: 10V) và sau đó lần lƣợt truyền từ 
D0 đến D7 và Parity, cuối cùng là xung Stop (mark: -10V) để khôi phục trạng thái 
đƣờng truyền. 
Các đặc tính kỹ thuật của chuẩn RS-232 nhƣ sau: 
D0 D1 D2 D3 D4 D5 D6 D7 P 
 Điều khiển thiết bị qua PC Chƣơng 3: Tìm hiểu các cổng giao tiếp 
Trang 55 
Chiều dài cable cực dại 15m 
Tốc độ dữ liệu cực đại 20 Kbps 
Điện áp ngõ ra cực đại 25V 
Điện áp ngõ ra có tải 5V đến 15V 
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 
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 
Cổng COM có hai dạng: đầu nối DB25 (25 chân) và đầu nối DB9 (9 chân) mô 
tả nhƣ bảng 4.3. 
Bảng 3.3: Ý nghĩa của các chân cổng nối tiếp 
D25 D9 Tín hiệu Hƣớng truyền Mô tả 
1 - - - Protected ground: nối đất bảo vệ 
2 3 TXD DTE → DCE Transmitted data: dữ liệu truyền 
3 2 RXD DCE → DTE Received data: dữ liệu nhận 
4 7 RTS DTE → DCE Request to send: DTE yêu cầu truyền dữ liệu 
5 8 CTS DCE → DTE Clear to send: DCE sẵn sàng nhận dữ liệu 
 Điều khiển thiết bị qua PC Chƣơng 3: Tìm hiểu các cổng giao tiếp 
Trang 56 
6 6 DSR DCE → DTE Data set ready: DCE sẵn sàng làm việc 
7 5 GND - Ground: nối đất (0V) 
8 1 DCD DCE → DTE Data carier detect: DCE phát hiện sóng mang 
20 4 DTR DTE → DCE Data terminal ready: DTE sẵn sàng làm việc 
22 9 RI DCE → DTE Ring indicator: báo chuông 
23 - DSRD DCE → DTE Data signal rate detector: dò tốc độ truyền 
24 - TSET DTE → DCE 
Transmit Signal Element Timing: tín hiệu 
định thời 
15 - TSET DCE → DTE 
Transmitter Signal Element Timing: tín hiệu 
định thời 
17 - RSET DCE → DTE 
Receiver Signal Element Timing: tín hiệu 
định thời 
18 - LL Local Loopback: kiểm tra cổng 
21 - RL DCE → DTE 
Remote Loopback: Tạo ra bởi DCE khi tín 
hiệu nhận 
14 - STxD DTE → DCE Secondary Transmitted Data 
16 - STxD DCE → DTE Secondary Received Data 
19 - SRTS DTE → DCE Secondary Request To Send 
13 - SCTS DCE → DTE Secondary Clear To Send 
12 - SDSRD DCE → DTE Secondary Received Line Signal Detector 
25 - TM Test Mode 
9 - Dành riêng cho chế độ test 
10 - Dành riêng cho chế độ test 
11 - Không dùng 
3.2.2 Truyền thông nối tiếp giữa 2 nút. 
Các sơ đồ khi kết nối dùng cổng nối tiếp: 
 DTE1 DTE2 DTE DCE 
Kết nối đơn giản trong truyền thông nối tiếp 
TXD 
RXD 
GND 
TXD 
RXD 
GND 
TXD 
RXD 
GND 
TXD 
RXD 
GND 
 Điều khiển thiết bị qua PC Chƣơng 3: Tìm hiểu các cổng giao tiếp 
Trang 57 
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: 
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.3 TÌM HIỂU VỀ USB 
3.3.1 Khái niệm 
Máy in đƣợc nối với máy tính qua cổng song song trong khi hầu hết các máy 
tính chỉ đƣợc trang bị một cổng này. Sẽ rất khó khăn nếu sử dụng thêm ổ Zip, luôn đòi 
hỏi tốc độ kết nối cao với máy tính và cần thiết phải dùng cổng song song. 
Modem đƣợc nối với máy tính qua cổng nối tiếp giống nhƣ một vài dạng thiết 
bị khác nhƣ Digital Camera, Palm Pilots trong khi mỗi máy tính thƣờng chỉ có hai 
cổng nối tiếp và chúng rất chậm. 
TXD 
RXD 
GND 
RTS 
CTS 
DSR 
DCD 
DTR 
TXD 
RXD 
GND 
RTS 
CTS 
DSR 
DCD 
DTR 
 Điều khiển thiết bị qua PC Chƣơng 3: Tìm hiểu các cổng giao tiếp 
Trang 58 
Các thiết bị đòi hỏi các kết nối nhanh hơn nhƣ các Card đặc biệt đƣợc cắm trực 
tiếp vào khe cắm (Slot) trên bo mạch. Thực tế số lƣợng các khe cắm (Slot) là có hạn và 
cần phải cài đặt các phần mềm cho thiết bị này. 
Mục đích của USB là giải quyết các vấn đề của ngƣời sử dụng khi các cổng kết 
nối trên không hiệu quả. USB cung cấp cho ngƣời sử dụng khả năng kết nối chuẩn, dễ 
dàng với 127 thiết bị trên cùng một máy tính. Mọi thiết bị ngoại vi hiện nay đều có thể 
kết nối trên cùng một phiên bản USB chẳng hạn nhƣ: máy in, máy quét ảnh, chuột, 
Joystick, Digital Camera, Webcam, Modem, loa, điện thoại, Network Connection, 
thiết bị lƣu trữ thông tin (ổ Zip)... 
3.3.2 Kết nối qua USB 
Việc nối một thiết bị với máy tính qua USB hết sức đơn giản, chỉ việc cắm các 
đầu nối của thiết bị với các cổng USB trên máy tính. Nếu thiết bị đƣợc kết nối với máy 
tính lần đầu, hệ điều hành sẽ tự động dò tìm và yêu cầu nạp đĩa Driver. Với thiết bị đã 
đƣợc cài đặt, máy tính tự động kích hoạt và kết nối với thiết bị. Các thiết bị kết nối qua 
USB có thể thiết lập hay ngắt kết nối bất kỳ lúc nào. Nhiều loại thiết bị USB đƣợc chế 
tạo liền với cáp nối với hai kiểu đầu nối “A Connection” và “B Connection”. 
Chuẩn USB sử dụng “A Connection” và “B Connection” trong hai trƣờng hợp 
cụ thể sau: 
 USB Type B 
Chân 1 và 4 để cấp nguồn 5 VDC. 
Chân 2 và 3 là chân truyền dữ liệu. 
3.3.3 Mở rộng cổng USB 
Thông thƣờng các máy tính hiện nay chỉ có một hoặc hai khe cắm USB (USB 
Socket). Ngày nay với đa số các thiết bị đều sử dụng USB, máy tính rất dễ bị thiếu khe 
cắm. Ví dụ, trên máy tính có các thiết bị nhƣ: máy in, máy quét, Webcam,... sử dụng 
USB trong khi máy tính chỉ có một cổng USB (USB Connector). 
Để giải quyết vấn đề này, chỉ cần lắp thêm một USB Hub. Chuẩn USB hỗ trợ 
tới 127 thiết bị và USB Hub là một trong số này. Các Hub này thƣờng có bốn cổng 
nhƣng cũng có thể có nhiều hơn tuỳ thuộc từng loại. Chỉ cần cắm USB Hub vào máy 
tính sau đó cắm các thiết bị hoặc Hub khác vào các cổng trên USB Hub. 
 Điều khiển thiết bị qua PC Chƣơng 3: Tìm hiểu các cổng giao tiếp 
Trang 59 
Hub có hai loại: loại có cung cấp nguồn và không cung cấp nguồn điện cho 
thiết bị cắm vào Hub. Chuẩn USB cho phép các thiết bị sử dụng nguồn điện từ cổng 
USB. Các thiết bị nhƣ máy in, máy quét sử dụng nguồn điện riêng cung cấp từ bộ 
nguồn (Power Supply) của chúng trong khi các thiết bị sử dụng rất ít điện năng nhƣ 
chuột, Digital Camera lại dùng điện năng (khoảng 500mA - 5V) từ Bus. 
Nếu máy tính kết nối với nhiều thiết bị sử dụng nguồn điện riêng (Máy in, 
máy quét...) thì USB Hub không cần thiết phải là loại cung cấp đƣợc nguồn điện. 
Nếu máy tính kết nối với nhiều thiết bị không có nguồn điện riêng (Chuột, Digital 
Camera) thì Hub nhất thiết phải có khả năng cung cấp nguồn cho các thiết bị này. Trên 
Hub có một bộ phận nhƣ biến thế để cung cấp dòng điện tới Bus và làm máy tính 
không bị quá tải. 
3.3.4 Các đặt tính của USB 
Các đặc điểm của USB bao gồm: 
 Máy tính hoạt động nhƣ một Host. 
 Có tới 127 thiết bị có thể kết nối vào máy tính bao gồm cả nối trực tiếp 
hay qua USB Hub. 
 Các cáp USB (USB Cable) của từng thiết bị có thể dài tới 5m hay 30m 
với Hub. 
 Chuẩn USB2.x cho phép truyền dữ liệu trên Bus tới tốc độ 480 Mbps. 
 Một cáp USB có hai dây cung cấp điện và một đôi dây xoắn truyền dữ 
liệu. 
 Trên dây cung cấp điện năng, điện áp có thể lên tới 500mA - 5V. 
 Các thiết bị sử dụng ít điện năng đƣợc cung cấp điện năng trực tiếp từ 
Bus. Các Hub có thể cung cấp điện năng cho các thiết bị nối với nó từ nguồn điện 
riêng của chúng. 
 Các thiết bị USB có khả năng hoán đổi nhanh, có thể cắm vào hay rút ra 
khỏi Bus bất kỳ lúc nào. 
 Các thiết bị USB có thể đặt ở chế độ “ngủ” (Sleep Mode) khi máy tính 
chuyển sang chế độ Power-Saving. 
 Các thiết bị nối với cổng USB dùng cáp USB để truyền tải dòng điện hay 
dữ liệu. Khi máy tính hoạt động, nó truy vấn tới tất cả các thiết bị nối vào Bus và gán 
cho mỗi thiết bị một địa chỉ. Quá trình này đƣợc gọi là liệt kê các thiết bị. Máy tính 
cũng sẽ tìm ra cách truyền dữ liệu của từng thiết bị: 
 Interrupt: Các thiết bị nhƣ bàn phím gửi lƣợng dữ liệu rất nhỏ và ngắt 
đoạn sẽ đƣợc chọn kiểu Interrupt Mode. 
 Bulk: Các thiết bị nhƣ máy in thƣờng nhận những gói dữ liệu lớn, dùng 
kiểu Bulk Transfer Mode. Từng đoạn dữ liệu (64 Byte) đƣợc gửi tới máy in và đƣợc 
kiểm tra tính chính xác. 
 Điều khiển thiết bị qua PC Chƣơng 3: Tìm hiểu các cổng giao tiếp 
Trang 60 
 Isochronous: Các thiết bị truyền dữ liệu theo dạng Stream nhƣ loa sẽ 
dùng Isochronous Mode. Dữ liệu tức thời đƣợc truyền giữa thiết bị và máy tính và 
không có cơ chế sửa lỗi. 
Máy tính cũng có thể gửi đi các lệnh hay truy vấn các thông số với các gói 
Control Packet. Khi một thiết bị đƣợc máy tính liệt kê, máy tính sẽ giành tới 90% băng 
thông (Bandwidth) phục vụ các yêu cầu của các thiết bị kiểu Interrupt và Isochronous. 
Sau khi dùng 90% của 480 Mbps băng thông, máy tính sẽ từ chối các truy nhập của 
bất kỳ thiết bị kiểu Interrupt hay Isochronous nào khác. Các Control Packet và thiết bị 
kiểu Bulk Transfer sẽ sử dụng khoảng 10% băng thông còn lại. 
USB phân chia băng thông thành các Frame và máy tính sẽ điều khiển các 
Frame này. Mỗi Frame chứa 1.500 Byte và Frame mới đƣợc sinh ra sau mỗi mili giây. 
Trong một Frame, các thiết bị kiểu Isochronous và Interrupt phân chia thành các khe 
nên chúng đảm bảo đƣợc băng thông cần thiết trong khi các thiết bị Bulk Transfer và 
Control Packet sử dụng phần băng thông còn lại. 
3.3.5 USB 2.0 
Chuẩn USB2.0 xuất hiện vào tháng Tƣ năm 2000 và đƣợc nâng cấp từ USB1.1. 
USB2.0 cung cấp thêm băng thông cho các ứng dụng Multimedia và lƣu trữ có tốc độ 
truyền dữ liệu lớn gấp 40 lần so với USB1.1. Để việc chuyển từ chuẩn USB1.1 sang 
USB2.0 thuận tiện cho cả ngƣời sử dụng và nhà sản xuất, USB2.0 đƣợc thiết kế hoàn 
toàn tƣơng thích và làm việc đƣợc với cáp cũng nhƣ cổng nối của thiết bị USB nguyên 
thuỷ. 
USB2.0 hỗ trợ ba chế độ truyền dữ liệu: 1,5Mbps, 12Mbps và 480Mbps. Ngoài 
ra USB2.0 hỗ trợ các thiết bị băng thông thấp nhƣ bàn phím và chuột cũng nhƣ các 
thiết bị băng thông lớn nhƣ Webcam, máy in, máy quét ảnh và hệ thống lƣu trữ. 
3.3.6 USB 3.0 
USB 3.0, còn đƣợc gọi là SuperSpeed USB, là giai đoạn tiến hóa kế tiếp của 
Universal Serial Bus, inarguably tiêu chuẩn giao diện phổ biến và thành công nhất 
từng đƣợc tạo ra. Khi phần cứng máy tính và các thiết bị ngoại vi tiếp tục mở rộng 
công suất, tốc độ, và tính di động, các giao diện kết nối với họ cũng phải nộp tiền tạm 
ứng trong các khu vực này. 
Xây dựng sự thành công của USB 2.0, phiên thứ ba của Universal Serial Bus 
nhằm mục đích để giải quyết ba trụ cột của thiết kế giao diện: 
 Tốc độ - So với tốc độ 12Mbps ít ỏi của USB 1.1 và 450Mbps trung bình 
của "High-Speed USB 2.0," SuperSpeed "giao diện USB 3.0 cố gắng sống lên đến tên 
của nó với một lý thuyết 5.0Gbps (5.120 Mbps) của băng thông . Hiển thị độ nét cao 
Blu-ray bên ngoài và ổ đĩa cứng dung lƣợng cao, USB 3.0 đƣợc thiết kế để chiếm đoạt 
và mở rộng thị trƣờng đang bị chi phối bởi FireWire. 
 Power - Với một danh sách ngày càng mở rộng các phụ kiện và các thiết 
bị cầm tay, xe buýt hỗ trợ phần cứng từ lâu đã đƣợc đẩy các giới hạn của USB 2.0 có 
 Điều khiển thiết bị qua PC Chƣơng 3: Tìm hiểu các cổng giao tiếp 
Trang 61 
thể xử lý. Đầu tiên, các đặc điểm kỹ thuật 3,0 cho phép lên đến 80% điện năng tiêu thụ 
cao hơn cho các thiết bị chạy ở SuperSpeed, và thứ hai, USB 3.0 bao gồm một phiên 
bản nâng cao của các kết nối USB-B đƣợc gọi là Powered-B, cho phép USB phụ kiện 
để rút ra năng lƣợng từ các thiết bị ngoại vi cũng nhƣ chủ nhà. 
 Kết nối Crossover - Trong cố gắng để thiết lập một hệ sinh thái mạnh mẽ 
hơn của các thiết bị USB, các tính năng mới đƣợc thực hiện trong đặc tả USB 3.0 cho 
phép truyền thông chéo giữa phần cứng. Tƣơng tự nhƣ thông số kỹ thuật FireWire và 
Ethernet, mới SuperSpeed USB bao gồm một phƣơng pháp thiết lập truyền thông của 
host-to-host (tức là từ máy tính đến máy tính) thông qua một USB chéo với cáp USB. 
Ngoài ra, USB 3.0 đƣợc xây dựng trên "USB On-The-Go" nguyên tắc cho phép các 
thiết bị cầm tay (nhƣ điện thoại thông minh) để hoạt động nhƣ thiết bị USB hoặc một 
máy chủ USB, tăng đáng kể tính năng thiết lập và khả năng sử dụng của họ với các 
thiết bị USB. 
Điều khiển thiết bị qua PC Chƣơng 4: Chuẩn truyền thông nối tiếp RS232 
Trang 62 
CHƢƠNG 4: CHUẨN TRUYỀN THÔNG NỐI TIẾP RS232. 
4.1 ĐẶT VẤN ĐỀ. 
Vấn đề giao tiếp giữa PC và vi điều khiển rất quan trọng trong các ứng dụng 
điều khiển, đo lƣờng... Ghép nối qua cổng nối tiếp RS232 là một trong những kỹ thuật 
đƣợc sử dụng rộng rãi để ghép nối các thiết bị ngoại vi với máy tính.Nó là một chuẩn 
giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất là 2 thiết bị, 
chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu là 12.5 đến 25.4m, tốc độ 
20kbit/s đôi khi là tốc độ 115kbit/s với một số thiết bị đặc biệt. Ý nghĩa của chuẩn 
truyền thông nối tiếp nghĩa là trong một thời điểm chỉ có một bit đƣợc gửi đi dọc theo 
đƣờng truyền. 
Có hai phiên bản RS232 đƣợc lƣu hành trong thời gian tƣơng đối dài là 
RS232B và RS232C. Nhƣng cho đến nay thì phiên bản RS232B cũ thì ít đƣợc dùng 
còn RS232C hiện vẫn đƣợc dùng và tồn tại thƣờng đƣợc gọi là tên ngẵn gọn là chuẩn 
RS232. 
Các máy tính thƣờng có 1 hoặc 2 cổng nối tiếp theo chuẩn RS232C đƣợc gọi là 
cổng COM. Chúng đƣợc dùng ghép nối cho chuột, modem, thiết bị đo lƣờng...Trên 
main máy tính có loại 9 chân hoặc lại 25 chân tùy vào đời máy và main của máy tính. 
Việc thiết kế giao tiếp với cổng RS232 cũng tƣơng đối dễ dàng, đặc biệt khi chọn chế 
độ hoạt động là không đồng bộ và tốc độ truyền dữ liệu thấp. 
4.2 ƢU ĐIỂM CỦA GIAO DIỆN NỐI TIẾP RS232. 
Khả năng chống nhiễu của các cổng nối tiếp cao. 
Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang đƣợc cấp điện. 
Các mạch điện đơn giản có thể nhận đƣợc điện áp nguồn nuôi qua công nối 
tiếp. 
4.3 NHỮNG ĐẶC ĐIỂM CẦN LƢU Ý TRONG CHUẨN RS232. 
Trong chuẩn RS232 có mức giới hạn trên và dƣới (logic 0 và 1) là +-12V. Hiện 
nay đang đƣợc cố định trở kháng tải trong phạm vi từ 3000 ôm - 7000 ôm. 
Mức logic 1 có điện áp nằm trong khoảng -3V đến -12V, mức logic 0 từ +3V 
đến 12V. 
Tốc độ truyền nhận dữ liệu cực đại là 100kbps (ngày nay có thể lớn hơn). 
Các lối vào phải có điện dung nhỏ hơn 2500pF. 
Trở kháng tải phải lớn hơn 3000 ôm nhƣng phải nhỏ hơn 7000 Ôm. 
Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp 
RS232 không vƣợt qua 15m nếu chúng ta không sử model. 
Các giá trị tốc độ truyền dữ liệu chuẩn: 50, 75, 110, 750, 300, 600, 1200, 
2400, 4800, 9600, 19200, 28800, 38400....56600, 115200 Bps. 
4.4 CÁC MỨC ĐIỆN ÁP ĐƢỜNG TRUYỀN. 
Điều khiển thiết bị qua PC Chƣơng 4: Chuẩn truyền thông nối tiếp RS232 
Trang 63 
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. Do đó ngay từ đầu tiên ra đời nó đã 
mang vẻ lỗi thời của chuẩn TTL, nó vấn sử dụng các mức điện áp tƣơng thích TTL để 
mô tả các mức logic 0 và 1. Ngoài mức điện áp tiêu chuẩn cũng cố định các giá trị trở 
kháng tải đƣợc đấu vào bus của bộ phận và các trở kháng ra của bộ phát. 
Mức điện áp của tiêu chuẩn RS232C (chuẩn thƣờng dùng bây giờ) đƣợc mô tả 
nhƣ sau: 
Mức logic 0: +3V , +12V. 
Mức logic 1: -12V, -3V. 
Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến. 
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 . 
4.5 CỔNG RS232 TRÊN PC. 
Hầu hết các máy tính cá nhân hiện nay đều đƣợc trang bị ít nhất là 1 cổng Com 
hay cổng nối tiếp RS232. Số lƣợng cổng Com có thể lên tới 4 tùy từng loại main máy 
tính. Khi đó các cổng Com đó đƣợc đánh dấu là Com 1, Com 2, Com 3...Trên đó có 2 
loại đầu nối đƣợc sử dụng cho cổng nối tiếp RS232 loại 9 chân (DB9) hoặc 25 chân 
(DB25). Tuy hai loại đầu nối này có cùng song song nhƣng hai loại đầu nối này đƣợc 
phân biệt bởi cổng đực (DB9) và cổng cái (DB25). 
Ta xét sơ đồ chân cổng Com 9 chân: 
Điều khiển thiết bị qua PC Chƣơng 4: Chuẩn truyền thông nối tiếp RS232 
Trang 64 
Hình 4.1 Kí hiệu chân và hình dạng của cổng COM DB9 
Chức năng của các chân nhƣ sau: 
 Chân 1: Data Carrier Detect (DCD): Phát tín hiệu mang dữ liệu. 
 Chân 2: Receive Data (RxD): Nhận dữ liệu. 
 Chân 3: Transmit Data (TxD): Truyền dữ liệu. 
 Chân 4: Data Termial Ready (DTR) : Đầu cuối dữ liệu sẵn sàng đƣợc 
kích hoạt bởi bộ phận khi muốn truyền dữ liệu. 
 Chân 5: Singal Ground ( SG) : Mass của tín hiệu. 
 Chân 6: Data Set Ready (DSR) : Dữ liệu sẵn sàng, đƣợc kích hoạt bởi 
bộ truyền khi nó sẵn sàng nhận dữ liệu. 
 Chân 7: Request to Send : yêu cầu gửi, bô truyền đặt đƣờng này lên mức 
hoạt động khi sẵn sàng truyền dữ liệu. 
 Chân 8: Clear To Send (CTS) : Xóa để gửi , bô nhận đặt đƣờng này lên 
mức kích hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận tín hiệu. 
 Chân 9: Ring Indicate (RI) : Báo chuông cho biết là bộ nhận đang nhận 
tín hiệu rung chuông. 
Còn DB25 bây giờ hầu hết các main mới ra đều không có cổng này nữa. Nên 
tôi không đề cập đến ở đây. 
4.6 QUÁ TRÌNH DỮ LIỆU. 
Truyền dữ liệu qua cổng nối tiếp RS232 đƣợc thực hiện không đồng bộ. Do vậy 
nên tại một thời điểm chỉ có một bit đƣợc truyền (1 kí tự). Bộ truyền gửi một bit bắt 
đầu (bit start) để thông báo cho bộ nhận biết một kí tự sẽ đƣợc gửi đến trong lần truyền 
bit tiếp the . Bit này luôn bắt đầu bằng mức 0. Tiếp theo đó là các bit dữ liệu (bits data) 
đƣợc gửi dƣới dạng mã ASCII (có thể là 5, 6, 7 hay 8 bit dữ liệu). Sau đó là một Parity 
Điều khiển thiết bị qua PC Chƣơng 4: Chuẩn truyền thông nối tiếp RS232 
Trang 65 
bit ( Kiểm tra bit chẵn, lẻ hay không) và cuối cùng là bit dừng - bit stop có thể là 1, 
1.5 hay 2 bit dừng. 
4.6.1 Tốc độ Baud. 
Đây là một tham số đặc trƣng của RS232. Tham số này chính là đặc trƣng cho 
quá trình truyền dữ liệu qua cổng nối tiếp RS232 là tốc độ truyền nhận dữ liệu hay còn 
gọi là tốc độ bit. Tốc độ bit đƣợc định nghĩa là số bit truyền đƣợc trong thời gian 1 
giây hay số bit truyền đƣợc trong thời gian 1 giây. Tốc độ bit này phải đƣợc thiết lập ở 
bên phát và bên nhận đều phải có tốc độ nhƣ nhau ( Tốc độ giữa vi điều khiển và máy 
tính phải chung nhau 1 tốc độ truyền bit). 
Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ Baud. Tốc độ 
Baud liên quan đến tốc độ mà phần tử mã hóa dữ liệu đƣợc sử dụng để diễn tả bit đƣợc 
truyền còn tôc độ bit thì phản ánh tốc độ thực tế mà các bit đƣợc truyền.Vì một phần 
tử báo hiệu sự mã hóa một bit nên khi đó hai tốc độ bit và tốc độ baud là phải đồng 
nhất. 
Một số tốc độ Baud thƣờng dùng: 50, 75, 110, 150, 300 , 600, 1200, 2400, 
4800, 9600, 19200, 28800, 38400, 56000, 115200 … Trong thiết bị họ thƣờng 
dùng tốc độ là 19200. 
Khi sử dụng chuẩn nối tiếp RS232 thì yêu cầu khi sử dụng chuẩn là thời gian 
chuyển mức logic không vƣợt quá 4% thời gian truyền 1 bit. Do vậy, nếu tốc độ bit 
càng cao thì thời gian truyền 1 bit càng nhỏ thì thời gian chuyển mức logic càng phải 
nhỏ. Điều này làm giới hạn tốc Baud và khoảng cách truyền. 
4.6.2 Bit chẵn lẻ hay Parity bit. 
Đây là bit kiểm tra lỗi trên đƣờng truyền. Thực chất của quá trình kiểm tra lỗi 
khi truyền dữ liệu là bổ xung thêm dữ liệu đƣợc truyền để tìm ra hoặc sửa một số lỗi 
trong quá trình truyền . Do đó trong chuẩn RS232 sử dụng một kỹ thuật kiểm tra chẵn 
lẻ. 
Một bit chẵn lẻ đƣợc bổ sung vào dữ liệu đƣợc truyền để cho thấy số lƣợng các 
bit "1" đƣợc gửi trong một khung truyền là chẵn hay lẻ. 
Điều khiển thiết bị qua PC Chƣơng 4: Chuẩn truyền thông nối tiếp RS232 
Trang 66 
Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi chả hạn nhƣ 1, 3, , 5, 7, 9... 
Nếu nhƣ một bit chẵn đƣợc mắc lỗi thì Parity bit sẽ trùng giá trị với trƣờng hợp không 
mắc lỗi vì thế không phát hiện ra lỗi. Do đó trong kỹ thuật mã hóa lỗi này không đƣợc 
sử dụng trong trƣờng hợp có khả năng một vài bit bị mắc lỗi. 
4.7 SƠ ĐỒ KẾT NỐI 
Có rất nhiều mạch giao tiếp của RS232 giữa vi điều khiển hay các thiết bị khác. 
Dƣới đây ta xét mạch chuẩn giao tiếp RS232 dùng IC Max232 
Max232 là IC chuyên dùng cho giao tiếp giữa RS232 và thiết bị ngoại vi. 
Max232 là IC của hãng Maxim. Đây là IC chay ổn định và đƣợc sử dụng phổ biến 
trong các mạch giao tiếp chuẩn RS232. Giá thành của Max232 phù hợp (12K hay 
10K) và tích hợp trong đó hai kênh truyền cho chuẩn RS232. Dòng tín hiệu đƣợc thiết 
kế cho chuẩn RS232 . Mỗi đầu truyền ra và cổng nhận tín hiệu đều đƣợc bảo vệ chống 
lại sự phóng tĩnh điện ( hình nhƣ là 15KV). Ngoài ra Max232 còn đƣợc thiết kế với 
nguồn +5V cung cấp nguồn công suất nhỏ. 
Mạch giao tiếp nhƣ sau : 
Hình 4.2: Sơ đồ kết nối COM với Max232 
Điều khiển thiết bị qua PC Chƣơng 5: Thiết kế mạch phần cứng điều khiển 
Trang 67 
CHƢƠNG 5. THIẾT KẾ MẠCH PHẦN CỨNG ĐIỀU KHIỂN 
Mạch phần cứng điều khiển gồm cách khối sau đây: 
 Khối nguồn nuôi vi điều khiển. 
 Khối chuyển đổi tín hiệu RS232 thành TTL dùng MAX232. 
 Khối điều khiển đóng ngắt dùng MOC3020 và TRIAC. 
5.1 KHỐI NGUỒN NUÔI VI ĐIỀU KHIỂN, MẠCH. 
Vi điều khiển và các con linh kiện khác trong mạch đều hoạt động với nguồn 
nuôi 5V. Sau đây ta xét mạch tạo nguồn 5V từ nguồn xoay chiều 220V và 50Hz nhƣ 
sau: 
Hình 5.1: Mạch tạo nguồn 5V từ điện áp xoay chiều 220V 
Mạch nguồn gồm biến áp cách ly T1, nó có 2 công dụng: 
 Vừa tạo tính cách ly giữa mạch điện và đƣờng nguồn AC, giữ an toàn 
cho ngƣời dùng. 
 Vừa dùng làm giảm áp AC, hạ mức nguồn AC 220V xuống 9V. 
Dùng cầu nắn dòng 4 diode để chuyển đổi dòng AC ra dạng dòng điện xung 
một pha. 
Tụ C1 dùng tụ hóa lớn làm kho chứa điện, nó có 3 công dụng: 
 Giảm độ dợn sóng. 
 Nâng cao mức áp DC lên gần bằng mức volt cực đại. 
 Làm kho chứa điện ổn định điều kiện cấp điện cho tải. 
Dùng Led đỏ với điện trở hạn dòng 1K làm đèn chỉ thị. Để có mức áp DC 5V 
có độ ổn định tốt, trong mạch dùng IC ổn áp 3 chân 7805. Với loại IC ổn áp tích cực, 
để tránh mạch điện trong IC không phát sinh hiện tƣợng dao động tự kích, ở ngả ra 
dùng thêm tụ hóa C2 làm tụ lọc, có thể dùng thêm tụ lọc nhỏ C3 để lọc bỏ các tín hiệu 
nhiễu tần cao nhiễm vào đƣờng nguồn. Điều cần nhớ: IC 7805 phải cho gắn trên lá 
nhôm làm nguội. 
Điều khiển thiết bị qua PC Chƣơng 5: Thiết kế mạch phần cứng điều khiển 
Trang 68 
5.2 KHỐI CHUYỂN ĐỔI TÍN HIỆU RS232 THÀNH TTL DÙNG 
MAX232. 
5.2.1 Giới thiệu về MAX232 
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 (T1in và 
T2in ) thành mức T1out , T2out ở phía truyền và chuyển đổi R1in , R2in thành R1out , R2out ở 
phía nhận với mức điện áp là +5V đến +10V hoặc +10V đến -10V. Đồng thời giá trị 
điện dung trên MAX232 là C1=C2=C3=C4=C5=10µF. 
Vi mạch MAX232 có hai bộ đệm và hai bộ nhận. Chân 9 (R2 OUT) của vi 
mạch MAX232 đƣợc nối với đƣờ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 chân 10 (T2 IN) của vi mạch MAX232 nối 
với đƣờng dẫn bắt tay để điều khiển quá trình nhận. Đƣờng dẫn bắt tay đƣợc nối với 
cổng nối tiếp qua cầu nối, để khi không sử dụng, chúng ta có thể hổ mạch. Cách truyền 
dữ liệu đơn giản nhất là chỉ dùng ba đƣờng dẫn TxD, RxD và GND. 
5.2.2 Sơ đồ kết nối. 
Điều khiển thiết bị qua PC Chƣơng 5: Thiết kế mạch phần cứng điều khiển 
Trang 69 
Hình 5.2: Mạch chuyển đổi tín hiệu TTL dùng MAX232 
5.3 MẠCH ĐIỀU KHIỂN ĐÓNG NGẮT TẢI AC. 
Ta có mạch điều khiển nhƣ sau: 
Hình 5.3: Mạch đóng ngắt tải AC 
Ta xét các linh kiện trong mạch nhƣ sau: 
MOC 3021 là kinh kiện tích hợp có cấu tạo gồm 1 LED và 1 photo diot. Khi có 
dòng điện nhỏ chạy qua 2 đầu của LED trong OPTO làm cho LED phát sáng, khi đó sẽ 
kích cho photo diot dẫn, cho dòng điện chạy qua. MOC3021 đƣợc dùng để cách ly áp 
giữa 2 khối vi xử lý và mạch công suất, đồng thời tránh nhiễu cho động cơ. Vì đôi lúc 
động cơ chạy quá dòng thì dòng trả về lớn làm chết linh kiện ở mạch công suất, nếu 
không có cách ly quang OPTO thì dòng điện lớn sẻ theo đƣờng mạch đến tiêu diệt vi 
điều khiển và toàn bộ linh kiện khác. 
Triac BTA41 là linh kiện chịu đƣợc dòng cao tới 40A, do đó chịu đƣợc công 
suất cao. Dòng kích cho cực G của BTA41 khoảng 50mA. Trong mạch này, BTA41 
Điều khiển thiết bị qua PC Chƣơng 5: Thiết kế mạch phần cứng điều khiển 
Trang 70 
dẫn trong 2 trƣờng hợp: khi điện áp trên 2 cực MT2 và G của triac đồng dấu so với cực 
MT1. 
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 71 
CHƢƠNG 6: THIẾT KẾ CODE VÀ GIAO DIỆN ĐIỀU KHIỂN 
6.1 THIẾT KẾ CODE ĐIỀU KHIỂN VI XỬ LÝ 
6.1.1 Ý tƣởng thiết kế 
Khi cổng COM truyền một kí tự trong bảng mã ASCII, vi điều khiển sẽ 
nhận kí tự đó, lƣu vào thanh ghi để so sánh. Cứ mỗi lần nhận 1 chuỗi dữ liệu sẽ so 
sánh, đúng dữ liệu nào thì sẽ có một phƣơng thức điều khiển mạch riêng. Cụ thề 
nhƣ sau: 
 Kí tự „a‟ mở đèn 1. 
 Kí tự „b‟ tắt đèn 1. 
 Kí tự „c‟ mở đèn 2. 
 Kí tự „d‟ tắt đèn 2. 
 Kí tự „e‟ mở đèn 3. 
 Kí tự „f‟ tắt đèn 3. 
 Kí tự „g‟ mở đèn 4. 
 Kí tự „h‟ tắt đèn 4. 
 Kí tự „i‟ mở đèn 5. 
 Kí tự „j‟ tắt đèn 5. 
 Kí tự „k‟ mở đèn 6. 
 Kí tự „l‟ tắt đèn 6 
 Kí tự „m‟ mở đèn 7. 
 Kí tự „n‟ tắt đèn 7. 
 Kí tự „o‟ mở đèn 8. 
 Kí tự „p‟ tắt đèn 8. 
 Kí tự „q‟ tắt hết các đèn. 
Sau mỗi lần so sánh nó sẽ xóa dữ liệu trong biến gán để nhận dữ liệu so sánh 
tiếp theo. 
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 72 
6.1.2 Lƣu đồ giải thuật 
Hình 6.1: Lƣu đồ giải thuật code điều khiển 
6.1.3 Code điều khiển 
Viết bằng trình hợp ngữ, ta dƣợc code điều khiển nhƣ sau: 
org 00h 
mov SCON, #50h //truyền dữ liệu 8 bit, 1 bit stop cho phép thu 
mov TMOD, #20h //chọn Timer 1, chế độ 2 (tự động nạp lại) 
mov TH1, #0FDh //chọn tốc độ Baud 9600 
setb TR1 //khởi động Timer 1 
jmp main 
org 0FFh 
main: 
 jnb RI, $ //chờ đến khi nhận dữ liệu cuối cùng 
 clr RI //chờ sẵn cho 1 byte kế tiếp 
 mov A, SBUF //gán dữ liệu cho thanh ghi A 
mo_den1: 
 cjne A, #'a', tat_den1 //so sánh, nếu A= „a‟ thì mở đèn 1 
 clr P1.0 nếu sai thì nhảy xuống lệnh tiếp theo 
 jmp main 
tat_den1: 
 cjne A, #'b', mo_den2 //so sánh, nếu A= „b‟ thì tắt đèn 1 
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 73 
 setb P1.0 
 jmp main 
mo_den2: 
 cjne A, #'c', tat_den2 //so sánh, nếu A= „c‟ thì mở đèn 2 
 clr P1.1 
 jmp main 
tat_den2: 
 cjne A, #'d', mo_den3 //so sánh, nếu A= „d‟ thì tắt đèn 2 
 setb P1.1 
 jmp main 
mo_den3: 
 cjne A, #'e', tat_den3 //so sánh, nếu A= „e‟ thì mở đèn 3 
 clr P1.2 
 jmp main 
tat_den3: 
 cjne A, #'f', mo_den4 //so sánh, nếu A= „f‟ thì tắt đèn 3 
 setb P1.2 
 jmp main 
mo_den4: 
 cjne A, #'g', tat_den4 //so sánh, nếu A= „g‟ thì mở đèn 4 
 clr P1.3 
 jmp main 
tat_den4: 
 cjne A, #'h', mo_den5 //so sánh, nếu A= „h‟ thì tắt đèn 4 
 setb P1.3 
 jmp main 
mo_den5: 
 cjne A, #'i', tat_den5 //so sánh, nếu A= „i‟ thì mở đèn 5 
 clr P1.4 
 jmp main 
tat_den5: 
 cjne A, #'j', mo_den6 //so sánh, nếu A= „j‟ thì tắt đèn 5 
 setb P1.4 
 jmp main 
mo_den6: 
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 74 
 cjne A, #'k', tat_den6 //so sánh, nếu A= „k‟ thì mở đèn 6 
 clr P1.5 
 jmp main 
tat_den6: 
 cjne A, #'l', mo_den7 //so sánh, nếu A= „l‟ thì tắt đèn 6 
 setb P1.5 
 jmp main 
mo_den7: 
 cjne A, #'m', tat_den7 //so sánh, nếu A= „m‟ thì mở đèn 7 
 clr P1.6 
 jmp main 
tat_den7: 
 cjne A, #'n', mo_den8 //so sánh, nếu A= „n‟ thì tắt đèn 7 
 setb P1.6 
 jmp main 
mo_den8: 
 cjne A, #'o', tat_den8 //so sánh, nếu A= „o‟ thì mở đèn 8 
 clr P1.7 
 jmp main 
tat_den8: 
 cjne A, #'p', reset_mach //so sánh, nếu A= „p‟ thì tắt đèn 8 
 setb P1.7 
 jmp main 
reset_mach: 
 cjne A, #'q', main //so sánh, nếu A= „q‟ thì tắt hết đèn. 
 setb P1.0 
 setb P1.1 
 setb P1.2 
 setb P1.3 
 setb P1.4 
 setb P1.5 
 setb P1.6 
 setb P1.7 
 jmp main 
end 
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 75 
6.2 THIẾT KẾ GIAO DIỆN ĐIỀU KHIỂN 
Dùng ngôn ngữ lập trình C# của bộ Visual Studio 2008 để tạo ra một bộ form 
điều khiển với giao diện dễ nhìn và dễ sử dụng cho ngƣời điều khiển. 
Đầu tiên mở Visual Studio 2008, chọn new project. 
Sau đó chon Windows Forms Application và đặt tên cho chúng. Đƣa đến cho 
chúng ta một giao diện lập trình Form. 
Sau đó xây dựng thành biểu form điều khiển. 
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 76 
Bằng cách dùng những Lable, Button, Checkbox, Combobox, Piturebox trên 
thanh Toolbox kéo thả vào nơi thiết kế form. 
Sau đó đổi tên thuộc tính, tên hiển thị nhƣ trên form. 
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 77 
Và cuối cùng ta viết code vào để điều khiển bằng cách click double chuột vào 
từng thành phần của form. 
Và sao đây là toàn bộ code của chƣơng trình nhƣ sau: 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.IO; 
using System.IO.Ports; 
using System.Xml; 
namespace Giao_dien 
{ 
 public partial class Form1 : Form 
 { 
 SerialPort P = new SerialPort(); 
 string InputData = string.Empty; 
 delegate void SetTextCallback(string text); 
 public Form1() 
 { 
 InitializeComponent(); 
 string[] ports = SerialPort.GetPortNames(); 
 Cbcom.Items.AddRange(ports); 
 P.ReadTimeout = 1000; 
 string [] BaudRate = { "1200", "2400", "4800", "9600", "19200", 
"38400", "57600", "115200" }; 
 Cbbaud.Items.AddRange (BaudRate); 
 string[] Databits = {"6", "7", "8" }; 
 Cbdata.Items.AddRange(Databits); 
 string[] Parity = { "None", "Odd", "Even" }; 
 Cbparity.Items.AddRange(Parity); 
 string[] Stopbit = { "1", "1.5", "2" }; 
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 78 
 Cbstop.Items.AddRange(Stopbit); 
 } 
 private void Cbcom_SelectedIndexChanged(object sender, EventArgs e) 
 { 
 if (P.IsOpen) 
 { P.Close(); 
 } 
 P.PortName = Cbcom.SelectedItem.ToString(); 
 } 
 private void Cbbaud_SelectedIndexChanged(object sender, EventArgs e) 
 { 
 if (P.IsOpen) 
 { P.Close(); 
 } 
 P.BaudRate = Convert.ToInt32(Cbbaud.Text); 
 } 
 private void Cbdata_SelectedIndexChanged(object sender, EventArgs e) 
 { 
 if (P.IsOpen) 
 { 
 P.Close(); 
 } 
 P.DataBits = Convert.ToInt32(Cbdata.Text); 
 } 
 private void Cbparity_SelectedIndexChanged(object sender, EventArgs e) 
 { 
 if (P.IsOpen) 
 { 
 P.Close(); 
 } 
 switch (Cbparity.SelectedItem.ToString()) 
 { 
 case "Old": 
 P.Parity = Parity.Odd; 
 break; 
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 79 
 case "None": 
 P.Parity = Parity.None; 
 break; 
 case "Even": 
 P.Parity = Parity.Even; 
 break; 
 } 
 } 
 private void Cbstop_SelectedIndexChanged(object sender, EventArgs e) 
 { 
 if (P.IsOpen) 
 { 
 P.Close(); 
 } 
 switch (Cbstop.SelectedItem.ToString()) 
 { 
 case "1": 
 P.StopBits = StopBits.One; 
 break; 
 case "1.5": 
 P.StopBits = StopBits.OnePointFive; 
 break; 
 case "3": 
 P.StopBits = StopBits.Two; 
 break; 
 } 
 } 
 private void Form1_Load(object sender, EventArgs e) 
 { 
 Cbcom.SelectedIndex = 0; 
 Cbbaud.SelectedIndex = 3; 
 Cbdata.SelectedIndex = 2; 
 Cbparity.SelectedIndex = 0; 
 Cbstop.SelectedIndex = 0; 
 } 
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 80 
 private void ketnoi_Click(object sender, EventArgs e) 
 { 
 try 
 { 
 P.Open(); 
 ngatketnoi.Enabled = true; 
 ketnoi.Enabled = false; 
 } 
 catch (Exception ex) 
 { 
 MessageBox.Show("Don't connect!", "Information", 
MessageBoxButtons.OK, MessageBoxIcon.Error); 
 } 
 } 
 private void ngatketnoi_Click(object sender, EventArgs e) 
 { 
 P.Close(); 
 ketnoi.Enabled = true; 
 ngatketnoi.Enabled = false; 
 } 
 private void exit_Click(object sender, EventArgs e) 
 { 
 DialogResult kq = MessageBox.Show("Do you want to exit the 
program?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); 
 if (kq == DialogResult.Yes) 
 { 
 this.Close(); 
 } 
 } 
 private void Ck_den1_CheckedChanged(object sender, EventArgs e) 
 { 
 if (Ck_den1.Checked) P.Write("a"); 
 else P.Write("b"); 
 } 
 private void Ck_den2_CheckedChanged(object sender, EventArgs e) 
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 81 
 { 
 if (Ck_den2.Checked) P.Write("c"); 
 else P.Write("d"); 
 } 
 private void Ck_den3_CheckedChanged(object sender, EventArgs e) 
 { 
 if (Ck_den3.Checked) P.Write("e"); 
 else P.Write("f"); 
 } 
 private void Ck_den4_CheckedChanged(object sender, EventArgs e) 
 { 
 if (Ck_den4.Checked) P.Write("g"); 
 else P.Write("h"); 
 } 
 private void Ck_den5_CheckedChanged(object sender, EventArgs e) 
 { 
 if (Ck_den5.Checked) P.Write("i"); 
 else P.Write("j"); 
 } 
 private void Ck_den6_CheckedChanged(object sender, EventArgs e) 
 { 
 if (Ck_den6.Checked) P.Write("k"); 
 else P.Write("l"); 
 } 
 private void Ck_den7_CheckedChanged(object sender, EventArgs e) 
 { 
 if (Ck_den7.Checked) P.Write("m"); 
 else P.Write("n"); 
 } 
 private void Ck_den8_CheckedChanged(object sender, EventArgs e) 
 { 
 if (Ck_den1.Checked) P.Write("o"); 
 else P.Write("p"); 
 } 
 private void reset_Click(object sender, EventArgs e) 
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 82 
 { 
 P.Write("q"); 
 if (Ck_den1.Checked) Ck_den1.Checked = false; 
 if (Ck_den2.Checked) Ck_den2.Checked = false; 
 if (Ck_den3.Checked) Ck_den3.Checked = false; 
 if (Ck_den4.Checked) Ck_den4.Checked = false; 
 if (Ck_den5.Checked) Ck_den5.Checked = false; 
 if (Ck_den6.Checked) Ck_den6.Checked = false; 
 if (Ck_den7.Checked) Ck_den7.Checked = false; 
 if (Ck_den8.Checked) Ck_den8.Checked = false; 
 } 
 } 
} 
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 83 
6.3 MẠCH NGUYÊN LÝ 
Q6
BTA41 A1A2G
Q4
BTA41 A1A2G
R17
330
C6
10uF
P1
CONNECTOR DB9
5
9
4
8
3
7
2
6
1
U10
MOC3021
1
2
6
4
J1
LOAD
1
2
C12
0.05uF
Q7
BTA41 A1A2G
J6
LOAD
1
2
C13
0.01uF
U6
MOC3021
1
2
6
4
C7
10uF
R27 470
U5
MOC3021
1
2
6
4
R8
39
J3
LOAD
1
2
C8
10uF
C9
10uF
R14360
J2
LOAD
1
2
Q8
BTA41 A1A2G
R21
330
R29
330
Q2
BTA41 A1A2G
V1
VAC 220V 50 Hz
R23
470
C11
0.01uF
Q1
BTA41 A1A2G
R7 470
R24
39
U3
MOC3021
1
2
6
4
C19
0.01uF
C10
0.05uF
U9
MOC3021
1
2
6
4
R13
330
C21
0.01uF
R25
330
R20
39
C18
0.05uF
C17
0.01uF
R3 470
U1
AT89S8252
9
18
19
2
0
29
30
31
40
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RST
XTAL2
XTAL1
G
N
D
PSEN
ALE/PROG
EA/VPP
VCC
P1.0/T2
P1.1/T2-EX
P1.2
P1.3
P1.4/SS
P1.5/MOSI
P1.6/MISO
P1.7/SCK
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
R5
330
C15
0.01uF
R28
39
R2 360
C16
0.05uF
C1
0.01uF
U4
MAX232
1
3
4
5
1
6
1
5
2
6
12
9
11
10
13
8
14
7
C1+
C1-
C2+
C2-
V
C
C
G
N
DV+
V-
R1OUT
R2OUT
T1IN
T2IN
R1IN
R2IN
T1OUT
T2OUT
Y1
12 MHz
R4
39
R19
470
R18360
C20
0.05uF
U7
MOC3021
1
2
6
4
R1
330
R9
330
R32
39
R26 360
0
U2
MOC3021
1
2
6
4
C3 30uF
V2
VDC 5V
J4
LOAD
1
2
C2 30uF
R33 360
R22360
R16
39
U8
MOC3021
1
2
6
4
J8
LOAD
1
2
R30 360R31 470
Q5
BTA41 A1A2G
C5
0.01uF
R12
39
C14
0.05uF
R15
470
C4
0.05uF
R10 360
R11 470
J7
LOAD
1
2
Q3
BTA41 A1A2G
C22
0.05uF
J5
LOAD
1
2
Điều khiển thiết bị qua PC Chƣơng 6: Thiết kế code và giao diện điều khiển 
Trang 84 
6.4 MẠCH MÔ PHỎNG 
Điều khiển thiết bị qua PC Chƣơng 7: Hƣớng phát triển của đề tài 
Trang 85 
CHƢƠNG 7: HƢỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 
Đề tài nghiên cứu việc áp dụng kĩ thuật vi xử lý đối với các thiết bị dân dụng 
công suất thấp và vừa, việc điều khiển chỉ trong phạm vi hẹp, vì thế chúng ta cần cải 
tiến thêm trong tƣơng lai. 
Hiện tại việc điều khiển chỉ đƣợc thực hiện tại một vị trí với điều kiện máy tính 
có cổng COM, vì thế việc điều khiển chƣa đƣợc linh hoạt. Để hoàn thiện hơn hệ thống, 
chúng ta có thể nghiên cứu thêm việc điều khiển qua các sóng điện từ, sóng AM, FM, 
Bluetooth, wireless và ngay cả Internet. 
Từng bƣớc nâng cao công suất tải tiêu thụ, áp dụng thêm những tiến bộ của kĩ 
thuật vi xử lý vào mạch giúp hoạt động tốt hơn, ổn định hơn. Đồng thời nghiên cứu 
thêm việc thiết kế giao diện cho dễ điều khiển. 
Từng bƣớc áp dụng kĩ thuật vi điều khiển vào đời sống, giúp ngƣời đọc, ngƣời 
sử dụng nắm bắt kịp thời những tiến bộ, giúp sinh viên từng bƣớc hoàn thiện đƣợc 
kiến thức nền tảng và nâng cao khả năng nghiên cứu của mình. 
Điều khiển thiết bị qua PC Tài liệu tham khảo 
Trang 86 
TÀI LIỆU THAM KHẢO 
 Tống Văn Ơn, Họ Vi Điều Khiển 8051, MK PUB 
 Ths Nguyễn Hữu Duy Khang, KS: Trần Hữu Danh, Lập Trình Hệ 
Thống, ĐH Cần Thơ. 
 Phạm Văn Cƣờng, Lập Trình Hệ Thống Và Điểu Khiển Thiết Bị, Học 
Viện Công Nghệ Bƣu Chính Viễn Thông. 
 Lê Vũ Hà, Giáo Trình Kỹ Thuật Điều Khiển, Đại Học Quốc Gia Thanh 
Phồ Hồ Chí Minh. 
 Kenneth Ayala (Author), 8051 Microcontroller: Architecture, 
Programming And Applications. 
 Diễn Đàn dientuvietnam.com, ... 
Điều khiển thiết bị qua PC Phụ lục 1 
Trang 87 
PHỤ LỤC 1 
LIỆT KÊ HÌNH 
Hình 2.1: Sơ đồ chân AT89S8252 .........................................................................................8 
Hình 2.2 Dao động trên chip với thạch anh ..........................................................................9 
Hình 2.3: Cấu trúc bộ nhớ trên AT89S8252 ...................................................................... 11 
Hình 2.4: Bản đồ các thanh ghi đặc biệt............................................................................. 14 
Hình 2.5: Sơ đồ khối Port nối tiếp ...................................................................................... 32 
Hình 2.6: Sơ đồ bộ xử lý đa kênh AT89S8252 ................................................................. 36 
Hình 2.7: Timer 2 trong chế độ Capture............................................................................. 48 
Hình 2.8: Timer 2 trong chế độ Auto Reload .................................................................... 49 
Hình 2.9: Timer 2 trong chế độ Auto-Reload .................................................................... 49 
Hình 2.10: Timer 2 trong chế độ Baud Rates Generator .................................................. 50 
Hình 4.1 Kí hiệu chân và hình dạng của cổng COM DB9............................................... 64 
Hình 4.2: Sơ đồ kết nối COM với Max232........................................................................ 66 
Hình 5.1: Mạch tạo nguồn 5V từ điện áp xoay chiều 220V ............................................ 67 
Hình 5.2: Mạch chuyển đổi tín hiệu TTL dùng MAX232 ............................................... 69 
Hình 5.3: Mạch đóng ngắt tải AC ....................................................................................... 69 
Hình 6.1: Lƣu đồ giải thuật code điều khiển ..................................................................... 72 
Điều khiển thiết bị qua PC Phụ lục 2 
Trang 88 
PHỤ LỤC 2 
LIỆT KÊ BẢNG 
Bảng 2.1: Chức năng chuyển đổi ở Port 1 ............................................................................8 
Bảng 2.2: Các chức năng chuyển đổi ở Port 3......................................................................9 
Bảng 2.3: Tóm tắt thanh ghi PSW ...................................................................................... 14 
Bảng 2.4: Tóm tắt thanh ghi IE (Interrupt Register)......................................................... 17 
Bảng 2.5: Tóm tắt thanh ghi PCON .................................................................................... 18 
Bảng 2.6: Thanh ghi điều khiển bộ nhớ và Watchdog ..................................................... 19 
Bảng 2.7: Thanh ghi điều khiển SPI ................................................................................... 20 
Bảng 2.8: Thanh ghi trạng thái SPI ..................................................................................... 21 
Bảng 2.9: Tóm tắt thanh ghi SCON .................................................................................... 33 
Bảng 2.10: Bảng MODE hoạt động của Port nối tiếp. ..................................................... 33 
Bảng 2.11: Tóm tắt tốc độ Baud phổ biến ......................................................................... 38 
Bảng 2.12: Các thanh ghi truy suất Timer 0 và Timer 1 .................................................. 39 
Bảng 2.13: Tóm tắt hoạt động thanh ghi TMOD .............................................................. 40 
Bảng 2.14: Hoạt động 2 bít M0 và M1 ............................................................................... 40 
Bảng 2.15: Tóm tắt hoạt động thanh ghi TCON ............................................................... 41 
Bảng 2.16: Hoạt động Timer 2 ............................................................................................ 46 
Bảng 2.17: Chức năng từng bít T2CON............................................................................. 46 
Bảng 3.1 Sơ đồ chân của máy in ......................................................................................... 52 
Bảng 3.2: Địa chỉ cơ sở các tthanh ghi cổng song song ................................................... 53 
Bảng 3.3: Ý nghĩa của các chân cổng nối tiếp................................................................... 55 
            Các file đính kèm theo tài liệu này:
 Điều khiển thiết bị qua PC.pdf Điều khiển thiết bị qua PC.pdf