PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 27-08-2008, 01:12 AM   #1
0509592
Đệ tử 3 túi
 
Tham gia ngày: Jul 2008
Bài gửi: 58
:
PICPIC_16F877A_hoi_dap

/*chào các bác!
em viết đoạn code pwm này nhưng gặp một vấn đề là em thử đưa ra led thì chỉ thấy led ở kênh hai sáng dần lên, còn led ở kênh một thì vẫn sáng mà không hề tối dần. Em hiển thị lên lcd thì thấy giá trị hiển thị đúng! không hiểu tại sao?? hay là em làm sai??? các bác giúp em với???
thanks!
/truongtv0510@gmail.com/
*/

Code:
Code:
#include <16f877a.h>
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=8000000)
#include <lcd_lib_4bit.c>
#bit TMR2ON =0x12.2
int16 i,j;
int16 n;
int a1,b1,c1,a2,b2,c2;
void main()
{
trisc=0x00;
 lcd_init();
  LCD_PutCmd (0x82 );
 lcd_putchar("DKH_4X");
 LCD_PutCmd (0xC3 );
 lcd_putchar("robocon");
 delay_ms(500);
  LCD_PutCmd (0x01 );
 
n=0;
while(n<300)
{
setup_timer_2(T2_DIV_BY_16,255,1);
   setup_ccp1(CCP_PWM);
   setup_ccp2(CCP_PWM);
   set_pwm1_duty(299 - n);
   set_pwm2_duty(n);
   
   a1=n/100;
   b1=(n-100*a1)/10;
   c1=n%10;
   a2=(299-n)/100;
   b2=((299-n)-100*a2)/10;
   c2=(299-n)%10;
   lcd_init();
   
  LCD_PutCmd (0x80);
 lcd_putchar(a1+48);
  LCD_PutCmd (0x81);
 lcd_putchar(b1+48);
  LCD_PutCmd (0x82);
 lcd_putchar(c1+48);
 LCD_PutCmd (0xC0 );
 lcd_putchar(a2+48);
 LCD_PutCmd (0xC1 );
 lcd_putchar(b2+48);
 LCD_PutCmd (0xC2);
 lcd_putchar(c2+48);
 delay_ms(200);
  LCD_PutCmd (0x01 );
   n++;
   
if(n==300)
goto thoat;
}
thoat:
TMR2ON=0;
setup_ccp1 (CCP_OFF);
setup_ccp2 (CCP_OFF);
}

thay đổi nội dung bởi: namqn, 27-08-2008 lúc 01:56 AM.
0509592 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-08-2008, 02:03 AM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Tài liệu hướng dẫn của CCS C cho biết giá trị tham số của hàm set_pwm1_duty() là hằng số hoặc biến. Bạn đang dùng một biểu thức. Bạn thử khai báo thêm một biến (m chẳng hạn), cùng kiểu với n, và gán biểu thức (299 - n) cho biến đó, rồi dùng biến đó trong hàm set_pwm1_duty(), xem thế nào.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-08-2008, 08:23 AM   #3
0509592
Đệ tử 3 túi
 
Tham gia ngày: Jul 2008
Bài gửi: 58
:
vâng! cảm ơn bác! để em thử xem sao?????
0509592 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-09-2008, 10:20 AM   #4
cong1810
Đệ tử 4 túi
 
Tham gia ngày: Sep 2007
Bài gửi: 62
:
Send a message via Yahoo to cong1810
các anh cho em hỏi?!! các chân ADC có cần thiết phải có điện trở kéo nguồn để nó ổn định ko??
cong1810 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-09-2008, 06:23 PM   #5
picpen
Đệ tử 5 túi
 
picpen's Avatar
 
Tham gia ngày: Jun 2008
Bài gửi: 112
:
Các chân chuyển đổi ADC. nếu bạn dùng nó với chức năng I/O thì hoang toàn có thể kéo lên Vcc hoặc kéo xuống MASS .Nhưng nếu dùng làm đầu vào chuyển đổi ADC thì tuyệt đối ko được kéo trở lên Vcc làm như vậy thì tín hiệu đầu vào ADC của bạn sẽ bị sai hoàn toàn. bạn thử vẽ mạch phần cứng ra rồi ngồi nghiên cứu ,phân tích là sẽ biết vì sao ngay ........

********* Chúc thành công
__________________
** xin hãy cho tôi là tượng đá
** Để muôn đời không nhớ thương ai ..!!
picpen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


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


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam