![]() |
|
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Jul 2011
Bài gửi: 25
: |
hôm bữa mọi chuyện chay bình thường rồi
hôm nay tự do đổi sang dung bjt pnp thì sao nó ko chuyên 1.2.3 sang 4.5.6 nữa anh xem code hay mach em có lỗi lầm j không. Code:
#include <16F877A.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #device 16F877*=16 ADC=10 #use delay(clock=12000000) #byte portb=0x06 #byte portc=0x07 #byte portd=0x08 #byte intcon=0x000B #bit RBIF=intcon.0 #bit RBIE=intcon.3 Int16 ad1,ad2,ad0; int8 a,a0,a1,a2,b0,b1,b2,c0,c1,c2 ; const unsigned char digital[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x09} ; #int_rb void ngatrb7() { if(input(PIN_B7)==0 ) a=a+1; } void doc_ADC() { if(a%2==0) { 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) ; portd=0x00 ; } else { 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) ; portd=0xff ; } } void main() { set_tris_d(0) ; set_tris_b(0b11110000); set_tris_c(0); setup_ADC(ADC_clock_internal); setup_adc_ports(ALL_ANALOG); enable_interrupts(global); enable_interrupts(int_rb); ext_int_edge(h_to_l); while(true) { doc_ADC() ; portb=0x01 ; c0=ad0/100 ; portd=digital[c0] ; portb=0x02 ; c1=ad1/100 ; portd=digital[c1] ; portb=0x04 ; c2=ad2/100 ; portd=digital[c2]; portc=0x06 ; delay_ms(2) ; portc=0x07 ; ///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] ; portc=0x05 ; delay_ms(2) ; portc=0x07 ; ////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]; portc=0x03; delay_ms(2) ; portc=0x07 ; } } |
![]() |
![]() |
![]() |
|
|