bộ chuyển đổi ADC MCU 1774

15 206 0
bộ chuyển đổi ADC MCU 1774

Đ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

Bộ ADC 1.3.18 Bộ chuyển đổi Analog sang Digital Các đặc trưng bản: • Độ phân giải 10-bit • Độ chình xác tuyệt đối: ±2 LSB • Thời gian chuyển đổi 13 - 260 µs • Lên tới 15 kSPS độ phân giải cao • Phạm vi điện áp đầu vào: - V CC • Điện áp tham chiếu 2.56V lựa chọn • Ngắt chuyển đổi hoàn thành • Loại bỏ nhiễu chế độ ngủ 1.ADC (analog to digital converter) Vi điều khiển AVR 8535 có biến đổi ADC tích hợp chip Có đặc điểm: Độ phân giải bit Sai số tuyến tính:0.5LSB Dộ xác +/-2LSB Thời gian chuyển đổi:65-260µs Kênh đầu vào lựa chọn Có hai chế độ chuyển đổi Có nguồn báo ngắt hoàn thành chuyển đổi Loại bỏ nhiễu chế độ ngủ Sơ đồ khối: http://www.ebook.edu.vn Bộ ADC Từ sơ đồ khối ta thấy: Tám đầu vào ADC tám chân PORTA chúng chọn thông qua MUX Để điều khiển hoạt động vào liệu ADC CPU có ghi:ADMUX ghi điều khiển lựa chọn kênh đầu vào cho ADC ADCSR Đây ghi điều khiển ghi trạng thái ADC ADCD :Đây ghi liệu 1.ADMUX: Multiplexer select register Đây ghi điều khiển bit: Với bit định nghĩa MUX2,MUX1,và MUX0.Ứng với tổ hợp logic ta chọn kênh đầu vào.Cụ thể: Chú ý: Nếu ta thay đổi kênh thời điểm mà ADC chuyển đổi trình chuyển đổi hoàn thành khên vào thay đổi 2.ADCSR :ADC control and status register Đây ghi điều khiển lưu trạng thái ADC: Bit 7-ADEN:ADC enable Đây bit điều khiển hoạt động ADC.Khi bit set ADC hoạt động ngược lại.Nếu ta ngừng hoạt động ADC chuyển đổi kết thúc trình chuyển đổi.Mặc dù chưa chuyển đổi xong Bit 6-ADSC: ADC start conversion http://www.ebook.edu.vn Bộ ADC Trong chế độ chuyển đổi đơn bit phải set lên để bắt đầu chuyển đổi.Trong chế độ chuyển đổi tự bit cần set lên để bắt đầu lần chuyển đổi đầu tiên.Bit giữ sốt trình chuyển đổi xóa mà chuyển đổi xong Bit 5-ADRR :ADC Free Running select Khi bit set ADC hoạt động theo chế độ chuyển đổi tự Đây chế độ mà ADC tự động lấy mẫu chuyển đổi (khi phép chuyển đổi)từ kênh định sẵn.Ki xóa bit chế độ ngừng hoạt động Bit 4-ADIF:ADC interrupt Flag Bit set lên phần cứng mà trình chuyển đổi hoang thành ghi liệu update.Bit xóa phần cứng nhếu ngắt phép phục vụ.Hoặc xóa cách ghi giá trị logic “0”vào cờ này.Cụ thể ngắt bị cấm ta sử dụng lệnh sbi cbi để tác dụng lên bit Bit 3-ADIE:ACD interrupt Enable Nếu bit set ngắt toàn cục cho phép ngắt phép phục vụ (Khi chuyển đổi xong liệu).Và bị xóa ngược lại Bit 2.1.0-ADPS2…ADPS0:Bit lựa chọn xung nhịp(Tốc độ) Sơ qua nguồn xung:Nguồn xung lấy từ nguồn xung VĐK (XTAL)và chia tần thông qua chia tần: Các bit ADSP có nhiệm vụ chọn số chia cho chia tần theo bảng sau: 3.Thanh ghi liệu ACDDR: Đây ghi 16 bit ta truy nhập chúng hai ghi bit với địa bit tương ứng: Khi khởi tạo chúng có giá trị 0.Sau chuyển đổi liệu số đưa vào ghi 4.Các chân đầu vào: Các chân đầu vào ADC chân PORTA Để định nghĩa cổng cổng vào cho ADC cổng phải định nghĩa cổng vào loại bổ điện trở treo 5.Nguyên tắc hoạt động lập trình điều khiển: ADC có nhiệm vụ chuyển đổi tín hiệu điện áp tương tự thành tín hiệu số có độ phân giải 10 bit.Với giá trị nhỏ điện áp đặt chân AGND giá trị cực đại điện áp tương tự mắc vào chân AREF Tám kênh tương tự đầu vào chọn lựa thông qua ADMUX ADMUX điều khiển ghi ADMUX ADC hoạt động hai chế độ Đó chuyển đổi đơn: chuyển đổi http://www.ebook.edu.vn Bộ ADC lần có lệnh chuyển đổi chế độ tự chuyển đổi (Free mode) chế độ mà ADC tự động chuyển đổi hoạt động công việc chuyển đổi có tính tuần hoàn (chỉ cần khởi động lần) ADC phép hoạt động nhờ thiết lập bit ADEN Quá trình chuyển đổi bắt đầu việc ghi vào bit ADSC mức logic suốt trình chuyển đổi bit giữ mức cao Khi trình chuyển đổi hoàn thành bit xóa phần cứng cờ AIDF bật lên Dữ liệu sau chuyển đổi đưa ghi liệu ADCL ADCH, ý đọc liệu từ hai ghi đọc ADCL trước đọc ADCH Nếu đọc ADCH trước liệu update ghi đè lên ADCL (VĐK nghĩ đọc xong liệu) Điều khiển vào liệu với ADC: Các bước thực hiện: Bước 1: Định nghĩa cổng vào cho tín hiệu tương tự Xóa bit tương ứng với chân ghi DDAR Sau loại bỏ điện trở treo chách xóa bit tương ứng ghi PORTA Bước 2: Chọn kênh tương tự vào (chọn chân vào cho ADC) thông qua ghi ADMUX (có thể thay đổi trình hoạt động) Bước2:Thiết lập thông số cho ADC Tốc độ chuyển đổi thông qua xung nhip chuyển đổi Chế độ chuyển đổi : đơn tự động Sử dụng ngắt không Bước3:Bắt đầu chuyển đổi đọc liệu Sau hai Ví dụ sử dụng hai chế độ ADC dùng theo hai cách vào liệu: ngắt chương trình VD: Đọc 20 byte liệu (10 thông số từ ADC vào nhớ RAM từ địa 0x065) Cách 1:sử dụng vào chương trình chạy với chế độ chuyển đổi đơn, chọn chân vào chân PA0 ; đoạn chương trình sau: MACRO READ ;dọc 10 mẫu từ ADC ;thiết lập thông số cho cổng Cbi DDAR,0 ; Đăt pin PA0 thành lối vào Cbi PORTA,0 ;Loại điện trở treo ;Chọn kênh vào cho ADC http://www.ebook.edu.vn Bộ ADC ldi R16,0x00 Out ADMUX,R16 ;chọn kênh vào la ADC0 ;Thiết lập ADC hoạt động không dùng ngắt chế độ chuyển đổi đơn sbi ADCSR,7 ;cho phép hoạt động cbi ADCSR,5 cbi ADCSR,3 cbi ADCSR,2 ;thiết lập tốc dộ cbi ADCSR,1 cbi ADCSR,0 ;Chuẩn bị chuyển đổi: ;Khởi tạo biến đếm chương trình Ldi R17,0x0a ;Khởi tạo trỏ địa SRAM Ldi XL,0x65 Ldi Xh,0x00 READ_ADC: Cbi ADSR,4 Sbi ADSR,6 ;bat đầu chuyển đổi Sbic ADSR,4 Rjmp READ_ADC ; có liệu In R18,ADCL In R19,ACDH Sts X+,R18 Sts X+,R19 Dec R17 Breq exit Rjmp READ_ADC Exit: Nop ENDMACRO http://www.ebook.edu.vn Bộ ADC 1.Yêu cầu: Đo nhiệt độ từ LM35 hiển thị lên LCD 2.Lý thuyết: Đối với ATMEGA 16L: chân PORTA sử dụng làm kênh đầu vào ADC Để sử dụng tính ADC Atmega 16L cần phải thiết kế phần cứng Vi điều khiển sau : * Chân AVCC chân bình thường thiết kế mạch đưa lên Vcc(5V) mạch có sử dụng kênh ADC phần cứng phải nối chân lên Vcc qua cuộn cảm nhằm mục đích cấp nguồn ổn định cho kênh (đầu vào) biến đổi http://www.ebook.edu.vn Bộ ADC * Chân AREF chân cần cấp giá trị điện áp ổn định sử dụng làm điện áp tham chiếu, điện áp cấp vào chân cần ổn định thay đổi làm giá trị ADC kênh thu bị trôi (thay đổi ) không ổn định với giá trị đầu vào có công thức tính sau: ADCx=(V_INT*1024)/ AREF dựa vào công thức củng thấy giá trị ADCx tỉ lệ thuận với điện áp vào V_INT Giá trị ADC thu từ kênh lưu vào ghi ADCH ADCL sử dụng phải đọc giá trị từ ghi này, sử dụng ché độ bít lưu vào ghi ADCL 3.Mô tả: Đầu LM35 chân biến trở 1K Kit nối vơi jump chờ Với AMEGA16L có kênh ADC chức thứ PORTA Do để ADC ta dung dây nối chân với bit PORTA bit bit Theo datasheet LM35 10mV tương ứng với 10C, 00C điện áp 0V, tương ứng với giá trị ADC Với Vref=5V, giá trị ADC từ đến 256, lấy tròn 250 mức Mỗi giá trị ADC ứng với 5V/250= 20 mV Vậy giá trị ADC ứng với 20C Muốn tăng độ phân giải ADC ta giảm Vref 4.Thực hành: Các bước khởi tạo code sau: Trong tab ADC check vào ADC enable: http://www.ebook.edu.vn Bộ ADC Khởi tạo LCD Cấu hình ADC http://www.ebook.edu.vn Bộ ADC Ta check vào Use bít, để ADC trả giá trị bít, ta ADC dùng ngắt check vào Interrupt, điện áp tham khảo AREF lấy điện áp chân AREF AVR nối với 5V Tần số ADC tùy bạn thích nhanh chậm chọn giá trị phù hợp Trong box Automatically Scan Inputs bạn check vào Enabled Vì cần ADC kênh, kênh dùng biến trở để test ADC, kênh từ LM35 đấu với bit PORTA chọn First 0, Last Khởi tạo cho LCD vào PORTB hình bên cạnh Chọn Generate, Save and Exit Đê hiển thị số lên LCD, thư viện hàm ta phải tự viết hàm Đầu vào biến unsigned char, ta phải tách lấy hàng trăm, hàng chục, hàng đơn vị đưa lên LCD Code sau: void lcd_putnum(unsigned char so,unsigned char x,unsigned char y) { unsigned char a,b,c; a=so/100; // lay fan tram b=(so-100*a)/10; // lay fan chuc c=(so-100*a-10*b); // lay hang don vi lcd_gotoxy(x,y); // ve vi tri x,y lcd_putchar(a+48); // day hang tram, ma ascii lcd_putchar(b+48); // day hang chuc, ma ascii lcd_putchar(c+48); // day hang don vi, ma ascii } Trong vòng while(1) hàm main ta viết sau: while (1) { // Place your code here lcd_putnum(2*adc_data[1],0,0); // dua gia tri ADC tu LM35*2= nhiet lcd_putnum(adc_data[0],0,1); // dua gia tri ADC tu bien tro delay_ms(3000); // tre s, cap nhat du lieu mot lan }; http://www.ebook.edu.vn Bộ ADC Đo nhiệt độ LM35 qua ADC thường có sai số độ trôi, ta cần hiệu chỉnh nhiệt độ cách so sánh với nhiệt kế http://www.ebook.edu.vn Bộ ADC 1.Yêu cầu: Điều khiển led đơn KIT AVR 03 máy tính Đo kết ADC từ biến trở cảm biến nhiệt LM35 hiển thị lên máy tính • Điều khiển led: Tạo Form VB sau: Trong FORM có: đối tượng picturebox chứa logo DKS Có 10 đối tượng button đối tượng button Led1 Led8 mảng button có tên từ Command1(0) Command1(7) Muốn tạo mảng button ta việc lấy đối tượng button sửa tên tất chúng thành Command Hai button lại Phản hồi Exit Có textbox để hiển thị liệu phản hồi Hoạt động phần mềm sau: Khi nhấn vào button Led truyền liệu 0x01 xuống cổng nối tiếp PC, AVR nhận đưa liệu cổng AVR để led Kit sáng Tương tự cho bấm nút Led lại Đồng thời AVR gửi giá trị vừa nhận lên PC Và bấm nút phản hồi liệu Textbox Khi nhấn nút Exit thoát khỏi phần mềm Thực hành: Phần mềm VB Code sau: Private Sub Command1_Click(Index As Integer) If Index = Then MSComm1.Output = Chr$(1) End If If Index = Then MSComm1.Output = Chr$(2) End If If Index = Then http://www.ebook.edu.vn Bộ ADC MSComm1.Output = Chr$(4) End If If Index = Then MSComm1.Output = Chr$(8) End If If Index = Then MSComm1.Output = Chr$(16) End If If Index = Then MSComm1.Output = Chr$(32) End If If Index = Then MSComm1.Output = Chr$(64) End If If Index = Then MSComm1.Output = Chr$(128) End If End Sub Private Sub Command2_Click() MSComm1.PortOpen = False End End Sub Private Sub Command3_Click() If MSComm1.Input = "" Then Exit Sub Else Text1.Text = Asc(MSComm1.Input) End If End Sub Private Sub Form_Load() MSComm1.CommPort = MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True End Sub Firm ware: Khởi tạo CodeVision AVR cho phép cổng nối tiếp hoạt động, PORT D out put trước học Sau lập trình cho hàm main sau: http://www.ebook.edu.vn Bộ ADC Trong hàm main có sử dụng thêm biến temp nên dĩ nhiên bạn phải khai báo thêm biến phía hàm main Nạp chương trình vào chip AVR Kết nối dây cổng Com từ KIT cổng Com máy tính test kết Đo ADC từ biến trở LM35 Trên VB tạo giao diện phần mềm sau: http://www.ebook.edu.vn Bộ ADC Form gồm có: label để hiển thị hình text box để hiển thị liệu button: Thu du lieu Thoat khỏi phần mềm Code VB sau: Private Sub Command1_Click() If MSComm1.Input = "" Then Exit Sub Else Text1.Text = Asc(MSComm1.Input) Text2.Text = Asc(MSComm1.Input) End If End Sub Private Sub Command2_Click() MSComm1.PortOpen = False End End Sub Private Sub Form_Load() MSComm1.CommPort = MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True http://www.ebook.edu.vn Bộ ADC End Sub Firm Ware: Khởi tạo CodeWinzard AVR cho cổng nối tiếp USART hoạt động, cho phép ADC hoạt động(interrupt) trước sau viết code cho hàm main sau: Dịch nạp chương trình test http://www.ebook.edu.vn [...]... hàm main như sau: http://www.ebook.edu.vn Bộ ADC Trong hàm main có sử dụng thêm một biến temp nên dĩ nhiên các bạn phải khai báo thêm biến đó ở phía ngoài hàm main Nạp chương trình vào chip AVR Kết nối dây cổng Com từ KIT và cổng Com máy tính và test kết quả Đo ADC từ biến trở và LM35 Trên VB tạo ra một giao diện phần mềm như sau: http://www.ebook.edu.vn Bộ ADC Form gồm có: 4 label để hiển thị như hình.. .Bộ ADC 1.Yêu cầu: Điều khiển led đơn trên KIT AVR 03 bằng máy tính Đo kết quả ADC từ biến trở và cảm biến nhiệt LM35 hiển thị lên máy tính • Điều khiển led: Tạo một Form bằng VB như sau: Trong FORM có: 1 đối tượng picturebox chứa logo của DKS... MSComm1.PortOpen = False End End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True http://www.ebook.edu.vn Bộ ADC End Sub Firm Ware: Khởi tạo bằng CodeWinzard AVR cho cổng nối tiếp USART hoạt động, cho phép ADC hoạt động(interrupt) như các bài trước sau đó viết code cho hàm main như sau: Dịch nạp chương trình và test http://www.ebook.edu.vn ... Code như sau: Private Sub Command1_Click(Index As Integer) If Index = 0 Then MSComm1.Output = Chr$(1) End If If Index = 1 Then MSComm1.Output = Chr$(2) End If If Index = 2 Then http://www.ebook.edu.vn Bộ ADC MSComm1.Output = Chr$(4) End If If Index = 3 Then MSComm1.Output = Chr$(8) End If If Index = 4 Then MSComm1.Output = Chr$(16) End If If Index = 5 Then MSComm1.Output = Chr$(32) End If If Index =

Ngày đăng: 30/10/2015, 18:19

Từ khóa liên quan

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

Tài liệu liên quan