Tải bản đầy đủ (.docx) (12 trang)

ghép nối với PC dùng LPT để điều khiển và giám sát đèn giao thông ở ngã tư cầu đất

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 (417.85 KB, 12 trang )

LỜI NÓI ĐẦU
Trong mấy chục năm qua , khoa học máy tính và xử lý thông tin có những
bước tiến vược bậc và ngày càng có những đóng góp to lớn vào cuộc cách mạng
khoa học kỹ thuật hiện đại. Đặc biệt sự ra đời và phát triển nhanh chóng của kỹ
thuật số làm cho ngành điện tử trở nên phong phú và đa dạng hơn. Nó góp phần rất
lớn trong việc đưa kỹ thuật hiện đại thâm nhập rộng rãi vào mọi lĩnh vực của hoạt
động sản xuất ,kinh tế và đời sống xã hội. Từ những hệ thống máy tính lớn đến
nhứng hệ thống máy tính cá nhân , từ những việc điều khiển các máy công nghiệp
đến các thiết bị phục vụ đời sống hằng ngày của con người. Với mong muốn tìm
hiểu , ứng dụng những tiến bộ của khoa học kỹ thuật hiện đại vào phục vụ sản xuất
và phục vụ đời sống con người
Với sự giúp đỡ của các thầy cô giáo trong bộ môn em đã hoàn thành thiết kế
của mình. Tuy nhiên do kiến thức còn hạn chế nên không tránh khỏi sai sót mong
quý thầy cô chỉ bảo để em có thể hoàn thiện thiết kế của mình hơn. Em xin chân
thành cảm ơn.
Sau đây em xin trình bày chi tiết về thiết kế của mình.
CHƯƠNG 1. TỔNG QUAN VỀ CÔNG NGHỆ.
1 Giới thiệu về chuẩn giao tiếp LPT
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.
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.
3 Địa chỉ các cổn trên máy tính:
2 Tìm hiểu về IC8255
Intel 8255A là một thiết bị lập trình I / O ,mục đích được thiết kế để sử
dụng với tất cả các bộ vi xử lý Intel và hầu hết các thiết bị khác. Nó có 24
I / O chân có thể được lập trình chia làm 2 nhóm 12 chân và được sử dụng
trong 3 chế độ chính hoạt động.
Trong chế độ 0, mỗi nhóm 12 I / O chân có thể được lập trình trong
nhóm 4 và 8 chân là đầu vào hoặc đầu ra.
Trong chế độ 1, mỗi nhóm có thể được lập trình để có 8 dòng đầu vào
hay đầu ra,3 trong 4 chân còn lại được sử dụng để điều khiển tín hiệu bắt

tay và ngắt.
Chế độ 2 là một cấu hình bus hai chiều strobed.
IC 8255 được thiết kế để thực hiện một loạt các chức năng giao diện trong
một môi trường máy tính. Nó không được thiết kế ban đầu để được kết
nối với Z80.Intel chế tạo nó cho các bộ vi xử lý 8080.
Chức năng các chân như sau:
D0 - D7 Đây là những dữ liệu đầu vào / đầu ra cho thiết bị. Tất cả các thông tin
đọc và ghi vào 8255 xảy ra thông qua các 8 dòng dữ liệu.
2. CS (Chip Select Input). Nếu mức 0 hợp tích cực, bộ vi xử lý có thể đọc và ghi
vào 8255.
3. RD (Đọc đầu vào): Bất cứ khi nào dòng đầu vào này là 0 và đầu vào RD là mức
0, kết quả đầu ra dữ liệu 8255 được kích hoạt lên bus dữ liệu hệ thống.
4. WR (Viết vào) : khi nào dòng đầu vào này là mức 0 và đầu vào CS mức 0, dữ
liệu được ghi vào 8255 từ bus dữ liệu hệ thống
5. A0 - A1 (Đầu vào Địa chỉ) :Sự kết hợp 1 cách hợp lý của hai dòng đầu vào xác
định dữ liệu bên trong 8255 được ghi hoặc đọc
6. RESET: 8255 được đặt vào trạng thái thiết lập lại, nếu dòng đầu vào này mức 1.
Tất cả các cổng ngoại vi được thiết lập để chế độ đầu vào.
7. PA0 - PA7, PB0 - PB7, PC0 - PC7 : Những dòng tín hiệu được sử dụng như 8-
bit I / O port.
Chúng có thể được kết nối với các thiết bị ngoại vi. IC 8255 có ba cái 8-bit I / O
ports và mỗi port có thể được kết nối với các thiết bị bên ngoài. Những dòng này
được dán nhãn PA0-PA7, PB0-PB7, và PC0-PC7.
Các nhóm các tín hiệu được chia thành ba cổng I / O khác nhau có nhãn:
+ port A (PA)
+ port B (PB)
+ port C (PC).
Sơ đồ khối của nó ( block diagram):
Gồm 2 nhóm đk, nhóm A dán nhãn và nhóm B xác định sự hđ của ba nhóm cổng
I / O .

Có những chế độ khác nhau điều hành cho 8255 và các chế độ này phải được xác
định bởi bằng chương trình trong CPU hoặc từ điều khiển đến thiết bị 8255.
-Cổng C bao gồm hai cổng 4 bit. Một trong những nhóm 4 bit được kết hợp với
nhóm A( trên) và nhóm 4 bit còn lại kết hợp với các tín hiệu điều khiển thiết bị
nhóm B (phía dưới).
-Các khối logic cuối cùng là đọc / ghi điều khiển logic và bộ đệm bus dữ liệu.
Các khối này cung cấp giao diện giữa Z80 và 8255.
-Dữ liệu bus đệm bộ đệm dữ liệu I / O đến / từ các bus dữ liệu Z80. Đọc / ghi các
mức logic điều khiển các dữ liệu đến và đi từ các thanh ghi nội bộ với thời gian
tương dối chính xác.Dòng bên trong được kích hoạt phụ thuộc vào hoạt động của
Z80,loại chức năng là I / O đã đọc hoặc I / O ghi.
Tiếp theo là thanh ghi ĐK từ nhớ:
Trước khi thảo luận về các mô tả chi tiết về cách sử dụng của IC8255 trong MZ-
700, các định nghĩa bit của 8255 thanh ghi điều khiển(cổng $ E003 của MZ-700).
+Nếu bit 7 của Tghi là 1 thì 8255 sẽ được cấu hình.
Chế độ định nghĩa của TG ĐK 8255
để cấu hình 8255.
+Nếu bit 7 là 0 sau đó mỗi bit của cổng C có thể được thiết lập hoặc thiết lập lại.
CHƯƠNG 2. Xây dựng mạch phần cứng
1.Module nguồn nuôi
- +
+ 5 V
T 8
1 5
6
4 8
J 5
C O N 2
1
2

U 3 2
L M 7 8 0 5 / T O
V I N
1
G N D
3
V O U T
2
C 2 3
C A P
C 2 4
C A P
2 Module ghép nối giữa LPT và 8255
U 3 3
8 2 5 5
D 0
3 4
D 1
3 3
D 2
3 2
D 3
3 1
D 4
3 0
D 5
2 9
D 6
2 8
D 7

2 7
P A 0
4
P A 1
3
P A 2
2
P A 3
1
P A 4
4 0
P A 5
3 9
P A 6
3 8
P A 7
3 7
P B 0
1 8
P B 1
1 9
P B 2
2 0
P B 3
2 1
P B 4
2 2
P B 5
2 3
P B 6

2 4
P B 7
2 5
P C 0
1 4
P C 1
1 5
P C 2
1 6
P C 3
1 7
P C 4
1 3
P C 5
1 2
P C 6
1 1
P C 7
1 0
R D
5
W R
3 6
A 0
9
A 1
8
R E S E T
3 5
C S

6
. . . . .
L P T
U 3 4
L P T
D 0
d 7
1 7
1 6
1 4
U 3 5
N O T
12
3 Toàn bộ mạch phần cứng
0
I S O 3
O P T O I S O L A T O R
21
54
I S O 4
O P T O I S O L A T O R
21
54
I S O 5
O P T O I S O L A T O R
21
54
I S O 6
O P T O I S O L A T O R
21

54
+5V
HI
I S O 7
O P T O I S O L A T O R
21
54
U 3 3
8 2 5 5
D 0
3 4
D 1
3 3
D 2
3 2
D 3
3 1
D 4
3 0
D 5
2 9
D 6
2 8
D 7
2 7
P A 0
4
P A 1
3
P A 2

2
P A 3
1
P A 4
4 0
P A 5
3 9
P A 6
3 8
P A 7
3 7
P B 0
1 8
P B 1
1 9
P B 2
2 0
P B 3
2 1
P B 4
2 2
P B 5
2 3
P B 6
2 4
P B 7
2 5
P C 0
1 4
P C 1

1 5
P C 2
1 6
P C 3
1 7
P C 4
1 3
P C 5
1 2
P C 6
1 1
P C 7
1 0
R D
5
W R
3 6
A 0
9
A 1
8
R E S E T
3 5
C S
6
I S O 2
O P T O I S O L A T O R
21
54
X a n h 1

D o 1
V a n g 1
x a n h 2
d o 2
. . . . .
V a n g 2
L P T
U 3 4
L P T
D 0
d 7
1 7
1 6
1 4
U 3 5
N O T
12
CHƯƠNG 3. Xây dựng phần mềm trên visual basic
1.Thiết kế giao diện trên VISUAL BASIC
2.Viết chương trình
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)
Phần mềm thực hiện
Dim dl(0 To 6) As Integer
Dim a(0 To 6) As Integer
Dim b(0 To 6) As Integer
Dim c(0 To 6) As Integer

Dim d(0 To 6) As Integer
Dim e1(0 To 6) As Integer
Dim e2(0 To 6) As Integer
Dim i, e As Integer
Private Sub Command1_Click()
For i = 1 To 6
Outportb &H378, dl(i)
a(i) = dl(i) + 8
Outportb& H378, a(i)
Do While e <= 10
e = e + 1
Loop
b(i) = dl(i) + 16
Outportb& H378, b(i)
e1(i) = Inportb(&H379)
c(i) = dl(i) + 32
Outportb& H378, c(i)
e2(i) = Inportb(&H379)
d(i) = e1(i) / 16 + e2(i)
Next i
Text1.Text = Str(d(1))
Text2.Text = Str(d(2))
Text3.Text = Str(d(3))
Text4.Text = Str(d(4))
Text5.Text = Str(d(5))
Text6.Text = Str(d(6))
End Sub
Private Sub Command2_Click()
End
End Sub

Private Sub Command3_Click()
MsgBox "Dieu khien den giao thong o nga tu cau dat"
End Sub
Private Sub Form_Load()
dl(1) = 0
dl(2) = 1
dl(3) = 2
dl(4) = 3
dl(5) = 4
dl(6) = 5
End Sub
2.Nêu khả năng ứng dụng của Module
Module này được dùng để điều khiển đèn giao thông, điều khiển sự sang tắt của hệ
thống đèn trong siêu thị hay hệ thống đèn cao áp chiếu sáng hoặc có thể điều khiển
được cả động cơ một chiều …. Khả năng ứng dụng của modul là rất cao và nhiều
trong cuộc sống
Kết lu:n
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.

×