Professional Documents
Culture Documents
Thiết Kế Hệ Thống Hiển Thị Nhiệt Độ
Thiết Kế Hệ Thống Hiển Thị Nhiệt Độ
I/O Ports :
PIC16F877A( gi tt l PIC) c 5Port A,B,C,D,E vi cc c im c bn nh sau
ADC :
- ADC vi phn gii 10 bit
LM35 c 3 chn. Chn 1(Vs) l chn cp ngun dng Vcc. Chn 2(GND) l chn
ni mass. Chn 3(Vout) l chn xut in p sau khi chuyn i t nhit sang.
PIC 16F877A
C = (VALUE*500)/1023
Gi tr C c chuyn sang m BCD v c xut ra ngoi thng qua IC cht
74HC573 v IC gii m 7447 hin th ra led 7 on.
BEGIN
LY
MU
CHUYN I
ADC V
CHUYN SANG
GI TR NHIT
HIN TH
#include <16F877A.h>
#include <def_877a.h>
#device adc=10
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,
NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)
float DO_C;
int16 bien,hang_don_vi,hang_chuc;
void main()
{
trisa = 0xFF;
trisb = 0x01;
trisd = 0x00;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
delay_us(10);
value=read_adc();
delay_ms(10);
DO_C = (float)(VALUE * 500)/1023;
TAO_MA_BD();
// XUAT_LED();
delay_ms(100);
while(1)
{
output_b(0x00);
value = read_adc();
delay_us(10);
DO_C = (float)(VALUE * 500)/1023;
output_d(0x00);
XUAT_LED();
}
}
//======================================================
void TAO_MA_BD()
{
bien = hang_chuc*10 ;
hang_don_vi = (DO_C - bien);
led_h = a[hang_chuc];
led_l = a[hang_don_vi];
}
//=========================================================
=============
output_high(pin_d0);
output_c(led_h);
output_low(pin_d0);
output_high(pin_d1);
output_c(led_l);
output_low(pin_d1);
delay_ms(100);
// NEU NHIET DO CAO HON HOAC THAP HON NHIET DO QUY DINH SE
GOI BAO DONG
VOID BAO_DONG()
{
output_high(pin_b0);
output_high(pin_b0);
III. S NGUYN L