Thông báo

Collapse
No announcement yet.

89c2051

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

  • 89c2051

    em pót len 1 mach hinh trai tim,cung doan code di kem voi no! mach nay em da thu ben Proteus va no chay rat ngon nhung sao khi lam mach that thi no chi chay co 1 con led thoi.
    cac bac xem gium coi co cho nao sai sot khong? cam on cac pac nhá!
    Attached Files
    SỰ HỌC LÀ MÃI MÃI......!!!!

  • #2
    89C2051 (mà nói chung là họ 8051) có đầu ra dạng tích cực âm
    Click image for larger version

Name:	agh.bmp
Views:	1
Size:	73.1 KB
ID:	1331957
    thế nên bạn mắc như này nó không sáng được là phải
    Click image for larger version

Name:	MACH LAM MOI.BMP
Views:	1
Size:	298.7 KB
ID:	1331958
    phải nối một trở nối tiếp vào A của led một đẩu trở cho lên Vcc (trở hạn dòng qua led)
    0=sáng: K của led nối với chân 2051
    1=sáng: K của led nối gnd, A của led (nối với trở) nối vào chân 2051

    Comment


    • #3
      cảm ơn pac ,để em thử xem sao!
      SỰ HỌC LÀ MÃI MÃI......!!!!

      Comment


      • #4
        còn đoạn code em viết như vậy có đúng không ah! Proteus chạy tốt mà!
        SỰ HỌC LÀ MÃI MÃI......!!!!

        Comment


        • #5
          cái này hôm CN vừa rùi , tui làm để tặng cháu tui đầy tháng ! chỉ mất chưa tới 3/2 ngày
          nhớ là cái này chỉ đủ để chinh phục trái tim đứa pé 1 tháng thui , chứ còn px 18us ,chắc phải chơi còn # , vì dung lượng 2051 bé lám , viết tí nhạc là hết ah !
          Bài HAPPY BIRTHDAY


          Code:
          #include<AT892051.h>
          
          sbit R4 = 0x90;
          sbit R3 = 0x91;
          sbit R2 = 0x92;
          sbit R1 = 0x93;
          sbit L1 = 0x94;
          sbit L2 = 0x95;
          sbit L3 = 0x96;
          sbit L4 = 0x97;
          
          sbit L5 = 0xB0;
          sbit L6 = 0xB1;
          sbit cente = 0xB2;
          sbit R6 = 0xB3;
          sbit R5 = 0xB5;
          
          unsigned char preloadTH=0xFF,preloadTL=0xFF,mode=0;
          unsigned int  pointer=0,i=0,j;
          //octa: 0
          //key :                   C     C#    D     D#    E    F     F#    G    G#    A    A#    B  
          const 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};
          const unsigned int chuan=200;
          const float crystal=11.0592;
          
          code unsigned char array[]=											
          
          {"5a#,5a#,5b$,5a$,6d$,6C% \
          5a#,5a#,5b$,5a$,6e$,6d% \
          5a#,5a#,6a$,6F$,6d#,6d#,6C$,5b$ \
          6g#,6g#,6F$,6d$,6e$,6d% \
          6F#,6g#,6d#,6e#,6d#,5b#,5a$,6F$,6e#,6f#,6g$,6g#,6F=,6e#,6d#,6C%,s"
          };
          
          
          void delay_ms( unsigned int ms )
          { unsigned int i,j;
            for (i=0;i<ms;i++)
            for (j=0;j<120;j++){};
          }
          
          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 '5' : tanso*=32;  break;
                case '6' : tanso*=64;  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*3/4); break;
                case '#' : return trave(chuan*3/2); break;	
                case '$' : return trave(chuan*3);   break;
          	  case '%' : return trave(chuan*6);   break;
          	 
             }
          }
          void timer0_ISR() interrupt 1
          {
             P3_7=!P3_7;
             TL0=preloadTL;
             TH0=preloadTH;
             if(i==0)
                {
                   if(array[pointer]=='s')
          		 	{ TR0 = 0;
          			  pointer = 0; // comeback
          			 
          			  TR0 = 1;
          			};
          		 key(array[pointer],array[pointer+1]);
                   j=tempo(array[pointer+2]);
                	 
          	  }
             i++;
             if(i==j)
                {
                   i=0;
                   pointer+=4;
                }   
          }
          void program1() 
          {  L1 = R1 = 0 ; delay_ms(500);
             L2 = R2 = 0 ; delay_ms(500);
             L3 = R3 = 0 ; delay_ms(500);
             L4 = R4 = 0 ; delay_ms(500);
             L5 = R5 = 0 ; delay_ms(500);
             L6 = R6 = 0 ; delay_ms(500);
             cente = 0   ; delay_ms(500);
             
             L1 = R1 = 1 ; delay_ms(300);
             L2 = R2 = 1 ; delay_ms(300);
             L3 = R3 = 1 ; delay_ms(300);
             L4 = R4 = 1 ; delay_ms(300);
             L5 = R5 = 1 ; delay_ms(300);
             L6 = R6 = 1 ; delay_ms(300);
             cente = 1   ; delay_ms(300);
          }
          void program2() 
          {  L1 = 0 ; delay_ms(100);
             L2 = 0 ; delay_ms(100);
             L3 = 0 ; delay_ms(100);
             L4 = 0 ; delay_ms(100);
             L5 = 0 ; delay_ms(100);
             L6 = 0 ; delay_ms(100);
             cente = 0   ; delay_ms(100);
             
             R1 = 0 ; delay_ms(100);
             R2 = 0 ; delay_ms(100);
             R3 = 0 ; delay_ms(100);
             R4 = 0 ; delay_ms(100);
             R5 = 0 ; delay_ms(100);
             R6 = 0 ; delay_ms(100);
             
             cente = 1   ; delay_ms(300);
             L6 = R6 = 1 ; delay_ms(300);
             L5 = R5 = 1 ; delay_ms(300);
             L4 = R4 = 1 ; delay_ms(300);
             L3 = R3 = 1 ; delay_ms(300);
             L2 = R2 = 1 ; delay_ms(300);
             L1 = R1 = 1 ; delay_ms(300);
          }
          void main(void)
          {  
             TMOD =0x01;
             TL0  =0xFF;
             TH0  =0xFF;
             ET0  =1;
             EA   =1; 
             TR0  =1;
             
             P1 = 0xFF  ; 
             P3_0 = P3_1 = P3_3 = P3_5 = 1;
             
             while (1) 
             { program1() ;
             	 program2() ;
             }
          }
          Last edited by Zz_Bi_zZ; 08-07-2008, 00:01.

          Comment


          • #6
            Ok! Em Làm được Gòy!thanks Bác Nhiều!
            SỰ HỌC LÀ MÃI MÃI......!!!!

            Comment


            • #7
              ủa Bác Zz_bi_zz ơi ! Bài Nhạc Happy Birthday Từ đâu Mà Có Vậy Pác ! Con Ic Nao Vậy? Bao Nhiêu 1 Con?
              Thanks Bác Trước!
              SỰ HỌC LÀ MÃI MÃI......!!!!

              Comment


              • #8
                Nguyên văn bởi tallht
                ủa Bác Zz_bi_zz ơi ! Bài Nhạc Happy Birthday Từ đâu Mà Có Vậy Pác ! Con Ic Nao Vậy? Bao Nhiêu 1 Con?
                Làm gì có con phát nhạc nào! Cái này Zz_bi_zz lập trình trong 2051 đó (bác ấy cho cả source-code rồi còn gì). Bạn hãy láp thử một mạch, hoặc câu 1 chân ra rồi thử với chương trình đó xem.

                Comment


                • #9
                  Uhm Cảm ơn Bác Nha!em Mới Tập Tành Học điện Tử Thôi Nên Hơi Bị .....tệ. Các Pac đừng Cười!
                  SỰ HỌC LÀ MÃI MÃI......!!!!

                  Comment


                  • #10
                    Nguyên văn bởi tallht Xem bài viết
                    Uhm Cảm ơn Bác Nha!em Mới Tập Tành Học điện Tử Thôi Nên Hơi Bị .....tệ. Các Pac đừng Cười!
                    Hì, có gì đâu mà cười bác. Ai dám bảo những bác pro trên diễn đàn này ngày xưa không hỏi vài câu ngớ ngẩn như anh em mình . Quan trọng là mình có chịu học hỏi hay không thôi
                    Và con tim đã vui trở lại ....

                    Comment


                    • #11
                      uhm,mình biết rùi! sẽ cố gắng nhiều!
                      SỰ HỌC LÀ MÃI MÃI......!!!!

                      Comment


                      • #12
                        cho em hỏi cái này nữa! những chỗ em khoanh màu vàng đó(1 chân con led đó), làm sao mà bác vẽ được vậy bác zz_bi_zz (no dính vào bản mạch luôn đó)?chỉ em với
                        SỰ HỌC LÀ MÃI MÃI......!!!!

                        Comment


                        • #13
                          em quên pót mạch lên

                          mạch đây ah!
                          Attached Files
                          SỰ HỌC LÀ MÃI MÃI......!!!!

                          Comment


                          • #14
                            Nguyên văn bởi tallht Xem bài viết
                            cho em hỏi cái này nữa! những chỗ em khoanh màu vàng đó(1 chân con led đó), làm sao mà bác vẽ được vậy bác zz_bi_zz (no dính vào bản mạch luôn đó)?chỉ em với
                            - khi tui chụp ảnh để post lên , tất nhiên tui phải cho hiện tất cả các lớp để mấy newbie có thể nhìn trực quan , còn khi in mạch , các u hãy tắt hết đi , chỉ để lại lớp BOTTOM thui !
                            - Còn mún vẽ trái tim , mấy u phát thảo ngoài giấy sau đó lấy đường tâm giữa , canh 3 con D4, D5 , D11 làm chuẩn. mấy con kia dùng công cụ Dimenssion mà vẽ . Còn u nào nhác , có thể canh lun trên layout , nửa còn lại lấy mirror
                            - code HAPPY BIRTHDAY , tui lấy từ guitarpro ! các bạn có thể search bài này trên google , có đầy mà
                            - thật ra, với mạch này , tui có thể thu nhỏ chỉ nằm trong lòng bàn tay , nhưng cái hộp đựng 2 viên pin tiểu 1,5V ; nó hơi to , nên phải vẽ mạch to to để che lun hộp đựng pin, mấy u thay đc pin sạc thì đúng gud lun , nhỏ gọn cinh cinh

                            cái này mà tặng px , ko cua đc nhóc thì coi như mấy u hết thời rùi


                            Mới post lên chưa kịp nguội , có ku bạn khuya lơ khuya lắc rùi mà vẫn fone , năn nỉ cin layout ! nạp lun bài HAPPY BIRTHDAY ! đem tặng px nó , pó chíu cho mấy pa !

                            Comment


                            • #15
                              bác nói em vẫn chưa hiểu! làm sao để 1 chân con led dính vào phần mạch bị đổ đồng được vậy ah?
                              còn bài happy birthday em tìm không thấy(chỉ tìm ra trang web guitar pro thôi,nhưng chẳng biết tìm gì ở đó nữa.hi hi hi)! bác cho em đường link đi! thanks bác nhiều
                              SỰ HỌC LÀ MÃI MÃI......!!!!

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X