PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Analog - Bộ nhớ - Bảo mật - Cảm biến nhiệt độ

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Analog - Bộ nhớ - Bảo mật - Cảm biến nhiệt độ Thảo luận việc sử dụng và thay thế các sản phẩm Analog, Memory, KEELOG và cảm biến nhiệt độ của Microchip cho các thiết kế

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 10-12-2012, 01:00 PM   #1
chutuyen
Nhập môn đệ tử
 
Tham gia ngày: Nov 2012
Bài gửi: 3
:
Lm35, pic16f , hiển thị lcd

Mình đang làm bài tập môn VXL về mạch cảm biến nhiệt độ dùng lm 35 và hiển thị lên lcd 10bit
code hiển thị mình đã làm dc tương đối rồi. đó h chỉ học bằng ngôn ngữ ASM bây h thầy kêu viết = ccs thì thật là cũng chưa biết rõ. hiện tại mình có một thắc mắc về Cảnh báo ngưỡng nhiệt độ thì led sáng. Bạn nào hiểu và biết có thể chỉ mình với.
cảm ơn đã đọc.



#include <16f877a.h>
#fuses nowdt,noprotect,nolvp,xt,put
#device 16f877a* = 16adc = 10
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(d)
#use fast_io(b)
#byte portd=0x8
#byte portb=0x6
#byte porta=0x5
#bit rs=portd.0
#bit rw=portd.1
#bit e=portd.2
#bit led=portd.3 // led báo động nối với chân rd3
int chuc,donvi,tam;
int a[10]={48,49,50,51,52,53,54,55,56,57};
void khoitao();
void hienLCD();
Void ADC();
void main()
{
set_tris_b(0);
set_tris_d(0b0000);
portb=0x01;//xoa mang hinh hien thi
khoitao();
portb=0x0e;//nhap nhay con tro, bat hien thi
khoitao();
portb=0x38;//cho LCD chay che do 2 dong
khoitao();
portb="N";
hienLCD();
portb="H";
hienLCD();
portb="O";
hienLCD();
portb="M";
hienLCD();
portb=" ";
hienLCD();
portb="1";
hienLCD();
portb="0";
hienLCD();

while(1)
{
ADC();
tam=read_ADC()/2.048;
chuc= tam/10;
donvi= tam%10;
portb = 0xc0;//Dua con tro ve dau dong thu 2
khoitao();
portb="N";
hienLCD();
portb="H";
hienLCD();
portb="I";
hienLCD();
portb="E";
hienLCD();
portb="T";
hienLCD();
portb=" ";
hienLCD();
portb="D";
hienLCD();
portb="O";
hienLCD();
portb=" ";
hienLCD();
portb=":";
hienLCD();
portb=" ";
hienLCD();
portb=a[chuc];
hienLCD();
portb=a[donvi];
hienLCD();
portb=223;//Dau do C
hienLCD();
portb="C";
hienLCD();
portb = 0x0c;
khoitao();
}
if(tam>45)
{ set_tris_d(0b000);}
else if(tam<45)
{
set_tris_d(0b0000);}
}
void khoitao()
{
e=1;
rs=0;//bus ket noi voi thanh ghi IR
rw=0;//cho phep ghi tu PIC->LCD
e=0;
delay_ms(3);
}
void hienLCD()
{
e=1;
rs=1;//bus ket noi voi thanh ghi DR
rw=0;//cho phep ghi tu PIC->LCD
e=0;
delay_ms(3);
}
void ADC()
{
setup_ADC(ADC_clock_internal);
setup_ADC_ports(AN0_AN1_AN3);
set_ADC_channel(0);
delay_us(100);
}
chutuyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-12-2012, 01:03 PM   #2
chutuyen
Nhập môn đệ tử
 
Tham gia ngày: Nov 2012
Bài gửi: 3
:
if(tam>45)
{ set_tris_d(0b000);}
else if(tam<45)
{
set_tris_d(0b0000);}
}

cái này mình viết sai. bạn nào rành giúp mình chỉnh cái led báo động với
chutuyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 05:28 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam