Thông báo

Collapse
No announcement yet.

Đếm số.help me

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

  • Đếm số.help me

    em dùng C lập trình cho 2 led 7 thanh đếm từ 00 đến 59 mà sao không đc.giúp e sửa code với.hic
    Code:
    
    #include <regx51.h>
    #define bat	0
    #define tat 1
    char mt[10]={0XC0,0xF9,0xA4,0XB0,0x99,0X92,0x82,0xF8,0x80,0x90};
    
    void delay(char t)
    { int i;
    for(i=0;i<=t;i++);
     }
     void dongho()
     {	int i,j,
     while(P3_0==0)
     {	
    	 for (i=0;i<6;i++)
     {for(j=0;j<=9;j++) 
     P0=mt[i];
     P2=mt[j];  
     delay(300);}
     
     }}
     void main()
     {	 P0=0xC0;P2=0xC0;
    dongho();
    }
    Giúp em với nhé

  • #2
    bạn tham khảo code đếm 00 -99 này nha , dùng phương pháp quét.

    #include<reg52.h>
    #include<stdio.h>
    //================
    sbit Led1 = P3^0;
    sbit Led2 = P3^1;
    //=================
    unsigned char M[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6 f};
    int a,b,c,d,k;

    //=================
    void delay(unsigned int t)
    {
    unsigned int i;
    for(i=0;i<=t;i++);
    }
    void send1(unsigned char x)
    {
    P2|=x;
    Led1=0;
    Led2=1;
    }
    void send2(unsigned char x)
    {
    P2|=x;
    Led1=1;
    Led2=0;
    }
    void hienthi()
    {
    for(k=0;k<=99;k++)
    {
    a=k/10;
    b=k%10;
    for(c=0;c<=10;c++)
    {
    send1(M[a]);
    delay(4000);
    P2=0x00;
    send2(M[b]);
    delay(4000);
    P2=0x00;
    }
    }
    }
    //=================
    void main()
    {
    P2=P3=0x00;
    while(1)
    {
    hienthi();
    }
    }
    //=================End=================

    Comment


    • #3
      Nguyên văn bởi codientu668 Xem bài viết
      em dùng C lập trình cho 2 led 7 thanh đếm từ 00 đến 59 mà sao không đc.giúp e sửa code với.hic
      Code:
      
      #include <regx51.h>
      #define bat    0
      #define tat 1
      char mt[10]={0XC0,0xF9,0xA4,0XB0,0x99,0X92,0x82,0xF8,0x80,0x90};
      
      void delay(char t)
      { int i;
      for(i=0;i<=t;i++);
       }
       void dongho()
       {    int i,j,
       while(P3_0==0)
       {    
           for (i=0;i<6;i++)
       {for(j=0;j<=9;j++) 
       P0=mt[i];
       P2=mt[j];  
       delay(300);}
       
       }}
       void main()
       {     P0=0xC0;P2=0xC0;
      dongho();
      }
      Giúp em với nhé
      code của em trong hàm dongho() dòng lệnh for(j=0;j<=9;j++) thiếu {}
      hàm delay(char t) //thay char t =unsigned int t để hàm delay trễ lâu hơn.
      Code:
                   #include <regx51.h>
      #define bat    0
      #define tat 1
      char mt[10]={0XC0,0xF9,0xA4,0XB0,0x99,0X92,0x82,0xF8,0x80,0x90};
      
      void delay(unsigned int t)
      { unsigned int bien;
        
       for(bien=0;bien<=t;bien++)
        {
        }
      }
       void dongho()
       {    int i,j,tam;
       while(P3_0==0)
        {    
           for (i=0;i<6;i++)
         {
        for(j=0;j<=9;j++)
           { 
       P0=mt[i];
       P2=mt[j]; 
        delay(50000);
           
           }
         }
       
        }
       }
       void main()
       {
            P0=0xC0;P2=0xC0;
           
      while(1)
      {
       dongho();
      }     
      
      }
      Attached Files
      |

      Comment


      • #4
        Nguyên văn bởi codientu668 Xem bài viết
        em dùng C lập trình cho 2 led 7 thanh đếm từ 00 đến 59 mà sao không đc.giúp e sửa code với.hic
        Code:
        
        #include <regx51.h>
        #define bat	0
        #define tat 1
        char mt[10]={0XC0,0xF9,0xA4,0XB0,0x99,0X92,0x82,0xF8,0x80,0x90};
        
        void delay(char t)
        { int i;
        for(i=0;i<=t;i++);
         }
         void dongho()
         {	int i,j,
         while(P3_0==0)
         {	
        	 for (i=0;i<6;i++)
         {for(j=0;j<=9;j++) 
         P0=mt[i];
         P2=mt[j];  
         delay(300);}
         
         }}
         void main()
         {	 P0=0xC0;P2=0xC0;
        dongho();
        }
        Giúp em với nhé
        Hi codientu668,

        Tôi gợi ý cho bạn một cách làm khác nhé. Bạn hãy tổ chức chương trình của mình thành một số chương trình con sau:

        - Chương trình quét led: Chương trình này xử lý mỗi nhiệm vụ là hiển thị biến đếm ra LED 7 thanh. Bao gồm các task: tách chữ số hàng chục, hàng đơn vị của biến đếm và đẩy ra LED. (Không thực hiện việc đếm ở chương trình này)
        - Để thực hiện việc đếm bạn đặt một timer cứ 300ms (hoặc bao nhiêu tùy bạn) ngắt tràn một lần. Mỗi lần ngắt tràn bạn tăng giá trị của biến đếm lên 1. Trong chương trình phục vụ ngắt này bạn cũng có thể đặt các điều kiện để giới hạn biến đếm trong dải 00 - 59.

        Cấu trúc chương trình như sau:
        ...
        void main(void)
        {
        Init();//Khoi tao moi thu can thiet
        while(1)
        {
        quetled();
        }
        //--------------------chuong trinh phuc vu ngat
        void Timer0_int(void) interrupt TF0_VECTOR
        {
        //tang bien dem
        //Dat dieu kien gioi han
        }

        Bạn thử xem sao nhé.

        Best Regards,
        Kiếm tiền ONLINE nhàn như ăn cháo -

        Comment

        Về tác giả

        Collapse

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

        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