1. Trang chủ
  2. » Luận Văn - Báo Cáo

giám sát mạch chuyển đổi điện áp ghép nối máy tính qua giao diện rs 232

17 692 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 547,5 KB

Nội dung

Ưu điểm của cổng nối tiếp là có khả năng truyền được đi xa, ít bị gây nhiễu so với khi sử dụng cổng song song, và tiết kiệm được dây dẫn.. Bộ chuyển đổi được sử dụng rộng rãi là MAX-232

Trang 1

Chương 1 : Giới thiệu các phần tử sử dụng:

1.1) RS 232:

Cổng nối tiếp RS 232 là giao diện phổ biến rộng rãi nhất Người dùng máy tính PC còn gọi cổng này là COM 1, còn COM 2 để tự do cho các ứng dụng khác Việc truyền dữ liệu qua cổng RS 232 được tiến hành theo cách nối tiếp, nghĩa là các bit dữ liệu được gửi đi nối tiếp nhau trên một đường dẫn Ưu điểm của cổng nối tiếp là có khả năng truyền được đi xa, ít bị gây nhiễu so với khi sử dụng cổng song song, và tiết kiệm được dây dẫn

Ở đây ta xét loại 9 chân, có hình dáng và chức năng như hình dưới

1.2) MAX 232

Hầu như tất cả các thiết bị số như vi điều khiển đều sử dụng các mức logic TTL hay CMOS, trong khi điện áp truyền thông RS 232 là -25V đến 25V Vì vậy, để kết nối một thiết bị với một kênh RS 232 ta phải thay đổi mức điện áp của RS 232 trở lại mức từ 0 đến 5V hoặc ngược lại Bộ chuyển đổi được sử dụng rộng rãi là MAX-232 (và tương thích với bộ vi xử lý) IC này cũng có hai

Sinh Viên : Phạm Minh Đức 1 Lớp : ĐTĐ49-ĐH2

Trang 2

luồng nhận và hai luồng gửi trên cùng một thiết bị IC MAX232 có chân 16 với một điện thế cung cấp 5V Pin 16 được sử dụng như điện áp đầu vào (FCC), pin 15 như mặt đất Pin 8 và 13 được sử dụng như là đầu vào (nhận) RS-232, trong khi các chân 7 và 14 như đầu ra (gửi) RS232 Cấu hình các chân của IC MAX232 được thể hiện trong hình:

Ghép nối giữa RS 232 và MAX 232:

Trang 3

1.3) Họ VDK 8051

Ghép nối với MAX 232:

Sinh Viên : Phạm Minh Đức 3 Lớp : ĐTĐ49-ĐH2

Trang 4

1.4) ADC 0809

Vi mạch ADC0809 là một bộ biến đổi A/D 8 bit với 8 kênh vào Analog làm việc độc lập với nhau Các đầu vào analog này được so với điện thế 0V Việc chọn một trong 8 kênh được thực hiện bởi các đầu vào địa chỉ (A,B,C)

Các thông số kỹ thuật đặc trung cho vi mạch ADC 0809:

 Không đòi hỏi điều chỉnh điểm 0

 Quét động 8 kênh bằng logic địa chỉ

 Thời gian biến đổi : 100us

 Dải tín hiệu lối vào là Analog thi điện áp nguồn nuôi là 5V: 0-5V

 Tất cả tín hiệu vào ra số tương thích chuẩn TTL

 Độ phân giải 8 bit

 Dòng tiêu thụ: 0.3 mA

Sơ đồ chân của vi mạch:

Nguyên tắc làm việc của mạch như sau: để bắt đầu 1 quá trình chuyển đổi thì cần 1 xung dương đến chân START, xung dương này đồng thời đưa đến chân ALE để chốt địa chỉ tại các chân A,B,C vào vi mạch  cho phép xác định kênh analog cần biến đổi; trong quá trình biến đổi chân EOC ở mức logic thấp, khi quá trình biến đổi kết thúc tín hiệu tại chân này chuyển sang mức cao để

Trang 5

báo hiệu kết thúc quá trình chuyển đổi; lúc này để đọc dữ liệu đã biến đổi ta cần đưa 1 xung dương vào chân OE, dữ liệu sẽ đưa lên các chân D0-D7

1.5) AD 7524

Cấu trúc bên trong và bảng chân lý:

Sinh Viên : Phạm Minh Đức 5 Lớp : ĐTĐ49-ĐH2

Trang 7

Chương 2 : Xây dựng modul ghép nối

2.1 Cấu hình phần cứng:

Dựa vào nguyên lý hoạt động các phần tử ta xây dựng được sơ đồ nguyên lý như sau

Sinh Viên : Phạm Minh Đức 7 Lớp : ĐTĐ49-ĐH2

Trang 9

2.2) Giao diện với người sử dụng:

Code:

Dim hs As Single

Private Sub Kenh1_Click()

MSComm1.Output = Chr(30)

MSComm1.Output = Chr(0)

Timer1.Enabled = True

Timer2.Enabled = False

Timer3.Enabled = False

Timer4.Enabled = False

Timer5.Enabled = False

Timer6.Enabled = False

End Sub

Private Sub Kenh2_Click()

MSComm1.Output = Chr(30)

MSComm1.Output = Chr(1)

Timer1.Enabled = False

Timer2.Enabled = True

Sinh Viên : Phạm Minh Đức 9

Lớp : ĐTĐ49-ĐH2

Trang 10

Timer3.Enabled = False

Timer4.Enabled = False

Timer5.Enabled = False

Timer6.Enabled = False

End Sub

Private Sub Kenh3_Click()

MSComm1.Output = Chr(30)

MSComm1.Output = Chr(2)

Timer1.Enabled = False

Timer2.Enabled = False

Timer3.Enabled = True

Timer4.Enabled = False

Timer5.Enabled = False

Timer6.Enabled = False

End Sub

Private Sub Kenh4_Click()

MSComm1.Output = Chr(30)

MSComm1.Output = Chr(3)

Timer1.Enabled = False

Timer2.Enabled = False

Timer3.Enabled = False

Timer4.Enabled = True

Timer5.Enabled = False

Timer6.Enabled = False

End Sub

Private Sub Kenh5_Click()

MSComm1.Output = Chr(30)

MSComm1.Output = Chr(4)

Timer1.Enabled = False

Timer2.Enabled = False

Trang 11

Timer3.Enabled = False

Timer4.Enabled = False

Timer5.Enabled = True

Timer6.Enabled = False

End Sub

Private Sub Kenh6_Click()

MSComm1.Output = Chr(30)

MSComm1.Output = Chr(5)

Timer1.Enabled = False

Timer2.Enabled = False

Timer3.Enabled = False

Timer4.Enabled = False

Timer5.Enabled = False

Timer6.Enabled = True

End Sub

Private Sub Thoat_Click()

e = MsgBox("Are you sure????", vbYesNo, "EXIT")

If e = vbYes Then End

End Sub

Private Sub Stop_Click()

Timer1.Enabled = False

Timer2.Enabled = False

Timer3.Enabled = False

Timer4.Enabled = False

Timer5.Enabled = False

Timer6.Enabled = False

End Sub

Private Sub Form_Load()

MSComm1.PortOpen = True

Sinh Viên : Phạm Minh Đức 11

Lớp : ĐTĐ49-ĐH2

Trang 12

End Sub

Private Sub Form_Unload(Cancel As Integer)

MSComm1.PortOpen = False

End Sub

Private Sub Option1_Click()

MSComm1.Output = Chr(20)

MSComm1.Output = Chr(40)

hs = 10 / 255

End Sub

Private Sub Option2_Click()

MSComm1.Output = Chr(20)

MSComm1.Output = Chr(80)

hs = 5 / 255

End Sub

Private Sub Option3_Click()

MSComm1.Output = Chr(20)

MSComm1.Output = Chr(160)

hs = 2 / 255

End Sub

Private Sub Option4_Click()

MSComm1.Output = Chr(20)

MSComm1.Output = Chr(3)

hs = 1 / 255

End Sub

Private Sub Option5_Click()

MSComm1.Output = Chr(20)

MSComm1.Output = Chr(4)

Trang 13

hs = 0,5 / 255

End Sub

Private Sub Option6_Click()

MSComm1.Output = Chr(20)

MSComm1.Output = Chr(5)

hs = 0,2 / 255

End Sub

Private Sub Timer1_Timer()

MSComm1.Output = Chr(10)

Text1.Text = MSComm1.Input * hs

End Sub

Private Sub Timer2_Timer()

MSComm1.Output = Chr(10)

Text2.Text = MSComm1.Input * hs

End Sub

Private Sub Timer3_Timer()

MSComm1.Output = Chr(10)

Text3.Text = MSComm1.Input * hs

End Sub

Private Sub Timer4_Timer()

MSComm1.Output = Chr(10)

Text4.Text = MSComm1.Input * hs

End Sub

Private Sub Timer5_Timer()

MSComm1.Output = Chr(10)

Text5.Text = MSComm1.Input * hs

End Sub

Sinh Viên : Phạm Minh Đức 13

Lớp : ĐTĐ49-ĐH2

Trang 14

Private Sub Timer6_Timer()

MSComm1.Output = Chr(10)

Text6.Text = MSComm1.Input * hs

End Sub

Code cho 89c51:

#include <sfr51.inc>

ORG 00H

LJMP MAIN

org 23h

ljmp ngat

org 30h

main:

mov scon,#01010000b

setb ea

setb es

mov tmod,#21h

mov th1,#-3

setb tr1

SJMP $

ngat:

jb ti,xoa

clr ri

mov a,sbuf

cjne a,#10,kt2

setb p1.3

lcall delay2us

clr p1.3

lap:

jb p1.4,sendpc

sjmp lap

sendpc:

Trang 15

setb p1.5

lcall delay2us

clr p1.5

mov sbuf,p0

reti

xoa:

clr ti

reti

kt2:

cjne a,#20,kt3

clr ea

jnb ri,$

clr ri

mov a,sbuf

clr p3.4

mov p2,a

setb p3.4

setb ea

reti

kt3:

cjne a,#30,thoat

clr ea

jnb ri,$

clr ri

mov a,sbuf

mov p1,a

setb ea

thoat:

reti

delay2us:

nop

nop

ret

Sinh Viên : Phạm Minh Đức 15

Lớp : ĐTĐ49-ĐH2

Trang 16

2.3) Giải thích chương trình:

Ta có 6 kênh, ta sử dụng 6 timer để đo tín hiệu 1 kênh liên tục

Ta quy ước khi truyền tín hiệu là 10 xuống cổng COM, tức là khi VDK nhận được giá trị là 10 thì nó sẽ phải gửi lên cổng COM 1 giá trị nào đó

Khi tín hiệu truyền xuống VDK qua cổng COM là 20 có nghĩa là thông báo chọn dải điện áp đo

Khi tín hiệu truyền xuống VDK qua cổng COM là 30 có nghĩa là thông báo chọn kênh đo

Ta sử dụng 6 kênh từ 0-5

Nguyên lý hoạt động:

Ở đây ta có 2 đầu đo, một là “đầu đo điện áp cao” (lớn hơn bằng 5V gồm

2 dải điện áp 0-10V; 0-5V) và “đầu đo điện áp thấp” (nhỏ hơn 5V gồm 4 dải điện áp 0-2V; 0-1V; 0-0,5V ; 0-0,2V) Do vậy trong khi sử dụng, ta cần chú

ý xác định dải điện áp đo rồi sử dụng đầu đo cho phù hợp

Đầu đo điện áp thấp ta sử dụng qua khuếch đại thuật toán để nâng điện áp lên chuẩn 5V, phù hợp với ADC 0804 Còn đầu đo điện áp cao ta sử dụng DAC khuếch đại lập trình được có đảo (Ứng với dải đo 0-10V thì ta gửi xuống số 8 bit là 40, tương tự với 0-5V là 80 )

Bắt đầu chương trình, mặc định của hệ thống là ta sử dụng kênh 1 với dải

do là 0-10V Muốn dùng dải đo nào ta click vào dải đo đó, hoặc nếu muốn thay đổi kênh đo, ta chỉ việc bấm vào nút tương ứng Khi ta ấn vào 1 kênh thì timer tương ứng với kênh đó sẽ được kích hoạt (các timer khác dừng hoạt động), lúc này timer sẽ gửi 1 tín hiệu là 10 xuống VDK qua cổng COM và chờ nhận tín hiệu từ VDK gửi lên sau đó hiển thị giá trị điện áp đo được ra ô text tương ứng (với kênh lựa chọn) Khi thay đổi dải đo, thì tại đây, VDK cũng sẽ nhận được lệnh để xuất tín hiệu chọn dải đo đúng với yêu cầu

Khả năng ứng dụng: Mạch ghép nối này có thể sử dụng để chuyển nhiều tín hiệu điện áp (tương tự) vào trong máy tính thông qua cổng RS232,từ đó

ta có thể điều chỉnh được các tín hiệu tương tự này theo ý muốn Ngoài ra mạch ghép nối này cũng có thể áp dụng trong lĩnh vực các mạch đo lường,

cơ cấu đo là tương tự, và tín hiệu đo được được gửi trả về máy tính xử lý

Trang 17

Kết Luận Qua thời gian làm BTL em đã hoàn thành nhiệm vụ được giao Qua đó em hiểu thêm nhiều về cách ghép nối các IC, visual basic, vi xử lý,…Tuy nhiên do trình độ hiểu biết còn hạn chế nên BTL của em không tránh khỏi sai sót, em mong được sự chỉ bảo thêm từ các thầy cô giáo và từ các bạn

Em xin chân thành cảm ơn các thầy cô giáo trong bộ môn Điện Tự Động CN

và đặc biệt là sự chỉ bảo tận tình của thầy giáo Lưu Hoàng Minh

Sinh Viên

Phạm Minh Đức

Sinh Viên : Phạm Minh Đức 17 Lớp : ĐTĐ49-ĐH2

Ngày đăng: 10/03/2014, 15:31

HÌNH ẢNH LIÊN QUAN

Sơ đồ chân của vi mạch: - giám sát mạch chuyển đổi điện áp ghép nối máy tính qua giao diện rs 232
Sơ đồ ch ân của vi mạch: (Trang 4)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w