Trường: Đại học công nghiệp Hà Nội Khoa: Điện Tử Lớp: LTCD-DH ĐT1K3 BÀI TẬP LỚN Môn: Đo lường và điều khiển máy tính sử dụng cổng song song sử dụng LED 7 đoạn.. Sơ đồ cấu tạo cổng song s
Trang 1Trường: Đại học công nghiệp Hà Nội Khoa: Điện Tử
Lớp: LTCD-DH ĐT1K3
BÀI TẬP LỚN Môn: Đo lường và điều khiển máy tính
sử dụng cổng song song sử dụng LED 7 đoạn.
Nhóm sinh viên:
1 Nguyễn Tuấn Sơn
2 Nguyễn Hoàng Giang
3 Nguyễn Thu Thùy
Trang 2Lời nói đầu
Trong thời kỳ công nghiệp hóa ngày càng phát triển của đất nước ta.Và nhu cầu của con người ngày càng được cải thiện và nâng cao, khi đó việc áp dụng nền công nghiệp hóa, hiện đại hóa vào sản xuất là một điều rất cần thiết và là cả một vấn đề để chúng ta quan tâm Phải nói rằng nền công nghiệp hóa, hiện đại hóa đã làm cho con người đỡ vất vả hơn và tạo điều kiện tốt để nước ta thúc đẩy nền kinh tế thế giới Và việc áp dụng vào công cuộc này là các kỹ thuât lập trình, các công nghệ kỹ thuật tiên tiến
Trong quá trình theo hoc tại trường chúng em đã được hướng dẫn học một số ngôn ngữ lập trình, vi điều khiển, vi xử lý, ghep nối với máy tính thông qua ngôn ngữ lập trình: Visual Basic 6.0, C Sau một thời gian nghiên cứu và học tập dưới sự hướng
dẫn nhiệt tình của cô giáo Vũ Thị Thu Hương, chúng em đã thực tập làm một đề tài
nhỏ ứng dung Đề tài “Thiết kế mô hình đồng hồ điện tử sử dụng cổng song song, hiển thị bằng led 7 đoạn” Do quá trình nghiên cứu con nhiều hạn chế nên đề tài
thực hiện chưa được hoan thiện, mong được sự đóng góp ý kiến của thầy cô giáo và các bạn
Chúng em xin chân thánh cảm ơn!
Trang 3PHẦN I: CƠ SỞ LÝ THUYẾT
I Cổng song song ( LPT )
1 Sơ đồ cấu tạo cổng song song
+ Chức năng các chân Của cổng LPT
Chân Ký hiệu Chiều tín
hiệu
Mô tả
1 /STROBE Ra Tín hiệu thông báo có 1 byte
săn sang được in 2-9 D0-D7 Ra Các đường dữ liệu
10 /ACK Vào Tín hiệu xác nhận đã nhận được
1byte của máy in với máy tính
11 BUSY Vào Tín hiệu báo bận của máy in
12 PE Vào Tín hiệu báo hết giấy của máy
in
13 SLCT Vào Tín hiệu báo trạng thái sẵn sang
của máy in
14 /AF Ra Tín hiệu yêu cầu nạp một dòng
mới của máy tính đối với máy in
15 /ERROR Vào Tín hiệu thông báo lỗi của máy
in với máy tính
16 INIT Ra Tín hiệu khởi động lại của máy
tính đối với máy in
17 SLCTIN Ra Tín hiệu chọn máy in của máy
tính 18-25 GND Tín hiệu nối mass
Trang 4- Cổng song song đựơc thiết kế đầu tiên bởi công ty Cẻntoníc nhằm mục đích ghép nối máy tính với máy in Sau nay nó được tiêu chuẩn hoá và có mặt ở hầu hết các máy tính
- Cấu trúc cổng song song gồm đường dữ liệu, 4 đuờng dẫn điều khiển và 5 đường dẫn trạng thái Các đường dẫn này đều thích mức TTL ( 0;5V ) do vậy rất thuận tiện, đơn giản cho việc ghép nối vì nhiều linh kiện, mạch điện tương thích với mức logic trên
- Khoảng các truyền dẫn bằng công song song bi hạn chế nhiều điện dung ký sinh ( khoảng 2m ) Nếu muốn tuyền đi xa cần phải có các bộ đệm, các phương pháp làm giảm điện dung kí sinh
2 Các thanh ghi của cổng song song
Cổng song song có 3 thanh ghi chính là thanh ghi cơ sở, thanh ghi trạng thái và thanh ghi điều khiển, tuỳ theo cổng song song trang bị trên máy tính mà các thanh ghi này có địa chỉ khác nhau :
Bảng địa chỉ các cổng trên PC:
Cổng
song song
Địa chỉ thanh ghi thanh ghi dữ liệu
Địa chỉ thanh ghi trạng thái
Địa chỉ thanh ghi điều khiển
Định dạng các thanh ghi:
a Thanh ghi dữ liệu (chiều ra):
Tín hiệu máy
in
D7 D6 D5 D4 D3 D2 D1 D0
b Thanh ghi trạng thái máy in (chỉ đọc).
Tín hiệu
máy in
BUSY /ACK PAPER
EMPTY
SELECT /ERROR /IRQ x x
Số chân
cắm
Trang 5-c. Thanh ghi điều khiển
Tín
hiệu
máy
in
x x DIR IRQ
Enable
/SELECTIN /INIT /AUTOFEED /STROBE
Số
chân
cắm
IRQ Enable: Yêu cầu ngắt cứng; 1: cho phép, 0: không cho phép
Chân BUSY được nối với cổng đảo trước khi đưa vào thanh ghi trạng thái, các bit /SELECTIN, /AUTOFEED và /STR được đưa vào cổng đảo trước khi đưa ra các chân của cổng máy in
Thông thường tốc độ xử lý dữ liệu của các thiết bị ngoại vi như máy in chậm hơn
PC rất nhiều nên các đường /ACK, BUSY và /STR được sử dụng cho kỹ thuật bắt tay Khởi đầu, PC đặt dữ liệu lên bus sau đó kích hoạt đường /STR xuống mức thấp để thông tin cho máy in biết dữ liệu đã ổn định trên bus Khi máy in xử lý xong dữ liệu, nó sẽ trả lại tín hiệu /ACK xuống mức thấp để ghi nhận PC đợi cho đến khi đường BUSY từ máy in xuống thấp (máy in không bận) thì sẽ đưa tiếp dữ liệu lên bus
PHẦN II NỘI DUNG
I- Code chương trình của From 1:
Private Declare Sub Out32 Lib "inpout32.dll" (ByVal PortAddress As Integer, ByVal Value As Integer)
Private Declare Function Inp32 Lib "inpout32.dll" (ByVal PortAddress As Integer) As Integer
Private Sub Command1_Click() ’hien thi theo phut giay
If Timer1.Enabled = False Then
Timer1.Enabled = True
Timer2.Enabled = False
Timer3.Enabled = False
Timer4.Enabled = False
End If
End Sub
Private Sub Command2_Click() ‘hien thi theo gio phut
If Timer2.Enabled = False Then
Timer2.Enabled = True
Timer1.Enabled = False
Timer3.Enabled = False
Timer4.Enabled = False
End If
End Sub
Private Sub Command3_Click() ‘hien thi theo thang ngay
Trang 6If Timer3.Enabled = False Then
Timer3.Enabled = True
Timer1.Enabled = False
Timer2.Enabled = False
Timer4.Enabled = False
End If
End Sub
Private Sub Command4_Click() ‘hien thi theo nam thang
If Timer4.Enabled = False Then
Timer4.Enabled = True
Timer1.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
End If
End Sub
Private Sub Command5_Click() ‘thoat va hien thi tat ca
Out32 &H37A, &H4
Out32 &H378, &H0
End
End Sub
Private Sub Command6_Click() ‘hien Form2 de cai dat gio
Form2.Show
End Sub
Private Sub Timer5_Timer() ‘hien thi thoi gian may tinh
Label1.Caption = Format(Now, "hh:nn:ss")
Label2.Caption = Format(Now, "dd/mm/yyyy")
End Sub
Private Sub Timer1_Timer() ‘ lay phut giay tu may tinh
Dim phut As Integer
Dim giay As Integer
phut = Format(Now, "nn")
giay = Format(Now, "ss")
Call truyen(Val(phut), Val(giay))
End Sub
Private Sub Timer2_Timer() ‘lay gio phut tu may tinh
Dim gio As Integer
Dim phut As Integer
phut = Format(Now, "nn")
gio = Format(Now, "hh")
Trang 7Call truyen(Val(gio), Val(phut))
End Sub
Private Sub Timer3_Timer() ‘lay thang ngay tu may tinh
Dim thang As Integer
Dim ngay As Integer
thang = Format(Now, "mm")
ngay = Format(Now, "dd")
Call truyen(Val(thang), Val(ngay))
End Sub
Private Sub Timer4_Timer() ‘lay nam thang tu may tinh
Dim nam4, nam2, chuc, dv As Integer
Dim thang As Integer
thang = Format(Now, "mm")
nam4 = Format(Now, "yyyy")
chuc = ((nam4 Mod 1000) Mod 100) \ 10
dv = ((nam4 Mod 1000) Mod 100) Mod 10
nam2 = chuc * 10 + dv
Call truyen(Val(nam2), Val(thang))
End Sub
Sub truyen(n As Integer, m As Integer)
Dim Mang As Variant
Dim led1, led2, led3, led4, i As Integer
Mang = Array(&H3, &H9F, &H25, &HD, &H99, &H49, &H41, &H1F, &H1,
&H9)
For i = 0 To 200
i = i + 1
led1 = n \ 10
led2 = n Mod 10
led3 = m \ 10
led4 = m Mod 10
Out32 &H37A, &H3
Out32 &H378, Mang(led1)
Call delay(240000)
Out32 &H37A, &HF
Out32 &H378, Mang(led2)
Call delay(240000)
Out32 &H37A, &H9
Out32 &H378, Mang(led3)
Call delay(240000)
Trang 8Out32 &H37A, &HA
Out32 &H378, Mang(led4)
Call delay(240000)
Next
End Sub
Sub delay(y)
Dim x As Long
For x = 0 To y
x = x + 1
Next
End Sub
II- Cốt chương trình Form 2:
Private Sub Command1_Click()
Dim DatThoigian As String 'HAM DAT THOI GIAN VA NGAY
Dim DatNgay As String
Time = TimeSerial(Val(Text1.Text), Val(Text2.Text), Val(Text3.Text)) 'Time = DatThoigian
Date = DateSerial(Val(Text6.Text), Val(Text5.Text), Val(Text4.Text)) ' Date = DatNgay
Timer1.Enabled = True
Form2.Hide
End Sub
Private Sub Command2_Click()
Form2.Hide
End Sub
Private Sub Form_Click()
Timer1.Enabled = True
End Sub
Private Sub Form_Load()
Timer1.Enabled = True
End Sub
Private Sub text1_Click()
Timer1.Enabled = False
End Sub
Trang 9Private Sub Text2_click()
Timer1.Enabled = False
End Sub
Private Sub Text3_click()
Timer1.Enabled = False
End Sub
Private Sub Text4_click()
Timer1.Enabled = False
End Sub
Private Sub Text5_Click()
Timer1.Enabled = False
End Sub
Private Sub Text6_Click()
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer() 'DAT THOI GIAN CHO TEXTBOX
Text1.Text = Hour(Time)
Text2.Text = Minute(Time)
Text3.Text = Second(Time)
Text4.Text = Day(Date)
Text5.Text = Month(Date)
Text6.Text = Year(Date)
End Sub
Trang 10III- Sơ đồ nguyên lý
Q 1
c 8 2 8
R 4
1 k
L 1
R 1
1 k
Q 3
c 8 2 8
L 4
R 2
1 k
U 2
7 4 H C 5 7 3
LE O Q Q Q Q Q Q Q Q
L R 2
R 3
1 k
Q 4
c 8 2 8
U 1
l p t
1 2 3 4 5 6 7 8 9 1 11 12 1 1 1 1 1 1 1 2 2 2 2 2 2
Q 2
c 8 2 8
L 2
L 3
0
U 3
l e d
1 2 3 4 5 6 7 8 9 10 11 1
0