Thông báo

Collapse
No announcement yet.

Giứp sửa lỗi code

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

  • 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--);
    }

  • #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


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

      Comment


      • #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


        • #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


          • #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


            • #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


              • #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


                • #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

                  • 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