PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Cho em hỏi cai này - FAQ (http://www.picvietnam.com/forum/showthread.php?t=374)

mgdaubo 09-07-2007 09:16 PM

sau 2 tuần mò mẫm em cũng làm được rồi, lỗi là do đoạn code trong ngắt để đảo trạng thái led bị sai

xhieu1908 31-05-2009 10:53 PM

mình đang có mạch nạp PG5V2, mạch thì mình tự làm, nạp bằng winpic, nạp bình thường, nhưng mình muốn hỏi là mình có thể giữ dữ liệu trong EEPROM trong quá trình nạp không?

halfblood88 26-11-2009 10:55 AM

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 26-11-2009 08:36 PM

Các bậc tièn bối đâu hết rồi.Sao ko ai trả lời vấn đề của mình vậy.Mình hỏi thêm cái này
-khi mnihf thử mô phỏng con 16f877a bằng proteus mình "build all" cái code đưa vào thì nó báo lỗi not found dem.lst .file lst đó là gì vậy/Làm sao sửa lỗi này.

bien_van_khat 26-11-2009 10:36 PM

Trích:

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

halfblood88 29-11-2009 01:18 AM

cái này lấy từ file hướng dẫn học pic từ dễ tới khó trong 4rum này của tác giả Nguyễn Trung Chính soạn ra.

tranphong2 26-12-2009 07:38 PM

Trích:

Nguyên văn bởi halfblood88 (Post 31673)
Các bậc tièn bối đâu hết rồi.Sao ko ai trả lời vấn đề của mình vậy.Mình hỏi thêm cái này
-khi mnihf thử mô phỏng con 16f877a bằng proteus mình "build all" cái code đưa vào thì nó báo lỗi not found dem.lst .file lst đó là gì vậy/Làm sao sửa lỗi này.

Lỗi này do đường dẫn đến file biên dịch của bạn có dấu cách (tên folder có dấu cách) chỉ cần sửa tên folder lại là biên dịch được

Chúc thành công

dTw 23-08-2010 11:20 PM

Các anh cho em hỏi? Em mới bắt đầu tìm hiểu PIC, lúc trước em đã dùng qua AVR nên có 1 số thắc mắc sau:
1. Em đọc datasheet của PIC16F887 thấy 1 số chân I/O của PIC có weak pull-up, vậy mình có thể chỉnh hướng chân đó là input rồi đặt nó ở mức cao như điện trở trong kéo lên của AVR không?
2. Khi dùng chức năng ADC, mình mắc điện áp tham chiếu như thế nào vì em thấy có tới 2 chân là VREF+ và VREF-?

qiang412 24-08-2010 03:36 PM

help me....................
 
cho em hỏi cái nha:
1: em tạo ra một file defs_f877A trong ccs nhưng khi save nó không cho phép tạo ra file *.h mà chỉ tạo được file *.c thui, vậy khi em thực hiện #include <defs_f877A.c> thì có được không (em build thì thấy không bị lỗi nhưng cũng chưa hiểu nên không an tâm). bác nào chỉ em cái?
2: em sử dụng timer0 để thực hiện định thời, muốn nó không đếm nữa thì phải làm thế nào?
3: em sử dụng ccs c 4.069 để viết chương trình, khi build (hình như dùng keyfilegen_file di cùng bản cài ) thi thấy thông báo tạo ra được file *.hex, nhưng em vào folder lưu bài làm thì không thấy, dùng proteus để mô phỏng, em thử nhập file c souser vào thì được nhưng chạy chương trình thấy bị lỗi, vậy lỗi của em là do đâu? các bác giúp em giải quyết với.
thanks!

nickyshadow 08-07-2012 04:20 PM

Cho mình hỏi, mình thực hành trên kit của phòng thí nghiệm, kit dùng loại MCU card 80 chân, trên có con 18f8520, vậy cái loại pic như vậy có thể mua ở đâu đc, tại em sợ là chẳng may mình làm cái gì đó nó có thể bị hư, mà ko biết giá cả là bao nhiêu, em google nhưng chưa thấy ai rao hết

duongtieng 20-07-2015 12:51 AM

Trích:

Nguyên văn bởi thanhkyanh (Post 5793)
em dang loay hoay về timer ,đọc trong data sheet mà không hiểu gì cả

mình cũng có thắc mắc giống bạn

phongthuy113 27-10-2015 04:47 PM

Cảm ơn bạn đã chia sẻ thông tin mình đang cần tìm
______________________________________
http://phongthuyviet.info/
Vòng tay đá phong thủy , Vòng tay phong thủy , Đá phong thủy , Trang sức phong thuỷ
Vòng tay phong thủy


Múi giờ GMT. Hiện tại là 05:42 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