Thông báo

Collapse
No announcement yet.

[Share-code] Mỗi ngày một bài tập về AT89S52

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

  • a gửi cả file lên cho e dk không

    Comment


    • Nguyên văn bởi hoanganh234 Xem bài viết
      a gửi cả file lên cho e dk không
      mình có cái này này. k nhớ tác giả nhé

      Code:
      #include <REGX51.H>
      unsigned char preloadTH=0xFF,preloadTL=0xFF;
      unsigned int pointer=0,ii=0,jj;
      sbit out=P2^0;
      //octa: 0
      //key : C C# D D# E F F# G G# A A# B 
      code float key_octa0[]={16.35,17.32,18.35,19.45,20.6,21.83,23.12,24.5,25.96,27.5,29.14,30.87};
      code unsigned int chuan=1000;
      code float crystal=11.0592;
      //music
      code unsigned char music[]=
      {
      "4d~,4d~,3g~,3a~,4d.,4d~,4g~,4a~,4b~,4a=,4g=,4d.,4 e~,3a~,4c~,3g~,3a~,4d~,4d ,4d=,4c=,3a~,4c~,3g~,3a~,4do"
      "4g~,4g~,4d~,3a~,4g.,4g~,4a~,4g~,4b=,4a=,4g~,4d.,4 g~,4e ,4e~,4d~,4c ,4d~,4d~,3a~,4d~,3b~,3a~,3go,4d ,4go"
      "4go,4a ,4b~,4a~,4F~,4g.,4d~,4g~,4a~,4a=,4b=,4a~,4g.,4d~,3 a ,3a ,3a~,4d ,4d~,4d ,3a=,3b=,3a~,3g.,4b=,4a="
      "4g~,4d~,4g~,4d~,3a.,4g~,4g ,4F~,4a~,5d.,4a=,4b=,4d ,3a ,4go,4d~,4d~,3g~,3a~,4do,4g~,4g~,4d~,3a~,4go,4g~"
      "4d~,4g~,4a~,4A ,4a~,5d~,4b~,4a~,4g~,4F~,4g ,4d ,4d ,4g~,4a~,4A ,4a~,5d~,4b~,4a~,4g~,4F~,4go,s"
      };
      void doitanso(float tanso)
      {
      unsigned int giatrinap;
      giatrinap=65536-(unsigned int)((1000000*crystal)/(24*tanso));
      preloadTL=(unsigned char)giatrinap;
      preloadTH=(unsigned char)(giatrinap>>8);	
      }
      void key(unsigned char octa,unsigned char k)
      {
      float tanso;
      switch (k)
      {
      case 'c' : tanso=key_octa0[0]; break;
      case 'C' : tanso=key_octa0[1]; break;
      case 'd' : tanso=key_octa0[2]; break;
      case 'D' : tanso=key_octa0[3]; break;
      case 'e' : tanso=key_octa0[4]; break;
      case 'f' : tanso=key_octa0[5]; break;
      case 'F' : tanso=key_octa0[6]; break;
      case 'g' : tanso=key_octa0[7]; break;
      case 'G' : tanso=key_octa0[8]; break;
      case 'a' : tanso=key_octa0[9]; break;
      case 'A' : tanso=key_octa0[10]; break;
      case 'b' : tanso=key_octa0[11]; break;
      }
      switch (octa)
      {
      case '1' : tanso*=2; break;	
      case '2' : tanso*=4; break;
      case '3' : tanso*=8; break;
      case '4' : tanso*=16; break;
      case '5' : tanso*=32; break;
      case '6' : tanso*=64; break;
      case '7' : tanso*=128; break;
      case '8' : tanso*=256; break;
      }
      doitanso(tanso);
      }
      unsigned int trave(unsigned int ms)
      {
      unsigned int a;
      a=preloadTH;
      a=a<<8|preloadTL;
      return (ms*crystal*1000)/12/(65536-a);
      }
      unsigned int tempo(unsigned char tem)
      {
      switch (tem)
      {
      case '=' : return trave(chuan); break;
      case '~' : return trave(chuan*2); break;
      case ' ' : return trave(chuan*4); break;
      case '.' : return trave(chuan*6); break;
      case 'o' : return trave(chuan*8);	break;
      }
      }
      void ngattimer_0(void) interrupt 1
      {
      out=~out;
      TL0=preloadTL;
      TH0=preloadTH;
      if(ii==0)
      {
      if(music[pointer]=='s')
      TR0=0;
      key(music[pointer],music[pointer+1]);
      jj=tempo(music[pointer+2]);
      }
      ii++;
      if(ii==jj)
      {
      ii=0;
      pointer+=4;
      }	
      }
      void main(void)
      {
      P0=P1=P2=P3=0;
      /*TMOD=17;
      TL0=0xff;
      TH0=0xff;
      ET0=1;
      EA=1;
      TR0=1;*/
      EA=0;
      TMOD=0x02;// 8 BIT AUTO RELOAD
      TL0=0xff;
      TH0=0xff;
      ET0=1;
      EA=1;
      TR0=1;
      while(1);
      }
      Nguyễn Huy Biên - 01649 802 694
      gmail :

      Comment


      • Nguyên văn bởi bienhou Xem bài viết
        mình có cái này này. k nhớ tác giả nhé
        a có hướng dẫn tạo tần số bài hát cho e với

        Comment


        • Nguyên văn bởi hoanganh234 Xem bài viết
          a có hướng dẫn tạo tần số bài hát cho e với
          bạn chịu khó serach có 1 topic trong luồng này bàn về vấn đề này rồi nhé
          Nguyễn Huy Biên - 01649 802 694
          gmail :

          Comment


          • Nguyên văn bởi bienhou Xem bài viết
            bạn chịu khó serach có 1 topic trong luồng này bàn về vấn đề này rồi nhé
            e tìm rồi nhưng chẳng hiểu làm thế nào để tạo ra code jinglebell như của chjpchjp1991 vậy

            Comment


            • rất cám ơn bạn đã up những bài hay thế này. Đối với mình, những bài như thế này giúp mình có thể hiểu và áp dụng ngày càng nhuần nhuyễn hơn từ kiến thức của C++ vào việc lập trình cho vi điều khiển. Từ đó phát triển thêm các dạng bài tập mà bạn đưa.
              Ngoài ra, bạn có thể gửi mình 1 số tài liệu giáo trình về lập trình C cho 8051 được không ? Mail mình là malphite1993@yahoo.com
              Cám ơn nhiều!!!

              Comment


              • hay quá đúng cái em đang cần
                PK ! $çéü Ä [Content_Types].xml ó (á ┤öMOâ@ å∩&■▓W █z0╞ö÷á⌡¿M¼±╝.C┘╚~dg√⌡∩ JK¬íÑZ╜É└2∩√╠
                3â╤Jù╤ <*kR╓Oz, #mª╠,e»╙╟°ûE ä╔Di
                ñl
                ╚F├╦ï┴tφ #¬6ÿ▓" w╟9╩ ┤└─:0tÆ[»Eá[?πN╚ 1 ~▌δ▌piM ΓPi░ßα r1/C4^╤πÜ─Cë,║»_¼╝R&£+ò üH
                Tổng thống + điện = Ăn mày + điện = die => Tổng thống = ăn mày

                Comment


                • ặc lỗi font rồi .viết tay vậy .
                  Đề: chân ngắt của vi điều khiển dc nối với 1 nút nhấn .mỗi khi nhấn tạo ra sự thay đổi trạng thái của vdk .(từ mức cao xuống mức thấp)
                  chân p2.0 dc nối vs 1 con led đơn
                  Yêu cầu :
                  khi nhấn nút (sử dụng ngắt int0) thì đèn sẽ sáng nhấp nháy 3 lần với chu kì là (1s sáng 1s tối)
                  Tổng thống + điện = Ăn mày + điện = die => Tổng thống = ăn mày

                  Comment


                  • và đây là code mình tự làm .
                    Click image for larger version

Name:	1.jpg
Views:	1
Size:	55.2 KB
ID:	1385231
                    mọi ng xem xong có thể làm cho em cái lưu đồ thuật toán dc ko ạ
                    Tổng thống + điện = Ăn mày + điện = die => Tổng thống = ăn mày

                    Comment


                    • có ai giúp em cái lưu đồ thuật toán bài này ko )
                      Tổng thống + điện = Ăn mày + điện = die => Tổng thống = ăn mày

                      Comment


                      • Nguyên văn bởi hoangthuanhd Xem bài viết
                        ặc lỗi font rồi .viết tay vậy .
                        Đề: chân ngắt của vi điều khiển dc nối với 1 nút nhấn .mỗi khi nhấn tạo ra sự thay đổi trạng thái của vdk .(từ mức cao xuống mức thấp)
                        chân p2.0 dc nối vs 1 con led đơn
                        Yêu cầu :
                        khi nhấn nút (sử dụng ngắt int0) thì đèn sẽ sáng nhấp nháy 3 lần với chu kì là (1s sáng 1s tối)
                        bạn nên tạo 1 nhãn chương trình con delay 1s, mỗi lần sáng tắt thì gọi, chươnng trình dành cho ngắt của bạn rắc rối quá

                        Comment


                        • bạn nào code hộ mình cái biển vẫy.mình làm hết rồi.làm mạch AT89S52 rồi.32 kênh.chắc code đơn giản.bạn nào code được mình gửi công

                          Comment


                          • cho mình hỏi lệnh sbit trong c ý nghĩa và mục đích là gì vậy? vì hồi đó giờ toàn dùng define hoặc dùng trực tiếp port luôn nên thấy cái sbit lạ lắm

                            Comment


                            • Nguyên văn bởi malphite1993 Xem bài viết
                              cho mình hỏi lệnh sbit trong c ý nghĩa và mục đích là gì vậy? vì hồi đó giờ toàn dùng define hoặc dùng trực tiếp port luôn nên thấy cái sbit lạ lắm
                              sbit khai báo địa chỉ của một bit đó bạn. Ví dụ: Port 0 địa chỉ của nó là 0x80. Thay vì phải set nguyên một Port 0 mỗi lần muốn điều khiển một pin thì bạn khai báo của địa chỉ của pin đó:
                              Code:
                              sbit P0_1 P0^2 //thường trong header của keilc dùng dạng này
                              hoặc
                              Code:
                              sbit P0_1 0x81 //địa chỉ cụ thể của bit trong special function registers

                              Comment


                              • cho mình hỏi chút xíu về cái 89s52 này, mình nạp qua isp nhưng khi ko cắm led + trở vào chân p0.1 thì ok. còn khi mà đề led + trở nối p0.1 là báo lỗi chip k nạp được. Mình dùng progisp.
                                ai biết về vụ này cho mình lời khuyên vs.
                                Chân reset mình nối 1 con 104 xuống đất luôn có ok không ?, vì nạp thấy nó vẫn chạy đều mà xem trên net thì thấy còn cần trở 10k nữa

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                • mèomướp
                                  Trả lời cho Sửa bộ nguồn DC 60V 45A
                                  bởi mèomướp
                                  Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
                                  Hôm qua, 13:11
                                • tuyennhan
                                  Trả lời cho Sửa bộ nguồn DC 60V 45A
                                  bởi tuyennhan
                                  Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
                                  Hôm qua, 09:25
                                • tuyennhan
                                  Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                                  bởi tuyennhan
                                  Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
                                  Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
                                  Hôm qua, 09:10
                                • Ng.Phuong.5
                                  Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
                                  bởi Ng.Phuong.5
                                  Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
                                  Mấy con...
                                  09-01-2025, 19:44
                                • viettinh
                                  Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                                  bởi viettinh
                                  Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
                                  Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
                                  09-01-2025, 18:12
                                • nguyendinhvan
                                  Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                                  bởi nguyendinhvan
                                  Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
                                  Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
                                  Cách đơn giản...
                                  09-01-2025, 00:04
                                • mèomướp
                                  Trả lời cho Sửa bộ nguồn DC 60V 45A
                                  bởi mèomướp
                                  Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
                                  08-01-2025, 19:02
                                • tuyennhan
                                  Trả lời cho Sửa bộ nguồn DC 60V 45A
                                  bởi tuyennhan
                                  Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
                                  08-01-2025, 15:43
                                • tuyennhan
                                  Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                                  bởi tuyennhan
                                  Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
                                  08-01-2025, 15:28
                                • mèomướp
                                  Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                                  bởi mèomướp
                                  Dạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
                                  08-01-2025, 11:44
                                Đang tải...
                                X