Thông báo

Collapse
No announcement yet.

dung ic chot 595 de hien thi tu 00 99

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

  • dung ic chot 595 de hien thi tu 00 99

    ai biet giup ho minh nha ?

  • #2
    Đặt câu hỏi cho rõ mới giúp được chứ. 595 là để ghi dịch và chốt data, hiển thị (ở đây chắc là led 7 đoạn) thì cần đưa dữ liệu vào các chân tương ứng với mã 7 đoạn. Vi điều khiển cần "giao tiếp" với 595 theo kiểu truyền nối tiếp. Tìm trên diễn đàn có rất nhiều .Thế thôi

    Comment


    • #3
      em cảm ơn anh nka ? ở đây dùng led 7thanh ?em không ghi rõ .

      Comment


      • #4
        anh ơi sửa hộ em cái code : e viết đúng mà không chạy :
        #include <mega16.h>
        #include <delay.h>
        unsigned int i=0;
        unsigned char mang[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67} ;
        #define DATA PORTC.0
        #define SCK PORTC.1
        #define SCL PORTC.2
        void quet(unsigned char x)
        {
        int i;
        for(i=0;i<8;i++)
        {
        DATA=x&0x80;
        x<<=1;
        SCK=0;
        SCK=1;
        }
        SCL=0;
        SCL=1;
        }

        void hienthi(void )
        {
        PORTB.0=1;
        PORTB.0=0;delay_ms(10);
        PORTB.1=1;
        PORTB.1=0;delay_ms(10);
        }

        void main(void)
        {

        PORTA=0x00;
        DDRA=0x00;


        PORTB=0x00;
        DDRB=0x03;


        PORTC=0x00;
        DDRC=0x03;


        PORTD=0x00;
        DDRD=0x00;

        while (1)
        {
        for(i=0;i<100;i++)
        hienthi();
        {
        quet(mang[i]);delay_ms(100);
        }
        }
        }

        Comment


        • #5
          mạch của em nhá có gì anh sửa giúp hộ em ? em cảm ơn anh nhiều Click image for larger version

Name:	00 99999999.jpg
Views:	2
Size:	93.2 KB
ID:	1390727
          Last edited by anhthongm; 23-12-2013, 22:05.

          Comment


          • #6
            ai biết giúp sửa hộ mình cái code nhá ? 00 99 dùng atmega16 hiển thị led 7thanh 595

            #include <mega16.h>
            #include <delay.h>
            unsigned int i=0;
            unsigned char mang[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7c,0x07,0x7f,0x67} ;
            #define DATA PORTC.0
            #define SCK PORTC.1
            #define SCL PORTC.2
            void quet(unsigned char x)
            {
            int i;
            for(i=0;i<8;i++)
            {
            DATA=x&0x80;
            x<<=1;
            SCK=0;
            SCK=1;
            }
            SCL=0;
            SCL=1;
            }

            void hienthi(void )
            {
            PORTB.0=1;
            PORTB.0=0;delay_ms(10);
            PORTB.1=1;
            PORTB.1=0;delay_ms(10);
            }

            void main(void)
            {

            PORTA=0x00;
            DDRA=0x00;


            PORTB=0x00;
            DDRB=0x03;


            PORTC=0x00;
            DDRC=0x03;


            PORTD=0x00;
            DDRD=0x00;

            while (1)
            {
            for(i=0;i<100;i++)
            hienthi();
            {
            quet(mang[i]);delay_ms(100);
            }
            }
            }
            Attached Files

            Comment


            • #7
              Phải có xung ở chân chốt dữ liệu ra nữa, mình dùng điện thoại nhìn hình mờ quá ko rõ
              Last edited by vuhapassall; 24-12-2013, 09:52.

              Comment


              • #8
                bạn sai chỗ này này x&0x80 . đây là toán tử and 8 bit. bạn gán cho chân data sẽ luôn =0. sửA lại thành dâta=x && 0x80 nhé hoặc sửa data= (( x & 0x80)==0x80)

                Comment


                • #9
                  anh ơi vẫn không được ? code của em đấy em viết chạy từ 0 9 thi được rồi ? nhưng em viết chạy từ 00 99 thì em khai bao thêm chân ở cổng PORTB.0 VA PORTB.1 ở led 7 thanh ? không hiển thị gì cả . anh xem giúp em nhá

                  Comment


                  • #10
                    mắc sơ đồ như trên, muốn hiển thị 2 dìgit thì nối cả chân 1:2 và sử dụng kỹ thuật quét led nhé (hàm hiển thị của bạn) nhưng bạn viết hàm hiện thị sai rồi, 2 digit phải hiển thị thay phiên nhau với những giá trị tương ứng khác nhau ( truyền lại quyét data cho 595 trc khi đổi digit)

                    Comment


                    • #11
                      em cảm ơn anh nhá ? anh có thể viết cho em xin đoạn code hiển thi không ? vì em cũng mới học avr thôi ? không hiểu cho nhiều lắm .

                      Comment


                      • #12
                        bạn có thể sửa hàm hiển thị thành void hienthi(unsigned char x1,unsigned char x2 )
                        {
                        quyet(x1);
                        PORTB.0=1;
                        delay_ms(10);
                        PORTB.0=0;

                        quyet(x2);
                        PORTB.1=1;
                        delay_ms(10);
                        PORTB.1=0;

                        }
                        còn trong vòng lặp chính để hiển thị 23 thì như này
                        while (1)
                        {

                        hienthi(2,3);

                        }


                        Tuy nhiên code trên chạy vào thực tế rất nhiều nhược điểm cần căn chỉnh với việc mcu phải quét liên tục, và căn chỉnh thời gian làm led7 bị nhấp nháy và sáng không đều. 595 có ưu điểm là mở rộng số chân và chốt được dữ liệu, tuy nhiên bạn làm như thế này không tận dụng được ưu thế của nó (chốt dữ liệu để mcu làm việc khác). Bạn nên dùng 2 ic 595 cho 2 digit rời nhau

                        Comment


                        • #13
                          hiển thị thiếu ? và không thàh số anh à ? không biết bị làm sao anh ơi ? chạy loạn lắm anh xem ho em với "
                          Last edited by anhthongm; 24-12-2013, 20:39.

                          Comment


                          • #14
                            mình nhầm chút bạn sửa lại như vầy:
                            void hienthi(unsigned char x1,unsigned char x2 )
                            {
                            quyet(mang[x1]);
                            PORTB.0=1;
                            delay_ms(10);
                            PORTB.0=0;

                            quyet(mang[x2]);
                            PORTB.1=1;
                            delay_ms(10);
                            PORTB.1=0;

                            }
                            còn trong vòng lặp chính để hiển thị 23 thì như này
                            while (1)
                            {

                            hienthi(2,3);

                            }
                            BẠn chạy mô phỏng sợ không đáp ứng được hiển thị quyét led đâu. Tốt nhất bạn nên nối 2 con 595 với 2 led rời
                            Last edited by vuhapassall; 24-12-2013, 23:03.

                            Comment


                            • #15
                              anh ơi xem hộ em lại chương trình đi ... dùng phương pháp quét led .. hiển thị từ 00 99 thì cú hiển thị 2so giống nhau thôi như la: 00 11 22 33 44 ... không theo tuần tự chán lắm . hỏi nhiều anh quá 19 mãi mà không xong .

                              Comment

                              Về tác giả

                              Collapse

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

                              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