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)
-   -   Lập nhóm PIC16F877A (http://www.picvietnam.com/forum/showthread.php?t=325)

namqn 06-11-2008 05:55 PM

Trích:

Nguyên văn bởi trungduc (Post 20158)
Chào qui vi,
Toi mới học PIC mấy ngày có 1 đọan chương trình giải không ra. Xin các bậc tiền bối chỉ giáo cho tại sao bấm nút mà không có tác dụng gì hết.
TITLE "TEST SWITCH PORTB"
PROCESSOR PIC16f877A
INCLUDE<P16f877A.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_ON & _CPD_OFF

;--------------------------------------------------------------------------
; Program Code
;--------------------------------------------------------------------------

ORG 0x000 ;reset vector
goto MAIN
MAIN
Start call Init ;Initialise hardware

Loop btfss PORTB,0 ;Is "ON" button pressed?
bsf PORTA,0 ; Yes - LED on
btfss PORTB,1 ;Is "OFF" button pressed?
bcf PORTA,0 ; Yes - LED off
goto Loop ;



;--------------------------------------------------------------------------
; Subroutines
;--------------------------------------------------------------------------

;*****Init - set up all ports, make unused ports outputs

Init clrf PORTA ;all of porta low
clrf PORTB ;all of portb low

bsf STATUS, RP0 ;change to bank1
movlw b'00000000' ;all outputs except
movwf TRISA ;
; movlw b'11111111' ;all inputs
; movwf TRISB ;
bcf STATUS, RP0 ;back to bank0

return

END ;Stop assembling here

Một chương trình cụ thể được viết cho một thiết kế phần cứng cụ thể. Phần cứng của bạn ra sao? Bạn thử nghiệm chương trình như thế nào mà kết luận rằng bấm nút không có tác dụng?

Thân,

trungduc 03-12-2008 11:03 AM

Thanks namqn, lâu quá mới quay lại chổ này. Vì vài ngày sau đó mình nhận ra là nút bấm thiếu chống rung. Đúng như dự đoán của bạn.
Nhân tiện hôm nay mình bị vướng ở chổ tra bảng, bảng dài quá và nằm ở 1 DC xa khi dùng lệnh: addwf PCL,1 để tra bảng thì nó nhảy đi chổ khác ( không phải bảng ), theo mình biết thì phải sử dụng thanh ghi PCLATH nhưng mình chưa biết cách này.
Rất mong được giúp đở.
Thanks !

namqn 05-12-2008 04:46 PM

Trích:

Nguyên văn bởi trungduc (Post 21101)
Thanks namqn, lâu quá mới quay lại chổ này. Vì vài ngày sau đó mình nhận ra là nút bấm thiếu chống rung. Đúng như dự đoán của bạn.
Nhân tiện hôm nay mình bị vướng ở chổ tra bảng, bảng dài quá và nằm ở 1 DC xa khi dùng lệnh: addwf PCL,1 để tra bảng thì nó nhảy đi chổ khác ( không phải bảng ), theo mình biết thì phải sử dụng thanh ghi PCLATH nhưng mình chưa biết cách này.
Rất mong được giúp đở.
Thanks !

Bạn tham khảo code ở đây:
http://www.piclist.com/techref/microchip/bigtable.htm

Thân,

trieutuduong 06-12-2008 01:15 AM

có bác nào có code c++ điều khiển động cơ không vậy cho em xin nhe ! cám ơn các bác trước à!

namqn 06-12-2008 02:02 AM

Trích:

Nguyên văn bởi trieutuduong (Post 21183)
có bác nào có code c++ điều khiển động cơ không vậy cho em xin nhe ! cám ơn các bác trước à!

Trước hết bạn xác định trình dịch của bạn đã. Bạn có biết cần dùng trình dịch nào để dịch code C++ cho PIC hay không?

Thân,

trieutuduong 07-12-2008 09:32 PM

có bác nào có code về điều khiển động cơ dc bằng c++ cho tớ xin nhé , cần lắm . cám ơn các bác trước

phandinh 11-02-2009 05:21 PM

cho em hỏi trong bài đếm ngắt ngoài chân RB0 của bác nhh có lệnh:
INCF COUNT,F
Vậy lệnh này có giống như lệnh : INCF COUNT,0 hay không
(có khi nào F---->False---->0)

namqn 11-02-2009 05:57 PM

Trích:

Nguyên văn bởi phandinh (Post 22524)
cho em hỏi trong bài đếm ngắt ngoài chân RB0 của bác nhh có lệnh:
INCF COUNT,F
Vậy lệnh này có giống như lệnh : INCF COUNT,0 hay không
(có khi nào F---->False---->0)

Không giống đâu bạn, với các lệnh thao tác trên thanh ghi, F (= 1) ở phần destination có nghĩa là đích đến của kết quả là thanh ghi toán hạng đó, còn W (= 0) ở phần destination có nghĩa là đích đến của kết quả là W.

Với lệnh INCF COUNT, F (tương đương với INCF COUNT, 1), kết quả của lệnh tăng giá trị trong thanh ghi COUNT sẽ được lưu trở lại thanh ghi COUNT.

Thân,

phandinh 11-02-2009 11:06 PM

Thanks bác nhiều nha. Em hiểu rồi.
À nếu bác rảnh thì xem dùm bài bên luồng " pic từ dễ tới khó " hộ em

ITfire 12-02-2009 12:53 PM

Cái này hay à ngen...
 
các bro giúp mình tính cái PWM Period=[(PR2+1)]*4*Tosc *TMR2 prescale. Và tương tự với cái PWM duty cycle=... luôn ngen (mình đang làm PÍC6F877A với CCS v 4.065).Thanks

electronic 14-03-2009 04:05 AM

Em mới học Pic16F877A. Các anh trên diễn chỉ em với. Hiện em đang tìm hiểu về led ma trận viết bằng CCS. Em làm mạch dùng 1 led ma trận 8x8, 2 con 74125 kết nối với cột và 2 con 74126 kết nối với hàng. Mạch em đính kèm như sau.
http://www.mediafire.com/file/lfeaje...LEDMATRAN1.DBK

Nhưng khi test thử code xem cả con có nhấp nháy không thì lại chẳng thấy gì.
Code:

------------------------------------------
#include <16F877A.h>
#fuses  HS,NOWDT,NOPROTECT,NOLVP
#device  *=16, ADC=8              // viet them ADC sau
#use    delay(clock=12000000)

void main()
{ set_tris_B(255);
  set_tris_C(255);
  while(1)
  {output_C(255);
  output_B(0);
  delay_ms(250);
  output_C(0);
  output_B(255);
  delay_ms(250);
  }
}
-------------------------------

Mong các anh chỉ giúp. Em còn gà lắm. Các anh có thể cho em 1 bài mẫu tham khảo về cách hiển thị trên led ma trận này được không? Rất cám ơn các anh.

namqn 14-03-2009 04:44 AM

Bạn nên chụp màn hình và lưu lại thành dạng tập tin ảnh .jpg hay .gif. Không phải ai cũng dùng cùng phần mềm vẽ mạch với bạn đâu. Hơn nữa, phải vào một host lưu trữ nào đó để download sơ đồ mạch của bạn cũng khiến người khác cảm thấy ngại.

Thân,

electronic 14-03-2009 11:47 AM

Giúp em với
 
1 Attachment(s)
Đây là sơ đồ mạch kết nối. Các anh xem lại dùm em với, em còn gà lắm. Các anh có thể cho em 1 bài mẫu tham khảo về cách hiển thị trên led ma trận này viết bằng CCS được không ạ? Cảm ơn các anh rất nhiều.

zero07a 05-11-2009 01:22 PM

mấy anh ơi cho em hỏi là khi e down xong mấy đoạn code CCS về. xong khi em mở ra rồi chạy chương trình thì cứ thấy báo lỗi chỗ mấy dòng #include. hic em đang hoc ASM mà tài liệu trên mạng toàn là CCS. em định xem mã ASM từ code đấy mà chuyển đổi ko thành công. vậy lý do là vì sao ạ. anh nào giúp em với nhen.cảm ơn nhiều.

lexuantien 06-11-2009 02:05 PM

Bạn coi lại là phải khai báo con VDK chưa ,mình từng gặp trường hợp như bạn đó . Sau đó khai báo loại con chíp mình dùng là good ah.


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

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