![]() |
Pic 18f4550
Anh em nào có kinh nghiệm về 18f4550 thì cho mình tham khảo với. Hiện tại mình đang viết giao tiếp LCD 4 bit cho nó (viết cho 16f877a chạy rùi) và giao tiếp ADC ( k sử dụng hàm có sẵn). Có thể cho mình xin số alo để trao đổi trực tiếp. Thanks
|
đâu ai rảnh mà giúp ông kiểu này, cứ làm đi, có khó khăn gì thì post code nhờ anh em giúp.
|
ptptyl.....trả lời shock quá....
|
Em có đoạn code này đọc adc của 18f4550....mô phỏng trên proteus mà vẫn chưa đọc được
#include<18f4550.h> #fuses nowdt,noprotect,hs,nolvp,put #use delay(clock=20000000) #use fast_io(b) #use fast_io(d) #use fast_io(a) //dinh nghia 1 so thanh ghi cua bo ADC #byte adcon0=0xfc2 #byte adcon1=0xfc1 #byte adcon2=0xfc0 #byte adresl=0xfc3 #byte adresh=0xfc4 #bit godone = adcon0.1 // bit cho phep adc hoat dong // cung la bit báo cho biet adc da chuyen doi xong #bit adon = adcon0.0 // bit mo nguon cho adc unsigned char digit[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0}; int8 a,b,c,d; //ham doc gia tri cua bo ADC....gia tri tra ve la 1 so 16 bit int16 doc_adc() { int16 tam; adon=1; //bat nguon cho adc delay_us(10); godone=1; //bat dau chuyen doi while(godone); //wait tam=adresh; tam=tam<<8+adresl; adon=0; return tam; } void hextobcd(int16 xx) { a=xx%10; //don vi b=(xx%100)/10; //chuc c=(xx%1000)/100; //tram d=(xx%10000)/1000; //nghin } void hienthi() { int8 i; i=0; while(i<100) { output_d(digit[a]); output_b(0xf7); delay_ms(1); output_b(0xff); output_d(digit[b]); output_b(0xfb); delay_ms(1); output_b(0xff); output_d(digit[c]); output_b(0xfd); delay_ms(1); output_b(0xff); output_d(digit[d]); output_b(0xfe); delay_ms(1); output_b(0xff); i++; } } main() { adcon0=0x00; adcon1=0x37; adcon2=0x80; set_tris_b(0); set_tris_d(0); set_tris_a(0xff); while(1) { hextobcd(doc_adc()); hienthi(); } } |
mail tui đây thanhlam1911@gmail.com
|
Múi giờ GMT. Hiện tại là 12:16 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam