|  | 
|  14-11-2008, 11:39 AM | #1 | 
| Đệ tử 6 túi Tham gia ngày: Nov 2007 Nơi Cư Ngụ: BK TP HCM 
					Bài gửi: 136
 : | 
				
				hiển thị giá trị xung trên lcd
			 tiểu đệ điều xung xuất giá trị ra lcd tăng giảm độ sáng của một bóng đèn,đoạn code như sau: Code: #include<16f877a.h>
#fuses NOWDT,PUT,HS,NOPROTECT
#device PIC16f877a*=16 ADC=10
#use delay(clock=4000000)
#include<lcd_lib_4bit.c>
#byte porta = 0x05
#byte portb = 0x06 
#byte portc = 0x07   
#byte portd = 0x08
#byte porte = 0x09
void main()
{     
      
         set_tris_b(0);
         set_tris_e(0);
         LCD_init();
         delay_us(10);
         LCD_putcmd(0x80);
         delay_us(10);
         printf(LCD_putchar,"do_sang !");
         setup_ccp1(CCP_PWM);   // CCP1 la chan PWM
                        //(1/4000000)*4*16*128= 2048 us or 488 Hz
         setup_timer_2(T2_DIV_BY_16, 127, 1);
         set_pwm1_duty(500);
         LCD_putcmd(0xc0);
         delay_us(10);
         printf(LCD_putchar," %lu",CCP_1);//xuat gia r\tri g
     while(1)
      {
     
     }
}thay đổi nội dung bởi: namqn, 14-11-2008 lúc 05:17 PM. | 
|   |   | 
|  14-11-2008, 05:29 PM | #2 | |
| Trưởng lão PIC bang | Trích: 
 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 | |
|   |   | 
|  22-11-2008, 11:56 PM | #3 | 
| Đệ tử 5 túi Tham gia ngày: Oct 2008 
					Bài gửi: 95
 : | các bạn cho mình hỏi sao doạn code của bạn nguyenquoctoan mình paste vào CCS 4.068 thì không biên dich được n nó báo lỗi gần chỗ ADC bên file .h | 
|   |   | 
|  23-11-2008, 03:07 PM | #4 | 
| Đệ tử 4 túi Tham gia ngày: Mar 2007 Nơi Cư Ngụ: Da Nang 
					Bài gửi: 69
 : | Bạn xem các file đính kèm sau và phần trợ giúp CCS C về set_pwm1_duty(value) sẽ hiểu rỏ hơn về PWM. Bạn mở file adc trong Proteus để mô phỏng, bạn nhấn Button để hiển thị các giá trị trên LCD, thay đổi chiết áp để xem sự thay đổi các giá trị ADC và CCP_1, mở Osciloscope để xem sự thay đổi của xung Theo tôi giá trị CCP_1 chẳng có ý nghĩa gì, không nên quan tâm nếu đã tính thời gian đúng. Nếu value là int8, bạn gán value = X thì CCP_1 = Y trong đó : X / 255 = Y / 65535 Nếu value là int16 ( value phải <= 10 bit) thì X / 1023 = Y / 65535 Bạn có thể thay đổi cấu hình ADC trong file.h thành 10 bit để xem. Chúc vui! | 
|   |   | 
|  | 
| 
 | 
 |