Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
Bé C«ng Th¬ng
Trêng: §¹i Häc C«ng NghiÖp Hµ Néi
Khoa : §iÖn Tö
§å ¸n m«n häc:
ĐO LƯỜNG ĐIỀU KHIỂN BẰNG MÁY TÍNH
Đề tài: THIẾT KẾ VOLTMET ĐIỆN TỬ SỬ DỤNG CỔNG NỐI TIẾP
GVHD: Vò ThÞ Thu H¬ng SVTH: Vũ Văn Dũng
Ngô Văn Hà
Phạm Huy Hải
Lớp: Điện tử 4K5
Hà Nôi 2014
1
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
Phụ lục
Lời nói đầu
Chương I: Tổng quan về giao tiếp cổng nối tiếp
1. Cấu trúc cổng nối tiếp
2. Cơ bản và ghép nối về chuẩn giao tiếp RS232
3. Sơ đồ ghép nối RS232
4. Phần mềm giao tiếp
Chương II: Giới thiệu chương trình điều khiển Visual Basic
1. Tổng quan về Visual Basic
2. Các thao tác cơ bản khi xây dựng ứng dụng
Chương III: Cấu trúc Vi Điều Khiển 8051
1. Giới thiệu tổng quan về họ 8051 (AT 89S52)
2. Sơ đồ khố và chức năng
3. Giới thiệu ADC0804
4. Giới thiệu Max232
Chương IV: Các chương trình thiết kế mô phỏng Voltmet điện tử
1. Mô phỏng Proteus và Visual Basic
2. Các chương trình điều khiển
Chương V: Ứng dụng
Lêi Nãi §Çu
2
o lng iu khin bng mỏy tớnh Lp in t 4 - K5
Trong quỏ trỡnh hin nay, mỏy tớnh in t ó gúp phn khụng nh i vi s phỏt
trin ca xó hi. Do yờu cu ca con ngi ngy cng cao , cỏc th h mỏy tớnh ó
liờn tc c phỏt trin khụng ngng, cựng vi ú l nhiu k thut, cụng ngh mi
c ỏp dng iu khin cỏc mỏy múc, thiờt b,
S kt ni, giao tip vi cỏc thit b ngoi vi bờn ngoi ngy cng tr nờn tinh vi, ũi
hi chớnh xỏc cao hn. Cựng vi ú l s ra i cakthut ghộp ni vi mỏy tớnh
gii quyt vn trao i d liu gia mỏy tớnh vi thit b ngoi vi bờn ngoi, nú
ngy cng nhiu thit b s dng k thut ny em li s tin li, thụng minh ỏp dng
vo cuc sng. Ngoi ra mỏy tớnh c sdng trong cỏc nh mỏy xớ nghip trong cỏc
dõy truyn sn xut, trong cỏc ng dng thit kngụi nh thụng minh. Cỏc thit b,
hthng o lng ghộp ni vi mỏy tớnh cú chớnh xỏc cao.
Vi ti Thit k Voltmet in t s dng cng ni tip qua mt thi gian
nghiờn cu tỡm hiu chỳng em ó hon thnh c ti v cú thờm mt s kin thc
trong lnh vc iu khin ghộp ni vi mỏy tớnh. Tuy nhiờn do thi gian cú hn cng
vi lng kin thc cũn nhiu hn ch nờn ti ca chỳng em cũn nhiu thiu sút,
mong nhn c s gúp ý ca cỏc thy cụ giỏo cựng cỏc bn chỳng em cú th hon
thin ti ny.
Đề tài gồm cỏc phần:
Phần 1:Tng quan v giao tip cng ni tip
Phần 2: Gii thiu chng trỡnh iu khin bng Visual Basic
Phn 3: Cu trỳc Vi iu Khin 8051
Phn 4: Cỏc chng trỡnh thit k mụ phng Voltmet in t
Phn 5: ng dng
Mặc dù chúng em rất cố gắng để hoàn thành đồ án này đúng thời hạn ,nhng không
thể trỏnh khỏi những thiếu sót mong quí thầy cô thông cảm .Chúng em mong đợc sự
đóng góp ý kiến của các thầy cô và các bạn .Cuối cùng chúng em xin chân thành cảm
ơn quí thầy cô cùng các bạn sinh viên.
Chng I: TNG QUAN V GIAO TIP CNG NI
TIP
3
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
1. Cấu trúc cổng nối tiếp
Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi, có
các ưu điểm sau:
- Khoảng cách truyền xa hơn truyền song song.
- Số dây kết nối ít.
- Có thể truyền không dây dùng hồng ngoại.
- Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device).
- Cho phép nối mạng.
- Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc.
- Có thể cung cấp nguồn cho các mạch điện đơn giản
Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment) và DCE
(Data Communication Equipment). DCE là các thiết bị trung gian như MODEM còn
DTE là
các thiết bị tiếp nhận hay truyền dữ liệu như máy tính, PLC, vi điều khiển, … Việc
trao đổi
tín hiệu thông thường qua 2 chân RxD (nhận) và TxD (truyền). Các tín hiệu còn lại có
chứcnăng hỗ trợ để thiết lập và điều khiển quá trình truyền, được gọi là các tín hiệu
bắt tay
(handshake). Ưu điểm của quá trình truyền dùng tín hiệu bắt tay là có thể kiểm soát
đường
truyền.
Tín hiệu truyền theo chuẩn RS-232 của EIA (Electronics Industry Associations).
Chuẩn RS-232 quy định mức logic 1 ứng với điện áp từ -3V đến -25V (mark), mức
logic 0
ứng với điện áp từ 3V đến 25V (space) và có khả năng cung cấp dòng từ 10 mA đến
20 mA.
Ngoài ra, tất cả các ngõ ra đều có đặc tính chống chập mạch.
Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000 bps nhưng nếu cáp
truyền đủ ngắn có thể lên đến 115.200 bps.
Các phương thức nối giữa DTE và DCE:
- Đơn công (simplex connection): dữ liệu chỉ được truyền theo 1 hướng.
- Bán song công ( half-duplex): dữ liệu truyền theo 2 hướng, nhưng mỗi thời điểm
chỉ được truyền theo 1 hướng.
- Song công (full-duplex): số liệu được truyền đồng thời theo 2 hướng.
Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau:
Khi không truyền dữ liệu, đường truyền sẽ ở trạng thái mark (điện áp -10V). Khi bắt
4
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
đầu truyền, DTE sẽ đưa ra xung Start (space: 10V) và sau đó lần lượt truyền từ D0
đến D7 và Parity, cuối cùng là xung Stop (mark: -10V) để khôi phục trạng thái đường
truyền. Dạng
tín hiệu truyền mô tả như sau (truyền ký tự A):
Các đặc tính kỹ thuật của chuẩn RS-232 như sau:
Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps, 4800 bps,
5
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
9600 bps và 19200 bps.
Sơ đồ chân:
Hình 4.2 – Sơ đồ chân cổng nối tiếp
Cổng COM có hai dạng: đầu nối DB25 (25 chân) và đầu nối DB9 (9 chân) mô tả như
hình 4.2. Ý nghĩa của các chân mô tả như sau:
6
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
Truyền thông giữa hai nút
Các sơ đồ khi kết nối dùng cổng nối tiếp:
Hình 4.3 – Kết nối đơn giản trong truyền thông nối tiếp
Khi thực hiện kết nối như trên, quá trình truyền phải bảo đảm tốc độ ở đầu phát và
thu giống nhau. Khi có dữ liệu đến DTE, dữ liệu này sẽ được đưa vào bộ đệm và tạo
ngắt.
Ngoài ra, khi thực hiện kết nối giữa hai DTE, ta còn dùng sơ đồ sau:
7
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
Hình 4.4 – Kết nối trong truyền thông nối tiếp dùng tín hiệu bắt tay
Khi DTE1 cần truyền dữ liệu thì cho DTR tích cực � tác động lên DSR của DTE2
cho biết sẵn sàng nhận dữ liệu và cho biết đã nhận được sóng mang của MODEM
(ảo). Sau
đó, DTE1 tích cực chân RTS để tác động đến chân CTS của DTE2 cho biết DTE1 có
thể
nhận dữ liệu. Khi thực hiện kết nối giữa DTE và DCE, do tốc độ truyền khác nhau
nên phải
thực hiện điều khiển lưu lượng. Quá trinh điều khiển này có thể thực hiện bằng phần
mềm
hay phần cứng. Quá trình điều khiển bằng phần mềm thực hiện bằng hai ký tự Xon và
Xoff.
Ký tự Xon được DCE gởi đi khi rảnh (có thể nhận dữ liệu). Nếu DCE bận thì sẽ gởi
ký tự
Xoff. Quá trình điều khiển bằng phần cứng dùng hai chân RTS và CTS. Nếu DTE
muốn
truyền dữ liệu thì sẽ gởi RTS để yêu cầu truyền, DCE nếu có khả năng nhận dữ liệu
(đang
rảnh) thì gởi lại CTS.
2. Cơ bản và ghép nối về chuẩn giao tiếp RS232
Ngày nay các thiết bị đo lường, điều khiển đều phải giao tiếp với máy tính để quan sát thông số
và chế độ hoạt động của thiết bị như thế nào? Chuẩn giao tiếp được coi là đơn giản và dễ dùng đó
là RS232. Hầu như các thiết bị đều được giao tiếp với máy tính thông qua chuẩn này. Bài viết này sẽ
nói về cơ bản chuẩn giao tiếp RS232: Tổng quan chung về RS232, Sơ đồ ghép nối, Giao diện phần
mềm.
8
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
1) Đặt vấn đề
Vấn đề giao tiếp giữa PC và vi điều khiển rất quan trọng trong các ứng dụng điều
khiển, đo lường Ghép nối qua cổng nối tiếp RS232 là một trong những kỹ thuật
được sử dụng rộng rãi để ghép nối các thiết bị ngoại vi với máy tính.Nó là một chuẩn
giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất là 2 thiết bị ,
chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu là 12.5 đến 25.4m, tốc độ
20kbit/s đôi khi là tốc độ 115kbit/s với một số thiết bị đặc biệt. Ý nghĩa của chuẩn
truyền thông nối tiếp nghĩa là trong một thời điểm chỉ có một bit được gửi đi dọc theo
đường truyền.
Có hia phiên bản RS232 được lưu hành trong thời gian tương đối dài là RS232B và
RS232C. Nhưng cho đến nay thì phiên bản RS232B cũ thì ít được dùng còn RS232C
hiện vẫn được dùng và tồn tại thường được gọi là tên ngẵn gọn là chuẩn RS232
Các máy tính thường có 1 hoặc 2 cổng nối tiếp theo chuẩn RS232C được gọi là cổng
Com. Chúng được dùng ghép nối cho chuột, modem, thiết bị đo lường Trên main
máy tính có loại 9 chân hoặc lại 25 chân tùy vào đời máy và main của máy tính. Việc
thiết kế giao tiếp với cổng RS232 cũng tương đối dễ dàng, đặc biệt khi chọn chế độ
hoạt động là không đồng bộ và tốc độ truyền dữ liệu thấp.
2) Ưu điểm của giao diện nối tiếp RS232
+ Khả năng chống nhiễu của các cổng nối tiếp cao
+ Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện
+ Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối tiếp
3) Những đặc điểm cần lưu ý trong chuẩn RS232
+ Trong chuẩn RS232 có mức giới hạn trên và dưới (logic 0 và 1) là +-12V. Hiện nay
đang được cố định trở kháng tải trong phạm vi từ 3000 ôm - 7000 ôm
+ Mức logic 1 có điện áp nằm trong khoảng -3V đến -12V, mức logic 0 từ +-3V đến
12V
9
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
+ Tốc độ truyền nhận dữ liệu cực đại là 100kbps ( ngày nay có thể lớn hơn)
+ Các lối vào phải có điện dung nhỏ hơn 2500pF
+ Trở kháng tải phải lớn hơn 3000 ôm nhưng phải nhỏ hơn 7000 ôm
+ Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp
RS232 không vượt qua 15m nếu chúng ta không sử model
+ Các giá trị tốc độ truyền dữ liệu chuẩn :
50,75,110,750,300,600,1200,2400,4800,9600,19200,28800,38400 56600,115200
bps
4) Các mức điện áp đường truyền
RS 232 sử dụng phương thức truyền thông không đối xứng, tức là sử dụng tín hiệu
điện áp chênh lệch giữa một dây dẫn và đất. Do đó ngay từ đầu tiên ra đời nó đã mang
vẻ lỗi thời của chuẩn TTL, nó vấn sử dụng các mức điện áp tương thích TTL để mô tả
các mức logic 0 và 1. Ngoài mức điện áp tiêu chuẩn cũng cố định các giá trị trở kháng
tải được đấu vào bus của bộ phận và các trở kháng ra của bộ phát.
Mức điện áp của tiêu chuẩn RS232C ( chuẩn thường dùng bây giờ) được mô tả như
sau:
+ Mức logic 0 : +3V , +12V
+ Mức logic 1 : -12V, -3V
Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến. Chính vì từ
- 3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi giá trị logic
từ thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ trong
một thơì gian ngắn hợp lý. Điều này dẫn đến việc phải hạn chế về điện dung của các
thiết bị tham gia và của cả đường truyền. Tốc độ truyền dẫn tối đa phụ thuộc vào
chiều dài của dây dẫn. Đa số các hệ thống hiện nay chỉ hỗ trợ với tốc độ 19,2 kBd .
5) Cổng RS232 trên PC
Hầu hết các máy tính cá nhân hiện nay đều được trang bị ít nhất là 1 cổng Com hay
cổng nối tiếp RS232. Số lượng cổng Com có thể lên tới 4 tùy từng loại main máy tính.
Khi đó các cổng Com đó được đánh dấu là Com 1, Com 2, Com 3 Trên đó có 2 loại
đầu nối được sử dụng cho cổng nối tiếp RS232loại 9 chân (DB9) hoặc 25 chân
(DB25). Tuy hai loại đầu nối này có cùng song song nhưng hai loại đầu nối này được
phân biệt bởi cổng đực (DB9) và cổng cái (DB25)
Ta xét sơ đồ chân cổng Com 9 chân:
10
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
Trên là các kí hiệu chân và hình dạng của cổng DB9
Chức năng của các chân như sau:
+ chân 1 : Data Carrier Detect (DCD) : Phát tín hiệu mang dữ liệu
+ chân 2: Receive Data (RxD) : Nhận dữ liệu
+ chân 3 : Transmit Data (TxD) : Truyền dữ liệu
+ chân 4 : Data Termial Ready (DTR) : Đầu cuối dữ liệu sẵn sàng được kích hoạt bởi
bộ phận khi muốn truyền dữ liệu
+ chân 5 : Singal Ground ( SG) : Mass của tín hiệu
+ chân 6 : Data Set Ready (DSR) : Dữ liệu sẵn sàng, được kích hoạt bởi bộ truyền
khi nó sẵn sàng nhận dữ liệu
+ chân 7 : Request to Send : yêu cầu gửi,bô truyền đặt đường này lên mức hoạt động
khi sẵn sàng truyền dữ liệu
+ chân 8 : Clear To Send (CTS) : Xóa để gửi ,bô nhận đặt đường này lên mức kích
hoạt động để thông báo cho bộ truyền là nó sẵn sàng nhận tín hiệu
+ chân 9 : Ring Indicate (RI) : Báo chuông cho biết là bộ nhận đang nhận tín hiệu
rung chuông
Còn DB28 bây giờ hầu hết các main mới ra đều không có cổng này nữa. Nên tôi
không đề cập đến ở đây.
6) Quá trình dữ liệu
a) Quá trình truyền dữ liệu
Truyền dữ liệu qua cổng nối tiếp RS232 được thực hiện không đồng bộ. Do vậy nên
tại một thời điểm chỉ có một bit được truyền (1 kí tự). Bộ truyền gửi một bit bắt đầu
(bit start) để thông báo cho bộ nhận biết một kí tự sẽ được gửi đến trong lần truyền bit
tiếp the . Bit này luôn bắt đầu bằng mức 0 Tiếp theo đó là các bit dữ liệu (bits data)
được gửi dưới dạng mã ASCII( có thể là 5,6,7 hay 8 bit dữ liệu) Sau đó là một Parity
bit ( Kiểm tra bit chẵn, lẻ hay không) và cuối cùng là bit dừng - bit stop có thể là 1,
1,5 hay 2 bit dừng.
b) Tốc độ Baud
Đây là một tham số đặc trưng của RS232. Tham số này chính là đặc trưng cho quá
trình truyền dữ liệu qua cổng nối tiếp RS232 là tốc độ truyền nhận dữ liệu hay còn gọi
11
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
là tốc độ bit. Tốc độ bit được định nghĩa là số bit truyền được trong thời gian 1 giây
hay số bit truyền được trong thời gian 1 giây. Tốc độ bit này phải được thiết lập ở bên
phát và bên nhận đều phải có tốc độ như nhau ( Tốc độ giữa vi điều khiển và máy tính
phải chung nhau 1 tốc độ truyền bit)
Ngoài tốc độ bit còn một tham số để mô tả tốc độ truyền là tốc độ Baud. Tốc độ Baud
liên quan đến tốc độ mà phần tử mã hóa dữ liệu được sử dụng để diễn tả bit được
truyền còn tôc độ bit thì phản ánh tốc độ thực tế mà các bit được truyền.Vì một phần
tử báo hiệu sự mã hóa một bit nên khi đó hai tốc độ bit và tốc độ baud là phải đồng
nhất
Một số tốc độ Baud thường dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600,
19200, 28800, 38400, 56000, 115200 … Trong thiết bị họ thường dùng tốc độ là
19200
Khi sử dụng chuẩn nối tiếp RS232 thì yêu cầu khi sử dụng chuẩn là thời gian chuyển
mức logic không vượt quá 4% thời gian truyền 1 bit. Do vậy, nếu tốc độ bit càng cao
thì thời gian truyền 1 bit càng nhỏ thì thời gian chuyển mức logic càng phải nhỏ. Điều
này làm giới hạn tốc Baud và khoảng cách truyền.
c) Bit chẵn lẻ hay Parity bit
Đây là bit kiểm tra lỗi trên đường truyền. Thực chất của quá trình kiểm tra lỗi khi
truyền dữ liệu là bổ xung thêm dữ liệu được truyền để tìm ra hoặc sửa một số lỗi
trong quá trình truyền . Do đó trong chuẩn RS232 sử dụng một kỹ thuật kiểm tra chẵn
lẻ.
Một bit chẵn lẻ được bổ sung vào dữ liệu được truyền để ch thấy số lượng các bit "1"
được gửi trong một khung truyền là chẵn hay lẻ.
Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi chả hạn như 1,3,,5,7,9 Nếu như một
bit chẵn được mắc lỗi thì Parity bit sẽ trùng giá trị với trường hợp không mắc lỗi vì
thế không phát hiện ra lỗi. Do đó trong kỹ thuật mã hóa lỗi này không được sử dụng
trong trường hợp có khả năng một vài bit bị mắc lỗi.
Còn cách thức truyền dẫn. Phần này tôi không đề cập các bạn vui lòng xem trong giáo
trình.
3. Sơ đồ ghép nối RS232
Có rất nhiều mạch giao tiếp của RS232 giữa vi điều khiển hay các thiết bị khác.
Dưới đây là những mạch giao tiếp thường được dùng.
1) Mạch chuẩn giao RS232 dùng IC Max232
Max232 là IC chuyên dùng cho giao tiếp giữa RS232 và thiết bị ngoại vi.
Max232 là IC của hãng Maxim. Đây là IC chay ổn định và được sử dụng phổ
biến trong các mạch giao tiếp chuẩn RS232. Giá thành của Max232 phù hợp
(12K hay 10K) và tích hợp trong đó hai kênh truyền cho chuẩn RS232. Dòng
tín hiệu được thiết kế cho chuẩn RS232 . Mỗi đầu truyền ra và cổng nhận tín
hiệu đều được bảo vệ chống lại sự phóng tĩnh điện ( hình như là 15KV). Ngoài
ra Max232 còn được thiết kế với nguồn +5V cung cấp nguồn công suất nhỏ.
12
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
Mạch giao tiếp như sau :
Đây là mạch giao tiếp 1 kênh dùng Max232. Còn giao tiếp 2 kênh thì tương tự. Mạch
này được sử dụng khá nhiều trong chuẩn giao tiếp RS232.
4. Phần mền giao tiếp
Giao tiếp chuẩn giữa RS232 và vi điều khiển phải thông qua phần mền giao
diện để nhận biết được dữ liệu truyền lên và nhận xuống như thế nào. Hiện tại
có rất nhiều cách lập trình giao tiếp cho RS232 với vi xử lý nhưng mà hay dùng
nhất là bộ công cụ Visual C++. Bộ công cụ này lập trình giúp lập trình giao
diện thông qua cổng RS232.Ngoài bộ công cụ này còn có bộ công cụ của
Delphi cũng được dùng khá nhiều.
Trong trường hợp người dùng mà không biết lập trình giao diện thì có thể sử
dụng công cụ trực tiếp của windown. Đó là Hyper Terminal. Công cụ này cho
ta giao diện khá đơn giản chỉ truyền nhận dữ liệu thông qua cổng RS232. Đối
với Win XP thì các bạn có thể vào đây để lấy nó ra : Start/All
Program/Accessories/communations/Hyper Terminal/. Thiết lập thông số quan
trọng là ok.
Bộ công cụ Hyper Terminal có giao diện khá cổ điện nên người dùng khó kiểm
soát được dữ liệu truyền lên nhận xuống như thế nào. Do vậy trên mạng bây
giờ có bộ công cụ lập trình sẵn cho giao tiếp cổng com. Đó là phần mền
Terminal ( download tại hội quán). Phần mền này có giao diện khá hơn Hyper
Terminal nhưng nó chỉ có box nhận dữ liệu và truyền dữ liệu.
13
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
Chương II: Giới thiệu chương trình điều khiển
bằng Visual Basic
1. Tổng quan về Visual Basic:
Visual Basic (Visual Basic) là sản phẩm của Microsoft, một thành phần
phần của
bộ Visual Studio.
Chức năng: Là một ngôn ngữ lập trình dùng để xây dựng các ứng dụng
chạy trên
môi trường Windows.
Đặc điểm: Trực quan, cung cấp các công cụ thuận lợi cho việc tạo các giao
diện.
Cài đặt: từ đĩa CD VB6.0, chạy file setup, thực hiện các bước theo hướng
dẫn.
Khởi động: Start/Programs/Microsoft Visual Basic 6.0/Microsoft V Basic
6.0
Phiếu New: standard EXE tạo mới một ứng dụng (Project). Phiếu Existing:
mở
ứng dụng đã có.
Cửa sổ giao diện của Visual Basic thường có các cửa sổ con, qui định việc
ẩn
hiện bằng các thao tác:
- View/Project Explorer: trình bày các thành phần của một ứng dụng.
- View/Properties Window: trình bày các thuộc tính của đối tượng được
chọn.
- View/ Form Layout Window: quy định vị trí xuất hiện của cửa sổ kết quả.
Mỗi ứng dụng là một chương trình bao gồm các chương trình con tương
ứng với
14
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
từng sự kiện. Chọn View/Code để viết và xem mã lệnh của các chương
trình con
này. Chọn View/Object để thiết kế giao diện cho ứng dụng. VB lưu giữ các
thông
tin của một ứng dụng bằng nhiều tập tin .FRM (nội dung form), .VBP
(chương trình
chính),…Vì vậy nên tạo thư mục riêng cho từng ứng dụng.
Giao diên chương trình Visual Basic:
2. Các thao tác cơ bản khi xây dựng ứng dụng:
15
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
1. Tạo mới một ứng dụng, mở một ứng dụng sẵn có: thao tác như đã nói
trong
mục trên.
2. Lưu một ứng dụng: chọn biểu tượng Save Project, đặt tên cho các tập
tin .FRM,
.VBP. Chú ý rằng phục vụ cho cùng một ứng dụng có nhiều tập tin.
3. Tạo một đối tượng (ô điều khiển): chọn loại đối tượng trong Toolbox rồi vẽ
lên
form.
4. Quy định thuộc tính cho đối tượng: chọn đối tượng, chọn thuộc tính, xác
lập giá
trị cho thuộc tính trong Properties Window.
5. Viết mã lệnh: nhắp đúp lên đối tượng hoặc View/Code rồi viết mã lệnh
tương
ứng. Trên cửa sổ Code có thể chọn đối tượng và sự kiện của đối tượng trên
các
combobox.
6. Chạy chương trình: F5 hoặc chọn Run/start hoặc chọn nút start trên thanh
công
cụ.
7. Thoát khỏi VB: như các ứng dụng khác trên windows
III. Các khái niệm cơ bản.
1. Đối tượng và các khái niệm liên quan.
Hoạt động của một chương trình VB hầu như đều liên quan đến một số các
đối
tượng nào đó. Các đối tượng này có thể là Form, có thể là các ô điều khiển
như
Label, Textbox, Command Button,…Một đối tượng có thể có các thành phần
sau:
+ Thuộc tính (property): quy định những tính chất của đối tượng như kích
thước,
màu sắc, vị trí, giá trị,…
Cú pháp: <Tên_đối_tượng>.<tên thuộc tính>=<giá trị thuộc tính>
Ví dụ: txt1.text=”Visual Basic”
Các thuộc tính thông dụng của các đối tượng:
- Name: tên để phân biệt với đối tượng khác, dùng để truy xuất đến các giá trị
thuộc tính của đối tượng. Tên không chứa khoảng trống, không gõ dấu tiếng
Việt.
Tên của các đối tượng nên đặt kèm theo phía trước là loại của đối tượng đó:
Form: frm, TextBox: txt, Command: Cmd, Label: Lbl, ComboBox: Cmb,…để
thuận lợi cho việc khai báo biến về sau.
16
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
- Caption: Tiêu đề của đối tượng.
- Font: qui định font chữ cho đối tượng.
- BackColor: màu nền của đối tượng.
- Height, Width: chiều cao, độ rộng của đối tượng.
- Left, Top: vị trí từ biên trái và biên trên đến góc trên trái của đối tượng.
- Visible: hiển thị (true) hay không hiển thị (false) đối tượng khi chạy ứng
dụng.
+ Phương thức (method): hoạt động chủ động (không có tác động bên ngoài)
của
bản thân đối tượng như khi chương trình bắt đầu chạy,…
+ Sự kiện (event): hoạt động bị động của đối tượng như xảy ra khi kích chuột,
…
Cú pháp <Tên_đối_tượng>.<tên phương thức>
Ví dụ Form1.show
2. Phương pháp lập trình hướng sự kiện.
+ Dùng giao diện để tương tác giữa người dùng và chương trình.
+ Người dùng phải hoạch định thứ tự cho các sự kiện.
+ Thứ tự các đoạn mã lệnh ứng với các sự kiện là không quan trọng.
+ Trên một đối tượng có thể có nhiều sự kiện khác nhau.
IV. Các đối tượng cơ bản.
1. Form
Là đối tượng chứa một số đối tượng khác của một ứng dụng. Khi chạy nó là
màn
hình giao diện của ứng dụng.
Một số sự kiện của form:
- Initialize: được hệ thống kích hoạt đầu tiên nên có thể dùng để thiết lập các
thuộc tính ban đầu cho form.
- Load: xảy ra sau sự kiện trên có thể thiết lập các thuộc tính ban đầu cho các
đối
tượng của form.
- Click: xảy ra khi nguời dùng nhắp chuột trên form.
Một số phương thức của form:
- Show: hiển thị form lên màn hình, sau khi show được gọi các phương thức
của
các ô điều khiển khác trên form mới thực hiện được.
- Hide: che giấu một form nhưng không giải phóng bộ nhớ.
- Load: nạp form vào bộ nhớ nhưng chưa xuất hiện trên màn hình.
- Unload: ngược lại của Load
Có thể dùng tên ngầm định “Me” thay cho tên Form đang xử lý.
2. Label.
Đối tượng dùng để hiển thị thông tin như lời chú giải, lời nhắc (1) cũng có thể
17
Đo lường điều khiển bằng máy tính Lớp Điện tử 4 - K5
được dùng để xuất kết quả (2). Thuộc tính thường dùng là Caption. Những
Label
(1) thường xác lập thuộc tính trong cửa sổ properties. Các label (2) dùng lệnh
dạng
<Tên label>.Caption = “Nội dung”
3. TextBox.
Đối tượng dùng để nhập, xuất dữ liệu. Thuộc tính quan trọng nhất là Text,
chứa
dữ liệu của ô, mặc định có kiểu chuỗi. Vì vậy, cần chuyển đổi kiểu nếu muốn
sử
dụng dữ liệu ở các kiểu khác. TextBox không có thuộc tính Caption.
Một số thuộc tính, sự kiện khác:
- ScrollBars: thuộc tính qui định thanh cuốn ngang, dọc có hay không.
- Maxlength: thuộc tính qui định chiều dài tối đa của dữ liệu nhập vào.
- Change: sự kiện xảy ra khi dữ liệu của ô bị thay đổi.
- GotFocus: sự kiện xảy ra khi con trỏ được nhảy vào ô.
- LostFocus: sự kiện xảy ra khi con trỏ nhảy ra khỏi ô.
- SetForcus: phương thức nhằm đưa con trỏ vào ô.
4. Command Button
Đối tượng thường dùng để điều khiển việc thực hiện một công việc nào đó
của
ứng dụng. Sự kiện thường dùng Click để thi hành một đoạn mã lệnh tương
ứng.
Kí hiệu & trong Caption của một command button có tác dụng tạo phím nóng,
người sử dụng gõ ctrl+kí hiệu sau dấu & có tác dụng như nhắp chuột.
18
o lng iu khin bng mỏy tớnh Lp in t 4 - K5
Chng III:
cấu trúc vi điều khiển 8051
1. Giới thiệu tổng quan về họ 8051( AT 89S52)
Họ vi điều khiển 8051(còn gọi là C51) là một trong những họ vi điều khiển thông
dụng nhất. Đây là các bộ vi điều khiển 8 bít đợc sản xuất theo công nghệ CMOS .Một
số loại vi điều khiển thuộc họ 8051 thông dụng nhất:
AT89C2051,AT89C4051,AT89C51,AT89S52 Trong đó AT89S52 là một bộ vi điều
khiển thông dụng giá rẻ có nhiều chức năng và đặc biệt có tích hợp sẵn bộ nạp trên
chíp.
Bộ vi điều khiển AT89S52 gồm các khối chức năng chính sau đây:
CPU (Central Processing Unit) bao gồm:
- Thanh ghi tích luỹ A
- Thanh ghi tích luỹ phụ B, dùng cho phép nhân và phép chia
- Đơn vị logic học( ALU: Arithmetic Logical Unit)
- Từ trạng thái chơng trình( PSW: Progam Status Word)
- Bốn băng thanh ghi
- Con trỏ ngăn xếp
Bộ nhớ chơng trình( Bộ nhớ ROM) gồm 8Kb Flash.
Bộ nhớ dữ liệu( Bôn nhớ RAM) gồm 256 bytes.
Bộ UART (Universal Ansynchronous Receiver and Tranmitter) làm chức năng
truyền nhận nối tiếp, nhờ khối này, AT89S52 có thể giao tiếp với máy tính qua cổng
COM.
3 bộ Timer /Counter 16 bít thực hiện các chức năng định thời và đếm sự kiện.
WDM( Watch Dog Timer) đợc dùng để phục hồi lại hoạt động của CPU khi nó bị treo
bởi một nguyên nhân nào đó. WDM ở AT89S52 gồm một bộ Timer 14 bít, một bộ
Timer 7 bít, thanh ghi WDTPRG( WDT programable) điều khiển Timer 7 bit và một
thanh ghi chớc năng WDTRST( WDM register). Bình thờng WDT không hoạt
động( bị cấm), để cho phép WDT, các giá trị 1EH và E1H cần phải đợc ghi liên tiếp
vào thanh ghi WDTRST. Timer 14 bit của WDT sẽ đếm tăng dần sau mỗi chu kỳ đồng
hồ cho đến giá trị 16383 thì xảy ra tràn. Khi xảy ra tràn, chân RTS sẽ đợc đặt ở mức
cao trong thời gian 96.Tosc (Tossc=1/Fosc) và AT89S52 sẽ đợc reset. Khi WDT hoạt
động, ngoại trừ reset phần cứng và reset do WDT tràn thì không có cách nào cấm đợc
WDT, vì vậy khi sử dụng WDT thì các đoạn mã chơng trình phải đợc đặt trong các khe
thời gian từ khi giữa các lần WDT đợc khởi tạo lại.
2. S kh v chc nng
19
o lng iu khin bng mỏy tớnh Lp in t 4 - K5
1.Port 0(P0.0-P0.7 hay từ chân 32 đến chân 39): Gồm 8 chân, ngoài chức năng
xuất nhập ra, Port 0 còn là Bus đa hợp dữ liệu và địa chỉ( AD0-AD7), chức năng này
sẽ đợc sử dụng khi AT89S52 giao tiếp với thiết bị ngoài có kiến trúc Bus
2.Port 1( P1.0-P1,7 hay từ chân 1 đến chân 8) : Có chức năng xuất nhập theo bit
và byte. Ngoài ra, 3 chân P1.5, P1.6, P1.7 đợc dùng để nạp ROM theo chuẩn ISP, 2
chân P1.0 và P1.1 đợc dùng cho bộ Timer 2
20
o lng iu khin bng mỏy tớnh Lp in t 4 - K5
3.Port 2( P2.0- P2.7 hay từ chân 21 đến chân 28): Là một port có công dụng
kép: là đờng xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ
nhớ mở rộng.
4.Port 3( P3.0- P3.7 hay từ chân 10 đến chân 17): Mỗi chân trên port 3 ngoài
chức năng xuất nhập ra còn có một chức năng riêng:
Port Tên
Chc nng chuyn i
P3.0 RXD
D liu nhn cho Port ni tip
P3.1 TXD
D liu phát cho Port ni tip
P3.2 INT0
Ngt 0 bên ngoài
P3.3 INT1
Ngt 1 bên ngoài
P3.4 T0
Ngắt vào ca Timer/Counter 0
P3.5 T1
Ngắt vào ca Timer/Counter 1
P3.6 WR
Xung ghi b nh d liu ngoài
P3.7 RD
Xung c b nh d liu ngoài
21
o lng iu khin bng mỏy tớnh Lp in t 4 - K5
5. RST( Reset- chân 9):
Mức tích cực của chân này là mức 1, để reset ta phải đa mức 1(5V) đến
chân này với thời gian tối thiểu 2 chu kỳ máy ( tơng đơng 2uS đối với thạch anh
12MHz ).
6.XTAL1, XTAL2:
AT89S52 có một bộ dao động trên chip, nó thờng đợc nồi với một bộ dao
động thạch anh có tần số lớn nhất là 33MHz, thông thờng là 12MHz.
7. EA( External Access):
EA thờng đợc mắc lên mức cao (+5V) hoặc mức thấp( GND). Nếu ở mức
cao ,bộ vi điều khiển thi hành chơng trình từ ROM nội . Nếu ở mức thấp, chơng trinh
chỉ đợc thi hành từ bộ nhớ mở rộng.
8.ALE( Address Latch Enable):
ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài trong nửa
đầu của chu kỳ bộ nhớ. Sau đó các đờng port 0 dùng để xuất hoặc nhập dữ liệu trong
nửa chu kỳ sau của bộ nhớ.
9.PSEN( Program Store Enable):
PSEN là điều khiển để cho phép bộ nhớ chơng trình mở rộng và trờng đ-
ợc nối đến chân /OE ( Output Enable) của một EPROM để cho phép đọc các bytes mã
lệnh.
PSEN sẽ ở mức thấp trong thời gian đọc lệnh. Các mã nhị phân của chơng
trình đợc đọc từ EPROM qua Bus và đợc chốt vào thanh ghi lệnh của bộ vi điều khiển
để giải mã lệnh. Khi thi hành chơng trình trong ROM nội, PSEN sẽ ở mức thụ
động( mức cao)
10.Vcc, GND:
AT89S52 dùng nguồn một chiều có dải điện áp từ 4V-5.5V đợc cấp qua
chân 40(+) và chân 20(-)
3. Giới thiệu về ADC0804:
Các bộ chuyển đổi ADC thuộc trong những thiết bị đợc sử dụng rộng rãi nhất để
thu dữ liệu. Các máy tính số sử dụng các giá trị nhị phân , nhng trong thế giới vật lý
thì mọi đại lợng ở dạng tơng tự (liên tục). Nhiệt độ, áp suất (khí hoặc chất lỏng), độ
22
o lng iu khin bng mỏy tớnh Lp in t 4 - K5
ẩm và vận tốc và một số ít trọng những đại lợng vật lý của thế giới thực mà ta gặp
hàng ngày. Một đại lợng vật lý đợc chuyển về dòng điện hoặc điện áp qua một thiết bị
đợc gọi là các bộ biến đổi. Các bộ biến đổi cũng có thể đợc coi nh các bộ cảm biến.
Mặc dù chỉ có các bộ cảm biến nhiệt, tốc độ, áp suất, ánh sáng và nhiều đại lợng tự
nhiên khác nhng chúng đều cho ra các tín hiệu dạng dòng điện hoặc điện áp ở dạng
liên tục. Do vậy, ta cần một bộ chuyển đổi tơng tự số sao cho bộ vi điều khiển có thể
đọc đợc chúng. Một chíp ADC đợc sử dụng rộng rãi là ADC0804.
Chíp ADC0804 là bộ chuyển đổi tơng tự số trong họ các loạt ADC800 từ hãng
National Semiconductor. Nó cũng đợc nhiều hãng khác sản xuất, nó làm việc với +5v
và có độ phân giải là 8 bít. Ngoài độ phân giải thì thời gian chuyển đổi cũng là một
yếu tố quan trọng khác khi đánh giá một bộ ADC. Thời gian chuyển đổi đợc định
nghĩa nh 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. Trong ADC0804 thời gian chuyển đổi thay đổi phụ thuộc vào tần số đồng hồ đ-
ợc cấp tới chân CLK R và CLK IN nhng không thể nhanh hơn 110às. Các chân của
ADC0804 đợc mô tả nh sau:
Hình 3: Sơ đồ chân ADC0804
1. Chân
CS
- chọn chíp: Là một đầu vào tích cực mức thấp đợc sử dụng để kích
hoạt chíp ADC0804. Để truy cập ADC0804 thì chân này phải ở mức thấp.
2. Chân
RD
(cho phép vi điều khiển đọc): Đây là một tín hiệu đầu vào đợc tích cực
mức thấp. Các bộ ADC chuyển đổi đầu vào tơng tự thành số nhị phân tơng đơng
với nó và giữ nó trong một thanh ghi trong.
RD
đợc sử dụng để nhận dữ liệu đợc
chuyển đổi ở đầu ra của ADC0804. Khi CS = 0 nếu một xung cao - xuống - thấp
đợc áp đến chân
RD
thì đầu ra số 8 bít đợc hiển diện ở các chân dữ liệu DB0 -
DB7. Chân
RD
cũng đợc coi nh cho phép đầu ra.
3. Chân ghi
WR
(thực ra tên chính xác là Bắt đầu chuyển đổi). Đây là chân đầu
vào tích cực mức thấp đợc dùng để báo cho ADC0804 bắt đầu quá trình chuyển
đổi. Nếu CS = 0 khi
WR
tạo ra xung thấp - lên - cao thì bộ ADC0804 bắt đầu
chuyển đổi giá trị đầu vào tơng tự V
in
về số nhị phân 8 bít. Lợng thời gian cần
thiết để chuyển đổi thay đổi phụ thuộc vào tần số đa đến chân CLK IN và CLK
R. Khi việc chuyển đổi dữ liệu đợc hoàn tất thì chân INTR đợc ép xuống thấp
bởi ADC 0804.
4. Chân CLK IN và CLK R.
23
o lng iu khin bng mỏy tớnh Lp in t 4 - K5
Chân CLK IN là một chân đầu vào đợc nối tới một nguồn đồng hồ ngoài khi
đồng hồ ngoài đợc sử dụng để tạo ra thời gian. Tuy nhiên ADC0804 cũng có một máy
tạo xung đồng hồ. Để sử dụng máy tạo xung đồng hồ trong (cũng còn đợc gọi là máy
tạo đồng hồ riêng) của ADC0804 thì các chân CLK IN và CLK R đợc nối tới một tụ
điện và một điện trở. Trong trờng hợp này tần số đồng hồ đợc xác định bằng biểu thức:
RC1,1
1
f =
giá trị tiêu biểu của các đại lợng trên là R = 10k và C= 150pF và tần số nhận đợc là f
= 606kHz và thời gian chuyển đổi sẽ mất là 110às.
5. Chân ngắt
INTR
(ngắt hay gọi chính xác hơn là kết thúc chuyển đổi).
Đây là chân đầu ra tích cực mức thấp. Bình thờng nó ở trạng thái cao và 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 đợc chuyển đổi
sẵn sàng để lấy đi. Sau khi
INTR
xuống thấp, ta đặt CS = 0 và gửi một xung cao -
xuống - thấp tới chân
RD
lấy dữ liệu ra của ADC0804.
6. Chân V
in
(+) và V
in
(-).
Đây là các đầu vào tơng tự vi sai mà V
in
= V
in
(+) - V
in
(-). Thông thờng V
in
(-)
đợc nối xuống đất và V
in
(+) đợc dùng nh đầu vào tơng tự đợc chuyển đổi về dạng số.
7. Chân V
CC
.
Đây là chân nguồn nuối +5v, nó cũng đợc dùng nh điện áp tham chiếu khi đầu
vào V
ref/2
(chân 9) để hở.
8. Chân V
ref/2
.
Chân 9 là một điện áp đầu vào đợc dùng cho điện áp tham chiếu. Nếu chân này
hở (không đợc nối) thì điện áp đầu vào tơng tự cho ADC0804 nằm trong dải 0 đến +5v
(giống nh chân V
CC
). Tuy nhiên, có nhiều ứng dụng mà đầu vào tơng tự áp đến V
in
cần
phải khác ngoài dải 0 đến 5v. Chân V
ref/2
đợcdùng để thực thi các điện áp đầu vào khác
ngoài dải 0 - 5v. Ví dụ, nếu dải đầu vào tơng tự cần phải là 0 đến 4v thì V
ref/2
đợc nối
với +2v.
Bảng 12.5 biểu diễn dải điện áp V
in
đối với các đầu vào V
ref/2
khác nhau.
V
ref
/ 2(V) V
in
(V) Step Size (mV)
Hở * 0 đến 5 5/255 = 19.61
2.0 0 đến 4 4/255 = 15.62
1.5 0 đến 3 3/255 = 11.76
1.275 0 đến 2.55 2.55/255 = 10
1.0 0 đến 2 2/255 = 7.84
0.5 0 đến 1 1/255 = 3.92
Bảng 12.5: Điện áp V
ref/2
liên hệ với dải V
in
.
Ghi chú: - V
CC
= 5V
- * Khi V
ref
/2 hở thì đo đợc ở đó khoảng 2,5V
- Kích thớc bớc (độ phân dải) là sự thay đổi nhỏ nhất mà ADC có thể phân
biệt đợc.
9. Các chân dữ liệu DB0 - DB7.
Các chân dữ liệu DB0 - DB7 (DB7 là bít cao nhất MSB và DB0 là bít thấp nhất
LSB) là các chân đầu ra dữ liệu số. Đây là những chân đợ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
bị đa xuống thấp. Để
tính điện áp đầu ra ta có thể sử dụng công thức sau:
24
o lng iu khin bng mỏy tớnh Lp in t 4 - K5
buocthuockich
V
D
in
out
=
Với D
out
là đầu ra dữ liệu số (dạng thập phân). V
in
là điện áp đầu vào tơng tự và
độ phân dải là sự thay đổi nhỏ nhất đợc tính nh là (2 ì V
ref
/2) chia cho 255 đối với
ADC 8 bít.
10.Chân đất t ơng tự và chân đất số.
Đây là những chân đầu vào cấp đất chung cho cả tín hiệu số và tơng tự. Đất t-
ơng tự đợc nối tới đất của chân V
in
tơng tự, còn đất số đợc nối tới đất của chân V
cc
. Lý
do mà ta phải có hai đất là để cách ly tín hiệu tơng tự V
in
từ các điện áp ký sinh tạo ra
việc chuyển mạch số đợc chính xác. Trong phần trình bày của chúng ta thì các chân
này đợc nối chung với một đất. Tuy nhiên, trong thực tế thu đo dữ liệu các chân đất
này đợc nối tách biệt.
Từ những điều trên ta kết luận rằng các bớc cần phải thực hiện khi chuyển đổi
dữ liệu bởi ADC0804 là:
a) Bật CS = 0 và gửi một xung thấp lên cao tới chân
WR
để bắt đầu chuyển đổi.
b) Duy trì hiển thị chân
INTR
. Nếu
INTR
xuống thấp thì việc chuyển đổi đợc hoàn tất
và ta có thể sang bớc kế tiếp. Nếu
INTR
cao tiếp tục thăm dò cho đến khi nó xuống
thấp.
c) Sau khi chân
INTR
xuống thấp, ta bật CS = 0 và gửi một xung cao - xuống - thấp
đến chân
RD
để lấy dữ liệu ra khỏi chíp ADC0804. Phân chia thời gian cho quá
trình này đợc trình bày trên hình 4.
Hình 4: Phân chia thời gian đọc và ghi của ADC0804.
4.Gii thiu v Max232
25
CS
D0
D7
Data out
Read it
End
conversion
Start
conversion
WR
INTR
RD