ĐiệnTửAz.BlogSpot.Com Đặt Liên Kết Quảng Cáo!
Breaking News
Loading...
Thứ Tư, 6 tháng 5, 2015

PIC 16f887 Cảnh báo nhiệt độ hiển thị LCD


Thiết kế sơ đồ nguyên lý, lập trình cho bài toán cảnh báo nhiệt độ. Giả sử nhiệt độ
đọc được là T (0..5v), cảnh báo như sau:

Nếu T<T1: thì đèn mầu trắng sáng.
Nếu T1≤ T ≤ T2: thì đèn mầu xanh sáng.
Nếu T>T2: thì đèn mầu đỏ sáng.

Các giá trị T1, T2 nhập vào từ phím bấm, trạng thái hệ thống (T, T1, T2) hiển thị trên LED 7 thanh
hoặc LCD.

#include <main.h>

#define LCD_ENABLE_PIN PIN_D2
#define LCD_RS_PIN PIN_D0
#define LCD_RW_PIN PIN_D1
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>

float t;
int t1=0,t2=0;
void main ()
{
setup_adc_ports(sAN0);
setup_adc(ADC_CLOCK_DIV_2);
set_tris_b(0xff);
set_tris_c(0x00);
lcd_init();

while(TRUE)
{
set_adc_channel(0);
delay_us(10);
t=read_adc()/2.046;

if(input(PIN_B0)==0)
{
while(input(PIN_B0)==0);
t1++;
}
if(input(PIN_B1)==0)
{
while(input(PIN_B1)==0);
t2++;
}

if(t1>=100) t1=0;
if(t2>=100) t2=0;

lcd_gotoxy(1,1);
printf(lcd_putc,"T1=%2u",t1);
lcd_gotoxy(8,1);
printf(lcd_putc,"T2=%2u",t2);
lcd_gotoxy(1,2);
printf(lcd_putc,"T=%0.2f",t);

if(t<t1)
{
output_high(PIN_C0);
output_low(PIN_C1);
output_low(PIN_C2);
}
else
{
if(t>t2)
{
output_low(PIN_C0);
output_low(PIN_C1);
output_high(PIN_C2);
}
else
{
output_low(PIN_C0);
output_high(PIN_C1);
output_low(PIN_C2);
}
}
}
}

DOWNLOAD Code và Mô Phỏng


0 nhận xét:

Đăng nhận xét

 
Toggle Footer
BACK TO TOP