اخى من الكود فيه تعديلات فيكون هكذا:
كود:
sbit lcd_rs at rd4_bit;
sbit lcd_en at rd5_bit;
sbit lcd_d7 at rd3_bit;
sbit lcd_d6 at rd2_bit;
sbit lcd_d5 at rd1_bit;
sbit lcd_d4 at rd0_bit;
sbit lcd_rs_direction at trisd4_bit;
sbit lcd_en_direction at trisd5_bit;
sbit lcd_d7_direction at trisd3_bit;
sbit lcd_d6_direction at trisd2_bit;
sbit lcd_d5_direction at trisd1_bit;
sbit lcd_d4_direction at trisd0_bit;
unsigned char array[7],a,b;
unsigned int mm;
unsigned short zz;
void InitMain() {
ADCON1=0b00000001; //ALL PORT A AS Analog AND refrance are AN3
ADCON0=0x41; //Select AN0
PORTA = 255;
TRISA = 255; // configure PORTA pins as input
PORTB = 0; // set PORTB to 0
TRISB = 0; // designate PORTB pins as output
PORTC = 0; // set PORTC to 0
TRISC = 0; // designate PORTC pins as output
PWM1_Init(5000); // Initialize PWM1 module at 5KHz
PWM2_Init(5000); // Initialize PWM2 module at 5KHz
}
void main() {
lcd_init();
lcd_cmd(_LCD_FIRST_ROW);
lcd_cmd(_LCD_CURSOR_OFF);
lcd_cmd(_LCD_RETURN_HOME);
PWM1_Start(); // start PWM1
PWM2_Start(); // start PWM2
PWM1_Set_Duty(100); // Set current duty for PWM1
PWM2_Set_Duty(100); // Set current duty for PWM2
while(1){
mm = (adc_read(0)/10);
inttostr(mm,array);
pwm1_set_duty(mm);
b=0; //for shifting the numbers to the left
lcd_out(1,1,"Duty=");
for (a=0;a<=6;a++){
if (array[a]!= ' ')
{array[b]= array[a];
b++;
array[b]=0;}}
lcd_out_cp(array);
lcd_out_cp(" ");
delay_ms(500);
}
}
وبروتس لم يعمل فانا جربته من قبل على محكاة ال PWM
ولم يعمل
ولكن هناك برنامج اخر يحاكى الموضوع وهذة صورة له وهو يعمل

يمكن تحميله من هنا
http://www.digitalelectrosoft.com/do...cSimulator.exe
احمد الشيمى
|
عزيزي .. أحمد الشيمي ... البرنامج محمي ... هل لديك الكراك .. او ما شابة ...؟؟؟
و شكرا لمساعدتك .....