RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

cac anh chi vao xem giup e ve code quet led phim 4x4 voi a?????

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • yukul
    Đệ tử 1 túi
    • Aug 2010
    • 22

    #1

    cac anh chi vao xem giup e ve code quet led phim 4x4 voi a?????

    chả là e tìm trên mạng thấy code quét phím 4x4 nhưng e chưa hiểu thuật toán của nó như thế nào???ai vào giúp e với ạ.e cám ơn nhiều ạ.
    code e nó đây ạ:

    #include "C:\Documents and Settings\Administrator\Desktop\Kit 18f4520\Matrix phim\matrix phim + LCD.h"

    #define LCD_ENABLE_PIN PIN_D5
    #define LCD_RS_PIN PIN_D7
    #define LCD_RW_PIN PIN_D6
    #define LCD_DATA4 PIN_D4
    #define LCD_DATA5 PIN_C5
    #define LCD_DATA6 PIN_D3
    #define LCD_DATA7 PIN_D2
    #define LCD_TYPE 2
    #include <lcd.c>

    #use fast_io(d)
    #byte portd=0xf83
    #use fast_io(c)
    #byte portc=0xf82
    #use fast_io(b)
    #byte portb=0xf81

    #DEFINE KEYPORT PORTB
    #DEFINE TRISKEYPORT TRISB
    #DEFINE BASEKEY PIN_B4

    //CAC HAM CO BAN CHO QUET PHIM
    char xoayTrai(char value);//XOAY VONG MOT BIEN 8 BIT
    char readKey();//BAN DUNG CAI NAY TRONG CHUONG TRINH DE DOC PHIM BAN NHE


    void so(long int x)
    {
    int i;
    char m[4];
    for(i=0;i<=3;i++)
    {
    m[i]=x%10;
    x=x/10;
    }
    // lcd_putc(m[2]+0x30);
    lcd_putc(m[1]+0x30);
    // lcd_putc('.');
    lcd_putc(m[0]+0x30);
    }

    char key=0;
    int x;
    void main()
    {
    lcd_init();
    //set_TRIS_C(0X00);//OUPUT CHO PORTB DE DEBUG
    //PORTC=0XF0;//DANH DAU XUAT PORT OK
    //delay_ms(1000);
    while(1)
    {
    key=readKey();//DOC PHIM
    if(key!=0)x=key-1;
    //PORTC=key-1;//HIEN THI PHIM NEU CO MOT PHIM NHAN
    lcd_gotoxy(1,1);
    so(x);
    }
    }


    char xoayTrai(char value)
    {
    char temp;
    temp=value;
    temp=temp>>7;
    value=value<<1;
    value=value|temp;
    return value;
    }

    char readKey()
    {
    char temp;//LUU GIA TRI XOAY CHO PORT QUET PHIM
    char key;//LUU GIA TRI KEY DA NHAN
    //SAU NAY BAN MA HOA BIEN KEY DE HIEN THI RA LED HAY GI GI DO NHE
    int i;//BIEN DEM VONG

    set_tris_b(0XF0);//BAN PHAI THIET LAP INPUT VA OUTPUT CHO PORT QUET NHE
    KEYPORT=0X00;//TEST PORT MOT CHUT O DAY,KO QUAN TRONG LAM

    temp=0x7F;
    for( i=0;i<4;i++)
    {
    temp=xoayTrai(temp);//XOAY MOT BIT
    KEYPORT=temp;//DUA RA PORT DE QUET QUA HANG/COT MOI
    KEY=0;//MINH CHO KEY LUC NAO CUNG BAT DAU BANG 0, NEU KHAC 0 THI LA CO PHIM NHAN
    if( input_state(BASEKEY)==0 )//PHAI DUNG HAM INPUT_STATE KHONG DUOC DUNG INPUT(PIN) BAN NHE,HAM INPUT(PIN) DUNG LA CO LOI
    {
    KEY=i*4+1;
    break;
    }
    else if( input_state(BASEKEY+1)==0 )
    {
    KEY=i*4+2;
    break;
    }
    else if( input_state(BASEKEY+2)==0 )
    {
    KEY=i*4+3;
    break;
    }
    else if( input_state(BASEKEY+3)==0 )
    {
    KEY=i*4+4;
    break;
    }
    }
    return KEY;
    }
    //CUOI FILE CO MOT DONG TRONG
    Attached Files
    Last edited by yukul; 01-05-2012, 09:43 AM.
  • yukul
    Đệ tử 1 túi
    • Aug 2010
    • 22

    #2
    hic.không ai vào giúp e à

    Comment

    Working...