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)
-   -   CCS tiếng Việt update - I (http://www.picvietnam.com/forum/showthread.php?t=155)

txt 06-10-2005 06:04 PM

CCS tiếng Việt update - I
 
1 Attachment(s)
_Bản CCS tiếng Việt mới , nhiều bổ sung , có cả PIC 18 .
_Do thời gian qua bận rộn nên tài liệu vẫn chưa đầy đủ , còn thiếu nhiều , nhưng do nhiều bạn đang tiếp cận PIC gởi mail kêu ca thiếu tài liệu CCS quá , tui post lên xem đỡ .
_Bản này chỉnh sửa nhiều phần đã đăng trong CCS tiếng Việt I . Bản cũ có nhiều sai sót , nay đã sửa lại , song bản mới này chắc chắn cũng có nhiều sai sót , bạn nào đã và đang làm PIC nếu thấy chỗ nào nói sai , thiếu sót , phiền bạn lên tiếng bổ sung . Thanks !

Never_Die 09-11-2005 04:35 PM

Cảm ơn bác nhiều.
Cái này hay quá.

txt 30-11-2005 09:09 AM

Hờ , tôi đang bổ sung phần mô phỏng CCS trong MPLAB nhưng khổ nỗi có nhiều cái chưa biết , đang cần giúp dỡ :
_Trong MPLAB làm sao mô phỏng xung vuông tần số f để cho vào 1 chân VDK và từ đó chương trình mô phỏng CCS bắt được để làm 1 điều gì đó . chả là tôi đang thử mô phỏng tính năng QEI trên 18F4431 cần 3 xung kích QEA , QEB ,INDX để kiểm tra chương trình .Lưu ý là mô phỏng chứ không dùng debug .

txt 06-02-2006 04:25 PM

Sao kỳ vây ta? cái link mới biến mất tiêu rồi.
Vào :
http://www.picvietnam.com/download/T...tieng_Viet.pdf

meishun 18-12-2006 11:03 AM

Xin hỏi anh txt là đã có CCS C tiếng Việt phần 2 chưa ạ? Phần một đọc rất dễ hiểu, mong sớm có phần hai cho nó trọn bộ.Cám ơn.

littlephoc 19-12-2006 08:30 PM

Mình có 1 thắc mắc nhỏ: tại sao CCS phải mất công tạo ra hàm output_high(bit), output_low(bit), output_x(byte)? Trong khi có 1 số function register mình lại không thấy có hàm để can thiệp trực tiếp được mà mình phải tự #locate đến và gán giá trị bình thường như sử dụng những compiler khác (MPLAB C30, HT-PICC18) ?

txt 07-01-2007 10:22 AM

#locate cho phép chương trình CCS có tính tùy biến cao , dể hiểu hơn và dễ đọc hơn cho bản thân người viết ( kể cả dân nghiệp dư ), nhưng vì vậy mà nó có vẻ không thích hợp lắm khi viết chương trình mà có nhiều người cùng tham gia viết ( làm theo nhóm cho chương trình lớn ) .Dường như CCS là chương trình mang tính bất quy tắc . . . Còn bọn MPLAB và HT thì quy củ hơn , theo chuẩn C hơn nhưng vì thế lại làm cho ngôn ngữ trở nên hàn lâm hơn , khó hiểu hơn .
output_low() / high : không có gì để nói
output_bit() : dùng khi lập trình đảo tín hiệu ra mà không cần biết trước đó là cao hay thấp .
output_x() : đặt ngõ ra cho nguyên 1 port
CCS phần 2 đang viết dở , chung quy cũng vì trước đó viết bằng VNI 8 bit , nay phải đổi sang unicode (cho vui ) :)

damhaicnn 24-11-2007 04:13 PM

các anh cho em hoi một tẹo, em muốn dịch bít như sau mà sao nó lúc thì chạy mà lúc thì không. khó hiểu quá.
Code:

#include<16f877a.h>
#use delay(oscillator=8M)
int16 i,j,k;
void main()
{
set_tris_B(0);
while(1)
  {k=0x00;
  for(i=0xff;i>=0x01;i>>=1)
      {k=k|i;output_B(k);delay_ms(300);}


nguyen.geo 24-11-2007 09:10 PM

Chao bạn DAMHAICNN !
Theo mình thì đoạn code của bạn sau khi dịch xong nó sẽ chạy như sau : Bit RB7 luôn bằng 0; còn các bít còn lại của Port B không thay đổi luôn là 1. Thế bạn thấy nó chạy thế nào ?

toanck86 26-11-2007 09:43 PM

sao lâu thấy Phần II thế TXT ơi :P

kid_1412ls 28-11-2007 05:02 PM

Các tiền bối xem giúp em!
 
Code:

#include <16f877a.h>
#use delay(oscillator=8M)
int8 const LED7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}
int8 const time=15;
int8 i,j,L1,L2,L3,L4;
  void main()
{  set_tris_B(0);set_tris_C(0);
  while(1)
  {  for(i=0;i<=59;i=i+1)
        for(j=0;j<=59;j=j+1)
        {  L1=(i/ 1)%10;
            L2=(i/10)%10;
            L3=(i/ 1)%10;
            L4=(i/10)%10;
            output_B(LED7[L1]);  output_C(0);  delay_ms(time);  output_C(7);
            output_B(LED7[L2]);  output_C(1);  delay_ms(time);  output_C(7);
            output_B(LED7[L3]);  output_C(2);  delay_ms(time);  output_C(7);
            output_B(LED7[L4]);  output_C(3);  delay_ms(time);  output_C(7);



// bài này em dịch sai vài lỗi, các tiền bối giúp em với, em không hiểu sai ở đâu.

namqn 28-11-2007 05:59 PM

Bạn nên cho biết bạn định làm gì, và post code đầy đủ, cũng như các thông báo lỗi mà bạn đã nhận được.

Thân,

kid_1412ls 28-11-2007 07:14 PM

em sửa lại đoạn code như sau:
 
Code:

#include <16f877a.h>
#use delay(oscillator=8M)
int8 const LED7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}
int8 const time=15;
int8 i,j,L1,L2,L3,L4;
  void main()
{  set_tris_B(0);set_tris_C(0);
  while(1)
  {  for(i=0;i<=59;i=i+1)
        for(j=0;j<=59;j=j+1)
        {  L1=(i/ 1)%10;
            L2=(i/10)%10;
            L3=(i/ 1)%10;
            L4=(i/10)%10;
            output_B(LED7[L1]);  output_C(0);  delay_ms(time);  output_C(7);
            output_B(LED7[L2]);  output_C(1);  delay_ms(time);  output_C(7);
            output_B(LED7[L3]);  output_C(2);  delay_ms(time);  output_C(7);
            output_B(LED7[L4]);  output_C(3);  delay_ms(time);  output_C(7);
        }
     
  }
}

// Em định thực hiện chương trình điều khiển 4 Led 7 đoạn hiển thị phút và giây
// Led 7 đoạn nối với port_B, nối port_C với 74ls138

namqn: tôi xóa phần tôi đã viết vì bạn đã sửa code lại

kid_1412ls 28-11-2007 08:24 PM

cảm ơn anh đã giúp đỡ
 
em bị lỗi cú pháp ạ, em xem lại rồi ! Đúng là ẩu quá

Mr.Bi 30-11-2007 12:53 PM

Trích:

Nguyên văn bởi kid_1412ls (Post 13126)
Code:

#include <16f877a.h>
#use delay(oscillator=8M)
int8 const LED7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}
int8 const time=15;
int8 i,j,L1,L2,L3,L4;
  void main()
{  set_tris_B(0);set_tris_C(0);
  while(1)
  {  for(i=0;i<=59;i=i+1)
        for(j=0;j<=59;j=j+1)
        {  L1=(i/ 1)%10;
            L2=(i/10)%10;
            L3=(i/ 1)%10;
            L4=(i/10)%10;
            output_B(LED7[L1]);  output_C(0);  delay_ms(time);  output_C(7);
            output_B(LED7[L2]);  output_C(1);  delay_ms(time);  output_C(7);
            output_B(LED7[L3]);  output_C(2);  delay_ms(time);  output_C(7);
            output_B(LED7[L4]);  output_C(3);  delay_ms(time);  output_C(7);



// bài này em dịch sai vài lỗi, các tiền bối giúp em với, em không hiểu sai ở đâu.

Nếu bạn post code như thế này , tui nghĩ bạn đang đếm & quét led7D đúng ko ?
nếu đúng thì bạn làm như thế này : vd đếm lên 59
- khai báo 1 biến i thui
- sau đó cho i++ đến 59
- lấy phần nguyên = (i/10) , xuất phần nguyên ra cột hàng chục(nhớ chuyển BCD)
- lấy phần dư = (i%10) , xuất phần dư xuất ra cột đơn vị
như vậy là ta đếm & tăng thoải mái

kid_1412ls 12-12-2007 04:54 PM

Trích:

Nguyên văn bởi Mr.Bi (Post 13165)
Nếu bạn post code như thế này , tui nghĩ bạn đang đếm & quét led7D đúng ko ?
nếu đúng thì bạn làm như thế này : vd đếm lên 59
- khai báo 1 biến i thui
- sau đó cho i++ đến 59
- lấy phần nguyên = (i/10) , xuất phần nguyên ra cột hàng chục(nhớ chuyển BCD)
- lấy phần dư = (i%10) , xuất phần dư xuất ra cột đơn vị
như vậy là ta đếm & tăng thoải mái

cảm ơn bác namqn và Mr.Bi đã chỉ dẫn nhiệt tình đã chỉ ra những thiếu sót của em !

thm 27-12-2007 04:50 PM

em cam on anh rat nhieu .Nhung anh oi sao em ko thay co chuong 5(van de TIMER), anh co the post len cho em ko?

asdfgh 07-03-2008 05:18 PM

phải công nhận tài liệu bạn viết hay, súc tích. rat mong ban co ban II sớm

ronalpires 09-03-2008 09:22 AM

Mình cũng đang bắt đầu học PIC, thấy bài của bạn viết rất dễ hiểu và cung cấp thông tin cho mình rất nhiều. Cám ơn bạn nhiều nha, viết xong phần II thì up lên cho tụi mình học hỏi nha!!!

vleminh 01-04-2008 12:31 PM

ccs cho pic 16f877a
 
giúp mình tìm tài liệu lập trình cho pic 16f877a bằng ccs. mình đang kiếm mà chưa được.

ngocphap 07-12-2008 08:18 PM

Trích:

Nguyên văn bởi txt (Post 652)
_Bản CCS tiếng Việt mới , nhiều bổ sung , có cả PIC 18 .
_Do thời gian qua bận rộn nên tài liệu vẫn chưa đầy đủ , còn thiếu nhiều , nhưng do nhiều bạn đang tiếp cận PIC gởi mail kêu ca thiếu tài liệu CCS quá , tui post lên xem đỡ .
_Bản này chỉnh sửa nhiều phần đã đăng trong CCS tiếng Việt I . Bản cũ có nhiều sai sót , nay đã sửa lại , song bản mới này chắc chắn cũng có nhiều sai sót , bạn nào đã và đang làm PIC nếu thấy chỗ nào nói sai , thiếu sót , phiền bạn lên tiếng bổ sung . Thanks !

Thanks bác txt, em cũng đang xem thử. Từ từ rồi bàn tài liệu này nhé!

Hieu98DT 05-08-2009 12:01 AM

Hướng dẫn CCS tiếng Việt thiếu chương 5 nói về Timer
 
Trích:

Nguyên văn bởi txt (Post 652)
_Bản CCS tiếng Việt mới , nhiều bổ sung , có cả PIC 18 .
_Do thời gian qua bận rộn nên tài liệu vẫn chưa đầy đủ , còn thiếu nhiều , nhưng do nhiều bạn đang tiếp cận PIC gởi mail kêu ca thiếu tài liệu CCS quá , tui post lên xem đỡ .
_Bản này chỉnh sửa nhiều phần đã đăng trong CCS tiếng Việt I . Bản cũ có nhiều sai sót , nay đã sửa lại , song bản mới này chắc chắn cũng có nhiều sai sót , bạn nào đã và đang làm PIC nếu thấy chỗ nào nói sai , thiếu sót , phiền bạn lên tiếng bổ sung . Thanks !

Bạn ơi mình đang tìm hiểu đến phần Timer, nhưng sao trong tài liệu không có phần chương 5 nói về timer, mình thấy trong mục lục có chương 5 mà.

ngoyeungoc 13-10-2009 01:24 PM

Các bạn có thể giúp mình cái này tí không.Mình mới tập tành học PIC,viết code để delay sáng tắt ở PortB nhưng không biết là tại sao nó báo lỗi chưa định nghĩa portb hoài.Mình xin cảm ơn trước hen.Đây là đoạn code đó nè.
#include<16F877A.h>
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=4000000)
#use fast_io(b)

main()
{
set_tris_b(0);
while(true)
{
portb =255;
delay_ms(100);
portb =0;
delay_ms(100);
}
}

greenfield 13-10-2009 02:15 PM

Bạn phải khai báo thêm cái này nữa
#byte PORTB = 0x06 là ok.
Vì VDK không hiểu PORTB là gì đâu bạn mà mình phải định nghĩa và gán địa chỉ cho nó thì nó mới hiểu. hoặc bạn có thể dùng file mà được định nghĩa hết rồi Include vào là ok

vaa_pic 03-03-2010 10:55 PM

Mình cũng thắc mắc là sao ko có chương Timer. Với lại sao lâu quá chưa có phần II. Phần I viết rất tốt, có rất nhiều người mong chờ phần II, mong tác giả mau ra mắt sớm phần II

haruoi 13-04-2010 01:37 AM

Trong quyển 1 nói rất sơ sài về PWM. Các bác có thể cho 1 đoạn code mẫu hướng dẫn sử dụng không? Em đang muốn dùng PWM để điều khiển tốc độ động cơ DC. Mong các bác chỉ giáo.

manhdktd 14-06-2010 06:24 PM

Trích:

Nguyên văn bởi damhaicnn (Post 13068)
các anh cho em hoi một tẹo, em muốn dịch bít như sau mà sao nó lúc thì chạy mà lúc thì không. khó hiểu quá.
Code:

#include<16f877a.h>
#use delay(oscillator=8M)
int16 i,j,k;
void main()
{
set_tris_B(0);
while(1)
  {k=0x00;
  for(i=0xff;i>=0x01;i>>=1)
      {k=k|i;output_B(k);delay_ms(300);}


Nếu dịch như vậy thì chỉ có bit thứ 7 tắt còn lại đều sáng hết

manhdktd 14-06-2010 06:36 PM

Trích:

Nguyên văn bởi ngoyeungoc (Post 30204)
Các bạn có thể giúp mình cái này tí không.Mình mới tập tành học PIC,viết code để delay sáng tắt ở PortB nhưng không biết là tại sao nó báo lỗi chưa định nghĩa portb hoài.Mình xin cảm ơn trước hen.Đây là đoạn code đó nè.
#include<16F877A.h>
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=4000000)
#use fast_io(b)

main()
{
set_tris_b(0);
while(true)
{
portb =255;
delay_ms(100);
portb =0;
delay_ms(100);
}
}

khai báo sử dụng địa chỉ PORTB bằng câu lệnh
#byte PORTB=0x06
sau đó sử dụng được PORTB=0 hay PORTB=0xff bình thường.
bạn có thể dùng lệnh output_b(value)

manhdktd 14-06-2010 06:37 PM

Trích:

Nguyên văn bởi haruoi (Post 35067)
Trong quyển 1 nói rất sơ sài về PWM. Các bác có thể cho 1 đoạn code mẫu hướng dẫn sử dụng không? Em đang muốn dùng PWM để điều khiển tốc độ động cơ DC. Mong các bác chỉ giáo.

cậu xem lại trong hepl của ccs,nó viết cách khởi tạo và thiết lập tham số rất kỹ.

easy91 16-07-2011 08:34 PM

Sữa lỗi giùm em cái
 
Anh Trường giúm em sữa lỗi bài này đi.Em khai báo dùng chân A0 (AN0) thì dc,nhưng dùng chân E0(AN5) thì nó lại báo lỗi :Undefined identifier AN5.

#include<16F877A.h>
#device *=16 ADC=10
#FUSES HS ,NOWDT, NOPUT, NOLVP
#USE DELAY(CLOCK=8M)
#include<lcd_ntt.h>
#include<luutinh.h>

unsigned int16 GIA_TRI=0;

void main()
{
set_tris_d(0);
set_tris_e(255);
set_tris_a(255);

SETUP_ADC_PORTS(AN5); //thiet lap chan E0
SETUP_ADC(ADC_CLOCK_DIV_2);//khoi dong bo ADC

lcd_init(); // khoi dong lcd
delay_ms(20);
lcd_gotoxy(1,1);
printf(lcd_putc,"VU HIEU TUANNGOC");
while(1)
{
SET_ADC_CHANNEL(5); //chan kenh AN5 de doc gia tri
DELAY_ms(10);
GIA_TRI=READ_ADC(); //gan gia tri = gia tri adc
LCD_GOTOXY(1,2);
DELAY_ms(10);
PRINTF(LCD_PUTC,"GIA TRI AD= %ld ",GIA_TRI); //xuat qia tri
DELAY_ms(1000);
}
}

anhthuc 18-07-2011 10:29 AM

Bạn đổi (AN5) thành (AN0_AN1_AN4_AN5_VREF_VREF)

ak47 19-07-2011 08:31 PM

Trích:

Nguyên văn bởi anhthuc (Post 47120)
Bạn đổi (AN5) thành (AN0_AN1_AN4_AN5_VREF_VREF)

cũng không nhất thiết phải thế.Xem trong file .h nó định nghĩa hằng số là gì thì ném vô đó thôi.Chắc thay AN5 bằng sAN5 là ok đấy

welldone789 13-10-2011 04:44 PM

hóng tác giả phần hai mà lâu quá :(

HUYEN_nb 03-12-2011 01:57 PM

em mới tìm hiểu về pic.thấy bài viết của bác TXT hay wa.thanks
hôm qua em làm thử bài nháy led code e lập theo wizad như sau:
#include "D:\PIC\tuhoc\New folder\led2.h"
#include<16f877a.h>
#include<def_877a.h>
#FUSES NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP, NOCPD,NOWRT
#use delay(clock=20000000)
void main()
{

setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
TRISB=0x00;
PORTB=0xFF;
// TODO: USER CODE!!
While(1)
{
PORTB=0x00;
delay_ms(250);
PORTB=0xFF;
delay_ms(250);
}
}
nhưng khi dịch lại bị lỗi:

HUYEN_nb 03-12-2011 01:58 PM

em mới tìm hiểu về pic.thấy bài viết của bác TXT hay wa.thanks
hôm qua em làm thử bài nháy led code e lập theo wizad như sau:
#include "D:\PIC\tuhoc\New folder\led2.h"
#include<16f877a.h>
#include<def_877a.h>
#FUSES NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP, NOCPD,NOWRT
#use delay(clock=20000000)
void main()
{

setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
TRISB=0x00;
PORTB=0xFF;
// TODO: USER CODE!!
While(1)
{
PORTB=0x00;
delay_ms(250);
PORTB=0xFF;
delay_ms(250);
}
}
nhưng khi dịch lại bị lỗi:

mong các bác có kinh nghiệm xem và chỉ cho e với. thanks các bác nhiều

thanhkc 03-12-2011 09:37 PM

jup t voi
dung xung ngoai đem san pham tu 1-9999 voi led 7 thanh lap trinh pic

quangdiemhp 31-01-2012 12:52 AM

Hay...anh em cần chia sẻ như thế này rất hay.

badboy2809 23-02-2012 12:11 AM

em mới tìm hiểu về pic.thấy bài viết của bác TXT hay wa.thanks
hôm qua em làm thử bài nháy led code e lập theo wizad như sau:
#include "D:\PIC\tuhoc\New folder\led2.h"
#include<16f877a.h>
#include<def_877a.h>
#FUSES NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP, NOCPD,NOWRT
#use delay(clock=20000000)
void main()
{

setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
TRISB=0x00;
PORTB=0xFF;
// TODO: USER CODE!!
While(1)
{
PORTB=0x00;
delay_ms(250);
PORTB=0xFF;
delay_ms(250);
}
}

có phải bạn chưa định nghia portB nên nó báo lỗi. Bạn thử chèn ở đầu chương trình #byte portb=0xf81 xem sao.

MARS 11-03-2012 11:57 AM

Trích:

Nguyên văn bởi txt (Post 652)
_Bản CCS tiếng Việt mới , nhiều bổ sung , có cả PIC 18 .
_Do thời gian qua bận rộn nên tài liệu vẫn chưa đầy đủ , còn thiếu nhiều , nhưng do nhiều bạn đang tiếp cận PIC gởi mail kêu ca thiếu tài liệu CCS quá , tui post lên xem đỡ .
_Bản này chỉnh sửa nhiều phần đã đăng trong CCS tiếng Việt I . Bản cũ có nhiều sai sót , nay đã sửa lại , song bản mới này chắc chắn cũng có nhiều sai sót , bạn nào đã và đang làm PIC nếu thấy chỗ nào nói sai , thiếu sót , phiền bạn lên tiếng bổ sung . Thanks !

Thanks bác nhìu! chờ phần 2

chestnutbrat 29-01-2013 10:06 PM

Các bác ơi sao trong tài liệu không thấy có chương 5 Timer vậy!


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