Thông báo

Collapse
No announcement yet.

8051 hạn chế công nghệ hay trình độ lập trình ?

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

  • 8051 hạn chế công nghệ hay trình độ lập trình ?

    chả là các vi điều khiển 8 bit mà con 8051 chẳng hạn có 32 chân nhưng nếu có 1 chương trình ví dụ:
    HTML Code:
    ...
    main:
    jnb p1.0,bat
    jmp main
    bat:
    clr p2.0
    jmp main
    end
    như này thì ngoài việc chỉ kiểm tra nút và bật tắt cổng p2.0 thì cũng chả làm được việc gì khác,cứ cho là đoạn chương trình trên em cho vào vector ngắt đi nữa thì cũng chỉ dc 2 chương trình cần thường xuyên thôi + thêm chương trình chính nữa là 3 đi quá ít và có 1 điều em thắc mắc nữa là việc bộ nhớ của 89s52 chẳng hạn có 8k rom viết chương trình nằm trong khoảng này thì nó rõ rồi nhưng có mấy cao thủ nói nghệ thuật dùng 256 byte ram sắp xếp sao cho nó chạy 1 cách tốt nhất là không phải ai cũng làm được( tròn mắt lun ) ,những vấn đề trên em chắc chắn là do trình độ mình non nướt vậy mong các pro dạy dỗ cho thằng em và cũng là cho những người khác tham khảo thêm
    SỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI

  • #2
    8051 ra đời trước nhiều họ vi điều khiển khác ,tính năng nó mạnh mẽ có kém vi điều khiển nào đâu,bạn muốn lâp trình tốt hơn theo mình thì nên dùng C,8051 có thể chạy song song cả trăm ngàn chương trình chứ đâu 1 vài chỉ là phương pháp lập trình này chưa thấy xuất hiện nhiều thui.bạn tìm hiểu về lập trình đa nhiệm cho vi điều khển xem.

    Comment


    • #3
      Nguyên văn bởi h11540 Xem bài viết
      chả là các vi điều khiển 8 bit mà con 8051 chẳng hạn có 32 chân nhưng nếu có 1 chương trình ví dụ:
      HTML Code:
      ...
      main:
      jnb p1.0,bat
      jmp main
      bat:
      clr p2.0
      jmp main
      end
      như này thì ngoài việc chỉ kiểm tra nút và bật tắt cổng p2.0 thì cũng chả làm được việc gì khác,cứ cho là đoạn chương trình trên em cho vào vector ngắt đi nữa thì cũng chỉ dc 2 chương trình cần thường xuyên thôi + thêm chương trình chính nữa là 3 đi quá ít và có 1 điều em thắc mắc nữa là việc bộ nhớ của 89s52 chẳng hạn có 8k rom viết chương trình nằm trong khoảng này thì nó rõ rồi nhưng có mấy cao thủ nói nghệ thuật dùng 256 byte ram sắp xếp sao cho nó chạy 1 cách tốt nhất là không phải ai cũng làm được( tròn mắt lun ) ,những vấn đề trên em chắc chắn là do trình độ mình non nướt vậy mong các pro dạy dỗ cho thằng em và cũng là cho những người khác tham khảo thêm
      các port i/o đấy muốn vào ra hay điều khiển thế nào là do mình chứ.. còn chuyện chức năng thì có một số chân được nhà sx thiết kế để làm việc đấy rồi.
      nếu làm nhiều proj lớn nhiều biến thì 256byte kia k ăn thua đâu..phải chuyển sang unsigned (tại sao thì sớt gu gồ hay trong sách) hoặc là chuyển 1 số biến toàn cục thành biến cục bộ.
      nói chung là nên hạn chế dùng biến toàn cục tối đa có thể ....

      Comment


      • #4
        Nguyên văn bởi dtcn_112 Xem bài viết
        8051 ra đời trước nhiều họ vi điều khiển khác ,tính năng nó mạnh mẽ có kém vi điều khiển nào đâu,bạn muốn lâp trình tốt hơn theo mình thì nên dùng C,8051 có thể chạy song song cả trăm ngàn chương trình chứ đâu 1 vài chỉ là phương pháp lập trình này chưa thấy xuất hiện nhiều thui.bạn tìm hiểu về lập trình đa nhiệm cho vi điều khển xem.
        rất đúng cái em cần ạ,cái chương trình trên chỉ là ví dụ cho dễ hiểu thôi ak,ý đồ của em là nó chỉ thực hiện theo tuần tự,hỏi vòng,lập trình đa nhiệm cho 8051 với 1 VDK còn khá hạn chế,không phải em bảo nó không mạnh vì từ trước kia khi 8051 mới ra đời thì nó được coi như core i7 bây giờ vậy chẳng qua là các chip mới ra đời nên nó bị lãng quên thôi chứ nó vẫn còn nhiều ứng dụng lắm,nhiều người học chip nọ chip kia nhưng em học theo ứng dụng và sự phù hợp,nhưng vấn đề 1 chip hạn chế số ngắt mà chạy đa nhiệm hơi mơ hồ với em,các dòng lệnh nó chạy theo tuần tự vậy làm thế nào có thể vừa thực hiện việc này lại vừa theo dõi được việc kia ?
        SỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI

        Comment


        • #5
          Nguyên văn bởi h11540 Xem bài viết
          rất đúng cái em cần ạ,cái chương trình trên chỉ là ví dụ cho dễ hiểu thôi ak,ý đồ của em là nó chỉ thực hiện theo tuần tự,hỏi vòng,lập trình đa nhiệm cho 8051 với 1 VDK còn khá hạn chế,không phải em bảo nó không mạnh vì từ trước kia khi 8051 mới ra đời thì nó được coi như core i7 bây giờ vậy chẳng qua là các chip mới ra đời nên nó bị lãng quên thôi chứ nó vẫn còn nhiều ứng dụng lắm,nhiều người học chip nọ chip kia nhưng em học theo ứng dụng và sự phù hợp,nhưng vấn đề 1 chip hạn chế số ngắt mà chạy đa nhiệm hơi mơ hồ với em,các dòng lệnh nó chạy theo tuần tự vậy làm thế nào có thể vừa thực hiện việc này lại vừa theo dõi được việc kia ?
          Cái này bạn dùng chức năng lập trình đa nhiệm -RTX51 trong 8051, voi chức năng này bạn có thể sử dụng 1 VDK làm cho 15 công việc khác nhau. Cái này rất hay đấy.
          Email:
          Phone: 0969 226 539

          Comment


          • #6
            Nguyên văn bởi h11540 Xem bài viết
            rất đúng cái em cần ạ,cái chương trình trên chỉ là ví dụ cho dễ hiểu thôi ak,ý đồ của em là nó chỉ thực hiện theo tuần tự,hỏi vòng,lập trình đa nhiệm cho 8051 với 1 VDK còn khá hạn chế,không phải em bảo nó không mạnh vì từ trước kia khi 8051 mới ra đời thì nó được coi như core i7 bây giờ vậy chẳng qua là các chip mới ra đời nên nó bị lãng quên thôi chứ nó vẫn còn nhiều ứng dụng lắm,nhiều người học chip nọ chip kia nhưng em học theo ứng dụng và sự phù hợp,nhưng vấn đề 1 chip hạn chế số ngắt mà chạy đa nhiệm hơi mơ hồ với em,các dòng lệnh nó chạy theo tuần tự vậy làm thế nào có thể vừa thực hiện việc này lại vừa theo dõi được việc kia ?
            Kể cả đến con người đi chăng nữa thì tại một thời điểm cũng chỉ xử lý được một việc mà thôi, huống chi là con VĐK. Vậy nên theo mình vấn đề ở đây là tốc độ của VĐK và kỹ thuật lập trình của lập trình viên.

            Comment


            • #7
              ai có tài liệu cơ bản về lập trình cho m xin m cũng đang học làm nhưng phần lặp ko hiểu toàn sai chân đầu ra

              Comment


              • #8
                Nguyên văn bởi vantrinh0902 Xem bài viết
                Cái này bạn dùng chức năng lập trình đa nhiệm -RTX51 trong 8051, voi chức năng này bạn có thể sử dụng 1 VDK làm cho 15 công việc khác nhau. Cái này rất hay đấy.
                nếu mà nói về lập trình nhiều ngắt time thì em nghe thấy rồi còn bình thường thì không thể nào mà lập trình đa nhiệm được(ít nhất là với em),và em nghĩ không chỉ riêng 8051 mà các VDK cùng hạng với nó cũng không thể làm hơn được 1 việc tuần tự (-ngắt),với VXL trên pc thì nó có nhiều ngắt,đa nhân,đa luồng thì nó khác,chứ với con VDK bình thường thì việc này như hack vậy,ở ví dụ trên nếu vừa kiểm tra trạng thái của các cổng p1.0 rồi thì chả làm được việc gì khác,như vừa kiểm tra vừa nháy led ở cổng P2 chẳng hạn,chả nhẽ nháy xong rồi đọc cổng,hay đọc xong mới nháy led???? @@ như thế lúc nháy led thì trạng thái cổng cần đọc bị che mất rùi còn gì nữa ,các trường hợp không tính ngắt
                SỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI

                Comment


                • #9
                  Nguyên văn bởi Ck33spkt Xem bài viết
                  Kể cả đến con người đi chăng nữa thì tại một thời điểm cũng chỉ xử lý được một việc mà thôi, huống chi là con VĐK. Vậy nên theo mình vấn đề ở đây là tốc độ của VĐK và kỹ thuật lập trình của lập trình viên.
                  em không nghĩ liên quan đến tốc độ thì nếu thay đổi tốc độ thì rất nhiều thứ khác thay đổi ví dụ vòng lặp đang chạy thạch anh 11.0952Mhz mà mình tăng lên 20Mhz công nhận là nó sẽ nhanh hơn rất nhiều nhưng tổng thể thời gian thực vẫn vậy,ví dụ cần thời gian trễ là 5 giây thì thay thạch anh nào cũng tính toán cho trễ 5 giây cả thôi
                  SỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI

                  Comment


                  • #10
                    tất cả những thứ bạn nghĩ thì người ta đã nghĩ ra rồi và đã có cách giải quyết đó là các chức năng ưu tiên ngắt, gán thời gian chờ sử lý một công việc bằng cách delay, vấn đề là bạn sử dụng vđk để làm gì thì mới chọn loại nó có modul phù hợp vs công việc, chứ vđk nó chỉ sử lý ở mức độ ns hoặc ms thì con led nó bị trễ 1 tí bạn cũng chẳng nhận thức được, tốc độ sử lý ở đây là sử lý lệnh theo chu kì, con pic nó có thể sử lý bất kì lệnh nào trong vòng 1 chu kì thì con 89 có lệnh phải mất 4 chu kì mới xong, và tốc độ xử lý thực tế của nó bằng tốc độ đầu vào chia cho 12, nên nói việc tốc độ không liên quan đến việc sử lý thì bó tay cho bạn luôn.

                    Comment


                    • #11
                      Nguyên văn bởi jimmyli Xem bài viết
                      tất cả những thứ bạn nghĩ thì người ta đã nghĩ ra rồi và đã có cách giải quyết đó là các chức năng ưu tiên ngắt, gán thời gian chờ sử lý một công việc bằng cách delay, vấn đề là bạn sử dụng vđk để làm gì thì mới chọn loại nó có modul phù hợp vs công việc, chứ vđk nó chỉ sử lý ở mức độ ns hoặc ms thì con led nó bị trễ 1 tí bạn cũng chẳng nhận thức được, tốc độ sử lý ở đây là sử lý lệnh theo chu kì, con pic nó có thể sử lý bất kì lệnh nào trong vòng 1 chu kì thì con 89 có lệnh phải mất 4 chu kì mới xong, và tốc độ xử lý thực tế của nó bằng tốc độ đầu vào chia cho 12, nên nói việc tốc độ không liên quan đến việc sử lý thì bó tay cho bạn luôn.
                      bác nói câu mất quan điểm quá!!!
                      thứ nhất:em không bảo là em nghĩ ra cái gì,em lập thớt là để hỏi chứ không công bố cái gì cả,ý em là sau khi được các bác trên tư vấn thì em có biết là có thể dùng lập trình tạo ra nhiều ngắt time được bằng cách lập trình
                      thứ hai:bác có đọc nhưng không kĩ,thế này nhá em đố bác viết code quét 8 phím trên port 1 và đồng thời dịch từng led ở port 2 mà không bị trễ phím đấy,thực hiện 2 công việc riêng biệt trên 2 port cùng 1 lúc với thời gian khác nhau,giả sử port 1 không có hàm delay nên nó sẽ chạy 1 lèo theo đúng chu kì của câu lệnh nhưng port 2 có hàm delay nên nó sẽ bị trễ vậy làm thế nào để chạy được 2 port cùng lúc được ???
                      ví dụ đơn giản nhất và dễ hiểu như này nhá :
                      HTML Code:
                      ....
                      MAIN:
                      JNB P1.0
                      JNB P1.1
                      JNB P1.2
                      JNB P1.3
                      JNB P1.4
                      JNB P1.5
                      ...
                      ...
                      MOV P2,#11111110B
                      CALL DELAY
                      MOV P2,#11111101B
                      CALL DELAY
                      MOV P2,#11111011B
                      CALL DELAY
                      ......
                      .....
                      ....
                      END
                      tất nhiên là còn nhiều các xử lí bằng thuật toán và dịch bít nhưng cách nào thì nó cũng thực hiện theo trình tự hết,vậy ai có thể cho em biết được cách xử lí đa nhiệm cho 8051 này không ????
                      SỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI

                      Comment


                      • #12
                        bác làm vài bài về đa nhiệm cho em được mở mang với, nhiều người nói xuông quá rồi.
                        Nguyên văn bởi dtcn_112 Xem bài viết
                        8051 ra đời trước nhiều họ vi điều khiển khác ,tính năng nó mạnh mẽ có kém vi điều khiển nào đâu,bạn muốn lâp trình tốt hơn theo mình thì nên dùng C,8051 có thể chạy song song cả trăm ngàn chương trình chứ đâu 1 vài chỉ là phương pháp lập trình này chưa thấy xuất hiện nhiều thui.bạn tìm hiểu về lập trình đa nhiệm cho vi điều khển xem.

                        Comment


                        • #13
                          cái tít chủ đề này thấy chán , Han chế hay không là do trình độ viết , khả năng cùa chip và tùy vào ứng dụng mà đưa chip phù hơp vào sử dụng . đừng đổ lỗi cho cái này cái kia . Nên học hỏi,tìm hiểu nhiều hơn là ngồi than vãn

                          Comment


                          • #14
                            Nguyên văn bởi vungtau88 Xem bài viết
                            cái tít chủ đề này thấy chán , Han chế hay không là do trình độ viết , khả năng cùa chip và tùy vào ứng dụng mà đưa chip phù hơp vào sử dụng . đừng đổ lỗi cho cái này cái kia . Nên học hỏi,tìm hiểu nhiều hơn là ngồi than vãn
                            lại 1 người nữa có vấn đề đọc hiểu =_= ,bạn làm ơn sắn tay vào làm hộ tôi cái..,2 dòng của bạn không có 1 cái giá trị nào đối với tôi cả,bạn viết 2 dòng như vậy chỉ làm chật bộ nhớ của sever mà thôi,xin lỗi bạn viết cứ như ngọc hoàng trong táo quân năm nay vậy..'' đây là vấn đề nhạy cảm,cần xin ý kiến các cấp ...bla..bla, tôi lập thớt để anh em trao đổi những cái chưa biết,cái gì tôi chưa hiểu,chưa biết thì mọi người có thể dạy tôi,chương trình viết sai có thể chửi thẳng để còn tiến bộ,nếu mà nói như bạn thì cái diễn đàn này sẽ chả bao giờ tồn tại....''khả năng của chip tùy vào ứng dụng''..thế chưa hiểu về nó thì ứng vào mắt ak,tôi không ngại khi những người khác bảo làm cái này chưa được cái kia chưa đúng nhưng mà tôi ghét nhất thể loại nói mà chả làm,đi qua buông vài câu vớ vẩn chả được cái tác dụng gì cả,bạn là ''sêu'' bên diễn đàn banlinhkien.vn đúng không làm mất uy tín cả ra
                            SỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI

                            Comment


                            • #15
                              Nguyên văn bởi toi ngu kinh Xem bài viết
                              bác làm vài bài về đa nhiệm cho em được mở mang với, nhiều người nói xuông quá rồi.
                              nghe giọng bác thấy quen ,thứ này mình có được học khi còn là sinh viên,ra trường đi làm rùi ko có thời gian làm lại,được học cái này cũng là may mắn,lập trình đa nhiệm có từ rất lâu rùi,với phương pháp này thì chíp 8051 sẽ mất đi Timer 0(ho hệ điều hành rtx_51 dùng Timer 0 dùng Tiemer này).trong phần mền có sẵn ví dụ luôn .nêu muốn bắt đầu thì chọn cái đèn giao thông có lẽ là dễ nhất.
                              P/S:nghe giọng giống người bạn học cùng lớp quá ;D

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X