Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <reg515.sfr>
- #include <lcd.h>
- unsigned char x;
- unsigned int var = 50, delta;
- void opoznienie(int x){
- int j;
- for(j = 1; j < x; j++);
- }
- int main(){
- init();
- T2R1 = 1;
- T2I0 = 1;
- CRCH = 0xFF;
- CRCL = 0x00;
- CCH1 = 0xFF;
- CCL1 = var;
- // odpowiedź regulatora inicjowana początkową wartością prędkości
- CCEN = 8;
- CLK = 1;
- P3_5 = 0;
- while(1){
- int a, b;
- x = get_char();
- if(x == 'g'){
- // spr. czy wciśnięto strzałkę w górę
- if(var < 250)
- // spr. czy wartość prędkości jest mniejsza od max. dopuszczalnej
- CCL1 = ++var;
- // jeśli, to zwiekszenie odpowiedzi regulatora
- put_instr(0x02);
- delta = CCL1 * 100 / 255;
- // wyliczanie wspołczynnika wypełnienia
- a = delta / 10;
- // wyłuskanie wartości dziesiątnych
- b = delta % 10;
- // wyłuskanie wartości jedności
- put_char(a + 48);
- 1
- put_char(b + 48);
- opoznienie(2000);
- }
- if(x == 'd'){
- // spr. czy wciśnięto strzałkę w dół
- if(var > 0)
- // spr. czy wartość prędkości jest większa od 0
- CCL1 = --var;
- // jeśli, to zmniejszenie odpowiedzi regulatora
- put_instr(0x02);
- delta = CCL1 * 100 / 255;
- a = delta / 10;
- b = delta % 10;
- opoznienie(2000);
- put_char(a + 48);
- put_char(b + 48);
- }
- }
- opoznienie(2000);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement