Cần các bạn giải đáp giúp

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • dientu90
    Đệ tử 1 túi
    • Mar 2012
    • 16

    #1

    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
    Đệ tử 1 túi
    • Mar 2012
    • 16

    #2
    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
    Last edited by dientu90; 08-11-2012, 11:20 AM.

    Comment

    Working...