Thông báo

Collapse
No announcement yet.

Chương trinh c đếm số dung 89c51

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

  • Chương trinh c đếm số dung 89c51

    em muốn làm thử mạch đếm số dùng 2 led 7 thanh va con 89c51(thử làm mô phỏng trên proteus thôi).em dùng con led 7 thanh thứ nhất để đếm hàng đơn vị,con thứ 2 đếm hàng chục.Hiện giờ em chưa biết phải viết ct như thế nào(làm sao để led 1 đếm đến 9 thì led2 nhảy thêm 1 đv),nếu ai biết thì giúp em với.Ct không cần quá cao siêu vì có thể có nhiều câu lệnh em chưa hoc đến,hãy viết sao cho người mới học lập trình như em biết là được và giải thích tưng câu lệnh trong đó giúp em.thank

  • #2
    chắc em hỏi gà quá không ai muốn giúp ak.hi

    Comment


    • #3
      Hình như trong đây có bài này rồi. Bạn lật lại vài trang sẽ thấy đếm số từ 000-999 cũng tương tự

      Comment


      • #4
        Nguyên văn bởi viem1991 Xem bài viết
        chắc em hỏi gà quá không ai muốn giúp ak.hi
        Chắc là ko phải đơn giản mà không ai muốn giúp bạn đâu, mà là bài này đã có rất nhiều trên diễn đàn rồi mà, bạn phải tìm chứ.
        Mình up lại cho bạn này.
        Led 7 thanh.rar
        Đếm hẳn tới 1000 luôn. Bạn ko hiểu dòng nào thì lên hỏi mọi người, chắc sẽ trả lời ngay chứ bảo mọi người giải thích từng dòng lệnh thì.....
        Mua bán thiết bị điện công nghiệp tại Hà Nội, toàn quốc.
        http://diencongnghiep360.com/
        http://tudienhathe.vn/

        Comment


        • #5
          void HIEN_THI(void)
          {
          P0=M[nghin];
          P2=~0x1;
          delay_10ms(1);
          P2=~0;
          P0=0xFF;
          P0=M[tram];
          P2=~0x2;
          delay_10ms(1);
          P2=~0;
          P0=0xFF;
          P0=M[chuc];
          P2=~0x4;
          delay_10ms(1);
          P2=~0;
          P0=0xFF;
          P0=M[donvi];
          P2=~0x8;
          delay_10ms();
          P2=~0;
          P0=0xFF;
          }

          Comment


          • #6
            mình khong hiểu đoan này lắm,ai giải thích giúp mình với

            Comment


            • #7
              Đơn giản hoá.Bạn có 2 biến hàng hơn vị(donvi) và hàng chục(chuc).
              for(chuc=0;chuc<=9;chuc++)
              {
              for(donvi=0;donvi<=9;donvi++){
              //gọi hàm hiển thị
              //delay
              }
              }
              cái này thì chạy tít mÙ nhénvi<=9;donvi++){
              //gọi hàm hiển thị
              //delay
              }
              }
              cái này thì chạy tít mÙ nhé
              , , ,

              Comment


              • #8
                Đây chương trình của bạn đây
                Code:
                #include"reg52.h"
                sbit    Led_dv  =  P3^0;
                sbit    Led_chuc  =  P3^1;
                unsigned char Ma[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
                int a,b,c,d,k;
                void delay(unsigned int ms)  
                {
                unsigned int i,j;    
                for(i=0;i<ms;i++)
                  for(j=0;j<125;j++);   
                }
                void main()
                { int i;
                while(1)
                {
                for(k=0;k<=99;k++)
                {
                
                a=k/10;
                b=k%10;
                for(i=0;i<20;i++)
                {
                {
                Led_dv=1;  //led dv
                P2=Ma[a];
                delay(20);
                Led_dv=0;  
                P2=0xff;//xoa data
                Led_chuc=1;  //led chuc
                P2=Ma[b];
                delay(20);  
                Led_chuc=0;
                P2=0xff; 
                }
                }
                }
                
                }
                }
                với bao nhiêu led thì chỉnh sửa một tý là ok.

                Comment


                • #9
                  void HIEN_THI(void) // Hàm Quet led.
                  {
                  P0=M[nghin]; // Đầu tiên, cho số hàng nghìn sáng (Đưa catot của led về 0)
                  P2=~0x1; // Đưa Anot của led lên 1 (xem phần cứng có cổng not)
                  delay_10ms(1); // Trễ một khoảng thời gian t để đủ thời gian lưu ảnh trên mắt !
                  P2=~0; // Tắt led hàng nghìn, chuẩn bị hiện thị led hàng trăm(để led ko bị nhấp nháy)
                  P0=0xFF;
                  P0=M[tram]; // Tương tự như với số hàng nghìn (hiện thị số hàng trăm)
                  P2=~0x2;
                  delay_10ms(1);
                  P2=~0;
                  P0=0xFF;
                  P0=M[chuc];
                  P2=~0x4;
                  delay_10ms(1);
                  P2=~0;
                  P0=0xFF;
                  P0=M[donvi];
                  P2=~0x8;
                  delay_10ms();
                  P2=~0;
                  P0=0xFF;
                  }

                  Bài trên mình viết chi tiết các hàm riêng biệt nên hơi dài dòng, tuy nhiên sẽ dễ hiểu hơn.
                  Mua bán thiết bị điện công nghiệp tại Hà Nội, toàn quốc.
                  http://diencongnghiep360.com/
                  http://tudienhathe.vn/

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X