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


Múi giờ GMT. Hiện tại là 03:22 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam