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

                                Đang tải...
                                X