Tôi muốn đo nhiệt độ dùng LM35 giao tiếp với bộ ADC của ATmega16L.Tuy nhiên tôi đang gặp khó khăn về lắp mạch và lập trình.Xin mọi người giúp đỡ.Cám ơn nhiều.
Thông báo
Collapse
No announcement yet.
LM35 và AVR
Collapse
X
-
Tôi đưa chân OUT của LM35 vào kênh 0 (chân AD0) của ADC.
Chương trình như sau:
//real_time_hut@yahoo.com
//khai bao thu vien
#include<mega16.h>
#include<stdio.h>
#include <delay.h>
//khai bao bien toan cuc
unsigned int temp;
//mau ham
void khoi_tao_serial(void);
void khoi_tao_ports(void);
void khoi_tao_ADC(void);
unsigned int doc_ADC(void);
void main(void)
{
khoi_tao_ports();
khoi_tao_serial();
khoi_tao_ADC();
while(1) //vong lap chinh
{
temp=~doc_ADC();
temp=380*(temp/1024); //Vref=3.8V
//10mV ung voi 1 do C
printf("%i\n\r",temp);
delay_ms(100); //cap nhat du lieu sau 100ms
}
}
unsigned int doc_ADC(void)
{
unsigned int value;
ADCSRA = ADCSRA | 0x40; // bat dau chuyen doi
while( (ADCSRA & 0x10) == 0 ); // cho cho den khi chuyen doi //thanh cong
value = ADCW; //lay gia tri ADC
ADCSRA = ADCSRA | 0x10; // xoa co
return value;
}
void khoi_tao_serial(void) //9600/8/N/1
{
UCSRA=0x02;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x67;
}
void khoi_tao_ports(void)
{
DDRC = 0xFF; // PortC lam cong ra
PORTC = 0x00;
}
void khoi_tao_ADC(void)
{
ADMUX = 0x00; // chon kenh 0
ADMUX = ADMUX | 0x40; // chon dien ap nguong
ADMUX = ADMUX | 0x20;
ADCSRA = 0x07; // chon tan so thach anh
ADCSRA = ADCSRA | 0x80; // cho phep ADC hoat dong
}Last edited by digi_pow; 13-10-2006, 22:07.
Comment
-
tôi gửi bạn đoạn code
;=====================
;last edition 28/9/06;
;=====================
.include "m16def.inc"
.org 0x000
rjmp main
.org 0x01C
rjmp ADC_Complete
main:
;Dat con tro ngan xep
ldi temp,HIGH(RAMEND)
out SPH,temp
ldi temp,LOW(RAMEND)
out SPL,temp
ldi temp,0xFF
out DDRB,temp ;ra led 7 thanh
out DDRC,temp ;dk nhiet do
out DDRD,temp ;ra led 7 thanh
ldi temp,0b11111100 ;chi dung 2 bit 0,1 de lam dau vao co`n lai la` da^`u ra
out DDRA,temp
;Dat clk cho ADC
ldi temp,0b11011110 ;tan so 125 KHz 110
out ADCSRA,temp
;===================
;Chon MUX va Vref
;AREF Internal Vref turn of; Mux 0:00000
ldi temp,0b01100000 ;
out ADMUX,temp
sei ;Cho phep ngat
;wait interrupt
loop:
rjmp loop
;============
; ISR ;
;============
ADC_Complete:
;dk nhiet do
;Calling: convert; display, control
clr rdivL
clr rdivH
in rdivL,ADCL
in rdivH,ADCH
rcall Convert
rcall Display
rcall Control
reti
còn lại bạn làm tiếp nhé
Bạn phải viết chương trình đổi số 10bit sang BCD để hiển thị|
Comment
-
Nguyên văn bởi digi_pow Xem bài viếtTôi đưa chân OUT của LM35 vào kênh 0 (chân AD0) của ADC.
Chương trình như sau:
//real_time_hut@yahoo.com
//khai bao thu vien
#include<mega16.h>
#include<stdio.h>
#include <delay.h>
//khai bao bien toan cuc
unsigned int temp;
//mau ham
void khoi_tao_serial(void);
void khoi_tao_ports(void);
void khoi_tao_ADC(void);
unsigned int doc_ADC(void);
void main(void)
{
khoi_tao_ports();
khoi_tao_serial();
khoi_tao_ADC();
while(1) //vong lap chinh
{
temp=~doc_ADC();
temp=380*(temp/1024); //Vref=3.8V
//10mV ung voi 1 do C
printf("%i\n\r",temp);
delay_ms(100); //cap nhat du lieu sau 100ms
}
}
unsigned int doc_ADC(void)
{
unsigned int value;
ADCSRA = ADCSRA | 0x40; // bat dau chuyen doi
while( (ADCSRA & 0x10) == 0 ); // cho cho den khi chuyen doi //thanh cong
value = ADCW; //lay gia tri ADC
ADCSRA = ADCSRA | 0x10; // xoa co
return value;
}
void khoi_tao_serial(void) //9600/8/N/1
{
UCSRA=0x02;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x67;
}
void khoi_tao_ports(void)
{
DDRC = 0xFF; // PortC lam cong ra
PORTC = 0x00;
}
void khoi_tao_ADC(void)
{
ADMUX = 0x00; // chon kenh 0
ADMUX = ADMUX | 0x40; // chon dien ap nguong
ADMUX = ADMUX | 0x20;
ADCSRA = 0x07; // chon tan so thach anh
ADCSRA = ADCSRA | 0x80; // cho phep ADC hoat dong
}
cảm ơn nhiều.Never forget who you are!
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi ti500Đùa với bác tí thôi vì lâu rồi mình cũng không vào diễn đàn vì thấy chán. Dù sao cũng cảm ơn bác đã đưa ra các bài toán thực tế để anh em có sự động não không hề nhẹ.
Xem video bác gửi em vẫn chưa hiểu nó nói về cái gì...-
Channel: Điện tử công suất
hôm nay, 18:05 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80Chào bạn ti500, cảm ơn bạn đã dẫn dùm link [mình muốn dẫn link đó mà ... không nhớ gì nhiều về nó!]
Mạch mà ĐT đề nghị người ta cải tiến để đáp ứng yêu cầu/khắc phục vấn đề như đã mô tả là mạch pin sạc ở trong cái nắp vỏ có hình đính kèm ấy, sơ đồ mạch đó là sơ đồ rất nhiều...-
Channel: Điện tử công suất
hôm nay, 15:08 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi ti500bác đỉnh thượng lâu rồi không thấy vào bàn việc nước tưởng chuyển nghề rồi.
thì ra đây là lý do bác mở luồng này: http://www.dientuvietnam.net/forums/...%A5t/1729168-d...-
Channel: Điện tử công suất
hôm nay, 09:17 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80Vâng bác, mạch điện cũng dạng như vậy, và vấn đề của nước mình chính là cái khó bó cái khôn, không thể cạnh tranh được với hàng ngoại.
Thực ra mạch em vẽ từ sản phẩm thực tế ở #54 là họ cải tiến từ mạch Boost áp...-
Channel: Điện tử công suất
08-02-2025, 13:58 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi mèomướpDạ thấy chú dinh... có vẻ mặn nồng với đèn sự cố nên cháu rình lúc chị hàng xóm đi vắng bắc thang trèo lên chụp mấy cái đèn nhà chị ấy ạ. Tầm vài trăm cái dùng tuýp led 220v bình thường ấy ạ. Dùng chiếu sáng thay bóng tuýp luôn Hơn...
-
Channel: Điện tử công suất
07-02-2025, 22:38 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi bqvietTheo sơ đồ bạn đã vẽ thì đây chỉ là mạch nguồn flyback không cách ly, phản hồi cả dòng lẫn áp thôi mà. Một dạng nguồn CC-CV thông dụng. Kiếm con chip tốt làm là được, nếu chịu chạy dãy LED có cách ly thì càng tốt.
Vấn đề...-
Channel: Điện tử công suất
07-02-2025, 21:56 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80Phật có dạy là CHÁNH NIỆM (hay CHÍNH gì ấy, ĐT bị... rối loạn ngôn ngữ và trí nhớ, mong lượng thứ!) - CHÁNH NGỮ - CHÁNH HÀNH ĐỘNG, đó là đường hướng tới CHÁNH ĐẠO.
ĐT ngu muội nên cứ áp dụng vào điện tử: phải cố...-
Channel: Điện tử công suất
06-02-2025, 06:16 -
-
Trả lời cho [HELP] mạch cầu H inverter 100vdc to 100v ?bởi ngoctn93Em cũng có nguồn 250 đến 280vdc muốn chuyển sang 100vac bằng mạch cầu H dùng esg002. Có bác nào làm rồi chỉ em hoặc bán em với ạ. Em xin cảm ơn ạ
-
Channel: Điện tử công suất
05-02-2025, 23:00 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi mèomướpCháu thấy chú nhat... viết toàn cái gì gì ấy ạ khó hiểu ghê, chắc mai cháu phải đi hỏi mấy anh chị lớp lớn hơn xem sao ạ. Những việc lớn tầm cỡ thì hông phải ai cũng có đủ kiến thức, thời gian, sức khỏe, tiền bạc, đam mê, kiên...
-
Channel: Điện tử công suất
05-02-2025, 22:11 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Bác bảo ai lớn tờ iếng tiếng?
Hùng là không nhé. Chỉ bảo tận tình chứ không tận diệt.
Yêu kỹ thuật nên vẫn tham gia cho vui thôi. Mấy của nợ này dùng con PIC hai chục ngàn còn ngon luôn....-
Channel: Điện tử công suất
05-02-2025, 21:38 -
Comment