pic motor ileri-geri kod

mtn1543

Üye
Katılım
30 Mar 2013
Mesajlar
19
Puanları
1
Yaş
32
sayıcı:
#include "C:\Documents and Settings\CBlokLab\Desktop\sayıcı.h"
int i;
const int digit[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F};
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
// TODO: USER CODE!!
while(1)
{
if(!input(pin_E0)){
for(i=0;i<=9;i++)
{
output_b(digit);
output_c(0b11111111);
delay_ms(500);
output_c(0b00000000);
delay_ms(500);
}
}
}
}
____________________________________________
motor sağ-sol yapma
#include "C:\Documents and Settings\CBlokLab\Desktop\Ahmet Salih POLAT\main.h"
void stepNext(void);
void stepBack(void);
void stepStop(void);
void stepNext2(void);
void stepBack2(void);
void stepStop2(void);
char value;
int speed = 50;
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
// TODO: USER CODE!!
printf("Step Motor Kontrol Uygulamasi\n\r");
printf("Deney No: 3\n\r");
printf("Ahmet Salih POLAT\n\r");
printf("------------------------------------------------------------------\n\r\n\r");
printf("\nMadde 1, 2, 3, 4 ve 5 kapsar\n\r");
printf("Lutfen islem seciniz.\n\r");
printf("L : Motoru sola dondurur\n\r");
printf("R : Motoru sağa dondurur\n\r");
printf("S : Motoru durdurur\n\r");
printf("------------------------------------------------------------------\n\r\n\r");
printf("\nMadde 6, 7, 8 ve 9 kapsar\n\r");
printf("Lutfen islem seciniz.\n\r");
printf("A : Motor1 ileri, Motor2 geri doner\n\r");
printf("D : Motor1 ve Motor2 ileri doner\n\r");
printf("E : Motor1 durur, Motor2 geri doner\n\r");
while(TRUE){
value = "null";
value = getchar();
putc(value);
while(value == 'L' || value == 'l'){
stepNext();
if(kbhit()) break;
}
while(value == 'R' || value == 'r'){
stepBack();
if(kbhit()) break;
}
while(value == 'S' || value == 's'){
stepStop();
stepStop2();
if(kbhit()) break;
}


while(value == 'A' || value == 'a'){
stepNext();
stepBack2();
if(kbhit()) break;
}
while(value == 'D' || value == 'd'){
stepNext();
stepNext2();
if(kbhit()) break;
}
while(value == 'E' || value == 'e'){
output_low(PIN_A0);
output_low(PIN_A1);
output_low(PIN_A2);
output_low(PIN_A3);
stepBack2();
if(kbhit()) break;
}
}
}
void stepNext(void){
output_b(0x01);
delay_ms(speed);
output_b(0x02);
delay_ms(speed);
output_b(0x04);
delay_ms(speed);
output_b(0x08);
delay_ms(speed);
}
void stepBack(void){
output_b(0x08);
delay_ms(speed);
output_b(0x04);
delay_ms(speed);
output_b(0x02);
delay_ms(speed);
output_b(0x01);
delay_ms(speed);
}
void stepStop(void){
output_b(0x00);
delay_ms(speed);
}
void stepNext2(void){
output_a(0x01);
delay_ms(speed);
output_a(0x02);
delay_ms(speed);
output_a(0x04);
delay_ms(speed);
output_a(0x08);
delay_ms(speed);
}


void stepBack2(void){
output_a(0x08);
delay_ms(speed);
output_a(0x04);
delay_ms(speed);
output_a(0x02);
delay_ms(speed);
output_a(0x01);
delay_ms(speed);
}
void stepStop2(void){
output_a(0x00);
delay_ms(speed);
}
__________________________________________________________




#include "C:\Documents and Settings\CBlokLab\Desktop\main.h"
#use fast_io(b)
#define use_portb_lcd TRUE
#include <lcd.c>
int x,i;
float y;
char z;
byte dizi[6]={0x45,0xC6,0xA3,0xE2,0x56};
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
// TODO: USER CODE!!
set_tris_b(0x00);
lcd_init();
x=10;
y=32.6;
while(TRUE){
shift_right(dizi,4,1);
lcd_send_byte(0,0x0D);
printf(lcd_putc,"\f A.Salih POLAT");
delay_ms(1000);
printf(lcd_putc,"\n Deney No: 4");
delay_ms(1000);
lcd_gotoxy(1,2);
printf(lcd_putc,"\f X Degeri = %d",x);
delay_ms(1000);
printf(lcd_putc,"\n DIRENC");
delay_ms(1000);
z = lcd_getc(3,1);
printf(lcd_putc,"\f %c",z);
delay_ms(1000);
for(i=0; i<9; i++){
output_d(1<<i);
delay_ms(200);
}
}
}


__________________________________________________________________


komut ileri geri program:
#include <16f877.h>
#use delay (clock=4000000)
#use rs232 (baud=9600, xmit=pin_c6, rcv=pin_c7,parity=N, stop=1)
int i, hiz=500;
char islem=0;
const int yarim_adim[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
output_b(0x00);
printf("n\r********");
printf("n\r ADIM MOTOR KONTRÖLÜ ");
printf("n\r************");
printf("\n\n");
printf("\n\rIslem seciniz:\n");
printf("\n\r---------------------");
printf("\n\r saga dondur (R)");
printf("\n\r sola dondur (L)");
printf("\n\r motor durdur R ve L tusundaki herhangi bir tus");
printf("\n\r------------------");
printf("\n\r yapmak istediginiz islem seciniz>");
while(1){
islem="null";
islem=getchar();
putc(islem);
while (islem=='R' || islem=='r'){
printf("\n\rMOTOR saga Donuyor...");
for (;i<8;i++)
{
output_a(yarim_adim);
delay_ms(hiz);
output_high(pin_b0);
delay_ms(hiz);
output_high(pin_b1);
delay_ms(hiz);
output_high(pin_b2);
delay_ms(hiz);
if (i==7)
i=0;
if (kbhit()) break;
}
if (kbhit()) break;
}
while(islem=='L'|| islem=='l'){
printf("\n\rMotor sola donuyor......");
for(;i>=0;i--)
{
if(i==0)
i=7;
output_a(yarim_adim);
delay_ms(hiz);
output_low(pin_b0);
delay_ms(hiz);
output_low(pin_b1);
delay_ms(hiz);
output_low(pin_b2);
delay_ms(hiz);


if (kbhit()) break;
}
if (kbhit()) break;
}
// TODO: USER CODE!!
}}
 
Son düzenleme:

Forum istatistikleri

Konular
128,126
Mesajlar
915,241
Kullanıcılar
449,839
Son üye
Qkay

Yeni konular

Geri
Üst