|
Tài trợ cho PIC Vietnam |
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ế |
|
Ðiều Chỉnh | Xếp Bài |
10-12-2012, 01:00 PM | #1 |
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); } |
10-12-2012, 01:03 PM | #2 |
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 |
|
|