Thông báo

Collapse
No announcement yet.

đồng hồ số dùng 8051

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

  • đồng hồ số dùng 8051

    Em lập trình đồng hồ hiển thị dùng led 7 thanh.Dung ngôn ngữ C lập trinh. Dùng proteus mô phỏng. Không hiểu sao chương trình không chạy. Các bác giúp em với. Em mới học nên không rõ lắm
    http://www.mediafire.com/?gkmn4y4lakh
    http://www.mediafire.com/?gkmn4y4lakh

  • #2
    Nguyên văn bởi dol2ph94in Xem bài viết
    Em lập trình đồng hồ hiển thị dùng led 7 thanh.Dung ngôn ngữ C lập trinh. Dùng proteus mô phỏng. Không hiểu sao chương trình không chạy. Các bác giúp em với. Em mới học nên không rõ lắm
    http://www.mediafire.com/?gkmn4y4lakh
    http://www.mediafire.com/?gkmn4y4lakh
    Tôi có vài ý kiến cho bạn :
    Mạch bạn dùng proteus7.5 thì phải , xem qua chương trình và mạch mô phỏng đều không ổn :
    -Bạn không thể nối trực tiếp chân vi điều khiển với B transistor mà phải nối qua điện trở , nối trực tiếp như vậy thì chân vi điều khiển luôn giữ mức cao còn quét led làm sao được (Vb=5-0.6=4,4 --> mức H ) .
    -Chương trình bạn viết hàm delay 1ms dặt sai giá trị bạn chưa hiểu về giá trị đặt nếu muốn tạo trễ 1ms (1000us) dùng Timer0 chế độ 1 phải đặt TH0=-1000/256,TL0=-1000%256, nếu dặt TH0=500/256 thì hóa ra là trễ 65,036ms rồi.
    -Để tạo thời gian cho đồng hồ mà dùng vòng lặp tư 0-165 thì không ổn dùng Timer còn sai số bởi các câu lệnh nữa là!!!!!! .Bạn nên tìm hiểu về đồng hồ thời gian thực còn nếu đơn giản chỉ làm đồng hồ số với sai số lớn thì cũng phải sửa cả mạch và chương trình mới chạy được.
    -Bạn nên Test mạch trước : Đơn giản là chỉ lấy đoạn chương trình hiển thị số ra led .Sau đó chèn thêm chương trình xử lý thời gian.

    Comment


    • #3
      cám ơn bạn. Bạn có mạch và chương trình không cho mình thảm khảo đi

      Comment


      • #4
        có phải tuyendt87 không nhỉ. Nếu phải thì mình đã gửi mail cho bạn rồi mà. nếu không phải thì gửi lại cho nè. Nếu giải nén ko được thì đổi nó lại thành .rar mà giải nén nhé
        Attached Files

        Comment


        • #5
          http://www.mediafire.com/?2ogngytmany

          Bạn xem cái này thử xem. Nhóm mình làm trong 3 4 ngày đó. Đồng hồ casio

          Comment


          • #6
            cám ơn mọi người rất nhiều

            Comment


            • #7
              Ban nen chuyen qua lam DS 1307, con nay chay on dinh ma de su dung. Co pin ngoai nen van chay khi mat dien.
              Dung 89 de tao xung 1s kho chinh xac duoc. Mat dien lai mat du lieu.

              Comment


              • #8
                ai chỉ giùm tôi với. Mình dùng con ds1307 lập trình C dùng trình duyệt keil C, dùng at89s52 chương trình lập ra không hiểu sai chỗ nào nữa, khi dịch ra file Hex thì báo lỗi. Help me.
                #include<at89x52.h>
                #include<ds1307.c>
                #include<i2c.c>
                sbit change=P1^2;
                unsigned char led_code[10]={0xco,0xf9,0xa4,0xb0,0x99,0x82,0xf8,0x80,0x90};
                //-----------------------------------------------------------
                void delay(unsigned int loop)
                {
                unsigned int i;
                for(i=0;i<=loop;i++);
                }
                //-------------------------------------------------------------
                // chuong trinh hien thi gio phut giay
                void display_hour()
                {
                //hien thi chuc gio
                P0=led_code[hourh];
                P2=0x01;
                delay(100);
                P0=0xff;
                delay(1);
                //hien thi gio
                P0=led_code[hourl];
                P2=0x02;
                delay(100);
                P0=0xff;
                delay(1);
                //hien thi chuc phut
                P0=led_code[minh];
                P2=0x04;
                delay(100);
                P0=0xff;
                delay(1);
                //hien thi phut
                P0=led_code[minl];
                P2=0x08;
                delay(100);
                P0=0xff;
                delay(1);
                //hien thi chuc giay
                P0=led_code[sech];
                P2=0x10;
                delay(100);
                P0=0xff;
                delay(1);
                //hien thi giay
                P0=led_code[secl];
                P2=0x20;
                delay(100);
                P0=0xff;
                delay(1);
                }
                //-----------------------------------------------------
                // chuong trinh hien thi ngay thang nam
                void display_date()
                {
                //hien thi chuc ngay
                P0=led_code[dateh];
                P2=0x01;
                delay(100);
                P0=0xff;
                delay(1);
                //hien thi ngay
                P0=led_code[datel];
                P2=0x02;
                delay(100);
                P0=0xff;
                delay(1);
                //hien thi chuc thang
                P0=led_code[monh];
                P2=0x04;
                delay(100);
                P0=0xff;
                delay(1);
                //hien thi thang
                P0=led_code[monl];
                P2=0x08;
                delay(100);
                P0=0xff;
                delay(1);
                //hien thi nghin nam
                P0=led_code[2];
                P2=0x10;
                delay(100);
                P0=0xff;
                delay(1);
                //hien thi tram nam
                P0=led_code[0];
                P2=0x20;
                delay(100);
                P0=0xff;
                delay(1);
                //hien thi chuc nam
                P0=led_code[yearh];
                P2=0x40;
                delay(100);
                P0=0xff;
                delay(1);
                //hien thi nam
                P0=led_code[yearl];
                P2=0x80;
                delay(100);
                P0=0xff;
                delay(1);
                }
                //-------------------------------------------------------
                void main()
                {
                while(1)
                {
                RTC_ReadTime();
                BCD2ASCII(hour,&hourh,&hourl);
                BCD2ASCII(min,&minh,&minl);
                BCD2ASCII(sec,&sech,&secl);
                display_hour();
                if(change==0)
                {
                RTC_ReadDate();
                BCD2ASCII(date,&dateh,&datel);
                BCD2ASCII(mon,&monh,&monl);
                BCD2ASCII(year,&yearh,&yearl);
                display_date();
                delay(3000);
                }
                }
                }
                Last edited by dol2ph94in; 16-03-2010, 13:13.

                Comment


                • #9
                  Ban lam toi cho ni roi ma sua ko dc ah.
                  Coi lai cac bien da dinh nghia chua.
                  Ma post len bang bao loi nguoi ta moi biet ma sua dc chu.Doc ri thi chiu
                  Xem lai phan change==0, thay kho hieu the nao.
                  Tui lam mach nay chay may cai roi. ngon lanh.Can dua mail tui goi file.c cho.
                  Tim sua>tim sua>...........dung

                  Comment


                  • #10
                    Nguyên văn bởi khaclub Xem bài viết
                    http://www.mediafire.com/?2ogngytmany

                    Bạn xem cái này thử xem. Nhóm mình làm trong 3 4 ngày đó. Đồng hồ casio
                    Đồng hồ này rất hay, nhưng mình có thắc mắc là Led 7 đoạn trong mô phỏng là loại 4 chân mình không hiểu, khi làm mạch thực tế thì led 7 đoạn 10 chân mà.
                    Nhóm của bạn đã làm mạch in của mạch này chưa? Nếu có thì chia sẻ cho mình với. Cảm ơn nhiều

                    Comment


                    • #11
                      Nguyên văn bởi dol2ph94in Xem bài viết
                      ai chỉ giùm tôi với. Mình dùng con ds1307 lập trình C dùng trình duyệt keil C, dùng at89s52 chương trình lập ra không hiểu sai chỗ nào nữa, khi dịch ra file Hex thì báo lỗi. Help me.
                      #include<at89x52.h>
                      #include<ds1307.c>
                      #include<i2c.c>
                      sbit change=P1^2;
                      unsigned char led_code[10]={0xco,0xf9,0xa4,0xb0,0x99,0x82,0xf8,0x80,0x90};
                      //-----------------------------------------------------------
                      void delay(unsigned int loop)
                      {
                      unsigned int i;
                      for(i=0;i<=loop;i++);
                      }
                      //-------------------------------------------------------------
                      // chuong trinh hien thi gio phut giay
                      void display_hour()
                      {
                      //hien thi chuc gio
                      P0=led_code[hourh];
                      P2=0x01;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      //hien thi gio
                      P0=led_code[hourl];
                      P2=0x02;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      //hien thi chuc phut
                      P0=led_code[minh];
                      P2=0x04;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      //hien thi phut
                      P0=led_code[minl];
                      P2=0x08;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      //hien thi chuc giay
                      P0=led_code[sech];
                      P2=0x10;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      //hien thi giay
                      P0=led_code[secl];
                      P2=0x20;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      }
                      //-----------------------------------------------------
                      // chuong trinh hien thi ngay thang nam
                      void display_date()
                      {
                      //hien thi chuc ngay
                      P0=led_code[dateh];
                      P2=0x01;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      //hien thi ngay
                      P0=led_code[datel];
                      P2=0x02;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      //hien thi chuc thang
                      P0=led_code[monh];
                      P2=0x04;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      //hien thi thang
                      P0=led_code[monl];
                      P2=0x08;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      //hien thi nghin nam
                      P0=led_code[2];
                      P2=0x10;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      //hien thi tram nam
                      P0=led_code[0];
                      P2=0x20;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      //hien thi chuc nam
                      P0=led_code[yearh];
                      P2=0x40;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      //hien thi nam
                      P0=led_code[yearl];
                      P2=0x80;
                      delay(100);
                      P0=0xff;
                      delay(1);
                      }
                      //-------------------------------------------------------
                      void main()
                      {
                      while(1)
                      {
                      RTC_ReadTime();
                      BCD2ASCII(hour,&hourh,&hourl);
                      BCD2ASCII(min,&minh,&minl);
                      BCD2ASCII(sec,&sech,&secl);
                      display_hour();
                      if(change==0)
                      {
                      RTC_ReadDate();
                      BCD2ASCII(date,&dateh,&datel);
                      BCD2ASCII(mon,&monh,&monl);
                      BCD2ASCII(year,&yearh,&yearl);
                      display_date();
                      delay(3000);
                      }
                      }
                      }
                      cái này chắc là do lỗi không mở được ds1307.c chứ j. có 2 cách để biên dịch ko bị lỗi.
                      1 copy 2 file ds1307.c với i2c.c vào trong keil/c51/inc
                      2 là cài đặt trong thẻ quản lý

                      Comment


                      • #12
                        trong mo phong proteus led 7 thanh co 9 chan ma. vi chan 3 va chan 8 duoc noi voi nhau ma

                        Comment


                        • #13
                          minh da copy roi ma van bao loi nen moi post len hoi moi nguoi, co ai biet loi cho nao khong chi cho minh voi

                          Comment


                          • #14
                            mình đã thử file của tranpic, copy hai thư viện ds1307.c và i2c.c vào trong thư viện của protues rồi, lấy nguyên file dong_ho.C để dịch ra file .HEX nhưng báo lỗi "C:\KEIL\C51\INC\ATMEL\DS1307.C(21): error C202: 'I2C_START': undefined identifier" Vậy lỗi này là do đâu vậy. chỉ giúp mình với

                            Comment


                            • #15
                              Ban thu copy file I2C.c dan vao file nguon luon. Xem nhu la 1 chuong trinh con cua chuong trinh chinh luon. Bien dich lai xem thu.
                              Tui lam theo code may ban viet tren mang chay ngon ru.
                              Da lam may dong ho tang ban be choi roi.
                              Tim va sua se ra thoi, dung nan chi.
                              Dua mail tui goi chuong trinh da test va chay luon cho.Oke

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              • mèomướp
                                Trả lời cho Công thức điện tử
                                bởi mèomướp
                                Dạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
                                Hôm qua, 21:21
                              • mèomướp
                                Trả lời cho Xin hỏi về màn hình laptop
                                bởi mèomướp
                                Dạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
                                Hôm qua, 20:31
                              • yname11
                                Trả lời cho Xin hỏi về màn hình laptop
                                bởi yname11
                                Ok , thanks bác đã chỉ...
                                Hôm qua, 15:06
                              • nguyendinhvan
                                Công thức điện tử
                                bởi nguyendinhvan
                                Sau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !

                                Chập thì thay. Cháy thì tháo
                                Làm thì láo. Báo thì hay
                                May thì khoe. Rủi thì bỏ
                                Thành tích nhỏ. Báo thành to
                                Làm cho có. Báo chi li
                                Sai cả li. Báo
                                ...
                                Hôm qua, 00:35
                              • yname11
                                Trả lời cho Xin hỏi về màn hình laptop
                                bởi yname11
                                có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
                                25-11-2024, 22:31
                              • mèomướp
                                Trả lời cho Xin hỏi về màn hình laptop
                                bởi mèomướp
                                Dạ ý chú là màn oled ấy ạ. Cùng chuẩn lvds cùng độ phân giải thì cắm được ạ. Còn nó mà khác thì hơi khó vì oled các điểm ảnh nó tự phát sáng chứ ko dùng đèn nền như lcd. Cháu chỉ biết đến vậy thôi ạ. Chú muốn nghịch phải tự tìm hiểu kỹ trước khi mua thôi, khó mà ông thợ nào tư vấn vụ này...
                                25-11-2024, 22:14
                              • bactho
                                Trả lời cho Tự làm máy đo Cuộn cảm
                                bởi bactho
                                Hay đấy bạn ạ. Đây có thể hiểu là máy đo cuộn dây. Tiện đây xin cho hỏi bạn có hiểu rõ về máy nạp rôm pcb 45 của hãng thiên minh không giúp mình cách cài fw của nó với vì mình vừa được anh bạn cho nhưng lại không biết cài fw nên chưa dùng được. Nếu có thể thì bạn giúp mình với...
                                25-11-2024, 21:48
                              • yname11
                                Trả lời cho Xin hỏi về màn hình laptop
                                bởi yname11
                                màn của mình là LCD , giờ m muốn mua màn LED để thay thế (ko muốn dùng màn LCD nữa) , lên muốn hỏi xem có cáp chuyển đổi nào có thể cắm đc màn LED vào ko , tất nhiên phải có cùng số chân pin với màn cũ rồi . VD: màn cũ là lcd mỏng , 40 pin...
                                25-11-2024, 21:43
                              • bactho
                                Trả lời cho các bạn giúp mình về file HEX với!!!
                                bởi bactho
                                Bạn vào trang phuclanshop.com ,tìm đến góc kỹ thuật. Tác giả vương khánh hưng nói rất rõ về điều bạn tìm...
                                25-11-2024, 21:21
                              • mèomướp
                                Trả lời cho Xin hỏi về màn hình laptop
                                bởi mèomướp
                                Dạ màn hình lcd đều có thể lai cấy cho nhau được hết ạ. Các loại cáp, bo mạch chuyển đổi lvds rất nhìu, với dòng sony còn phải nhổ cả chip nhớ của main cũ đưa lên gỗ thì mới lắp sang máy khác đc, chưa kể các bệnh về màu... ngay cả...
                                25-11-2024, 20:43
                              Đang tải...
                              X