LỜI MỞ ĐẦU
Cân xe cũng như việc cân những khối lượng lớn là một nhu cầu cần thiết cho
các nhà máy sản xuất muốn biết khối lượng hàng hoá, sản phẩm hay nguyên vật
liệu, và cả cho những lĩnh vực khác như bến cảng, trạm cân xe phát hiện quá tải của
cảnh sát giao thông . Tuy đã được sử dụng rộng rãi ở Việt Nam nhưng hầu hết các
hệ thống cân xe đều lắp ráp từ các thiết bị có sẵn từ nước ngoài như loadcell, bộ
hiển thị (đầu cân) . Phần được chế tạo ở đây có thể là nền cầu cân, hộp nối loadcell
( Junction Box) và viết chương trình quản lý trạm cân .
Đề tài “ Thiết kế trạm cân xe” này bao gồm việc dùng vi xử lý đọc A/D của
tín hiệu sau khi đã khuếch đại từ loadcell, hiển thị kết quả cân, truyền dữ liệu sang
máy tính, thực hiện một số chức năng như đầu cân thực tế, viết chương trình quản
lý trạm cân và cả việc thực hiện một mô hình cân xe tải. Ngoài ra còn thực hiện
Card A/D gắn vào rãnh cắm máy tính ứng dụng trong hệ thống cân sử dụng cho
khoảng cách gần và tính tiền tự động bằng chương trình máy tính. Đây chỉ là phần
ứng dụng các lý thuyết đã học để giải quyết một vấn đề tương đối hoàn chỉnh có
tron g thực tế.
MỤC LỤC
Trang
Lời mở đầu 2
Phần một : Tổng quan về hệ thống cân điện tử . 4
Chương I : Hệ thống cân sử dụng loadcell và ứng dụng . 4
Chương II: Sơ lược các phương pháp và cảm biến được 6
dùng trong việc đo khối lượng.
I) Các phương pháp đo khối lượng. 6
II) Giới thiệu về loadcell. 8
Chương III: Hệ thống cân xe. 17
I) Cầu cân. 17
II) Cách bố trí loadcell và trạm nối dây. 18
III) Thiết bị chỉ thị khối lượng. 22
IV) Quản lý trạm cân dùng máy tính. 23
Chương IV: Giới thiệu một bộ hiển thị khối lượng cụ thể .
và cách cân chỉnh cho đầu cân thực tế. 24
Phần hai: Lý thuyết ứng dụng khi thiết kế mạch. 28
I) Phương pháp biến đổi AD. 28
II) Bộ khuếch đại tín hiệu. 30
III) Max 232 và họ IC biến đổi từ TTL RS232 33
IV) Cách thức giao tiếp với máy tính có sử dụng
trong luận văn. 36
V) Ngôn ngữ sử dụng trong giao tiếp máy tính
Phần ba: Phần thiết kế 42
Chương V) Dùng vi xử lý thực hiện công việc của đầu cân
thực tế.
I) Giới thiệu AT 89C51 và cách kết nối đã sử dụng
trong mạch. 42
II) Sử dụng bộ biến đổi AD 12 bit ICL7109 trong
việc thiết kế 47
IV) Giải thích chương trình viết cho vi xử lý
Và lưu đồ giải thuật 77
V) Chương trình cân viết cho máy tính. 88
Phần bốn Phát triển luận văn
Chương VII Kết quả thi công và hướng phát triển của đề tài 90
Phần phụ lục
I) Giới thiệu các IC sử dụng trong mạch.
II) Tài liệu tham khảo.
95 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 4609 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Thiết kế trạm cân xe, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
mức cao thì ADC ở chế độ tắt tay. Trong thiết kế, chân này được nối
mass để giao tiếp song song với máy tính hay vi xử lý.
22) OSC IN : Ngõ vào bộ dao động.
23)OSC OUT : Ngõ ra của bộ dao dộng.
Hai chân này đã được nối đến bộ dao động thạch anh 3,58MHz.
24)OSC SEL : Dùng để lựa chọn cấu hình cho bộ dao động. Nếu ngõ vào này ở
mức cao, dao động RC được lựa chọn, xung clock sẽ cùng pha và chu kỳ nhiệm vụ
như BUF OSC OUT. Nếu ngõ vào ở mức độ thấp, bộ dao động thạch anh nối ở
OSC IN, OSC OUT sẽ được chọn lựa. Khi đó tần số xung clock sẽ là 1/58 tần số
của BUF OSC OUT.
Do trong mạch sử dụng dao động thạch anh nên chân này được nối mass.
25)BUF OSC OUT:Ngõ ra bộ đệm dao động.Trong mạch không sử dụng nên chân
này được để trống .
26)RUN/HOLD : Nếu ngõ vào này ở mức cao, việc chuyển đổi liên tục được thực
hiện sau mỗi 8192 xung Clock. Nếu ở mức thấp việc chuyển đổi sẽ dừng trong chu
Thieát keá traïm caân xe
Trang 58
kỳ Auto Zero 7 xung Clock trước khi quá trình tích phân kế tiếp xảy ra.Ở đây chân
này được nối vào một Port bit để khi cần điều khiển việc đọc AD thì chỉ việc xuất
ra mức cao ở chân này.Thực hiện như vậy thì AD chỉ biến đổi được 7,5 lần trong
một giây ,tuy nhiên trong hệ thống cân thì tốc độ biến đổi như thế là có thể chấp
nhận được.
27)SEND:Ngõ vào, được dùng trong chế độ bắt tay để chỉ khả năng của thiết bị bên
ngoài nhận dữ liệu.Ở đây do không sử dụng chế độ này nên được nối lên +5 Volt.
28)V- :Nguồn âm cho ICL7109, thường là –5V so với mass.
29)REF OUT: Ngõ ra điện áp tham khảo, thường là nhỏ hơn so với V+ là 2,8
Volt.Ở đây không sử dụng chân này mà dùng nguồn điện áp tham khảo là từ bên
ngoài.
30)BUFFER: Ngõ ra bộ khuếch đại đệm.Trong thiết kế, chân này để trống.
31)AUTO _ZERO: Được nối đến tụ CAZ
32)INTEGRATOR: Ngõ ra bộ tích phân, được nối đến tụ CINT.
33)COMMON: Chân chung của tín hiệu tương tự, chân này cũng được nối mass.
34)INPUT LO: Cực âm của điện áp vào vi sai
35)INPUT HI: Cực dương của điện áp vào vi sai.
Cực âm và dương của tín hiệu vào được nối đến các chân INPUT
LO và INPUT HI tương ứng.
36)REF IN+: Ngõ vào dương của điện áp tham khảo.
37)REF CAP+: Cực dương của tụ tham khảo được nối đến chân này.
38)REF CAP-: Cực âm của tụ tham khảo được nối vào đây.
39)REF IN- : Ngõ vào âm của điện áp tham khảo.Cực âm của điện áp tham khảo
được nối đến đây.
40)V+: Nguồn cung cấp dương cho ICL 7109 thường là +5V so với mass.
b) Tóm tắt những thông số thiết kế:
+ Tần số dao động fOSC =3,58MHz (dùng dao động thạch anh).
Chu kỳ dao động tOX = = 0,2793(s)
1
3,58MHz
Thieát keá traïm caân xe
Trang 59
Tần số xung Clock trong qúa trình lấy tích phân :
f clock= = = 61,724,14(Hz)
suy ra t clock = = 16,2(s).
Chu kỳ lấy tích phân :
tINT = 2048 x t clock = 2048 x 16,2(s) = 33,1776(ms).
Điện áp analog ngõ vào toàn tầm :
VINFS = 2V. (điển hình); ở đây dùng áp vào toàn tầm là 4,096 Volt.
Điện trở của bộ tích phân : RINT = = = 204,8(K)
với IINT=20(A).
Trong mạch sử dụng điện trở 220K.
Tụ điện của bộ tích phân :
CINT = = 0,33(F) nếu VINT =2V.
Giá trị AD đọc được là : 2048 . .
Chu kỳ chuyển đổi : tcyc = tclock x 8192 = 33,1776(ms) x 8192 = 133ms
Số lần chuyển đổi trong 1 giây là : = 7,52 lần.
fosc
58
3,58MHz
58
1
f clock
cvvccclo
VINFS
IINT
4,096(Volt)
20A
tINT . IINT
VINT
VIN
VRFF
1000
133
Thieát keá traïm caân xe
Trang 60
c) Quá trình biến đổi AD :
Một chu kỳ biến đổi AD của ILC 7109 được chia làm 3 pha :
Autozero : Trong giai đoạn này có ba sự kiện xảy ra : Đầu tiên các ngõ vào INLO
và INHI không được nối đến tín hiệu bên ngoài mà nối tắt đến chân COMMON. Kế
đến tụ điện tham khảo được nạp đến điện áp tham khảo. Cuối cùng dòng hồi tiếp
được nối vòng qua hệ thống để nạp tụ CAZ nhằm bù với điện áp lệch trong bộ
khuyếch đại đệm, bộ tích phân và bộ so sánh. nhiễu vốn có của hệ thống sẽ quyết
định độ chính xác của pha này, tuy nhiên độ lệch ngõ vào luôn nhỏ hơn 10V.
Signal integrate : Trong giai đoạn lấy tích phân tín hiệu này các ngõ vào INLO và
INHI được nối đế tín hiệu bên ngoài cần biến đổi, vòng hồi tiếp được hở ra và
không còn nối tắt bên trong. Khi đó bộ biến đổi sẽ lấy tích phân điện áp vi sai giữa
INHI và INLO trong một khoảng thời gian cố định là 2048 xung clock. Điện áp vi
sai này phải nằm trong tầm ngõ vào. Ở cuối pha này cực tín của tín hiệu lấy tích
phân được xác định.
De – Integrate : Pha cuối cùng là lấy lại tích phân hay lấy tích phân điện áp chuẩn.
INLO được nối đến COMMON và INHI được nối đến tụ tham khảo đã nạp điện áp
tham khảo trước đó.Mạch điện trong chip đảm bảo tụ điện được nối đến đúng cực
tính sao cho ngõ ra của bộ tích phân trả về mức Zero (đã được thiết lập trong phase
Auto – Zero) với một độ dốc cố định. Thời gian cần thiết để ngõ ra này trở về zero
thì bằng và tỷ lệ với tín hiệu điện áp vào.
Giản đồ thời gian chuyển đổi( chân RUN/HOLD ở mức cao) như sau:
Thieát keá traïm caân xe
Trang 61
Tổng cộng thời gian chuyển đổi là 8192x tclock ( nếu RUN/HOLD luôn ở mức cao).
Lựa chọn giá trị cho các linh kiện và điện áp :
1) Điện trở tích phân - RINT : Điện trở tích phân phải có giá trị đủ nhỏ để tránh sự
rò rỉ không mong muốn nhưng cũng phải đủ lớn để giữ cho dòng ngõ ra còn trong
vùng tuyến tính. Giá trị tối ưu cho 4,096V toàn phần là 200K và 20K nếu toàn
tầm là 409,6mV. Với giá trị điện áp toàn tầm khác thì điện trở tích phân được tính
theo công thức sau :
RINT = (K)
2) Tụ tích phân - CINT : Tụ điện tích phân được chọn sao cho biên độ áp ra cực đại
của bộ tích phân không bị bão hòa. Với 7,5 lần biến đổi trong 1 giây( tần số xung
clock là 61,72KHz) thì tụ CINT và CAZ nên chọn là 0,15F và 0,33F tương ứng.
Nếu sử dụng tần số xung clock khác thì giá trị tụ CINT được chọn như sau:
CINT =
Điện áp toàn tầm 6V
20A
(2048 x chu kỳ xung clock) x 20A
Biên độ( đỉnh – đỉnh) áp ra bộ tíchphân
Thieát keá traïm caân xe
Trang 62
3) Tụ Auto – Zero CAZ : Tụ Auto – Zero có ảnh hưởng đến nhiễu của hệ thống.
Kích cỡ càng nhỏ và điện dung càng lớn thì sẽ làm giảm nhiễu của toàn bộ hệ
thống. nếu điện áp toàn tầm là 409,6mV thì nhiễu rất quan trọng khi đó tụ CAZ được
chọn gấp 2 lần tụ CINT là tối ưu. Nếu điện áp toàn tầm là 4,096V thì sự hồi phục
quan trọng hơn nhiễu, khi đó chọn tụ CAZ bằng một nửa so với tụ CINT.
4)Tụ tham khảo : Giá trị là 1F cho hầu hết các ứng dụng.
5) Điện áp tham khảo : Tín hiệu analog vào VIN = 2 x VRef sẽ cho ngõ ra 1 giá trị
đầy thang là 4096. Thường với điện áp chuẩn là 2,048 Volt nên dùng cho điện áp
toàn tầm là 4,096 Volt và 204,8mV nếu điện áp toàn tầm là 0,4096Volt. Tuy nhiên
trong nhiều ứng dụng sử dụng AD để đọc giá trị từ cảm biến sẽ có một hệ số tỷ lệ
khác ngoài hệ số giữa điện áp đo và giá trị số biến đổi được. Ví dụ trong hệ thống
cân người thiết kế muốn có điền áp toàn tầm khi đọc vào từ cảm biến là 0,682Volt.
Thay vì lái ngõ vào xuống còn 409,6mV, ngõ vào có thể đo được trực tiếp và khi đó
điện áp chuẩn phải dùng là 0,341Volt. Giá trị điện trở và tụ tích phân được chọn là
33K và 0,15pF. Điều này sẽ tránh thực hiện một mạch chia ở ngõ vào. Một ứng
dụng khác của hệ thống này là việc đọc điểm zero cho non-zero input. Ví dụ độ trôi
nhiệt độ hay đọc trọng lượng bì được trừ ra khi cân. Độ trôi điện áp đó có thể được
đưa vào bằng cách nối điện áp ra của cảm biến giữa common và analog high và điện
áp offset giữa common và analog low, chú ý kỹ cực tính. Tuy nhiên trong hệ thống
xử lý sử dụng ICL 7109, thực hiện chia tỷ lệ hay trừ bì sử dụng phần mềm sẽ hiệu
quả hơn.
Sự ổn định của nguồn cung cấp điện áp tham khảo là một phần quan trọng trong độ
chính xác của toàn bộ hệ thống biến đổi. Độ phân giải của ICL 7109 là 1/4096 hay
244ppm. Vì vậy nếu nguồn tham khảo có hệ số nhiệt là 80ppm/C, sự sai lệch 3 độ
C sẽ gây ra sai số1 bit. Vì vậy nguồn chuẩn cần phải không bị ảnh hưởng bởi nhiệt
độ môi trường xung quanh.
Ngoài ra ICL 7109 còn cung cấp chân REFERENCE OUTPUT(chân 29), có thể
dùng với điện trở để phân chia điện áp cho thích hợp. Khi đó REF OUT(chân 29),
được nối lên REF – (chân 39) và REF + được nối cầu phân áp giữa REF OUT và
V+.
Chú ý rằng chân 29 và chân 39 được nối chung với nhau, có thể chân 39 và 40 bị
Thieát keá traïm caân xe
Trang 63
ngắn mạch ngẫu nhiên, khi đó dòng điện từ nguồn tham khảo có thể làm phá hỏng
thiết bị. Điều này có thể tránh bằng mắc thêm một điện trở mắc nối tiếp vào chân
39.
Các thời gian cần thiết trong chế độ giao tiếp trực tiếp:
Giản đồ thời gian khi sử dụng ICL7109 trong chế độ trực tiếp :
Có nhiều cách kết nối các đường tín hiệu CE/LOAD, HBEN, LBEN để điều khiển
khác nhau, ngoài ra có thể kết nối nhiều AD ICL 7109 với cùng một bộ xử lý để
Mô tả Ký hiệu Min Điển hình Max Đơn vị
Độ rộng byte tBEA 350 220 ns
Thời gian truy cập
dữ liệu từ khi Byte
Enable
tDAB
210
350
ns
Thời gian giữ data
từ khi Byte Enable
tDHB 150 300 ns
Độ rộng tín hiệu
chọn Chip
tCEA 400 260 ns
Thời gian truy cập
dữ liệu từ khi Chip
Enable
tDAC
260
400
ns
Thời gian giữ dữ
liệu từ khi Chip
Enable
tDHC
240
400
ns
Thieát keá traïm caân xe
Trang 64
chuyển đổi ở nhiều kênh riêng biệt. Các cách kết nối và thông tin chi tiết hơn có thể
tìm thấy ở CD ROM Harris – Semiconductor hoặc các website www. Harris. com
hay http: // maxim – ic. com.
III) Thiết kế các khối chức năng cho mạch vi xử lý:
Sơ đồ khối của hệ thống cân dùng vi xử lý như sau :
• Khối xử lý trung tâm là vi điều khiển AT89C51.
• Khối giao tiếp qua cổng COM máy tính theo chuẩn RS-232.
• Khối hiển thị : hiển thị số liệu cân được lên Led 7 đoạn.
• Khối nút nhấn : thực hiện một số chức năng của đầu cân thực tế.
• Máy tính làm nhiệm vụ đọc giá trị cân được từ vi xử lý, lưu trữ số liệu và có thể
in ra máy in phiếu cân ,bảng báo cáo tuỳ yêu cầu cụ thể.
• Bộ nguồn : cung cấp nguồn nuôi các IC, nguồn chuẩn cho AD, nguồn ổn định
cho loadcell. Bộ nguồn và mạch khuếch đại được trình bày ở phần sau. Phần này
chỉ giải thích những khối liên quan đến mạch vi xử lý.
1) Khối xử lý trung tâm : Đây là khối đóng vai trò trung tâm, cung cấp việc điều
khiển theo một chương trình đã nạp cho AT89C51. Cách kết nối được vẽ ở trang
sau.
Sở dĩ ở đây sử dụng bộ dao động thạch anh 11,059MHz là để tạo tốc độ baud
chính xác cung cấp cho việc truyền dữ liệu nối tiếp. Bộ dao động gồm thạch anh X1
Hiển thị
số liệu cân
Xử lý
trung tâm
Biến đổi
AD
Giao tiếp
qua máy
tính
Máy
tính
Máy in
Cảm biến
và khuếch
đại
Khối nút
nhấn
Thieát keá traïm caân xe
Trang 65
0.42x100
26
và 2 tụ C1, C2. Xung Clock cho các hoạt động bên trong AT89C51 có tần số bằng
1/12 tần số của thạch anh. Nếu sử dụng thạch anh 12MHz thì tần số xung Clock là
1MHz tương ứng với một chu kỳ máy là 1s. Việc này sẽ tạo nên thời
gian thực chính xác, tuy nhiên khi đó tốc độ baud thực sự được tạo ra sẽ có sai số so
với giá trị mong muốn. Để tạo được baudrate thay đổi được người ta sử dụng timer,
thường là timer1 và tốc độ tràn của nó sẽ tạo ra baudrate. Công thức để xác định tốc
độ là :
Baurate = tốc độ tràn Timer1 : 32
Nếu sử dụng dao động thạch anh 12MHz thì nếu muốn tốc độ baud là 1200
ta phải tính như sau :
1200 = tốc độ tràn Timer1 : 32
Suy ra tốc độ tràn Timer1 là 1200 x 32 = 38,4 KHz
Thạch anh 12MHz sẽ cho tần số xung Clock là 1MHz = 1000 KHz. Để có
tần số tràn là 38,4KHz thì Timer1 se tràn sau 1000 : 38,4 26,042 xung Clock. Do
đó cần nạp giá trị 26 vào Timer và như vậy đã gây ra sai số là
= 0,16%.
Do đó việc sử dụng dao động thạch anh 1,059MHz là nhằm để hạn chế sai
số này theo bảng so sánh như sau :
Tốc độ
baud
Tần số thạch
anh
SMOD
Giá trị nạp
(thông thường vào TH1)
Tốc độ baud
thật sự
Sai số
9600 12MHz 1 -7 (F9H) 8923 7%
2400 12 MHz 0 -13 (F3H) 2404 0,16%
1200 12 MHz 0 -26 (E6H) 1202 0,16%
19200 11.059 MHz 1 -3 (FDH) 19200 0
9600 11.059 MHz 0 (FDH) 9600 0
2400 11.059 MHz 0 -12 (F4H) 2400 0
1200 11.059 MHz 0 -24 (E8H) 1200 0
Thieát keá traïm caân xe
Trang 66
CE/LOAD
Chương trình điều khiển được viết cho vi xử lý bao gồm việc đọc dữ liệu từ AD,
phát hiện phím nhấn, xử lý dữ liệu xuất ra Led 7 đoạn hoặc Led đơn đồng thời
truyền số liệu cân được về máy tính qua Port nối tiếp.
Việc đọc AD trước tiên sẽ là kích chân RUN/HOLD được nối ở P1.4 lên
mức 1 bằng lệnh
SETB P1.4
Sau đó vi xử lý sẽ chờ nhận tín hiệu STATUS từ AD, chân này được nối vào
P3.2 của AT8951, chừng nào chân này bằng 0 thì khi đó mới xuất mức 0 ra chân
P1.5 (được nối vào LBEN của AD ICL7109) để cho phép truy xuất byte thấp, vì
chân của AD đã được nối mass trùng với mức tích cực của nó. Việc
đọc dữ liệu byte thấp của biến đổi AD được thông qua Port 0 của AT8951. Kế đến
là xuất mức 0 ra P1.6 sẽ làm chân HBEN = 0. Các bit B9B12 mới được phép đọc
về thông qua Port3 vào thanh ghi A bằng lệnh MOV A, P3. Để đọc được giá trị
chính xác từ B9B12 ta phải che 4 bit cao bằng lệnh ANL A, #0FH.
Việc xác định trạng thái của các nút nhấn dựa vào mức logic của các chân
P3.3, P3.6, P3.7. Nếu không nhấn thì các chân là ở mức 1, nếu phím được nhấn các
chân này sẽ nhận mức 0.
+5V
+5V+5V
30pF
30pF
8.2K
100 AT89C51
9
18
19 29
30
31
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RST
XTAL2
XTAL1 PSEN
ALE/PROG
EA/VPP
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INTO
P3.3/INT1
P3.4/TO
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7Q1
11.059MHz
SW1
RESET
/LBEN
/HBEN
B1
B2
B3
B4
B6
B5
B7
B8
B9
B10
B11
B12
STATUS
RXD
TXD
A
B
C
D
E
F
G
P3-4P3-3P3-5P3-6P3-7P1-7
R/H
10uF
Thieát keá traïm caân xe
Trang 67
Việc thiết kế các chức năng phức tạp khác đòi hỏi phải sử dụng bộ nhớ
ngoài hay dùng nguồn nuôi cho bộ nhớ khi không cấp điện. Ở đây các nút nhấn chỉ
thực hiện các chức năng đơn giản như “Zero”, ”Tare”, ”NetWeigh” mà thôi.
Dữ liệu cần xuất ra Led là mã Led 7 đoạn do sử dụng giải mã bằng phần
mềm theo phương pháp tra bảng . Ở đây không dùng giải mã cho dấu chấm thập
phân mà phần này có thể lựa chọn trên phần cứng. Việc chọn Led để xuất ra thông
qua IC giải mã 74LS138 các chân A, B, C của IC này được nối vào P1.7, P3.4,
P3.5. Do đó khi cần xuất ra Led nào thì chỉ việc Set hay Clear các bit này cho phù
hợp theo bảng chân trị của 74LS138.
Truyền thông dữ liệu giữa vi xử lý và máy tính được thực hiện qua Port nối
tiếp sử dụng trên 2 chân TXD và RXD. Phần cứng cung cấp luôn cho việc nhận dữ
liệu vào vi xử lý. Tuy nhiên, không cần sử dụng chân RXD này vì chương trình chỉ
cần truyền dữ liệu từ vi xử lý về máy tính mà không làm công việc ngược lại. Dữ
liệu truyền về là mã ASCII của các ký tự đã hiển thị trên Led (chính là khối lượng
cân được), do đó trong chương trình ngoài phần chuyển sang mã Led 7 đoạn còn có
thêm chương trình con chuyển dữ liệu từ BCD sang mã ASCII, cũng sử dụng
phương pháp tra bảng. Việc truyền dữ liệu cũng bao gồm cả dấu chấm thập phân.
Để việc truyền thông được thực hiện, ta cần phải khởi động cho Port nối tiếp
bằng cách ghi các giá trị thích họp vào thanh ghi Serial Control SCON. Ở các đầu
cân chuyên dụng, tốc độ baud có thể lựa chọn được. Việc thiết kế này không mấy
khó khăn, tuy nhiên do không sử dụng thêm bộ nhớ mở rộng nên các đường I/O đã
được sử dụng hết và không còn trống. Do đó, nếu muốn thay đổi tốc độ không phải
chỉ gạt nút như đầu cân thực tế mà phải thay đổi chương trình và nạp lại cho
AT89C51. Ở đây quy định sẵn tốc độ baud truyền là 9600bit per sec. Vì thế mode
hoạt động cho cổng nối tiếp được lựa chọn là mode 1 : UART 8bit tốc độ baud thay
đổi được. Thanh ghi SCON được ghi vào giá trị như sau :
SCON : 01000010B
mode 1 TI= 1 để cho phát ngay byte đầu tiên
Ngoài ra thanh ghi TMOD cũng được khởi động giá trị để tạo tốc độ baud là
9600bit/sec.
TMOD : 00100000B
Thieát keá traïm caân xe
Trang 68
chỉ sử dụng timer1 và mode hoạt động là mode 2 tự động nạp
lại giá trị ban đầu
Giá trị nạp vào Timer1 như đã tính ở phần trên là : MOV TH1, # -3
Sau khi đặt cấu hình xong, khi cần truyền dữ liệu sang máy tính, ta chỉ cần
chờ cờ báo phát TI = 1, MOV giá trị cần phát ra Serial buffer.
JNB TI, $
MOV SBUF, A
CLR TI
Máy tính cần có chương trình khởi động cổng nối tiếp với các thông số phù
hợp với bên truyền này thì dữ liệu mới nhận được.
Do vi xử lý sử dụng là loại 8 bit mà AD sử dụng lại là 12 bit do đó cần phải
viết các chương trình thực hiện các phép toán trên số 16 bit và 8 bit, phục vụ cho
việc đọa AD, tính toán và xuất Led …
Trong chương trình viết cho vi xử lý AT89C51 có sử dụng chương trình con
chia số 16 bit cho số 8 bit để đổi giá trị nhị phân 16 bit sang số BCD nhằm mục
đích hiển thị Led 7 đoạn. Trang sau là giải thuật chương trình.
Số bị chia 16 bit chứa trong 2 thanh ghi R7 và R6. Số chia 8 bit được chứa
trong thanh ghi B. Thương số sau khi chia sẽ chứa trong thanh ghi R7 và R6 là phần
nguyên, thanh ghi B chứa phần dư.
CY : bit carry
Vì AD sử dụng là loại 12 bit mà vi xử lý lại là 8 bit do đó để đọc về vi xử lý ta
cần phải đọc 2 lần và giá trị A/D đọc được là byte cao x 256 + byte thấp. Để thực
hiện phép toán này cần phải có chương trình con nhân số 8 bit (byte cao) và số lớn
hơn 8 bit là 256 ( 100000000B). Sau đây là cách để thực hiện phép nhân này.
Thieát keá traïm caân xe
Trang 69
Để dễ dàng, ta xét ví dụ sau :
110111101
x000001010
Cách thực hiện thông thường là xét các bit của số nhân bắt đầu
từ bên phải trước. Nếu bit đó là 1 thì ta sẽ dịch trái số bị nhân
một số lần tương ứng với vị trí bit đang xét rồi thực hiện việc
cộng dồn các kết quả trước đó theo đúng vị trí. Nếu bit đang xét
bằng 0 thì không làm gì mà xét tiếp bit kế tiếp bên trái kề nó.
Tuy nhiên, để dễ dàng viết chương trình ta có thể thực hiện
như sau : thay vì xét các bit của số bắt đầu từ bên phải trước,
000000000
110111101
000000000
110111101
10001011000
10
ta lại xét từ trái qua phải. Bằng cách dịch trái số nhân qua cờ CY. Nếu cờ CY = 1
(tức là bit đang xét của số nhân = 1) thì ta cộng kết quả trước đó với số bị nhân, sau
đó thực hiện việc dịch trái kết quả này đi 1 lần. Khi cờ CY = 0 thì ta chỉ việc dịch
trái kết quả đó đi 1 lần mà không cộng với số bị nhân. Việc dịch trái ở đây có thể
thực hiện bằng việc cộng hai lần kết quả đó, bởi vì cộng hai lần là tương đương với
việc nhân cho 2 hay là dịch trái đi 1 lần.
Trang sau là giải thuật thể hiện ý tưởng này. Chương trình ở đây không bao
gồm việc xét dấu hay tràn của phép nhân (bởi vì số 16 bit thực sự cần nhân khi sử
dụng là 256 là không lớn nên khỏi phải xét tràn).
Số bị nhân 16 bit được chứa trong 2 thanh ghi R1 và R0, thanh ghi B chứa số
nhân 8 bit. Sau khi nhân, kết quả chứa lại trong 2 thanh ghi R1 và R0. Thanh ghi
R2, R3, R4 được sử dụng ở đây là để chứa tạm kết quả.
2) Khối biến đổi AD :
Như đã trình bày ở trên, trọng tâm của khối này là ICL 7109 ngoài ra còn có
mắc thêm một số linh kiện bên ngoài như điện trở tích phân, tụ tích phân. Ở đây sử
dụng nguồn chuẩn từ bên ngoài, không sử dụng chân REF Out của ICL 7109. Để
Thieát keá traïm caân xe
Trang 70
tránh những nhiễu nó có tần số là bội của 50Hz có thể chọn thạch anh là 3MHz. Tuy
nhiên, loại thạch anh này rất khó tìm nên chỉ sử dụng thạch anh 358Hz.
Cách thứ nhất để đọc AD ICL 7109 là AD hoạt động bằng cách cho chân
RUN/HOLD lên mức 1. Sau đó đợi chừng nào biến đổi xong chân STATUS bằng 0
mới đọc dữ liệu từng byte một về (nếu dùng vi xử lý 8bit). Chương trình được viết
cho cách này. Cách khác để đọc AD là cho RUN/HOLD lên mức cao, đợi một
khoảng thời gian xấp xỉ 133mili giây rồi mới đọc dữ liệu về cũng theo 2 lần riêng
biệt vì sử dụng vi xử lý 8bit.
Đối với chương trình viết cho Card máy tính cần có thời gian delay khi đọc dữ
liệu về sau khi đã kích các chân cho phép LBEN và HBEN vì tốc độ xử lý của máy
tính khá nhanh. Thời gian delay này là không cần thiết khi viết chương trình vi xử
lý vì khoảng thời gian này nhỏ hơn một chu kỳ thực hiện lệnh của AT 89C51.
Sơ đồ mạch như sau :
Do chân RUN / HOLD của ICL 7109 có thể điều khiển được và CE / LOAD
được nối mass nên lưu đồ của việc đọc AD ICL 7109 như sau:
Thời gian Delay 210ns là không cần thiết khi viết chương trình vi xử lý vì
khoảng thời gian này nhỏ hơn một chu kỳ thực hiện lệnh của AT 89C51. Có thể đọc
AD bằng cách kích chân RUN/HOLD và sau đó đợi khoảng 133 mili giây rồi mới
+5V
+5V
200K
0.33uF
U2
ICL7109
35
34
33
36
39
37
38
31
27
21
26
22
23
24
18
19
20
17
16
15
14
13
12
11
10
9
8
7
6
5
3
4
2
25
29
30
32
IN HI
IN LO
COMMON
REF IN+
REF IN-
REF CAP+
REF CAP-
A/Z
SEND
MODE
RUN/HOLD
OSCI
OSCO
OSC SEL
LBEN
HBEN
CE/LOAD
TEST
B1
B2
B3
B4
B5
B6
B7
B8
B9
B10
B11
B12
POL
OR
STATUS
BUF OSC
REF OUT
BUFF
INTEG
3.58MHz
1
2
1uF
0.15uF
0.01uF
JP1
1
2
1M
B10
B4
STATUS
B11
B6
/HBEN
B3
/LBEN
B7
B1
B5
R/H
B8
B9
B2
B12
Thieát keá traïm caân xe
Trang 71
đọc byte thấp và byte cao về để xử lý. Tuy nhiên nếu quản lý thời gian không tốt thì
đọc theo kiểu này có thể không được chính xác.
4) Khối hiển thị :
Khối hiển thị bao gồm 4 đèn Led 7 đoạn để hiển thị khối lượng xe cân được
cũng như trạng thái hoạt động của mạch.
Hiển thị ra đèn Led có thể sử dụng một trong hại phương pháp quét hoặc
chốt. Do sở thích và cũng nhằm mục đích để chương trình viết đơn giản, ở đây sử
dụng phương pháp chốt. Tuy rằng phương pháp này không kinh tế lắm vì mỗi đèn
Led phải có một IC chốt và 7 điện trở nhưng việc lập trình đơn giản hơn.
Việc chọn Led để xuất ra thông qua p2.2, p2.3, p2.4 của vi xử lý
Theo bảng chân trị của IC 74LS573 ta nhận thấy : Nếu chân OC ở mức 0, và
chân G ở mức thấp dữ liệu sẽ được chốt. Khi chân G lên mức cao thì dữ liệu
sẽ được cho qua. Chân OC khi ở mức cao thì ngõ ra sẽ ở trạng thái tổng trở cao HiZ
Theo sơ đồ đã kết nối, chân OC đã được nối xuống mass. Do đó, khi cần xuất
dữ liệu ra ta phải cho chân G lên mức cao và khi muốn chốt phải cho chân này
xuống mức thấp.
Led 7 đoạn có ký hiệu 15102BEG – B là loại led có độ sáng khá tốt.Sơ
đồ chân của loại này được cho trên hình vẽ
Led 7 đoạn được kết nối với IC chốt
Led 7 đoạn sẽ nhận dữ liệu từ vi xử lý thông qua IC chốt
Ngoài ra ta có thể sử dụng loại led 7 đoạn có kích cỡ lớn hơn với những màu sắc
khác nhau
15102BEG-B
1F DpAB
EDC
G2345
10 9876
Thieát keá traïm caân xe
Trang 72
Av lần
5) Khối giao tiếp của máy tính :
Sơ đồ kết nối của phần này như sau:
Truyền thông với máy tính được thực hiện qua Port nối tiếp. Mặc dù cả chân
RXD và TXD của AT98C51 đều được kết nối. Tuy nhiên, chỉ cần sử dụng một
đường TXD vì chỉ phục vụ cho việc truyền về máy tính mà không cần nhận dữ liệu
vào vi xử lý. Tín hiệu truyền sang máy tính là dạng mã ASCII nên trong chương
trình ngoài phần đổi sang mã Led 7 đoạn để hiển thị Led còn có chương trình
chuyển sang mã ASCII trước khi phát ra Port nối tiếp. Các tín hiệu TTL này đều
được chuyển sang chuẩn RS232 bằng IC MAX232 trước khi truyền đi.
6) Bộ khuếch đại :
Như đã trình bày ở trước, có các cách khuếch đại tín hiệu sử dụng op – amp
khác nhau nhưng ở đây chỉ sử dụng mạch khuếch đại dùng 1 op – amp. Thực hiện
như vậy là nhằm mục đích tránh điện áp offset. Vì nếu dùng nhiều op – amp thì độ
lệch này càng nhiều.
IC được sử dụng trong mạch khuếch đại là OP-07 có độ chính xác khá cao và
khá ổn định
Tín hiệu được đưa từ load cell vào 2 chân 2 và 3
Tín hiệu sau khi đã khuếch đại sẽ đưa ra từ chân 6
Mạch khuếch đại có hệ số khuếch đại là 160
Ở mạch có hệ số khuếch đại ,với các giá trị điện trở đã chọn thì hệ số khuếch d
khuếch đại là :
+5V
10uF
U6
MAX232
13
8
11
10
1
3
4
5
2
6
12
9
14
7
R1IN
R2IN
T1IN
T2IN
C+
C1-
C2+
C2-
V+
V-
R1OUT
R2OUT
T1OUT
T2OUT
10uF
10uF
VB1
SUB-D 9
5
9
4
8
3
7
2
6
1
C10
CAP
TXD
RXD
160
1
160 1 = + =
Thieát keá traïm caân xe
Trang 73
Khi đó điện áp toàn tầm ngõ vào là 160 x 30 mV = 5Volt (tỷ lệ điện áp ra của
Loadcell là 30mV/ Volt). Chọn hệ số khuếch đại như vậy thì sẽ cho điện áp toàn
tầm thỏa mãn yêu cầu ngõ vào AD.
7) Thiết kế bộ nguồn :
Ở các đầu cân thực tế người ta thường dùng bộ nguồn switching nên có độ
chính xác và ổn định rất cao. Tuy nhiên để thiết kế bộ nguồn hoạt động tốt theo
kiểu đó thì phức tạp vả lại linh kiện rất khó tìm,bộ nguồn ở đây được thiết kế theo
kiểu thông thường.
Bộ nguồn được thiết kế với nhiều mức điện áp cho các ứng dụng khác nhau:
+5Volt cung cấp cho hoạt động của tất cả các IC, ngoại trừ IC sử dụng trong Card
máy tính thì dùng nguồn nuôi có sẵn trong máy tính ; nguồn –5Volt cung cấp cho
chân V- của AD ICL7109 ; nguồn 12Volt cung cấp cho bộ khuếch đại sử dụng op
– amp OP 07 ; nguồn 10Volt ổn định cấp cho Loadcell. Riêng nguồn chuẩn làm
điện áp tham khảo cấp cho AD được thiết kế ở điện áp cố định là 2,5Volt và thay
đổi được là từ 0 đến 5Volt nhằm mục đích chỉnh theo ngõ vào của tín hiệu cần biến
đổi AD. Có nhiều IC ổn áp làm nguồn tham khảo rất tốt, tuy nhiên rất khó tìm. Ở
đây sử dụng các IC cho chất lượng có thể chấp nhận được.
Sơ đồ bộ nguồn như sau :
Bộ nguồn được thiết kế gồm những phần riêng biệt như sau :
• Khối 12Volt cung cấp cho op – amp sử dụng IC ổn áp LM7812 và LM7912.
Đây là họ IC ổn áp dùng cho nhiều ứng dụng khác nhau. Sử dụng tản nhiệt phù
hợp sẽ cho dòng ra có thể vượt quá 1 Ampere. Mặc dù được chế tạo để ổn định
điện áp nhưng họ IC 78xx có thể thêm các linh kiện bên ngoài để điều chỉnh
1
2 1
2
LM7805/TO
1
3
2
VIN
G
N
D
VOUT
0.1uF 0.1uF
1
2 1
2
2200uF
LM7912C/TO220
2 3
1
IN OUT
G
N
D
0.1uF
0.33uF
2200uF
LM7905/TO3
3
1
2
VIN
G
N
D
VOUT
1
2 1
2
LM7812/TO
1
3
2VIN
G
N
D
VOUT
0.1uF
1
2 1
2
T1
TRANSFORMER CT
1 5
6
4 8
- +
BRIDGE
1
4
3
2
0.33uF
+12V
0V
-12V
24V
12V220V
+5V
-5V
Thieát keá traïm caân xe
Trang 74
được điện áp và dòng điện ở ngõ ra. Bên trong họ IC cũng có bảo vệ quá nhiệt
và ngắn mạch. Sai lệch điện áp ngõ ra là từ 2% đến 4%. Tụ C1 2200F là để
tránh nhấp nhô điện áp như trong các chỉnh lưu thông thường. Tụ C2 0,33F
phải cần thiết khi nguồn cung cấp ở xa. Tụ C3 0,1F thì không phải để ổn định
điện áp mà chỉ làm tăng đáp ứng quá độ.
• Khối 5Volt sử dụng 2 IC ổn áp LM7805, LM7905 dùng làm nguồn nuôi cho
tất cả các IC trong mạch vi xử lý. Điện áp ngõ vào LM7805, LM7905 được lấy
từ nguồn 12Volt đã ổn định trước đó. Điện áp vào IC LM7805 theo catalogue
là có thể từ 7Volt đến 20Volt DC.
• Một yêu cầu cần thiết cho điện áp làm nguồn tham khảo cho AD ICL7109 là
phải ổn định và chính xác.
• Điện áp cấp cho Loadcell được thiết kế sử dụng LM723 nhằm mục đích làm
tăng tính ổn định vì tín hiệu ra của Loadcell rất nhỏ nên dễ bị ảnh hưởng nếu
nguồn không ổn định.
LM723CN là IC có thể dùng để ổn áp dương hay ổn áp âm với dòng điện ra
đạt tới 150mili Ampere DC. Dòng điện ngõ ra có thể làm tăng lên vài Ampere nếu
dùng một hay nhiều transistor mắc bên ngoài. Tầm nhiệt độ sử dụng cho IC loại
thương mại là từ 070C. LM723CN có các đặc điểm chủ yếu như sau :
+ Điện áp ngõ ra có thể chỉnh được từ 2Volt đến 37Volt DC tùy theo cách mắc.
+ Dòng điện ngõ ra đạt tới 150mili Ampere nếu không sử dụng Transistor mắc
thêm bên ngoài.
+ Có thể chỉnh được dòng điện bảo vệ ngắn mạch.
+ Độ ổn định 0,01% Vout , thay đổi theo tải là 0,03%Vout (nếu dòng tải 1mA < IL <
50mA. Sai số tối đa là 0,3% và 0,6% tương ứng. Như vậy nếu muốn ổn định ở
R4
5.6K
8.2K
0.1uF
R11
5K
1
3
2
18K
100pF
0.1uF
JP4
HEADER 2
1
2
0.33uF
T2
TRANSFORMER
1 5
4 8
2200uF
- +
D2
BRIDGE
1
4
3
2
LM7812/TO
1
3
2
VIN
G
N
D
VOUT
Vout
7
IN+
10
3
V+
6 Vref
4
LM723
IN-
2
V-
Vc
5
CURRENTLIMIT
13
CURRENTSENSE
11
12
FREQCOMP
Cap cho Loadcell
220VAC
0V
+12V
Thieát keá traïm caân xe
Trang 75
Vsense
RSC
0,66
0,33
R + R
R1
R2
2
1
R
R
1
7
Vout .4286,01
7
10
10Volt thì có thể mắc sai số lớn nhất là 0,06Volt.
Thông số cần thiết khi thiết kế :
+ Tầm điện áp ngõ vào Vin : 9,5 Volt DC đến 40 Volt DC.
+ Tầm điện áp ngõ ra Vo : 2,0 Volt đến 37 Volt.
+ Sai lệch điện áp vào ra trong khoảng từ 3Volt đến 38 Volt.
+ Hệ số nhiệt độ trung bình của điện áp ngõ ra là 0,002% / C.
+ Độ dợn sóng (ở tần số từ 50Hz đến 10KHz) là : 86 dB nếu Cref là 5F và 74 dB
nếu Cref = 0.
+ Dòng giới hạn ngắn mạch ISC là 65mA DC.
+ Độ ổn định trong chế độ dài hạn : là 1%/ 1000 giờ .
Các thông số trên chỉ đúng khi nhiệt độ từ 0C đến 70C.
Theo cách mắc linh kiện bên ngoài như trong sơ đồ thì dòng ngắn mạch là :
ISC = = = 2 Ampere.
Cách kết nối tiêu biểu cho điện áp ra từ 7 Volt đến 37 Volt như sau :
Từ biểu thức tính điện áp ngõ ra cho bởi Catalogue : Vout = 7. R2+R1
R1
Ta suy ra : Vout = 7 1 + . Để tạo được điện áp ngõ ra là 10Volt thì tỷ số
Ngoài ra để cho kết quả tốt nhất, theo khuyến
cáo giá trị điện trở R2 phải nằm trong khoảng từ 10 K đến 100 K. Do đó giá trị
Thieát keá traïm caân xe
Trang 76
được chọn ở đây là R1 = 8,2 K, R2 là 18 K và giữa chúng có mắc một biến trở
5K để chỉnh cho phù hợp với tỷ lệ trên.
Nhằm mục đích làm cho độ trôi nhỏ, theo hướng dẫn thì giá trị R3 = R1//R2 nên
ở đây chọn R3 = 5,6 K. Đây là những giá trị điện trở có trong thực tế.
Ngoài ra do trong mạch có sử dụng đèn Led có dòng lớn nên bộ nguồn còn được
thiết kế có nguồn 5Volt riêng để cấp cho Led nhằm tránh qúa dòng cho các IC ổn
áp.
Thieát keá traïm caân xe
Trang 77
Chương ll: LƯU ĐỒ GIẢI THUẬT
GIẢI THÍCH CHƯƠNG TRÌNH CHO VI XỬ LÝ
1. Lưu đồ giải thuật cho chương trình chính
Lưu giá trị điện áp trạng thái
Zero đã biết trước : V1
Nhấn “Zero”
?
Xuất ra Led đơn
“Zero”.Xuất “0000” ra Led
7 đoạn.
Đọc A/D và lưu vào
cùng vị trí đã lưu V1.
Nhấn
“Tare” ?
Xuất ra Led đơn
“Tare”. Đọc A/D và
lưu vào : V3
Nhấn
“Netweigh” ?
Đọc AD : V2
V = (V2 – V1) x 2
Đổi V sang BCD
Xuất ra Led 7 đoạn
Truyền ra Port nối tiếp
Truyền ra Port nối tiếp
Xuất ra Led đơn “Net
Weigh”
Đọc A/D : V4
Lấy V5 = (V4- V3) x
2
Đổi V5 sang BCD
Xuất Led 7 đoạn
Truyền ra Port nối tiếp
Y
Y
Y
N
N
N
Thieát keá traïm caân xe
Trang 78
2.Lưu đồ đọc số 12 bit từ ADC về vi xử lý:
3.Giải thích chương trình cho vi xử lý
Điện áp từ load cell sẽ được đưa qua bộ khuếch đại , ở đây giá trị điện áp sẽ
được khuếch đại lên 160 lần như đã trình bày ở trên
Start
Cho RUN / HOLD = 1
STATUS = 0
Cho HBEN = 0
Delay 210ns
Đọc vào byte cao
Cho LBEN =0
Delay 210ns
Đọc vào byte thấp
End
N
Y
Thieát keá traïm caân xe
Trang 79
Điện áp sau khi đã khuếch đại sẽ được đưa vào bộ chuyển đổi A/D. Sau đó tín
hiệu tương tự sẽ được chuyển đổi thành số 12 bit
Dữ liệu 12 bit sau đó được đưa vào vi sử lý và sẽ được xuất trực tiếp ra 4 led 7
đoạn
Ta sẽ chỉnh điện áp so sánh sao cho ứng với 1 kg giá trị thập phân sẽ tương ứng
la 1000 đơn vị .Để hiển thị đúng 1 kg ta sẽ dịch số trên led qua trái một lần và chọn
dấu chấm sau led thứ 2
4. Chương trình quản lý trạm cân viết cho máy tính:
Cũng giống như các chương trình quản lý trạm cân thực tế , chương trình viết
cho máy tính bao gồm các chức năng :Đọc dữ liệu là khối lượng cân được từ vi xử
lý về và hiển thị kết quả đó lên màn hình , cho phép nhập tên khách hàng , biển số
xe , loại hàng hóa được cân để in phiếu cân có cả khối lượng xe , khối lượng hàng
hoá, và cả lưu trữ số liệu để báo cáo số lượng xe và hàng hóa cân được trong ngày...
Để nhận dữ liệu từ cổng COM chương trình viết bằng visual basic
Chương trình đã viết cũng cho phép lựa chọn cổng COM , thời gian nhận dữ
liệu về máy tính , tốc độ Baud nhằm mục đích ứng dụng được linh hoạt cho nhiều
máy tính và đầu cân khác nhau . Riêng đối với mô hình cân xe này thì tốc độ
Baud là cố định 9600 bps ( đã viết cho vi xử lý ) và thời gian nhận dữ liệu về máy
tính là nhỏ hơn một giây.
Ngoài ra còn có chức năng lưu trữ khối lượng khi xe đi vào để khi chiều xe là đi
ra thì sẽ trừ đi khối lượng đã lưu trước đó thì sẽ được khối lượng hàng hoá đã xuất (
thực hiện ngược lại sẽ ra lượng hàng đã nhập).
Sử dụng visual basic để thiết kế giao diện và nhận dữ liệu từ vi xử lý .Chương
trinh dung cho máy tính là:
Dim d As Date
Private Sub cmdClose_Click()
Unload Me
End Sub
Thieát keá traïm caân xe
Trang 80
Private Sub Form_Load()
If (MSComm1.PortOpen = True) Then MSComm1.PortOpen = False
MSComm1.CommPort = 1
MSComm1.RThreshold = 4
MSComm1.InputLen = 0
'MSComm1.InputMode = comInputModeBinary
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
d = Now
lb5 = d
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Dim sok As Variant
Dim nhan As Variant
nhan = MSComm1.Input
Text3.Text = nhan
'Text3.Text = nhan & " Kg"
'Text4.Text = (sok * 20000) & " Đ"
End Select
Thieát keá traïm caân xe
Trang 81
End Sub
Thieát keá traïm caân xe
Trang 82
PHẦN IV: PHÁT TRIỂN LUẬN VĂN
CHƯƠNG TRÌNH CÂN HÀNG VÀ TÍNH TIỀN TỰ ĐỘNG DÙNG
CARD GẮN VÀO RÃNH CẮM MÁY TÍNH
Tương tự như khi thực hiện cho vi xử lý , hệ thống cân dùng Card máy tính
đơn giản hơn và bao gồm các thành phần sau đây:
Các thành phần như nguồn chuẩn cấp cho AD , loadcell ; bộ khuếch đại tín hiệu
từ cảm biến... đã được trình bày ở trước . Phần này chỉ trình bày cách thực hiện
Card AD gắn vào rãnh cắm máy tính và chương trình viết cho tấm Card này Hệ
thống cân mà sử dụng cách thức giao tiếp với máy tính theo kiểu song song này chỉ
sử dụng cho khoảng cách gần vì rất dễ bị nhiễu khi truyền đi xa. Sau đây là những
thiết kế cho hệ thống cân loại này.
I ) Card AD gắn vào rãnh cắm máy tính :
Ở đây sử dụng IC 8255 trong việc xuất,nhập dữ liệu số. Việc đọc AD 12 bit
chỉ cần sử dụng một IC 8255 cung cấp 24 bit xuất , nhập để điều khiển và đọc 12 bit
của AD ICL7109 là đủ. Tuy nhiên Card được thiết kế gồm hai IC 8255 là để dùng
những đường xuất nhập còn lại ứng dụng cho các việc điều khiển khác như kích
Cảm biến
và mạch
khuếch đại
Biến đổi
AD
Giao tiếp
qua rãnh
cắm máy
tính
Máy tính
với chương
trình xử lý
Máy
in
Hiển thị
số liệu lên
cân màn
hình
Nguồn chuẩn
Thieát keá traïm caân xe
Trang 83
đóng mở relay hay các valve selenoid dùng khí nén của dây chuyền đóng bao tự
động hoặc báo quá tải...
Vùng địa chỉ cho phép của Card mở rộng là :300 – 31F (Hex).Do 4 bit cao của
vùng địa chỉ này là số3(11 binary) nên cần 10 đường địa chỉ, các đường dẫn địa chỉ
được sử dụng đối với vùng này là từ A0 ÷A9. Ở đây chỉ sử dụng các địa chỉ từ 300-
307H Sự phân công địa chỉ cho các Port xuất nhập như sau :
Hex A9A8 A7 A6 A5 A4 A3 A2 A1 A0 Địa chỉ của các Port
300 1 1 0 0 0 0 0 0 0 0 Port A của 8255 thứ nhất
301 1 1 0 0 0 0 0 0 0 1 Port B của 8255 thứ nhất
302 1 1 0 0 0 0 0 0 1 0 Port C của 8255 thứ nhất
303 1 1 0 0 0 0 0 0 1 1 Thanh ghi từ điều khiển 8255-1
304 1 1 0 0 0 0 0 1 0 0 Port A của 8255 thứ hai
305 1 1 0 0 0 0 0 1 0 1 Port B của 8255 thứ hai
306 1 1 0 0 0 0 0 1 1 0 Port C của 8255 thứ hai
307 1 1 0 0 0 0 0 1 1 1 Thanh ghi từ điều khiển 8255-2
Hoạt động của tấm Card có thể tóm tắt như sau :
Khi thực hiện việc xuất nhập máy tính xuất ra các đường địa chỉ từ A0 ÷ A9,
các đường địa chỉ này được nối qua bộ đệm một hướng 74244 để nâng khả năng
truyền tín hiệu . Do các chân 1G,2G của các IC này được nối xuống mass, trùng
với mức tích cực của nó , nên tín hiệu từ máy tính được đưa ra.Các đường địa chỉ
từ A3 ÷ A9 được nối đến các chân P0 ÷ P6 của IC so sánh 74688 .Tín hiệu AEN
từ máy tính được đưa đến chân cho phép G của 74688 , do đó khi xuất địa chỉ thì
IC 74688 được phép hoạt động. Các địa chỉ này được so sánh với các địa chỉ đã
chọn bằng DipSwitch được đưa đến các chân Q0 ÷Q6.Chân P7 được nối với Q7.
Bộ so sánh 8 bit này sẽ cho ngõ ra (chân 19) của IC 74LS688 xuống mức thấp
nếu có sự giống nhau ở các chân P và Q tương ứng . Ngõ ra này được nối đến ngõ
vào B của IC giải mã 74139 , đường địa chỉ A2 cũng được nối đến ngõ vào A của
IC này . Do chân G G B A Y0 Y1 Y2 Y3
được nối mass nên theo bảng hoạt 1 X X 1 1 1 1
động của 74139 thì khi A2=0, ngõ 0 0 0 0 1 1 1
Thieát keá traïm caân xe
Trang 84
ra Y0 được chọn , do cách kết nối 0 0 1 1 0 1 1
như trên sơ đồ nên IC 8255 thứ 0 1 0 1 1 0 1
nhất được chọn , Khi A2=1thì ngõ 0 1 1 1 1 1 0
ra Y1 được chọn , và do đó IC 8255 thứ hai được chọn.
Hai đường địa chỉ thấp A0, A1 được đưa đến các chân A0, A1 của 8255 để
chọn chế độ hoạt động cho nó .
Đó là: A1 A0 Chọn
Các đường dữ liệu từ D0 ÷ D7 được 0 0 Port A
xuất ra hoặc đưa vào máy tính thông 0 1 Port B
qua bộ đệm hai chiều 74245. Hướng 1 0 PortC
của dữ liệu được xác định thông qua 1 1 Thanh ghi từ điều khiển
tín hiệu điều khiển I/OR nối đến chân
DIR của 74245.Khi máy tính thực hiện sự truy cập đọc dữ liệu từ ngoại vi thì
chân I/OR = 0, do đó DIR=0, dữ liệu được truyền từ B sang A . Khi chân
DIR=1,dữ liệu được xuất từ máy tính ra ngoại vi (Từ A sang B).
Trước khi giao tiếp cần ghi giá trị vào từ điều khiển .Tùy theo yêu cầu xuất
ra hay nhập vào Port nào của 8255 thứ nhất hay thứ hai mà ghi từ điều khiển cho
thích hợp ( cách xác định từ điều khiển được trình bày ở phần sau). Sau khi ghi từ
điều khiển vào 8255 thì từ chương trình máy tính ta có thể thực hiện việc xuất hay
nhập dữ liệu vào máy tính để ứng dụng trong việc thu thập số liệu và điều khiển
sau này.
Với cách kết nối như trong mạch đã vẽ , để đọc AD trước hết cần phải xuất
ra mức 1 ra Port C2 của IC 8255 thứ hai để kích chân RUN/HOLD cho AD bắt
đầu chuyển đổi. Sau đó có thể delay 133 mili giây hoặc đợi chân STATUS nối ở
Port B6 của 8255 thứ hai bằng 0 thì mới đọc được AD về máy tính .Cũng giống
như mạch vi xử lý, cần phải xuất ra LBEN và HBEN mức 0 rồi mới đọc về byte
thấp , byte cao tương ứng. Tuy nhiên do cách kết nối LBEN , HBEN và
RUN/HOLD cùng nằm trong Port C của IC 8255 nên khi muốn xuất mức 0 ra các
chân chọn byte thì cần phải che lại không để chân RUN /HOLD bị ảnh hưởng vì
Thieát keá traïm caân xe
Trang 85
khi xuất từ điều khiển ra IC 8255 thì cả một Port của 8255 đều dùng cho chức
năng xuất hay nhập mà không điều khiển từng bit riêng được.
Cách kết nối ICL7109 vào mạch tương tự như phần dùng cho vi xử lý.
Ngoài ra trên tấm Card còn có lấy các đường nguồn và mass của máy tính cung cấp
cho các IC và tiện dùng cho các ứng dụng khác ( không dùng quá công suất).
Có một phương pháp khác tạo Card ADC nhờ máy tính đã được giới thiệu
trong tạp chí “Tự động hóa ngày nay” số 3 năm2000. Theo phương pháp này, cần
phải dùng một bộ biến đổi DAC cơ sở nối tiếp với mạch khuếch đại thuật toán hay
dùng DAC có kết hợp sẵn với mạch so sánh. Khi mã số lối vào DAC tăng dần và
qua giá trị ak lối ra so sánh chuyển mức thì ak là tín hiệu lối vào được số hóa. Cần
phải viết chương trình điều khiển việc chuyển đổi này theo các thuật toán khác
nhau.
Thieát keá traïm caân xe
Trang 86
KẾT QUẢ THI CÔNG VÀ HƯỚNG
PHÁT TRIỂN CỦA ĐỀ TÀI
Với những yêu cầu đặt ra như trình bày ở trước . Các phần đã thực hiện và hoạt
động được có thể kể ra như sau :
• Mô hình cân xe tải có gắn loadcell.
• Bộ nguồn ổn định cung cấp cho loadcell, nguồn chuẩn cấp cho AD , và các
nguồn khác cấp cho IC và mạch khuếch đại.
• Mạch khuếch đại tín hiệu từ loadcell .
• Mạch vi xử lý và chương trình đọc AD , hiển thị kết quả cân và truyền về máy
tính bằng chuẩn RS-232 C .
Mặc dù đã cố gắng nhiều nhưng phần thi công còn có một số hạn chế sau :
Nhiễu vẫn còn tác động vào hệ thống làm cho việc hiển thị không ổn định cho
lắm. Nhiễu này có thể hạn chế được bằng cách sử dụng các linh kiện có chất lượng
tốt hơn cho các nguồn và cho mạch khuếch đại...
Mặc dù loadcell dùng trong mô hình có tải trọng chịu được là 10kg nhưng do
chỉ sử dụng một loadcell nên rất khó bố trí sao cho tải trọng phân bố đều trên bàn
cân .Do đó khi có khối lượng lớn đặt lên bàn cân mà không cân bằng thì kết quả có
thể không được chính xác, nhưng rất đúng nếu vật cân có khối lượng nhỏ.
Để ứng dụng trong việc cân động hoặc chống rung khi cân thì cần sử
dụng bộ biến đổi AD có tốc độ cao và chính xác.Ngoài ra còn phải thực hiện lấy
trung bình nhiều lần hoặc dùng lọc lấy tần số thấp...
Như đã trình bày ở phần trước , ngoài việc sử dụng trong hệ thống cân xe hay
các ứng dụng trong việc đo khối lượng khác , hệ thống cân loại này rất có khả năng
áp dụng trong dây chuyền cân và đóng bao tự động .Nếu viết chương trình cho máy
tính hoặc vi xử lý một cách thích hợp thì có thể không cần dùng PLC như đã được
dùng ở nhiều nơi trong thực tế .
Thieát keá traïm caân xe
Trang 87
PHỤ LỤC
I) GIỚI THIỆU CÁC IC SỬ DỤNG TRONG MẠCH
Ngoài các IC đã mô tả trên đây, phần này giới thiệu các IC khác có sử dụng
trong mạch. Ở đây chỉ nêu sơ đồ chân, cách thức hoạt động . Các thông số kỹ thuật
chi tiết có thể được tìm thấy trong các sổ tay hoặc các CD-ROM tra cứu khác .
1) PPI 8255 (Programable Parallel Interface):
8255 là IC giao tiếp song song lập trình được .Nó cung cấp 24 đường dữ liệu
thông qua 3 Port xuất , nhập là A,B,C . Port A ,B được được lập trình như
1 byte 8 bit. Trong khi đó Port C có thể chia ra làm 2
phần 4 bit riêng biệt ,bao gồm 4 bit thấp và 4 bit
cao. Ba Port của 8255 được chia thành hai nhóm:
Nhóm A gồm Port A và Port C phần cao ( PC 4÷
PC7) ,nhóm B gồm Port B và Port C phần thấp
(PC 0 ÷ PC 3).Việc chọn các Port này và từ điều
khiển thông qua hai đường địa chỉ A1 và A0 theo
bảng sau:
A0 A1 Chọn
0 0 Port A
0 1 Port B
1 0 Port C
1 1 Thanh ghi từ điều khiển
8255 được chọn khi chân CS là tích cực mức 0.
Cách ghi dữ liệu cho từ điều khiển:
U?
8255
D0
34
D133
D232
D3
31
D430
D529
D6
28
D727
RD
5
WR36
A09
A1
8
RESET35
CS6
PA0
4
PA1 3
PA2 2
PA3
1
PA4 40
PA5 39
PA6
38
PA7 37
PB0
18
PB1 19
PB2 20
PB3
21
PB4 22
PB5 23
PB6
24
PB7 25
PC0
14
PC1 15
PC2 16
PC3
17
PC4 13
PC5 12
PC6
11
PC7 10
Thieát keá traïm caân xe
Trang 88
D7 D6 D5 D4 D3 D2 D1 D0
1:Chế độ xuất
nhập Port
0:Chế độ
Set/Reset bit
Chọn mode
cho nhóm
A
00:Mode0
01:Mode1
1x:Mode2
PortA
0:Xuất
1:Nhập
PChigh
0:PChigh
xuất
1:PChigh
nhập
Chọn mode
nhóm B
0:Mode 0
1:Mode1
Port B
0:Xuất
1:Nhập
PortClow
0:Xuất
1:Nhập
Các chế độ hoạt động của 8255:
Chế độ Set/Reset bit :
Chế độ này được chọn khi bit thứ 7 của thanh ghi từ điều khiển là 0 .Ở chế độ này
tám bit của Port C có thể được đặ lên 1 hay xóa về 0 bằng cách ghi vào từ điều
khiển thích hợp như sau :
Thanh ghi từ điều khiển
D7 D6 D5 D4 D3 D2 D1 D0
Không dùng
Mode 0:
Là chế độ xuất nhập cơ bản.Ở chế độ này các Port A,B,C ( port C gồm phần thấp
và cao) làm việc như một Port xuất nhập.
Bit Set/Reset
1=Set
0=Reset
Chọn bit
0 1 2 3 4 5 6 7
0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1
Bit Set/Reset flag
0 = Active
Thieát keá traïm caân xe
Trang 89
Mode 1:
Hoạt động ở mode 1, 8255 thực hiện sự xuất nhập có bắt tay cho hai Port A và B
,các đường Port C được sử dụng làm tín hiệu điều khiển bắt tay.Các đường này
thay đổi theo chức năng xuất ,nhập của mỗi Port.
Mode 2:
Là chế độ xuất , nhập dữ liệu hai hướng .Mode này thường được dùng trong
việc giao tiếp với hai máy tính .Trong mode này Port A dùng làm Port dữ liệu hai
hướng , Port B ở mode 0 hay mode 1. Port A sử dụng 5 tín hiệu điều khiển việc
truyền dữ liệu từ Port C, ba đường còn lại của Port C được có thể được dùng làm
đường xuất nhập ở mode 0 hay mode1 tùy yêu cầu.
2) 74LS688:
74LS688 là IC so sánh 8 bit . Ngõ vào cho phép là
G ( chân số 1 ) tích cực mức thấp.IC này dùng để so
sánh địa chỉ cho Card mở rộng .
Bảng chân trị:
Các ngõ vào Các ngõ ra
P,Q G P=Q
P=Q L L
P>Q L H
P<Q L H
X H H
Ngõ ra ở mức thấp khi ngõ vào cho phép G ở mức thấp và ngõ vào Pn và Qn bằng
nhau tương ứng.(n=17).
Các thông số kỹ thuật:
+ Ap cung cấp:Vcc trong khoảng 4,75V đến 5.25V.
+VOH min là 2,7V. + IOH max là 0,4mA
+VOL max là 0.5 V + IOL max là 24mA
+VIH min là 2V + IIH max là 0,8 mA
74LS688
P0
2
P1
4
P2
6
P38
P4
11
P5
13
P6
15
P7
17
Q0
3
Q1
5
Q2
7
Q39
Q412
Q5
14
Q6
16
Q7
18
G
1
P=Q
19
Thieát keá traïm caân xe
Trang 90
+VIL max là 0,8 V + IIL max là 0.2 mA
Nhiệt độ chịu đựng từ 0oC đến 70 o C.
3) 74LS244:
Đây là IC đệm 8 bit 3 trạng thái.
Bảng chân trị:
Inputs Outputs
1G 2G D
L
H
HiZ
L
L
H
L
H
X
Có 2 chân cho phép là 1G và 2G, 8 ngõ vào A, 8 ngõ ra Y. Ngõ ra có mức logic
giống ngõ vào nếu cả hai chân cho phép tích cực mức thấp.
4) 74LS245:
Là IC đệm 8 bit hai hướng,có ngõ vào cho phép
tích cực thấp . Khi G=0 :
+Nếu DIR=0 : Dữ liệu từ B sẽ chuyển sang A.
+Nếu DIR=1: Dữ liệu từ A sẽ chuyển sang B
Bảng hoạt động:
Inputs Outputs
G DIR
B A
A B
Cách ly
L
L
H
L
H
X
5) 74LS139:
74LS139 là IC giải mã 2 sang 4 (ở
đây được dùng trong việc giải mã địa
chỉ cho Card mở rộng).Chân cho phép
74LS244
1A1
2
1A2
4
1A3
6
1A4
8
2A1
11
2A2
13
2A3
15
2A4
17
1G
1
2G
19
1Y1
18
1Y2
16
1Y3
14
1Y4
12
2Y1
9
2Y2
7
2Y3
5
2Y4
3
74LS245
A12
A23
A34
A4
5
A56
A67
A78
A8
9
G19
DIR1
B1 18
B2 17
B3 16
B4
15
B5 14
B6 13
B7 12
B8
11
74LS139
A
2
B3
G
1
Y0
4
Y1 5
Y2 6
Y3
7
Thieát keá traïm caân xe
Trang 91
là chân G ( chân số 1) tích cực mức thấp.
Bảng chân trị:
G B A Y0 Y1 Y2 Y3
1
0
0
0
0
X X
0 0
0 1
1 0
1 1
1 1 1 1
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
6) 74LS04 :
74LS04 bao gồm 6 cổng NOT như trên. Chân số 8 là chân mass, chân 16 nối
lên nguồn 5Volt . IC này được sử dụng trong mạch vi xử lý để làm đảo mức logic
ngõ ra của 74LS138 đến các chân G của 74LS373 nhằm mục đích để xuất dữ liệu ra
Led 7 đoạn hay chốt lại.
2/. 74L373 :
Đây là IC chốt, có các ngõ vào dữ liệu là D0 … D7 . Điều khiển cho phép ngõ ra
OC tích cực mức thấp, ngõ vào điều khiển chốt G, tích cực mức cao.
U2A
74LS04
1 2
U3
74LS373
3
4
7
8
13
14
17
18
1
11
2
5
6
9
12
15
16
19
D0
D1
D2
D3
D4
D5
D6
D7
OC
G
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
Thieát keá traïm caân xe
Trang 92
Bảng trạng thái hoạt động :
OC
Enable
G
D Output
H X X HiZ
L H H H
L H L L
L L X Q0
Khi OC ở mức cao, ngõ ra ở trạng thái tổng trở cao, bất chấp ngõ vào G và D
ở trạng nào.
Khi OC ở mức thấp : nếu G ở mức logic 1 thì dữ liệu được cho qua từ D sang
Q. nếu G ở mức logic 0 thì dữ liệu được chốt lại.
7) LM336 – 5.0 :
LM336 – 5.0 IC ổn áp chính xác 5Volt với hệ số nhiệt thấp và ổn định cao.
LM336 – 5.0 còn cung cấp chân ADJ cho việc tinh chỉnh điện áp hay hệ số nhiệt
một cách dễ dàng. Tầm nhiệt độ sử dụng là từ 0 đến 70C.
Đặc điểm :
+ Có thể chỉnh được điện áp từ 4 Volt đến 6 Volt với hệ số nhiệt thấp bằng cách
mắc theo sơ đồ thích hợp.
+ Tầm dòng điện sử dụng là từ 600A đến 10mA.
+ Trở kháng động là 6.
+ Sai số khi khởi động là 1%.
+ Đáp ứng nhanh.
+ Dễ dàng chỉnh để cho độ trôi nhiệt nhỏ nhất.
+ Điện áp ngược đánh thủng từ 4,8 đến 5,2 Volt.
D1
LM336-5.0V/SO
4 8
5
Thieát keá traïm caân xe
Trang 93
Tài liệu tham khảo:
1) Giáo trình vi xử lý
Hồ Trung Mỹ
2)Đo lường và điều khiển bằng máy tính
Nguyễn Đức Thành
3)Giáo trinh cảm biến
Nguyễn Đức Chiến
4)Sơ đồ chân linh kiện điện tử
Dương Minh Trí
5)The 8051 Micro Controller
Scott Mackenzie
Và một số website :
www.atmel.com
www.maxim-ic.com
www.massload.com/truckbolt.htm
Thieát keá traïm caân xe
Trang 94
MỤC LỤC
Trang
Lời mở đầu 2
Phần một : Tổng quan về hệ thống cân điện tử . 4
Chương I : Hệ thống cân sử dụng loadcell và ứng dụng . 4
Chương II: Sơ lược các phương pháp và cảm biến được 6
dùng trong việc đo khối lượng.
I) Các phương pháp đo khối lượng. 6
II) Giới thiệu về loadcell. 8
Chương III: Hệ thống cân xe. 17
I) Cầu cân. 17
II) Cách bố trí loadcell và trạm nối dây. 18
III) Thiết bị chỉ thị khối lượng. 22
IV) Quản lý trạm cân dùng máy tính. 23
Chương IV: Giới thiệu một bộ hiển thị khối lượng cụ thể .
và cách cân chỉnh cho đầu cân thực tế. 24
Phần hai: Lý thuyết ứng dụng khi thiết kế mạch. 28
I) Phương pháp biến đổi AD. 28
II) Bộ khuếch đại tín hiệu. 30
III) Max 232 và họ IC biến đổi từ TTL RS232 33
IV) Cách thức giao tiếp với máy tính có sử dụng
trong luận văn. 36
V) Ngôn ngữ sử dụng trong giao tiếp máy tính
Phần ba: Phần thiết kế 42
Chương V) Dùng vi xử lý thực hiện công việc của đầu cân
thực tế.
I) Giới thiệu AT 89C51 và cách kết nối đã sử dụng
trong mạch. 42
II) Sử dụng bộ biến đổi AD 12 bit ICL7109 trong
việc thiết kế 47
Thieát keá traïm caân xe
Trang 95
III) Thiết kế các khối chức năng cho mạch vi xử lý. 55
IV) Giải thích chương trình viết cho vi xử lý
Và lưu đồ giải thuật 77
V) Chương trình cân viết cho máy tính. 88
Phần bốn Phát triển luận văn
Chương VII Kết quả thi công và hướng phát triển của đề tài 90
Phần phụ lục
I) Giới thiệu các IC sử dụng trong mạch.
II) Tài liệu tham khảo.
Các file đính kèm theo tài liệu này:
- luan van tot nghiep.pdf