Monday, January 18, 2016

BÀI 28 : ĐO NHIỆT ĐỘ LM35 HIỂN THỊ LED 7 ĐOẠN PIC16F877A CCS

Xem lý thuyết về LM35 bên PIC16F877A XC8 nha !

Đây là hình mô phỏng protues

đo nhiệt đọ lm35 hiển thị led 7 đoạn pic16f877a ccs

Đây là code chương trình.
#include <16f877a.h>
#device 16f877a*16ADC=10
#include <def_877a.h>
#use delay(clock=4000000)
#include <lcd_lib_4bit.c>
#bit led1 =portc.1
#bit led2 =portc.2
#bit led3 =portc.3
#bit led4 =portc.4
int maled[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned int x;
int chuc,donvi;
void docADC();
void hienthi(unsigned int x);
void main()
{
LCD_Init();
trisa=0x01;
trisc=0x00;
trisb=0x00;
portc=0x00;
while(true)
{
hienthi(x);
docADC();
x=read_ADC();
x = ((5000.0f/1023*x)/10);
}
}
void docADC()
{
setup_ADC(ADC_clock_internal);
setup_ADC_ports(AN0);
set_ADC_channel(0);
delay_us(100);
}
void hienthi(unsigned int x)
{

chuc=x/10;
donvi=x%10;
portb=maled[chuc];
led2=0;
delay_ms(1);
led2=1;
portb=maled[donvi];
led1=0;
delay_ms(1);
led1=1;
portb=0x9C;
led3=0;
delay_ms(1);
led3=1;
portb=0xC6;
led4=0;
delay_ms(1);
led4=1;
}
Link download project Click here

7 comments:

  1. Anh ơi em muốn lập trình đo nhiệt độ dùng cảm biến PT100. Anh chỉ em với đưọc không

    ReplyDelete
  2. được chứ nhưng bạn tự tính công thức rồi hiển thị lên LCD hay LED gì đó !

    ReplyDelete
  3. tại sao lại phải sử dụng thư viện LCD cho bài này vậy bác. em mới học nên chưa hiểu lắm

    ReplyDelete
    Replies
    1. COde đó là do AD sử dụng cho nhiều bài nên để vậy khỏi xóa mất công tới bài khác lại add zô ? nó không ảnh hưởng gì hết nha ! :-bd

      Delete
  4. LCD ?????????????? TẠI SAO CÓ VẬY AD

    ReplyDelete
  5. cái nhiệt độ sử dung điện áp hay lấy nhiệt độ môi trường vậy ạ

    ReplyDelete
  6. Nó có phương trình chuyển đổi nhé bạn, bạn tìm hiểu thêm trên google nhé !

    ReplyDelete