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

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

Đ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

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ển ” Hệ 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 Sinh viên Nguyễn hoàng Huy MỤC LỤC 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 Trang -3 - 12 13 14 - 16 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 23 - 24 24 - 26 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 27 - 28 28 - 39 39 - 40 40 - 41 41 - 42 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 17 -18 18 - 20 20 - 23 43 - 44 44 - 45 45 - 48 48 49 V/ Hoạt động port nối tiếp 8951 A/ Giới thiệu B/ Thanh ghi điều khiển port nối tiếp C/ Các chế độ hoạt động D/ Khởi động truy xuất ghi cổng nối tiếp E/ Tốc độ baud port nối tiếp 50 - 51 51 - 52 52 - 56 57 - 58 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 C/ Giao diện điều khiển 1/ Chuyển đổi AD 2/ Chuyển đổi DA 3/ Hiển thò LCD 4/ Các nút lệnh khác 62 62 - 71 77 80 - 84 84 - 87 87 - 89 90 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 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 Và đặ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 : _ _ _ _ _ _ 123456- +VCC CH0 CH1 CH2 CH3 COM : : : : : : Chân cung cấp nguồn từ 2.7V đến 5V Ngõ vào kênh Ngõ vào kênh Ngõ vào kênh Ngõ vào kênh Ground ngõ vào analog , nối với GND chế độ đơn cực , chế độ visai nối với _ 7- SHDN : _ _ 8- VREF 9- +VCC : : cực “−” Khi tích cực (mức 0) IC chế độ nghó , tiêu thụ lượng Ngõ vào áp chuẩn Chân cung cấp nguồn từ 2.7V đến 5V Sinh viên: Nguyễn Hoàng Huy _ _ 10- GND : 11- MODE : _ 12- DOUT : _ 13- BUSY : _ 14- DIN DCLK _ _ : 15- CS : 16- DCLK : Ground Chọn chế độ chuyển đổi , mức thấp chuyển đổi 12 bit , mức cao chế độ chuyển đổi đònh bit mode byte điều khiển (sẽ nói phần sau) Ngõ liệu nối tiếp , liệu dòch dựa xung clock DCLK Ngõ dạng tổng trở cao chân “CS” mức Ngõ dạng tổng trở cao chân “CS” mức Ngõ vào liệu nối tiếp , liệu đưa vào dựa xung clock chân Tín hiệu chọn chip Ngõ vào xung clock, xung clock đễ nhận biết liệu đưa vào (chân DIN) đưa ra(chân DOUT) 3/ KỸ THUẬT ĐIỀU KHIỂN : Hình cách kết nối phần cứng ADS7841 Sinh viên: Nguyễn Hoàng Huy 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 V CC) Á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 V REF , áp chuẩn có thểø dao động từ +100mV đến +V CC , 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) 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) Sinh viên: Nguyễn Hoàng Huy 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 0 +IN -IN 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 Sinh viên: Nguyễn Hoàng Huy 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 ( 12) 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 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 V REF 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 Sinh viên: Nguyễn Hoàng Huy • XỬ LÍ GIAO TIẾP SỐ tACQ CS DCLK 8 DIN BUSY 1110 (MSB) (LSB) DOUT Giản đồ thời gian chuyển đổi 24 chu kỳ xung clock Hình cách điều khiển việc xử lí số ADS7841 Giản đồ mô nguồn tín hiệu số chân Port vi điều khiển xử lí tín hiệu số với giao tiếp nối tiếp ( ý tín hiệu số vào không vượt 5.5V) Trong lần giao tiếp vi xử lí điều khiển bao gồm tám chu kỳ xung clock Một chuyển đổi hoàn tất bao gồm ba lần giao tiếp nối tiếp , tổng 24 chu kỳ xung clock ngõ vào DCLK Tám xung clock sử dụng đễ cung cấp byte điều khiển đưa vào chân DIN Khi chuyển đổi có đủ thông tin cho trình chuyển đổi tới đễ đặt kênh ngõ vào , chế độ chuyển đổi Sau byte điều khiển hoàn thành 12 xung clock kết chuyển đổi analog sang digital, xung clock thứ 13 cho bit cuối kết chuyển đổi Ba xung clock cần thiết đễ hoàn thành byte cuối (DOUT mức thấp) Những xung clock chuyển Sinh viên: Nguyễn Hoàng Huy 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 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 86 Sinh viên: Nguyễn Hoàng Huy 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 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 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 87 Sinh viên: Nguyễn Hoàng Huy Đoạn khởi động cho ô Text MSComm1.Output = Chr(4) MSComm1.Output = Chr(6) MSComm1.Output = Chr(4) MSComm1.Output = Chr(63) MSComm1.Output = Chr(4) MSComm1.Output = Chr(15) MSComm1.Output = Chr(4) MSComm1.Output = Chr(1) End Sub ‘chọn chế độ hoạt động dòch ‘con trỏ lần xuất kí tự ‘chọn bit data, line, font ‘0.5 * dots ‘chọn display “on”, cursor ‘”on” trỏ ‘xóa hình dòch vò ‘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 MSComm1.Output = Chr(4) ‘ nhảy đến nhãn xuất ‘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” 88 Sinh viên: Nguyễn Hoàng Huy 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ự • 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 89 Sinh viên: Nguyễn Hoàng Huy 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” 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 90 Sinh viên: Nguyễn Hoàng Huy 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 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 91 Sinh viên: Nguyễn Hoàng Huy 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) 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 92 Sinh viên: Nguyễn Hoàng Huy 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 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 93 Sinh viên: Nguyễn Hoàng Huy 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/ HỘ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 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) 94 Sinh viên: Nguyễn Hoàng Huy 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ủ tụ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 [...]... phải được điều chỉnh tốt và ít nhiễu 17 Sinh viên: Nguyễn Hoàng Huy DAC7611 được sử dụng trong nhiều lónh vực như : _ Điều khiển quá trình _ Các hệ thống thu thập dữ liệu _ Điều khiển các hệ thống tùy động vòng kín 2/ MÔ TẢ CHÂN : - 1 2 3 4 VDD CS CLK SDI : : : : - 5 LD : - 6 CLR : - 7 GND - 8 Vout : : Nguồn cung cấp Tín hiệu chọn chip Xung clock đễ trao đổi dữ liệu Ngõ vào của dữ liệu nối tiếp... khả năng đễ điều khiển việc trao đổi dữ liệu đó là điều khiển sự kiện và hỏi vòng • Điều khiển sự kiện : Phương pháp điều khiển sự kiện là phương pháp tốt nhất được sử giải phóng máy tính đễ làm những công việc khác , tương tự như khái niệm ngắt trong vi xử lí 8951 Ví dụ như sự kiện Oncomm cho phép ta biết được khi nào có một kí tự được gửi tới trong quá trình điều khiển việc trao đổi dữ liệu nối tiếp,... 2 bộ đệm Điều này có nghóa là dữ liệu mới có thể được nhập vào DAC mà không có bò chèn lên dữ lệu cũ và điện áp ra của sự chuyển đổi Tại thời điểm sau khi dữ liệu được nhập vào thanh ghi dòch , dữ liệu này có thể được đưa vào thanh ghi DAC Quá trình chuyển đổi này sẽ hoàn tất khi chân LD được chuyển từ mức cao sang mức thấp (1 sang 0) Nếu dữ liệu mới được dòch vào thanh ghi dòch trong khi LD ở mức... một trong nhiều công cụ có thể được bổ sung vào đễ tham gia vào các ứng dụng chuyển nhận dữ liệu qua cổng nối tiếp Như vậy ngoài việc sử dụng các tệp DLL, trong Visual Basic còn có sẵn các hộp điều khiển khác, MSComm là một trong các hộp điều khiển đó Bản thân Visual Basic có rất nhiều hộp điều khiển mà ta chỉ gọi ra khi có một ứng dụng cần đến nó Điều khiển truyền thông MSComm cần dùng cho các ứng... một Dữ liệu được đònh dạng ở hệ nhò phân và bit đầu tiên là bit có trọng số lớn nhất (MSB) Tầm điện áp ra từ 0V đến 4.095V, đây là biến đổi DA 12 bit nên độ phân giải sẽ là 1mv (212 = 4095) Mã nhò phân ngõ vào Điện áp ngõ ra (V) FFFH + 4.095 801H +2.049 800H +2.048 7FFH +2.047 000H 0 Bảng chuyển đổi dữ liệu của DAC 7611 Dữ liệu số đưa vào trong DAC7611 được chứa trong 2 bộ đệm Điều này có nghóa là dữ. .. nhanh hơn 50% Cả hai điều này giúp chúng ta có thể tăng khoảng gấp đôi tốc độ chuyển đổi • ĐIỀU KHIỂN NGUỒN CUNG CẤP: Có ba chế độ điều khiển nguồn cung cấp cho ADS7841: chế độ đầy (PD1-PD0 = 11B) , tự động tắt (PD1-PD0 = 00B), và chế độ nghó (chân “SHDN” ở mức thấp) Sự hữu dụng của ba chế độ này tùy thu c vào việc ADS7841 được điều khiển như thế nào Ví dụ như ở tốc độ chuyển đổi cao và chuyển đổi ở chế... viên: Nguyễn Hoàng Huy đổi bỏ qua • BYTE ĐIỀU KHIỂN: Phần trên ta đã biết việc chọn các thông số cho bộ chuyển đổi được thông qua byte điều khiển, ta sẽ xem xét chi tiết về các chức năng của từng bit trong byte điều khiển này Bit đầu tiên là ‘S’ bit (start bit) phải luôn ở mức cao và báo hiệu cho sự bắt đầu của byte điều khiển ADS7841 sẽ bỏ qua những giá trò ngõ vào trên chân “DIN“ cho đến khi bit ‘S’... (MSB) (LSB) Thứ tự của những bit điều khiển trong byte điều khiển Bit Sgl/Dif là bit chọn chế độ ngõ vào cần đo, cụ thể là khi ở mức cao là chọn chế độ ngõ vào đơn cực , ở mức thấp là chọn chế độ vi sai , ở chế độ đơn cực kênh ngõ vào được chọn là chênh lệch áp so với chân “COM”., ở chế độ vi sai hai ngõ vào vi sai được cho bởi hai trong bốn kênh (CH0 đến CH4) tùy thu c vào các bit A2, A2, A0 như đã nói... Hoàng Huy CHUYỂN ĐỔI DA DÙNG DAC7611 Chuyển đổi tín hiệu Digital sang tín hiệu Analog là quá trình quan trọng trong việc điều khiển hệ thống điều khiển tự động Ta không sử dụng IC DAC0808 quen thu c vì một số nhược điểm của nó là độ chính xác không cao (chuyển đổi 8 bit), giao tiếp dữ liệu dạng song song do đó tốn nhiều chân port của vi xử lí (hoặc phải sử dụng dạng giao tiếp qua data bus) Trong luận... quá trình điều khiển việc trao đổi dữ liệu nối tiếp, ngoài ra còn cho phép phát hiện và điều khiển các lỗi khi truyền dữ liệu • Hỏi vòng : Ngoài phương pháp điều khiển sự kiện trên ta có thể hỏiïvòng các sự kiện và lỗi bằng cách kiểm tra giá trò của đặc tính ComEvent sau mỗi chu kì của chương trình đễ xác đònh xem liệu một sự kiện hay một lỗi đã xuất hiện chưa Chẳng hạn chương trình có thể tạo vòng

Ngày đăng: 21/05/2016, 09:44

Từ khóa liên quan

Mục lục

  • CLR CS

  • A 21H

  • RLC A

    • DIN C

    • Vdd

      • Xung nhòp tốc độ baud

      • Biến đổi AD

      • Vi xử lí

      • Máy

        • LCALL KHAIBAOPORT

        • LCALL NUTNHAN

          • LCALL THU

          • B A

            • LCALL THU

            • LCALL DAC

            • LCALL THU

            • R1 A

              • A B

              • DELAY 100ms

              • DELAY 100ms

              • CLR C

              • SETB C

              • RLC C

                • Giản đồ thời gian của một sự chuyển đổi trong 24 chu kỳ xung clock

                • Thứ tự của những bit điều khiển trong byte điều khiển

                  • tCH 150 ns

                  • Giản đồ thời gian chi tiết

                    • CS

                    • CHUYỂN ĐỔI DA DÙNG DAC7611

                      • A/ SƠ LƯC VỀ DAC7611

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan