ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
3 мая
23276
nm5 (10.03.2005 12:58, просмотров: 1970)
Кто хорошо знает СИ подскажите начинающему Кто хорошо знает СИ подскажите начинающему Что я делаю не правильно нужно делать задержку 1-2 сек через таймер /* AT89C2051 Proview32 C51 Compiler. ****************** AT89C2051 ***************** Р1,7 ГАЗ Р1,6 УПРАВЛЕНИЕ Р1,5 МОТОР Р1,4 РЕЛЕ РЕЗЕРВ Р1,3 СВЕТОДИОД ************** Р3,1 СТАРТ ***************************************************** */ #include <2051.h> /* special function register declarations */ #include unsigned char sec100,sec,sec5,min,hour,flag1,command,temp,opto,temp1,metka1; /* above must be defined as register for tiny model */ unsigned char i,digit, k,m; char cputick,key,delay,count1; /*my*/ void pause(int); void keypress(); void scanpole(); /* наборное поле*/ void varim(); void stopsvarka(); void prixvatki(); void delay2(); /*end my*/ void timer0int (void) interrupt 1 using 1 { TH0 |= 0xfe; // reload timer 0 with 0DC00H cputick++; metka1++; } void int0er (void) interrupt 2 { int m; for (m = 0; m < k*10000; m++);{ } P16 = 0; pause(20); P16 = 1; Здесь будет управление тиристором не доделано } /* ############################################################################*/ void main() { EX1 = 1; EA = 1; ET0 = 1; // or IE |= 0x82; /* set bit EA and Timer0 enable */ TMOD |= 0x01; /* timer 0 run 16 bit counter */ TR0 = 1; //or TCON |= 0x10; /* run timer 0 */ cputick = 0; TH0 |= 0xfe; sec = 0; key = 0; flag1 = 0; k = 0; temp1 = 0; while(1) { { keypress(); if (key == 1) varim(); else stopsvarka(); if (metka1==3) metka1=0; if (cputick == 500) {cputick = 0;} } } } /* ############################################################################*/ void varim() { if (temp1 == 0) { P17 = 0; if ( metka1 > 2) (что тут не правильно нужно сделать задержку) { P15 = 0; P14 = 0; P13 = 0; k = 10; temp1 = 1; metka1 =0; } } } void stopsvarka() { if (temp1 == 1) { P16 = 1; P15 = 1; P14 = 1; P13 = 1; if ( metka1 > 2) ) (что тут не правильно нужно сделать задержку) { P17 = 1; temp1 = 0; metka1 =0; } } } void keypress() /* if key pressed key */ { if (P31 == 0) /* if key pressed P3.4 became low */ { pause(5); if (P31 == 0)/* */ key = 1; /* */ else key = 0; } else key = 0; } void delay2() { int i; for (i = 0; i < 150; i++) ; } /* */ void pause(j) int j; { int i; for (i = 0; i < j; i++) ; }