Código feito em CCS C Compiler
#include <18f4550.h>
#device ADC = 8//configurando o canal analógico em 8 bits
#fuses intrc_io,nowdt,nomclr//configurando os fuses bits do PIC
#use delay(clock = 8MHz)
//diretivas das portas
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
int canal;
void main(void){
set_tris_c(0x00);//todo port c como saída
set_tris_a(0xff);//todo port a como entrada
setup_timer_2(T2_DIV_BY_16, 255, 1);//setando o timer 2
setup_ccp1(CCP_PWM);//setando o canal PWM
setup_oscillator(OSC_1MHZ|OSC_INTRC);//Configurando o oscilador interno em 1MHz
setup_adc_ports(AN0);//setando o canal 0, canal analógico
setup_adc(ADC_CLOCK_INTERNAL);//setando o clock interno para a conversão ad
set_adc_channel(0);//função para setar o canal 0
while(true){
canal = read_adc();//capturando o valor do canal analógico
delay_ms(50);
set_pwm1_duty(canal);//coloca ao valor que foi setado
if(input(pin_d0) == true){
set_adc_channel(1);
}
if(input(pin_e2) == true){
set_adc_channel(0);
}
}
}
Software: Proteus versão 7.6 |
Nenhum comentário:
Postar um comentário