![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#28 |
Nhập môn đệ tử
Tham gia ngày: Aug 2014
Bài gửi: 3
: |
nhờ sửa code đo nhiệt độ dùng LM35 hiển thị lên LED 7SEG
em đang học PIC nên chả biết viết sai chỗ nào nữa,mong anh e chỉ bảo....
code đây ạ //Cau Hinh PIC #include <16f877a.h>//KHAI BAO THU VIEN #fuses XT,NOWDT,NOPUT,BROWNOUT,NOLVP,NOWRT,NODEBUG,NOPROT ECT//KHAI BAO PIC #device 16F877*=16 ADC=8 #use delay(clock=4000000)//KHAI BAO TAN SO THACH ANH void convert_bcd(int8 x); unsigned char const ma_LED[10]= {0xC0,0xcf,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x90 };//khai bao ma led int a,b,chuc, n,donvi;//Cac bien chu so void convert_bcd(int x) { chuc=(int)x%10; donvi=(int)x/10; donvi=(int)donvi%10; } void hienthi() // quet led { for(n=0;n<10;n++) { OUTPUT_D( ma_LED[chuc]); output_c(0b00000001); delay_ms(10); output_c(0b00000000); OUTPUT_D( ma_LED [donvi]); output_c(0b00000010); delay_ms(10); output_c(0b00000000); } } //CHUONG TRINH CHINH void main() { float nhietdo; { set_tris_a(0xff); SET_TRIS_c(0X00); //Port B là output(ngo ra) SET_TRIS_D(0x00); //port D la output(ngo ra) setup_ADC(ADC_clock_internal);//T/G lay mau bang xung clock setup_ADC_ports(AN0);//Lay Vref=5V set_ADC_channel(0);//chon chan A0 la chan dua tin hieu Analog vao delay_us(10);//tao khoang t/g de lay mau a=read_adc();//doc tin hieu vao nhietdo = (a)/2.048; b=nhietdo; convert_bcd((int8)b);//chuyen doi ADC delay_us(10); //Vong lap while(1) { a=read_adc(); nhietdo = (a)/2.048; convert_bcd((int8)b); hienthi(); } } } |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|