Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "reg515.sfr" //zdefiniowane rejestry mikrokontrolera
- #include "lcd.h" //funkcje obslugi wyswietlacza i klawiatury
- void delay(int time) // funkcja służy do generowania opóźnienia
- {
- int i=0;
- int wait=0;
- for(i=0;i<time;i++) wait++;
- }
- unsigned char znak;
- unsigned int wz;
- int enter = 0;
- int e0, e1, e2, w;
- float y, yn;
- _interrupt 1 void int_TO(void)
- {
- DAPR=8;
- while(BSY){}
- w=ADDAT;
- yn=CCL1;
- e0=wz-w;
- y=(yn)+(1.2*e0)+(-1.1*e1)+(0.12*e2); //obliczony wzor
- e2=e1;
- e1=e0;
- if(y>255)
- {
- y=255;
- }
- if(y<0)
- {
- y=0;
- }
- CCL1=y;
- }
- void main()
- {
- lcd_init();
- out_instr(0x01);
- //flagi z laboratorium nr 5
- CRCH = 0xFF;
- CRCL = 0x00;
- CCH1=0xFF;
- CCL1=10;
- CCEN=0x08;
- CLK=1;
- P3=0xDF;
- T2I0=1;
- T2R1=1;
- //nowo dodane flagi
- TMOD=1;
- TR0=1;
- EAL=1;
- ET0=1;
- wz=30;
- while(1)
- {
- unsigned int a,b,c;
- znak=get_kb();
- delay(5000);
- if(znak=='g')
- {
- out_instr(0x80);
- if(wz<250)
- {
- wz++;
- a=wz/100;
- b=(wz/10)%10;
- c=wz%10;
- //wyswietlenie znakow na wyswietlaczu LCD
- out_char(a+48);
- out_char(b+48);
- out_char(c+48);
- delay(6000); //opoznienie
- }
- }
- if(znak=='d')
- {
- out_instr(0x80);
- if(wz>30)
- {
- wz--;
- a=wz/100;
- b=(wz/10)%10;
- c=wz%10;
- //wyswietlenie znakow na wyswietlaczu LCD
- out_char(a+48);
- out_char(b+48);
- out_char(c+48);
- delay(6000); //opoznienie
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement