#include "16f887.h"
#fuses NOWDT,HS,NOPUT,NOPROTECT,BROWNOUT,LVP,NOCPD,NOWRT
#use delay(Clock = 4000000)
#device *=16 ADC=10
int8 temp = 0;
int8 adc;
#int_TIMER1
void TIMER1_isr(void)
{
temp++;
if(temp == 4) //400us = 40% muc cao.
output_high(PIN_D0);
else if(temp == 6)
{
output_low(PIN_D0); //600us = 60% muc thap.
temp = 0;
}
set_timer1(65335);
}
void adc_read(void)
{
set_ADC(ADC_internal);
set_ADC_port(AN0);
set_ADC_channel(0);
delay_us(10);
while(true)
{
adc=read_adc();
output_B(adc);
#if adc>128
{ output_low(PIN_D1);}
}
}
void main()
{
//Khoi tao T1 va ngat.
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); //T1 dem xung noi, ti le chia 1
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
set_timer1(65335); //Thach anh 8 MHz => CK may = 4/8 = 0,5us
//100us ngat 1 lan = 200xung = 65535 - 65335
//Thiet lap cac pin xuat nhap
set_tris_d(0x00);
adc_read();//PORTD xuat du lieu.
//----------------------------
while(1);
}
các bác sủa hộ em đoạn code này với , nó cứ sai ở câu lệnh #device *=16 ADC=10
#fuses NOWDT,HS,NOPUT,NOPROTECT,BROWNOUT,LVP,NOCPD,NOWRT
#use delay(Clock = 4000000)
#device *=16 ADC=10
int8 temp = 0;
int8 adc;
#int_TIMER1
void TIMER1_isr(void)
{
temp++;
if(temp == 4) //400us = 40% muc cao.
output_high(PIN_D0);
else if(temp == 6)
{
output_low(PIN_D0); //600us = 60% muc thap.
temp = 0;
}
set_timer1(65335);
}
void adc_read(void)
{
set_ADC(ADC_internal);
set_ADC_port(AN0);
set_ADC_channel(0);
delay_us(10);
while(true)
{
adc=read_adc();
output_B(adc);
#if adc>128
{ output_low(PIN_D1);}
}
}
void main()
{
//Khoi tao T1 va ngat.
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); //T1 dem xung noi, ti le chia 1
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
set_timer1(65335); //Thach anh 8 MHz => CK may = 4/8 = 0,5us
//100us ngat 1 lan = 200xung = 65535 - 65335
//Thiet lap cac pin xuat nhap
set_tris_d(0x00);
adc_read();//PORTD xuat du lieu.
//----------------------------
while(1);
}
các bác sủa hộ em đoạn code này với , nó cứ sai ở câu lệnh #device *=16 ADC=10
Comment