![]() |
Cần các bạn giải đáp giúp
mình có sử dụng file lcd420.c của CCS, mặc định là sử dụng portB để điều khiển LCD (#byte lcd = 6 ) nhưng mình đã khai báo lại là #byte lcd = 8 trong file lcd420 để dùng portd điều khiển vì cần phải sử dụng ngắt ngoài trên portB nhưng mô phỏng thì thấy LCD hiển thị không chính xác và có hiện tượng chập trên các dây data còn nếu dùng portB thì LCD hiển thị bình thường, không biết là lỗi gì dưới đây là đoạn code ví dụ
[/code] #include "16f877a.h" #include <dn16f877a.h> #device *=16 adc=10 #fuses hs,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #include <lcd420.c> int8 dem=0; #int_EXT void EXT_isr(void) { dem++; if(dem==4) dem=0; } void main() { setup_adc_ports(AN0_AN1_AN2_AN3_AN4); setup_adc(ADC_CLOCK_INTERNAL); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); enable_interrupts(INT_EXT); enable_interrupts(GLOBAL); set_tris_b(0xff); set_tris_d(0x00); portd=0x00; lcd_init(); delay_ms(10); lcd_putc("\f"); while(true) { lcd_gotoxy(1,1); printf(lcd_putc,"%s%d","dem=",dem); } } [/code] |
1 điều nữa là khi mình sử dụng file lcd420 đổi sang portD để điều khiển thì ngắt ngoài không sử dụng được, bỏ đi phần hiển thị lcd trong chương trình thì ngắt ngoài mới có tác dụng,thật khó hiểu
|
Múi giờ GMT. Hiện tại là 03:32 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