Cấn giúp đỡ về đồng hồ số hiển thị Led ma trận

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • njkjchan
    Nhập môn đệ tử
    • Sep 2011
    • 4

    #1

    Cấn giúp đỡ về đồng hồ số hiển thị Led ma trận

    Mấy anh trong diễm đàn giúp em viết code ( lập trình C ) và mạch mô phỏng cho đề tài sau với :
    -Thiết kế đồng hồ số hiển thị Led ma trận ( dùng 4 Led ma trân 8x8 để hiển thị giờ và phút thôi, ko cần giây cũng ko cần ngày tháng năm lun) , sử dụng pic 16f877a va DS 1307

    Em mới làm quen với pic , mong mọi người giúp đõ nhiều =.='
  • hatuan296
    Làm quen với PIC
    • Oct 2005
    • 160

    #2
    Làm bài t phåi không ban ?

    Comment

    • njkjchan
      Nhập môn đệ tử
      • Sep 2011
      • 4

      #3
      Do an cua em do , ko phai bt dau anh
      Last edited by njkjchan; 03-10-2011, 12:05 PM.

      Comment

      • pstin
        Đệ tử 7 túi
        • Jul 2010
        • 190

        #4
        Hì, có đầy đủ rồi mà, mạch đồng hồ thì của bác tdm, mạch ma trận thì tui có post rồi, ghép vô là được!!!!!!!!!.
        Đối với led ma trận thì bạn phải viết thử nghiệm xuất dữ liệu ra 1 con IC 74HC595, sau lên 4 con, tới đây là có thể "khổ luyện" hiển thị đồng hồ được rồi.
        Nếu bạn không mở mã nguồn, ít nhất là một phần nào đó trong dự án của bạn, xin đừng vào đây.

        Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

        Bác tdm là cao thủ vã lâm đó, mô phỏng và hiển thị led là chuyên nghiệp, nhờ bác cho "lạch sự" thì chắc bác giúp thui!!!!!!!!.

        Comment

        • njkjchan
          Nhập môn đệ tử
          • Sep 2011
          • 4

          #5
          em có đọc về con IC 74HC595 này nhưng ko hiểu lắm cứ tưởng nó dùng để chạy chữ ( vì những mạch em tìm dc về Led ma trận lâp trình bằng Pic toàn hiển thị chữ chạy ko ) nên cứ tưởng nó ko cần cho mạch đồng hồ của em lun =.=' . Cảm ơn anh pstin nhiều ^^

          Comment

          • pstin
            Đệ tử 7 túi
            • Jul 2010
            • 190

            #6
            Chương trình xuất 03 chữ "vạn" (1 thuận, 2 nghịch), để thử nghiệm xuất 24 bit, chân D0 la data, chân D1 là xung clock, các chân D2, D3, D4 là 3 chân xuất dữ liệu riêng biệt của 3 con 595 (trường hợp của bạn nên nối chung các đường xuất dữ liệu lại với nhau), portB điều khiển quét hàng, bạn chế lại là xuất các con số được.
            #include <16F877A.h>
            #include <DEFS_16F877A.h>
            #device *=16 ADC=10
            #include <stdlib.h>
            #fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG
            #use delay(clock=16000000)
            #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)

            //=========================functions use========================================
            int8 y,i;
            int8 Cot1[]={0b10000101, 0b11100101, 0b11100101, 0b10000001, 0b10000001, 0b10100111, 0b10100111, 0b10100001};
            int8 Cot2[]={0b10100001, 0b10100111, 0b10100111, 0b10000001, 0b10000001, 0b11100101, 0b11100101, 0b10000101};
            int8 Cot3[]={0b10100001, 0b10100111, 0b10100111, 0b10000001, 0b10000001, 0b11100101, 0b11100101, 0b10000101};
            int8 Hang[]={0b11111110, 0b11111101, 0b11111011, 0b11110111, 0b11101111, 0b11011111, 0b10111111, 0b01111111};

            void sen595(int8 x)
            {
            #bit fla=x.7;
            for (i=0;i<8;i++)
            {
            if (fla==1)
            {output_high(PIN_D0);}
            else
            {output_low(PIN_D0);}
            output_high(PIN_D1);
            output_low(PIN_D1);
            x = x<<1;
            }
            }

            void main()
            {
            set_tris_b(0x00);
            set_tris_d(0x00);
            while(1)
            {
            for (y=0;y<8;y++)
            {
            sen595(Cot3[y]);
            sen595(Cot2[y]);
            sen595(Cot1[y]);
            output_high(PIN_D2);
            output_high(PIN_D3);
            output_high(PIN_D4);
            output_b(Hang[y]);
            delay_ms(3);
            output_b(0xff);
            output_low(PIN_D2);
            output_low(PIN_D3);
            output_low(PIN_D4);
            }
            }
            }

            Comment

            • tdm
              Đệ tử 7 túi
              • May 2005
              • 258

              #7
              Nguyên văn bởi njkjchan View Post
              Mấy anh trong diễm đàn giúp em viết code ( lập trình C ) và mạch mô phỏng cho đề tài sau với :
              -Thiết kế đồng hồ số hiển thị Led ma trận ( dùng 4 Led ma trân 8x8 để hiển thị giờ và phút thôi, ko cần giây cũng ko cần ngày tháng năm lun) , sử dụng pic 16f877a va DS 1307

              Em mới làm quen với pic , mong mọi người giúp đõ nhiều =.='
              em có nhắn tin cho anh nhưsau:
              anh ơi, anh giúp em đề tài này với nhe
              Em cần làm đồng hồ số hiển thị Led ma trận ( dùng 4 led ma trận 8x8 để hiển thị giờ và phút thôi , ko cần giây ), mạch dùng Pic 16f877a và DS1307

              Anh giúp em viết Code ( lập trình C ) và mạch mô phỏng dc ko anh ?
              Em chỉ mới làm quen với Pic , mong anh giúp đỡ nhiều. Cảm ơn anh ^^
              để làm việc với led matrix trước tiên em phải có sơ đồ nguyên lí đề kiểm tra giải thuật.
              với bài tập của em quét có 4 matrix thì dữ liệu nên xuất ra hàng và quét cột là đơn giản nhất.
              đây là sơ đồ và một đoạn code nhỏ cứ sau 200ms dich cột .
              em thử thay đổi delay xuống còn 1ms xem điều gì xảy ra nhé.
              Code:
              #include <16F877A.h>
              #device *=16
              #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
              #use delay(clock=20000000)
              #define clock  PIN_E0                                 
              #define data   PIN_E1                                   
              #define chot   PIN_E2 
              void clock_chot(void);
              int8 dich,bien,tam;
              main()
              {
              set_tris_e(0x00);
              set_tris_d(0x00);
              output_low(clock);
              output_low(data);
              output_low(chot);
              while(1)
              {
              output_high(data);
              clock_chot();
              output_low(data);
              for(dich=0;dich<=31;dich++)
              {
              output_d(0x00);
              delay_ms(200);
              output_d(0xff);
              clock_chot();
              }
              }
              }
              void clock_chot(void)
              {
              output_high(clock);
              output_low(clock);
              output_high(chot);
              output_low(chot);
              }
              Attached Files
              viết chương trình cho vdk chạy ổn định là cả một vấn đề.

              Comment

              • njkjchan
                Nhập môn đệ tử
                • Sep 2011
                • 4

                #8
                Tuần sau thi rồi , đề tài này gác lại 1 tuần vậy . Nhưng cũng cảm ơn anh pstin và anh tdm nhiều ^^
                Last edited by njkjchan; 04-10-2011, 08:22 PM.

                Comment

                • trinhVANBA
                  Nhập môn đệ tử
                  • Aug 2017
                  • 1

                  #9
                  đồng hồ điện tử

                  anh chị trong group giúp em với ạ em làm đồng hồ điện tử hiển thị led 7 thanh dùng ds1307 vi điều khiển atmega8 mà khi chạy ở mạch thực đồng hồ chạy nhanh hơn thực tế nhiều ạ là tại sao ạ anh chị nào gặp lỗi này rồi chỉ em với ạ

                  Comment

                  Working...