Ví dụ về ứng dụng máy tính trong công nghiệp là các hệ thống đo lường điều khiển bằng máy vi tính như đo điện áp, nhiệt độ, áp suất…, việc thăm dò đo đạc đó có thể được máy tính tính toá
Trang 1LỜI NÓI ĐẦU
Trong thời đại ngày nay, lĩnh vực điện tử chiếm một vị trí rất quan trọng trong các
hoạt động của con người Những thiết bị điện tử rất phong phú nhiều chủng loại với nhiều tính năng dần thay thế sức lao động của con người cũng như phục vụ nhu cầu của con người Công nghệ điện tử càng ngày càng phát triển, nhiều phát minh sáng kiến mới đưa cuộc sống con người lên một tầm cao mới, con người ngày càng khám phá thế giới nhiều hơn Lĩnh vực điện tử rât đa dạng như: dân dụng, máy tính, viễn thông, thương mại, công nghiệp…Mỗi ngành nghề có những đặc điểm, hoạt động riêng và cùng đồng hành phát triển, tương trợ lẫn nhau
Điện tử máy tính ngày nay cũng giữ vai trò quan trọng trong việc phát triển chung không những trong lĩnh vực điện tử mà cả hoạt động khác Máy vi tính đã và đang được cải tiến, nâng cấp để đạt tốc độ cao hơn, nhiều tính năng ưu việt hơn, giá thành rẻ hơn và đang được ứng dụng ngày càng nhiều Ví dụ về ứng dụng máy tính trong công nghiệp là các hệ thống đo lường điều khiển bằng máy vi tính như đo điện áp, nhiệt độ, áp suất…, việc thăm dò đo đạc đó có thể được máy tính tính toán, kiểm tra để đưa ra những quyết định, tín hiệu điều khiển trở lại hệ thống, nhằm đạt được các yêu cầu điều khiển đề ra của hệ thống
Trong nhà trường, chúng em cũng đã được tiếp cận về máy vi tính cũng như những
ứng dụng của nó qua môn học “Kỹ thuật đo lường và điều khiển bằng máy tính” Và để khảo sát phần nào ứng dụng của máy vi tính, em đã chọn đề tài “Thiết kế bộ đo và hiển thị điện áp” Ở đây việc đo và hiển thị được thực hiện bằng phần mềm “Visual Basic”,
điện áp đo được từ mạch ngoài được đưa vào máy tính thông qua cổng LPT và được hiển thị lên màn hình qua con số và dạng đồ thị
Trang 2
PHẦN I: GIỚI THIỆU CHUNG
Tìm hiểu chức năng hoạt động các linh kiện tham gia
1) Cổng máy in(LPT):
Cổng song song được thiết kế đầu tiên bởi công ty Centronics nhằm mục đích ghép nối máy tính với máy in Sau này cổng này được tiêu chuẩn hóa và có mặt ở hầu hết các máy tính Tên gọi của cổng song song bắt nguồn từ kiểu truyền dữ liệu qua cổng này ,các bít truyền song song cũng các byte thì nối tiếp Ngoài tên gọi này ra cổng song song cũng có tên là cổng LPT hoặc cổng Centronics
Cấu trúc cổng song song gồm 8 đường dữ liệu, 4 đường dẫn điều khiển và 5 đường dẫn trạng thái Các đừờng dẫn này đều tương thích mức TTL(0;5) do vậy khó thuận tiện, đơn giản cho vỉệc ghép nối với nhiều linh kiện, mạch điện tương thích với mức điện áp trên
Khoảng cách truyền của cổng song song bị hạn chế do điện dung kí sinh, hiện tượng cảm ứng và bị suy giảm công suất Khoảng cách này bị giới hạn trong khoảng cách là 2m Nếu cần ghép nối ở khoảng cách xa hơn cần có các bộ đệm, các phương pháp làm giảm điện dung kí sinh, hiện tượng cảm ứng (chẳng hạn kẹp mass giữa các đường tín hiệu ) Nếu muốn cú khoảng cách xa hơn nữa, nên chọn giải pháp khác ( cổng nối tiếp chẳng hạn)
Cổng LPT
Trong các máy tính thế hệ cũ, cổng song song có tới 36 chân nhưng ngày nay để giảm chi phí, người ta đó chuẩn hóa thành 25 chân, trong số 25 chân này chỉ có 18 chân
có ý nghĩa thực thụ, số cũng lại đều là các chân nối mass , kí hiệu và ý nghĩa của các chân cắm trên cổng song song như sau:
Trang 3Các đường dẫn tín hiệu này được chia thành 3 nhóm:
-Các đường dẫn tín hiệu xuất phát ra từ máy tính và điều khiển máy in được gọi là các đường dẫn điều khiển có địa chỉ cơ sở 378h
- Các đường dẫn tín hiệu đưa các thông báo ngược lại từ máy in về máy tính được gọi là các đường dẫn trạng thái có địa chỉ 379h
- Các đường dẫn dữ liệu :Truyền các bytes kí tự cần in có địa chỉ 37Ah
Các nhóm đường dẫn tín hiệu trên có liên quan trực tiếp với các thanh ghi trong
Để có thể ghép nối các thiết bị ngoại vi, các mạch điện ứng dụng trong đo lường và điều khiển với cổng song song ta phải tìm hiểu cách trao đổi với các thanh ghi thông qua cách sắp xếp đường dẫn địa chỉ của các thanh ghi cũng như các phần mềm liên quan Cú 3 thanh ghi như sau
- Thanh ghi dữ liệu (địa chỉ cơ sở )
Trang 4
- Thanh ghi trạng thái (địa chỉ cơ sở +1)
- Thanh ghi điều khiển (địa chỉ cơ sở +2)
Qua cấu trúc các thanh ghi ta thấy có 8 đường dẫn dữ liệu tới 8 ô như trên thanh ghi
dữ liệu cùng 4 đường dẫn điều khiển Strobe, Auto Linefeed, Interupt, Select Input dẫn tới 4 ô nhớ trên thanh ghi điều khiển, cuối cùng là đường dẫn trạng thái Acknowledge, Busy, Paper Empty, Select, Error nối tới 5 ô trên thanh ghi trạng thái Riêng ở thanh ghi
Trang 5điều khiển cần chú ý tới 1 bit nữa được sử dụng cho mục đích ghép nối nhưng lại không được nối với ổ cắm 25 chân, bít này có thể được sử dụng để xóa 1 ngắt có liên quan với đường dẫn Acknowledge
Ta có thể trao đổi với 3 thanh ghi này như thế nào? Hệ điều hành DOS dự tính đến
4 cổng song song đặt tên là: LPT1, LPT2, LPT3 và LPT4 Tuy vậy hầu hết các máy vi tính PC đều chỉ có nhiều là 2 cổng song song thậm chí là 1 lý do kinh tế Khi bật máy , BIOS sẽ kiểm tra trên máy có mấy cổng song song Các cổng song song được BIOS tìm thấy sẽ được sắp theo các tên lần lượt là LPT1, LPT2… phần lớn các phiên bản của BIOS chạy trong giai đoạn khởi động (Boot phase) của máy tính, khi đú các thông số về phần cứng cũng như các cổng song song tìm thấy sẽ hiển thị trong khung hình chữ nhật
Ta có thể dừng lại quá trình khởi động của máy tính bằng phím Pause để quan sát
kỹ các thông số được liệt kê trong bảng
Các địa chỉ của cổng song song trên máy tính PC:
2) IC 74LS257.
7 4 L S 2 5 7
2 3 5 6
1 1
1 0
1 4
1 3
1 5
4 7 9
1 2
1
1 6 8
1 A
1 B
2 A
2 B
3 A
3 B
4 A
4 B G
1 Y
2 Y
3 Y
4 Y
A / B
V C C
G N D
Vi mạch này có nhiệm vụ nhận dữ liệu 8 bít từ vi mạch khác đưa tới và chốt từng cặp 4 bit A hoặc 4 bit B cho đi ra tại đầu ra Y Một trong 2 cặp này sẽ nhận đựơc tại đầu
Trang 6ra Y phụ thuộc vào chân điều khiển A/B của IC này nhận được từ vi mạch ngoài Cụ thể :
- Khi chân A/B(1) ở mức thấp thì cho xuất các bít A(từ 1A đến 4A) ra cổng Y(từ 1Y đến 4Y)
- Khi chân A/B(1) ở mức cao thì cho xuất các bít B(từ 1B đến 4B) ra cổng Y
Còn chân G(14) tích cực ở mức thấp (0), có nhiệm vụ chốt dữ liệu, cho hoặc không cho dữ liệu đi qua:
- G =1: cấm dữ liệu từ đầu vào A hoặc B xuất ra Y
- G =0: cho phép dữ liệu từ đầu vào A hoặc B xuất ra Y
3) Chip ADC0804
Chip ADC0804 là bộ chuyển đổi tương tự số thuộc họ ADC800 của hãng National Semiconductor Chip này cũng được nhiều hãng khác sản xuất Chip có điện áp nuôi +5V và độ phân giải 8 bit Ngoài độ phân giải thì thời gian chuyển đổi cũng là một
tham số quan trọng khi đánh giá bộ ADC Thời gian chuyển đổi được định nghĩa là thời gian mà bộ ADC cần để chuyển một đầu vào tương tự thành một số nhị phân Đối với ADC0804 thời gian chuyển đổi phụ thuộc vào tần số đồng hồ được cấp tới chân CLK
và CLK IN và không bé hơn 110µs
Các chân của ADC0804 có chức năng như sau:
Trang 7a) CS (Chip Select) - chọn chip
Là chân chọn chip, đầu vào tích cực mức thấp được sử dụng để kích hoạt chip
ADC0804 Để truy cập ADC0804 thì chân này phải ở mức thấp
b) RD (Read) - đọc
Đây là một tín hiệu vào, “tích cực mức thấp” Các bộ ADC chuyển đổi đầu vào
tương tự thành số nhị phân và giữ nó ở một thanh ghi trong RD được sử dụng để có dữ liệu được đã chuyển đổi tới đầu ra của ADC0804 Khi CS = 0 nếu có một xung cao-xuống-thấp áp đến chân RD thì dữ liệu ra dạng số 8 bit được đưa tới các chân dữ liệu D0
- D7 Chân RD còn được coi là cho phép đọc
c) WR (Write) - ghi
Thực ra, tên chính xác là “Bắt đầu chuyển đổi” Đây là chân vào “tích cực mức thấp” được dùng để báo cho ADC0804 bắt đầu quá trình chuyển đổi Nếu CS = 0 khi
WR tạo ra xung cao-xuống-thấp thì bộ ADC0804 bắt đầu tiến hành chuyển đổi giá trị đầu vào tương tự Vin về số nhị phân 8 bit Lượng thời gian cần thiết để chuyển đổi thay đổi phụ thuộc vào tần số đưa đến chân CLK IN và CLK R Khi việc chuyển đổi dữ liệu được hoàn tất thì chân INTR được ADC0804 hạ xuống thấp
d) CLK IN và CLK R
CLK IN là chân vào, được nối tới một nguồn đồng hồ ngoài khi đồng hồ ngoài được sử dụng để tạo thời gian Tuy nhiên ADC0804 cũng có một bộ tạo xung đồng hồ trên chip Để dùng đồng hồ trong (cũng còn được gọi là đồng hồ riêng) của ADC0804 thì các chân CLK IN và CLK R được nối tới một tụ điện C và một điện trở R Trong trường hợp này tần số đồng hồ được xác định bằng biểu thức:
RC
f
1 , 1
1
=
Giá trị thông thường của các đại lượng trên là R = 10kΩ, C= 151pF và tần số nhận được f = 606kHz, còn thời gian chuyển đổi sẽ là 110µs
e) Ngắt INTR (Interrupt)
Ngắt hay còn gọi là “kết thúc việc chuyển đổi’ Đây là chân ra tích cực mức thấp Bình thường, chân này ở trạng thái cao và khi việc chuyển đổi hoàn tất thì nó xuống thấp để báo cho CPU biết là dữ liệu được chuyển đổi đã sẵn sàng để lấy đi Sau khi INTR xuống thấp, cần đặt CS = 0 và gửi một xung cao-xuống-thấp tới chân RD để đưa
dữ liệu ra
f) V in (+) và V in (-)
Đây là hai đầu vào tương tự vi sai, trong đó Vin = Vin (+) -Vin (-) Thông thường
Trang 8Vin (-) được nối xuống đất và Vin (+) được dùng làm đầu vào tương tự và sẽ được
chuyển đổi về dạng số
g) V CC
Là chân nguồn nuôi +5v Chân này còn được dùng làm điện áp tham chiếu khi đầu vào Vref/2 (chân 9) để hở
Chân 9 là điện áp đầu vào được dùng làm điện áp tham chiếu Nếu chân này hở (không được nối) thì điện áp đầu vào tương tự cho ADC804 nằm trong dải 0 đến +5v Tuy nhiên, có nhiều ứng dụng mà đầu vào tương tự áp đến Vin khác với dải 0 đến 5v Chân Vref/2 được dùng để thực hiện các điện áp đầu vào có dải khác với 0 - 5V Ví dụ, nếu dải đầu vào tương tự cần biến đổi từ 0 đến 4V thì Vref/2 được nối với +2V
Bảng biểu diễn dải điện áp V in đối với các đầu vào V ref/2 khác nhau.
Quan hệ điện áp V ref/2 với V in
Ghi chú:
i) D0 - D7
D0 - D7 là các chân ra dữ liệu số (D7 là bit cao MSB và D0 là bit thấp nhất-LSB) Các chân này được đệm ba trạng thái và dữ liệu đã được chuyển đổi chỉ được
Trang 9truy cập khi chân CS = 0 và chân RD đưa xuống mức thấp Để tính điện áp đầu ra ta có thể sử dụng công thức sau:
buoc thuoc kich
V
ở đây Dout là đầu ra dữ liệu số (dạng thập phân) Vin là điện áp đầu vào tương tự và kích thước bước (độ phân dải) là sự thay đổi nhỏ nhất được tính bằng (2×Vref/2)/255 đối với ADC 8 bit
Từ những trình bày trên, có thể tóm tắt các bước khi ADC0804 thực hiện chuyển đổi dữ liệu là:
1 Bật CS = 0 và gửi một xung cao-xuống-thấp tới chân WR để bắt đầu chuyển đổi
2 Duy trì kiểm tra chân INTR Nếu INTR xuống thấp thì việc chuyển đổi được hoàn tất và có thể chuyển sang bước tiếp theo Nếu INTR còn ở mức cao thì tiếp tục thăm dò cho đến khi nó xuống thấp
3 Sau khi chân INTR xuống thấp, gửi một xung cao-xuống-thấp đến chân RD để nhận dữ liệu từ chip ADC0804
Trang 10PHẦN II: THIẾT KẾ VÀ THI CÔNG
1) Sơ đồ nguyên lý:
Trang 115 V
R 2
1 0 k
R 3
9 0 0 k
J 1
C O N 3
1
2
R 5
1 0 0
P O W E R
5 V
R 2
1 0 k
C 1 1
1 0 4 p
J 2
1 2
C 1
1 5 1
5 V
U 6
L M 7 8 0 5 / T O
1
3
E N
G 1
1 1
M U X
U 2
7 4 L S 2 5 7
1 5 1
2
3 5
6
1 1
1 0
1 4
1 3 1 2
9 7 4
+
C 1 3
1 0 0 0 u F
5 V
S W 2
S W 1
0
R 1
1 0 k
U 1
A D C 0 8 0 4
6 7
9
1 1
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
4
5
+ I N
- I N
V R E F / 2
D B 7
D B 6
D B 5
D B 4
D B 3
D B 2
D B 1
D B 0
C L K R
C L K I N
I N T R
R D W R
P L T
1 3
2 5
1 2
2 4
1 1
2 3
1 0
2 2 9
2 1 8
2 0 7
1 9 6
1 8 5
1 7 4
1 6 3
1 5 2
1 4 1
R 4
1 0 0 k
R 1
1 0 0 k
2) Sơ đồ mạch in:
Trang 123) Giao diện thiết kế:
Trang 134) Chương trình phần mềm:
Private Declare Function Inp32 Lib "inpout32.dll" (ByVal PortAddress As Integer) As Integer
Private Declare Sub Out32 Lib "inpout32.dll" (ByVal PortAddress As Integer, ByVal Value As Integer)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Option Explicit 'khai bao bien toan cuc
Dim H As Byte
Dim L As Byte
Dim kq As Byte
Trang 14Dim da As Single
Dim da1 As Integer
Dim x1 As Integer
Dim y1 As Integer
Dim counter1 As Integer
Dim array_x1(10000) As Integer
Dim array_y1(10000) As Integer
Dim ve As Boolean
Private Sub Command1_Click()
Do
[DoEvents]
Out32 &H37A, 0
Sleep (1)
Out32 &H37A, 5
L = Inp32(&H379)
L = L And &HF0
L = L Xor &H80
Out32 &H37A, 4
H = Inp32(&H379)
H = H And &HF0
H = H Xor &H80
kq = H + L / 16
If Check1.Value = 0 Then
da = kq * 0.01
Else
da = kq * 0.1
End If
Text1.Text = da
Sleep (99)
vedothi (da)
Loop
End Sub
Private Sub Command2_Click()
End
End Sub
Public Sub vedothi(t As Single) 'Ham ve do thi
Trang 15counter1 = counter1 + 1
x1 = x1 + 72 ' sau moi lan ve tang len 72 Pixel de tang truc thoi gian y1 = Int(5520 - t * (4800 / 25))
array_x1(counter1) = x1 'luu toa do x vao mang de xoa man hinh
array_y1(counter1) = y1 'luu toa do x vao mang
Circle (x1, y1), 20, vbRed ' ve duong tron mau do toa do x,y
Line (x1, y1 + 25)-(x1, 5520), &H8000& ' ve duong thang mau xanh tu x1,y1 toi truc thoi gian
If counter1 >= 132 Then ' goi ham xoa man hinh
xoa_manhinh
End If
End Sub
Public Sub xoa_manhinh() ' Xoa bang cach ve len nhung diem da ve banh mau nen
Dim i As Integer
Dim k As Integer
k = counter1
For i = 0 To k
x1 = array_x1(i)
y1 = array_y1(i)
Circle (x1, y1), 20, &H80000009
Line (x1, y1 + 25)-(x1, 5520), &H8000000E
Next
counter1 = 0
x1 = 960
End Sub
Private Sub Form_Load()
x1 = 960
counter1 = 0
End Sub
5) Giải thích hoạt động:
ADC0804 có nhiệm vụ chuyển đổi từ tương tự sang số, nghĩa là giá trị điện áp nhận được tại chân V in(6) là dạng tương tự sẽ được chuyển đổi thành các bít nhị phân (0
và 1) xuất ra cổng ra thành 1 byte gồm 8 bit từ D0 đến D7 Để ADC làm việc được ta phải điều khiển các chân của nó :
- Chân CS(chọn chíp)=0(nối mass): để ADC luôn làm việc
Trang 16- Chân WR: lúc đầu cho chân này =0 (Out32 &H37A, 0) để ra lệnh ADC biến đổi điện áp nhận được thành các bit dữ liệu Cho trễ 1ms (Sleep (1)) để ADC biến đổi song Sau đó lại cho chân này = 1(Out32 &H37A, 5) để không cho phép ADC biến đổi nữa
- Chân RD = 0: để máy tính luôn nhận được giá bít tại đầu ra của ADC đưa đến thông qua 74LS257
- Để máy tính nhận được 1 byte dữ liệu đưa tới, cần điều khiển LS257 làm việc bằng cách:
+ Cho chân 1 của 74LS257 = 0 để nhận được 4 bit thấp L (Out32 &H37A, 5)
+ Cho chân 1 của 74LS257 = 1 để nhận được 4 bít cao H (Out32 &H37A, 4) Sau khi nhận được đầy đủ 1 byte thì máy tính thông qua chương trình biến đổi để chuyển đổi các bit nhận được sang dạng giá trị số rồi hiển thị lên trên màn hình vi tính giá trị số và dạng đồ thị biến đổi của điện áp bằng phần mềm Visual Basic
Chương trình sẽ chuyển đổi giá trị nhận được và hiển thị giá trị trên màn hình một cách liên tục
MỤC LỤC
Trang 17LỜI NÓI ĐẦU -1
PHẦN I: GIỚI THIỆU CHUNG -2
1) Cổng máy in(LPT) -2
2) IC 74LS257 -5
3) Chip ADC0804 -6
PHẦN II: THIẾT KẾ VÀ THI CÔNG -10
1) Sơ đồ nguyên lý -10
2) Sơ đồ mạch in -11
3) Giao diện thiết kế -12
4) Chương trình phần mềm -12
5) Giải thích hoạt động -14
MỤC LỤC -15