Thông báo

Collapse
No announcement yet.

hiện thị led 7 doạn từ 00-99

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

  • hiện thị led 7 doạn từ 00-99

    các bạn cho mình hỏi mình lắp mạch hiện thị led 7 đoạn lúc đầu nó chạy tốt nhưng sau đó nó chỉ hiện thị ra 88. mình dung ic chốt 74374.

  • #2
    mạch của bạn dùng ic gì để đếm, nếu đếm từ 00 đến 99 thì dễ mà, dùng 7490 là đếm vô tư rồi, mà sao lại có cả IC chốt ở đây nhỉ? Bạn post sơ đồ lên mọi người xem thử!

    Comment


    • #3
      mạch của mình đây
      Attached Files

      Comment


      • #4
        Nguyên văn bởi thuongkhang Xem bài viết
        mạch của mình đây
        nếu đã dùng vi điều khiển thì không phải dùng thêm con IC nào nữa làm gì cho mệt. dùng phương pháp quét led ý. cho mỗi led sáng khoảng 10ms sau đó tắt rồi lại đến led tiếp theo sáng cứ như vậy mắt ta có hiện tượng lưu ảnh sẽ cảm thấy tất cả các led đều sáng. tạo một biến đếm cho nó tăng dần rồi cho hiển thị biến đếm đó là được mà.
        Never forget who you are!

        Comment


        • #5
          Tham khảo cái này bạn nha :


          code:
          #include"reg52.h"

          //================
          sbit Led1 = P1^0;
          sbit Led2 = P1^1;
          //=================
          unsigned char M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
          int a,b,c,d,k;

          //=================
          void main()
          {
          while(1)
          {
          for(k=0;k<=99;k++)
          {
          a=k/10;
          b=k%10;
          for(c=0;c<=10000;c++)
          {
          Led1=1; //led dau tien sang
          P3=M[a];
          Led1=0;
          P3=0xff;//xoa du lieu
          Led2=1; //led 2 sang
          P3=M[b];
          Led2=0;
          P3=0xff;//xoa du lieu
          }
          }
          }
          }
          //=================End=================

          Comment


          • #6
            còn tôi thì đang muốn nhập trực tiếp số vào led 7seg mà làm ko đc. ý tưởng của tôi là dùng 3 nút nhấn. 1 để chọn led rồi nhập số, khi nhấn nút này led7seg cần nhập số sẽ nhấp nháy, và 2 nút nhập số tiến và lùi..nhưng code mình viết mãi mà ko đc chỉ chỉnh đc lên xuông còn chuyển led thì chưa biết
            code:

            #include <at89x51.h>
            //dinh nghia nut nhan
            #define nutnhan P2_0
            #define nutxuong P2_1
            #define nutchon P2_2

            void delay( unsigned int ms )
            {
            unsigned int i,j;
            for (i=0;i<ms;i++)
            for (j=0;j<120;j++)
            {}
            }
            //=Chuong trinh hien thi led 7 thanh tu 1 den 9==
            void display_led(unsigned char number)
            {

            switch (number)
            {

            case 0:
            P1=0xc0;
            break;
            case 1:
            P1=0xf9;
            break;
            case 2:
            P1=0xa4;
            break;
            case 3:
            P1=0xb0;
            break;
            case 4:
            P1=0x99;
            break;
            case 5:
            P1=0x92;
            break;
            case 6:
            P1=0x82;
            break;
            case 7:
            P1=0xf8;
            break;
            case 8:
            P1=0x80;
            break;
            case 9:
            P1=0x90;
            break;
            }

            }

            //===Chuong trinh chinh===
            void main(void)

            {
            while(1){


            int m,n;
            {
            P3=0xfe;
            for(m=0;m<10;m++){
            if(nutnhan==0)
            {

            delay(10);
            nutnhan=1;
            display_led(n);
            delay(500);
            n=n+1;
            }

            if(nutxuong==0){
            delay(10);
            nutxuong=1;
            n=n-1;
            display_led(n);
            delay(500);
            }}
            if(P3==0xfe);
            display_led(n);


            P3=0xfd;
            for(m=0;m<10;m++){
            if(nutnhan==0)
            {

            delay(10);
            nutnhan=1;
            display_led(n);
            delay(500);
            n=n+1;
            }

            if(nutxuong==0){
            delay(10);
            nutxuong=1;
            n=n-1;
            display_led(n);
            delay(500);
            if(P3==0xfd);
            display_led(n);
            n=n-1;

            }
            }

            }
            }}

            // còn nút chọn ko biét viết thế nào mà sau khi chọn rồi thì quét???thế nào?
            nhờ các bạn giúp đỡ!
            // đây là 1 code khác cũng chẳng sài đc. nó tới những 26 lỗi luôn nhờ các bạn chỉ hộ chỗ sai nhé! cảm ơn rất nhiều!
            code:
            #include <REGX52.H>
            #define nutchon P2_0;
            #define nutlen P2_1 ;
            #define nutxuong P2_2;
            void delay( unsigned int ms )
            {
            unsigned int i,j;
            for (i=0;i<ms;i++)
            for (j=0;j<120;j++)
            }
            void kiem_tra_nut(void) // chong rung cho contac
            {

            int n;
            for(n=8;n<=0;n++) {
            if(!nutchon)
            {
            delay(1);
            while(nutchon==0)
            delay(1);
            P3=0xfe;P3<<1;
            delay(1);
            nutchon=1;
            }

            int m;
            for(m=0;m<10;m++) {
            if(!nutlen)
            {
            delay(1);
            while(nutlen==0)
            delay(1);
            dislay_led(m);
            nutlen=1;
            }

            for(m=10;m<0;m--) {
            if(!nutxuong)
            {
            delay(1);
            while(nutxuong==0)
            delay(1);
            dislay_led(m);
            nutxuong=1;
            }
            }


            //=Chuong trinh hien thi led 7 thanh tu 1 den 9==
            void dislay_led(unsigned char number)
            {
            switch (number)
            {

            case 0:
            P1=0xc0;
            break;
            case 1:
            P1=0xf9;
            break;
            case 2:
            P1=0xa4;
            break;
            case 3:
            P1=0xb0;
            break;
            case 4:
            P1=0x99;
            break;
            case 5:
            P1=0x92;
            break;
            case 6:
            P1=0x82;
            break;
            case 7:
            P1=0xf8;
            break;
            case 8:
            P1=0x80;
            break;
            case 9:
            P1=0x90;
            break;

            }
            }
            void main(void){
            int i;
            while(1)
            {
            for(i=8;i<0;i++){
            P3=0xfe;P3<<1;
            kiem_tra_nut();
            dislay_led(i);
            delay(10);
            }}}}}}
            // sửa mãi chẳng đc càng nhiều error hơn, nhờ các bạn khai sáng hộ! thanks!
            Attached Files
            Tôi thích cái cầu kỳ của kỹ thuật
            Nhưng ghét mọi phức tạp trong tính cách con người

            Comment


            • #7
              Viết nhầm @@,ai xóa hộ với
              Chuyên cung cấp inverter dạng sin chuẩn
              Email :

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...
              X