![]() |
|
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Sep 2007
Bài gửi: 4
: |
Câu lệnh #use fast_io(b) để dùng cho việc thực thi các lệnh vào ra trên PortB
Ví dụ như câu lệnh set_tris_b(0b11110000); muốn thực thi được thì phải khai báo như trên trước. |
![]() |
![]() |
![]() |
#2 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 7
: |
giúp em cái này
em có đoạn code chương trình dùng ngắt ngoài trên RB0 đếm số lần cái button được nhấn xuống, hiển thị lên led 7 đoạn (common cathode).Nếu số lần nhấn vượt quá 9, chương trình sẽ quay về hiển thị lên led từ sô1 nhu sau:
Code:
#include <16F877A.h> #fuses NOWDT,PUT,XT,NOPROTECT #use delay(clock=4000000) #use fast_io(b) #use fast_io(d) #byte portb=0x06 #byte portd=0x08 const unsigned char digital[]={0b00000110, 0b01011011, 0b01001111, 0b01100110,\ 0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111}; // ma hoa digital duoi dang mang // Chuong trinh ngat #int_ext void ngat_RB0() { int i; if(i<9) { portd=digital[i]; ++i; } if(i==9) { i=0; } } // Chuong trinh chinh main() { set_tris_b(0b00000001); set_tris_d(0); enable_interrupts(global); enable_interrupts(int_ext); ext_int_edge(H_to_L); portd=0b00111111; while(true) { } thay đổi nội dung bởi: namqn, 10-04-2009 lúc 12:29 AM. Lý do: định dạng code |
![]() |
![]() |
![]() |
#3 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
![]() |
![]() |
![]() |
#4 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 7
: |
![]() mấy bác giải thích dùm
|
![]() |
![]() |
![]() |
#5 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 7
: |
hehe, em hieu vi sao roi,thank các bác nhiu
|
![]() |
![]() |
![]() |
#6 |
Đệ tử 1 túi
Tham gia ngày: Dec 2005
Bài gửi: 20
: |
minh up lại hai phiên bản cho css 74 va 84 bạn nào không tải được pm vn2005_00@yahoo.com mình send cho ok mọi người lưu y trình bẻ khóa tụi nó toan gắn mã đôc trước khi cài đặt nên tắt kết nôi với mạng ,sau khi bẻ khóa ok quét virut 1 lần ok rui mới cho kết nối nhé
http://rapidshare.com/files/12706092...WHD_v4.074.rar http://rapidshare.com/files/222279847/CCS4.083.rar |
![]() |
![]() |
![]() |
#7 |
Đệ tử 2 túi
Tham gia ngày: Oct 2007
Bài gửi: 42
: |
các bác cho em hỏi làm cách nào để biết được chiều dài của một chuỗi số nguyên 16bit, em khai bao int16 dist[] = {675,786,789,567].nhưng hàm strlen() chỉ trả về giá trị 1, do nó làm việc với chuỗi 8 bit.Mong các bác chỉ giúp em.
|
![]() |
![]() |
![]() |
#8 | |
Trưởng lão PIC bang
|
Trích:
Bạn nên cho biết mục đích cụ thể, từ đó người khác sẽ có thể góp ý cho bạn cách xây dựng kiểu dữ liệu phù hợp với mục đích cụ thể đó. 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 |
|
![]() |
![]() |
![]() |
#9 |
Đệ tử 2 túi
Tham gia ngày: Oct 2007
Bài gửi: 42
: |
em muốn gửi 10 giá trị int16 lên PC. Muốn đưa 10 giá trị đó vào 1 chuoi đê viết chương trình cho gọn, không phải viết từng dòng để gửi lên PC mà chỉ cần dùng vòng lặp. Rõ ràng vấn đề không có gì khi em biết mảng đó có 10 giá trị, nhưng trong trường hợp chúng ta không biết mảng đó có bao nhiêu giá trị thì làm thế nào? Em cũng biết là hàm strlen() không trả về giá trị chiều dài trong trường hợp này. Không biết có cách nào xác định chiều dài mảng này không?
|
![]() |
![]() |
![]() |
#10 |
Đệ tử 1 túi
|
bac F ơi! có thời gian trả lời giúp em với
|
![]() |
![]() |
![]() |
#11 |
Đệ tử 5 túi
|
Bạn này hỏi gì thế nhỉ? mà ko thấy câu hỏi gì hết?
__________________
Bảng ledsigns chất lượng cao... http://www.ledviet.info - manhha2700@yahoo.com Đt:0949299699 |
![]() |
![]() |
![]() |
#12 |
Đệ tử 1 túi
Tham gia ngày: Apr 2009
Bài gửi: 18
: |
Em tra datasheet của PIC16F877A để tìm hiểu module SPI và xem cả example trong CCS nữa nhưng khi thử trên bo cắm với 5 con 595 thì 40 con LED sáng loạn cả lên. Liệu em có dùng sai hay không? Bác nào dùng SPI cứng của PIC ko chỉ cho em với?
Code:
#include <16F877A.h> #device *=16 ADC=8 #fuses NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP #use delay(clock=4000000) #use fast_io(b) #byte portb=0x6 #bit SCL = portb.0 void latch_data() { SCL=0; SCL=1; } main() { byte i; set_tris_b(0); setup_spi(SPI_MASTER | SPI_H_TO_L | SPI_CLK_DIV_16); // tham kha?o Help SCL=1; while (true) { for (i=1; i<=5; ++i) {spi_write(0xAA);} latch_data(); delay_ms(1000); for (i=1; i<=5; ++i) {spi_write(0x55);} latch_data(); delay_ms(1000); } } Theo như datasheet thì em dùng chân RC5 của PIC16F877A để xuất data ra chân 14 của con 595 đầu tiên, chân RC3 làm chân clock (SCK), chân RB0 chọn để chốt. Em xin cám ơn! |
![]() |
![]() |
![]() |
#13 | |
Nhập môn đệ tử
Tham gia ngày: Apr 2008
Bài gửi: 3
: |
Trích:
các bạn cho mình hỏi là câu lệnh: #device *=16 ADC=8 #byte portb=0x6 có nghĩa gì vậy cho em mình hỏi thêm là làm sao mình mới có thể dùng lệnh các lệnh như trisb, portb, latb,... hay một số thanh ghi như ifs1, iec0,... Cám ơn các bạn nhiều |
|
![]() |
![]() |
![]() |
#14 |
Đệ tử 5 túi
Tham gia ngày: Jun 2008
Bài gửi: 112
: |
Code:
for (i=1; i<=5; ++i) {spi_write(0xAA);} latch_data(); delay_ms(1000); với SPI tôi đã làm rồi , cái giao tiếp này của pic rất rễ nhiễu và bị sai khi bạn dùng cáp để để truyền dữ liệu . Chỉ cần sai 1 bít là tất cả khối dữ liệu sau đó bị sai hết Bạn nên chú ý với 2 dây dữ liệu và dây clock . phải đảm bảo mấy dây đó phải an toàn ko xảy ra lỗi ...... đó là do cách hoạt động của SPI ko có kiểm tra chẵn lẻ cũng ko có tín hiệu ack chúc vui !
__________________
** xin hãy cho tôi là tượng đá ** Để muôn đời không nhớ thương ai ..!! |
![]() |
![]() |
![]() |
#15 | |
Đệ tử 1 túi
Tham gia ngày: Apr 2009
Bài gửi: 18
: |
Trích:
0xAA = 10101010b để LED đỏ tắt, LED xanh sáng 0x55= 01010101b để LED đỏ sáng, LED xanh tắt đúng là em cắm nhiều dây quá nên nhiễu thật sờ vào nguồn là cụm 8LED do con 595 thứ 2 nối ra tối hẳn đi, còn các cụm khác vẫn bình thường. Thật là củ chuối! Đêm qua em tháo hết bo rồi. Mục đích là test chức năng SPI mềm và cứng của PIC 16F877A mà bác. Bác có gì chỉ bảo, có gì cần chú ý về phần cứng thì giúp em với. mail của em là dotien.dzung@gmail.com em xin cảm ơn bác. |
|
![]() |
![]() |
![]() |
|
|