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 ! |
Cảm ơn bác nhiều.
Cái này hay quá. |
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 . |
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 |
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.
|
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) ?
|
#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 ) :) |
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> |
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 ? |
sao lâu thấy Phần II thế TXT ơi :P
|
Các tiền bối xem giúp em!
Code:
#include <16f877a.h> // 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. |
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, |
em sửa lại đoạn code như sau:
Code:
#include <16f877a.h> // 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 |
cảm ơn anh đã giúp đỡ
em bị lỗi cú pháp ạ, em xem lại rồi ! Đúng là ẩu quá
|
Trích:
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 |
Trích:
|
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?
|
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
|
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!!!
|
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.
|
Trích:
|
Hướng dẫn CCS tiếng Việt thiếu chương 5 nói về Timer
Trích:
|
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); } } |
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 |
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
|
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.
|
Trích:
|
Trích:
#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) |
Trích:
|
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); } } |
Bạn đổi (AN5) thành (AN0_AN1_AN4_AN5_VREF_VREF)
|
Trích:
|
hóng tác giả phần hai mà lâu quá :(
|
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: |
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 |
jup t voi
dung xung ngoai đem san pham tu 1-9999 voi led 7 thanh lap trinh pic |
Hay...anh em cần chia sẻ như thế này rất hay.
|
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. |
Trích:
|
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à 01:11 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