Tải bản đầy đủ (.doc) (23 trang)

Thiết kế Modul ghép nối với PC qua giao diện LPT để điều khiển và giám sát đèn tín hiệu giao thông ở ngã tư Lạch Tray - Cầu Đất - Lê Lợi - Tô Hiệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (587.76 KB, 23 trang )

LỜI MỞ ĐẦU
Ngày nay cùng với sự phát triển mạnh mẽ của khoa học kĩ thuật,máy tính trở
thành công cụ vô cùng quan trọng.Sự phát triển của “Kỹ thuật ghép nối với máy
tính” đã mở rộng đáng kể các lĩnh vực ứng dụng của máy tính,đặc biệt là trong đo
lường và điều khiển.Các thiết bị ghép nối với máy tính theo các modul nhờ vậy mà
máy tính có thể truyền nhận tín hiệu để thực hiện nhiệm vụ xử lý tín hiệu và điều
khiển. Các thiết bị, hệ thống đo lường và điều khiển ghép nối máy tính có độ chính
xác cao, thời gian thu thấp số liệu ngắn, nhưng còn đáng quan tâm hơn là mức độ tự
động hóa trong việc thu thập và xử lý các kết quả đo, kể cả việc lập bảng thống kê
cũng như in ra kết quả. LPT là một tiêu chuẩn của rãnh cắm mở rộng của máy
tính,phần lớn các card ghép nối dùng trong kỹ thuật đo lường và điều khiển đều
được chế tạo để đặt vào các rãnh cắm theo tiêu chuẩn LPT. Bài tập lớn này của em
chỉ nêu lên một ứng dụng nhỏ của việc kết nối máy tính vào sản xuất nói chung và
rãnh cắm mở rộng nói riêng.
Qua một thời gian tìm hiểu, thiết kế với sự cố gắng của bản thân và sự hướng
dẫn của thầy giáo bộ môn đến nay em đã hoàn thành bài tập lớn này.

Tuy nhiên, do
sự hiểu biết về thực tế và trình độ chuyên môn còn hạn chế nên bài tập lớn không
tránh khỏi thiếu sót. Em mong nhận được sự góp ý của các thầy cô giáo và các bạn.
Em xin chân thành cảm ơn các thầy cô!
CHƯƠNG 1. GIỚI THIỆU VỀ CÔNG NGHỆ
1.1. Giới thiệu về chuẩn giao tiếp LPT
1.1.1. Cấu trúc:
Sau đây là chức năng của các đương dẫn tín hiệu:
Strobe (1): Với một mức logic thấp ở chân này, máy tính thông báo cho máy in biết
có một byte đang sẵn sàng trên các đường dẫn tín hiệu để được truyền.
D0 đến D7: Các đường dẫn dữ liệu
Acknowledge: với một mức logic thấp ở chân này, máy in thông báo cho máy tính
biết là đã nhận được kí tự vừa gửi và có thể tiếp tục nhận.
Busy (bận – 11): máy in gửi đến chân này mức logic cao trong khi đang đón nhận


hoặc in ra dữ liệu để thông báo cho máy tính biết là các bộ đệm trong máy tính biết
là các bộ đệm trong máy tính đã bị đầy hoặc máy in trong trạn thái Off-line.
Paper empty (hết giấy – 12): Mức cao ở chân này có nghĩa là giấy đã dùng hết.
Select (13): Một mức cao ở chân này, có nghĩa là máy in đang trong trạng thái kích
hoạt (On-line)
Auto Linefeed (tự nạp dòng): Có khi còn gọi là Auto Feed. Bằng một mức thấp ở
chân này máy tính PC nhắc máy in tự động nạp một dòng mới mỗi khi kết thúc một
dòng.
Error (có lỗi): Bằng một mức thấp ở chân này, máy in thông báo cho máy tính là đã
xuất hiện một lỗi, chẳng hạn kẹt giấy hoặc máy in đang trong trạng thái Off-Line.
Reset (đặt lại): Bằng một mức thấp ở chân này, máy in được đặt lại trạng thái được
xác định lúc ban đầu.
Select Input: bằng một mức thấp ở chân này, máy in được lựa chọn bởi máy tính.
1.1.2. Các thanh ghi đặc biệt
a.Thanh ghi dữ liệu
Tám đường dẫn dữ liệu dẫn tới 8 ô nhớ trên thanh ghi dữ liệu. thanh ghi dữ
liệu được chỉ rõ là hai hướng dữ liệu có
thể được xuất ra các chân D0 đến D7 hoặc đọc vào.
a. Thanh ghi trạng thái
bốn đường dẫn điều khiển Strobe, Auto Linefeed, Reset, Select Input dẫn tới
bốn ô nhớ trên thanh ghi điều khiển
b. Thanh ghi điều khiển
năm đường dẫn trạng thái Acknowledge, Busy, Paper empty, Select, Error nối
tới năm ô trên thanh ghi trạng thái.
1.1.3. Địa chỉ các cổn trên máy tính:
1.2. Giới thiệu về các vi mạch
1.2.1. Vi mạch ADC AD574A
* Các đặc điểm đặc trưng.
- Là bộ biến đổi A/D 12 bit hoàn chỉnh với nguồn tham chiếu tích hợp bên
trong

- Giao diện tương thích bus của các bộ vi xử lý 8 – 16 bit
- Vùng nhiệt độ hoạt động
0
0
C tới 70
0
C với AD574AJ, K, L
-55
0
C tới 125
0
C với AD574AS, T, U
- Thời gian biến đổi lớn nhất là 35
µ
s
- Các phiên bản khác với chân ra tương thích có thể hoạt động ở tốc độ cao
như: 15
µ
s với AD674B, 10
µ
s với AD1674
* Mô tả sản phẩm
AD574A là một bộ biến đổi ADC 12 bit hoàn chỉnh hoạt động trên nguyên lý
xấp xỉ liên tiếp, với bộ đệm đầu ra ba trạng thái cho phép ghép nối trực tiếp với bus
của bộ vi xử lý 8 hoặc 16 bit. Một bộ phát xung nhịp và điện áp tham chiếu có độ
chính xác cao được tích hợp trên chip.
Sơ đồ chân vi mạch AD574A
- AD574A có thể phối ghép với hầu hết các vi xử lý và các vi điều khiển
8 hoặc 16 bit. Bộ đệm đầu ra ba trạng thái đa chế độ cho phép ghép trực tiếp với bus
dữ liệu trong quá trình đọc và các lệnh biến đổi nhận được từ bus điều khiển. 12 bit

của dữ liệu đầu ra có thể được đọc như là 1 dữ liệu 12 bit hoặc như 2 byte 8 bit (byte
đầu với 8 bit dữ liệu, byte còn lại với 4 bit dữ liệu và 4 bi 0)
- Cung cấp 4 dải đo: 0 tới +10V và 0 tới +20V đơn cực, -5V tới +5V và
-10V tới +10V lưỡng cực
* Đấu nối dải đo đơn cực cho AD574A
AD574A chứa tất cả phần tử tích cực cần thiết để thực hiện biến đổi A/D
hoàn chỉnh. Vì thế, cho tất cả các vị trí, tất cả cần được nối với nguồn cấp (+5V,
+12V/+15V, và -12V/+12V), đầu vào tương tự, và lệnh khởi tạo quá trình biến đổi,
được thảo luận trong trang tiếp theo. Sự đấu nối đầu vào tương tự và định cỡ là rất
đơn giản; chế độ hoạt động đơn cực được biểu diễn như hình sau.
Chế độ hoạt động đơn cực của AD574A
Đầu vào tương tự được nối giữa chân 13 và chân 9 cho phạm vi đầu vào 0V
tới +10V, giữa chân 14 và chân 9 cho phạm vi đầu vào 0V tới +20V. AD574A rất
dễ điều chỉnh để cung cấp tín hiệu đầu vào vượt cao hơn nguồn cấp.
AD574A được thiết kế có độ sai lệch thông thường là ½ LSB so với độ chính
xác ở đầu vào tương tự.
* Hoạt động lưỡng cực.
Sự đấu nối như hình vẽ.
Chế độ hoạt động lưỡng cực của AD574A
ADC nối tiếp AD7524
Sơ đồ chân AD7524
Bộ biến đổi AD7524 làm việc theo nguyên tắc mạng điện trở R – 2R, với R =
100k

.
Vi mạch AD7524 được chế tạo theo công nghệ CMOS, do vậy dòng tiêu thụ
rất nhỏ (chỉ cỡ 1mA khi điện áp nguồn là 5V). Điện áp nguồn V
dd
có thể nằm trong
khoảng 5V tới 15V. Tất cả các lối vào ra đều tương thích TTL

Để đưa ra một tín hiệu Analog (0
÷
-U
REF
*
255
256
V
) ta cần đưa ra byte dữ liệu
đến các chân từ D0 đến D7, sau đó cần tạo ra một xung âm tại chân
WR
để lưu byte
dữ liệu đó vào D/A.
Điện áp so sánh U
REF
có thể là điện áp dương cũng có thể là điện áp âm, thậm
chí có thể đấu với một điện áp xoay chiều có biên độ thay đổi trong một phạm vi
giới hạn.
1.2.2. Giới thiệu về 74HC245
Bộ đệm bus 2 chiều 74HC245 gồm có 20 chân, ,bộ đệm chỉ hoạt động khi có tín
hiệu low ở chân 19.Nó có chứa 8 vi mạch đệm với các lối ra 3 trạng thái để trao đổi
thông tin giữa các đường dẫn bus dữ liệu theo 2 hướng. Hướng truyền dữ liệu được
xác định bằng chân DIR: DIR = 0, dữ liệu được chuyển từ B sang A. Việc chuyển
hướng dữ liệu cho phép quản lý đơn giản bằng tín hiệu /IOR. Ta có thể nối trực tiếp
ra chân DIR. Qua đó đảm bảo bộ đệm chỉ cho phép dữ liệu đưa vào từ bên ngoài
đưa lên bus dữ liệu của máy tính khi PC thực hiện một quá trình truy nhập đọc
(/IOR = 0)
1.2.3. Giới thiệu về 74HC688
Bộ giả mã địa chỉ 74HC688 so sánh các tín hiệu từ A0-A7 xem có thống nhất với
các địa chỉ của tín hiệu trên các chân tương ứng B0-B7.74HC688 so sánh hai trong

số tám bit xem có giống nhau không và khi các bit xếp kề sát đồng nhất sẽ tạo ra
một tín hiệu Low ở chân19.
CHƯƠNG 2. THIẾT KẾ MODUL
2.1. Vi mạch 8255A
Với tổ hợp các tín hiệu địa chỉ (A0, A1), chon vi mạch (CS), và các lệnh đọc
ghi (RD, WR) của VXL, ta có các lệnh ghi đọc khác nhau cho các cửa (A, B, C ) và
thanh ghi điều khiển như bảng 3.2, tạo ra sự di chuyển số liệu giữa đường dây số
liệu, các cửa và thanh ghi điều khiển. Như vậy, vi mạch 8255 có đặc điểm là không
có lệnh đọc thanh ghi trạng thái mà dùng lệnh đọc cửa C khi vi mạch ở chế độ 1 và
2, còn ở chế độ 0, không đọc trạng thái.
Các từ điều khiển
Từ điều khiển thiết lập chế độ:
Từ điều khiển lập xoá bit:
Chọn chế độ của 8255.
Trong khi các cổng A, B và C được dùng để nhập và xuất dữ liệu thì hanh ghi
điều khiển phải được lập trình để chọn chế độ làm việc của các cổng này.
Các cổng của 8255 có thể được lập trình theo một chế độ bất kỳ dưới đây.
- Chế độ 0 (mode0): đây là chế độ vào/ ra cơ sở. Ở chế độ này các cổng A, B,
PCH hay PLH có thể được lập trình như đầu vào hoặc đầu ra.
- Chế độ 1 (mode1): Trong chế độ này các cổng A và B có thể được dùng như
các cổng đầu vào hoặc đầu ra với các khả năng bắt tay. tín hiệu bắt tay được cấp bởi
các bit của cổng C .
- Chế độ 2 (mode2): Trong chế độ này cổng A có thể được dùng như cổng
vào/ ra hai chiều với khả năng bắt tay và các tín hiệu bắt tay được cấp bởi các bit
cổng C cổng B có thể được dùng như ở chế độ vào/ ra đơn giản hoặc ở chế độ có bắt
tay mode1
2.2. IC chốt 74LS373
Chức năng :Chốt dữ liệu để mở rộng các đường dữ liệu hoặc các đường điều
khiển
Cấu tạo:

+Đường dữ liệu có 2 cổng:
-D :Cổng vào 8bit (D0-D7)
-O :Cổng ra 8bit (O0-O7)
+Đường điều khiển :
-/OE :Chân chọn chíp
-LE: Cho phép chốt
Bảng 4: Bảng chân lý
/OE LE Dn On
H X X Z
*
(Trở kháng cao)
L H L L (On=Dn)
L H H H
L H X Dn (Trạng thái trước của đầu vào)
H:High
L:Low
X:Không xác định
- Sơ đồ chân:
Hình 1.10. Sơ đồ chân IC chốt 74LS373
2.3. ADC 0809
Bộ ADC là một thiết bị CMOS tích hợp với một bộ chuyển đổi từ tương tự sang số
8bit ,bộ chọn kênh và một bộ logic điều khiển tương thích.Bộ chuyển đổi AD 8bit
này dùng phương pháp chuyển đổi xấp xỉ tiếp.
Ta có sơ đồ chân ADC 0809
Hình 1.11. Sơ đồ chân và cấu tạo ADC 0809
INo tới IN
7
: 8 ngõ vào tương tự
A,B,C : Giải mã chọn một trong 8 ngõ vào
Z

-1
tới Z
-8
: Ngõ ra song song 8 bit
ALE : Cho phép chốt địa chỉ
START : Xung bắt đầu chuyển đổi
CLK :Xung đồng bộ
REF (+): Điện thế tham chiếu (+)
REF (-): Điện thế tham chiếu (-)
VCC :Nguồn cung cấp
+Các đặc điểm của ADC 0809:
-Độ phân giải 8bit
-Tổng sai số chưa chỉnh định ± ½ LSB;± LSB
-Thời gian chuyển đổi :100µs ở tần số 640kHz
-Nguồn cung cấp +5V
-Điện áp ngõ vào 0-5V
-Tần số xung clock 10kHz-1280kHz
-Nhiệt độ hoạt động -40
o
C tới 85
o
C
-Dễ dàng giao tiếp với vixuly hoặc dùng riêng
-Không cần điều chỉnh zero hoặc đầy thang
+Chọn kênh tương tự cho ADC 0809
Chọn kênh tương tự C B A
INT0 0 0 0
INT1 0 0 1
INT2 0 1 0
INT3 0 1 1

INT4 1 0 0
INT5 1 0 1
INT6 1 1 0
INT7 1 1 1
Bảng 5: chọn kênh tương tự
+Các bước lập trình cho ADC0809
-Chọn một kênh tương tự bằng cách tọa địa chỉ A,B,C theo bảng trên
-Kích hoạt chân ALE .Nó cần xung thấp lên cao để chốt địa chỉ
-Kích hoạt chân SC bằng xung cao xuống thấp để bắt đầu chuyển đổi
-Hiển thị OEC để báo kết thúc chuyển đổi
-Kích hoạt OE cho phép đọc dữ liệu ra của ADC.
2.4. Ghép nối hoàn chỉnh
CHƯƠNG 3. Giao Diện Phần Mềm
3.1. Giao diện điều khiển
3.2. Phần mềm thực hiện
Add modul
Public Declare Function Inportb Lib "dlportio.dll" Alias "Dlport Read Port Uchar"
(ByVal Port As Long) As Byte
Public Declare Sub Outportb Lib "dlportio.dll" Alias "Dlport Write Port Uchar"
(ByVal Port As Long, ByVal Value As Byte)
Code
Dim ck(1 To 5) As Integer
Dim cn(1 To 5) As Integer
Dim cn1(1 To 5) As Integer
Dim cn2(1 To 5) As Integer
Dim dl(1 To 5) As Integer
Dim i As Integer
Dim a, b, c As Integer
Private Sub Command1_Click()
MsgBox "day la chuong trinh dieu khien ghep noi may tinh giao dien LPT"

End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Command3_Click()
For i = 1 To 4
Outportb &H378, ck(i)
For j = 1 To 20
Next j
Outportb &H378, cn(i)
a = Inportb(&H379)
Outportb &H378, cn1(i)
b = Inportb(&H379)
Outportb &H378, cn2(i)
c = Inportb(&H379)
dl(i) = a * 12 + b * 8 + c * 4
Next i
Outport b(&H37A, 2)
Outport b(&H378, &H7)
Outport b(&H378, &H146)
Outport b(&H378, &H5)
Outport b(&H37C, 0)
Outport b(&H378, &H3)
Outport b(&H378, &H5)
Outport b(&H378, &H7)
Call Delay(0.1)
Outport b(&H378, &H4)
Outport b(&H37C, 2)
Outport b(&H378, 8)
Outport b(&H37C, 0)

Outport b(&H37C, 1)
sensor1 = inportb(&H3F8)
''''''''''sensor2
Outport b(&H378, &H23)
Outport b(&H378, &H5)
Outport b(&H378, &H7)
Call Delay(0.1)
Outport b(&H378, &H4)
Outport b(&H37C, 2)
Outport b(&H378, 8)
Outport b(&H37C, 0)
Outport b(&H37C, 1)
sensor2 = inportb(&H378) 'Nhan tin hieu vao
''''''''sensor3
Outport b(&H378, &H13)
Outport b(&H378, &H5)
Outport b(&H378, &H7)
Call Delay(0.1)
Outport b(&H378, &H4)
Outport b(&H37C, 2)
Outport b(&H378, 8)
Outport b(&H37C, 0)
Outport b(&H37C, 1)
sensor3 = inportb(&H378)
'''''''sensor4
Outport b(&H378, &H33)
Outport b(&H378, &H5)
Outport b(&H378, &H7)
Call Delay(0.1)
Outport b(&H378, &H4)

Outport b(&H37C, 2) '
Outport b(&H378, 8)
Outport b(&H37C, 0)
Outport b(&H37C, 1)
sensor4 = inportb(&H378)
'''''''sensor5
Outport b(&H378, &HB)
Outport b(&H378, &H5)
Outport b(&H378, &H7)
Call Delay(0.1)
Outport b(&H378, &H4)
Outport b(&H37C, 2)
Outport b(&H378, 8)
Outport b(&H37C, 0)
Outport b(&H37C, 1)
sensor5 = inportb(&H378)
'''''''sensor6
Outport b(&H378, &H2B)
Outport b(&H378, &H5)
Outport b(&H378, &H7)
Call Delay(0.1)
Outport b(&H378, &H4)
Outport b(&H337C, 2)
Outport b(&H378, 8)
Outport b(&H37C, 0)
Outport b(&H37C, 1)
sensor6 = inportb(&H378)
'''''''sensor7
Outport b(&H378, &H1B)
Outport b(&H378, &H5)

Outport b(&H378, &H7)
Call Delay(0.1)
Outport b(&H378, &H4)
Outport b(&H37C, 2)
Outport b(&H378, 8)
Outport b(&H37C, 0)
Outport b(&H37C, 1)
sensor7 = inportb(&H378)
'''''''sensor8
Outport b(&H378, &H13)
Outport b(&HF37, &H5)
Outport b(&H378, &H7)
Call Delay(0.1)
Outport b(&H378, &H4)
Outport b(&H37C, 2)
Outport b(&H378, 8) ' Chi con tro toi cong A
Outport b(&H37C, 0) 'Chot du lieu
Outport b(&H37C, 1)
sensor8 = inportb(&H378)
'''''''cam bien so
Outport b(&H37C, 2)
Outport b(&H378, A) ' Chi con tro toi cong B
Outport b(&H37C, 0) 'Chot du lieu
Outport b(&H37C, 1) 'dieu khien 6402 duong nhan tin hieu vao
sensor = inportb(&H378) 'Nhan tin hieu vao
End Sub
Kết luQn
Sau nhiều ngày tìm hiểu và làm bài tập lớn dưới sụ hướng đẫn của các thầy và
bạn b•, em đã hoàn thành xong được đề tài này. Sau khi làm xong đã giúp cho em
có nhiều hiểu biết hơn về vi điều khiển và hoạt động của nó. Mặc dù em đã rất cố

gắng, xong do kiến thức còn hạn chế nên không thoát khỏi những sai lầm trong khi
thiết kế, mong thầy có thể chỉ ra những sai sót đó để em có thể lắm rõ hơn nữa về
vấn đề. Em xin chân thành cảm ơn.
Tài liệu tham khRo
[1] Bài giảng môn điều khiển sản xuất và tích hợp máy tinh - Trường ĐHHH Việt
Nam
[2] Kỹ thuật ghép nối máy tính – Ngô diên tập , Nhà xuất bản khoa học – kĩ thuật
[4] Trang web: /> />Ngoài ra còn có một số tài liệu khác .

×