View Single Post
Old 04-10-2011, 02:13 AM   #4
levuphuong
Đệ tử 1 túi
 
Tham gia ngày: Jul 2011
Bài gửi: 25
:
Code:
#include <16F877A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#device 16F877*=16 ADC=10
#use delay(clock=12000000)
#byte portb=0x06
#byte portc=0x08
#byte portd=0x07
#byte intcon=0x000B
#bit RBIF=intcon.0 
#bit RBIE=intcon.3 
#bit RB7=portb.7 
Int16 ad1,ad2,ad0;
int8 a0,a1,a2,b0,b1,b2,c0,c1,c2 ;
int8 a=0 ;
const unsigned char digital[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x09} ;
#int_rb
void ngatRB7()
{
  
         a=a+1;
         
          
         RBIF=0;
      

}
void doc_ADC()
{
if(a%2)
{
   portc=0x01;
   set_ADC_channel(0);
   ad0=read_ADC();
   delay_us(10) ;
  

   set_ADC_channel(1);  
   ad1=read_ADC();
   delay_us(10) ;
   
   set_adc_channel(2);   
   ad2=read_ADC() ;
   delay_us(10) ;
}
else
{
   portc=0x02;
   set_ADC_channel(3);
   ad0=read_ADC();
   delay_us(10) ;
  

   set_ADC_channel(4);  
   ad1=read_ADC();
   delay_us(10) ;
   
   set_adc_channel(5);   
   ad2=read_ADC() ;
   delay_us(10) ;
}

}
void main()
{
set_tris_b(0b10000000);
set_tris_d(0);
set_tris_c(0);
enable_interrupts(global);
enable_interrupts(int_rb);
ext_int_edge(H_to_L);
setup_ADC(ADC_clock_internal);
setup_adc_ports(ALL_ANALOG);


while(true)
{
doc_ADC() ;
 ////hien chu so hang tram
// delay_ms(10) ;
portb=0x01 ;
c0=ad0/100 ;
portd=digital[c0] ;
portb=0x02 ;
c1=ad1/100 ;
portd=digital[c1] ;
portb=0x04 ;
c2=ad2/100 ;
portd=digital[c2];
portb=0x20 ;
delay_ms(2) ;
portb=0x00 ;
///chu hang chuc
portb=0x01;
b0=(ad0%100)/10 ;
portd=digital[b0] ;
portb=0x02;
b1=(ad1%100)/10 ;
portd=digital[b1] ;
portb=0x04 ;
b2=(ad2%100)/10 ;
portd=digital[b2] ;
portb=0x10 ;
delay_ms(2) ;
portb=0x00 ;
////chu hang don vi
portb=0x01 ;
a0=(ad0%10)%10 ;
portd=digital[a0] ;
portb=0x02 ;
a1=(ad1%10)%10 ;
portd=digital[a1] ;
portb=0x04 ;
a2=(ad2%10)%10 ;
portd=digital[a2];
portb=0x08;
delay_ms(2) ;
portb=0x00 ;
}
}
Mình thêm vào tí ngắt rb trên RB7 khi nhấn vao thi thay đổi từ 3 kênh 1.2.3 sang 4.5.6 và c0 hoăc c1 sẽ sáng để báo hiểu
Hình như mình viết ngắt ngoài có vấn đề led h ko sáng nữa.
levuphuong vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn