PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Thực hành (http://www.picvietnam.com/forum/forumdisplay.php?f=20)
-   -   Proteus mô phỏng sai?? (http://www.picvietnam.com/forum/showthread.php?t=3111)

kyo 15-11-2008 12:54 AM

Proteus mô phỏng sai??
 
1 Attachment(s)
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

Trích:

Nguyên văn bởi kyo (Post 20419)
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

Trích:

Nguyên văn bởi lequocbao (Post 20429)
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


Múi giờ GMT. Hiện tại là 10:32 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam