1. Trang chủ
  2. » Luận Văn - Báo Cáo

Hệ thống thu thập dữ liệu và điều khiển

107 146 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 107
Dung lượng 3,22 MB

Nội dung

Hệ thống này sẽ thu thập dữ liệu từ các kênh chuyển đổi Analog sang Digital, điều khiển hệ thống bằng tín hiệu điện áp được xuất ra, thiết bị hiển thị là màn hình tinh thể lỏng (LCD). Hệ thống được kết nối với máy tính qua cổng nối tiếp, giao diện điều khiển được viết bằng ngôn ngữ Visual Basic.

LỜI NÓI ĐẦU Đề tài thực luận văn tốt nghiệp thiết kế “ Hệ thống thu thập liệu điều khiểnHệ thống thu thập liệu từ kênh chuyển đổi Analog sang Digital, điều khiển hệ thống tín hiệu điện áp xuất ra, thiết bò hiển thò hình tinh thể lỏng (LCD) Hệ thống kết nối với máy tính qua cổng nối tiếp, giao diện điều khiển viết ngôn ngữ Visual Basic Đễ hoàn thành đề tài em xin chân thành cám ơn thầy hướng dẫn HUỲNH HỮU PHƯƠNG, toàn anh công ty Control nói chung phòng Điện tử nói riêng bảo tận tình tạo điều kiện tốt cho em trình thực luận văn Ngày 10 tháng năm 2002 Sinh viên Nguyễn hoàng Huy MỤC LỤC Trang I/ Chuyển đổi AD dùng ADS7841 A/ Sơ lược ADS7841 1/ Giới thiệu 2/ Mô tả chân 3/ Kỹ thuật điều khiển B/ p dụng vào luận văn 1/ Kết nối phần cứng 2/ Phần mềm điều khiển II/ Chuyển đổi DA dùng DAC7611 A/ Sơ lược DAC7611 1/ Giới thiệu 2/ Mô tả chân 3/ Hoạt động B/ p dụng vào luận văn 1/ Kết nối phần cứng 2/ Phần mềm điều khiển III/ Truyền thông nối tiếp với Visual Basic A/ Sơ lược truyền thông nối tiếp B/ Các đặc tính MSComm C/ Sự kiện OnComm D/ Thông báo lỗi E/ Hỏi vòng cổng RS-232 IV/ Màn hình tinh thể lỏng LCD A/ Chức chân B/ Nguồn cung cấp hoạt động C/ Tập lệnh điều khiển D/ p dụng vào luận văn 1/ Sơ đồ kết nối 2/ Phần mềm nạp cho 8951 V/ Hoạt động port nối tiếp 8951 -3 - 12 13 14 - 16 17 -18 18 - 20 20 - 23 23 - 24 24 - 26 27 28 39 40 41 - 28 39 40 41 42 43 - 44 44 - 45 45 - 48 48 49 A/ Giới thiệu 50 - 51 B/ Thanh ghi điều khiển port nối tiếp 51 - 52 C/ Các chế độ hoạt động 52 - 56 D/ Khởi động truy xuất ghi cổng nối tiếp57 - 58 E/ Tốc độ baud port nối tiếp 59 - 61 VI/ Hệ thống thu thập số liệu điều khiển A/ Giới thiệu B/ Kết nối phần cứng phần mềm điều khiển 62 - 71 C/ Giao diện điều khiển 1/ Chuyển đổi AD 80 2/ Chuyển đổi DA 84 3/ Hiển thò LCD 87 4/ Các nút lệnh khác VII/ Các hộp điều khiển ActiveX A/ Hộp điều khiển chuyển đổi AD B/ Hộp điều khiển chuyển đổi DA C/ Hộp điều khiển LCD 62 77 - 84 - 87 - 89 90 91 - 94 94 - 95 95 - 100 Sinh viên: Nguyễn Hoàng Huy CHUYỂN ĐỔI AD DÙNG ADS7841 Chuyển đổi từ Analog sang Digital (ADC) trình thiếu hệ thống điều khiển tự động Ngoài IC ADC0809 quen thuộc thò trường có nhiều IC thực việc chuyển đổi AD, ADC0809 có số nhược điểm độ xác không cao (chuyển đổi bit), thời gian chuyển đổi cao (khoảng 120 µs) giao tiếp liệu dạng song song thích hợp cho hệ thống cần độ xác không cao tốn nhiều chân port phải giao tiếp liệu qua data bus Trong đề tài thực luận văn ta thực việc biến đổi AD IC ADS7841 hãng BURR-BROWN ADS7841 có số đặc tính trội so với ADC0809 độ xác tương đối cao (chuyển đổi 12 bit), tốc độ chuyển đổi cao đạt tới tốc độ 5µs đặc biệt giao tiếp liệu dạng nối tiếp tốn chân port vi xử lí (có thể cần tốn chân port) Ngoài ADS7841 ta sử dụng chế độ chuyển đổi bit đễ tăng tốc độ chuyển đổi liệu hệ thống không cần độ xác cao Trước áp dụng vào hệ thống ta giới thiệu sơ lược ADS7841 A/ SƠ LƯC VỀ ADS7841 1/ GIỚI THIỆU : ADS7841 IC chuyển đổi tín hiệu analog sang tín hiệu số 12 bit giao tiếp nối tiếp công ty BURR-BROWN sản xuất ADS7841 gồm kênh chuyển đổi cho phép ta lập trình đễ chọn chuyển đổi AD 12 bit bit tùy theo nhu cầu sử dụng Công suất tiêu thụ khoảng 2mw , nguồn cung cấp đơn V CC =+5V , áp chuẩn VREF cung cấp khoảng từ 100mV đến VCC Tầm điện áp ngõ vào cần đo khoảng từ 0V đến VREF Sinh viên: Nguyễn Hoàng Huy Sơ đồ chân ADS7841 Tiêu thụ lượng thấp , làm việc tốc độ cao có khả phân kênh dễ dàng nên ADS7841 dùng hữu dụng hệ thống đo lường điều khiển công nghiệp , kiểm tra đo lường nguồn lượng với độ xác cao Ngoài sử dụng giao tiếp liệu dạng nối tiếp nên ADS7841 thuận lợi việc trao đổi liệu từ xa ADS7841 bao gồm 16 chân có sơ đồ chân vẽ hình Nhà sản xuất bảo đảm hoạt động tốt tầm nhiệt độ môi trường từ-400C đến +850C 2/MÔ TẢ CHÂN : _ 1- +VCC : Chân cung cấp nguồn từ 2.7V đến 5V _ 2- CH0 : Ngõ vào kênh _ 3- CH1 : Ngõ vào kênh _ 4- CH2 : Ngõ vào kênh _ 5- CH3 : Ngõ vào kênh _ 6- COM : Ground ngõ vào analog , nối với GND chế độ đơn cực , chế độ visai nối với cực “−” Sinh viên: Nguyễn Hoàng Huy _ 7- SHDN chế độ nghó , _ _ đến 5V _ _ mức 8- VREF : 9- +VCC : 10- GND : 11- MODE : thấp : Khi tích cực (mức 0) IC tiêu thụ lượng Ngõ vào áp chuẩn Chân cung cấp nguồn từ 2.7V Ground Chọn chế độ chuyển đổi , chuyển đổi 12 bit , mức cao chế độ chuyển đổi đònh bit mode byte điều khiển (sẽ nói _ 12- DOUT : liệu phần sau) Ngõ liệu nối tiếp , dòch dựa xung clock DCLK Ngõ dạng tổng trở cao chân “CS” _ 13- BUSY : trở cao mức Ngõ dạng tổng chân “CS” mức _ 14- DIN : Ngõ vào liệu nối tiếp , liệu đưa vào dựa xung clock chân DCLK _ 15- CS : Tín hiệu chọn chip _ 16- DCLK : Ngõ vào xung clock, xung clock đễ nhận biết liệu đưa vào (chân DIN) đưa ra(chân DOUT) Sinh viên: Nguyễn Hoàng Huy 3/ KỸ THUẬT ĐIỀU KHIỂN : Hình cách kết nối phần cứng ADS7841 Trong trường hợp kênh chuyển đổi dạng đơn cực nên ta nối thẳng chân “COM” với “GND” ADS7841 cung cấp nguồn đơn cực +5V, tụ 0.1µF dùng đễ lọc nguồn cung cấp Chân “SHDN” đặt mức (nối với VCC) Áp chuẩn cung cấp cho chân VREF lấy nguồn VCC Chân “MODE” đặt mức đễ chọn chế độ chuyển đổi 12 bit Chân “BUSY” khôg cần sử dụng tới , chân “DCLK”, “CS”, “DIN”, “DOUT” nối tới chân vi xử lí ADS7841 cần cung cấp xung clock từ bên thông qua chân “DCLK”, áp chuẩn từ bên vào chân VREF , áp chuẩn có thểø dao động từ +100mV đến +VCC , nguồn cung cấp VCC từ +2.7V tới +5.25V Giá trò áp chuẩn trực tiếp đặt tầm ngõ vào biến đổi Dòng điện chuẩn ngõ vào phụ thuộc vào tốc độ chuyển đổi ADS7841 Ngõ vào analog tín hiệu cần chuyển đổi dạng đơn cực vi sai đưa vào bốn kênh (CH0, CH1, CH2, CH3) Điện áp phải nằm tầm từ điện áp chuẩn V REF đến áp chân “COM”(trong trường hợp đất) Sinh viên: Nguyễn Hoàng Huy trường hợp áp vi sai ta sử dụng hai bốn kênh (CH0, CH1, CH2, CH3) • NGÕ VÀO ANALOG: A2 − A0 (Trường hợp : 001B) CH0 CH1 CH2 CH3 +IN BỘ BIẾN ĐỔI -IN COM SGL/DIF (Trường hợp mức cao) Hình sơ đồ khối khối phân kênh ngõ vào ADS7841 Ngõ vào biến đổi áp bốn kênh so với chân “COM” hai bốn kênh Hai bảng sau mối quan hệ bit A2, A1, A0 bit điều khiển SGL/DIF việc phân kênh ngõ vào analog Điện áp đơn cực (trường hợp bit SGL/DIF mức cao) A2 A1 A0 CH0 CH1 CH2 CH3 COM 0 +IN -IN 1 +IN -IN +IN -IN 1 +IN -IN Điện áp vi sai (trường hợp bit SGL/DIF mức thấp) A2 A1 A0 CH0 CH1 CH2 CH3 COM +IN -IN Sinh viên: Nguyễn Hoàng Huy 1 -IN +IN +IN -IN 1 -IN +IN Những bit điều khiển đưa thông qua chân “DIN” Ta thấy giao tiếp nối tiếp cách chi tiết phần sau Khi biến đổi nhập vào chế độ làm việc , sai lệch điện áp chân +IN –IN bảo vệ dãy tụ điện có sẵn ADS7841 Điện áp ngõ vào –IN giới hạn khoản từ –0.2V đến 1.25V Ngõ vào +IN có tầm từ –0.2V đến V CC + 0.2V Dòng điện ngõ vào tín hiệu analog phụ thuộc tốc độ chuyển đổi ADS7841 Suốt trình lấy mẫu nguồn phải nạp điện cho tụ điện lấy mẫu nằm ADS7841 (khoảng 25pF), sau tụ điện nạp điện đầy đủ giải phóng dòng điện ngõ vào Tốc độ nạp từ nguồn analog tới chuyển đổi phụ thuộc vào tốc độ chuyển đổi • NGÕ VÀO ÁP CHUẨN : Nguồn chuẩn bên đưa vào đặt tầm cho ngõ vào cần chuyển đổi ADS7841 điều khiển điện áp chuẩn tầm từ 100mV đến +VCC Phải giữ sai lệch điện áp analog chân ngõ vào cần chuyển đổi +IN –IN khoảng cho phép Ví dụ chế độ đơn cực với điện áp chuẩn 1.25V , với chân “COM” nối đất kênh ngõ vào chọn ( CH0, CH1, CH2, CH3 ) phải nằm tầm từ 0V đến 1.25V Nếu chân “COM”được kết nối với 0.5V tầm áp vào kênh chọn từ 0.5V đến 1.75V Có vài vấn đề cách đònh chuẩn áp ngõ vào Khi áp chuẩn cung cấp ước số 4096 ( 212) với lượng điện áp ngõ vào analog cần đo , giá trò ngõ (dạng số) bò giảm xuống Điều thường xảy bit có trọng số thấp (LSB) Do sử dụng áp chuẩn số ta phải bù lại Sinh viên: Nguyễn Hoàng Huy lượng Ví dụ sử dung áp chuẩn 2.5V ta phải bù lại 2LSBs ( tức phải cộng vào giá trò (dạng số) ngõ biến đổi Khi sử dung áp chuẩn 0.5V ta phải bù lại 10LSBs Trong trường hợp giá trò bù lại khoảng 1.22mV Ở trường hợp không cần thiết phải dùng áp chuẩn nhỏ ta nên sử dụng áp chuẩn 4.095mV, điều làm giảm sai số trình chuyển đổi đồng thời giúp ta dễ dàng tính giá trò áp ngõ vào cần đo (1 LSB 1mV) Tương tự nhiễu ngõ tăng giá trò LSB thấp Với điện áp chuẩn 100 mV giá trò LSB 24µV Đây mức thấp so với loại nhiễu có thiết bò Kết ngõ (dạng số) không ổn đònh thay đổi xung quanh giá trò số LSBs Với áp chuẩn thấp ta cần phải mắc tụ bypass đễ lọc nguồn , áp chuẩn cung cấp phải nhiễu, tín hiệu ngõ vào cần đo phải nhiễu Điện áp chuẩn đưa vào chân VREF không đệm mà trực tiếp lái tụ điện có chức biến đổi AD ADS7841, cụ thể dòng điện vào 13µA ứng với áp chuẩn 2.5V Dòng chuẩn trực tiếp làm giảm tốc độ chuyển đổi lẫn điện áp chuẩn • XỬ LÍ GIAO TIẾP SỐ tACQ CS 8 DCLK Sinh viên: Nguyễn Hoàng Huy giác 7ms, biên độ V Ta thực chức cách sử dụng thêm hộp điều khiển timer (timer1) Hộp điều khiển Timer có biểu tượng sau: Sự thực thi nút lệnh ta click trái vào nút lệnh “Tam giac” Chương trình nạp cho nút lệnh “Tam giac”: Private Sub Tamgiac_Click() Timer1.Enabled = True End Sub Chương trình nạp cho Timer1 : Private Sub Timer1_Timer() Call ThutucDAC(0) Call ThutucDAC(1) Call ThutucDAC(2) Call ThutucAC(3) Call ThutucDAC(4) Call ThutucDAC(3) Call ThutucDAC(2) Call ThutucDAC(1) End Sub Ta phải quy đònh property “Interval” timer1 7ms 90 Sinh viên: Nguyễn Hoàng Huy Vào trang property timer1 nhập vào ms vào mục Interval, điều có nghóa sau ms thực công việc Timer1 Chọn đặc tính Enable False • Nút lệnh Song vuong Nút lệnh “Song vuong” tạo sóng vuông ngõ biến đổi DA Chu kì sóng vuông ms Biên độ V Ta thực chức cách sử dụng thêm hộp điều khiển timer (timer3) Sự thực thi nút lệnh ta click trái vào nút lệnh “Tam giac” Chương trình nạp cho nút lệnh “Tam giac”: Private Sub Vuong_Click() Timer3.Enabled = True End Sub Chương trình nạp cho boä Timer3 : Private Sub Timer3_Timer() Call ThutucDAC(4) Call ThutucDAC(0) End Sub Ta phải quy đònh property “interval” timer3 2ms đặc tính Enable False • Nút lệnh Finish Nút lệnh kết thúc việc thực tạo sóng điện áp đầu biến đổi DA Sự thực thi nút lệnh ta click trái vào nút lệnh Chương trình nạp cho nút lệnh “Finish” Private Sub Finish_Click() Timer1.Enabled = False Timer3.Enabled = False End Sub C/ HIỂN THỊ TRÊN LCD Trong phần hiển thò hình tinh thể lỏng (LCD) đễ sử dụng nút lệnh phần ta phải khởi động cho LCD chế độ hoạt động Các câu lệnh khởi động cho LCD nạp 91 Sinh viên: Nguyễn Hoàng Huy vào Form_Load tức khởi động hình giao diện LCD khởi động Chương trình nạp cho Form_Load Private Sub Form_Load() Đoạn khởi động truyền thông nối tiếp Đoạn khởi động cho ô Text MSComm1.Output = Chr(4) ‘chọn chế độ hoạt động dòch MSComm1.Output = Chr(6) ‘con trỏ lần xuất kí tự MSComm1.Output = Chr(4) ‘choïn bit data, line, font MSComm1.Output = Chr(63) ‘0.5 * dots MSComm1.Output cursor MSComm1.Output troû MSComm1.Output dòch vò MSComm1.Output End Sub = Chr(4) = Chr(15) = Chr(4) = Chr(1) ‘choïn display “on”, ‘”on” ‘xóa hình ‘trí • Nút lệnh Move cursor Nút lệnh “Move cursor” lênh cho LCD di chuyển trỏ tới vò trí chọn, vò trí người sử dụng nhập vào ô Text2 Text3, ô Text2 hàng chọn , ô Text3 cột chọn Giá trò hợp lệ hàng 2, giá trò hợp lệ cột 15 Thực giá trò cột lên đến 63, vò trí lớn 15 ta không thển thấy nó, muốn thấy ta phải sử dụng lệnh dòch hình đến vò trí Lệnh thực thi ta click trái vào nút lệnh Chương trình nạp cho nút lệnh “Move cursor” Private Sub Movecurse_Click() Dim i As Integer 92 Sinh viên: Nguyễn Hoàng Huy MSComm1.Output = Chr(4) nhãn xuất ‘ nhảy đến ‘lệnh cho LCD i = (Text2.Text - 1) * 64 + Text3.Text i = i + 128 MSComm1.Output = Chr(i) ‘truyền mã lệnh cho LCD End Sub Như ta biết LCD phần trước trỏ có 128 vò trí , 64 vò trí line 64 vò trí line 2, đễ công thức tính i cho phép ta dòch Cursor đến vò trí mong muốn, cộng thêm 128 đễ phù hợp với mã lệnh • Nút lệnh “Display character” Nút lệnh “Display Character” lệnh cho LCD hiển thò chuỗi chọn vò trí cursor đứng Chuỗi người sử dụng nhập vào ô Text5 (dưới nhãn Character) Lệnh thực click trái vào nút lệnh Chương trình nạp cho nút lệnh “Display Character” Private Sub DisplayLCD_Click() Dim i As Integer Dim s As String s = Text5.Text For i = To Len(s) MSComm1.Output = Chr(6) ‘nhảy tới việc hiển thò MSComm1.Output = Mid(s, i, 1) ‘gửi kí tự cần ‘hiển thò Next i End Sub Hàm Len (string) sử dụng đễ lấy chiều dài chuỗi s Hàm Mid (string,vò trí bắt đầu,chiều dài chuỗi mới) đễ lấy kí tự chuỗi đưa vào.Ta thực việc chuyển chuỗi kí tự cách lặp vòng việc gửi kí tự 93 Sinh viên: Nguyễn Hoàng Huy • Nút lệnh “Clear Display” Nút lệnh “Clear Display” lệnh cho LCD xóa hình cho cursor vò trí hàng , cột Lệnh thực click trái vào nút lệnh Chương trình nạp cho nút lệnh “Clear Display” Private Sub Cleardisplay_Click() MSC.Output = Chr(4) ‘nhảy tới việc thực thi lệnh MSComm1.Output = Chr(1) ‘truyền mã lệnh cho LCD End Sub D/ CÁC NÚT LỆNH KHÁC • Nút lệnh “Exit” Nút lệnh Exit đễ kết thúc chương trình giao diện Lệnh thực click trái vào nút lệnh Chương trình nạp cho nút lệnh Exit Private Sub Exit_Click() End End Sub • Nút lệnh “Khoi dong OCX” Nút lệnh dùng đễ khởi động hộp điều khiển OCX mà ta tạo phần sau Lệnh thực click trái vào nút lệnh Chương trình nạp cho nút lệnh “Khoi dong OCX” Private Sub Khoidong_Click() MSComm1.PortOpen = False Call LCD1.KhaibaoPort(1, 1, "38400,n,8,1") Call ADC1.KhaibaoPort(1, 1, "38400,n,8,1") Call DAC1.KhaibaoPort(1, 1, "38400,n,8,1") MSComm1.PortOpen = True End Sub • Nút lệnh “Text OCX” 94 Sinh viên: Nguyễn Hoàng Huy Nút lệnh đễ thử chức ta xây dựng cho hộp điều khiển OCX Lệnh thực click trái vào nút lệnh Chương trình nạp cho nút lệnh “Text OCX” Private Sub ThuOCX_Click() MSComm1.PortOpen = False MSComm1.PortOpen = True End Sub TẠO CÁC HỘP ĐIỀU KHIỂN ACTIVEX Như biết phần trên, phần cứng luận văn gồm ba phần : Chuyển đổi AD (dùng ADS7841), chuyển đổi DA (dùng DAC7611) hiển thò hình tinh thể lỏng LCD Trong phần trước ta viết giao diện điều khiển hệ thống cho người sử dụng Vấn đề đặt phần ta đóng gói phần cách tạo hộp điều khiển ActiveX, hộp điều khiển ta viết hàm chức đễ điều khiển cho ba phần Sở dó nên làm phần giúp ta có thư viện có sẵn hàm chức năng, cần dùng đến ta lôi hộp điều khiển sử dụng hàm chức nó, điều giúp ta dễ lập trình điều khiển hệ thống mà cho người khác sử dụng chức cách dễ dàng Ngoài ưu điểm sử dụng dễ dàng chức xây dựng nhược điểm lớn việc đóng gói thành hộp điều khiển riêng lẽ tốc độ thực giảm nhiều muốn tốc độ cao ta nên thực trực tiếp chương trình 95 Sinh viên: Nguyễn Hoàng Huy Cách tạo hộp điều khiển ActiveX : Khi khởi động Visual Basic ta chọn ActiveX Control từ hộp thoại New Project Kết hình xuất tương tự môi trường Visual Basic bình thường ngoại trừ tiêu đề biểu mẫu Project – [Usercontrol (user Control)] Ta sửa lại theo nhu cầu Sau tạo xong hộp điều khiển ActiveX ta phải bổ sung vào mục Component (thuộc mục Project) Cách sử dụng hộp điều khiển giống việc sử dụng hộp điều khiển MSComm MSChart nói phần trước A/ HỘP ĐIỀU KHIỂN CHUYỂN ĐỔI AD Trong phần biến đổi AD ta xây dựng đặc tính đễ chọn kênh cho biến đổi AD hàm thực việc lấy liệu từ kênh chọn Tuy nhiên trước hết ta tạo biểu mẫu gồm Label có Caption “ANALOG TO DIGITAL CONVERSION” hộp điều khiển truyền thông nối tiếp MSComm Các chức xây dựng cho ADS7841 : • KhaibaoPort(commport, inputlen As Integer, settings As String) Đây thủ tục để khai báo thông số cho truyền thông nối tiếp Thủ tục phải gọi trước sử dụng thủ tục khác Comport : Giao tiếp cổng COM số Inputlen : quy đònh số kí tự đọc vào Settings : đặt tốc độ baud, kiểm tra chẵn lẻ, số bit liệu, bit stop Ví dụ khởi động thông số sau cho cổng COM : cổng COM số 1, kí tự đọc vào, tốc độ baud 38400, không kiểm tra chẵn lẻ, bits liệu, bit stop ta gọi thủ tục sau : Call KhaibaoPort (1, 1, “38400, N,8,1”) Chương trình nạp cho thủ tục “KhaibaoPort” : Public Sub KhaibaoPort( commport, inputlen As Integer, settings As String) 96 Sinh viên: Nguyễn Hoaøng Huy MSComm1.commport = commport MSComm1.settings = settings MSComm1.inputlen = inputlen End Sub • Chanel ( Number As Integer ) Đây thủ tục đễ chọn kênh cần chuyển đổi cho ADS7841 Ví dụ ta cần chọn kênh làm kênh đễ lấy liệu ta gọi thủ tục sau : Call Chanel ( ) Chương trình nạp cho thủ tục “Chanel” : Public Sub Chanel(Number As Integer) Dim i, j As Integer i = 132 j = Number If j = Then i = i + 16 End If If j = Then i = i + 80 End If If j = Then i = i + 32 End If If j = Then i = i + 96 End If MSComm1.PortOpen = True MSComm1.Output = Chr(3) MSComm1.Output = Chr(i) MSComm1.PortOpen = False End Sub • ADC ( somau, a( ) As Integer ) Đây thủ tục đễ thực việc lấy liệu từ kênh chọn Tham số ‘somau’ quy đònh số mẫu cần lấy 97 Sinh viên: Nguyễn Hoàng Huy Chuỗi tham số a( ) chuổi liệu ta cần lấy Ví dụ ta cần lấy 200 mẫu liệu từ kênh liệu chọn với mảng liệu (200 mẫu) chứa vào mảng m ( ), ta cần gọi thủ tục sau : Call ADC ( 200, m( ) ) Chương trình nạp cho thủ tục “Chanel” : Public Sub ADC ( somau, a( ) As Integer ) Dim instring As String Dim i, j, k, l As Integer l = somau MSComm1.PortOpen = True MSComm1.Output = Chr(2) MSComm1.Output = Chr(l) For k = To l Do dummy = DoEvents() Loop Until MSComm1.InBufferCount >= instring = MSComm1.Input i = Asc(instring) Do dummy = DoEvents() Loop Until MSComm1.InBufferCount >= instring = MSComm1.Input j = Asc(instring) j = j * 256 + i a(k) = j Next k MSComm1.PortOpen = False End Sub B/ HOÄP ĐIỀU KHIỂN CHUYỂN ĐỔI DA Trong phần biến đổi DA ta xây dựng thủ tục đễ xuất giá trò điện áp chân IC DAC7611 Ta tạo biểu mẫu gồm Label có Caption “DIGITAL TO ANALOG CONVERSION” hộp điều khiển truyền thông nối tiếp MSComm 98 Sinh viên: Nguyễn Hoàng Huy Các chức xây dựng cho DAC7611 : • KhaibaoPort(commport, inputlen As Integer, settings As String) Đây thủ tục để khai báo thông số cho truyền thông nối tiếp Thủ tục phải gọi trước sử dụng thủ tục khác Comport : Giao tiếp cổng COM số Inputlen : quy đònh số kí tự đọc vào Settings : đặt tốc độ baud, kiểm tra chẵn lẻ, số bit liệu, bit stop Ví dụ khởi động thông số sau cho cổng COM : cổng COM số 2, kí tự đọc vào, tốc độ baud 19200, không kiểm tra chẵn lẻ, bits liệu, bit stop ta gọi thủ tục sau : Call KhaibaoPort (2, 1, “19200, N,8,1”) Chương trình nạp cho thủ tục “KhaibaoPort” : Public Sub KhaibaoPort(commport, inputlen As Integer, settings As String) MSComm1.commport = commport MSComm1.settings = settings MSComm1.inputlen = inputlen End Sub • Xuat (Voltage As Double) Đây thủ tục đễ xuất điện áp cho DAC7611 Tham số ‘Voltage’ hiểu đơn vò Volt Ví dụ cần xuất điện áp 3.2V DAC7611 ta gọi thủ tục sau: Call Xuat ( 3.2 ) Chương trình nạp cho thủ tuïc “Xuat” Public Sub Xuat(Voltage As Double) Dim i, j As Integer j = (1000 * Voltage) Mod 256 i = ((1000 * Voltage) - j) / 256 If i

Ngày đăng: 10/11/2018, 22:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w