PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Pic 18f4550 (http://www.picvietnam.com/forum/showthread.php?t=14899)

kyanh911 18-04-2012 09:57 AM

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

ptptyl 18-04-2012 11:10 AM

đâ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.

kyanh911 18-04-2012 02:15 PM

ptptyl.....trả lời shock quá....

kyanh911 18-04-2012 04:27 PM

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();
}

}

thanhlam1911 09-05-2012 03:40 PM

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