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)

le.nhatcuong 22-12-2007 12:07 AM

ngắt ngoài RB0!!!!!
 
Trích:

Nguyên văn bởi le.nhatcuong (Post 13472)
xin các bác chỉ giup mình lập trình C ngắt ngoài "External interrupt" cua 16F877A
minh dang lam luan van tot nghiep, dung PIC de tinh CosY (cốt phi) cua mang dien ha the bang cách đo độ rộng xung vuông
Xin chân thành cảm ơn

help me!!!

nhh 22-12-2007 10:31 AM

Trích:

Nguyên văn bởi le.nhatcuong (Post 13472)
xin các bác chỉ giup mình lập trình C ngắt ngoài "External interrupt" cua 16F877A
minh dang lam luan van tot nghiep, dung PIC de tinh CosY (cốt phi) cua mang dien ha the bang cách đo độ rộng xung vuông
Xin chân thành cảm ơn

Nếu bạn dùng CCS C: http://www.picvietnam.com/forum//sho...p?t=357&page=2

dovanhiep 22-12-2007 07:32 PM

moi người giúp em với!
 
Mình đang làm luận văn!
Thầy giáo yêu cầu tìm hiểu về cách làm việc của họ vi điều khiển PIC6F8.
Mọi người biết tài liệu nào về Pic thì giúp mình với nha!.
Thanksss!

namqn 22-12-2007 11:25 PM

Trích:

Nguyên văn bởi dovanhiep (Post 13490)
Mình đang làm luận văn!
Thầy giáo yêu cầu tìm hiểu về cách làm việc của họ vi điều khiển PIC6F8.
Mọi người biết tài liệu nào về Pic thì giúp mình với nha!.
Thanksss!

Theo tôi được biết thì không có họ vi điều khiển nào là PIC6F8 cả. Nếu bạn muốn tìm hiểu về một vi điều khiển nào đó của Microchip thì có thể vào website của Microchip (www.microchip.com), gõ vào hộp tìm kiếm của họ tên của vi điều khiển đó, bạn sẽ có một danh sách các tài liệu liên quan đến nó.

Thân,

dovanhiep 26-12-2007 05:01 PM

Cam on anh!
 
Trích:

Nguyên văn bởi namqn (Post 13495)
Theo tôi được biết thì không có họ vi điều khiển nào là PIC6F8 cả. Nếu bạn muốn tìm hiểu về một vi điều khiển nào đó của Microchip thì có thể vào website của Microchip (www.microchip.com), gõ vào hộp tìm kiếm của họ tên của vi điều khiển đó, bạn sẽ có một danh sách các tài liệu liên quan đến nó.

Thân,

Em hom do viet nham! Em muon noi la ho vi dieu khien Pic16F877a.
Neu anh co tai lieu nao lien quan thi gui cho em nha!.
Hi vong se duoc anh giup do sau nay!

tity 26-12-2007 07:44 PM

Em chào cả gia đình PIC!!!
các bác cho em hỏi một ý về cách hay là thuật toán để nạp vào một bộ nhớ (loại nào đó mà khi mất nguồn dữ liệu không bị mất)!!! Em cũng đã tìm hiểu khá kỹ về con 8051 và bây giờ muốn khám xét con PIC mà cụ thể là 16F877A chẳng hạn. Em có một ý thế này mong được các bác góp ý cũng như chỉ dạy:" Có thể dùng vi điều khiển để điều khiển nạp cho bộ nhớ như trên được không? dữ liệu nạp vào bộ nhớ sẽ được lấy từ con vi điều khiển chứ không phải là trên máy tính nữa". Vấn đề cơ bản ở đây là phải biết cách để nạp cho bộ nhớ cơ!!!
Mong nhận được sự chỉ giáo tận tình từ các bác!!!
Em chân thành cảm ơn!

minoan 21-02-2008 10:25 AM

Cho hỏi 1 chút nhé:
1. Trong PIC 16f877a chỉ có vector ngat 0x004. Vậy nếu ta muốn sử dụng nhiều ngắt trong chương trình thì chẳng lẽ lại là:
; Sử dụng MPLAB
;....
org 0x00
goto main
org 0x04
goto ISR
org 0X05
goto main
...
ISR:
bsf ngat_Timer0 ;kiem tra co bao ngat T0
goto Timer0
bsf ngat_I2C ;kiem tra co bao ngat I2C
goto I2C
bsf ngat_USART
goto USART
retfie

Timer0
return

I2C
return

USART
return

main

end
2. Trên hình vẽ
http://i84.photobucket.com/albums/k3...ed22222222.jpg
http://i84.photobucket.com/albums/k3...itled11111.jpg
Bộ nhớ chương trình là 368byte, tại sao có tận 4bank, nếu tính thế thì phải là 512byte chứ?

falleaf 21-02-2008 10:41 AM

http://www.picvietnam.com/forum//showthread.php?t=5

Bạn đọc kỹ bài viết này, có 2 bài về ngắt, bài #9 và #10.

Trích:

Như lần trước đã giới thiệu, vectơ ngắt của PIC nằm ở vị trí 0x0004 các bạn xem lại hình sau:

Khác với khi bạn bị té ruộng, bạn té xuống ngay tại chỗ bạn bị húc, đối với vi điều khiển, khi xảy ra interrupt, nó sẽ nhảy về một địa chỉ cố định, và thực hiện công việc tại đó. Sau khi thực hiện xong, nó sẽ quay trở về vị trí mà từ đó nó đã thoát ra. Vị trí cố định mà nó sẽ nhảy về khi xảy ra ngắt là vị trí 0x0004.
Mọi ngắt đều quay về một vị trí (đối với PIC), khi muốn xử lý nhiều ngắt thì tại vị trí 0x0004 phải có đoạn vào ngắt, sau đó kiểm tra xem ngắt nào xảy ra. Rồi xử lý ngắt đó. Sau khi xử lý xong thì thoát khỏi ngắt.

Chúc vui

minoan 21-02-2008 02:17 PM

Cám ơn anh falleaf. Nhưng còn 1 câu hỏi nữa là data memory 368byte. Tại sao trong hình lại có tới 4 bank. Nếu như trong hình thì data memory phải là 4x128=512byte chứ?

Jerry 21-02-2008 03:29 PM

Trong 4 bank (mỗi bank 128 byte) đó có những byte sử dụng làm thanh ghi chức năng đặc biệt, không thể dùng giống như RAM (ví dụ thanh ghi STATUS, INTCON...). Chỉ còn có 368 byte là có thể sử dụng làm RAM thôi. Các byte RAM này có địa chỉ là
Code:

Bank 0: 20h đến 7Fh
Bank1: A0h đến FFh
Bank2: 110h đến 17Fh
Bank3: 190 đến 1FFh


PICKGOOD 01-07-2008 03:33 PM

MikroPascal là một phần mềm của hãng mikroElektronika sử dụng ngôn ngữ Pascal để viết chương trình cho PIC.
Địa chỉ: http://www.mikroe.com/en/compilers/mikropascal/pic/

Hướng dẫn sử dụng (Tiếng Anh):
http://www.elektroda.net/download/09...cal_manual.pdf

Tải phần mềm MikroPascal phiên bản V3.0.0.4 (có patch) tại địa chỉ:
http://www.picvietnam.com/forum//showthread.php?t=403

tallht 20-08-2008 02:31 PM

Adc!!!
 
1 Attachment(s)
Mình vừa làm xong adc bằng mplab,pót lên cho bà con xem
khi rảnh mình sẽ có 1 bài viết rõ hơn về vấn đề này! Mong bà con ủng hộ!

picpen 20-08-2008 04:18 PM

Ổn định tín hiệu vào ADC pic6f877a
 
Mình dùng 5 chân cổng chuyển đổi ADC của cổng Ra cho 5 tín hiệu cảm biến khác nhau.Nhưng trong thực tế thì khi một trong 5 tín hiệu đó có đầu vào biến đổi thì 4 đầu vào còn lại cũng bị ảnh hưởng theo ít nhiều. nói tóm lại là các tín hiệu ở các chân có ảnh hưởng lẫn nhau .Mình ko rõ nguyên nhân vì sao ? có thể là do nguồn vào ko ổn định chăng ? nếu mình lắp vào mỗi chân tín hiệu 1 tụ lá 102,103.... thì có giảm ảnh hưởng giữa các chân ín hiệu ko?
Làm thế nào để có một nguồn chuẩn và ổn định cho các tín hiệu ADC .vì các chân chuyển đổi ADC rất nhạy với sự thay đổi điện áp .......

*********** Thank *************

lam_ntd 09-10-2008 04:58 PM

chào các bác em mới nghiên cưc pic 16f877a em thay luông lep trinh led 7 thanh hay quá. Bac nao co chương trinh lap trinh cho nhieu led 7 thnh dung nut bam không co thể cho em xin 1 bản.
Em xin cam on cac bac.
Đia chi email cua em:hai_kcd@yahoo.com

trungduc 06-11-2008 02:30 PM

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