Thông báo

Collapse
No announcement yet.

Dành cho người mới tìm hiểu 8051

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

  • Nguyên văn bởi Zz_Bi_zZ Xem bài viết
    u mới học , và nhất là học với họ 80 thì nên dùng chip S cho rẻ , mạch nạp ko phức tạp như chip C . nạp wa cổng LPT


    trước em xin cảm ơn bác "Zz_Bi_zZ" nhiều........ nhiều.......nhiều ... về cái mạch nạp đó.
    sau bác cho em hỏi 1 chút về cách đấu dây từ mạch đến cổng LPT của máy tính với,và cả chương trình nạp cho em nó nữa.thực sự thì nhìn vào chiếc mạch nạp đó hơi khó hiểu đối với những người mới vào nghề như em.

    Comment


    • chào các anh ! em là thành viên mới cũng là mới vào ngành học điện tử, em thấy diễn đàn này bổ ích quá . cám ơn ai dã lập nên diễn đàn này.
      cám ơn những người dã post bài và xây dựng diễn đàn này .

      Comment


      • co ban nao o day biet su dung chuong trinh mo phong ride khong
        xin chi cho minh voi

        Comment


        • mình lần đầu nghe phần mêm này. Có ai biết giới thiệu em biết với. Cảm ơn rất nhiều.

          Comment


          • Nguyên văn bởi rongconn2t Xem bài viết
            trước em xin cảm ơn bác "Zz_Bi_zZ" nhiều........ nhiều.......nhiều ... về cái mạch nạp đó.
            sau bác cho em hỏi 1 chút về cách đấu dây từ mạch đến cổng LPT của máy tính với,và cả chương trình nạp cho em nó nữa.thực sự thì nhìn vào chiếc mạch nạp đó hơi khó hiểu đối với những người mới vào nghề như em.
            - Về cách nạp chương trình , sau khi viết code xong , chạy ko bị lỗi thi Keil C tọ ra file *.HEX , u làm theo các bước sau
            + Chọn chip AT89S51/52 , chọn thạch anh ( trong hình là tui để AVR , thạch anh 11,0592 ; u dùng 89S52 thì chữa lại phần chọn chip thui )
            + Sau đó vào phần setup chọn AEC ISP , ok
            + File for programming Flash , Browse : chọn đừong dẫn đến file *.HEX đó
            + nhấn Erase & program All . OK ?

            - Còn cách hàn dây vào cổng LPT : mua cổng LPT DB25 Male , mua cáp 5
            Code:
            GND = 18 đến 25
            MISO = 10
            SCK = 8
            MOSI = 7
            RST = 6
            cái mạch này u đừng làm , tích hợp lun lên board mạch , nạp ISP nên rất tiện , cám jack 5 đó vào là nạp ( giống như nạp chip PHilip zay đóa )

            Comment


            • post thêm cho mấy u newbie code phát nhạc = 89S52 nè . Bài công choái bong bóng nhá !


              Code:
              #include<AT89S53.h>
              unsigned char preloadTH=0xFF,preloadTL=0xFF;
              unsigned int  pointer=0,ii=0,jj;
              //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 ccbb[]=																																					  
              {"5g^,5F^,5g^,5b@,5b%,5a~,5g^,5F^,5e^,5F^,6C^,6d&,6d^,6e^,6d@,6d%,6d^,6e^,6d^,6C^,5b^,5a.,5g@,5F@,5g@,5a@,5b~ \
              5g^,5F^,5g^,5b@,5b%,5a~,5g^,5F^,5e^,5F^,6C^,6e^,6d~,5a^,5b^,5a@,5b%,6d^,6e~,6d^,6C^,6d. \
              5a^,5F@,5g@,5a^,5F@,5g@,5a@,4a@,4b@,5C@,5d@,5e@,5F@,5g@,5F^,5d@,5e@,5F^ \
              4F@,4g@,4a@,4b@,4a@,4g@,4a@,4F@,4g@,4a@,4g^,4b@,4a@,4g^,4F@,4e@,4F@,4e@,4d@,4e@,4F@,4g@,4a@,4b@,4g^ \
              4b@,4a@,4b^,5C@,5d@,4a@,4b@,5C@,5d@,5e@,5F@,5g@,5a@ \
              5a^,5F@,5g@,5a^,5F@,5g@,5a@,4a@,4b@,5C@,5d@,5e@,5F@,5g@,5F^,5d@,5e@,5F^ \
              4F@,4g@,4a@,4b@,4a@,4g@,4a@,4F@,4g@,4a@,4g^,4b@,4a@,4g^ \
              4F@,4e@,4F@,4e@,4d@,4e@,4F@,4g@,4a@,4b@,4g^,4b@,4a@,4b^ \
              5C@,5d@,4a@,4b@,5C@,5d@,5e@,5F@,5g@,5a@ \
              4a~,5d^,5F^,5e~,5a~,5d^,5C^,5d^,5e^,5F& \
              5d^,5g^,5g~,5d^,5C^,5C~,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/4);   break;	
                    case '<' : return trave(chuan/2);	  break;	
              	  case '@' : return trave(chuan*3/4); break;	
              	  case '=' : return trave(chuan);     break;	
                    case '#' : return trave(chuan*5/4); break;	
              	  case '^' : return trave(chuan*3/2); break;	
              	  case '!' : return trave(chuan*7/4); break;	
              	  case '>' : return trave(chuan*2);   break;	
                    case '%' : return trave(chuan*9/4); break;   
              	  case '`' : return trave(chuan*5/2); break;   
              	  case 'o' : return trave(chuan*11/4);break;	
              	  case '~' : return trave(chuan*3);   break;    
              	  case '$' : return trave(chuan*7/2); break;   
              	  case '+' : return trave(chuan*15/4);break;    
              	  case '*' : return trave(chuan*4);   break;    
                    case '&' : return trave(chuan*9/2); break;    
              	  case ':' : return trave(chuan*5);   break;    
              	  case '.' : return trave(chuan*6);   break;  
                    case '?' : return trave(chuan*15/2);break;    
                 }
              }
              void timer0_ISR() interrupt 1
              {
                 P2_0=!P2_0;
                 TL0=preloadTL;
                 TH0=preloadTH;
                 if(ii==0)
                    {
                       if(ccbb[pointer]=='s')TR0=0;
                       key(ccbb[pointer],ccbb[pointer+1]);
                       jj=tempo(ccbb[pointer+2]);
                    }
                 ii++;
                 if(ii==jj)
                    {
                       ii=0;
                       pointer+=4;
                    }   
              }
              void main(void)
              {  
                 TMOD =0x11; // dung 2 bo timer 16 bit
                 TL0  =0xFF;
                 TH0  =0xFF;
                 ET0  =1;
                 EA   =1;
                 TR0  =1;
                 while(1);
              }
              thấy trong hình tui tích hợp lun mạch nạp lên board chưa ? Is it easy ?

              Comment


              • hì mạch đó hay đấy.em về sẽ thực hành ngay.cám ơn bác nhiều

                Comment


                • có một vấn đề mà em gặp phải trong quá trình học 89 là không có người để hỏi cho thật tỉ mỉ.đa số toàn tự học nên tiến độ không được nhanh cho lắm.mong các bác cho em hỏi vài câu,nếu câu này có thể hiện đẳng cấp thấp kém thì các bác thông cảm vì em mới vào nghề nên không biết nhiều.nhưng mà em chẳng biết hỏi ai cả.
                  trong các bài học,trong các diễn đàn ,sách vở ...em thấy rất ít sách nói về cờ và ngắt của chíp.và cũng vì thế mà em chẳng biết tí gì về cờ ,ngắt ,cách sử dụng,công dụng của bọn nó.bác nào chỉ giáo hộ em với.tiện cho em xin luôn mấy cái ví dụ kèm theo chú thích nữa(trong lập trình keil C thôi nhá)
                  cảm ơn các bác

                  Comment


                  • sơ sơ là thế này: cờ là 1 bit trong 1 thanh ghi đặc biệt nào đó của vxl để báo 1 trạng thái nào đó của con vxl, ví dụ như cờ nhớ C thì có nhiệm vụ báo cho biết phép toán trước có nhớ hay ko, có nhiều loại cờ: nhớ, cờ báo tràn timer, cờ báo ngắt ...
                    Ngắt: con vxl đang làm 1 công việc gì đó, ta có thể lập trình để khi có 1 biến cố nào đó xảy ra thì vxl sẽ tạm dừng công việc đang làm để đi xử lý biến cố, sau đó lại quay lại làm tiếp công việc. Chi tiết thì phải đọc giáo trình thôi
                    Phạm Minh Tuấn

                    (+84) 982006467

                    Comment


                    • Nguyên văn bởi mgdaubo Xem bài viết
                      sơ sơ là thế này: cờ là 1 bit trong 1 thanh ghi đặc biệt nào đó của vxl để báo 1 trạng thái nào đó của con vxl, ví dụ như cờ nhớ C thì có nhiệm vụ báo cho biết phép toán trước có nhớ hay ko, có nhiều loại cờ: nhớ, cờ báo tràn timer, cờ báo ngắt ...
                      Ngắt: con vxl đang làm 1 công việc gì đó, ta có thể lập trình để khi có 1 biến cố nào đó xảy ra thì vxl sẽ tạm dừng công việc đang làm để đi xử lý biến cố, sau đó lại quay lại làm tiếp công việc. Chi tiết thì phải đọc giáo trình thôi
                      giờ muốn tự học thì em nên mua quyển sách nào vậy?và mua ở đâu.em đang học trên HN,chắc tìm cũng dễ.mà sách về lập trình C thôi nhá.em đọc ASM mãi chả hiểu,đau đầu lắm.thank bác

                      Comment


                      • thì u đang đọc đúng cuốn sách đó rùi ! " Dành cho ng mới tìm hỉu 8051" u đọc từ đầu trang đến cuối trang ,, chắc chắn u chả cần mua sách làm chi !

                        Comment


                        • CẢM ƠN TẤT CẢ CÁC BẠN MÌNH CÓ MỘT ĐỀ TÀI NÀY MUỐN NHÒ CÁC BẠN GIÚP ĐỠ.
                          Đề tài là một bộ cảnh báo 8 kênh 8 input và 8 out tương ứng.
                          Dùng bộ nguồn 24VDC
                          Sử dụng 89c51 hoặc 89c52
                          Ngôn ngữ lập trình : ASM or C
                          Input : là các tín hiệu lấy từ tiếp điểm phụ của CB
                          Giả sử có 8 CB nối với 16 input
                          VD: kênh 1 có lổi
                          khi có sự cố CB1 off  input 1 =1 out1 =1 ( các output nối với transistor dẫn cho relay đóng ngắt để các đèn báo tương ứng tất cả dùng 24VDC). Nhưng tại out này dèn phải nhấp nháy và còi phải kêu theo ( tất cả các kênh dùng chung 1 còi và đèn thì riêng biệt).
                          Có ba nút nhấn cho cả bộ 8 kênh :
                          1) reset: reset hệ thống
                          2) larm test: Để kiểm tra các đèn có bị hỏng không? Nhấn larm thì tất cả các đèn đều sáng
                          3) ACK : khi có sự cố ở các kênh trên nhấn ACK  đèn sáng luôn không nhấp nháy nữa và còi thì tắt hẳn.
                          nếu tiếp tục có lỗi cho các kênh khác thì còi và đèn vẫn báo động như trình tự trên.
                          Mong được sự giúp đỡ.
                          Thanks so much
                          Trương Minh Ngọc

                          Comment


                          • Nguyên văn bởi rongconn2t Xem bài viết
                            giờ muốn tự học thì em nên mua quyển sách nào vậy?và mua ở đâu.em đang học trên HN,chắc tìm cũng dễ.mà sách về lập trình C thôi nhá.em đọc ASM mãi chả hiểu,đau đầu lắm.thank bác
                            khi chưa biết cần học ASM trước.khi đã rành rối thì chuyển sang C cũng chưa muộn.Sách của BK đó

                            Comment


                            • Nguyên văn bởi mepic Xem bài viết
                              khi chưa biết cần học ASM trước.khi đã rành rối thì chuyển sang C cũng chưa muộn.Sách của BK đó
                              em thấy học ASM có vẻ không ổn cho lắm.thấy mọi người dùng nhiều nhưng em học chả vào,hay là em không biết phương pháp học nữa.nhưng mà em so sánh giữa 2 ngôn ngữ lập trình thì thất C dễ hiểu hơn nhiều.

                              Comment


                              • Nguyên văn bởi minhngoc113 Xem bài viết
                                CẢM ƠN TẤT CẢ CÁC BẠN MÌNH CÓ MỘT ĐỀ TÀI NÀY MUỐN NHÒ CÁC BẠN GIÚP ĐỠ.
                                Đề tài là một bộ cảnh báo 8 kênh 8 input và 8 out tương ứng.
                                Dùng bộ nguồn 24VDC
                                Sử dụng 89c51 hoặc 89c52
                                Ngôn ngữ lập trình : ASM or C
                                Input : là các tín hiệu lấy từ tiếp điểm phụ của CB
                                Giả sử có 8 CB nối với 16 input
                                VD: kênh 1 có lổi
                                khi có sự cố CB1 off  input 1 =1 out1 =1 ( các output nối với transistor dẫn cho relay đóng ngắt để các đèn báo tương ứng tất cả dùng 24VDC). Nhưng tại out này dèn phải nhấp nháy và còi phải kêu theo ( tất cả các kênh dùng chung 1 còi và đèn thì riêng biệt).
                                Có ba nút nhấn cho cả bộ 8 kênh :
                                1) reset: reset hệ thống
                                2) larm test: Để kiểm tra các đèn có bị hỏng không? Nhấn larm thì tất cả các đèn đều sáng
                                3) ACK : khi có sự cố ở các kênh trên nhấn ACK  đèn sáng luôn không nhấp nháy nữa và còi thì tắt hẳn.
                                nếu tiếp tục có lỗi cho các kênh khác thì còi và đèn vẫn báo động như trình tự trên.
                                Mong được sự giúp đỡ.
                                Thanks so much
                                Trương Minh Ngọc
                                cái này dễ we u ơi , chỉ là ON / OFF thui mà . .. u cứ đưa ra sơ đồ thuật toán ý tưởng của u , viết ct đi , có gì ae diễn đàn sẽ giúp

                                Comment

                                Về tác giả

                                Collapse

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

                                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 nay, 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 nay, 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 nay, 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...
                                  Hôm qua, 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 ...
                                  Hôm qua, 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...
                                  Hôm qua, 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