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.
CHƯƠNG 1. TỔNG QUAN 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 loại linh kiện sử dụng trong bài.
1.2.1. 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.2. Giới thiệu về ULN2803
Vi mạch ULN 2803 để khuếch đại dòng tải của các đầu ra từ modul cơ sở để cấp
cho các rơle,ULN2803 là một bộ đệm khá đặc biệt,nó chứa bên trong 8 bộ khuếch
đại darlington với các điôt bảo vệ đã được tích hợp sẵn cho các trường hợp tải cảm
kháng.Các bộ khuếch đại darlington này được điều khiển trực tiếp bởi các tín hiệu
logic TTL và có thể cung cấp 1 dòng tải ở đầu ra đến 500mA.Các đầu ra đều là đầu
ra collector hở.
1.2.3. Vi mạch ADC 0804
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ì thời gian chuyển đổi phụ thuộcvà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
khác của ADC0804 có chức năng như sau:
CS (Chip select)
Chân số 1, là chân chọn Chip, đầu vào tích cực mức thấp được sử dụng để
kíchhoạt chip ADC0804. Để truy cập ADC0804 thì chân này phải ở mức thấp.
RD (Read)
Chân số 2, là một tín hiệu vào, tích cực ở mức thấp. Các bộ chuyển đổi đầu
vàotươ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 (DB0 – DB7).
WR (Write)
Chân số 3, đây là chân vào tích cực mức thấp được dùng để báo cho ADC
biết bắt đầu quá trình chuyển đổi. Nếu CS = 0 khi WR tạo ra từ xung cao
xuốngxung thấp thì bộ ADC0804 bắt đầu quá trình chuyển đổi giá trị đầu vào tương
tự
Vin về số nhị phân 8 bit. Khi việc chuyển đổi hoàn tất thì chân INTR được ADChạ
xuống thấp.
CLK IN và CLK R
CLK IN (chân số 4), là chân vào nối tới đồng hồ ngoài được sử dụng để tạo
thờigian. Tuy nhiên ADC0804 cũng có một bộ tạo xung đồng hồ riêng. Để
dùngđồng hồ riêng thì các chân CLK IN và CLK R (chân số 19) được nối với một
tụđiện và một điện trở (như hình vẽ).
Ngắt INTR (Interupt)
Chân số 5, là chân ra tích cực mức thấp. Bình thường chân này ở trạng thái
caovà 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
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.
Vin (+) và Vin (-)
Chân số 6 và chân số 7, đây là 2 đầu vào tương tự vi sai, trong đó Vin = Vin
(+)Vin (-). Thông thường Vin (-) được nối tới đất và Vin (+) được dùng làm đầuvào
tương tự và sẽ được chuyển đổi về dạng số.
Vcc
Chân số 20, là chân nguồn nuôi +5V. Chân này còn được dùng làm điện áp
thamchiếu khi đầu vào Vref/2 để hở.
Vref/2
Chân số 9, là chân điện áp đầu vào được dùng làm điện áp tham chiếu. Nếu
chânnày hở thì điện áp đầu vào tương tự cho ADC0804 nằm trong dải 0 - +5V.
Tuynhiên, có nhiều ứng dụng mà đầu vào tương tự áp đến Vin khác với dải 0 -
+5V.Chân Vref/2 được dùng để thực hiện các điện áp đầu ra khác 0 - +5V.
D0 - D7
D0 - D7, chân số 18 – 11, là các chân ra dữ liệu số (D7 là bit cao nhất 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 truy cập khi chân CS = 0 và chân RD đưa xuống mức thấp
CHƯƠNG 2. XÂY DỰNG MODUL GHÉP NỐI
2.1. Nguyên lý hệ thống và phần cứng
2.1.1. Sơ đồ cấp liệu
Be chua
nguyen lieu
bom 3
bom 2
bom 1
2.1.2. Nguyên lý
Mức nguyên liệu trong bể chứa sẽ được sensor đo mức cập nhật về đưa vào
hệ thống máy tính
Khi bể không còn nguyên liệu cũ thì khi hệ thống hoạt động nguyên liệu sẽ
được cấp theo thứ tự sau
+ Bơm 1 hoạt động cấp nguyên liệu 1 khi nào đủ thì dừng bơm 1
+ Bật bơm 2 lên và tiến hành cấp nguyên liệu 2, khi nào cấp đủ thì dừng bơm
+ Bật bơm số 3 cấp nốt phần nguyên liệu còn lại.
Tỷ lệ và thể tích của các nguyên liệu cần cấp có thể được đặt bởi người vận
hành.
Để đo mức chất lỏng trong bình chứa ta dùng loadceel.
2.1.3. Sơ đồ phần cứng ghép nối cổng LPT
T G D LT G T TT G D K
J 1
L P T
1
2
3
4
5
6
7
8
9
1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
D K 1
D K 4
D K 3
D K 2
D K 6
D K 5
D L 1
D K 8
D K 7
D L 4
D L 3
D L 2
U 1
A D C 0 8 0 4
+ I N
6
- I N
7
V R E F / 2
9
D B 7
1 1
D B 6
1 2
D B 5
1 3
D B 4
1 4
D B 3
1 5
D B 2
1 6
D B 1
1 7
D B 0
1 8
C L K R
1 9
V C C / V R E F
2 0
C L K I N
4
I N T R
5
C S
1
R D
2
W R
3
U 2
7 4 H C 2 5 7
1 A
2
1 Y
4
2 Y
7
3 Y
9
4 Y
1 2
2 A
5
3 A
1 1
4 A
1 4
1 B
3
2 B
6
3 B
1 0
4 B
1 3
O E
1 5
S E L
1
U 3
U L N 2 8 0 3
C O M
1 0
I N 1
1
I N 2
2
I N 3
3
I N 4
4
I N 5
5
I N 6
6
I N 7
7
I N 8
8
O U T 1
1 8
O U T 2
1 7
O U T 3
1 6
O U T 4
1 5
O U T 5
1 4
O U T 6
1 3
O U T 7
1 2
O U T 8
1 1
D 1
D 2
D 3
D 4
D 5
D 6
D 7
D 8
D L 1
D L 2
D L 3
D L 4
D K 4
D K 5
D K 6
D 3
D 5
D 7
D 2
D 4
D 6
D 8
D 1
T u C B m u c
D K 1
D K 2
D K 3
R 3
R 2
R 1
V C C
R 1C 1
2.1.4. Mạch tạo nguồn nuôi cung cấp cho các linh kiện
C 8
G N D
+ 8 V
+ 5 V
- 8 V
- +
D 1
D I O D E B R I D G E _ 4 2 1 3
1
4
3
2
+ 1 0 V ~
- 1 0 V ~
U 5
L M 7 8 0 8 / T O
V I N
1
V O U T
2
U 6
L M 7 9 0 8 / T O 3
V I N
3
V O U T
2
U 7
L M 7 8 0 5 / T O
V I N
1
V O U T
2
C 2
C 3
C 4
C 5
C 6
C 7
2.2. Thi công phần mềm
2.2.1. Thuật toán điều khiển
BAT DAU
KIEM
TRA BÐ
BAT BOM 1
KIEM
TRA 1
TAT BOM 1
BAT BOM 2
KIEM
TRA 2
TAT BOM 2
BAT BOM 3
KIEM
TRA 3
DUNG
Ð
Ð
Ð
Ð
S
S
S
S
+ Kiểm tra ban đầu: Kiểm tra xem trong đó có còn nguyên liệu cũ không. Nếu
không còn thì bật bơm 1
+ Kiểm tra 1: Kiểm tra xem bơm 1 đã bơm đủ nguyên liệu chưa
+ Kiểm tra 2: Kiểm tra xem bơm 2 đã bơm đủ nguyên liệu chưa
+ Kiểm tra 3: Kiểm tra xem bơm 2 đã bơm đủ nguyên liệu chưa
2.2.2. Giao diện điều khiển.
2.2.3. Phần mềm
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)
Chương trình
Dim A, B, C, D, E, I As Integer
Dim NL1, NL2, NL3 As Integer
Private Sub Command1_Click()
A = 1 'DAT BIT KHOI DONG
NL1 = Val(Text1.Text)
NL2 = Val(Text2.Text)
NL3 = Val(Text3.Text)
End Sub
Private Sub Command2_Click()
A = 0 'TAT BIT KHOI DONG
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Command4_Click()
MsgBox " CHUONG TRINH DIEU KHIEN CAP LIEU LOAI 3 NGUYEN
LIEU"
End Sub
Private Sub Command5_Click()
Outportb &H378, 2
Do While E <= 10
E = E + 1
Loop
Outportb &H378, 3 'DUA RD LEN CAO
Outportb &H378, 0 'HIGT TO LOW
B = Inportb(&H379) 'LAY 4 BIT CAO
Outportb &H378, 4
C = Inportb(&H379) 'LAY 4 BIT THAP
D = B / 16 + C 'PHUC HOI DL
If D > 0 Then
MsgBox "TRONG BE CHUA CON NGUYEN LIEU CU"
End If
E = 1
End Sub
Private Sub Form_Load()
Timer1.Interval = 1
End Sub
Private Sub Timer1_Timer()
If A = 1 Then
Outportb &H378, 2
Do While I <= 10
I = I + 1
Loop
Outportb &H378, 3 'DUA RD LEN CAO
Outportb &H378, 0 'HIGT TO LOW
B = Inportb(&H379) 'LAY 4 BIT CAO
Outportb &H378, 4
C = Inportb(&H379) 'LAY 4 BIT THAP
D = B / 16 + C 'PHUC HOI DL
Call BATBOM
End If
End Sub
Private Sub BATBOM()
Outportb &H378, 128
If D >= NL1 Then
Outportb &H378, 64
If D >= NL1 + NL2 Then
Outportb &H378, 32
If D >= NL1 + NL2 + NL3 Then
End
End Sub
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.
Ti liu tham kho
[1] Bài giảng môn điều khiển sản xuất và tích hợp máy tinh - Thầy lưu hoàng minh ,
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 .