Thông báo

Collapse
No announcement yet.

mọi người giúp mình với! lỗi nho nhỏ

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

  • mọi người giúp mình với! lỗi nho nhỏ

    chào các bạn!
    Các bạn xem cái code mình với( quang báo dùng 16f877a). Sao mình đổi chân của Port C 4, 5, 6 sang 1,2,3 thì nó chạy không được ( mình tô đỏ trong code). mình gởi code lên.


    #include <16f877a.h>
    #include <font5x7.c>
    #use delay(clock=20m)

    #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[]="DO AN HE THONG NHUNG -- LED matrix 8x32 -- Sad_moon";
    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
    khai báo như thế này nhé (ccsc)
    #define MODBUS_SERIAL_RX_PIN PIN_C7 // Data receive pin
    #define MODBUS_SERIAL_TX_PIN PIN_C6 // Data transmit pin
    thử xem mình vẫn làm như thế này
    Yêu em do duyên số
    lấy em do sự cố xảy ra.........

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X