Mình đang phải làm bài tập đo nhiệt độ dùng LM35( CHỉ là mô phỏng thôi). Mình mới chỉ làm mạch đơn giản để hiển thị được nhiệt độ đã nhưng phần code mình không rõ một số chỗ mong mọi người chỉ bảo
Có điều mình chưa hiểu cách đọc ADC như nào??.Vout nối vào chân AVC nào cũng được à?
Và Hàm read_adc()?.
Đối với bài này thì có cần phải viết thêm hàm gì nữa không hay chỉ sử dụng nhưng hàm đã sẵn?
Và trong mô phỏng Proteus thì LM35 hoạt động kiều gì nó lầy nhiệt độ ở đâu?
Mong mọi người giúp mình với.
Sơ đồ bằng Proteus 7.1(file dinh kem)
Code:
#include <mega8.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x18 ;PORTB .equ __i2c_port=0x18 .equ __sda_bit=3 .equ __scl_bit=4 #endasm #include <lcd.h> #include <delay.h> #include <stdlib.h> #include <stdio.h> #define ADC_VREF_TYPE 0x00 // Read the AD conversion result unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } void main(void) { // ADC initialization // ADC Clock frequency: 1000.000 kHz // ADC Voltage Reference: AREF pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x82; lcd_init(16); while (1) { // Place your code here unsigned char b[10],; int a; a=read_adc(PORTC.0); itoa(a,b); lcd_putsf("Nhiet do :"); lcd_puts(b); delay_ms(1000); lcd_clear(); }; }
Và Hàm read_adc()?.
Đối với bài này thì có cần phải viết thêm hàm gì nữa không hay chỉ sử dụng nhưng hàm đã sẵn?
Và trong mô phỏng Proteus thì LM35 hoạt động kiều gì nó lầy nhiệt độ ở đâu?
Mong mọi người giúp mình với.
Sơ đồ bằng Proteus 7.1(file dinh kem)
Comment