PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 06-11-2006, 06:56 PM   #1
hanspkt
Đệ tử 3 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 55
:
Anh cho em hỏi cái này
nếu nạp bằng chuẩn ICSP mà không rút dây ra để lâu liệu nó có hư không, vì em nghĩ nó nạp giống như họ AT89SXX.
cám ơn nhiều
hanspkt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-11-2006, 07:14 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi hanspkt View Post
Anh cho em hỏi cái này
nếu nạp bằng chuẩn ICSP mà không rút dây ra để lâu liệu nó có hư không, vì em nghĩ nó nạp giống như họ AT89SXX.
cám ơn nhiều
Tùy vào thiết kế của mạch nạp và mạch đích. Lâu là bao lâu? Bạn để lâu nhưng có chạy chương trình của mạch đích không, hay chỉ muốn để đó một khoảng thời gian nào đó, ví dụ giữa hai lần nạp chương trình.

Nếu đầu nối thiết kế tốt thì việc tháo ra lắp vào đâu có ảnh hưởng gì nhiều, không hiểu bạn muốn để lâu vì mục đích gì.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-11-2009, 10:55 AM   #3
halfblood88
Nhập môn đệ tử
 
Tham gia ngày: Nov 2009
Bài gửi: 3
:
Code:
  MOVLW  d’20’                       ; đưa giá trị  20 vào thanh ghi W 
  MOVWF            delay‐reg       ; delay‐reg <‐ 20 
loop  
  DECFSZ             delay‐reg,0   ; giảm giá trị trong thanh ghi delay‐reg 
                                            ; và so sánh với 0, kết quả chứa trong W
 GOTO                loop             ; nếu giá tri thanh ghi “delay_reg” khác 0 
                                            ; thì nhảy tới label “loop”
Trong bài hướng dẫn này thì tác giả có nói là thanh ghi delay_reg sẽ giảm 20+1 lần.Ứng với giá trị ban đầu của delay_reg bằng N thì sẽ giảm N+1 lần.Nhưng mình thử phân tích thì thấy thế này:
-Giả sử ban đầu nạp vào thanh ghi delay_reg giá trị là 2.Loop lần 1 sẽ giảm thanh ghi delay_reg xuống còn 1 so sánh rồi thực hiện lệnh goto.Loop lần 2 sẽ giảm thanh ghi delay_reg xuống còn 0 so sánh thì nhảy cách.Như vậy chẳng phải chỉ có 2 lần giảm thanh ghi.Trong khi trong bài hướng dẫn tác giả lại nói là N+1 tức ở đây là 3 lần
-Và như mình thấy ở trên lần giảm thanh ghi cuối cùng tức từ 1->0 thì lệnh goto loop ko được thực hiện vậy sao khi tính thời gian thực hiện lại là 3x(N+1).Có phải lúc đó lệnh Goto loop được thay bởi lệnh nop (1 chu kỳ) + decfsz lần cuối ( 2 chu kỳ) nên được gộp chung vào ko
halfblood88 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-11-2009, 10:36 PM   #4
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi halfblood88 View Post
Code:
  MOVLW  d’20’                       ; đưa giá trị  20 vào thanh ghi W 
  MOVWF            delay‐reg       ; delay‐reg <‐ 20 
loop  
  DECFSZ             delay‐reg,0   ; giảm giá trị trong thanh ghi delay‐reg 
                                            ; và so sánh với 0, kết quả chứa trong W
 GOTO                loop             ; nếu giá tri thanh ghi “delay_reg” khác 0 
                                            ; thì nhảy tới label “loop”
Trong bài hướng dẫn này thì tác giả có nói là thanh ghi delay_reg sẽ giảm 20+1 lần.Ứng với giá trị ban đầu của delay_reg bằng N thì sẽ giảm N+1 lần.Nhưng mình thử phân tích thì thấy thế này:
-Giả sử ban đầu nạp vào thanh ghi delay_reg giá trị là 2.Loop lần 1 sẽ giảm thanh ghi delay_reg xuống còn 1 so sánh rồi thực hiện lệnh goto.Loop lần 2 sẽ giảm thanh ghi delay_reg xuống còn 0 so sánh thì nhảy cách.Như vậy chẳng phải chỉ có 2 lần giảm thanh ghi.Trong khi trong bài hướng dẫn tác giả lại nói là N+1 tức ở đây là 3 lần
Bạn phân tích đúng, ko rõ đoạn code ví dụ bạn lấy từ đâu
Trích:
-Và như mình thấy ở trên lần giảm thanh ghi cuối cùng tức từ 1->0 thì lệnh goto loop ko được thực hiện vậy sao khi tính thời gian thực hiện lại là 3x(N+1).Có phải lúc đó lệnh Goto loop được thay bởi lệnh nop (1 chu kỳ) + decfsz lần cuối ( 2 chu kỳ) nên được gộp chung vào ko
Lệnh decfsz ở lần cuối cùng sẽ mất 2 chu kỳ máy, 1 chu kỳ để thực hiện thao tác trừ 1, 1 chu kỳ trễ do thay đổi thanh ghi PC (bỏ qua lệnh goto). Do đó công thức tính chính xác là 3N + 2
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam