PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT 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

Ðề tài đã khoá
 
Ðiều Chỉnh Xếp Bài
Old 20-08-2006, 12:34 PM   #1
vtt
Đệ tử 2 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 44
:
Chào bác nhh!
Tôi copy nguyen bai delay1s_RB0 của bác về nạp thử, nhưng không hiểu sao nó không chạy, mà phải cắm chân RB3 (chân PGM) xuống đất thì nó mới chạy, bác có thể cho tôi biết tại sao không?
Cám ơn bác!
vtt vẫn chưa có mặt trong diễn đàn  
Old 20-08-2006, 06:59 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 vtt
Chào bác nhh!
Tôi copy nguyen bai delay1s_RB0 của bác về nạp thử, nhưng không hiểu sao nó không chạy, mà phải cắm chân RB3 (chân PGM) xuống đất thì nó mới chạy, bác có thể cho tôi biết tại sao không?
Cám ơn bác!
Ở một số chip, chân RB3 còn là chân PGM dùng để cấp nguồn cho chế độ nạp chip điện áp thấp (Low-Voltage Programming). Nếu chip của bạn còn mới, có thể nó đang được bật chế độ LVP (mặc định khi xuất xưởng), do đó bạn để hở RB3 sẽ không cho phép chip chạy chương trình, và bạn phải nối RB3 xuống 0V (nên nối qua một điện trở khoảng 1k) thì chip mới không đi vào chế độ LVP và mới chạy được chương trình đã có trong chip.

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  
Old 21-08-2006, 08:42 PM   #3
lep
Đệ tử 1 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 12
:
làm thế naò để vi điêù khiển pic16f877a nhận biết số vong quay cuả motor động cợ? khi khởi động output chân BO cho mức cao high motor động cợ 1 quay 20 vong phát ra 20 xung vuông đến input chân D0 ,chan D0 nhan 20 xung xu li cho ra chan output BO muc thap low motor dong co thu 1 ngung quay va output B1 cao high motor dong co thu 2 quay 10 vong tao ra 10 xung vuong den chan D1 chan D1 nhan 10 xung thi B1 low dong co motor2 dung va B0 high dong co motor 1 quay va nguoc lai
Cho minh hoi cach lam mach dem vong quay motor dong co?xin cac huynh cho luon so do mach nay?va can mua nhung linh kien gi về ráp mạch?
Va xin cac huynh chi cho cach viet chay chuong trinh nay dung ngon ngu C _CCS_C
tan so 20Mhz
pic 16f877a
lep vẫn chưa có mặt trong diễn đàn  
Old 21-08-2006, 11:08 PM   #4
vtt
Đệ tử 2 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 44
:
Cảm ơn ngài trưởng lão Pic bang!
Bây giờ thì tôi đã hiểu, nhưng khi phải nối mass chân RB3 rồi thì coi như chân đó không thể dùng được nữa hả?
vtt vẫn chưa có mặt trong diễn đàn  
Old 21-08-2006, 11:18 PM   #5
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 vtt
Cảm ơn ngài trưởng lão Pic bang!
Bây giờ thì tôi đã hiểu, nhưng khi phải nối mass chân RB3 rồi thì coi như chân đó không thể dùng được nữa hả?
Bạn vẫn có thể dùng chân RB3 như bình thường khi chip đã ở chế độ chạy chương trình bình thường. Nhưng nếu bạn nối thẳng RB3 vào mức 0V và sau đó dùng RB3 như ngõ ra, thì khi bạn xuất mức cao ra RB3 sẽ gây ngắn mạch giữa các chân Vdd và Vss (vì bạn đã nối thẳng RB3 vào Vss, và sau đó lại yêu cầu ngõ ra RB3 được nối lên Vdd trong chương trình). Đó chính là lý do của lời khuyên nên nối RB3 xuống mức 0V thông qua một điện trở khoảng 1k, nếu bạn muốn RB3 khi dùng như ngõ ra được nhẹ tải hơn thì có thể dùng giá trị 4.7k hay 10k cho điện trở kéo xuống 0V đó.

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  
Old 23-08-2006, 09:48 AM   #6
minhquancdt
Đệ tử 2 túi
 
minhquancdt's Avatar
 
Tham gia ngày: Mar 2006
Bài gửi: 26
:
Luồng này sôi động gớm ta!
Sao không thấy bác nhh post bài nữa kà!
Anh em nào rảnh rỗi post tiếp cho bà con hào tham gia với....!
minhquancdt vẫn chưa có mặt trong diễn đàn  
Old 23-08-2006, 02:30 PM   #7
Sangcao
Đệ tử 1 túi
 
Tham gia ngày: May 2006
Bài gửi: 25
:
Mình đang thử ctr điều khiển động cơ: Khi có tín hiệu từ chân RB0 thì động cỏ quay, nếu đang quay mà có tín hiệu từ RB1 thì động cơ quay ngược lại bằng thời gian no đã quay xuôi, bạn nào có thể viết cho mình một ví dụ như vậy bằng CCS được ko, cảm ơn nhiều.
Sangcao vẫn chưa có mặt trong diễn đàn  
Old 26-08-2006, 10:00 PM   #8
nhh
Đệ tử 9 túi
 
nhh's Avatar
 
Tham gia ngày: Feb 2006
Bài gửi: 174
:
Send a message via Yahoo to nhh
Trích:
Nguyên văn bởi Sangcao
Mình đang thử ctr điều khiển động cơ: Khi có tín hiệu từ chân RB0 thì động cỏ quay, nếu đang quay mà có tín hiệu từ RB1 thì động cơ quay ngược lại bằng thời gian no đã quay xuôi, bạn nào có thể viết cho mình một ví dụ như vậy bằng CCS được ko, cảm ơn nhiều.
Bạn có thể dùng ngắt ngoài để điều khiển cái động cơ của bạn:
http://www.picvietnam.com/forum//sho...p?t=357&page=2
__________________
Ngày mai bắt đầu từ ngày hôm nay

Bạn có thắc mắc, bạn cần sự hỗ trợ của các thành viên. Hãy đọc luồng này:
http://www.picvietnam.com/forum//showthread.php?t=1263
nhh vẫn chưa có mặt trong diễn đàn  
Old 24-08-2006, 09:19 PM   #9
vtt
Đệ tử 2 túi
 
Tham gia ngày: Mar 2006
Bài gửi: 44
:
Cám ơn bác namqn!
Các bác ơi, tôi đang loay hoay với việc giao tiếp giữa PIC 16F877A với eeprom 24C64 mà chưa được, bác nào đã làm được hoạc có kinh nghiệm giao tiếp với bộ nhớ ngoài xin chỉ giùm.
vtt vẫn chưa có mặt trong diễn đàn  
Old 24-08-2006, 10:03 PM   #10
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
Bạn đọc tài liệu sau của Microchip về giao tiếp PIC16 với I2C EEPROM:
http://ww1.microchip.com/downloads/en/DeviceDoc/i2c.pdf

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  
Old 04-10-2006, 01:38 AM   #11
son_um
Đệ tử 4 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 63
:
Đoạn mã hiển thị led 7 thanh này, dấu ^ có ý nghĩa là vì hả các bác
void display(int8 digit) {
output_c(DIGITS[digit] ^ 0xff);
off_on_led_transistor();
}
Thân.
son_um vẫn chưa có mặt trong diễn đàn  
Old 04-10-2006, 12:11 PM   #12
minhquancdt
Đệ tử 2 túi
 
minhquancdt's Avatar
 
Tham gia ngày: Mar 2006
Bài gửi: 26
:
Trích:
Nguyên văn bởi son_um View Post
Đoạn mã hiển thị led 7 thanh này, dấu ^ có ý nghĩa là vì hả các bác
void display(int8 digit) {
output_c(DIGITS[digit] ^ 0xff);
off_on_led_transistor();
}
Thân.
Ặc ặc...
Bác dùng mấy cái mảng + hàm con mà chẳng ai biết từ đâu ra thì ai mà hiểu được bác đang nghĩ gì !

Hãy post cả code hoàn thiện để mọi nguời cùng mổ xẻ !
minhquancdt vẫn chưa có mặt trong diễn đàn  
Old 04-10-2006, 10:10 PM   #13
son_um
Đệ tử 4 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 63
:
Thì đoạn chương trình đấy từ bài viết về hiển thị led7 thanh,post lại vậy:

Chương trình hiển thị phím số trên ma trận phím 4x3 ra đèn 7 đoạn (không dùng interrupt)

#include <16F877A.h>
#fuses NOWDT, XT
#fuses NOLVP // important
#use delay(clock=4000000)

#include <kbd.c> // in PICC\Drivers

// 0 1 2 3 4 5 6 7 8 9
byte const DIGITS[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };

///////////////////////////////////////////////////////////
/* private */void off_on_led_transistor() {
output_low(PIN_D1);
delay_ms(1);
output_high(PIN_D1);
}

///////////////////////////////////////////////////////////
void display(int8 digit) {
output_c(DIGITS[digit] ^ 0xff);
off_on_led_transistor();
}

///////////////////////////////////////////////////////////
int8 char_to_digit(char c) {
return c & 0b00001111; // first 4 bits only
}

///////////////////////////////////////////////////////////
int1 digit_key_pressed(char key) {
byte pattern;
pattern = 0b00110000;
return (key & pattern) == pattern;
}

///////////////////////////////////////////////////////////
void main() {
int8 i, digit;
char key;

kbd_init();
while (true) {
key = kbd_getc();
if (digit_key_pressed(key)) {
digit = char_to_digit(key);
for (i = 0; i < 200; i++) // repeat the display for human eyes
display(digit);
}
}
}
son_um vẫn chưa có mặt trong diễn đàn  
Old 04-10-2006, 10:31 PM   #14
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 son_um View Post
Đoạn mã hiển thị led 7 thanh này, dấu ^ có ý nghĩa là vì hả các bác
void display(int8 digit) {
output_c(DIGITS[digit] ^ 0xff);
off_on_led_transistor();
}
Thân.
Dấu "^" là ký hiệu phép toán XOR (exclusive OR) trong C.

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  
Old 06-10-2006, 03:27 AM   #15
son_um
Đệ tử 4 túi
 
Tham gia ngày: Aug 2006
Bài gửi: 63
:
Trong đoạn code về quét bàn phím, có lệnh sau e không hiếu,mong được các bác giải thích: IF((RBIF)&&(RBIE)....

#int_RB
void ngat_RB()
{
if((RBIF)&&(RBIE))
{
{
if(RB4&&RB0)
a=dig[0];
}
{
if(RB4&&RB1)
a=dig[4];
Thân.
son_um vẫn chưa có mặt trong diễn đàn  
Ðề tài đã khoá


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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
TUT về USART trong PIC16F877A mafd_47a MPASM 16 19-02-2025 05:32 AM
TUT ve I2C ( pic16f877a ) mafd_47a MPASM 28 28-01-2025 10:45 PM
Lập nhóm PIC16F877A nhh Cơ bản về vi điều khiển và PIC 285 08-03-2017 11:08 PM
Bộ so sánh và PWM cho PIC16F877A anhquangngai Cơ bản về vi điều khiển và PIC 24 08-09-2012 09:00 AM
Pic16f877a TỪ DỄ TỚi KhÓ ntc Cơ bản về vi điều khiển và PIC 373 23-05-2009 10:24 PM


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