User Tag List

Trang 1/3 123 cuốicuối
kết quả từ 1 tới 10 trên 28
Cây cảm ơn14Cảm ơn

Ðề tài: Mạch Quang Báo Matrix 74HC595 16x64

  
  1. #1
    Thành viên mới Thienprodhtd's Avatar
    Tham gia
    Jan 2012
    Bài viết
    5
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Mạch Quang Báo Matrix 74HC595 16x64

    Mạch Quang Báo Matrix 74HC595 16x64

    Bạn nhấp vào ảnh để xem ảnh lớn hơn nha !!

    c.jpg

    Dưới đây là code chương trình.


    #include "regx52.h"
    #include "font_code.h"
    #define scan_led P2
    /////////////////////////////
    //////THIET LAP BAN DAU//////
    #define so_led 8 //boi cu?a 8
    #define so_hang 16 //chieu cao cua font chu
    #define multi so_hang+1 //
    #define cot_font 11 //chieu ngang cua font chu
    #define en_run 1 //1: chay <----> 0 dung
    ////////////////////////////

    typedef unsigned char uchar;
    typedef unsigned int uint;
    sbit rck=P3^2;
    sbit srck=P3^0;
    sbit ser_in=P3^1;
    sbit en_hc154=P3^3;

    bit run=0,en=en_run;
    idata uchar display_buffer[so_hang][so_led];
    idata uchar shift_buffer[so_hang];
    uchar row_buffer[16]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
    uchar row_led[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
    uchar tocdoh=0xf6,tocdol=0x00;
    uchar kitu_code=0;
    char row=multi;
    void shift_dataled();
    void test_led();
    void clear_buffer();
    void run_string();
    void copy_datacode();
    void scan_dataled_code();
    void init_interrupt();

    ////////////////////////////////
    ///////ngat timer 0////////////
    void isr_timer0() interrupt 1 using 1
    {
    TH0=tocdoh,TL0=tocdol;
    if(--row==-1) row=multi-1;
    shift_dataled();
    if(row==so_hang) run=1;
    }
    ////////////////////////////////
    /////////chuong trinh chinh/////
    void main()
    {
    uchar w;
    init_interrupt();
    test_led();
    clear_buffer();
    if(en==0) scan_dataled_code();

    while(1)
    {
    if((run==1)&(en==1)){
    IE&=0xfd;
    run_string(),run=0;
    if(++w==8) copy_datacode(),w=0;
    row=so_hang;
    IE|=0x02;
    }

    }

    }
    ////////////////////////////////
    ////////kiem tra led////////////
    void test_led()
    {
    uchar i,j;
    uint t_delay=10000;
    for(i=0;i<so_hang;i++)
    for(j=0;j<so_led;j++)
    display_buffer[i][j]=0xff;
    while(--t_delay);
    }
    void clear_buffer()
    {
    uchar i,j;
    for(i=0;i<so_hang;i++)
    for(j=0;j<so_led;j++)
    display_buffer[i][j]=0;
    }

    ////////////////////////////////
    ///////dich data va quet led////
    void shift_dataled()
    {
    char i,j;

    srck=0;
    rck=0;
    if(row<so_hang){
    for(i=0;i<so_led;i++)
    for(j=0;j<8;j++){
    ser_in=display_buffer[row][i]&row_buffer[7-j];
    srck=1;
    srck=0;
    }
    en_hc154=1;
    rck=1;
    rck=0;
    scan_led=row_led[row];
    en_hc154=0;
    }

    }
    void copy_datacode()
    {
    uchar i;
    static uchar j;
    for(i=0;i<so_hang;i++)
    shift_buffer[i]=Bmp002[Bmp002[2]*i+3+j];
    if(++j==Bmp002[2]) j=0;
    }
    ////////////////////////////////
    ////////chay chuoi//////////////
    void run_string()
    {
    uchar i,j;
    for(i=0;i<so_hang;i++)
    {
    for(j=0;j<so_led;j++)
    {
    display_buffer[i][j]<<=1;
    if(j!=(so_led-1)) display_buffer[i][j]|Click here to enlargedisplay_buffer[i][j+1]&0x80)>>7);
    else display_buffer[i][j]|Click here to enlargeshift_buffer[i]&0x80)>>7);
    }
    shift_buffer[i]<<=1;
    }
    }
    void scan_dataled_code()
    {
    uchar i,j;
    for(i=0;i<so_hang;i++){
    for(j=0;j<so_led;j++){
    display_buffer[i][j]=Bmp002[Bmp002[2]*i + 3+j];
    }
    }
    }
    ////////////////////////////////
    //////khoi dong ngat////////////
    void init_interrupt()
    {
    TMOD=0x01; //timer0 che do 1 16b
    TH0=0xF8;
    TL0=0x30;
    TR0=1;
    TR1=1;
    IE=0x82; //cho phep ngat timer0
    }

    CHỦ ĐỀ TƯƠNG TỰ:

    File gửi kèm
    capuchinoiloverap đã cảm ơn nội dung này.

  2. #2
    Thành viên chính thức cogaihalan's Avatar
    Tham gia
    Mar 2012
    Nơi Cư Ngụ
    ĐN
    Bài viết
    69
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Click here to enlarge Nguyên văn bởi Thienprodhtd Click here to enlarge
    Mạch Quang Báo Matrix 74HC595 16x64

    Bạn nhấp vào ảnh để xem ảnh lớn hơn nha !!

    c.jpg

    Dưới đây là code chương trình.


    #include "regx52.h"
    #include "font_code.h"
    #define scan_led P2
    /////////////////////////////
    //////THIET LAP BAN DAU//////
    #define so_led 8 //boi cu?a 8
    #define so_hang 16 //chieu cao cua font chu
    #define multi so_hang+1 //
    #define cot_font 11 //chieu ngang cua font chu
    #define en_run 1 //1: chay <----> 0 dung
    ////////////////////////////

    typedef unsigned char uchar;
    typedef unsigned int uint;
    sbit rck=P3^2;
    sbit srck=P3^0;
    sbit ser_in=P3^1;
    sbit en_hc154=P3^3;

    bit run=0,en=en_run;
    idata uchar display_buffer[so_hang][so_led];
    idata uchar shift_buffer[so_hang];
    uchar row_buffer[16]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
    uchar row_led[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
    uchar tocdoh=0xf6,tocdol=0x00;
    uchar kitu_code=0;
    char row=multi;
    void shift_dataled();
    void test_led();
    void clear_buffer();
    void run_string();
    void copy_datacode();
    void scan_dataled_code();
    void init_interrupt();

    ////////////////////////////////
    ///////ngat timer 0////////////
    void isr_timer0() interrupt 1 using 1
    {
    TH0=tocdoh,TL0=tocdol;
    if(--row==-1) row=multi-1;
    shift_dataled();
    if(row==so_hang) run=1;
    }
    ////////////////////////////////
    /////////chuong trinh chinh/////
    void main()
    {
    uchar w;
    init_interrupt();
    test_led();
    clear_buffer();
    if(en==0) scan_dataled_code();

    while(1)
    {
    if((run==1)&(en==1)){
    IE&=0xfd;
    run_string(),run=0;
    if(++w==8) copy_datacode(),w=0;
    row=so_hang;
    IE|=0x02;
    }

    }

    }
    ////////////////////////////////
    ////////kiem tra led////////////
    void test_led()
    {
    uchar i,j;
    uint t_delay=10000;
    for(i=0;i<so_hang;i++)
    for(j=0;j<so_led;j++)
    display_buffer[i][j]=0xff;
    while(--t_delay);
    }
    void clear_buffer()
    {
    uchar i,j;
    for(i=0;i<so_hang;i++)
    for(j=0;j<so_led;j++)
    display_buffer[i][j]=0;
    }

    ////////////////////////////////
    ///////dich data va quet led////
    void shift_dataled()
    {
    char i,j;

    srck=0;
    rck=0;
    if(row<so_hang){
    for(i=0;i<so_led;i++)
    for(j=0;j<8;j++){
    ser_in=display_buffer[row][i]&row_buffer[7-j];
    srck=1;
    srck=0;
    }
    en_hc154=1;
    rck=1;
    rck=0;
    scan_led=row_led[row];
    en_hc154=0;
    }

    }
    void copy_datacode()
    {
    uchar i;
    static uchar j;
    for(i=0;i<so_hang;i++)
    shift_buffer[i]=Bmp002[Bmp002[2]*i+3+j];
    if(++j==Bmp002[2]) j=0;
    }
    ////////////////////////////////
    ////////chay chuoi//////////////
    void run_string()
    {
    uchar i,j;
    for(i=0;i<so_hang;i++)
    {
    for(j=0;j<so_led;j++)
    {
    display_buffer[i][j]<<=1;
    if(j!=(so_led-1)) display_buffer[i][j]|Click here to enlargedisplay_buffer[i][j+1]&0x80)>>7);
    else display_buffer[i][j]|Click here to enlargeshift_buffer[i]&0x80)>>7);
    }
    shift_buffer[i]<<=1;
    }
    }
    void scan_dataled_code()
    {
    uchar i,j;
    for(i=0;i<so_hang;i++){
    for(j=0;j<so_led;j++){
    display_buffer[i][j]=Bmp002[Bmp002[2]*i + 3+j];
    }
    }
    }
    ////////////////////////////////
    //////khoi dong ngat////////////
    void init_interrupt()
    {
    TMOD=0x01; //timer0 che do 1 16b
    TH0=0xF8;
    TL0=0x30;
    TR0=1;
    TR1=1;
    IE=0x82; //cho phep ngat timer0
    }
    bạn ơj bạn có thêm hjệu ứng mới k ở đây có 1 hjệu ứng à


  3. #3
    Thành viên tích cực maingochoc's Avatar
    Tham gia
    Jan 2010
    Nơi Cư Ngụ
    Thái Bình
    Bài viết
    466
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Hiệu ứng.

    Muốn thay đổi hiệu ứng thì thay các mã hex trong RAM cụ thể là trong mảng display_buffer

    Mai Ngọc Học - Sư Phạm Kỹ Thuật Hưng Yên
    Facebook : Mun Tong Torn
    Liên Hệ : 01655631454

  4. #4
    Thành viên chính thức cogaihalan's Avatar
    Tham gia
    Mar 2012
    Nơi Cư Ngụ
    ĐN
    Bài viết
    69
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ////////////////////////////////
    ////////chay chuoi//////////////
    void run_string()
    {
    uchar i,j;
    for(i=0;i<so_hang;i++)
    {
    for(j=0;j<so_led;j++)
    {
    display_buffer[i][j]>>=1;
    if(j!=(so_led-1)) display_buffer[i][j]|Click here to enlargedisplay_buffer[i][j+1]&0x01)<<7);
    else display_buffer[i][j]|Click here to enlargeshift_buffer[i]&0x01)<<7);
    }
    shift_buffer[i]>>=1;
    }
    }
    Bạn coi sai chỗ nào vậy bạn?


  5. #5
    Thành viên tích cực maingochoc's Avatar
    Tham gia
    Jan 2010
    Nơi Cư Ngụ
    Thái Bình
    Bài viết
    466
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Code

    Mình thấy bình thường mà.
    Code này của bác tienhuypro trên 4r mình.
    Code chạy ngon lành.
    Nếu pạn copy ở bên trên thì không lỗi đâu.

    Mai Ngọc Học - Sư Phạm Kỹ Thuật Hưng Yên
    Facebook : Mun Tong Torn
    Liên Hệ : 01655631454

  6. #6
    Thành viên chính thức cogaihalan's Avatar
    Tham gia
    Mar 2012
    Nơi Cư Ngụ
    ĐN
    Bài viết
    69
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Click here to enlarge Nguyên văn bởi maingochoc Click here to enlarge
    Mình thấy bình thường mà.
    Code này của bác tienhuypro trên 4r mình.
    Code chạy ngon lành.
    Nếu pạn copy ở bên trên thì không lỗi đâu.
    thì mình có nói code sai đâu ý mình là thêm 1 số hiệu ứng nữa bạn coi code trên nó chưa đúng chỗ nào vậy?


  7. #7
    Thành viên tích cực maingochoc's Avatar
    Tham gia
    Jan 2010
    Nơi Cư Ngụ
    Thái Bình
    Bài viết
    466
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Hehe !

    Bạn muốn nó chạy từ trái sang phải hả.
    Sửa mỗi chỗ này không được đâu.
    Còn phải sửa ở hàm copy data code led,... nữa

    Mai Ngọc Học - Sư Phạm Kỹ Thuật Hưng Yên
    Facebook : Mun Tong Torn
    Liên Hệ : 01655631454

  8. #8
    Thành viên chính thức cogaihalan's Avatar
    Tham gia
    Mar 2012
    Nơi Cư Ngụ
    ĐN
    Bài viết
    69
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Nếu bạn làm rồi úp code lên đây đc k bạn


  9. #9
    Thành viên tích cực maingochoc's Avatar
    Tham gia
    Jan 2010
    Nơi Cư Ngụ
    Thái Bình
    Bài viết
    466
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Sr !

    Mình chỉ đọc hiểu code thui chứ chưa sửa.

    Mai Ngọc Học - Sư Phạm Kỹ Thuật Hưng Yên
    Facebook : Mun Tong Torn
    Liên Hệ : 01655631454

  10. #10
    Thành viên chính thức cogaihalan's Avatar
    Tham gia
    Mar 2012
    Nơi Cư Ngụ
    ĐN
    Bài viết
    69
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    à vậy a ^^ nhưng bạn cũng hiểu thì mới nói vậy chứ nếu bạn rảnh thì chia sẻ code nha!!
    bye!


Trang 1/3 123 cuốicuối

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không được gửi luồng mới
  • Bạn không được trả lời bài viết
  • Bạn không được gửi file đính kèm
  • Bạn không được sửa bài viết của mình
  •