RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

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

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts

  • h11540
    replied
    Nguyên văn bởi dangemailbox Xem bài viết
    h11540 xem thử chương 13 của cuốn sách Patterns for time-triggered embedded systems thử coi, ở đó tác giả có trình bày về các kiến trúc phần mềm cũng khá hay.

    Cái RTX51 full thì mình chưa có cơ hội được dùng, nhưng cái RTX51 tiny thì mình có dùng qua thử, mình cảm thấy nó không được hay lắm hoặc là do mình chưa hiểu rõ về nó, mình không dám khẳng định.

    Còn về lập trình bằng C không cần quan tâm nhiều đến phần cứng thì mình không đồng ý lắm. Vẫn phải nghiên cứu phần cứng + thuật toán nhiều nhiều bạn ah, đừng nên phụ thuộc quá nhiều vào kho thư viện mà C cung cấp sẵn. Các thư viện đó hầu như chỉ phù hợp cho một kiến trúc phần mềm (thường là Super Loop) thôi, khi chúng ta xây dựng một kiến trúc phần mềm mới thì các hàm đó gần như không còn sử dụng được nữa.

    Mình thì khoái C ở chỗ nó xây dựng sẵn các kiểu dữ liệu cơ bản (float, double, ...), các cấu trúc lệnh + biểu thức tính toán của nó rất rành mạch rõ ràng, dễ dàng xây dựng các kiểu dữ liệu do người dùng tự định nghĩa, dễ tạo + quản lý thư viện và có nhiều đoạn code C hoàn toàn có thể sử dụng lại trên tất cả các chip hoặc chỉ cần sửa đổi chút ít.
    đúng như bác nói em cũng rất thích phần cứng với vi điều khiển đến giờ em mới có cơ hội học,chỗ em mua được con 89s52 còn hiếm hơn BMW ,em phải mua toàn bộ ở hà nội gửi lên cho,với ASM khoái ở chỗ là gõ 1 lèo như nước chảy được nhưng mà về cấu trúc chương trình thì rắc rối quá,hơn nữa hàm delay không thay đổi biến được,muốn tạo ra delay khác nhau thì phải tạo ct con khác nhau,nhưng quan trọng nhất vẫn là thuật toán,không biết mọi người thế nào chứ em rất lười vẽ,nên mọi thứ sảy ra trong đầu khi nào viết thì tự luận ra

    với C điều yêu thích nhất là cấu trúc rõ ràng,dễ fix lỗi,nhìn dễ hiểu,và em không thích dùng các hàm có sẵn chút nào,nó làm mình lười đi và quên đi cái cơ bản,tốt nhất tự viết,nhưng trong C ghét nhất là cái dấu khốn nạn ''{ }'' ,em chỉ đọc qua C nhưng em nghĩ là C dễ viết trên mọi loại VĐK chỉ thay đổi 1 chút ít về các thanh ghi thôi còn cấu trúc y hệt đúng không ạ,đang tính có thời gian phang luôn PIC C đây

    Leave a comment:


  • h11540
    replied
    Nguyên văn bởi dangemailbox Xem bài viết
    h11540 xem thử chương 13 của cuốn sách Patterns for time-triggered embedded systems thử coi, ở đó tác giả có trình bày về các kiến trúc phần mềm cũng khá hay.

    Cái RTX51 full thì mình chưa có cơ hội được dùng, nhưng cái RTX51 tiny thì mình có dùng qua thử, mình cảm thấy nó không được hay lắm hoặc là do mình chưa hiểu rõ về nó, mình không dám khẳng định.

    Còn về lập trình bằng C không cần quan tâm nhiều đến phần cứng thì mình không đồng ý lắm. Vẫn phải nghiên cứu phần cứng + thuật toán nhiều nhiều bạn ah, đừng nên phụ thuộc quá nhiều vào kho thư viện mà C cung cấp sẵn. Các thư viện đó hầu như chỉ phù hợp cho một kiến trúc phần mềm (thường là Super Loop) thôi, khi chúng ta xây dựng một kiến trúc phần mềm mới thì các hàm đó gần như không còn sử dụng được nữa.

    Mình thì khoái C ở chỗ nó xây dựng sẵn các kiểu dữ liệu cơ bản (float, double, ...), các cấu trúc lệnh + biểu thức tính toán của nó rất rành mạch rõ ràng, dễ dàng xây dựng các kiểu dữ liệu do người dùng tự định nghĩa, dễ tạo + quản lý thư viện và có nhiều đoạn code C hoàn toàn có thể sử dụng lại trên tất cả các chip hoặc chỉ cần sửa đổi chút ít.
    đúng như bác nói em cũng rất thích phần cứng với vi điều khiển đến giờ em mới có cơ hội học,chỗ em mua được con 89s52 còn hiếm hơn BMW ,em phải mua toàn bộ ở hà nội gửi lên cho,với ASM khoái ở chỗ là gõ 1 lèo như nước chảy được nhưng mà về cấu trúc chương trình thì rắc rối quá,hơn nữa hàm delay không thay đổi biến được,muốn tạo ra delay khác nhau thì phải tạo ct con khác nhau,nhưng quan trọng nhất vẫn là thuật toán,không biết mọi người thế nào chứ em rất lười vẽ,nên mọi thứ sảy ra trong đầu khi nào viết thì tự luận ra

    với C điều yêu thích nhất là cấu trúc rõ ràng,dễ fix lỗi,nhìn dễ hiểu,và em không thích dùng các hàm có sẵn chút nào,nó làm mình lười đi và quên đi cái cơ bản,tốt nhất tự viết,nhưng trong C ghét nhất là cái dấu khốn nạn ''{ }'' ,em chỉ đọc qua C nhưng em nghĩ là C dễ viết trên mọi loại VĐK chỉ thay đổi 1 chút ít về các thanh ghi thôi còn cấu trúc y hệt đúng không ạ,đang tính có thời gian phang luôn PIC C đây

    Leave a comment:


  • dangemailbox
    replied
    h11540 xem thử chương 13 của cuốn sách Patterns for time-triggered embedded systems thử coi, ở đó tác giả có trình bày về các kiến trúc phần mềm cũng khá hay.

    Cái RTX51 full thì mình chưa có cơ hội được dùng, nhưng cái RTX51 tiny thì mình có dùng qua thử, mình cảm thấy nó không được hay lắm hoặc là do mình chưa hiểu rõ về nó, mình không dám khẳng định.

    Còn về lập trình bằng C không cần quan tâm nhiều đến phần cứng thì mình không đồng ý lắm. Vẫn phải nghiên cứu phần cứng + thuật toán nhiều nhiều bạn ah, đừng nên phụ thuộc quá nhiều vào kho thư viện mà C cung cấp sẵn. Các thư viện đó hầu như chỉ phù hợp cho một kiến trúc phần mềm (thường là Super Loop) thôi, khi chúng ta xây dựng một kiến trúc phần mềm mới thì các hàm đó gần như không còn sử dụng được nữa.

    Mình thì khoái C ở chỗ nó xây dựng sẵn các kiểu dữ liệu cơ bản (float, double, ...), các cấu trúc lệnh + biểu thức tính toán của nó rất rành mạch rõ ràng, dễ dàng xây dựng các kiểu dữ liệu do người dùng tự định nghĩa, dễ tạo + quản lý thư viện và có nhiều đoạn code C hoàn toàn có thể sử dụng lại trên tất cả các chip hoặc chỉ cần sửa đổi chút ít.
    Last edited by dangemailbox; 17-03-2014, 06:05.

    Leave a comment:


  • duong_act
    replied
    Nguyên văn bởi h11540 Xem bài viết
    về cái này thì em không đồng ý với bác được rồi,nền tảng em nói ở đây là việc làm quen với 1 vi điều khiển,hiểu các thuật ngữ cơ bản nhất,ngắt,time,thanh ghi......
    còn về chuyện 8051 khác pic thì em có tìm hiểu và nếu học pic thì sẽ học C luôn,nhưng phải công nhận 1 điều là học ASM và chuyển sang C rất là hữu íc vì nó không khác xa quá như các ngôn ngữ khác,lần đầu học ASM em có 1 cảm giác cực kì gần gũi như thể mình sinh ra để ''phải học'' nó vậy,chứ lúc đầu mà bụp luôn C là em nản ngay ,con 8051 là 1 nền tảng cực tốt vừa rẻ =.= (em mua 1 rổ vài chục con mà chưa hỏng con nào) nói về độ ổn định thì xếp bét,nhưng quăng quật với các ứng dụng rẻ thì dùng ngon,nhưng mà tiền ít thì hít thế thui
    Nói chung bạn vẫn chưa hiểu. Bạn cứ làm nữa đi rồi sau này bạn sẽ biết tại sao người ta lại chuyển từ 8051 sang AVR,PIC rồi các dòng cao nữa. Tại sao người ta lại chuyển từ AVR,PIC... sang các dòng cao nữa cao nữa. Tại sao người ta dần chuyển từ ASM sang C.
    Mình bắt đầu với PIC và C (dĩ nhiên có học 8051 vs ASM trước đó nhưng kiến thức =0). Và đến bây giờ mình nhận ra nếu 8051 không tồn tại cũng chẳng ảnh hưởng gì bởi nếu muốn làm với ASM phải đọc datasheet về cấu trúc và 8051 khác PIC cả về cấu trúc và tập lệnh ASM=> coi như học lại từ đầu. Nếu dùng C thì lúc đấy người ta đang chú trọng vào phát triển thuật toán rồi, chả quan tâm lắm đến phần cứng.

    Leave a comment:


  • h11540
    replied
    Nguyên văn bởi duong_act Xem bài viết
    Theo mình bạn đừng có nghĩ dùng 8051 làm nền tảng sau này chuyển qua PIC,AVR,vv. Nó sẽ chẳng giống nhau nhiều đâu mà làm nền tảng. Cách bố trí thanh ghi, tên thanh ghi cũng khác. Ngoại vi cũng khác, cách thức hoạt động của các ngoại vi cũng khác, tập lệnh ASM cũng khác. Dùng 8051 làm nền tảng cho MCU khác bạn chỉ kế thừa được 1 phần kiến thức về IO, Timer, Ngắt... cái mà MCU nào cũng có còn lại thì không. Hơn nữa xu thế bây giờ là C thay cho ASM nên cũng không nên quá đề cao vấn đề nắm rõ phần cứng làm gì. Dĩ nhiên nắm rõ cũng tốt nhưng phải nói là cực kì mất thời gian và công sức nếu muốn làm cái gì đó to tát một chút.
    về cái này thì em không đồng ý với bác được rồi,nền tảng em nói ở đây là việc làm quen với 1 vi điều khiển,hiểu các thuật ngữ cơ bản nhất,ngắt,time,thanh ghi......
    còn về chuyện 8051 khác pic thì em có tìm hiểu và nếu học pic thì sẽ học C luôn,nhưng phải công nhận 1 điều là học ASM và chuyển sang C rất là hữu íc vì nó không khác xa quá như các ngôn ngữ khác,lần đầu học ASM em có 1 cảm giác cực kì gần gũi như thể mình sinh ra để ''phải học'' nó vậy,chứ lúc đầu mà bụp luôn C là em nản ngay ,con 8051 là 1 nền tảng cực tốt vừa rẻ =.= (em mua 1 rổ vài chục con mà chưa hỏng con nào) nói về độ ổn định thì xếp bét,nhưng quăng quật với các ứng dụng rẻ thì dùng ngon,nhưng mà tiền ít thì hít thế thui

    Leave a comment:


  • damme88
    replied
    8051 là họ vi điều khiển rất cơ bản mà, sinh viên hay người mới nghiên cứu dùng nó để học rất tốt.

    Leave a comment:


  • duong_act
    replied
    Nguyên văn bởi h11540 Xem bài viết
    vâng cái này thì em đồng ý,vậy nên bỏ phần lập trình đa nhiệm này thôi,công nhận là với 1 core 8051 thì dù có tích hợp các module như pic cũng không ăn nhằm gì,dự định vẫn chỉ là dùng làm nền tảng để học thôi sau đó chắc chuyển qua pic, pic được dùng trong cả quân sự nên có lẽ độ ổn định của nó hơn các dòng khác,bản thân em thì cứ theo nguyên lý ''hàng nào vừa tay thì mới bóp'' chưa xong 8051 thì em chưa chuyển qua pic,nhưng mà nhìn viết cho pic thì chắc nên dùng C nhỉ vì asm pic nhìn na ná 8051 viết sợ lộn
    Theo mình bạn đừng có nghĩ dùng 8051 làm nền tảng sau này chuyển qua PIC,AVR,vv. Nó sẽ chẳng giống nhau nhiều đâu mà làm nền tảng. Cách bố trí thanh ghi, tên thanh ghi cũng khác. Ngoại vi cũng khác, cách thức hoạt động của các ngoại vi cũng khác, tập lệnh ASM cũng khác. Dùng 8051 làm nền tảng cho MCU khác bạn chỉ kế thừa được 1 phần kiến thức về IO, Timer, Ngắt... cái mà MCU nào cũng có còn lại thì không. Hơn nữa xu thế bây giờ là C thay cho ASM nên cũng không nên quá đề cao vấn đề nắm rõ phần cứng làm gì. Dĩ nhiên nắm rõ cũng tốt nhưng phải nói là cực kì mất thời gian và công sức nếu muốn làm cái gì đó to tát một chút.

    Leave a comment:


  • h11540
    replied
    Nguyên văn bởi duong_act Xem bài viết
    @ Thớt + All.
    Nó là cả 2.
    1. Hạn chế công nghệ thì rõ rồi, cứ nhìn phần cứng thì rõ.
    - Tốc độ xử lý thấp. Thấp vào top so với các MCU hiện giờ như AVR,PIC,,,
    - Ngoại vi hạn chế. Chả có cái gì ngoài IO, ngắt, timer... trong khi các MCU khác thì nào là ADC,DAC,SPI,I2C....
    - Dung lượng bộ nhớ ít. 8K hay 16K, 256 byte RAM thì làm ăn gì ? Làm đc mấy cái ứng dụng đơn giản, chương trình ngắn.
    - ....
    2. Trình độ lập trình. Cái này thì cũng rõ ràng luôn. Cùng 1 con 8051 người làm đc, người ko. Và trình độ lập trình thể hiện thêm ở cái chỗ là người giỏi biết chọn MCU phù hợp với thời đại, với dự án, với giá thành, với nhiều cái nữa thay thì cố nghiền ngẫm 1 MCU và cố gắng làm mọi thứ với nó trong khi ngoài kia vô số MCU nhiều ưu điểm và mà người ta đang sử dụng.
    vâng cái này thì em đồng ý,vậy nên bỏ phần lập trình đa nhiệm này thôi,công nhận là với 1 core 8051 thì dù có tích hợp các module như pic cũng không ăn nhằm gì,dự định vẫn chỉ là dùng làm nền tảng để học thôi sau đó chắc chuyển qua pic, pic được dùng trong cả quân sự nên có lẽ độ ổn định của nó hơn các dòng khác,bản thân em thì cứ theo nguyên lý ''hàng nào vừa tay thì mới bóp'' chưa xong 8051 thì em chưa chuyển qua pic,nhưng mà nhìn viết cho pic thì chắc nên dùng C nhỉ vì asm pic nhìn na ná 8051 viết sợ lộn

    Leave a comment:


  • duong_act
    replied
    @ Thớt + All.
    Nó là cả 2.
    1. Hạn chế công nghệ thì rõ rồi, cứ nhìn phần cứng thì rõ.
    - Tốc độ xử lý thấp. Thấp vào top so với các MCU hiện giờ như AVR,PIC,,,
    - Ngoại vi hạn chế. Chả có cái gì ngoài IO, ngắt, timer... trong khi các MCU khác thì nào là ADC,DAC,SPI,I2C....
    - Dung lượng bộ nhớ ít. 8K hay 16K, 256 byte RAM thì làm ăn gì ? Làm đc mấy cái ứng dụng đơn giản, chương trình ngắn.
    - ....
    2. Trình độ lập trình. Cái này thì cũng rõ ràng luôn. Cùng 1 con 8051 người làm đc, người ko. Và trình độ lập trình thể hiện thêm ở cái chỗ là người giỏi biết chọn MCU phù hợp với thời đại, với dự án, với giá thành, với nhiều cái nữa thay thì cố nghiền ngẫm 1 MCU và cố gắng làm mọi thứ với nó trong khi ngoài kia vô số MCU nhiều ưu điểm và mà người ta đang sử dụng.

    Leave a comment:


  • Ari@132
    replied
    Nguyên văn bởi h11540 Xem bài viết
    thực sự thì lập trình đa nhiệm cho 8051 không phổ biến cho lắm,chắc cũng có nguyên do của nó như tít mình đề cập do công nghệ không đáp ứng được nên không được ưa chuộng,cũng có thể do khả năng lập trình không có,chắc chỉ dừng lại ở mức ''cưỡi ngựa xem hoa mà thôi'' ,chán quá
    Thường cần đa nhiệm hay ko thì phụ thuộc vào ứng dụng như bác Quế Duơng đã nói. Họ MCU51 có tài nguyên hạn hẹp nên thường dùng trong những ứng dụng đơn giản ko cần đa nhiệm phức tạp. Nếu cần lập trình thời gian thực thì người ta mua các hệ điều hành có sẵn rồi lập trình lên trên như rtx51. Chẳng ai lại đi lập trình lại từ đầu cả vì rất tốn công sức mà ko đảm bảo an toàn.

    Leave a comment:


  • queduong
    replied
    Đọc 1 lèo từ nãy tôi thấy hình như các bạn không phân biệt được thế nào là 8051 ?

    8051 là core xử lý chứ không phải chỉ cụ thể 1 con MCU nào cả , việc đánh đồng mấy con 89 với cả họ 8051 là sai lầm .

    AT89xxx của ATMEL chỉ là 1 trong số các MCU có tập lệnh theo 8051 !

    Họ 8051 , các MCU sử dụng core 8051 có rất nhiều và có nhiều MCU mạnh ... ví dụ có những con MCU 8 bits thuộc họ 8051 của silabs , maxim- dallas có thể chạy tới cả 100 Mips ( Nhanh như 1 số ARM 32 bits ).

    --- Với mấy con AT89 của ATMEL , giá thành rẻ , phổ thông ... tài nguyên bộ nhớ, rom , ram nghèo nàn , tốc độ chậm ,khả năng hạn chế, chịu nhiễu kém, không có nhiều module mở rộng nên hạn chế về nhiều mặt.
    Thường được dùng trong ứng dụng nhỏ theo trình tự hay khéo léo sắp đặt việc xử lý đối với từng bài toán cụ thể . ( cái này cần yếu tố con người ), còn do những hạn chế phần cứng nên chúng cũng chẳng được đón chào ở những xử lý phức tạp , đòi hỏi chất lượng.

    Leave a comment:


  • h11540
    replied
    Nguyên văn bởi Ari@132 Xem bài viết
    Cơ chế thì mình đã viết qua trong trang thứ 2 rồi đấy, vấn đề là mình muốn xem cách cài đặt hoàn chỉnh của scheduler. Chẳng hạn như việc định nghĩa danh sách các task (id, priority, deadline...), tổ chức bộ nhớ để lưu context và truy xuất stack của thanh ghi PC để thoát khỏi ISR.
    thực sự thì lập trình đa nhiệm cho 8051 không phổ biến cho lắm,chắc cũng có nguyên do của nó như tít mình đề cập do công nghệ không đáp ứng được nên không được ưa chuộng,cũng có thể do khả năng lập trình không có,chắc chỉ dừng lại ở mức ''cưỡi ngựa xem hoa mà thôi'' ,chán quá

    Leave a comment:


  • Ari@132
    replied
    Nguyên văn bởi h11540 Xem bài viết
    thực sự nó quá khó sao ,ai có thể chỉ cho mình cơ chế hoạt động thế nào không ??
    Cơ chế thì mình đã viết qua trong trang thứ 2 rồi đấy, vấn đề là mình muốn xem cách cài đặt hoàn chỉnh của scheduler. Chẳng hạn như việc định nghĩa danh sách các task (id, priority, deadline...), tổ chức bộ nhớ để lưu context và truy xuất stack của thanh ghi PC để thoát khỏi ISR.

    Leave a comment:


  • h11540
    replied
    Nguyên văn bởi Ari@132 Xem bài viết
    sách về hệ điều hành thì mình đã đọc qua rồi, thường chỉ nêu lên nguyên lý và một số đoạn code mẫu thôi chứ ko có code của một hệ hoàn chỉnh
    thực sự nó quá khó sao ,ai có thể chỉ cho mình cơ chế hoạt động thế nào không ??

    Leave a comment:


  • Ari@132
    replied
    Nguyên văn bởi dtcn_112 Xem bài viết
    trong phần mềm Keil C hay ridekit51 có sẵn về lập trình hệ điều hành rtx_51tiny mình cũng chỉ đọc các ví dụ đó chưa thực sự tự viết được chương trình nào .có một cuốn sách viết về hệ điều hành cho vi điều khiển họ 8051 bạn thích sang (Ebook cho dân nghiện vi điều khiển tải về)
    sách về hệ điều hành thì mình đã đọc qua rồi, thường chỉ nêu lên nguyên lý và một số đoạn code mẫu thôi chứ ko có code của một hệ hoàn chỉnh

    Leave a 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...