Giứp sửa lỗi code

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • banhcay12345
    Thành viên chính thức
    • Dec 2013
    • 68

    #1

    Giứp sửa lỗi code

    Chương trình minh viết hình như không sai mà sao không chạy được vậy. mong các ban giúp đỡ và sửa hộ mình với. hichic
    #include <REGX52.H>
    code unsigned char table[]=
    {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };

    unsigned char posit=0;
    unsigned int count=0;


    sbit int1 = P3^3;
    sbit SMG_q = P1^0;
    sbit SMG_b = P1^1;
    sbit SMG_s = P1^2;
    sbit SMG_g = P1^3;


    void display(unsigned int da);
    void delay(unsigned int timer);


    void main(void)
    {
    IE=0x84;
    EA=1; // tat ca moi ngat dc hoat dong.
    EX1=1; // cho phep ngat ngoai 1
    IT1=1; // thiet lap ngat theo suon am.
    TL1=0;
    TH1=0;
    TMOD=0X10;
    while(1){
    display(count);
    delay(100);
    }
    }
    void hongwai(void) interrupt 1
    {
    TR1=1; // khoi dong timer 1
    while(!int1);
    TR1=0;
    count=(int)(TH1<<8)+TL1;
    count/=10;
    EX1=0;
    TF1=0;
    }


    void display(unsigned int da)
    {
    P0=0XFF;
    da=da%10000;
    switch(posit){
    case 0:
    SMG_q=0;
    SMG_b=1;
    SMG_s=1;
    SMG_g=1;
    P0=table[da/1000];
    break;
    case 1:
    SMG_q=1;
    SMG_b=0;
    SMG_s=1;
    SMG_g=1;
    P0=table[da%1000/100]&0x7f;
    break;
    case 2:
    SMG_q=1;
    SMG_b=1;
    SMG_s=0;
    SMG_g=1;
    P0=table[da%100/10];
    break;
    case 3:
    SMG_q=1;
    SMG_b=1;
    SMG_s=1;
    SMG_g=0;
    P0=table[da%10];
    break;
    }
    posit++;
    if(posit>3)
    posit=0;
    }

    void delay(unsigned int timer){
    while(timer--);
    }
  • quoctuan10
    Thành viên tích cực
    • Jun 2011
    • 176

    #2
    Bác dùng cái gì biên dịch, lỗi nó báo ra sao, phải ghi ra chứ.
    QTCP

    Comment

    • quoctuan10
      Thành viên tích cực
      • Jun 2011
      • 176

      #3
      Sơ đồ nguyên lý bác vẽ ra sao, khộng có thông tin gì lam sao mà giúp
      QTCP

      Comment

      • banhcay12345
        Thành viên chính thức
        • Dec 2013
        • 68

        #4
        Click image for larger version

Name:	1380601_1387257268237646_6949634327537266127_n.jpg
Views:	1
Size:	123.7 KB
ID:	1400387 sờ đồ đây bạn ạ. có cả kit thực tập sẵn rồi. nên mình k dùng phần mềm mô phỏng bạn ạ

        Comment

        • quoctuan10
          Thành viên tích cực
          • Jun 2011
          • 176

          #5
          Nguyên tắc khi sử dụng UART (ở đây là giao tiếp máy tính) là dùng timer 1 để tạo tốc độ baund, nên bác chỉ còn timer 0 để dùng thôi. Đây là chỗ sai thứ nhất của bác. Thứ 2 bác cho phép ngắt ngoài nhưng chương trình con phục vụ ngắt của bác lại nhảy đến ngắt timer 0, trong khi timer không chưa được cho phép đếm (TR0=0). Đây là điểm sai thứ 2.
          QTCP

          Comment

          • banhcay12345
            Thành viên chính thức
            • Dec 2013
            • 68

            #6
            c trình của mình mới chỉ hiển thị lên led7seg cho nên cái lỗi 1 chắc k cần sửa bác nhỉ. khi nào giao tiếp máy tính thì sửa sau đúng k bác. bác có thể sửa luôn giúp e được không

            Comment

            • banhcay12345
              Thành viên chính thức
              • Dec 2013
              • 68

              #7
              giao tiếp máy tính thì mình là tương đối nhiềi bài rồi. và hiển thị lên led7seg nữa. ctrinh của mình sai chắc chỉ trong hàm chính thôi.

              Comment

              • quoctuan10
                Thành viên tích cực
                • Jun 2011
                • 176

                #8
                Đúng rồi, khi giao tiếp máy tính thì bác không được dùng timer1 nữa. Còn với yêu cầu bài náy bác không cần ngắt làm gì cho mệt, cứ đặt timer0 đếm xung ngoại mode 1, xung hồng ngoại bác cấp vào P3_4, giá trị trong TH0 và TL0 chính là số lượng xung đếm được, quăng nó lên máy tính đồng thời giải mã hiển thị đưa ra led 7 đoạn. Đấy là cách đơn giản nhất.
                QTCP

                Comment

                • banhcay12345
                  Thành viên chính thức
                  • Dec 2013
                  • 68

                  #9
                  bác sửa luôn giúp em vào cái ctrinh của em được k ạ. e làm tư hôm qua mà k được hichic

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...