Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ѕор€док виконанн€ роботи. 1. ќзнайомитис€ ≥з системою автоматизованого проектуванн€ мовою Ђ—≥ї у пакет≥ MPLAB IDE




1. ќзнайомитис€ ≥з системою автоматизованого проектуванн€ мовою Ђ—≥ї у пакет≥ MPLAB IDE.

2. ќзнайомитис€ з≥ схемами систем керуванн€ ≈ѕ л≥фта, побудованими з використанн€м програмованих м≥кроконтролер≥в PIC.

3. ¬икористовуючи персональну ≈ќћ з≥ встановленим програмним пакетом MPLAB IDE, за допомогою редактора написати програму дл€ системи керуванн€ п≥дн≥мальною установкою мовою —≥.

4. ¬иконати симул€ц≥ю та комп≥л€ц≥ю створеного проекту.

5. ќформити зв≥т.

«адача

Ќаписати програму дл€ системи керуванн€ п≥дн≥мальною установкою.

”мови:

ѕри подач≥ живленн€ л≥фт опускаЇтьс€ на перший поверх. Ћ≥фт перем≥щаЇтьс€ на поверх в≥дпов≥дно до натиснутоњ кнопки. Ћ≥фт спов≥льнюЇтьс€ дос€гши потр≥бного поверху. (ѕочати спов≥льненн€ на передостанньому поверс≥ в≥дносно викликаного поверху)

–озвТ€зок

#define XTAL FREQ 4MHZ

#include<pic.h> // п≥дключенн€ системноњ

#include<stdlib.h> // б≥бл≥отеки

#include<delay.с>// п≥дключенн€ п≥дпрограми дл€ затримки

// до 200м—

#include<delay.h>

 

unsigned char knop;// зм≥н≥

unsigned char dat;

unsigned char kn;

unsigned char tdat;

unsigned char r;

unsigned char х;

unsigned char m;

unsigned char time;

void read (unsigned char knop);// оголошенн€ функц≥њ read

main()

{

х=1;

ADCON1=0b00000110;/ /порт ј Ц цифровий

TRISA=0b111111;

TRISB=0;

TRISC=0b10000000;

TRISD=0b11111000;

PORTB=0;

PORTC=0;

PORTD=0b00000100;

SPBRG=99;

TXSTA=0b00100100;// асинхронна високошвидк≥сна передача

RCSTA=0b10010000;// прийом дозволений

knop=0b00001000;// њдемо вниз

read(knop);

while(1)

{

while ((knop=(PORTD&120))==120);// чекаЇмо натисненн€ кнопки

knop=(knop^120);// ≥нвертуЇмо отриманий стан кнопок

://120=1111000

dat=(PORTA^15);// ≥нвертуЇмо отриманий стан датчик≥в

://30=11110

dat=(dat<<3);// зсуваЇмо байт dat на 3 б≥ти вл≥во

if (dat<knop) PORTD=(PORTD¶2); // перем≥щенн€ вгору

else PORTD=(PORTD¶4); // перем≥щенн€ вниз

read(knop);// виклик п≥дпрограми

 

}// к≥нець функц≥њ while(1)

}// к≥нець функц≥њ main()

void read (unsigned char knop)// п≥дпрограма

{

while(1)

{

while((tdat=(PORTA&15))==15);// оч≥куванн€ доки л≥фт перетне будь-€кий

;//поверх 30=11110

dat=(tdat^15);// ≥нвертуЇмо отриманий стан датчик≥в

dat=(dat<<2);// зсуваЇмо байт dat на 1 б≥та вл≥во

if (dat!=0);// €кщо dat не дор≥внюЇ нулю, то виконуютьс€ наступн≥ р€дки

{PORTB=dat;

TXREG=dat;// запис даних

TXEN=1;// дозв≥л передач≥ даних

dat=(dat<<1);// зсуваЇмо байт dat на 2 б≥ти вл≥во

}

if ((х=(dat-knop))==0);// €кщо модуль (dat-knop)=0

{ // то

PORTD=(PORTD&248); //248=10000000

PORTB=(PORTB&60); // вимкнути пускач≥ на ƒѕ— 60=111100 break;

}

r=(abs(dat-knop));//€кщо модуль(dat-knop)=8 або

if (r==8 ¶¶ r==16 ¶¶ r==32) // €кщо r=8 або r=16 або r=32

{ time=0; //то вмикаЇмо ƒѕ— ≥з затримкою

while(time!=10) //10*100=1000mS=1S

{ //

DelayMs(100);//затримка в 100 мс //

time++; //

} //

PORTB=(PORTB¶1); //16 або 32 то вв≥мкнути ƒѕ—

}

}

knop=0;

х=1;

return; // поверненн€ до основноњ програми

}





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-05-06; ћы поможем в написании ваших работ!; просмотров: 313 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

Ќеосмысленна€ жизнь не стоит того, чтобы жить. © —ократ
==> читать все изречени€...

443 - | 403 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.01 с.