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);
- 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