Thông báo

Collapse
No announcement yet.

Help Sửa lỗi code led ma trận 16f877a & 74595 &uln2803

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

  • Help Sửa lỗi code led ma trận 16f877a & 74595 &uln2803

    Mấy anh ơi giúp giùm em cái đoạn code nay với cai này em lấy trên mạng về mô phỏng thì được như khi vào thực tế thi led chỉ sáng nhấm nháy ma không chạy dduocj chữ.Nó bị zay là co thể do nguyen nhan nao zay mấy anh,nếu anh nào biết thì sửa giúp em hen,Em cảm ơn mấy anh nhiều
    #include <16f877a.h>
    #include <font5x7.c>
    #use delay(clock=20m)
    #fuses NOWDT,NOPUT,HS,NOPROTECT,NOLVP,NODEBUG,NOBROWNOUT
    #byte Port_B = 0x06 // Dinh nghia thanh ghi Port B
    #byte Port_C = 0x07 // Dinh nghia thanh ghi Port C
    #byte TRIS_B = 0x86 // Dinh nghia thanh ghi Tris B
    #byte TRIS_C = 0x87 // Dinh nghia thanh ghi Tris B

    #byte led_data = Port_B
    #bit data = Port_C.4 // Dinh nghia chan data la pin C.4
    #bit clock = Port_C.5 // Dinh nghia chan data la pin C.5
    #bit latch = Port_C.6 // Dinh nghia chan data la pin C.6

    char led[32];//4led matran
    char font_buffer[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};//
    unsigned char string1[]="KHOA DIEN DIEN TU DAI HOC SPKT";
    char dem_ngat, addr, leng, ky_tu, vi_tri;

    // Chuong trinh con day du lieu vao 595
    // ULN 2803 dem dau ra dao nen day vao 1bit 0 va 31bit 1
    void HC595(char cot){
    char i;
    for(i=0;i<cot;i++){ //DUA CAC BIT 0 VAO` TRUOC
    data=1 ; // Dua bit 0 vao 595
    clock=1; // Tao 1 xung o chan Clock de Dua du lieu vao 595
    clock=0;
    }
    data=0; // Dua bit 0 vao vi tri cot can hien thi
    clock=1;
    clock=0;
    for(i=(cot+1);i<=31;i++){
    data=1; //Tiep tu dua bit 0 vao 595 cho du 32bit
    clock=1;
    clock=0;
    }
    latch=1; // Tao 1 xung o chan Latch de day du lieu ra cac cong va chot
    latch=0;
    }

    #int_timer0 // Khai bao su dung timer 0
    // Chuong trinh ngat Timer0
    void Scan(void){
    set_timer0(6); //cai dat gia tri ban dau cho timer0
    if((++dem_ngat)==2){
    led_data=0xFF;
    HC595(addr);
    led_data=led[addr];
    addr++;
    if(addr>=32) addr=0;
    dem_ngat=0;
    }
    }
    // Chuong trinh con lay do dai chuoi ky tu
    void leng_string(void){
    leng=0;
    while((string1[leng])!='\0') // Chay tu dau cho toi khi ket thuc chuoi
    leng++;
    }
    // Chuong trinh con Copy font chu vao bo dem
    void copy_font(void){
    char j;
    for(j=0;j<=4;j++)
    font_buffer[j]=font[(string1[ky_tu]-32)].b[j]; // Copy ma font (5byte) tu ky tu can hien thi vao bo dem font_buffer
    font_buffer[j]=0xff;
    }
    // Chuong trinh con cho chu chay tu phai sang trai
    void kieu_1(void){
    char j;
    for(j=31;j>0;j--)
    led[j]=led[j-1];
    if(vi_tri>5){
    vi_tri=0;
    copy_font();
    ky_tu++;
    }
    else{
    led[0]=font_buffer[vi_tri];
    vi_tri++;
    }
    }
    // Chuong trinh chinh
    void main(){
    int i;
    TRIS_B=0x00; TRIS_C=0x00;
    Port_B=0x00; Port_C=0x00;

    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16); //tan so timer0 = precase/16
    set_timer0(6); //dat gia tri ban dau cho RTC
    enable_interrupts(global);//cho phep ngat toan cuc
    enable_interrupts(int_rtcc);

    leng_string(); // Lay do dai
    ky_tu=0;
    while(true){
    for (i=0;i<=31;i++) led[i]=0xff;
    while(ky_tu<=leng){
    kieu_1();
    delay_ms(50);
    }
    }
    }

  • #2
    có ai giúp mình
    tìm hiểu cái lỗi này không.

    Comment

    Về tác giả

    Collapse

    bapnuong0201 Tìm hiểu thêm về bapnuong0201

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

    Collapse

    • bqviet
      Trả lời cho Đấu tắt điện cho máy tính bảng
      bởi bqviet
      Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
      06-12-2025, 17:17
    • nguyendinhvan
      Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
      bởi nguyendinhvan
      Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
      05-12-2025, 19:59
    • afrendly
      Trả lời cho Đấu tắt điện cho máy tính bảng
      bởi afrendly
      Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
      04-12-2025, 01:27
    • nick22
      Trả lời cho Máy điện châm ?
      bởi nick22
      Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
      01-12-2025, 13:23
    Đang tải...
    X