TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN KHOA ĐIỆN ĐIỆN TỬ Giáo viên hướng dẫn Lý Văn Đạt Nhóm SVTH Vũ Kông Du Nguyễn Công Long Đoàn Đình Luân Nguyễn Văn Nguyên Đào Tuấn Phong 1.Giới thiệu Giao tiếp 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. Ưu điểm: • 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 VDK hay PLC. •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.
Trang 1BÁO CÁO THỰC HÀNH
ĐỀ TÀI : THIẾT KẾ, CHẾ TẠO MẠCH ĐIỀU KHIỂN
GIAO TIẾP QUA MÁY TÍNH
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
KHOA ĐIỆN - ĐIỆN TỬ
Giáo viên hướng dẫn Lý Văn Đạt
Nguyễn Công Long Đoàn Đình Luân Nguyễn Văn Nguyên Đào Tuấn Phong
Trang 2Phần I : Lý thuyết liên quan
Phần II : Mạch nguyên lý và giao diện kết nối với vi điều khiển Phần III : Chương trình giao tiếp hệ thống
Phần IV : Tổng Kết
NỘI DUNG THỰC HIỆN
Trang 31.Giới thiệu Giao tiếp 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
Ưu điểm:
• 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 VDK hay PLC
• 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
PHẦN I - LÝ THUYẾT TỔNG QUÁT
Trang 42 Giới thiệu Chuẩn RS-232
Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000bps nhưng nếu cáp truyền ngắn
có thể lên đến 115.200 bps Các tốc độ thông dụng : 1200bps, 4800bps, 9600bps
Đặc tính kỹ thuật của chuẩn RS-232:
Chiều dài cable cực đại 15m
Tốc độ dữ liệu cực đại 20Kbps Điện áp ngõ ra cực đại +-25V Điệp áp ngõ ra có tải +(-)5V đến +(-)12V Trở kháng tải 3K đến 7K
Điệp áp ngõ vào +(-)15V
Độ nhạy ngõ vào +(-)3V Trở kháng ngõ vào 3K đến 7K
PHẦN I - LÝ THUYẾT TỔNG QUÁT
Trang 5PHẦN I - LÝ THUYẾT TỔNG QUÁT
Các chân của cổng RS232
Trang 63 Vi mạch MAX 232
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
PHẦN I - LÝ THUYẾT TỔNG QUÁT
Trang 7PHẦN II - MẠCH KẾT NỐI VÀ GIAO DIỆN PC
1.Mạch nguyên lý giao tiếp PC
Trang 81.Chương trình VB
PHẦN III - CHƯƠNG TRÌNH GIAO TIẾP
Option Explicit
Dim i As Integer
Private Sub cmddem_Click()
If com1.PortOpen = True Then
Timer1.Enabled = True
com1.Output = Chr(101) 'gui ma 101 khi cong com mo
End If
End Sub
Private Sub cmddung_Click(Index As Integer)
Timer1.Enabled = False
If com1.PortOpen = True Then
com1.Output = Chr(102)
End If
End Sub
Trang 9Private Sub cmdreset_Click(Index As Integer) Timer1.Enabled = False
i = 0
Label1.Caption = "00"
If com1.PortOpen = True Then
com1.Output = Chr(104)
End If
End Sub
Private Sub Form_Load()
com1.Settings = "9600,n,8,1"
com1.CommPort = 1
com1.PortOpen = True
End Sub
Trang 10Private Sub t1_Timer()
frm.Caption = Mid(frm.Caption, 2) & Left(frm.Caption, 1) End Sub
Private Sub Timer1_Timer()
i = i + 1
If i < 10 Then
Label1.Caption = "0" & i
Else
Label1.Caption = i
End If
If i = 100 Then
i = 0
Timer1.Enabled = False
Label1.Caption = "00"
End If
End Sub
Trang 112.Chương trình VĐK
#include<reg51.h>
int i1,i2;
const int led[10]={0x0c0,0x0f9,0x0a4,0x0b0,0x99,0x92,0x82,0x0f8,0x80,0x90}; ////////
void tre(int time)
{
while(time );
}
Void khoi_tao()
{
SCON=0X52; //Chế độ 1:8-bit UART,cho phép truyền
TMOD=0X20; //Timer1 chế độ 2:8-bit tự động nạp lại
TH1=0XFD; //Tốc độ 9600 baud
TL1=0XFD;
TI=0; //Cờ ngắt nhận =0
RI=0; //Cờ ngắt truyền =0
TR1=1; //Timer1 chạy
ES=1; //Cho phép ngắt nối tiếp
}
Trang 12void NGAT() interrupt 4 //NGAT NOI TIEP {
char ch;
if(RI==1)
{
RI=0;
ch=SBUF;
SBUF= ch;
}
}
Trang 13void dem()
{
for(i1=0;i1<10;i1++)
{
for(i2=0;i2<10;i2++)
{
P0=led[i1] ;
P2=led[i2] ;
if(SBUF==102)
while(1)
{
{;}
if(SBUF==101) break;
if(SBUF==104)
{
i1=0 ;
i2=0 ;
P0=0x0c0 ;
P2=0x0c0 ;
}
}
tre(1750) ; } } //
P0=0x0c0 ; P2=0x0c0 ; while(1) {
{;}
} }
Trang 14void main()
{
P2=0X0c0;
P0=0x0c0 ;
KHOI_TAO();
while(1)
{
if(SBUF==101) dem() ;
else if(SBUF==104) {
P0=0x0c0 ;
P2=0x0c0 ; }
}
}
Trang 152.Giao diện kết nối vi điều khiển
Trang 161 Phân công công việc cụ thể
Thiết kế,chế tạo mạch phần cứng Đào Tuấn Phong
Nguyễn Công Long
Thiết kế giao diện điều khiển Đoàn Đình Luân
Nguyễn Công Long
Viết chương trình điều khiển Vũ Kông Du
Nguyễn Văn Nguyên Viết báo cáo thực hành Đào Tuấn Phong
PHẦN IV - Tổng kết & đánh giá
Trang 172 Hướng phát triển của đề tài
Giao tiếp qua cổng LPT,USB,
Thiết kế modul điều khiển giao tiếp với máy tính
Điều khiển hệ thống công nghiệp qua máy tính
Tổng kết & đánh giá