Dung Adc

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Dung Adc as PDF for free.

More details

  • Words: 609
  • Pages: 3
Tóm tắt : Qua bài này các bạn có thể sử dụng được ADC của AVR Giới thiệu : Phần cứng các bạn cần 1 con biến trở nối vào portA.0 Mạch ATmega16 như bài đầu . Các chế độ sẽ chọn : sử dụng chế độ ngắt ADC, tự động scan giá trị analog của port A

Ví dụ : Dùng PORTA.0 nhận giá trị từ biến trở hiển thị lên LCD theo ADC 8bit (từ 0->5V thành 0 ->255) Chú ý : trong chương trình có sử dụng hàm lcd_putnum(value); hiển thị chữ số c code 1. 2. 3. 4.

5.

/***************************************************** This program was produced by the CodeWizardAVR V1.24.8d Professional Automatic Program Generator

© Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l. 6. http://www.hpinfotech.com 7. 8. Project : 9. Version : 10.Date : 1/9/2008 11.Author : LENGOCTUAN 12.Company : VAGAM 13.Comments: 14. 15.Comments: 16. 17. 18. 19.Chip type : ATmega16 20.Program type : Application 21.Clock frequency : 8.000000 MHz 22.Memory model : Small 23.External SRAM size : 0 24.Data Stack size : 256 25.*****************************************************/ 26. 27.#include <mega16.h> 28. 29.// Alphanumeric LCD Module functions 30.#asm 31. .equ __lcd_port=0x15 ;PORTC 32.#endasm 33.#include 34. 35.#define FIRST_ADC_INPUT 0 36.#define LAST_ADC_INPUT 7 37.unsigned char adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1];

body | 04:39:18 10-01-08 | Posts: 20 | Thanks: 8

2

cảm ơn các bài viết của bác, em vẫn theo và thực hành thêm.

apple | 07:15:52 15-01-08 | Posts: 5

em

gặp

3

vấn

đề

rùi

Theo chỉ dẫn của bác giotdang nhưng em viết chương trình bằng asembler bác giúp em bài toán này với. sao em thấy adc nó nhiễu ghê quá -điện áp mẫu em sử dụng là chân AREF nối với Vcc -biến trở sử dụng là 100k -chon tần số biến đổi nhanh nhất (adps2..0=0) -ADC dùng ở chế độ biến đổi đơn, ở chân ADC0 và ADC1 thực hiện biến đổi ở chân ADC0 > delay100us > đua kết quả ra portb (adch) - portc(adcl)(2 port hien thị led) > biến dổi chân ADC1 > delay100us-->luu kết quả vào 2 thanh ghi xh:xl em gap 2 vấn đề như vầy: -thấy các led sáng tắt không dứt khoát -khi vặn biến trở o chan ADC1 và không văn bien tro chan ADC0 thì thấy nó nhiễu cả sang kết quả của chân ADC0 mong bac chỉ giùm, em khong biết tại sao lại thế.

giotdang | 02:21:52 16-01-08 | Posts: 190 | Thanks: 229

4

Nguyên nhân nó gây nhiễu chính là do bộ nguồn cấp cho ADC của bạn không ổn định .Để đảm bảo đo lường chính xác luôn đảm bảo AREF không được thay đổi . Mạch của bạn lại sử dụng đến 16 đèn led ( thay đổi sáng tối liên tục ) có thế làm nguồn không ổn định .Nếu các mạch thiết kế để dùng cho đo lường thường thiết kế mạch nguồn cho AREF riêng .Dù có nguồn riêng , người lập trình đều cần các phương pháp lọc số để đảm bảo giá trị đo chính xác , chống được nhiễu . [email protected]

ckdt | 05:42:08 22-01-08 | Posts: 19 | Thanks: 7

5

lcd_putchar(48+tram); lcd_putchar(48+chuc); lcd_putchar(48+donvi); a giotdang cho e hỏi về mấy câu lệnh trên nhé: trong mã ASCII 48 <=> 0 nhưng mình cộng 48 để làm gì ạ!e cũng ko biết nhiều về ngôn ngữ C.cám ơn a rất nhiều!

giotdang | 06:27:52 25-01-08 | Posts: 190 | Thanks: 229

6

mình VD: số số

cộng

48



1

khi có

2

vì thế bạn phải cộng 48

hiện

thị

mã có

lên

LCD

ta

ASCII mã

hiển

thị

là ASCII



ASCII

49 là

50

Related Documents

Dung Adc
May 2020 9
Adc
July 2020 17
Adc
May 2020 18
Adc
August 2019 36
Adc Registers
May 2020 10
Nim Adc
November 2019 41