![]() |
![]() |
#226 |
Nhập môn đệ tử
Tham gia ngày: Apr 2010
Bài gửi: 5
: |
Các anh các bạn các vị tiền bối ơi, sao em đọc thấy nhiều topic nói mà ko thấy trả lời.
CCS có hổ trợ compiler cho dsPIC ko vậy ạ. Em cảm ơn. |
![]() |
![]() |
![]() |
#227 | |
Đệ tử 1 túi
Tham gia ngày: Sep 2010
Bài gửi: 16
: |
giúp code điều khiển động cơ
Trích:
|
|
![]() |
![]() |
![]() |
#228 |
Nhập môn đệ tử
Tham gia ngày: Jan 2011
Bài gửi: 3
: |
phần mềm lập trình cho pic Mikro-C
minh mới tập tành học vxl, va hiện mình Mikro-C , nhưng vì mới làm quen vxl nên lang thang trên mạng nhưng chẳng có code cho nó gì hết ah,
sao mọi người không ai dùng phần mềm này ah, qua đây cho mình hỏi có ai dùng thi chỉ giáo cho mình với.. thanks mọi người. mail của em: auto.tvt@gmail.com |
![]() |
![]() |
![]() |
#229 | |
Đệ tử 3 túi
|
Trích:
|
|
![]() |
![]() |
![]() |
#230 |
Nhập môn đệ tử
Tham gia ngày: May 2010
Bài gửi: 1
: |
nhờ các pro chỉ giúp phần RS232
chào các bác!
em tập theo cái tuto của pác linh thì đã có thể gửi ký tự từ PC lên LCD bình thường rồi, nhưng phần ngược lại, dù có printf cỡ nào nó cũng không truyền được vào hyper terminal được ah ![]() sau đây là code của e: #include <16f877a.h> #include <def_877a.h> #use delay(clock=20000000) #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=9) #include <lcd_lib_4bit.c> //#include <input.c> int8 count=0; int1 t=1; #INT_RDA Receive_isr() { char c; count++; c = getc(); putc(c); if (c=='z') { LCD_putcmd(0x01); //Clear Screen count=0; } if ((count<=16) && (c!='z')) { LCD_putchar(c); } if ((count > 16) && (t==1)) { count=1; LCD_putcmd(0xc0); LCD_putchar(c); t=0; } if ((count > 16) && (t==0)) { count=1; LCD_putcmd(0x01); LCD_putchar(c); t=1; } } void main() { enable_interrupts(int_rda); enable_interrupts(GLOBAL); lcd_init(); lcd_putcmd(0x01); lcd_putcmd(line_1); printf("hello!"); while (1) {} } em có gửi theo mấy cái file, mọi người chỉ giúp e nhé ![]() |
![]() |
![]() |
![]() |
#231 | |
Đệ tử 2 túi
Tham gia ngày: Nov 2010
Bài gửi: 38
: |
Trích:
|
|
![]() |
![]() |
![]() |
#232 | |
Đệ tử 2 túi
Tham gia ngày: Nov 2010
Bài gửi: 38
: |
Trích:
|
|
![]() |
![]() |
![]() |
#233 |
Nhập môn đệ tử
Tham gia ngày: Feb 2012
Bài gửi: 4
: |
đo nhiệt độ dùng lm335 và 16f877a hiển thị led 7 đoạn
e mới học vdk...đang viết 1 mạch đo nhiệt độ dùng lm335 và 16f877a hiển thị led 7 đoạn
ko bik đoạn code e viết sai chỗ nào, mong ae giúp cho..thanks # include <16f877a.h> # fuses hs,nowdt,nolvp # DEVICE 16f877a*=16 ADC=10 # use delay (clock=4000000) int Maled[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X9 0}; int hc=0,hdv=0,nhietdo,giatriadc; # int_timer1 void ngattimer() { set_adc_channel(0); delay_ms(10); giatriadc=read_adc(); nhietdo=((giatriadc-558.558)/2.048); hc=nhietdo/10; hdv=nhietdo%10; set_timer1(40536); } void hienthi(); void main() { set_tris_a (0xff); set_tris_b (0x00); set_tris_c (0x00); setup_timer_1(t1_internal|t1_div_by_8); set_timer1(40536); enable_interrupts(int_timer1); enable_interrupts(global); setup_adc(adc_clock_internal); setup_adc_ports(AN0); while(1) { hienthi(); } } void hienthi() { output_high (pin_c0); output_low (pin_c1); output_b (Maled[hc]); delay_ms(5); output_high (pin_c1); output_low(pin_c0); output_b (Maled[hdv]); delay_ms (5); } sơ đồ mạch: thay đổi nội dung bởi: DunLop, 30-03-2012 lúc 04:10 PM. Lý do: bổ sung |
![]() |
![]() |
![]() |
#234 | |
Nhập môn đệ tử
Tham gia ngày: Mar 2012
Bài gửi: 1
: |
Trích:
#include "16f877a.h" #use delay(clock=20000000) #int_rb unsigned char x,i,a,b,tre; int16 mode; void trai()// chuong trinh con nhay trai sang { x=0x01; output_d(x); delay_ms(tre); for(i=1;i<=7;i++) {x=x<<1; output_d(x); delay_ms(tre); } } void phai()//chuong trinh con nhay phai sang { x=0x80; output_d(x); delay_ms(tre); for(i=1;i<=7;i++) { x=x>>1; output_d(x); delay_ms(tre); } } void trong() //chuong trinh con nhay trong ra { a=0x01; b=0x80; for(i=1;i<=7;i++) { a<<=1; b>>=1; output_d(a|b); delay_ms(tre); } } void ngat() { if(input(pin_b0)) if(mode<2)mode++;//chuyen che do tang len o b0 if(input(pin_b1)) if(mode<0 )mode--;//chuyen che do tang len o b1 if(input(pin_b2)) if(tre<100) tre=tre+100;//tang thoi gian tre cho led if(input(pin_b3)) if(tre>100) tre=tre-100;//giam thoi gian tre cho led } void main() { set_tris_b(0xff); enable_interrupts(int_rb); enable_interrupts(GLOBAL); mode=0; while (true) case 0: trai();break; case 1: phai();break; case 2: trong();break; } |
|
![]() |
![]() |
![]() |
#235 |
Nhập môn đệ tử
Tham gia ngày: Apr 2011
Bài gửi: 1
: |
mọi người ơi giúp mình với. mình tìm chương trình pic c cả ngày rồi,cài vào rồi lại xóa không biết bao nhiêu lần mà cũng không tìm ra phiên bản thích hợp. cứ mỗi lần compile cái file.c (đã chạy tốt trên máy khác,có thể phiên bản cũ) thì nó lại báo error! mình xài win 7 64bit untimate. ức chế quá!
|
![]() |
![]() |
![]() |
#236 | |
Nhập môn đệ tử
Tham gia ngày: Apr 2011
Bài gửi: 3
: |
Trích:
switch (cmd) { case 0: sthing; break; case 1: sthing; break; case 2: sthing; break; } |
|
![]() |
![]() |
![]() |
#237 |
Nhập môn đệ tử
Tham gia ngày: Oct 2012
Bài gửi: 1
: |
help!!!
Các bác ơi cho e hỏi e cài CCS nhưng mà bị báo lỗi " Exception EInoutError in module pcwwiz.exe at 00833f6 I/O error 123 " , k biết phải làm thế nào nữa. Các pro chỉ cho e với ạ!!! e cảm ơn ạ.
thay đổi nội dung bởi: tranhien5291, 04-11-2012 lúc 11:19 PM. |
![]() |
![]() |
![]() |
#238 |
Nhập môn đệ tử
Tham gia ngày: Sep 2011
Bài gửi: 10
: |
các anh cho em hỏi đoạn chương trình sau co nghĩa như thế nào ak?
#int_timer0 void interrupt_timer0(){ int1 a; int16 count; set_timer0(56); ++count; if(count == 500) { count=0; a=~a; RB0=a; } } theo em nghĩ thì khi timer0 đêm được 200 lần( set_timer0(56); 256-56=200) thì biến cuont tăng lên 1. vậy trong quá trình chờ biến count đếm được 500 lần tương ứng với 100ms thì con pic16f877a có làm gì không? nếu làm thì khi thỏa mãn điều kiện IF thì làm sao pic có thể thực hiện các lệnh trong điều kiện đó. thanks all! |
![]() |
![]() |
![]() |
#239 | |
Đệ tử 2 túi
Tham gia ngày: Apr 2009
Bài gửi: 44
: |
Trích:
Cái 100ms không tính được vì nó phụ thuộc vào xung nhịp mà mình đưa vào. Khi count=500; thì count=0; a = đảo a; chân RB0 =a; và quá trình lại được tiếp diễn...
__________________
ĐT : 0167 6455 880 Mail: quanghuy1205@gmail.com https://www.facebook.com/ThietKeDienTu |
|
![]() |
![]() |
![]() |
#240 |
Nhập môn đệ tử
Tham gia ngày: Sep 2011
Bài gửi: 10
: |
cảm ơn các anh đã giải thích! nguyên code là như sau:
#include <16F877A.h> #include <DEFS_16F877A.h> #device 16F877*=16 ADC=10 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=4000000) #use fast_io(b) #use fast_io(c) #use fast_io(d) #int_timer0 void interrupt_timer0(){ int1 a; int16 count; set_timer0(56); ++count; if(count == 500) { count=0; a=~a; RB0=a; } } void main() { set_tris_b(0); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2); enable_interrupts(int_timer0); enable_interrupts(global); set_timer0(56); while(true) { } } em chỉ copy ở page 1 thôi thắc ở cái đoạn đó mong các anh giải thích giúp em!! thanks all |
![]() |
![]() |
![]() |
|
|