Advertisement
Sawy3R11

lab6_mikro

Jun 11th, 2017
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.10 KB | None | 0 0
  1. #include <reg515.sfr>
  2. #include <lcd.h>
  3.  
  4. float e1=0, e2=0, e3=0,y=0,y1=0;
  5. int wartosc=40,wart;
  6. float a=1.15,b=-1.25,c=0.12;  
  7. unsigned char znak = '\0';
  8.     unsigned char memo= '\0';
  9.     unsigned int ciag = 0;
  10.     unsigned int flaga = 1;
  11.     unsigned int ifEnter = 0;
  12.     int f;
  13.    
  14. void main()
  15. {
  16. IEN0=0x88;
  17. TMOD=160;
  18. TR1=1;
  19. T2CON=0x10;
  20. T2I0=0x01;
  21. CCEN=0x08;
  22. CRCH=0xFF;
  23. CRCL=0;
  24. TH2=0xFF;
  25. TL2=0;
  26.  
  27. CCH1=0xFF;
  28. CLK=0x01;
  29. P3=0xDF;
  30. lcd_init();
  31. out_instr(0x01);     
  32. out_char('4');
  33. out_char('0');
  34. while(1)
  35. {
  36. znak = get_kb();
  37.     if(znak=='\0')
  38.     memo=znak;
  39.     if (memo!=znak) {
  40.     if((znak >='0') && (znak<='9'))
  41.         {
  42.             if(flaga==1){
  43.             out_instr(0x01);
  44.             flaga=0;}
  45.             out_char(znak);
  46.             memo = znak;
  47.             ciag = ciag*10 + ((int)znak -48);
  48.             ifEnter = 0;               
  49.         }
  50.           else if(znak == 'e' && ifEnter == 0) {           
  51.             flaga=1;
  52.             memo = znak;
  53.             f=ciag;
  54.             wartosc=f;         
  55.             ciag = 0;  
  56.             ifEnter = 1;
  57.         }
  58.     }
  59. }
  60.  
  61. _interrupt 3 void kom(void)
  62. {
  63. DAPR=8;
  64. while(BSY!=0)
  65. {
  66. }
  67. wart=ADDAT;
  68. e1=wartosc-wart;
  69. y=y1+a*e3+b*e2+c*e1;
  70. e2=e1;
  71. e3=e2;
  72. y1=y;
  73. if(y<0)
  74. {y=0;}
  75. if(y>255)
  76. {y=255;}
  77. CCL1=(int)y;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement