PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   Hướng dẫn sử dụng CCS C (http://www.picvietnam.com/forum/showthread.php?t=612)

8051topic 26-07-2009 10:37 PM

@ Em_ku: Cái này chỉ là ý của mình thôi nhé. Bạn đặt 1 biến đếm, ấn một cái thì tăng thêm 1 (tăng từ 0 đến 9 chẳng hạn, đến 9 thì trở về 0 lại), dùng giá trị của biến này để gọi 1 phần tử trong mảng/bảng (mảng/bảng này là các mã của led 7 Seg) xong rồi thì xuất ra Led thôi.
Làm thử bạn sẽ thấy rõ hơn.

Em_ku 27-07-2009 02:26 PM

Vâng em cũng biết thế!! Đoạn code em viết được rồi nhưng sao bo vao cái mô phỏng proteus nó chạy chi chi ấy!! Biến tăng thì ok. Cái em hỏi là cái nút bấm thông thường mình đặt ở đâu?? Như em đặt ở MCLR thì phải khai báo như thế nào??

8051topic 27-07-2009 11:31 PM

Bạn nạp vào mạch thật thử đi, mình thấy Proteus không đúng lắm đâu.
Nút bấm thông thường thì cứ nối như "thông thường" thôi, tùy vào mức cao hay thấp ở chương trình mà bạn viết, nên nối thêm một con R 4k7 lên nguồn.
bạn dùng chân MCLR thì thiết lập cho nó là Input thì OK, mà đó là chân Reset mà, dùng chân khác đi bạn, chân MCLR để làm chức năng Reset thôi, khi nào hết chân thì hãy nghĩ tới nó.
Mình chỉ biết vậy thôi, không biết có đúng ý bạn không!

Em_ku 28-07-2009 09:14 PM

Em viết đoạn code thế này nhưng mà nó chạy chi chi ấy!! Công tắc bấm nút tại chân RB7, hiển thị số lần bấm nút bằng led7 đoạn. Hix viết mà kô hiểu nó sai chỗ nào. Các bác các anh các chị giúp em với. À mà mấy cái số case ... là em cho bậy quan trọng bấm nút sao cho led nó nhảy..

Code:

#include <C:\Program Files\PICC\Devices\16f877a.h>
#fuses HS,NOWDT
#byte trisb=0x86
#byte portb=0x06
#bit R7=portb.7
#use delay(clock=4000000)
int i;
main ()
{
while (1)
{
trisb=0x00;
R7=1;
portb=0x3f;
if (R7==0)
{
delay_ms(1000);
while (R7==0)
{
;
}
i=i+1;
if (i==10) i=0;
}
return i;
 switch (i)
 {
 case 0: portb=0x3f; break;
 case 1: portb=0x05; break;
 case 2: portb=0x89; break;
 case 3: portb=0xf1; break;
 case 4: portb=0xff; break;
 case 5: portb=0xf6; break;
 case 6: portb=0xf5; break;
 case 7: portb=0xf6; break;
 case 8: portb=0xf7; break;
 case 9: portb=0xf8; break;
 }
 
}
}


Viết của em nó kô bị lỗi gì cả. Nhưng nạp vào pic thì chạy gì gì kô à!! Theo em nghĩ là đúng rồi mà chẳng biết sao nữa. Mô phỏng bằng cái proteus.

manhha2799 29-07-2009 12:52 AM

Bạn có kéo điện trở treo lên nguồn chỗ chân RB7 ko.

Em_ku 29-07-2009 01:18 AM

có chứ điện trở đó để dùng hạn chế dòng mà!!

trung2343 19-08-2009 02:41 PM

co bac nao co tai lieu huong dan su dung ccs 4.032 cho em voi
em dang hoc pic ma khong biet su dung ccs

vandat07 21-08-2009 09:26 PM

Trích:

Nguyên văn bởi Em_ku (Post 28150)
Em viết đoạn code thế này nhưng mà nó chạy chi chi ấy!! Công tắc bấm nút tại chân RB7, hiển thị số lần bấm nút bằng led7 đoạn. Hix viết mà kô hiểu nó sai chỗ nào. Các bác các anh các chị giúp em với. À mà mấy cái số case ... là em cho bậy quan trọng bấm nút sao cho led nó nhảy..

Code:

#include <C:\Program Files\PICC\Devices\16f877a.h>
#fuses HS,NOWDT
#byte trisb=0x86
#byte portb=0x06
#bit R7=portb.7
#use delay(clock=4000000)
int i;
main ()
{
while (1)
{
trisb=0x00;
R7=1;
portb=0x3f;
if (R7==0)
{
delay_ms(1000);
while (R7==0)
{
;
}
i=i+1;
if (i==10) i=0;
}
return i;
 switch (i)
 {
 case 0: portb=0x3f; break;
 case 1: portb=0x05; break;
 case 2: portb=0x89; break;
 case 3: portb=0xf1; break;
 case 4: portb=0xff; break;
 case 5: portb=0xf6; break;
 case 6: portb=0xf5; break;
 case 7: portb=0xf6; break;
 case 8: portb=0xf7; break;
 case 9: portb=0xf8; break;
 }
 
}
}


Viết của em nó kô bị lỗi gì cả. Nhưng nạp vào pic thì chạy gì gì kô à!! Theo em nghĩ là đúng rồi mà chẳng biết sao nữa. Mô phỏng bằng cái proteus.


Theo em thì bác đã vô tình làm cho RB7 vừa là output vừa là input, bác nên cho chân input là 1 chân ở portA, C,..(không phải port B)
không biết các bác có ý kiến gì không?

mocdailam 24-08-2009 02:44 AM

Trích:

Nguyên văn bởi Em_ku (Post 28150)
Em viết đoạn code thế này nhưng mà nó chạy chi chi ấy!! Công tắc bấm nút tại chân RB7, hiển thị số lần bấm nút bằng led7 đoạn. Hix viết mà kô hiểu nó sai chỗ nào. Các bác các anh các chị giúp em với. À mà mấy cái số case ... là em cho bậy quan trọng bấm nút sao cho led nó nhảy..

Code:

#include <C:\Program Files\PICC\Devices\16f877a.h>
#fuses HS,NOWDT
#byte trisb=0x86
#byte portb=0x06
#bit R7=portb.7
#use delay(clock=4000000)
int i;
main ()
{
while (1)
{
trisb=0x00;
R7=1;
portb=0x3f;
if (R7==0)
{
delay_ms(1000);
while (R7==0)
{
;
}
i=i+1;
if (i==10) i=0;
}
return i;
 switch (i)
 {
 case 0: portb=0x3f; break;
 case 1: portb=0x05; break;
 case 2: portb=0x89; break;
 case 3: portb=0xf1; break;
 case 4: portb=0xff; break;
 case 5: portb=0xf6; break;
 case 6: portb=0xf5; break;
 case 7: portb=0xf6; break;
 case 8: portb=0xf7; break;
 case 9: portb=0xf8; break;
 }
 
}
}


Viết của em nó kô bị lỗi gì cả. Nhưng nạp vào pic thì chạy gì gì kô à!! Theo em nghĩ là đúng rồi mà chẳng biết sao nữa. Mô phỏng bằng cái proteus.

mình không để ký lại mấy cái dịa chỉ chân vào ra của bạn! sao không dùng thu viện chuẩn của CCS
bạn xem lại chổ return di! gap return no thoat khoi ham chu con dau ma chay doan sau nua. theo minh nghi la the.

buinhanh 08-09-2009 12:55 PM

mình đang cần tìm hiểu về lập trình c cho pic 16f877a và chương trình điều khiển đồng hồ số dùng 6 led 7 doan. các bác có ai biết xin chỉ giúp!!!!!! thanks

hdtspkt 21-11-2009 11:51 AM

Không hiểu sao em Compile thì OK, còn Build thi báo như sau: "I/O error 103" em chưa có khắc phục được.Nhờ được sự giúp đỡ!

huuducel 01-04-2010 10:13 AM

Anh F ơi cách sử dụng mảng trong CCS như thế nào ạ. Thực tế là em đang làm một cái mạch lấy số liệu từ bên ngoài sao đó cho số liệu X này so sánh với mảng [100,200,300,400,500,600,700]. Nếu X bằng với giá trị nào trong mảng thì xuất ra "H1"
Trong đó:
H1=100;H2=200;H3=300;H4=400;H5=500;H6=600;H7=700
Trường hợp X là số lẻ thì sao? làm tròn trên và dưới như thế nào. Thí dụ X=100.25 hoặc X=100.55 thì lúc đó sẽ chọn X là bao nhiêu so với mảng.

huuducel 02-04-2010 11:40 AM

Buồn quá sao không có ai relay cho mình hết...

haruoi 09-04-2010 10:12 AM

Hướng dẫn sử dụng CCS C cho dsPIC
 
Trích:

Nguyên văn bởi tmtm (Post 15520)
Mà em tìm trên diễn đàn sao chẳng thấy anh nào hướng dẫn lập trình cho dsPIC dùng CCSC nhỉ? Em nghĩ, khi CCSC đã hỗ trợ dsPIC thì với những người mới học như em, những ví dụ mẫu đó thật đáng quý!

Đúng đấy, hy vọng sẽ có những bài viết hướng dẫn sử dụng CCS C cho dsPIC.

lethanh27 14-04-2010 10:23 PM

Mọi người ơi giúp em cái này cái
Trích:

Mình cũng đang rất cần về phần này đây và đã tự vẽ được cái mạch như thế này
http://i920.photobucket.com/albums/a...nh27/gtlcd.jpg
nhưng chưa biết viết code như thế nào mọi người hướng dẫn e viết với nhé pm riêng yahoo càng tốt lethanhcdtk9.
Ý định của e là LCD sẽ hiện thì thời gian và ngày tháng có thể chỉnh bằng bàn phím .
nhưng trong quá trình nhập người nhập thời gian sai như ngày qua 31 ngày hay tháng quá 12 hoặc giờ >24 chẳng hạn thì đén sáng báo nhập sai và yêu cầu nhập lại
Mọi người xem có cách nào giải quyết vấn đề và dạy e viết code bằng css với !!
http://www.mediafire.com/file/juqnmy...en thi LCD.DSN


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