Thông báo

Collapse
No announcement yet.

mọi người giúp mình cái code này với

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • mọi người giúp mình cái code này với

    mình đang làm mạch quang báo quét led matrix 4led chạy chữ dùng con 74hc595 pic16f877a. ma cái code k hiểu sai chỗ nào mà k chạy, mọi người giúp mình với.thaks

    #include <16F877A.h>
    #include <def_877a.h>
    #defice *=16 adc=10
    #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
    #use delay(clock=20000000)
    #include <string.h>
    #include "font.c"

    #define ic595_sclk1 PIN_B0
    #define ic595_data1 PIN_B1
    #define ic595_lclk1 PIN_B2
    #define ic595_sclk2 PIN_B3
    #define ic595_data2 PIN_B4
    #define ic595_lclk2 PIN_B5

    unsigned int8 next=0,lengh_STR;
    unsigned char count=0;
    unsigned char welcome[]=" PhamDanh ";
    unsigned char *str;
    #int_timer0
    void ngat_time0()
    {
    set_timer0(8);
    count++;
    if(count==25){
    count=0;
    next++;
    if(next>=lengh_STR)next=0;
    }
    }

    void Ic74595_Write(char data,char ic,char bits)
    {
    signed char count;
    if(ic==1)
    {
    for(count=bits-1;count>=0;count--)
    {
    if((( data>>count) & 0x01) ==1)
    output_high(ic595_data1);
    else
    output_low(ic595_data1);
    output_high(ic595_sclk1);
    output_low(ic595_sclk1);
    }
    output_high(ic595_lclk1);
    output_low(ic595_lclk1);
    }
    if(ic==2)
    {
    for(count=bits-1;count>=0;count--)
    {
    if((( data>>count) & 0x01) ==1)
    output_high(ic595_data2);
    else
    output_low(ic595_data2);
    output_high(ic595_sclk2);
    output_low(ic595_sclk2);
    }
    output_high(ic595_lclk2);
    output_low(ic595_lclk2);
    }
    }

    void Run_str_RtoL()
    {
    lengh_str=strlen(str)*6;
    unsigned char j,temp_font;
    Ic74595_Write(1,1,1);
    for(j=next;j<32+next;j++){
    Temp_font=font[str[(j%lengh_STR)/With_of_font] -32][j%With_of_font];
    Ic74595_Write(temp_font,2,8);
    delay_us(500);
    Ic74595_Write(0,1,1);
    }
    }

    void main (){
    TRISB=0x00;
    enable_interrupts(int_timer0);
    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
    enable_interrupts(global);
    set_timer0(8);
    str=welcome;
    while(1){
    Run_str_RtoL();
    }
    }

  • #2
    mọi người giúp e với, e đang cần rất gấp

    Comment


    • #3
      bạn dùng phần mềm gì vậy bạn

      Comment


      • #4
        Quang báo k phải dành cho những bạn muốn "mì ăn liền" . Nay cả chưa hiểu về phần cứng thì làm sao bạn lập trình Quang báo .

        Cột thì đc cấp dữ liệu qua 595 , vậy còn dòng ? Bạn nối trực tiếp với nguồn mà không cần điều khiển ah ?

        Comment

        Về tác giả

        Collapse

        be bap Tìm hiểu thêm về be bap

        Bài viết mới nhất

        Collapse

        Đang tải...
        X