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)
-   -   Cần các bạn giải đáp giúp (http://www.picvietnam.com/forum/showthread.php?t=31121)

dientu90 08-11-2012 10:46 AM

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]

dientu90 08-11-2012 12:13 PM

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