PDA

View Full Version : Proteus mô phỏng sai??


kyo
15-11-2008, 12:54 AM
Mình viết một chương trình đơn giản để điều khiển 2 led gắn vào portb. Đầu tiên led 1 sáng trong 2 ms rồi tắt, led2 sáng trong 2 ms rồi tắt. Theo mình nghĩ thì mắt người vẫn chỉ thấy 2 led sáng liên tục. Nhưng mô phỏng trong Proteus thì chỉ thấy 2 led nhấp nháp liên tục. Có phải Proteus mô phỏng sai??

namqn
15-11-2008, 02:14 AM
Mình viết một chương trình đơn giản để điều khiển 2 led gắn vào portb. Đầu tiên led 1 sáng trong 2 ms rồi tắt, led2 sáng trong 2 ms rồi tắt. Theo mình nghĩ thì mắt người vẫn chỉ thấy 2 led sáng liên tục. Nhưng mô phỏng trong Proteus thì chỉ thấy 2 led nhấp nháp liên tục. Có phải Proteus mô phỏng sai??
Trong 1 giây theo đồng hồ của bạn thì Proteus mô phỏng được bao nhiêu giây thời gian chạy của chương trình trên vi điều khiển. Nếu câu trả lời của bạn là vài chục ms thời gian chạy của chương trình trên vi điều khiển thì rõ ràng bạn phải thấy LED nhấp nháy.

Proteus không được thiết kế cho mục đích này.

Thân,

kyo
15-11-2008, 07:42 AM
Anh Nam à, em chưa hiểu những gì anh nói, anh có thể nói rõ hơn được không. Em cảm ơn anh nhiều.

hopeman
15-11-2008, 10:30 AM
bản thân hệ điều hành Windows không phải là hệ điều hành realtime (thời gian thực) mà lại còn phải chạy qua proteus thì lại càng không thể real time được đâu bạn ạ, đáp ứng ở cấp độ 2ms là điều gần như không thể, theo mình là như vậy.

lequocbao
15-11-2008, 10:48 AM
Bạn quan sát phía dưới chương trình đang hiển thị thời gian xử lý là s hay us?

anh_gioi
16-11-2008, 01:14 AM
khi mô phỏng trên máy tính thì thời gian không thể chính xác được, nó chỉ kiểm tra chương trình của bạn chạy đúng hay sai thôi. nếu bạn muốn chính xác, sao ko làm thử 1 mạch thật nhỉ?

kyo
16-11-2008, 09:53 AM
Bạn quan sát phía dưới chương trình đang hiển thị thời gian xử lý là s hay us?

Mình thấy nó đang hiển thị thời gian xử lý là s. Thế thì sao hả bạn?

lequocbao
17-11-2008, 11:32 AM
Có phải chương trình hiển thị thời gian đang thực thi là 0.000....s đúng không bạn?
Mình nhớ có 1 lần mình mô phỏng một con 89c51 điều khiển led sáng tắt nhưng mình khai báo thời gian trì hoãn sai(do vô tình thôi hì hì) nên thời gian thực thi việc sáng tắt các đèn led chỉ diễn ra trong vài ms nhưng mình vẫn thấy các đèn led chớp tắt và khi đó mình quan sát thấy thời gian thực thi của protues diễn ra rất nhỏ(có nghĩa là thời gian vẫn tăng lên nhưng ở hàng 0,000...s).Và khi kiểm tra lại chương trình viết thì mình nhận thấy là tất cả các yêu cầu lệnh của mình chỉ diễn ra trong thời gian cực kỳ nhỏ (ms)(tất nhiên là phải có vòng lặp vô tận nha bạn!)
Nên mình tạm kết luận là nếu tất cả các lệnh trong chương trình mình viết mà diễn ra trong thời gian ngắn thì protues tự động cho chạy với thời gian tương ứng.Giống như dao động ký khi mình chọn Time/div tương ứng vậy ấy mà!Không biết có đúng không nữa,pác nào có ý kiến gì thì góp ý thêm nha!

chauphong
15-06-2017, 09:29 AM
Thanks bạn