طلبك يحتاج لبرمجة كثيرة وكود طويل
كتبت لك برنامج كمثال ويمكننا تطويرة مع الوقت

كود:
// Lcd pinout settings
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D7 at RB5_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D4 at RB2_bit;
// Pin direction
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D7_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB2_bit;
unsigned int SPEED=40,M1,X1,X2;
//Timer0
//Prescaler 1:8; TMR0 Preload = 6; Actual Interrupt Time : 1 ms
//Place/Copy this part in declaration section
void InitTimer0(){
OPTION_REG = 0x82;
TMR0 = 6;
INTCON = 0xA0;
}
void Interrupt(){
if (TMR0IF_bit){
TMR0IF_bit = 0;
TMR0 = 6;
//Enter your code here
if( X1==1) { X2++ ; if(X2==50){ X1=0; X2=0; }}
if(PORTC.F0==1 && X1==0) { SPEED++ ; X1=1; }
if(PORTC.F1==1 && X1==0) { SPEED-- ; X1=1; }
if(SPEED<40 ) { SPEED=40; }
if(SPEED>4000 ) { SPEED=4000; }
}
}
void SPEED_MOTOR()
{
for(M1=0; M1<SPEED; M1++){ delay_ms(10); }
}
void main() {
TRISB=0; PORTB=0;
TRISD=0; PORTD=0;
TRISC=7; PORTC=0;
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Out(1, 3, "Hello!");
while(1){
if(PORTC.F2==0)
{
PORTD=0B00000110; SPEED_MOTOR();
PORTD=0B00000101; SPEED_MOTOR();
PORTD=0B00001001; SPEED_MOTOR();
PORTD=0B00001010; SPEED_MOTOR();
}
if(PORTC.F2==1)
{
PORTD=0B00000101; SPEED_MOTOR();
PORTD=0B00000110; SPEED_MOTOR();
PORTD=0B00001010; SPEED_MOTOR();
PORTD=0B00001001; SPEED_MOTOR();
}
}
}
لي سؤال هل هذا المشروع تحتاجه في تطبيق معين تريد تنفيذه
عموما يمكننا تطوير البرنامج للوصول لطلبك ولكن سوف يحتاج الي وقت ..
سوف اطورة علي فترات لإنشغالي الشديد الأن
بالتوفيق
|
بارك الله فيك يا اخي الكريم و شكرا على اهتمامك بألموضوع وقيامك بالرد
وعموما المطلوب الاتى:وهو للعمل على ماكينه لف المحولات الخاصة بأنظمة الصوتيات والمطلوب ان يتم التحكم في عدد اتنين من ماتور استيبر والتحكم في السرعة وعكس الحركة وعرض البيانات على شاشة بوضوح
ماتور خاص بلف القلب و ماتور خاص بالرصاص
ولو فى مشروع أو إقتراح عند حضرتك افضل
اكون شاكر لك ويجزاك الله خيرا
هذا هو المطلوب وأن كان على ماتور دى سى
عادى المهم الدقة