Các A chị giúp E sửa lỗi code với!
E dùng timer1 đếm xung clock đưa vào từ chân T1CKI.Timer0 tạo thời gian1s. nhưng giá trị hiển thị lên LCD cứ thay đổi mong mọi người giúp đỡ.Dưới đây là code #include <16F877A.h> #include <def_877a.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #device *=16 adc=10 #use delay(clock=20000000) #include <lcd_lib_4bit.c> #use fast_IO(C) #use fast_IO(a) #use fast_IO(B) #use fast_IO(D) #byte portC=0x07 int8 nghin,tram,chuc,donvi; void tinhtoan_hienthi(int16 x); int16 x; //------DAT BIEN TOAN CUC----------------// INT16 SOLANLAP=0; INT16 BIEN; INT16 SOXUNGDEM_1PHUT=0; //.................................................. ..................................... #INT_TIMER0 VOID SOXUNGDEM_1S() { solanlap=solanlap+1; } void TINHTOAN_HIENTHI(int16 x) // thuc hien tach so va dua ra hien thi {nghin = x / 1000 + 0x30; x = x % 1000; tram = x / 100 + 0x30; // tách s? hàng tram x = x % 100; // chia l?y ph?n d? chuc = x / 10 + 0x30; // tách l?y ph?n ch?c donvi = x % 10 + 0x30; // ph?n don v? lcd_putchar(nghin); lcd_putchar(tram); lcd_putchar(chuc); lcd_putchar(donvi); } void main() { SET_TRIS_A(0X0); set_tris_C(0x01); lcd_putcmd(0x80); lcd_init(); delay_ms(10); BIEN=0; setup_TIMER_1(T1_EXTERNAL); set_TIMER1(0); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2); set_timer0(6); enable_interrupts(INT_RTCC); enable_interrupts(GLOBAL); DELAY_MS(10); while( TRUE ) { if (solanlap==10000) { BIEN=GET_TIMER1(); PORTA=BIEN; SOXUNGDEM_1PHUT=(60*BIEN); SOLANLAP=0; SET_TIMER1(0); set_timer0(6); lcd_putcmd(0x88); TINHTOAN_HIENTHI(SOXUNGDEM_1PHUT); } } } |
mình dùng ngược lại với bạn, timer1 đếm time, timer0 tính xung, giá trị cũng nhảy nhảy. hic, đang mò mà chưa biết sao cho nó ok nhất, thời gian đo thực tế không chính xác lắm, đang tìm cách tính chu kì máy của pic để tính cho chuẩn. đọc cái code của bạn, có một số nhận xét sau:
bạn không cho ngắt timer1 kìa: enable_interrupts(int_timer1); không biết timer1 của bạn có prescaler bằng bao nhiêu? mình thấy nếu cho hiển thị lcd vào trong vòng lặp while(1) thì giá trị hiển thị lcd cứ nhảy như ngựa ấy. tạm thời chỉ biết tới đây thui. mong cùng hợp tác. |
Trích:
enable_interrupts(int_timer1); cấu hình Timer1 làm đếm xung thì Mình không cần dùng ngắt Timer1 nữa.Khi đó Mình dùng Timer0 đọc giá trị của Timer1 để biết số xung đã đếm dc trong 1 giây (ngắt Timer0 của Mình là 1 giây) từ đó tính ra tốc độ. Hiện mình đã sửa được và tốc độ hiển thị LCD là chính xác. Mình đang làm phần giao tiếp với máy tình bằng Lapview! Điều khiển (on-off) động cơ thì đc rồi nhưng lại mắc ở việc hiển thị tốc độ lên máy tính!(Mình đọc dữ liệu từ bộ đệm và đã thử tách nhưng hiển thị không chuẩn). Mong Bạn và các A (Chị) giúp đỡ. |
Can_Su_Giup_Do_Ve_Pic 16f877A
hj cac pan, minh mun tim hiu ve mach thiet ke dong co DC dieu khien tu xa bang Remote dung Pic 16f877A, thi can nhug con linh kien nao de hoan thanh mach nay. Neu pan nao pit thi huong dan cho m voi nha, ah kem theo ca doan Code thi cang tot, boi vi m cug chua am hiu may ve Lap trinh Pic 16f877A. Mog dc su hoi am cua cac pan doc yeu thik dien dan http://www.picvietnam.com Nick: nguyenuoc02@gmail.com Thanks nhiu nhiu nha |
Can_Su_Giup_Do_Ve_Pic 16f877A
Can_Su_Giup_Do_Ve_Pic 16f877A
hj cac pan, minh mun tim hiu ve mach thiet ke dong co DC dieu khien tu xa bang Remote dung Pic 16f877A, thi can nhug con linh kien nao de hoan thanh mach nay. Neu pan nao pit thi huong dan cho m voi nha, ah kem theo ca doan Code thi cang tot, boi vi m cug chua am hiu may ve Lap trinh Pic 16f877A. Mog dc su hoi am cua cac pan doc yeu thik dien dan http://www.picvietnam.com Nick: nguyenuoc02@gmail.com Thanks nhiu nhiu nha |
Trích:
|
điều khiển động cơ dc giao tiếp lcd
2 Attachment(s)
Mới lụm dc đồ án điều khiển động cơ nhưng phần code bị lỗi anh em chỉ giúp mình với có gì thì gởi wa meo mình cảm ơn nhìu
email:dungnguyencg@yahoo.com.vn |
Trích:
|
su dung ic dich 74hc595 va pic 16f877a led matrix 8*8
nhan pim 1 bang den hien lan luot cac chu cai va chu so mau do
nhan pim 2bang den hien tu dong cac chu cai va chu so mau do nhan pim 3 bang den hien lan luot cac chu cai va chu so mau xanh nhan pim 4bang den hien tu dong cac chu cai va chu so mau xanh cac anh giup e voi |
help me.cac ban giup em voi
|
Nguyên văn bởi pk178
Bạn có thể tham khảo 1 đồ án tốt nghiệp của trường ĐH BKHN về vấn đề này ở địa chỉ http://www.mediafire.com/?oo34ztnmdq0 Còn 1 đồ án tương tự nữa bạn có thể tham khảo, cũng là bộ điều khiển PID, điều khiển trực tiếp qua giao diện trên máy tính, ở đây mình dùng ngôn ngữ C#, viết trên VS2008, bạn phải có bộ này hoặc mới hơn mới xem được code giao diện. Còn PIC thì mình dùng dòng 16F887, cũng tương tự với dòng 16F877A. Địa chỉ download : http://www.mediafire.com/?116d1d14019zdij nhưng có mã khóa mà e đâu có biết mà download về đc. |
pas download la j the ban
|
Trích:
|
Múi giờ GMT. Hiện tại là 11:04 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam