đa nhiệm trong sách có ví dụ về nháy led rồi đấy thôi.. -_-
Thông báo
Collapse
No announcement yet.
8051 hạn chế công nghệ hay trình độ lập trình ?
Collapse
X
-
Cái này mình cũng đóng góp theo ý hiểu của mình. Muốn làm đa nhiệm thì phải có scheduler (ko còn delay nữa). Scheduler có thể fix chẳng hạn như chu kì của Scheduler là 100 đơn vị thời gian do ngắt timer đảm nhận. Sẽ có một biến đếm đc reset ở 100. Khi biến đếm = 0 thì đọc cổng (hoặc cứ 10 lần đếm thì đọc phím một lần), biến đếm = n thì dịch led. Bạn có thể tùy chỉnh khoảng thời gian cho phù hợp yêu cầu. Như vậy là 2 việc dc làm theo lịch trình đc tính toán trước. Nếu task dài và phức tạp, có thể phải cắt ra nhiều phần. Lúc này thì cần có stack để lưu trạng thái của chuơng trình trước khi chuyển context.Nguyên văn bởi h11540 Xem bài viếtbá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á :
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 ????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
Vấn đề khó ở đây là nếu làm như bt, cả 2 task ở trên đều đc cài đặt bên trong ISR. Như vậy rất bất tiện khi quá trình xử lý dài và không thể làm preemption. Theo như mình hiểu thì để giải quyết vấn đề trên, người ta ko lập trình task trong ISR. Bên trong ISR sẽ push vào stack của PC địa chỉ của task rồi return. Việc này khá nguy hiểm vì nếu có lỗi lập trình là chuơng trình tiêu ngay tuy nhiên con trỏ chuơng trình nhảy vào task khi thoát khỏi ISR. Cuối của task sẽ pop vào PC chuơng trình trước khi ngắt.
Hi vọng là mình ko viết sai điều gì. Nếu có gì sai sót mong mọi người sửa giúp
Comment
-
Bác có source code của rtx_51 ko? Em muốn đọc để xem thực tế họ làm thế nàoNguyên văn bởi dtcn_112 Xem bài viếtnghe 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
-
ai kia bên dien đàn banlinhkien dịch cái chương trình Keil C còn chưa xong, rồi ráp cái mạch y chang người ta mà vẫn ko làm đc ? đã vậy còn la ó mua linh kiện sao ko viết dùm code ? vậy là do đâu ? trình độ hay là công nghệ của chip ?Nguyên văn bởi h11540 Xem bài viếtlạ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
Comment
-
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ề)Nguyên văn bởi Ari@132 Xem bài viếtBác có source code của rtx_51 ko? Em muốn đọc để xem thực tế họ làm thế nào
Comment
-
lại thêm 1 người nữa thừa hơi dỗi việc,2 bạn làm ơn suy nghĩ 1 tý có được không hay để tôi phải giải thích nữa,hồi nhỏ không được ăn nhiều muối i ốt akNguyên văn bởi dt3k4 Xem bài viếtkhông bênh vực ai vungtau88 hay h11540. nhưng câu hỏi bên h11540 thì đã thể hiện rõ đó là trình độ lập trình còn non, khà khà.
-nhiệm vụ của cái tít là thu hút được người đọc và mang đại ý của bài viết,cuối tít có dấu hỏi ''?'' thấy chưa hay chưa già mà mắt đã kém,đây là 1 câu hỏi mở để nhiều người cùng trả lời,ai cũng có thể nói,hoàn toàn đây không phải là bài giảng hay công bố công trình gì cả,xin nói lại là đây là hỏi ???,bạn hiểu tiếng việt chứ ?? @@
-cái test code dịch bị lỗi là do thằng viết chứ không phải do thằng dịch,1 đồng tiền tôi có thể mua linh kiện ở bất cứ đâu nhưng ăn thua nhau ở chỗ support,hỗ trợ khách hàng có tốt hay không bạn Vungtau gì đó ak,kể cả bạn bảo tôi không biết cắm usb thì cũng chả sao vì thực sự tôi chả thèm quan tâm,nhìn chữ ký tôi thì biết,
đi viết cái chương trình khai báo thư viện còn sai,định nghĩ chân còn phải sửa,thế thì bán hàng kiểu gì,hỏi thì cái lỗi keilc không biết sửa,bán hàng ???tôi mua lọ nước mắm người ta còn nhiệt tình hơn
-riêng về trình độ thì chả nhẽ bạn không nhìn ra là tôi đang học 8051 hay sao,nó chỉ là 1 nền tảng để tiếp cận với VĐK,nó không có gì phải gọi là xấu hổ hay đáng ngại gì cả mà bạn làm câu cứ như vừa khám phá ra trái đất có nước vậy
,đến người chỉ biết sơ sơ cũng hiểu cái luồng cho 8051 là dành cho những người mới tìm hiểu VĐK,bạn biết thì bạn trả lời,không biết thì next chả ai quan tâm
-nếu bạn biết tiếng việt thì chắc bạn hiểu cái tôi cần không phải những lời vớ vẩn của bạn,mọi người chỉ dẫn trên kia tôi có phản đối tý nào đâuSỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI
Comment
-
theo mình thì dùng time 0 tạo ngắt vào khoảng thời gian rảnh của VĐK như vậy sẽ tạo được 2 tần số khác nhau tại 2 chân của VDKNguyên văn bởi dtcn_112 Xem bài viếttrong 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ỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI
Comment
-
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ỉnhNguyên văn bởi dtcn_112 Xem bài viếttrong 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ề)
Comment
-
thực sự nó quá khó sao ,ai có thể chỉ cho mình cơ chế hoạt động thế nào không ??Nguyên văn bởi Ari@132 Xem bài viếtsá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ỉnhSỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI
Comment
-
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.Nguyên văn bởi h11540 Xem bài viếtthực sự nó quá khó sao ,ai có thể chỉ cho mình cơ chế hoạt động thế nào không ??
Comment
-
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áNguyên văn bởi Ari@132 Xem bài viếtCơ 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.SỐNG THEO BẢN CHẤT,KỆ MỌI NGƯỜI NÓI GÌ THÌ NÓI
Comment
-
Đọ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.Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
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.Nguyên văn bởi h11540 Xem bài viếtthự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á
Comment
-
@ 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.
Comment
Bài viết mới nhất
Collapse
-
bởi GargiChào mọi người, tôi đang gặp một vấn đề kỹ thuật và muốn được nghe ý kiến của mọi người.
Tôi đã lắp một đĩa xích vào trục đầu ra của hộp số hành tinh bánh răng xoắn dùng cho truyền động xích. Sau vài tháng hoạt động, ổ bi đầu ra bị hỏng.
Bản thân...-
Channel: Điện tử công suất
hôm nay, 13:22 -
-
bởi vi van phamSau hàng chục năm, không biết có ai còn nghĩ gì về tôi? Riêng tôi, nhớ nhiều về dientuviet nam. net. Ngày ấy tìm 1 người bạn đam mê về điện từ khó như trúng số độc đăc. Tôi đã trúng số độc đắc khi được mời về dientuvietnam.net...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 22:43 -
-
bởi FotiniChào mọi người.
Cấu trúc khung giàn của tôi sử dụng một động cơ servo tích hợp trên mỗi trục (https://www.oyostepper.es/category-8...integrado.html), với một dây nối đất chung.
Việc kích hoạt từng trục riêng lẻ hoạt động tốt, nhưng...-
Channel: Điện tử dành cho người mới bắt đầu
18-06-2026, 14:03 -
-
Trả lời cho Cấu hình chiến game "quốc dân" cho nền tảng AM5: Lựa chọn tối ưu ngân sách với Ryzen 5 7500Fbởi kumarbrMình đồng ý với hướng build AM5 bằng 7500F, nhưng nếu có thể cố thêm ngân sách thì nên lên RX 7600 ngay từ đầu. 4GB VRAM của RX 6500 XT bắt đầu khá chật với nhiều game mới, còn RX 7600 sẽ dùng thoải mái hơn trong vài năm tới.
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 15:49 -
-
bởi theidiotcatTrong thời buổi vật giá leo thang, việc sắm một bộ máy tính chơi game đáp ứng đủ tiêu chí "ngon, bổ, rẻ" là ưu tiên hàng đầu của nhiều bạn trẻ. Lúc này, combo sử dụng vi xử lý AMD Ryzen 5 7500F kết hợp cùng card màn hình Radeon...
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 10:16 -
-
bởi theidiotcatAMD Ryzen 9 9950X3D không chỉ là một bộ vi xử lý đơn thuần; nó là lời khẳng định về sức mạnh của kiến trúc Zen 5 kết hợp cùng công nghệ 3D V-Cache đột phá. Trong bối cảnh thị trường linh kiện PC cạnh tranh khốc liệt, đây được xem...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:21 -
-
bởi theidiotcatBộ đôi Ryzen 9 9950X3D2 và Radeon RX 9070 XT 16GB là sự kết hợp phần cứng cao cấp nhất của AMD hiện nay. Đây không chỉ là một dàn máy tính để giải trí thông thường, mà là công cụ làm việc mạnh mẽ dành cho những ai có nhu cầu xử lý cường...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:09 -

Comment